当前位置:首页 » 编程语言 » java中的引用数据类型

java中的引用数据类型

发布时间: 2022-11-29 23:52:35

1. java中的引用数据类型是怎样的

java中有两种数据类型:基本类型和引用类型。x0dx0a基本类型有8个:x0dx0a 整数类型 byte、short、int、longx0dx0a 浮点数类型 float、doublex0dx0a 字符型 charx0dx0a 布尔类型 booleanx0dx0a引用类型包括三种:x0dx0a 类 Classx0dx0a 接口 Interfacex0dx0a 数组 Arrayx0dx0a基本类型是通过诸如 int a = 5; long b = 6L;的形式来定义的,称为自动变量,自动变量存放的是字面值,不是类的实例,它存放在内存的堆栈中,数据大小和生存期必须是确定的,存取速度比较快,在堆栈中的字面值可以共享,也就是说我们定义一个int a = 5;然后又定义了一个int b = 5;这时a与b在内存中指向的是同一个字面常量。x0dx0a引用类型一般是通过new关键字来创建,比如Integer num = new Integer(3);它存放在内存的堆中,可以在运行时动态的分配内存大小,生存期也不必事先告诉编译器,当引用类型变量不被使用时,Java内部的垃圾回收器GC会自动回收走。引用变量中存放的不是变量的内容,而是存放变量内容的地址。x0dx0a在参数传递时,基本类型都是传值,也就是传递的都是原变量的值得拷贝,改变这个值不会改变原变量,而引用类型传递的是地址,也就是参数与原变量指向的是同一个地址,所以如果改变参数的值,原变量的值也会改变。这点要注意。x0dx0a在java中,8种基本类型在java中都有对应的封装类型,也就是引用类型:x0dx0a 整数类型 Byte、Short、Integer、Longx0dx0a 浮点数类型 Float、Doublex0dx0a 字符型 Characterx0dx0a 布尔类型 Booleanx0dx0a有时候我们会看到这样的语句 Integer num = 3;Boolean b = true;这样定义也能行得通,其实这里面有一个自动装箱的问题,即java自动把3这个字面常量封装成了Integer对象,同理也有自动拆箱。x0dx0a还有些需要注意的比较特殊的地方:x0dx0a1.Integer类型x0dx0aInteger i1 = 3;x0dx0aInteger i2 = 3;x0dx0a此时i1 == i2 返回的是truex0dx0aInteger i1 = 128;x0dx0aInteger i2 = 128;x0dx0a此时i1 == i2返回的是false,x0dx0a这时因为Integer的数值在-128~127之间时,即在int的范围内,默认是按照基本类型int来存放的,仍旧存在堆栈中,如果超出了int的范围,就按照对象的方式来存放和比较了。x0dx0a x0dx0a2、String类型x0dx0aString类型我们有时候也会直接这样定义:x0dx0aString s = "abc";x0dx0a这里的"abc"称为字符串常量,也是存在堆栈中的,s中存放的就是指向这个堆栈地址的引用,如果再定义一个x0dx0aString s1 = "abc";x0dx0a这时,s与s1存放的是同一个地址的引用,即s与s1指向的是同一个字符串常量,x0dx0as == s1的值是true,x0dx0a但是如果有x0dx0aString s2 = new String("abc");x0dx0a这时s == s2则为false,因为使用new之后,每次生成的对象都不是同一个,即使存储的内容相同。x0dx0a上面的s == s1,s == s2其实比较的都是地址,并不是里面的内容。如果要比较内容,可以使用equals()方法。x0dx0ax0dx0a其他的就不多说了,打起来太慢了,可以自己去看一下java编程思想。

2. java中基本数据类型和引用数据类型有哪些

java中有8中基本数据类型和3中引用类型

1、8种基本类型
一)、4种整型
byte 1字节 -128——127
short 2 字节 -32,768 —— 32,767
int 4 字节 -2,147,483,648 ——2,147,483,647(超过20亿)
long 8 字节 -9,223,372,036,854,775,808——9,223,372,036854,775,807
二)、 2种浮点类型
float 4 字节 32位IEEE 754单精度(有效位数 6 – 7位)
double 8 字节 64位IEEE 754双精度(有效位数15位)
三)、1种Unicode编码的字符单元
char 2 字节 整个Unicode字符集
四)、1种真值类型
boolean 1 位 True或者false
2、3种引用类型
类class
接口interface
数组array

3. java中引用数据类型有哪些

String StringBuffer 等除了基本类型,枚举类外的所有的类 都是引用类型。
以及所有的自定义类型。

4. java中的引用数据类型是什么意思

  1. 引用数据类型为java两大数据类型之一

  2. 引用数据型在被床架时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

  3. 引用数据类型包括:类、接口类型、数组类型、枚举类型、注解类型,字符串型;

  • java另一大数据类型为基本数据类型,其包括包括数值型,字符型和布尔型。

  • 基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

5. java中值类型和引用类型的区别

1:Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
2:使用场合,例如说
往ArrayList里面add,必须add的是Object
而int不是对象,就只能把Integer添加进去
3:int是基本类型,
Integer是int对应的封装类,
声明int a; a自动赋值0;
声明Integer a; a自动赋值为null
4:int是基本的数据类型
integer是类
int的初始值为0,不能为null,如果需要为null的时候,需要用integer

热点内容
2012文件服务器如何新建用户 发布:2025-01-19 02:43:10 浏览:884
android复试 发布:2025-01-19 02:39:11 浏览:654
c获取文件夹中 发布:2025-01-19 02:33:48 浏览:547
如何查看360浏览器保存的密码 发布:2025-01-19 02:27:14 浏览:94
源码分享站 发布:2025-01-19 01:21:26 浏览:911
安卓如何设置方向锁定生效 发布:2025-01-19 01:21:25 浏览:72
iis上传限制 发布:2025-01-19 01:14:52 浏览:16
我的世界宝可梦服务器181 发布:2025-01-19 01:12:32 浏览:183
如何用云服务器挂游戏 发布:2025-01-19 01:09:19 浏览:211
电脑系统还原如何清除缓存 发布:2025-01-19 01:08:08 浏览:782