• Java 中的包装类


    Java 中的包装类

    相信各位小伙伴们对基本数据类型都非常熟悉,例如 int、float、double、boolean、char 等。基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。。。,为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。 

    基本类型和包装类之间的对应关系:

    包装类主要提供了两大类方法:

    1. 将本类型和其他基本类型进行转换的方法

    2. 将字符串和本类型及包装类互相转换的方法

    我们以 Integer 包装类为例,来看下包装类的特性。

    Integer 包装类的构造方法:

    如下代码所示:

    Integer包装类的常用方法:

    Java 中基本类型和包装类之间的转换

    基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦):

    在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。

    那什么是装箱和拆箱呢?我们分别来看下

    装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱

    // 自动封箱/拆箱是JDK1.5的特性之一
    // 将基本类型的数据直接赋值给了对应的引用类型的对象 --- 自动封箱
    // 自动封箱在底层会默认调用Integer类身上的静态方法valueOf
    Integer in = Integer.valueOf(i);
    Integer in = i;

    拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱

    Integer in = new Integer(5);
    // 将引用类型的对象直接赋值给了对应的基本类型的变量 --- 自动拆箱
    // 自动拆箱在底层会默认调用对象身上的***Value()
    // int i = in.intValue();
    int i = in;

    实例:

    public class IntegerDemo2 {
    
        public static void main(String[] args) {
    
            // Integer i1 = Integer.valueOf
            // 如果值不在-128~127范围内
            // 底层的valueOf方法是调用了构造方法来返回一个新的对象
            // 如果值在-128~127的范围内的时候
            // 从cache数组中的对应下标位置上取值
            Integer i1 = -125;
            Integer i2 = -125;
    
            System.out.println(i1 == i2);
    
            Integer in = 400;
            int i = 400;
            // 当包装类和对应的基本类型在运算的时候会进行自动拆箱
            System.out.println(in == i);
    
        }
    
    }

    Java 中基本类型和字符串之间的转换

    在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。

    其中,基本类型转换为字符串有三种方法:

    1. 使用包装类的 toString() 方法

    2. 使用String类的 valueOf() 方法

    3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

    再来看,将字符串转换成基本类型有两种方法:

    1. 调用包装类的 parseXxx 静态方法

    2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

    注:其他基本类型与字符串的相互转化方法都类似

    实例:

    public class IntegerDemo3 {
    
        public static void main(String[] args) {
    
            Integer in = new Integer("-284");
            System.out.println(in);
    
            int i = Integer.parseInt("259");
            System.out.println(i);
    
            Double dou = new Double("3.954");
            System.out.println(dou);
    
            // 不考虑大小写的情况只要不是true那么就是false
            Boolean b = new Boolean("true");
            System.out.println(b);
    
            // NaN是唯一的一个值
            // NaN与任何东西都不相等,包括自己本身
            // System.out.println(Double.NaN == Double.NaN);
            System.out.println(Double.isNaN(5.8 / 4.32));
        }
    
    }

    运行结果:

    -284
    259
    3.954
    true
    false

    Character 方法

    下面是Character类的方法:

    序号方法与描述
    1 isLetter()
    是否是一个字母
    2 isDigit()
    是否是一个数字字符
    3 isWhitespace()
    是否是一个空格
    4 isUpperCase()
    是否是大写字母
    5 isLowerCase()
    是否是小写字母
    6 toUpperCase()
    指定字母的大写形式
    7 toLowerCase()
    指定字母的小写形式
    8 toString()
    返回字符的字符串形式,字符串的长度仅为1

    对于方法的完整列表,请参考的 java.lang.Character API 规范。

     

     

     

     

  • 相关阅读:
    python的multiprocessing模块进程创建、资源回收-Process,Pool
    python在windows和linux环境的进程对比
    python的引用计数分析(二)
    python的计数引用分析(一)
    如何让每个 WordPress 页面有不同的风格或者样式
    linux教程网站
    cacati的安装
    让PHPCms内容页支持JavaScript_
    lnmp服务器的目录信息
    nginx配置
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9501325.html
Copyright © 2020-2023  润新知