包装类

Posted lj-cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包装类相关的知识,希望对你有一定的参考价值。

由于基本类型本身没有方法和属性,所以为了快捷的操作这些数据,针对每一种基本类型提供了对应的类形式.

技术分享图片

自动封箱(底层会默认调用当前类中的valueOf()方法)

int i=6;
//将基本类型的变量直接赋值给了对应的引用类型的对象
Integer in=new Integer(i);
//Integer in=Integer.valueOf(i);    当数值范围在-128~127之间的时候(仅限于四种整数类型),返回了Integer.cache中对应下标上的值,超出范围则会返回一个新对象,可以用来判断自动封箱是调用valueOf方法来实现而不是创建对象得到的
System.out.println(in);

自动拆箱(底层会默认调用当前类中的intValue()方法)

Integer in=new Integer(10);
int i=in;
System.out.println(i);
//包装类型在和基本类型进行运算的时候,底层会自动拆箱
int i=128;
Integer in=128;
System.out.println(i==in);

整型和浮点型数据允许将字符串转化为对应类型(对象)或基本类型(变量)

 

特殊的:

 

Character 只能将字符转化为Character类型

 

Boolean 允许将字符串转化为对应类型,但结果不是true(忽略大小写)就是false

 

 

Integer in=new Integer("456");
System.out.println(in);

 

包装类提供了许多相似的方法

intValue           自动拆箱时底层会调用该方法

parseInt(character)   将字符串转化为相应的基本类型(变量)

 

int i=Integer.parseInt("-456");
System.out.println(i);

 

hashCode   字面量的哈希码都是固定的,输出的值是强转为int类型后的值((特殊的)boolean(true:1231)(false:1237)),区别于Object对象或其它对象可变的哈希码值。

补充:

 

字面量:整数、小数、字符、字符串、布尔、空

 

null的哈希码规定为0

 

所有的字面量都是存储在运行时常量池

 

常量池存储的是字面量以及自定义常量(final修饰的常量)

 

以上是关于包装类的主要内容,如果未能解决你的问题,请参考以下文章

如何包装所有片段(不在里面)or) with?

Java 封装

Java 封装

Java 封装

Java 封装

Java 封装