中易网

Java里什么是引用类型?

答案:3  悬赏:30  
解决时间 2021-04-07 00:30
Java里什么是引用类型?
最佳答案
最简答来说除了8中基本类型以外剩下的都是引用类型

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
boolean -->Boolean
char --->Character
byte -->Byte
short -->Short
int -->Integer
long -->Long
float -->Float
double -->Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。同时为了面向对象操作的一致性,这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。
因为封装类型是对象,所以可以进行相应的很多对象能力函数操作,这样就可以提供很多基本类型难以完成的工作的完成和实现。
你可以通过以下方式来声明该类型。

int a,a为int类型的变量
char a,a为char类型的

String对象

1. 首先String不属于8种基本数据类型,String是一个对象。

因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。

2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;

3. String str=”punkll”;

String str=new String (“punkll”);的区别:

在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念。

常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。

看例1:

String s0=”punkll”;

String s1=”punkll”;

String s2=”punk” + “ll”;

System.out.println( s0==s1 );

System.out.println( s0==s2 );

结果为:

true

true

首先,我们要知结果为道Java会确保一个字符串常量只有一个拷贝。

因为例子中的s0和s1中的”punkll”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”punk”和”ll”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中”punkll”的一个引用。

所以我们得出s0==s1==s2;

用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。

看例2:

String s0=”punkll”;

String s1=new String(”punkll”);

String s2=”punk” + new String(“ll”);

System.out.println( s0==s1 );

System.out.println( s0==s2 );

System.out.println( s1==s2 );

结果为:

false

false

false

例2中s0还是常量池中”punkll”的应用,s1因为无法在编译期确定,所以是运行时创建的新对象”punkll”的引用,s2因为有后半部分new String(“ll”)所以也无法在编译期确定,所以也是一个新创建对象”punkll”的应用;明白了这些也就知道为何得出此结果了。
全部回答
引用就是拿来用啊
Java的引用类型: 引用类型是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。 引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。 对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。同时为了面向对象操作的一致性。 这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。 Java的4种引用类型: 他们分别是其引用(StrongReference),软引用(SoftReference),弱引用(WeakReference)以及PhantomReference(虚引用),他们被GC回收的可能性从大到小排列。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
喜之宝手机互动双语娃娃怎么和手机连接
请问,外贸中的s/d是什么意思?或者是什么文
10月1潘家园花鸟鱼虫市场
尖山邮电所这个地址在什么地方,我要处理点事
用还是还是造句
现在这个季节用野战蓝鲫加什么饵料好钓鱼
李叔叔打算买一套房子,他发现现在分期付款购
徐亮汽车电路修理这个地址在什么地方,我要处
最近有一款韩国豪卡斯【hokas】红外线电热毯
上级法院能纠正下级法院的错误吗?
一种冰箱原价2100元,现在八五折出售,现价是()
餐厅的服务员戴眼镜有很大的问题吗?为什么?
为什么最近排位那么多人禁李白
我在农村有一个瓦房?又在县里买了一个楼房?应
小胖的店在哪里啊,我有事要去这个地方
推荐资讯
痣的周围有疼痛感怎么原因呢
关于针灸减肥的问题!
花瓣最多的花是什么花?
亮洁酒店清洁用品经营店怎么去啊,有知道地址
帝国时代2 非洲战役 塔里克伊本齐亚德 突击
浪莎内衣(旗舰店)在什么地方啊,我要过去处理
威海人才招聘网
我姐又出去给人家草了 比痒了
如何才能把你的思想灌输到别人的脑子里
1979年公历4月1号,农历是初几
我开了个农用三轮车被交警拦住因为车旧没有检
男生用吉它多大的比较合适
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?