java笔记13-包装类

包装类是基本数据类型的引用类型(把基本数据类型变成一个对象,有一些自定义的方法),他们有一一对应的关系。

包装类有8个:Byte Short Integer Long Float Double Character Boolean

类所在的包

  java.lang 不需要导包

类的关系

  1.5版本实现了自动的拆装箱可以自动的实现互相转化 Integer i =10;  int i=new Integer("10")

  8个包装类都实现了Serializable, Comparable接口

类对象的创建

  八个包装类都有带自己对应类型参数的构造方法

  八个包装类有七个含有String类型参数的构造方法重载(Character不存在重载)

  Integer i =new Integer(10);

  Integer i =new Integer("10");

类的方法

  方法都有很多相似性,这里用Integer举例

  Xxx=i.XxxValue();    将一个引用类型拆箱成基本类型(Xxx代表int float等基本数据类型) 

    这里引入两个概念:

      拆箱---将引用数据类型转换成基本数据类型

          装箱---将基本数据类型转换成引用数据类型

      java1.5版本之前必须手动的拆装箱,就要用到XxxValue()方法

int i = 200;
Integer obj = new Integer(m); // 手动装箱
int n = obj.intValue(); // 手动拆箱

      1.5版本就可以自动的拆装箱,因此XxxValue()方法基本用不到了

int i = 500;
Integer obj = m; // 自动装箱 等价于 Integer obj = Integer.valueOf(m);
int n = obj; // 自动拆箱

  int=Integer.parseInt()  将一个字符串转化成int,第二个参数是进制默认是10  字符串转化成int还可以用以下的几种方式

int value=Integer.parseInt("10"); //通过类方法将字符串转化成int
int value=new Integer("200").parseInt("10");//通过对象将字符串转化成int  ---正常没有这么干的,既然是静态方法就不用创建对象了
int value=new Integer("10"); //通过传字符串的构造方法创建对象在拆箱的方式
int value = Integer.valueOf("10").intValue();//先将String转化成Integer对象,再将Integer对象转化成基本int型

  Integer=Integer.valueOf();  将一个int类型转化成Integer对象 可以传int或者String类型 

Integer i =10; //等价于Integer i = Integer.valueOf(10);

  boolean=i.equals();   这个方法做了重写 object的equals方法和==是一样的比较的是内存地址 这里equals比较的是值

  这里有一道经典的题目

Integer i1=10;
Integer i2=10;
Integer i3=new Integer(10);
Integer i4=new Integer("10");
System.out.println(i1==i2);  //true  如果数值超过了Integer在常量池的取值范围-128至127 则创建时i1、i2会在堆中重新new一个对象返回false
System.out.println(i1==i3); //false
System.out.println(i1==i4); //false
System.out.println(i1.equals(i2));  //true  比的是数值 下同
System.out.println(i1.equals(i3));  //true
System.out.println(i1.equals(i4));  //true

 

  

  

  

  

 

 

 

 

 

 




 

 

 

  

posted @ 2019-06-15 10:39  国际惯例  阅读(168)  评论(0编辑  收藏  举报