标签:相关 oat als 一些事 通过 方法 cte val 关系
基本类型包装类型的引入
1.概述
基本类型就是我们之前所说的类似int、String、float等常用的一些数据类型,这一些是基本的数据类型,为了对基本类型数据进行更多的操作
,以及更方便的操作,Java针对每一种数据类型提供了相应的类类型,即包装类型。
2.对应关系
byte(Byte)、short(Short)、int(Integer)、long(Long)、float(Float)、double(Double)、char(Character)、boolean(Boolean)
3.详解
(1).Integer类的构造方法
public Integer(int value)
public Integer(String str)
(2).Integer的成员方法
String-->int
String.valueOf(number);
int--->String
Integer.parseInt(str)
(3).Integer的进制转化
public static String toBinaryString(int i);//十进制转二级制
public static String toOctalString(int i);//十进制转八级制
public static String toHexString(int i);//十进制转十二级制
(4).JDK5的自动拆装箱
自动装箱:把基本类型转化为包装类型
自动拆箱:把包装类型转化为基本类型
在自动拆装箱的时候需要注意空指针的情况。
代码举例:
public class Test {
public static void main(String[] args) {
int i=10;
String str="100";
//Integer的构造方法测试
Integer tg =new Integer(i);
System.out.println("test is:"+tg);
Integer tg1 =new Integer(str);
System.out.println("test is:"+str+"---"+tg1);
System.out.println("-----------------------");
//int类型和String类型之间的相互转化
//String--->int
int getValue=Integer.parseInt(str);
System.out.println("test1 is:"+getValue);
//int--->string
String getStr=i+"";
String getStr1=String.valueOf(i);
System.out.println("test1 is:"+getStr+"---"+getStr1);
System.out.println("-----------------------");
//进制转化测试
System.out.println("test2 10-->2:"+Integer.toBinaryString(i));
System.out.println("test2 10-->8:"+Integer.toOctalString(i));
System.out.println("test2 10-->12:"+Integer.toHexString(i));
System.out.println("-----------------------");
//自动拆装测试
Integer t=100;
t+=20;
System.out.println("i:"+t);
//源码
/*Integer t=Integer.valueOf(100);
t=Integer.valueOf(t.intValue()+20);*/
}
}
//输出结果:
test is:10
test is:100---100
-----------------------
test1 is:100
test1 is:10---10
-----------------------
test2 10-->2:1010
test2 10-->8:12
test2 10-->12:a
-----------------------
i:120
(5).Integer的相关面试题
A:Integer i=1;i+=1;做了哪一些事情
解:Integer i=1:基本类型到引用类型,属于自动装箱
i+=1;引用类型到基本类型,先自动拆箱,然后又自动装箱
B:看程序写结果:
public class Test {
public static void main(String[] args) {
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(127);
Integer i4=new Integer(127);
System.out.println(i3==i4);
System.out.println(i3.equals(i4));
System.out.println("************************************8");
Integer i5=128;
Integer i6=128;
System.out.println(i5==i6);
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integer i7=127;
Integer i8=127;
System.out.println(i7==i8);
System.out.println(i7.equals(i8));
System.out.println("-----------");
}
}
//输出结果:
false
true
-----------
false
true
************************************
false
true
-----------
true
true
-----------
分析:
a:由于equals比较的是存在在里面的值,所以都是true
b:通过查源码我们知道,征服你-128~127之间的数据,做了一个数据缓冲池,如果是该范围以内的数据,调用时候不会创建对象。
如果超过就会创建对象。
标签:相关 oat als 一些事 通过 方法 cte val 关系
原文地址:https://www.cnblogs.com/nwxayyf/p/9484647.html