博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本数据类型对象包装类、自动装箱和自动拆箱
阅读量:5046 次
发布时间:2019-06-12

本文共 2801 字,大约阅读时间需要 9 分钟。

 

1  基本数据类型对象包装类

 

 

八大基本数据类型有:byteintshortlongfloatdoublecharboolean

基本数据类型对象包装类,就是按照面向对象的方法,讲基本数据类型包装成对象。

这样,就可以通过调用对象的方法,来对基本数据类型进行操作,

还可以实现基本数据类型和字符串之间的转换,以及不同进制间的转换。

 

基本数据类型         引用数据类型(对象包装类)

byte                       Byte

short                      Short

int                          Integer  **

long                       Long

boolean                  Boolean

float                       Float

double                   Double

char                      Character  **

 

基本数据类型对象包装类的最常见作用:

就是用于基本数据类型和字符串类型之间做转换。

 

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

     基本数据类型+""

     基本数据类型.toString(基本数据类型值)

     如:Integer.toString(34); //将整数34变成字符串"34"

 

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

     static int parseInt(String str):将字符串参数作为有符号的十进制整数进行解析。

     xxx a = Xxx.parseXxx(String);

 

       例:

     int num = Integer.parseInt("123");

     double num = Double.parseDouble("12.34");

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

 

     方法二(非静态)

     Integer的非静态方法intValue(),使用前要创建Integer对象。

 

     : Integer i = new Integer("123");

     int num = i.intValue();

 

3,十进制转成其他进制。

     toBinaryString();  转成二进制

     toHexString(); 转成十六进制

     toOctalString();  转成八进制

 

4,其他进制转成十进制。

     static int parseInt(String str, int radix);

     将字符串参数str解析为以radix为基数的有符号整数的十进制形式。

     即把str看作radix进制的数,再转成十进制。

     parseInt("110",10); //把字符串"110"转成十进制数。

     parseInt("110",2);  //把字符串"110"看成二进制数,再转成十进制值为6,结果为6

 

代码示例:

class IntegerDemo{	public static void main(String[] args){		method_parseInt();        method_to();        method_2();	}		public static void sop(Object obj){		System.out.println(obj);	}		public static void method_parseInt(){		int num = Integer.parseInt("123"); //字符串类型转换成基本数据类型		sop("num="+(num+4));	}		public static void method_to(){		sop(Integer.toBinaryString(6)); //十进制转成二进制。		sop(Integer.toBinaryString(-6)); //十进制转成二进制。	}		public static void method_2(){		int x = Integer.parseInt("110",10); //把十进制的110转成十进制		sop("x="+x);		int y = Integer.parseInt("110",2);  //把二进制的110转成十进制		sop("y="+y);		int z = Integer.parseInt("3c",16);  //把十六进制的3c转成十进制		sop("z="+z);	}}

 

2.  基本数据类型对象包装类 JDK1.5新特性

     JDK1.5 之后出现的新特性

     自动装箱,自动拆箱。

     Integer  num = 12;   //进行了自动装箱,将基本数据类型int类型的12,包装成Integer对象。

     int   count = num+1;   //进行了自动拆箱,将Integer对象num拆箱为int类型,再与int类型的1相加,结果为int类型。

     byte范围内的(-128127),如果该数值的对象已经存在,则不会再开辟新的空间.

 

详见代码

class IntegerDemo2{	public static void main(String[] args){		//Integer x = new Integer(4);		Integer x = 4; //自动装箱,4是一个对象,相当于 new Integer(4)		x = x + 2;  //x+2: x进行了自动拆箱,变成了int类型,和2进行加法运算,再将和进行装箱赋给x。				    //自动拆箱原理:x.intValue();		Integer m = 128;		Integer n = 128;		sop("m==n:"+(m==n)); //结果为false,因为是两个对象,内存地址值不同			Integer a = 127;		Integer b = 127;		sop("a==b:"+(a==b)); //结果为true,因为a和b指向了同一个Integer对象,							   //因为当数值在byte范围内时,对于新特性,如果该数值的对象已经存在,则不会再开辟新的空间。							   //byte的范围:-128~127	}		public static void sop(Object obj){		System.out.println(obj);	}		public static void method(){		Integer x = new Integer("123"); //此对象表示字符串参数所指示的int值		Integer y = new Integer(123);	//此对象表示指定的int值				sop("x==y:"+(x==y)); //两个对象,内存地址不同,false		sop("x.equals(y):"+x.equals(y)); //两个对象内容相同,即int值相同,true	}}

转载于:https://www.cnblogs.com/rockray/p/3612013.html

你可能感兴趣的文章
层叠加的五条叠加法则(一)
查看>>
设计模式六大原则(5):迪米特法则
查看>>
对Feature的操作插入添加删除
查看>>
javascript String
查看>>
ecshop 系统信息在哪个页面
查看>>
【转】码云source tree 提交超过100m 为什么大文件推不上去
查看>>
Oracle数据库的增、删、改、查
查看>>
MySql执行分析
查看>>
git使用中的问题
查看>>
yaml文件 .yml
查看>>
linux字符集修改
查看>>
phpcms 添加自定义表单 留言
查看>>
mysql 优化
查看>>
读书笔记 ~ Nmap渗透测试指南
查看>>
WCF 配置文件
查看>>
动态调用WCF服务
查看>>
oracle导出/导入 expdp/impdp
查看>>
类指针
查看>>
css修改滚动条样式
查看>>
2018.11.15 Nginx服务器的使用
查看>>