Java常用类——包装类

35.Java常用类

1.包装类(Wrapper Class)

  • Java并不是纯面向对象的语言,Java是一个面向对象的语言,但是Java的基本数据类型却不是面向对象的!

  • 但是在我们的实际生活使用中,经常需要将基本数据转化为对象,便于操作。

  • 包装类均位于 Java.lang 包中

  • 包装类和基本数据类型的对应关系

    基本数据类型包装类
    byteByte
    booleanBoolean
    shortShort
    charCharacter
    intInteger
    floatFloat
    longLong
    doubleDouble
  • 所有的数字类型基本数据的包装类都继承了一个叫Number的抽象类,所以他们的方法比较相似,这里以Byte为例。

package com.wrapper.demo;

public class demo1 {
    public static void main(String[] args) {

        byte a = 1;
        byte b = 10;
        Byte aByte = new Byte(a);
        Byte bByte = new Byte(b);
        System.out.println(aByte.byteValue());  // 获取byte值
        System.out.println(aByte.toString());  //  变成字符串输出
        System.out.println(aByte.compareTo(b));  // -9 两个Byte做差 x - y
        System.out.println(bByte.compareTo(a));  // 9
        System.out.println(aByte.doubleValue());  // 转为double类型
        System.out.println(aByte.floatValue());   // 转化为float类型
        System.out.println(aByte.equals(1));  // 判断类型和数值是否相等
        System.out.println(aByte.hashCode() == 1);  // 转化为int类型
        System.out.println(aByte.intValue() == 1);  // 转化为int类型 , 效率更高
        System.out.println(aByte.longValue());  // 转化为long类型
        System.out.println(aByte.getClass());  // 获取类

    }

}
  • 此外,每个包装类还有他们各自实现的接口方法

    package com.wrapper.demo;
    
    public class Demo2 {
        public static void main(String[] args) {
    
            System.out.println(Integer.max(2, 3));  // 两个整数比大小
            System.out.println(Integer.MAX_VALUE);  // 最大int
            System.out.println(Integer.MIN_VALUE);  // 最小int
            System.out.println(Integer.toString(1, 10));  //返回String
    
            System.out.println(Integer.toHexString(1000));  // 转换成16进制,并以字符串形式返回
            System.out.println(Integer.parseInt("123"));  // 将字符串转化为数字
        }
    }
    
  • 自动装箱与自动拆箱 (JDK5之后的特性)

    • 自动装箱

      • 基本类型自动的分装到他们的包装类中我们称之为自动装箱
      Integer i = 123;
      
      • 本质上编译器帮我们自动调用了Integer的构造器
    • 自动拆箱

      • 包装类自动转化为基本数据类型数据

        int i = new Integer(123);
        
      • 本质上编译器自动帮我们调用了intValue方法

        int i = new Integer(123).intValue;
        
package com.wrapper.demo;

public class Demo3 {
    public static void main(String[] args) {

        Integer integer = null;
//        int i = integer;  // NullPointerException    integer.intValue()

//        缓存问题
        Integer integer1 = 128;
        Integer integer2 = 128;
        Integer integer3 = 127;
        Integer integer4 = 127;
        System.out.println(integer3.equals(integer4));// true   [-128,127]之间的数任然被当做基本数据类型处理
        System.out.println(integer3 == integer4);// true
        System.out.println("===========================");
        System.out.println(integer1.equals(integer2));  // true   安全的比较
        System.out.println(integer1 == integer2);  // false
        System.out.println("===========================");
        String str = "";
        System.out.println(str.equals(""));   //true
        System.out.println(str == "");        //true  字符串比较时,最好两种都加上


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pointer-faker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值