Java数据类型转换
1 public static void main(String[] args) { 2 //包装类转基本数据类型 3 Integer in1=new Integer(12); 4 int i1=in1.intValue(); 5 Float in2=new Float(12.3); 6 float i2=in2.floatValue(); 7 //or 自动拆箱 8 Integer in=new Integer(13); 9 int in4=in; 10 11 //基本数据类型转包装类 12 int num=10; 13 Integer n2=new Integer(num); 14 //or 自动装箱 15 int i3=10; 16 Integer in3=i3; 17 boolean b1=true; 18 Boolean b2=b1; 19 20 //基本数据类型、包装类转String 21 int num1=10; 22 //method1 连接运算 23 String str1=num1+""; 24 //method2 调用String重载的ValueOf(Xxx xxx) 25 String str2=String.valueOf(num1); 26 27 //String转基本数据类型、包装类 28 String str="123"; 29 //int num2=(int)str; wrong 30 //Integer num3=(int)str;wrong 31 //能强制转化的一定要满足子父类的关系 32 //转化的时候要保证两个类型间是可以转的,比如"123a"不能转换到int,否则NumberFormatException 33 //调用包装类的parseXxx() 34 int num4=Integer.parseInt(str); 35 }
1 public static void main(String[] args) { 2 //String转char[] 调用String的toCharArray(); 3 String str="abc123"; 4 char[] array=str.toCharArray(); 5 for(int i=0;i<array.length;i++) 6 { 7 System.out.println(array[i]); 8 } 9 10 //char[]转String 11 char[] arr=new char[] {'b','e','s','t'}; 12 String str2=new String(arr); 13 System.out.println(str2); 14 }
Integer内部定义了IntegerCache结构,该结构中定义了Interger[]数组,保存从-127~128范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在-128~127中,可以直接查找数组中的元素,不再去new了。目的是为了提高Integer在装箱时的效率。
1 Integer m=1; 2 Integer n=1; 3 System.out.println(m==n);//true 4 Integer x=128; 5 Integer y=128; 6 System.out.println(x==y);//false