Integer
package com.Integer; public class Study01 { /** * 对象包装类的引入 * 基本数据类型没有什么方法,操作它的话比较麻烦,所以一般使用它的包装类进行操作 * int Integer * byte Byte * short Short * long Long * char Character * boolean Boolean * float Float * double Double * * Integer * final修饰 * 1.0开始 * * 构造方法: * Integer(int value) * Integer(String s) //只能放可以转换成int的参数,否则报错NumberFormatException * * 获取Integer方法: * static decode(String s) 将String解码成为Integer * getInteger(String num [,int val]) 获取String、转化成为的Integer,转换失败返回null,有默认值得话转换失败返回默认值 * static valueOf(String str) 返回保存String值得Integer对象 * static valueOf(String str,int radix) 保存String的值转化成为以radix为基数的Integer对象,(就是将String中的值转换成某种进制的Integer对象) * 获取int * intValue() 将Integer转化成为int * parseInt(String str) 解析String为int * parseInt(String str,int radix) 解析String为特殊进制的int * * static toString(int x)将x转换成为String * static toString(int x,int radix)将radix位的x转化成String * * 10进制转换到常用进制: * toBinaryString(int x)转成二进制 * toHexString(int x)转成16进制 * toOctalString(int x)转成8进制 * */ public static void main(String[] args){ Integer ii=Integer.getInteger("ss12",12); System.out.println(ii); } }
package com.Integer; public class Study02 { /* *JDK5的新特性:自动拆装箱 *装箱:把基本类型转换成为包装类类型 *拆箱:将包装类类型转换成基本类型 */ public static void main(String[] args){ /*Integer ii=100; ii+=200; System.out.println("ii:"+ii);*/ testInteger(); /* 相当于这样:*/ Integer ii = Integer.valueOf(100); ii = Integer.valueOf(ii.intValue() + 200); System.out.println((new StringBuilder("ii:")).append(ii).toString()); } public static void testInteger(){ /* * 看程序写结果 */ Integer i1=new Integer(127); Integer i2=new Integer(127); System.out.println(i1==i2); System.out.println(i1.equals(i2)); System.out.println("-------------"); Integer i3=new Integer(128); Integer i4=new Integer(128); System.out.println(i3==i4); System.out.println(i3.equals(i4)); System.out.println("-------------"); Integer i5=127; Integer i6=127; System.out.println(i5==i6); System.out.println(i5.equals(i6)); System.out.println("-------------"); Integer i7=128; Integer i8=128; System.out.println(i7==i8); System.out.println(i7.equals(i8)); System.out.println("-------------"); } /** 自动装箱实际上使用的是Integer.valueOf() 查看源码发现,针对-128~127之间的数据,做了一个数据缓存池,如果数据是该范围内的,每次不创建新对象,范围外每次创建新对象 public static Integer valueOf(int i) { final int offset = 128; if (i >= -128 && i <= 127) { // must cache return IntegerCache.cache[i + offset]; } return new Integer(i); } private static class IntegerCache { private IntegerCache(){} static final Integer cache[] = new Integer[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache[i] = new Integer(i - 128); } } */ }