zoukankan      html  css  js  c++  java
  • 基本类型包装类

    Java中有8种基本数据类型,但基本数据类型并不具备面向对象的特性。想进行面向对象的操作,需要通过基本类型的包装类来进行。

    其中需要注意int对应的包装类是Integer,char对应的包装类是Character,其他6个都是基本类型首字母大写即可。

     

    包装类的常用操作:

    • 1.字符串与基本类型的转换

    将字符串转成基本类型:

    Integr.parseInt(String s)

    将基本类型转换成字符串:

    1.基本类型通过 + 直接与 “” 连接

    2.调用String的valueOf(String s)方法

    3.调用包装类的toString(String s)法

    Integer类还有一个方法 toString(int i,int radix) ,可以将指定进制数值 i 转换成其对应的十进制基本类型

    Java中的进制最高支持36进制,因为(0-9,a-z)

    • 2.基本数值或字符串转换成包装类对象

    1.通过Integer类的构造方法 

    Integer i = new Integer(4);//使用构造函数函数

    Integer ii = new Integer("4");//构造函数中可以传递一个数字字符串

     

    2.通过Integer类的静态方法valueOf

    Integer valueOf(int i)

    Integer valueOf(String s)

    • 3.包装类对象转换成基本类型

    通过包装类的xxxValue()方法

    Integer.intValue()  

    自动装箱与自动拆箱

    自动装箱与自动拆箱是jdk1.5之后的特性。

    自动装箱指的是,基本数据类型自动转换为包装类对象。如Integer i = 1,相当于Integer i = Integer.valueOf(1);

    自动拆箱指的是,包装类对象自动转换为基本数据类型。如下代码

    Integer i = 1;
    i = i + 5;

    i=i+5  执行时,先计算i+5,此时发生了自动拆箱,将i转成int类型 ,等价于i.intValue() 。加法操作完成后自动装箱成Integer类型,然后赋值给i。

     

     

     

    Integer内部有一个byte常量池,自动装箱时,当数值在byte范围之内时,会先从常量池中获取。常量池中没有时才创建对象。

     

    Integer x = 127;

    Integer y = 127;

    System.out.println(x==y); //true

    System.out.println(x.equals(y)); //true

     

    Integer i = 128;

    Integer j = 128;

    System.out.println(i==j); //false

    System.out.println(i.equals(j)); //true

     

  • 相关阅读:
    Codeforces 1163E 高斯消元 + dfs
    Codeforces 1159E 拓扑排序
    Codeforces 631E 斜率优化
    Codeforces 1167F 计算贡献
    Codeforces 1167E 尺取法
    Gym 102007I 二分 网络流
    Codeforces 319C DP 斜率优化
    Codeforces 1163D DP + KMP
    Comet OJ
    Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?
  • 原文地址:https://www.cnblogs.com/shizunatsu/p/14385472.html
Copyright © 2011-2022 走看看