u014270902的专栏

5.1 java8增强的包装类 自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)功能

package code;{(String [] args){//直接把一个基本类型变量赋给Integer对象Integer inObj = 5;//直接把一个boolean类型变量赋给一个Object类型的变量Object boolObj = true;//直接把一个Integer对象赋给int类型的变量int it = inObj;if(boolObj instanceof Boolean){//先把Object对象强制类型转换为Boolean类型,再赋给boolean变量boolean b = (Boolean)boolObj;System.out.println(b);}}}

当JDK提供了自动装箱和自动拆箱功能后,大大简化了基本类型变量和包装类对象之间的转换过程

把字符串类型的值转换为基本类型的值有两种方式: 1.利用包装类提供的parseXxx(String s )的静态方法,(除了Character); 2.利用包装类提供的Xxx(String s )构造器 将基本类型变量转换为字符串: 利用String类提供的多个重载valueOf()方法

package code;public class Primitive2String{(String[] args){String intStr = “123”;//把一个特定字符串转换成int类型int it1 = Integer.parseInt(intStr);int it2 = new Integer(intStr);System.out.println(it1);System.out.println(it2);String floatStr = “4.56”;float ft1 = Float.parseFloat(floatStr);float ft2 = new Float(floatStr);System.out.println(ft1);System.out.println(ft2);String ftStr = String.valueOf(2.345f);System.out.println(ftStr);//把一个boolean变量转换成String变量String boolStr = String.valueOf(true);System.out.println(boolStr.toUpperCase());}}

如果希望将基本类型装换成字符串,直接将基本类型和”“进行连接运算,系统会自动把基本类型变量转换成字符串,

package code;public class WrapperClassCompare{(String[]args){Integer a = new Integer(6);System.out.println(“6的包装类实例是否大于5.0” + (a > 5.0));System.out.println(“比较两个包装类的实例是否相等” + (new Integer(2) == new Integer(2)));//通过自动装箱,允许把基本类型赋值给包装类实例Integer ina = 2;Integer inb = 2;System.out.println(“两个2自动装箱后是否相等:” + (ina == inb));//trueInteger biga = 128;Integer bigb = 128;System.out.println(“两个128自动装箱后是否相等:” + (biga == bigb));//false//两个boolean类型比较时,true>falseSystem.out.println(Boolean.compare(true,false));System.out.println(Boolean.compare(true,true));System.out.println(Boolean.compare(false,true));}}

系统把一个-128~127之间的整数自动装箱成Integer实例,并放入一个名为cache的数组中缓存起来,如果以后把-128~127之间的整数自动装箱成一个Integer实例时,实际上是直接指向对应的数组元素,所以全部相等,但每次把一个不在-128~127范围内的整数自动装箱成Integer实例时,系统总是重新创建一个Integer实例,所以出现上述结果

package code;public class UnsignedTest{(String[]args){byte b = -3;//将byte类型的-3转换为无符号整数System.out.println(“byte类型的-3对应的无符号整型是” + Byte.toUnsignedInt(b));//指定使用十六进制解析无符号整数int val = Integer.parseUnsignedInt(“ab”, 16);System.out.println(val);//将-12转换为无符号int型,然后转换为十六进制的字符串System.out.println(Integer.toUnsignedString(-12,16));//将两个数转换为无符号整数后相除System.out.println(Integer.divideUnsigned(-4,2));//将两个数转换为无符号整数相除后求余System.out.println(Integer.remainderUnsigned(-2,7));}}

,一切都在发展变化,不断地向昨天告别,满怀信心地投入每一个崭新的今天。

u014270902的专栏

相关文章:

你感兴趣的文章:

标签云: