`
airfly2013
  • 浏览: 18724 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员 java_包装类

 
阅读更多

                              ------- android培训java培训、期待与您交流! ----------

 

 

包装类

 

由于java是一种面向对象的语言,所有事物都应当被当做对象。但是却有一个特例,基本数据类型不会被当做对象。当创建一个基本数据类型是,它位于内层的栈中,而对象位于堆中。但是当我们需要对数据进行一些复杂操作时,比如说需要对数据进行增删改查操作,此时就不好操作。也许可以将数据添加到数组中,但是数组的长度是固定的,并且能够提供的功能也有限。此时就需要使用包装类。

 

 

基本数据类型对象包装类

 

八种基本数据类型对应的包装类

byte             Byte

short            Short

int                Integer

long             Long

boolean        Boolean

float             Float

double          Double

char             Character

 

 

 

基本数据类型转成字符串

 

基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换。

转换为字符串后,就可以使用字符串中的所有方法了。

 

基本数据类型转换为字符串的两种方法

基本数据类型+""

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

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

 

 

 

字符串转成基本数据类型

 

xxx表示基本数据类型,

xxx a = Xxx.parseXxx(String);

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

double b = Double.parseDouble("12.23");

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

Integer i = new Integer("123");

int num = i.intValue();

 

 

注意:必须保证被转换的字符串中的数据时相应的基本数据类型,否则将抛出NumberFormatException 异常。

 

 

 

进制转换

 

十进制转成其他进制

 

以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。 

toBinaryString();

 

以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 

toHexString();

 

以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。 

toOctalString();

 

 记住返回的是相应的字符串。

 

 

 

其他进制转成十进制

 

radiu表示string中数据的进制。

 

parseInt(string,radix);

 

 

实例

 

public class IntegerDemo {
	public static void main(String[] args) {
		//整数类型的最大值。
                //必须传入数字格式的字符串。
		sop("int max:"+Integer.MAX_VALUE);
		//将一个字符串转换成整数
		int num = Integer.parseInt("123");
		sop("num:"+num);
		
		//进制转换
		sop(Integer.toBinaryString(-6));
		sop(Integer.toHexString(60));
		//将16进制的3c转换为十进制
		int x = Integer.parseInt("3c",16);
		sop("x="+x);
		
		
	}
	public static void sop(String str){
		System.out.println(str);
	}

}

 

 

自动装箱

 

自动装箱是JDK1.5版本以后出现的新特性。

 

public class IntegerDemo1 {
	public static void main(String[] args) {
		
		Integer x = 4;
		//将给Integer已用赋整形值,相当于x=new Integer(4)
				
		x = x+3;
		//本来对象时不能直接参与运算的,此时x自动拆箱,相当于基本数据类型
	  
		
		Integer m = 128;
		Integer n = 128;
		sop("m==n:"+(m==n));//false

		Integer a = 127;
		Integer b = 127;
		sop("a==b:"+(a==b));//true
		//结果为true。因为a和b指向了同一个Integer对象。
	    //因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间。
		//byte范围为-128-127,所以127在内存中只有一个,a和b是同一个对象,
		//而128已经超出范围,m和n属于两个对象。所以m!=n。
		
	}
	public static void sop(Object obj){
		System.out.println(obj);
	}

}

 

 

 

                         ------- android培训java培训、期待与您交流! ----------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics