Java-装拆箱及 int-String类型转换

jdk1.5之前

  • 装箱:Integer i = new Integer(10)

jdk1.5之后

  • Integer i = 5;装箱
  • int n = i; 拆箱
package com.shujia.wyh.day17;

/*
      需求1:求出100这个数据的二进制,八进制,十六进制。
      需求2:如何使用代码求出int类型等基本数据类型的范围呢?

      如果按照之前的做法,需求1我们可以按照数学逻辑一步一步计算,但是需求2,我们不知道从哪下手。
      如果说有一种办法,可以对基本数据类型进行更多的操作,更方便的操作就好了。
      Java针对每一个基本数据类型都提供了一个对应的类给我们使用,既然是类了,就可以创建对象,调用类中的方法来实现需求。
      这样的对应着每一个基本数据类型的类,称之为包装类。
      基本数据类型:            包装类类型:
      byte                   Byte
      short                  Short
      int                    Integer
      long                   Long
      float                  Float
      double                 Double
      char                   Character
      boolean                Boolean

      综上所述,每一个基本数据类型都一个对应的包装类,上课只举例int对应的包装类Integer

      包装类类型的使用场景:
        1、在今后的集合学习中会使用到(泛型)
        2、用于基本数据类型与字符串之间做转换
 */
public class PackClassDemo1 {
    public static void main(String[] args) {
        //需求1:求出100这个数据的二进制,八进制,十六进制。
        //int类型对应的包装类Integer
        //public static String toBinaryString(int i)在基数2中返回整数参数的字符串表示形式为无符号整数。
        String s = Integer.toBinaryString(100);
        System.out.println("100的二进制是:" + s);

        //public static String toOctalString(int i)在基数8中返回整数参数的字符串表示形式为无符号整数。
        String s1 = Integer.toOctalString(100);
        System.out.println("100的八进制是:" + s1);

        //public static String toHexString(int i)返回整数参数的字符串表示形式,作为16位中的无符号整数。
        String s2 = Integer.toHexString(100);
        System.out.println("100的十六进制是:" + s2);

        // 需求2:如何使用代码求出int类型等基本数据类型的范围呢?
        //static int MAX_VALUE  一个持有最大值一个 int可以有2 31 -1。
        //static int MIN_VALUE 的常量保持的最小值的 int可以具有,-2 31。
        //获取int类型的最大范围值
        System.out.println(Integer.MAX_VALUE);

        //获取int类型的最小范围值
        System.out.println(Integer.MIN_VALUE);



    }
}

package com.shujia.wyh.day17;

/*
        int类型与String类型做相互转换

        int -- String

        String -- int

 */
public class PackClassDemo2 {
    public static void main(String[] args) {
        //int -- String
        int num = 100;
        //方式1:
        String s1 = "" + num;
        System.out.println(s1);
        //方法2:(推荐第二种)
        String s2 = String.valueOf(100);
        System.out.println(s2);
        //方式3:
        //int -- Integer -- String
        Integer i = 100; //自动装箱 将基本数据类型的数据直接赋值给对应的包装类类型
//        System.out.println(i);
        //public String toString()返回String表示此对象Integer的价值。
        // 该值被转换为带符号的十进制表示形式,并作为字符串返回,就像将整数值作为toString(int)方法的参数给出。
        String s3 = i.toString();
        System.out.println(s3);

        System.out.println("===================================");
        //String -- int
        String string = "100";
        //方式1:
        //String -- Integer -- int
//        Integer decode = Integer.decode(string);
//        System.out.println(decode);
//        //public int intValue()将 Integer的值作为 int 。
//        int i1 = decode.intValue();
//        System.out.println(i1);
        //方式2:
        //String -- Integer -- int
        //Integer(String s)
        //构造一个新分配 Integer对象,表示 int由指示值 String参数。
        Integer integer = new Integer(string);
        int i2 = integer.intValue();
        System.out.println(i2);
        //方式3:(最常用的)
        //public static int parseInt(String s)将字符串参数解析为带符号的十进制整数。
        int i1 = Integer.parseInt("100");
        System.out.println(i1);

    }
}

posted @ 2022-03-30 11:11  a-tao必须奥利给  阅读(45)  评论(0)    收藏  举报