在Java继承体系中,java.lang.Object类位于顶端(是所有对象的直接或间接父类)。如果一个类没有写extends关键字声明其父类,则该类默认继承java.lang.Object类。Object类定义了“对象”的基本行为,被子类默认继承。
1.Number 类
Number数值类型是byte、double、float、int、long 和 short类的抽象父类,提供把包装类转化成基本数据类型的方法(xxxValue)。
详细请查阅JDK API 及以上文档:
1.2 Interger 是int基本数据类型的包装类,在Interger内部封装了一个final int value 的属性。
1) 构造方法
1 public class Test1 { 2 public static void main(String[] args) { 3 // Integer 属性 4 //System.out.println(Integer.MAX_VALUE); 输出2^31 - 1; 5 //System.out.println(Integer.MIN_VALUE); 输出-2^31; 6 7 // 构造方法 8 int t = 10; 9 String bStr = "20";10 Integer t1 = new Integer(t);11 //可能抛出NumberFormatException异常12 Integer t2 = new Integer(bStr);13 System.out.println(t1.toString());14 System.out.println(t2.toString());15 16 }17 }
2)int<->Integer<->string类型之间转换
1 public class Test2 { 2 public static void main(String[] args) { 3 // int -> Integer 4 Integer i1 = new Integer(10); 5 Integer i2 = Integer.valueOf(20); 6 7 // Integer -> int 8 int a = i1.intValue(); 9 10 // String -> Integer11 Integer i3 = new Integer("30");12 Integer i4 = Integer.valueOf("40");13 14 // Integer -> String15 System.out.println(i3.toString());16 17 // String -> int18 int b = Integer.parseInt("50");19 System.out.println(b);20 21 //int -> String22 String str = Integer.toString(10);23 24 String str2 = Integer.toString(8,2);//将8转化为二进制数25 System.out.println(str2); //输出二进制 1000;26 }27 28 }
3)Comparable接口
查看JDK API文档我们发现对Comparable定义如下:
Comparable 表示具有比较能力,对象可比较大小,还可以强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。
1 public class Test3 { 2 3 public static void main(String[] args) { 4 Integer i1 = new Integer(10);//把包装类转化基本数据类型 5 int a=i1.intValue(); 6 System.out.println(a); 7 8 //(2)Integer的比较 9 Integer i2 = new Integer(20);10 Integer i3 = new Integer(30);11 //equals是对象内容进行比较。12 System.out.println(i2.equals(i3));//输出false ,i2和i3的内容不想相等。13 14 /*compareTo(), 在JDK API中,java.lang包下面的基本数据类型的封装类都提供了该方法,如 Integer,Float,Byte,Short,Character 等。15 比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。*/16 System.out.println(i2.compareTo(i3));//输出-1,说明该对象i2 小于 指定对象i3;17 18 }19 20 }
2. String类
1)String是字符串类型,是引用类型,是“不可变”字符串(内部声明一个private final char value[];),无线程安全问题。在java.lang.String中。
1 public class Test1 { 2 public static void main(String[] args) { 3 String str1 = "abc"; 4 String str2 = "abc"; 5 String Str3 = "abcd"; 6 7 //比较str1与str2的内存地址是否相等? 8 System.out.println(str1 == str2);//输出true;相等! 9 10 }11 12 }
因为String对象是不可变的,所以可以共享。 通过字面量创建的字符串分配在常量区。
3. 字符串常用方法
1)构造方法
1 import java.io.UnsupportedEncodingException; 2 import java.nio.charset.Charset; 3 4 public class Test2 { 5 public static void main(String[] args) { 6 //在堆区初始化一个空字符串 7 String str1 = new String(); 8 9 //通过一个字节数组构建一个字符串10 byte[] bytes = {97,98,99};11 //通过使用平台的默认字符集解码指定的byte 数组12 //System.out.println(Charset.defaultCharset()); //输出GBK ,不同平台的默认字符集解码不同的。GBK是在Windows简体中文平台下的字符解码;13 String str2 = new String(bytes);14 System.out.println(str2);15 16 byte[] byte2 = {-42,-48};17 String str3 = null;18 try {19 //使用指定的字符集对字节序列进行解码20 str3 = new String(byte2,"GBK");21 } catch (UnsupportedEncodingException e) {22 e.printStackTrace();23 }24 System.out.println(str3);25 26 //对一个UTF-8的字节序列进行解码27 byte[] byte3 = {-28,-72,-83,-28,-72,-83};28 29 try {30 String str4 = new String(byte3,"UTF-8");//输出中中31 String str5 = new String(byte3,0,3,"UTF-8");//输出中,是0-3位的数;32 System.out.println("str4:"+ str4);33 System.out.println("str4:"+ str5);34 } catch (UnsupportedEncodingException e) {35 e.printStackTrace();36 }37 38 }39 40 }