精华内容
下载资源
问答
  • Java基本类型变量与引用类型变量

    千次阅读 2015-04-22 17:13:59
    Java基本类型变量与引用类型变量  (2013-04-08 20:47:54) 转载▼ 标签:  java   设计模式   java设计模式   语句   it 分类: Java Java基本类型变量...

    Java基本类型变量与引用类型变量

      (2013-04-08 20:47:54)
    标签: 

    java

     

    设计模式

     

    java设计模式

     

    语句

     

    it

    分类: Java

    Java基本类型变量与引用类型变量

    Java中数据类型分为两大类:基本数据类型与复合数据类型。相应地,变量也有两种类型:基本类型与引用类型。Java的8中基本类型的变量称为基本类型变量,而类、接口和数组变量时引用类型变量。这两种类型变量的结构和含义不同,系统对他们的处理也不相同。

    1.基本类型与引用类型变量

    *基本类型(primitive type)

    8种基本类型byte、char、short、int、float、long、double、boolean

    基本数据类型的变量包含了单个值,这个值的长度和格式符合变量所属数据类型的要求,可以是一个数字、一个字符或一个布尔值,例如一个整型值是32位的二进制补码格式的数据,而一个字符型的值是16位的Unicode字符格式的数据等。

    *引用类型(reference type)

    引用型变量的值与基本类型变量不同,变量值是指向内存空间的引用(地址)。所指向的内存中保存着变量所表示的一个值或一组值。

    引用在其他语言中称为指针或内存地址。Java语言与其他程序设计语言不同,不支持显示使用内存地址,而必须通过变量名对某个内存地址进行访问。

    2.两种变量的不同处理

    在Java语言中基本类型变量声明时,系统直接给该变量分配空间,因此程序中可以直接操作。例如,

    int a; //声明变量a的同时,系统给a分配了空间

    a=12;

    引用类型(或称为引用型)变量声明时,只是给该变量分配引用空间,数据空间未分配。因此引用型变量声明后不能直接引用,下列第二条语句是错误的:

    MyDate today;

    today.day = 14; //错误!因为today对象的数据空间未分配

    ......

    引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。通过对引用型变量声明与实例化语句的执行过程分析,可以理解系统对引用型变量的上述处理。例如有如下语句:

    MyDate today;

    today = new Date();

    第一条语句的执行,将给today变量分配一个保存引用的空间,第二条语句分两个步骤执行,首先执行new Date(),给today变量开辟数据空间,然后再执行第二条语句中的赋值操作,

    3.引用变量的赋值

    Java中引用型变量之间的赋值是引用赋值。例如,下列语句执行后,内存的布局如图3-5所示。

    MyDate a,b; //在内存中开辟两个引用空间

    a = new MyDate(); //开辟MyDate对象的数据空间,并把该空间的首地址赋给a

    b = a; //将a存储空间中的地址写到b的存储空间中

     更多的Java资讯,请登录:www.fanliangke.com

    展开全文
  • 一。引用变量的特点 对象是通过对象引用变量来访问的,该变量包含了对对象的引用。...基本类型变量和引用类型变量的区别 每个变量都代表一个保存了存储值的内存位置。声明一个变量时,就是在告诉编译器这个变量可...

    一。引用变量的特点

    1. 对象是通过对象引用变量来访问的,该变量包含了对对象的引用。
    2. 假设我们自己定义一个类Circle,这个类是一种引用类型。该类类型的变量都可以引用该类的一个实例。
    3. 从表面上看,对象引用变量种似乎存放了一个对象;但是事实上,它只是存放了对该对象的引用。

    二。基本类型变量和引用类型变量的区别


    每个变量都代表一个保存了存储值的内存位置。声明一个变量时,就是在告诉编译器这个变量可以存放什么类型的值。

    对于基本类型变量

    • 在内存种存储的是一个基本类型值
    • 可以在栈中直接分配内存
    • 例如 int a=1; 变量a的值就是int值1;

    对于引用类型变量

    • 对应内存所存储的值是一个引用,是对象的存储地址
    • 对象的引用在栈中,对象实际存放在堆中。
    • 例如 Circle circle = new Circle(9)【参数表示半径】; 变量circle 的值保存的是一个引用,它指明这个Circle对象的内容存储在内存的什么位置。

    三。基本类型变量和引用类型变量的赋值问题

    1. 基本类型:将一个对对象的实际值赋给另一个变量。

    i=1; 

    j=2;

    j = i; 就是将基本类型变量 i 的内容复制给基本类型变量 j。

    2. 引用类型:将一个变量的引用赋给另一个变量

    c1= new Circle(9); 

    c2= new Circle(6); 

    c2=c1;  就是将c2的引用赋给c1,赋值之后,变量c2和c1指向同一个对象。这个时候c1以前的引用对象不再有用,因此,现在它就称为垃圾。垃圾会占用内存空间。Java运行系统会检测垃圾并自动回收它所占据的空间,这个过程称为垃圾回收。

    【注意:如果你不再需要某个对象,可以显式地给该对象的引用变量赋值为null。 如果该对象没有被任何引用变量所引用,Java虚拟机会自动回收它所占据的空间。】

    展开全文
  • JAVA基础 引用类型变量和基本类型变量

    千次阅读 多人点赞 2016-08-16 22:32:27
    引用类型变量的名字是复杂数据的存储地点。包括类 数组(字符串) 接口 String s="Hello world!"; 许多人都写过这样的语句,但是,我们到底声明了什么呢?一休,你回答一下。 一休:声明了一个String对象,...

    一     基本类型的变量名是变量本身。   包括八种基本数据类型

    引用类型变量的名字是复杂数据的存储地点。包括类   数组(字符串)   接口

    String s="Hello world!";

    许多人都写过这样的语句,但是,我们到底声明了什么呢?一休,你回答一下。

    一休:声明了一个String对象,内容是"Hello world!"。

    愚公:这样的回答还是比较模糊,准确的回答是这个语句创建了一个字符串对象,另外它声明了一个指向对象的引用,名为s。它可以指向类型为String的任何对象,目前指向"Hello world!"这个String类型的对象。

    一休:也就是说,我们声明了一个只能指向String对象的引用变量s,并且将s指向了字符串对象"Hello world!"。

    愚公:是的,如果在刚才的语句后面再补充一句代码:

    String string=s;

    是不是又声明了一个新的对象呢?

    一休:是的,声明了一个新的对象string。

    愚公:不对,我们是声明了另外一个指向String对象的引用,名为string,并没有第二个对象产生,string还是指向原来的对象,也就是和s指向同一个对象。String类要弄清楚,因为这个类弄清楚了,许多类就好理解了。

    一休:String类这么重要吗?

    愚公:是的,因为这个类使用的频率很高,包含许多定制好的属性和方法,我们可以直接使用,而且这个类是final类,我们不能继承它,也不能继承和利用多态性修改它的方法。
    一休:那我今后一定好好研究它

    二  Java中数据类型分为两大类:基本数据类型与复合数据类型。相应地,变量也有两种类型:基本类型与引用类型。Java的8中基本类型的变量称为基本类型变量,而类、接口和数组变量时引用类型变量。这两种类型变量的结构和含义不同,系统对他们的处理也不相同。

    1.基本类型与引用类型变量

    *基本类型(primitive type)

    基本数据类型的变量包含了单个值,这个值的长度和格式符合变量所属数据类型的要求,可以是一个数字、一个字符或一个布尔值,例如一个整型值是32位的二进制补码格式的数据,而一个字符型的值是16位的Unicode字符格式的数据等。

    *引用类型(reference type)

    引用型变量的值与基本类型变量不同,变量值是指向内存空间的引用(地址)。所指向的内存中保存着变量所表示的一个值或一组值。

    引用在其他语言中称为指针或内存地址。Java语言与其他程序设计语言不同,不支持显示使用内存地址,而必须通过变量名对某个内存地址进行访问。

    2.两种变量的不同处理

    在Java语言中基本类型变量声明时,系统直接给该变量分配空间,因此程序中可以直接操作。例如,

    int a; //声明变量a的同时,系统给a分配了空间

    a=12;

    引用类型(或称为引用型)变量声明时,只是给该变量分配引用空间,数据空间未分配。因此引用型变量声明后不能直接引用,下列第二条语句是错误的:

    MyDate today;

    today.day = 14; //错误!因为today对象的数据空间未分配

    ......

    引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。通过对引用型变量声明与实例化语句的执行过程分析,可以理解系统对引用型变量的上述处理。例如有如下语句:

    MyDate today; 

    today = new Date();    //等于MyDate today = new Date ();

    第一条语句的执行,将给today变量分配一个保存引用的空间,第二条语句分两个步骤执行,首先执行new Date(),给today变量开辟数据空间,然后再执行第二条语句中的赋值操作,

    3.引用变量的赋值

    Java中引用型变量之间的赋值是引用赋值。例如,下列语句执行后,内存的布局如图3-5所示。

    MyDate a,b; //在内存中开辟两个引用空间

    a = new MyDate(); //开辟MyDate对象的数据空间,并把该空间的首地址赋给a

    b = a; //将a存储空间中的地址写到b的存储空间中

    展开全文
  • 一。基本概念 java 中的 数据类型 分为两大类: 基本数据类型引用数据... 是一个 对象类型,它的 值 是 指向内存空间的引用,就是 地址,所指向的内存中保存着变量所表示的一个值或一组值。 二。 区别 --...
    一。基本概念
    
    java 中的 数据类型 分为两大类: 基本数据类型 和 引用数据类型
    
    基本数据类型 : 数值型,浮点型, 字符型 和 布尔型。 它的 值 是一个数字,一个字符或一个布尔值。
    
    
    引用数据类型 : 类,接口类型,数组类型, 枚举类型, 注解类型。 是一个 对象类型,它的 值 是 指向内存空间的引用,就是 地址,所指向的内存中保存着变量所表示的一个值或一组值。 
    
    
    二。 区别 -----  存储方式
    
    1. 基本类型变量 声明 时,系统直接给该变量 分配空间,因此程序中可以直接操作
    
     eg. int a; 声明变量a的同时,系统给a分配了空间,   故 可直接  赋值  a = 5;
    
    2. 引用类型(或称为引用型)变量声明时,只 给该变量分配 引用空间, 数据空间 未分配。因此 引用型变量声明后 不能直接引用,必须通过 实例化 开辟数据空间,才能对变量所指向的对象进行访问
     
     eg. MyDate today = 14; // 错误!因为today对象的数据空间未分配
         
         MyDate today = new MyDate( 14 ); 正确! 首先执行 new MyDate()给today变量 开辟 数据空间,然后再执行 赋值 操作
    
    3. 案例分析
        
       申明一个类 MyDate,其中有属性day,mouth,year等,有构造方法(带参数),为其创建一个对象
    
    
       MyDate day = new MyDate(8,8,2017);
    
    
      在内存中的具体创建过程是:
    
       1)首先在 栈内存 中为 day 分配一块 引用空间;
       2)然后在 堆内存 中为 MyDate对象 分配一块空间,并为其三个属性设初值0,0,0;
       3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;
       4)调用构造方法,为三个属性赋值为8,8,2017;(注意这个时候day 与MyDate对象之间还没有建立联系  ) 
       5)将MyDate对象在堆内存中的地址,赋值给栈中的day ; 通过句柄 day 可以找到堆中对象的具体信息


    展开全文
  • 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值, 那么调用这个方法是传入的变量的值也将改变.值类型表示复制一个当前变量传给方法, 当你在这个...
  • 一.Java中什么叫做引用类型变量? 引用:就是按内存地址查询  比如:String s = new String();这个其实是在栈内存里分配一块内存空间为s,在堆内存里 new了一个String类型的空间,在运行时是 栈内存里的...
  • 引用类型变量来说,对应内存所存储的值是一个引用,是对象的存储地址。 将一个变量赋值给另一个变量时,另一个变量就被赋了同样的值。对基本类型变量而言,就是将一个变量的实际值付给另一个变量。对引用类型...
  • Java引用变量的强制类型转换

    千次阅读 2018-10-16 11:49:52
    引用变量的强制类型转换 为什么强制转换类型? 多太的弊端是不能使用子类特有的功能;用向下转型来解决这个问题,即把父类的引用强制转换为子类的引用。 格式 ...引用类型之间的转换只能在具有继...
  • C++ 引用变量

    千次阅读 2017-04-03 11:08:55
    C++新增了一种复合类型--引用变量引用是已定义变量的别名,使用引用变量的主要的用途是作为函数的参数。通过将引用变量用作参数,函数将使用原始数据,而不是副本。这样除指针之外,引用也为函数处理大型结构提供...
  • Java基本类型变量

    千次阅读 2013-01-26 09:52:22
    Java的8中基本类型的变量称为基本类型变量,而类、接口和数组变量时引用类型变量。这两种类型变量的结构和含义不同,系统对他们的处理也不相同。 1.基本类型与引用类型变量  *基本类型(primitive type)  基本...
  • 在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则: 1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,...
  • java的数据类型变量类型笔记总结

    千次阅读 2018-03-02 13:31:02
    引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。 对象、数组都是引用数据类型。 所有引用类型的默认值...
  • JAVA 入坑教程 | 章节三 变量类型

    千次阅读 2017-02-17 11:11:33
    引用类型变量的名字是复杂数据的存储地点。Java语言支持的变量类型有三大类: 局部变量 成员变量 类变量(静态变量)类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。 无论一个...
  • 共九个类型【八个基本数据类型一个引用类型引用类型:class,interface,数组(int [ ])}String】 String 包装器类型属于引用类型 public class TestType {  byte s1;  short s2;  int s3;  long s4;  ...
  • 结构是一些值的集合,这些值称为成员变量.结构的每个成员可以是不同类型变量. 先来看一个例子,假如我们现在想要描述一个学生: struct stu{ char name[20]; //名字 int age; //年龄 char sex[5]; //性别 char ...
  • java变量常量数据类型及各种类型书写语法规则 变量 常量 数据类型 各种类型书写语法规则 ...引用类型(reference),也被称为对象类型 为什么要分为两大类: 两种数据类型的数据在内存中的存储方式不同,我们的...
  • C++---引用变量(&)

    千次阅读 2018-07-29 14:23:11
    引用变量 引用是已定义变量的别名 创建引用 int a; int & b = a; // b为a的引用 引用(&),b 为 a 的别名 在函数引用时,必须对其初始化 一个变量可以有多个引用,一个引用只能指向一个...
  • 学习Python首先我们要知道Python变量保存的是值引用 也可以说:变量是对内存及其地址的抽象 Python:一切变量都是对象 变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量...
  • 值类型 引用类型 ref out

    千次阅读 2012-03-31 16:41:42
    值类型主要由两类组成:结构和枚举。...这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。引用类型的变量又称为对象,可存储对实际数据的引用。包括:class interface del
  • WebStrom 下载及安装、实例、undefined与null的区别?什么时候给变量赋值为null呢?严格区别变量类型与数据类型?关于引用变量赋值问题、数据传递问题、内存管理、访问对象内部数据
  • 一、.NET 将变量的类型分为“值类型”与“引用类型”两大类。诸如int 和float 之类的变量属于值类型,而“类”类型的变量则属于 “引用...二、值类型变量与引用类型变量的内存分配模型也不一样 值类型变量与引用类
  • Java 变量数据类型

    千次阅读 2016-08-26 15:05:00
    Java 变量变量数据类型Java数据类型图: 1.基本数据类型 基本数据类型,也称内置类型,是可以在栈直接分配内存的,Java保留基本数据类型最大的原因也在此:性能。关于这一点可以参考:Java为什么需要保留基本...
  • Java中引用变量与对象

    千次阅读 2017-05-16 16:41:32
    Java中的引用变量相当于C语言中的指针,它的作用是指向某个对象....t 是 一个引用变量,指向了一个Child类型的对象.内存中,你首先声明了一个Child类型引用变量,然后你创建了一个Child对象,并 把这个对象
  • c++中引用变量的使用

    千次阅读 2017-03-29 15:13:09
    c++中引用是已定义的变量的别名,例如,如果把b作为a变量引用,则可以交替使用a和b来表示该变量引用的主要用途是作为函数的形参,通过将引用变量作为参数,函数将使用原始数据,而不是副本(把变量之间传入函数...
  • C#基础篇 数据类型:引用类型

    千次阅读 2014-01-06 20:57:43
    C#有两个内置的引用类型,分别为Object和String类型。 在C#的统一类型系统中,所有类型(预定义类型,用户定义类型,引用类型和值类型)都是直接或间接从Object继承的。 可以将任何类型的值赋值给Object类型的变量。...
  • js变量存在的两种类型(原始值,引用值) 由于最近面试问到过这个问题,所以特定补一下这里面的知识: 原始值类型:Undefined、Null、Boolean、Number 和 String 型;存储在栈(stack)中的简单数据段,也就是说,...
  • 动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值。这些都与动态类型的概念相关。   动态类型  在我们接触的对象...
  • Java变量

    万次阅读 多人点赞 2019-09-29 00:06:53
    文章目录定义分类按被声明的位置划分成员变量局部变量成员变量和局部变量的区别使用原则按所属的数据类型划分基本数据类型变量引用数据类型变量定义格式注意事项 定义 在程序执行的过程中,在某个范围内其值可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 334,062
精华内容 133,624
关键字:

引用类型的变量又称为