美文网首页
包装类_Integer

包装类_Integer

作者: 御都 | 来源:发表于2019-07-25 22:12 被阅读0次

1 构造方法

image.png
package cn.itcast_Integer;
/*
 * 构造方法
 * public Integer(int value)
 * public Integer(String s),字符串s必须是由数字组成的,否则编译报错
 */
public class TestInteger02 {
    public static void main(String[] args) {
        int i = 200;
        Integer it = new Integer(i);
        String s = "300";
        Integer it2 = new Integer(s);
        System.out.println("it = "+it);
        System.out.println("it2 = "+it2);
        ;
    }
}

运行结果

it = 200
it2 = 300

2 和int之间的转换(JDK1.5后实现自动拆装箱)

image.png
/*
 * 1.5后的新特性,自动装拆箱
 * 自动装箱:int--->Integer
 * 自动拆箱:Integer--->int
 * 注意,在做自动拆装箱前需要判断Integer对象不是null,否则调用intValue方法
 * 时会报错null;
 */
public class TestInteger4 {
    public static void main(String[] args){
        /*Integer i = 100;
        i +=100;
        System.out.println("i = "+i);*/
        
        //编译的实际内容是
        Integer i = Integer.valueOf(100);
        if(i != null){
        i = Integer.valueOf(i.intValue()+100);
        }
        System.out.println(new StringBuilder().append("i = ").append(i).toString());
        
    }
}

运行结果:

i = 200

2.2 Integer直接赋值,范围[-128,127],直接从缓冲池中获取数据

package cn.itcast_Integer;

//import java.lang.Integer.IntegerCache;

/*
 * 1.5后新特性,Integer直接赋值,范围[-128,127],直接从缓冲池中获取数据
 * 查看Integer.valueOf(int i)的源码可解释
 */
public class TestInteger5 {
    public static void main(String[] args) {
        Integer i = new Integer(127);
        Integer i2 = new Integer(127);
        System.out.println(i == i2);//f
        System.out.println(i.equals(i2));
        System.out.println("------------------------");
        
        Integer i3 = new Integer(128);
        Integer i4 = new Integer(128);
        System.out.println(i3 == i4);//f
        System.out.println(i3.equals(i4));
        System.out.println("------------------------");
        
        Integer i5 = 127;//Integer.valueOf(127)
        Integer i6 = 127;
        System.out.println(i5 == i6);//t
        System.out.println(i5.equals(i6));
        System.out.println("------------------------");
        
        Integer i7 = 128;
        Integer i8 = 128;
        System.out.println(i7 == i8);//f
        System.out.println(i7.equals(i8));
        System.out.println("------------------------");
        
        /*
         * 源码内容:
         * public static Integer valueOf(int i) {
            final int offset = 128;
            if (i >= -128 && i <= 127) { // must cache 
            从缓存池中取数据
                return IntegerCache.cache[i + offset];
            }
            开辟新的地址空间
                return new Integer(i);
            }*/
    }
}

3 实现String转换为int(字符串是由数字组成的)

image.png
/*Integer的成员方法实现String转换为int:
 *静态方法: public static int parseInt(String s)
 *非静态方法:public int intValue()
 * 
 * String -->int,public static int parseInt(String s)
 * int -->String ,String.valueOf(int)(最常用)

 */
public class TestInteger3 {
     public static void main(String[] args) {
        int i = 100;
        // int -->String 
        String s = "" + i;
        //最常用
        String s2 = String.valueOf(i);
        //public String toString()
        String s3 = new Integer(i).toString();
        //public static String toString(int i)
        String s4 = Integer.toString(i);
        System.out.println(s+s2+s3);
        System.out.println("-----------------");
        
        //String -->int
        int i2 = Integer.parseInt(s4);
        System.out.println("i2 = "+i2);
        int i3 = new Integer(s4).intValue();
    }
}

4 进制字符串和Int之间的转换

public static String toString(int i, int radix)实现Int转换为各种进制的字符串,public static int parseInt(String s int radix)实现各种数字型的字符串转化为个中进制对应的Int

/*
 * 1 输出100的2进制 8进制 16进制数
 * 2 判断一个数是否是int范围内
 * 10进制到其他进制,进制的范围是[2,36]
 * public static String toString(int i, int radix):以racix的进制表示i的字符串
 * 
 */
public class TestInteger {
    public static void main(String[] args) {
        System.out.println(Integer.toBinaryString(100));//1100100
        System.out.println(Integer.toOctalString(100));//144
        System.out.println(Integer.toHexString(100));//64
        System.out.println("MAX = "+Integer.MAX_VALUE);//MAX = 2147483647
        System.out.println("Min = "+Integer.MIN_VALUE);//Min = -2147483648
        
        System.out.println("------------------------");
        System.out.println(Integer.toString(100, 10));//100
        System.out.println(Integer.toString(100, 2));//1100100
        System.out.println(Integer.toString(100, 8));//144
        System.out.println(Integer.toString(100, 16));//64
        System.out.println(Integer.toString(100, 32));//34
        
        System.out.println("---------------------------");
        System.out.println(Integer.parseInt("100", 2));//4
        System.out.println(Integer.parseInt("100", 8));//64
        System.out.println(Integer.parseInt("100", 10));//100
        System.out.println(Integer.parseInt("100", 16));//256
        System.out.println(Integer.parseInt("100", 36));//1296
        
    }
}

相关文章

  • JAVA常用类

    一.包装类 1.基本类型的包装类 (1)Integer 类 Integer 构造方法: ①:Integer(int...

  • Integer Integer.valueOf和Integer.

    Integer Integer是int的包装类,在Integer中有个常量池类IntegerCache,在 In...

  • Java基本类型与包装类

    基本类型与包装类 Integer包装类的构造方法示例: int i =2;Integer m = new Inte...

  • 包装类_Integer

    1 构造方法 运行结果 2 和int之间的转换(JDK1.5后实现自动拆装箱) 运行结果: 2.2 Integer...

  • JAVA:包装类

    包装类:  Java中的包装类包括:Integer、Long、Short、Byte、Character、Doubl...

  • JAVA—包装类

    一、技术总结1、以Integer为例,创建包装类Integer ig=new Integer(10); //in...

  • int和Integer的区别

    int和Integer的区别 , int vs Integer Integer是int的包装类,int则是java...

  • Integer和int

    1. Integer(int包装类) 1.1 介绍 Integer在java中,包装了基本类型int的值,此外还提...

  • Java常用类以及常用方法

    一、基本数据类型包装类 Integer、Byte、Float、Double、Character等包装类; Inte...

  • 计算机基础知识分享-6(Integer与int)

    Integer与int的区别 Integer 是 int 的包装类 Integer 的初始值是 null, int...

网友评论

      本文标题:包装类_Integer

      本文链接:https://www.haomeiwen.com/subject/rkwkrctx.html