黑马程序员JAVA基础基本数据类型对象包装类

  

  基本数据类型包装类是按照面向对象的思想讲基本数据类型封装成了对象。

  好处:

  1、可以通过对象中的属性和行为操作基本数据类型。

  2、可以实现基本数据类型和字符串之间的转换。 

  JAVA 对基本数据类型对象对应的包装类:

    byte                   Byte

    int                      Integer

    long                    Long 

    boolean      Boolean

    float                Float 

    double      Double

    char        Character

  

一. 基本数据类型和字符串之间的转换:

  1、基本数据类型转换成字符串:

    基本数据类型+"" ;

    基本数据类型包装类对象.toString(基本数据类型) ; 

    注意:这里的toString 方法不是Object 类的。而是重载了toString 方法。同时,该方法为静态。

 1 public class IntegerText {
 2     public static void main(String[] args)
 3     {
 4         int x = 123345 ; 
 5         String s = x + "" ; 
 6         System.out.println("s="+s+";s的长度为:"+s.length()); 
 7 //        使用toString 方法。
 8         String str = Integer.toString(123345) ; 
 9 //        这里的equals 方法是重写了Object 类的方法。
10         System.out.println("str.equals(s):"+str.equals(s)); 
11         System.out.println("s==str:" + (s == str));
12     }
13 }

  2、字符串转换成基本数据类型: 

      xxx a = Xxx.parseXxx(String) ;  

1 public class StringToBase {
2     public static void main(String[] arg)
3     {
4         int a = Integer.parseInt("123") ;
5         System.out.println("a == " + a); 
6 //        下面的代码会出现异常:
7         int b = Integer.parseInt("xxx123") ;  
8     }
9 }

  

二.JDK 1.5 新特性:

  如下:  

 1 public class IntegerText {
 2     public static void main(String[] args)
 3     { 
 4         Integer a = 127 ;
 5         Integer b = 127; 
 6         Integer c = new Integer(127) ; 
 7         System.out.println("a.equals(b):"+a.equals(b));
 8         System.out.println("a == b :" + (a == b));
 9         System.out.println("a.equals(c):"+a.equals(c));
10         System.out.println("a == c :" + (a == c));
11         System.out.println("-----我是分割线--------------");
12         a += 1 ;
13         b += 1 ; 
14         System.out.println("a.equals(b):"+a.equals(b));
15         System.out.println("a == b :" + (a == b)); 
16     }
17 }

  打印的结果如下: 

a.equals(b):true
a == b :true
a.equals(c):true
a == c :false
-----我是分割线--------------
a.equals(b):true
a == b :false

  新特性:

  1、可以对基本数据类型对象进行直接赋值。原理是通过自动装箱和自动拆箱来完成。

  如第12行的代码: a 进行自动拆箱(a.intVaule()) 变成 int 类型,和1进行加法运算,再装箱。

  2、当数值在byte 范围内,如果该数值已经存在,则不会开辟新的空间。

  如:当a 和 b的基本类型数值在byte 范围内,a == b 返回的 true ; 而当a 和 b 的基本类型数值大于127 时,则 a == b 返回 false ;

三.常用的方法还有:

  十进制转成其他进制:

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

    toOctalString(int i) : 八进制

    toHexString(int i ) ; 十六进制。

  其他进制转换成十进制:

    parseInt(String,radix):使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

原文地址:https://www.cnblogs.com/jbelial/p/2981020.html