Java — 基本包装类等

1.基本包装类
//包装类
        /*
        byte -> Byte
        short ->  Short
         int -> Integer
         long -> Long
         float -> Float
         double -> Double
         char -> Character
         boolean -> Boolean
         */
//基本数据类型变为包装类的好处:可以调用很多方便的方法
 //2.可以用于基本数据类型和字符串的转换
        //演示:
        System.out.println(Integer.toBinaryString(60));
        //将这个60转成二进制数,并以字符串形式表示
        System.out.println(Integer.toOctalString(60));//8进制
        System.out.println(Integer.toHexString(60));//16进制
2. int包装类-> Integer
//Integer
        //Integer 类在对象中包装了一个基本类型int值
        //该类提供了多个方法,能再int类型和String类之间转换
        //还提供了处理int类型时非常有用的一些方法

//1.构造方法 Integer(int value)  / Integer(String s)
        Integer inte1 = new Integer(80);
        System.out.println(inte1);

 Integer inte2 = new Integer("89");//用这个构造必须字符串指向的是数值类型的
        System.out.println(inte2);

    //2.获取int的最大值和最小值
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
3. int和String的转换
//int 和 String进行转换
        //a: int to String
        //0. 和""拼接
        int num1 = 100;
        String result = num1 + "";
        System.out.println(result);
        //1. public static String valueOf(int i)

        //2. Integer类的toString方法
       
        //3. public static String toString(int i )
        String str = Integer.toString(80);

        //b: String to int
        //1. String -> Integer -> int

        //2. public static int parseInt(String s);
        int num = Integer.parseInt("89");
        System.out.println(num);

4.JDK5的新特性-自动装箱和拆箱
//JDK5 新特性
        //自动装箱:把基本类型转换为包装类类型
        //自动拆箱:把包装类型转换为基本类型
        //演示:
       //没有自动拆装箱时:
        int num = 100;
        Integer i = new Integer(num);
        //将基本数据类型包装为对象--手动装箱

        //手动拆箱
        int y = i.intValue();

        //自动的
       Integer i2 = 100; //现在可以直接赋值了,自动装箱
        int num3 = i2 + 299;  //自动拆箱
        System.out.println(num3);
        //底层和手动是做一样的事情
        //注意: Integer i3 = null;时,就不能用这个自动拆箱了
5. Integer常见面试题
 //常见面试题
        Integer i1 = new Integer(97);
        Integer i2 = new Integer(97);
        System.out.println(i1 == i2);
        System.out.println(i1.equals(i2));
        //答案:false/true
        //解释:第一个比较地址值,是两个对象不一样。 一般类都会重写Object类的equals方法。自己去看
        System.out.println("-----------------");

        Integer i3 = new Integer(197);
        Integer i4 = new Integer(197);
        System.out.println(i3==i4);
        System.out.println(i3.equals(i4));
        //答案:
        //解释:
        System.out.println("------------------");

         Integer i5 = 127;
        Integer i6 = 127;
        System.out.println(i5 == i6);
        System.out.println(i5.equals(i6));
        System.out.println("---------------------");


        Integer i7 = 128;
        Integer i8 = 128;
        System.out.println(i7 == i8);
        System.out.println(i7.equals(i8));

       //这两道题结合起来看,当为128时,==号比较是false的
        //这是因为:-128 到 127 是byte的取值范围,在这个范围中,会自动装箱,在常量中获取
        //如果超过了byte的取值范围,那么会重新创建对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容