包装类
//手动装箱,,jdk5以后可以实现自动拆装箱,底层仍然使用手动拆装箱操作 int n1 = 11; Integer a = new Interger(n1); //或者 Integer a = Integer.valueOf(n1);//【自动装箱的底层操作】 //手动拆箱 int b = Integer.intValue(a);
三元运算符中精度最高为Double,所以是1.0
包装类和String转换:
//包装类------》String类型 //以integer为例 Integer i = 10; String is1 = i.toString(); //或 String is2 = String.valueOf(i); //或 String is3 = i + ""; //String类型-------->包装类 Integer i = new Integer(is1);//使用构造器 //或 Integer i = Integer.valueOf(is1); //上述两种方法源码底层都调用parseInt方法 Integer i = Integer.parseInt(is1);
包装类常用方法: ( == 比较运算符, 比较的双方,只要有基本数据类型,比较的就是值,否则是地址)
Integer和Character:
Integer.MIN_VALUE 最小值, Integer.MAX_VALUE 最大值
Character.isDigit('1') 判断字符是否是数字
Character.isLetter('a') 判断字符是否是字母
Character.isUpperCase('a') 判断字符是否是大写
Character.isLowerCase('a') 判断字符是否是小写
Character.isWhiterspace('a') 判断字符是否是空格
Character.toUpperCase('a') 将字符转换成大写
Character.toLowerCase('b') 将字符转换成小写
Integer包装类的valueOf方法 源码:
//源码 //IntegerCache.low 定义为-128 IntegerCache.high 定义为127 //[-128,127]为Integer的缓存值,当i属于这个范围的时候,会直接从缓存中读取并返回。 public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
//这里主要是看范围 -128 ~ 127 就是直接从内存返回 因此第一个是True,第二个是False //,否则,就 new Integer(xx); Integer i1 = 1 Integer i2 = 1 System.out.println(i1 == i2)// True Integer i1 = 128 Integer i2 = 128 System.out.println(i1 == i2)// False