我是靠谱客的博主 调皮小懒虫,最近开发中收集的这篇文章主要介绍基本数据类型对象包装类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------

13,基本数据类型对象包装类

13.1 基本数据类型包装类

java中,有8种基本数据类型,分别是:byteshortintlongfloatdoublebooleanchar,为了方便对基本数据类型值得操作,Java以面向对象的思想对这8种基本数据类型进行了对象的封装。用于描述基本数据类型的类就是基本数据类型对象包装类。

如:

基本数据类型

byte

short

int

long

float

double

boolean

char

对应的包装类

Byte

Short

Integer

Long

Float

Double

Boolean

Character

 

这些对象中封装了,字符和基本数据类型互转的方法,以及整数不同进制的互相转换的方法.

1,基本数据类型转成字符串

可以使用String类的静态方法valueOf().

如:

public class Demo{

   public static void main(String[]args){

      Demo_1();

   }

   private static void Demo_1() {

      String str1=String.valueOf(10);//int类型

      String str2=String.valueOf(true);//boolean类型

      String str3=String.valueOf('c');//char类型

      String str4=String.valueOf(2.3f);//float类型

      String str5=String.valueOf(2.300);//double类型

      System.out.println(str1);

      System.out.println(str2);

      System.out.println(str3);

      System.out.println(str4);

      System.out.println(str5);

   }     

}

/*

打印结果:

10

true

c

2.3

2.3

*/


 

在这几个包装类中,除了Character类,其他几个基本数据类型对象包装类都具有:parseXXX(“被转换的字符串”),这样的一个静态方法.比如,Integer类中的parseInt().这是能将字符串转成基本数据类型的方法.

注意:被转换的字符串必须要能与转换的类型相匹配.否则,会抛出:NumberFormatException.异常

如:

public class Demo{

   public static void main(String[]args){

      Demo_2();

   }

   public static void Demo_2() {

      int i=Integer.parseInt("a");//这里的字符串必须是十进制整数

   }

}

/* 

Exception in thread "main" java.lang.NumberFormatException: For input string: "a"

      at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

      at java.lang.Integer.parseInt(Integer.java:492)

      at java.lang.Integer.parseInt(Integer.java:527)

      at 字符串类.Demo.Demo_2(Demo.java:8)

      at 字符串类.Demo.main(Demo.java:4)

*/


 

2.字符串转成基本数据类型

如:

public class Demo{

   public static void main(String[]args){

      Demo_2();

   }

   public static void Demo_2() {

      byte b=Byte.parseByte("127");

      System.out.println(b);

      short s=Short.parseShort("32767");

      System.out.println(s);

      int i=Integer.parseInt("1000");

      System.out.println(i);

      long l=Long.parseLong("1000");

      System.out.println(l);

      float f=Float.parseFloat("3.4");

      System.out.println(f);

      double d=Double.parseDouble(Double.MAX_VALUE);

      System.out.println(d);

      boolean bl=Boolean.parseBoolean("true");

      System.out.println(bl);

      

   }

}

/*

 结果:

127

32767

1000

1000

3.4

1.3

true

*/

 

3.整数间进制的互转

(1),十进制转成二进制,八进制,十六进制数的字符串形式.

可以使用Integer类中的静态方法,toBinaryString(),toOctalString(),toHexString().

如:

public class Demo {

   public static void main(String[] args) {

      Demo_1();

   }

 

   public static void Demo_1() {

      System.out.println(Integer.toBinaryString(10));//10转成二进制:1010

      System.out.println(Integer.toOctalString(10));//10转成八进制:12(为了和十进制区分开前面加0)

      System.out.println(Integer.toHexString(10));//10转成十六进制:a(为了和十进制区分开前面加0X)

   }

}


 

(2) 二进制,八进制,十六进制数转十进制数

用Integer类中的静态方法:parseInt(String s,int radix);字符串是被转换的数,radix代表字符串所表示的是什么进制的数.

也可以使用,String类中的toString(int i,int radix);用指定的radix(进制)来表示i整数的字符串形式.

如:

public class Demo {

   public static void main(String[] args) {

      Demo_1();

   }

   public static void Demo_1() {

      int a=Integer.parseInt("A", 16);//把一个十六进制A,转换成十进制数.

      System.out.println("A的十进制数是:"+a);//A的十进制数是:10

      int b=Integer.parseInt("1010", 2);//把二进制数1010,转成十进制数.

      System.out.println("1010的十进制数是:"+b);//1010的十进制数是:10

      int c=Integer.parseInt("010", 8);//把八进制数10,转成十进制数.

      System.out.println("010的八进制数是"+c);//010的八进制数是8

   }

}


 

 

13.JDK1.5基本数据类型包装类的自动装箱和拆箱.

自动装箱:就是把基本数据类型值,

如:Integer i=100;(相当于,Integer i=new Integer(100));

自动拆箱:当基本数据类型值和引用数据类型值进行运算,就要拆箱.

如:

       Integer i=100;//自动装箱(相当于,Integer i=new Integer(100)Integer i=Integer.valueOf(100)).

         int a=i+1;//自动拆箱(相当于,int a=i.intValue()+1)

         System.out.print(a);

//结果:101

jdk 1.5的自动装箱和自动拆箱,目的是简化书写.

 

注意:对于Byte,Short,Integer,Long这四个包装类来说,一个字节取值范围(-128~127)内的自动装箱,他们是相等的

如:

public class Demo {

   public static void main(String[] args) {

      Demo_1();

   }

 

   public static void Demo_1() {

      Byte b1=127;

      Byte b2=127;

      System.out.println(b1==b2);//true

      Short s1=127;

      Short s2=127;

      System.out.println(s1==s2);//true

      Integer i1=127;

      Integer i2=127;

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

      Long l1=127l;

      Long l2=127l;

      System.out.println(l1==l2);//true

   }

}


 

注意:当引用类型和基本数据类型用==判断时,引用类型会自动拆箱,此时比较的是内容而不是地址.

如:

public class Demo {

   public static void main(String[] args) {

      Demo_1();

   }

   public static void Demo_1() {

      Byte b1=127;

      Byte b2=127;

      System.out.println(b1==b2);//true

      System.out.println(b1==127);//当引用类型和基本数据类型用==判断时,引用类型会自动拆箱.比较内容.所以是true.

      System.out.println(b2==127);//当引用类型和基本数据类型用==判断时,引用类型会自动拆箱.比较内容.所以是true.   

   }

}

/*

System.out.println(b1==127);

相当于:System.out.println(b1.intValue()==127);

System.out.println(b2==127);

相当于:

System.out.println(b2.intValue()==127);

*/


 

 

 

 

 

---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------

最后

以上就是调皮小懒虫为你收集整理的基本数据类型对象包装类的全部内容,希望文章能够帮你解决基本数据类型对象包装类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部