ITPub博客

首页 > 应用开发 > > Java中的基本类型包装类 Integer 类该怎么使用?

Java中的基本类型包装类 Integer 类该怎么使用?

作者:u_509a2a8fdb46 时间:2019-10-24 17:44:24 0 删除 编辑

1 、概述

Integer 类在对象中包装了一个基本类型 int 值

Integer 类提供了很多方法,能在 int 类型和 String 类型之间相互转换

 package zhengshu;

public class IntegerDm {

    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("---------------------------");

System.out.println(Integer.MAX_VALUE);// 代表 int 所能表示的最大值

System.out.println(Integer.MIN_VALUE);// 代表 int 所能表示的最小值

    }

}

String 类型转换成 int 类型:

package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        int i1 = 100;

System.out.println("i1 的值为: "+i1);

        Integer i2 = new Integer(i1);

System.out.println("i2 的值为: "+i2);

        String s1 = "100";

Integer i3 = new Integer(s1);// 字符串转换成数字,前提是这个字符串是由数组字符组成

System.out.println("i3 的值为: "+i3);

    }

}

2 、构造方法

public Integer(int value)

public Integer(String s)

3 、成员方法

public int intValue()

public static int parseInt(String s)

public static String toString(int i)

public static Integer valueOf(int i)

public static Integer valueOf(String s)

 package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        //int -> Stirng

        int i1 = 100;

        String s1 = ""+ i1;//int -> Stirng

System.out.println(s1);// 输出字符串

String s2 = String.valueOf(i1);//int -> Stirng, 返回给定参数的原生 Number 对象值

        System.out.println(s2);

        Integer i2 = new Integer(i1);

        System.out.println(i2);

        String s3 = Integer.toString(i1);

        System.out.println(s3);

        System.out.println("------------------------");

        //String -> int

        String st1 = "200";

        Integer in1 = new Integer(st1);

        System.out.println(in1);

        int in2 = in1.intValue();

        System.out.println(in2);

System.out.println(Integer.parseInt(st1));//parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析

    }

}

4 、常用的基本进制转换

public static String toBinaryString(int i)

public static String toOctalString(int i)

public static String toHexString(int i)

5 、十进制转到其他进制

public static String toString(int i,int radix)

6 、其他进制转到十进制

public static int parseInt(String s,int radix)

 package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

System.out.println(Integer.toBinaryString(100));// 十进制转二进制

System.out.println(Integer.toOctalString(100));// 十进制转八进制

System.out.println(Integer.toHexString(100));// 十进制转十六进制

        System.out.println("---------------------------");

// 十进制转到其他进制

System.out.println(Integer.toString(100,2));// 十进制转二进制

System.out.println(Integer.toString(100,8));// 十进制转八进制

System.out.println(Integer.toString(100,16));// 十进制转十六进制

System.out.println(Integer.toString(100,7));// 十进制转七进制

System.out.println(Integer.toString(100,30));// 十进制转三十进制

        System.out.println("============================");

// 其他进制转到十进制

System.out.println(Integer.parseInt("100",10));// 那个数字的 10 进制是 100 , 100

System.out.println(Integer.parseInt("100",2));// 那个数字的 2 进制是 100 , 4

System.out.println(Integer.parseInt("100",8));// 那个数字的 8 进制是 100 , 64

System.out.println(Integer.parseInt("100",16));// 那个数字的 16 进制是 100 , 256

    }

}

7 、自动装箱与拆箱

Integer x = new Integer(4); 可以写成 Integer x = 4; (自动装箱)

x = x + 5; (自动拆箱),通过 intValue 方法

JDK 1.5 新特性(自动装箱):把基本类型转换为包装类类型

JDK 1.5 新特性(自动拆箱):把包装类类型转换为基本类型

 package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        byte b1 = 100;

        byte b2 = b1;

Integer i1 = new Integer(200);// 定义一个 int 类型的包装类型变量 i1

        Integer i2 = 300;

        i2 = i2 + 400;

System.out.println("i2 的值为: "+i2);// 输出: 700

Integer i3 = Integer.valueOf(500);// 自动装箱

i3 = Integer.valueOf(i3.intValue() + 60);// 自动拆箱,再自动装箱

System.out.println((new StringBuilder("i3 的值为: ")).append(i3).toString());// 输出: 560

    }

}

package zhengshu;

function(){   //外汇返佣:http://www.fx61.com/

public class IntegerDm {

    public static void main(String[] args){

        Integer i1 = new Integer(128);

        Integer i2 = new Integer(128);

        System.out.println(i1 == i2);

        System.out.println(i1.equals(i2));

        System.out.println("-----------------------");

        Integer i3 = 128;

        Integer i4 = 128;

        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("+++++++++++++++++++++++++");

        int i7 = 1280;

        Integer i8 = 1280;

        System.out.println(i7 == i8);

// 针对 -128 到 127 之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间

    }

}

注意:

Integer 的数据直接赋值,如果在 -128 到 127 之间,会直接从缓冲池里获取数据

在使用时,Integer x = null; 上面的代码就会出现 NullPointerException (空指针异常)

8 、为了对基本数据类型进行更多的操作,Java 针对每一种基本数据类型提供了对应的类类型:包装类类型。

 byte  Byte

 short Short

 int  Integer

 long long

 float   Float

 double Double

 char Character

 boolean Boolean

JDK5 中添加了新特性(下面给出实例):

 自动装箱:把基本类型转化为包装类类型

 自动拆包:把包装类类型转换为基本类型

注意:

使用时如果设置 Integer x=null 代码会出现空指针异常。

9 、Integer 类型的静态成员方法(主要用到 D 、 E 两个方法)

 A 、 public static String toBinaryString(int i)

 B 、 public static String toOctalString(int i)

 C 、 public static String toHexString(int i)

将 int 类型转换为常用的基本进制的字符串类型如: Integer.toHexString(100)

 D 、 public static String toString(int i , int radix) 将 int 类型转换为指定的 radix 进制的字符串类型,进制范围是 2~36 因为 0-9 , a-z 一共 36 个数,

 E 、 public static int parseInt(String s , int radix) 将radix 进制的字符串到十进制

 F 、 public static int parseInt(String s) 将字符串类型转化为int 类型,用相似的方法可以实现字符串类型转换为基本类型,下面 int-String 类型转换实例中有介绍。

 G 、 public static String toString(int i) 将 int 类型转换为字符串类型

 H 、 public static Integer valueOf(int i) 将int 类型转换为 Integer 类型

 I 、 public static Integer valueOf(String s) 将String 类型转换为 Integer 类型

10 、Integer 类型的静态成员变量

 Integer.MAX_VALUE //int 范围的最大值

 Integer.MIN_VALUE //int 范围的最小值

11 、Integer 类中的成员方法

 public int intValue(); 将 Integer 类型返回为 int 类型

12 、Character 类

 Character 类在对象中包装了一个基本类型 char 的单个字段,

 public static boolean isUpperCase(char ch)// 大写

 public static boolean isLowerCase(char ch)// 小写

 public static boolean isDigit (char ch)// 数字

 public static char toUpperCase(char ch)// 转换为大写字符

 public static char toLowerCase(char ch)// 转换为小写字符

13 、int 和 String 的相互转换实例

package test07_Integer;

//int 和 String 类型的相互转换

//

public class IntegerDemo {

public static void main(String[] args) {

// int->String

int number=96;

// 方式 1

String s1=""+number;

System.out.println("s1:"+s1);

// 方式 2( 常用 )

String s2=String.valueOf(number);

System.out.println("s2:"+s2);

// 方式 3

String s3=Integer.toString(number);

System.out.println("s3:"+s3);

// 方式 4 int->Integer->String

Integer i=Integer.valueOf(number);

String s4=i.toString();

System.out.println("s4:"+s4);

//Sting->int

String s="96";

// 方式一

int i1=Integer.parseInt(s);

System.out.println("i1:"+i1);

// 方式 2

Integer ii=Integer.valueOf(i1);

int i2=ii.intValue();

System.out.println("i2:"+i2);

// 注意此方法,如果将一个字符串类型转换为 float 类型

float f=Float.parseFloat(s);

System.out.println("f:"+f);

// 同理字符串转换为基本类型都可以调用基本类型对应的包装类型中的静态方法

// 基本类型 x= 包装类型 .parse 基本类型 (String s);

}

}

14 、 自动拆箱、自动装箱时存储方式实例:

 

package test07_Integer;

public class IntegerDemo2 {

public static void main(String[] args) {

// 自动装箱:把基本数据类型转化为包装类类型

Integer ii=100;

// 自动拆箱:把包装类类型转换为基本类型

ii+=200;

System.out.println("ii:"+ii);

// 原因 Integer 数据直接赋值,如果在 -128~127 之间会从直接从数据池中获取数据,不在此范围内的数据需要调用 new integer() 方法创建对象

Integer ii1=127;

Integer ii2=127;

// 比较 ii1 和 ii2 的值

System.out.println(ii1.equals(ii2));//true

// 比较 ii1 和 ii2 的地址值

System.out.println(ii1==ii2);//true

Integer ii3=128;

Integer ii4=128;

System.out.println(ii3.equals(ii4));//true

System.out.println(ii3==ii4);//false

}

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69927062/viewspace-3156518/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-08

  • 博文量
    210
  • 访问量
    38