java 概览
一、八种基本类型(
六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型
)对应的包装类,jdk5之后提供的自动装箱和拆箱技术的运用。
1、byte -->Byte 包装类提供了byte和String(Byte.parseByte(String s)、Byte.toString()) 的相互转换,及到int 、long 、float、long等的转换
2、char-->Character 该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然
3、short--->Short
4、int-->Integer
5、long-->Long
6、float--->Float
7、double-->Double
8、boolean--->Boolean
二、深入解析
java的类型系统有两部分组成,基本类型和引用类型,每个基本类型都有一个对于的引用类型称作装箱基本类型。
自动装箱和自动的拆箱这些特性模糊了但没有完全抹去基本类型和装箱类型的区别。要很清楚使用的是那种类型,并做谨慎的选择。
三个主要区别:
第一:基本类型只有值,而装箱类型具有与他们的值不同的同一性。
第二:基本类型有功能完备的值,装箱类型除了有功能完备的值之外还有个非功能值,null
第三:基本类型必装箱类型更节省时间和空间
几点注意:
1、对装箱基本类型运用==操作符几乎总是错误的(需要注意==和equals的区别)
抛出空指针异常,主要原因在于 i是Integer而不是int,就像所用的对象引用域一样,默认值为null,进行(i==32)运算时,几乎在任何情况下,
当在一项操作中混合使用装箱类型和基本类型时,装箱类型就会自动拆箱,如果null对象被自动拆箱就会引发nullPointException异常。
2、注意设计上的性能问题
这段程序将sum声明为装箱基本类型,这样会在循环+=操作时出现反复的装箱和拆箱,导致性能问题。还有在使用时要时刻防止程序的空指针现象。
总之在可以选择的时候基本类型由于装箱类型。
但在必要时使用装箱类型肯能较为合理,如
1、你不能将基本类型放在集合中,因此必须使用装箱基本类型
2、在参数化类型中,必须使用装箱基本类型作为类型参数,java不允许使用基本类型,如,不能定义List<int>,而必须是List<Integer>
3、在进行反射的方法调用时,必须使用装箱基本类型。
String、StringBuilder、StringBuffer
理解 String,StringBuilder,StringBuffer的性能和区别。