Java基础知识汇总系列(一)

1..数据类型

2.基本数据类型有8种,分别是boolean、byte、short、int、long、float、double、char。

3.Java是面向对象的语言,但基本数据类型不是对象,但考虑到其在编程中使用的频率极高,所以将基本数据类型设计为非对象类型,将其存储在栈中,使其存取速度要快于存放在堆中的对应包装类的实例对象。

4.所有的基本数据类型都使用了final修饰,因此无法继承他们扩展新的类,也无法重写他们的任何方法。

5.基本数据类型存放在栈内存中,而引用数据类型存放在堆内存中。栈内存中的数据读取效率要高于堆内存中的数据读取效率。

6.float是单精度浮点数,精度为6~7位有效数字;double是双精度浮点数,精度为15~16位有效数字,Java中声明的小数默认为double类型的,若声明float x = 0.1 会报错;虽然double精度比float高,但其内存开销是float的两倍,而且运算速度比float相比也较慢,所以能用float还是用float。

7.自动拆箱装箱机制实在代码编译时完成的,装箱阶段自动替换为valueOf()方法,拆箱阶段替换为xxxValue()方法。

8.对于 Integer 类型的 valueOf 方法参数如果是 -128~127 之间的值会直接返回内部缓存池中已经存在对象的引用,参数是其他范围值则返回新建对象;但是Double类型不管传入的参数是什么范围的,都会new一个对象来表达该值(因为在指定范围内,浮点型数据的个数是不确定的,而Integer类型的个数是可以确定的,所以可以缓存)。

9.对于两边都是包装器类型的比较,==比较的是对象的引用,equals比较的是对象的值,如果两边有一边有表达式的话,则会触发拆箱过程,最终比较的是对象的值;对于包装器类型,equals()不会进行类型转换,类型不一样,直接返回false.

猜你喜欢

转载自blog.csdn.net/zai_xia/article/details/81636810