Java基础——基本类型包装类型的引入

Posted nwxayyf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础——基本类型包装类型的引入相关的知识,希望对你有一定的参考价值。


基本类型包装类型的引入

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之间的数据,做了一个数据缓冲池,如果是该范围以内的数据,调用时候不会创建对象。
如果超过就会创建对象。

 




































































































































以上是关于Java基础——基本类型包装类型的引入的主要内容,如果未能解决你的问题,请参考以下文章

3.6 java基础总结①包装类,基本数据类型,String相互间转换

java基础-基础类型包装类型

深入Java基础——基本数据类型及其包装类

Java基础知识(JAVA基本数据类型包装类)

Java基础(34):Java中基本数据类型的包装类(主要为了不同数据类型之间更方便的进行转换)

初识八大基本数据类型的包装类——Java面向对象基础(25)