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方法
    }
}
相关文章
|
2月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
114 4
|
2月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
204 5
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
196 1
|
2月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
244 1
|
2月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
198 1
|
2月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
217 1
|
2月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
315 5
|
3月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
263 101
|
3月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
300 100
|
4月前
|
缓存 安全 Java
Java反射机制:动态操作类与对象
Java反射机制是运行时动态操作类与对象的强大工具,支持获取类信息、动态创建实例、调用方法、访问字段等。它在框架开发、依赖注入、动态代理等方面有广泛应用,但也存在性能开销和安全风险。本文详解反射核心API、实战案例及性能优化策略,助你掌握Java动态编程精髓。