概述
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------
13,基本数据类型对象包装类
13.1 基本数据类型包装类
在java中,有8种基本数据类型,分别是:byte、short、int、long、float、double、boolean、char,为了方便对基本数据类型值得操作,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培训、期待与您交流! ----------------------
最后
以上就是调皮小懒虫为你收集整理的基本数据类型对象包装类的全部内容,希望文章能够帮你解决基本数据类型对象包装类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复