• Java SE核心之一:常用类,包装类,其他基本数据类型包装类。


    在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 -> Integer
    11         Integer i3 = new Integer("30");
    12         Integer i4 = Integer.valueOf("40");
    13         
    14         // Integer -> String
    15         System.out.println(i3.toString());
    16         
    17         // String -> int
    18         int b = Integer.parseInt("50");
    19         System.out.println(b);
    20         
    21         //int -> String
    22         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 }
  • 相关阅读:
    软件工程5
    软件工程3
    软件工程4
    软件工程2
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    个人作业——04
    清风不知道——冲刺日志(第一天)
    清风不知道——凡是预则立
    2020软件工程作业05
  • 原文地址:https://www.cnblogs.com/abcdjava/p/10779906.html
Copyright © 2020-2023  润新知