Java八大常用类(二) 包装类

简介: 常用类 1 包装类引入包装类均位于java.lang 包基本数据类型 包装类byte Byteboolean Booleanshort Shortchar Characterint Integerlong Longfloat Floatdouble Double优点:(1)某些方法的参数必须是对象,为了让基本数据类型的数据作为参数,提供包装类(2)包装类还可以提供更多功能(3)其他的特别重要的功能:比如可以实现字符串和基本数据类型之间的转换package oop2.demo05; /* 包装类的作用 */public cla

常用类 1 包装类

引入

包装类均位于java.lang 包

基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double

优点:

(1)某些方法的参数必须是对象,为了让基本数据类型的数据作为参数,提供包装类

(2)包装类还可以提供更多功能

(3)其他的特别重要的功能:比如可以实现字符串和基本数据类型之间的转换

package oop2.demo05;
    /*
    包装类的作用
     */
public class TestA {
    public static void main(String[] args) {
        String a = "10";
        int aa = 10;   //基本数据的类型
        Integer bb = new Integer(10);   //包装类表示的数据
        int i = Integer.parseInt(a);    //把String类型的数据转成int类型,a被转成int类型并存入i中
        int c = i * aa;           //
        //   Integer.parseInt()    常用:转化为int型
        //    Double.parseDouble()    转为为double型,其他的以此类推
        System.out.println(i);
        System.out.println(c);
        System.out.println(Integer.SIZE);    //32
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }
}

自动装箱、自动拆箱

自动装箱 基本数据类型 ---> 包装类

自动拆箱 包装类---> 基本数据类型

package oop2.demo05;
//基本类型的数据和包装类之间的相互转化
public class TestB {
    public static void main(String[] args) {
        int aa = 10;
        Integer bb = new Integer(aa);    //把基本的数据类型转为包装类
        int cc = bb.intValue();    //把包装类转成基本类型
       /*
        自动装箱   基本数据类型 ---> 包装类
        自动拆箱   包装类---> 基本数据类型
         */
        int a = 10;
        Integer b = a;     // 这是JDK的自动装箱  底层使用的是Integer.valueOf() 完成自动装箱过程
        int c = b;   //自动拆箱
                    // 底层使用intValue()完成自动拆箱的过程
    }
}

自动装箱、自动拆箱的使用

注意:

  1. JDK1.5 以后,增加了自动装箱和自动拆箱的功能。
  2. 自动装箱调用valueOf() 方法,而不是new Integer()方法
  3. 自动拆箱调用xxxValue() 方法
  4. 包装类在自动装箱时,为了提高效率,对于-128~127之间的值会进行缓存处理。超过范围后,对象之间不能再使用==进行数值比较,而是使用equals方法
package oop2.demo05;
public class TestC {
    public static void main(String[] args) {
        int a = 10;
        Integer b = 10;   //自动装箱
        System.out.println(a==b);            //自动拆箱   ture     b拆箱
        System.out.println(b.equals(a));     //自动装箱   ture     a装箱,判断a的值是否与b的值相同
        //==================================================================================
        Integer aa = new Integer(10);
        Integer bb = new Integer(10);
        System.out.println(aa == bb);        //False  aa与bb同一类型,不发生拆箱装箱。new两次Integer 缓存的物理地址不一样
        System.out.println(aa.equals(bb));   //true
        //======================================================================================
        Integer aaa = 122;    //自动装箱         在-128~127之内
        Integer bbb = 122;    //自动装箱
        System.out.println(aaa == bbb);         //true     aaa和bbb在-128~127之内,,此种写法,他们是同一类型,同一对象
        System.out.println(aaa.equals(bbb));    //true
        //======================================================================================
        Integer aaaa = 233;        //在-127~128之外,同一类型,同一对象
        Integer bbbb = 233;
        System.out.println(aaaa==bbbb);   //false   aaa和bbb在-128~127之外,相当于new两次Integer,导致了他们的物理地址不一致
        System.out.println(aaaa.equals(bbbb));   //这种情况下,只比较值大小是否相等,只能用equals方法
    }
}
相关文章
|
1天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
13 6
|
3天前
|
IDE Java 编译器
Java:如何确定编译和运行时类路径是否一致
类路径(Classpath)是JVM用于查找类文件的路径列表,对编译和运行Java程序至关重要。编译时通过`javac -classpath`指定,运行时通过`java -classpath`指定。IDE如Eclipse和IntelliJ IDEA也提供界面管理类路径。确保编译和运行时类路径一致,特别是外部库和项目内部类的路径设置。
|
2天前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
9 2
|
3天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。
【10月更文挑战第14天】从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。本文深入探讨Set的核心理念,并通过示例代码展示了HashSet和TreeSet的特点和应用场景。
8 2
|
3天前
|
存储 Java 索引
Java 中集合框架的常见接口和类
【10月更文挑战第13天】这些只是集合框架中的一部分常见接口和类,还有其他一些如 Queue、Deque 等接口以及相关的实现类。理解和掌握这些集合的特点和用法对于高效编程非常重要。
|
8天前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
21 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
10天前
|
存储 安全 Java
Java零基础-Java类详解
【10月更文挑战第2天】Java零基础教学篇,手把手实践教学!
13 2
|
12天前
|
Java 数据安全/隐私保护
java类和对象
java类和对象
19 5
|
12天前
|
存储 Java 编译器
【一步一步了解Java系列】:认识异常类
【一步一步了解Java系列】:认识异常类
19 2
|
10天前
|
存储 安全 Java
Java基础-Collection类关系图
Java基础-Collection类关系图
11 0