Java类型,基本类型,封装类,引用类型,类型转换,基本类型转换字符串,字符串转换基本类型,显示转换,隐式转换,拆装箱

Java类型,基本类型,引用类型--个人记录的复习笔记.希望与大家共同进步

1.java基本类型共八种

1.1int

int为整数类型,在存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候

int类型的默认值为0。

1.2short

short也属于整数类型,在存储的时候,用2个字节存储,范围为-32,768到32,767。

short类型的默认值为0。

1.3long

long也属于整数类型,在存储的时候,用8个字节存储,范围为-9,223,372,036,854,775,808到9,223,372,036, 854,775,807。

long类型的默认值为0L或0l,也可直接写为0。

1.4byte

byte同样属于整数类型,在存储的时候,用1个字节来存储,范围为-128到127。

byte类型的默认值也为0。

1.5float

float属于浮点型,在存储的时候,用4个字节来存储,范围为32位IEEEE 754单精度范围。

float的默认值为0.0f或0.0F,在初始化的时候可以写0.0。

1.6double

double同样属于浮点型,在存储的时候,用8个字节来存储,范围为64位IEEE 754双精度范围。

double的默认值为0.0。

1.7char

char属于字符类型,在存储的时候用2个字节来存储,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围。

char类型的默认值为'u0000'。

1.8boolean

boolean属于布尔类型,在存储的时候不使用字节,仅仅使用1位来存储,范围仅仅为0和1,其字面量为true和false。

boolean变量在初始化的时候变量的默认值为false。

总结

基本类型大小 最小值最大值默认值
int32 bits(4字节) -2^31 2^31-1
short16 bits(2字节)-2^15 2^15-1(short)0 
long64 bits(8字节) -2^632^63-10L
byte8 bits(1字节) -128127(byte)0 
float32 bits(4字节)IEEE754IEEE7540.0F 
double64 bits(8字节)IEEE754IEEE7540.0D
char16-bit(2字节) Unicode 0 Unicode 2^16-1‘\u0000’(Unicode 0)
boolean– – – false

 

 

 

 

 

 

 

 

 

 

2.java封装类(JDK1.5特性)

基本类型与封装类型
基本类型封装类型
intInteger
shortShort
longLong
byteByte
floatFloat
doubleDouble
charCharacter
bolleanBoolean

 

 

 

 

 

 

 

 

 

 

3.类型转换

3.1.基本类型转换为字符串有三种方法:

3.1.1. 使用包装类的 toString() 方法

3.1.2. 使用String类的 valueOf() 方法

3.1.3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

3.2.将字符串转换成基本类型有两种方法:

3.2.1. 调用包装类的 parseXxx 静态方法

3.2.2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

3.3.基本类型的隐式转换

隐式转换也叫作自动类型转换, 由系统自动完成.

从存储范围小的类型到存储范围大的类型.

byte ->short(char)->int->long->float->double

例:      int a = 1;

           double b = a;

3.4.基本类型的显示转换

显示类型转换也叫作强制类型转换, 是从存储范围大的类型到存储范围小的类型.

当我们需要将数值范围较大的数值类型赋给数值范围较小的数值类型变量时,由于此时可能会丢失精度,因此,需要人为进行转换。我们称之为强制类型转换。

double→float→long→int→short(char)→byte

例:      double b = 1.0;

           int a = (int)b;

3.5.补充

Java语言和解释器限制使用强制和转换,以防止出错导致系统崩溃。整数和浮点数运算符间可以来回强制转换,但整数不能强制转换成数组或对象。对象不能被强制为基本类型。

Java中整数运算符在整数运算时,如果操作数是long类型,则运算结果是long类型,否则为int类型,绝不会是byte,short或char型。这样,如果变量i被声明为short或byte,i+1的结果会是int。如果结果超过该类型的取值范围,则按该类型的最大值取模。

3.5.自动拆装箱(基本类型与包装类的转换)

JDK1.5的一个新特性是自动装箱和自动拆箱。

 3.5.1.自动装箱
基本类型就自动地封装到与它相似类型的包装中,如:Integer i = 100;
本质上是,编译器编译时自动添加:Integer i = new Integer(100);

 3.5.2.自动拆箱
包装类对象自动转换成基本数据类型。如:int a = new Integer(100);

本质是上,编译器编译时自动添加:int a = new Integer(100).intValue();

4.引用类型

4.1强引用(Strong Reference)

即使进行了多次的GC回收,即使JVM真的已经不够用了,即使JVM最终不得已抛出了OOM错误,那么该引用继续抢占;

4.2软引用(Soft Reference)

当内存空间不足时,可以回收此内存空间。如果充足则不回收,可以用其完成缓存的一些处理操作开发。
缓存:保证数据更快的操作(读取)。是不重要的数据。可以作为牺牲来释放空间。

4.3弱引用(Weak Reference):

不管内存是否紧张,只要一出现GC处理,则立即回收。

4.4幽灵引用(虚引用)(Phantom Reference):

和没有引用是一样的。
比如HashMap根据key取得值,设置key值为null和不设置key值的效果是一样的。

tips:
引用类型个人觉得写的比较好的:https://blog.csdn.net/KevinMite/article/details/83745080

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值