Java匹馬行天下之JavaSE核心技術——工具類

Java經常使用工具類

1、Object類

java.lang.Objectjava

 

Object類是全部類直接或間接的父類git

經常使用的方法:編程

 

toString():以字符串形式返回對象的文本信息;數組

 

hashCode():返回該對象的哈希值;工具

 

getClass():返回對象的類類型;  spa

 

equals(Object obj):比較兩個對象是否相等code

 

package Practice_Anything;

public class String_demo {
    public static void main(String[] args) {
        String s = new String("你好");
        String s1 = new String("世界");

        Class<?> c = s.getClass();//返回對象的類類型
        System.out.println(c);


        boolean flag = s.equals(s1);//比較兩個對象是否相等
        System.out.println(flag);

        int hash = s.hashCode();//返回該對象的哈希值
        int hash1 = s1.hashCode();
        System.out.println(hash+" "+hash1);

        String s2 = s.toString();//以字符串形式返回對象的文本信息
        String s3 = s1.toString();
        System.out.println(s2+s3);
        
    }
}

 

  

運行結果:

class java.lang.String
false
652829 649718
你好世界

  

2、包裝類

裝箱與拆箱

以Byte爲例orm

java.lang.Byte對象

public final class Byte extend Numberblog

Byte 類將基本類型 byte 的值包裝在一個對象中。一個 Byte 類型的對象只包含一個類型爲 byte 的字段。 

package Practice_Anything;

public class Box_Demo {
    public static void main(String[] args) {
        byte b =1;//基本數據類型
        System.out.println(b);

        Byte b1 = new Byte(b);//包裝類的對象
        System.out.println(b1);

        Byte b2 = b;//自動裝箱,把基本數據類型轉爲對象
        System.out.println(b2);

        byte b3 = new Byte(b);//自動拆箱,把對象轉爲基本數據類型
        System.out.println(b3);
        
    }
}

  

運行結果:

1
1
1
1

  

3、Number類

java.lang.Number

public abstract class Number extends Object implements Serializable

 

抽象類 NumberBigDecimalBigIntegerByteDoubleFloatIntegerLongShort 類的超類。

 

Number 的子類必須提供將表示的數值轉換爲 bytedoublefloatintlongshort 的方法。 

 

以Integer爲例

java.lang.Integer

public final class Integer extends Number

 

Integer 類在對象中包裝了一個基本類型 int 的值。Integer 類型的對象包含一個 int 類型的字段。

 

此外,該類提供了多個方法,能在 int 類型和 String 類型之間互相轉換,還提供了處理 int 類型時很是有用的其餘一些常量和方法。

經常使用的方法:

 

 

  • 構造方法;
  • compareTo():在數字上比較兩個 Integer 對象。
  • valueOf():返回一個表示指定的 int 值的 Integer 實例。
  • toString():返回一個表示該 Integer 值的 String 對象。

 

package Practice_Anything;

public class Integer_Demo {
    public static void main(String[] args) {

        Integer i = new Integer(2);//構造一個新分配的 Integer 對象,它表示指定的 int 值。
        System.out.println(i);

        Integer i2 = new Integer("3");//構造一個新分配的 Integer 對象,它表示 String 參數所指示的 int 值。
        System.out.println(i2);
//若是該 Integer 等於 Integer 參數,則返回 0 值;若是該 Integer 在數字上小於 Integer 參數,則返回小於 0 的值;
//若是 Integer 在數字上大於 Integer 參數,則返回大於 0 的值(有符號的比較)。
        int i3 = i.compareTo(i2);
        System.out.println(i3);

        String s = "5";
        Integer i4 = Integer.decode(s);//將 String 解碼爲 Integer。
        System.out.println(i4);

        Integer i5 = Integer.valueOf(6);//返回一個表示指定的 int 值的 Integer 實例。
        System.out.println(i5);

        Integer i6 = Integer.valueOf(s);//返回保存指定的 String 的值的 Integer 對象。
        System.out.println(i6);

        String s1 = i.toString();//返回一個表示該 Integer 值的 String 對象。
        System.out.println(s1);

        String s2 =Integer.toString(i);//返回一個表示指定整數的 String 對象。
        System.out.println(s2);


    }
}

 

  

運行結果:

2
3
-1
5
6
5
2
2

  

4、Character類

java.lang.Character

public final class Character extends Object

 

Character 類在對象中包裝一個基本類型 char 的值。Character 類型的對象包含類型爲 char 的單個字段。

 

此外,該類提供了幾種方法,以肯定字符的類別(小寫字母,數字,等等),並將字符從大寫轉換成小寫,反之亦然。 

 

經常使用的方法:

valueOf():返回一個表示指定 char 值的 Character 實例

toString():返回表示此 Character 值的 String 對象。

isDigit():判斷是否爲數字

isLetter():判斷是否爲字母

isUpperCase():判斷是否爲大寫字母

isLowerCase():判斷是否爲小寫字母

isWhitespace():判斷是否爲空格

toUpperCase():轉爲大寫字母

toLowerCase():轉爲小寫字母

 

package Practice_Anything;

public class Character_Demo {
    public static void main(String[] args) {
        Character c = new Character('d');//構造方法
        System.out.println(c);

        char c1 = c.charValue();//返回此 Character 對象的值。
        System.out.println(c);

        char c2 = Character.valueOf(c);//返回一個表示指定 char 值的 Character 實例
        System.out.println(c);

        String s = c.toString();//返回表示此 Character 值的 String 對象。
        System.out.println(s);

        boolean b = Character.isDigit(c);//判斷指定字符是否爲數字。
        System.out.println(b);

        boolean b1 = Character.isLetter(c);//判斷指定字符是否爲字母
        System.out.println(b1);

        boolean b2 = Character.isUpperCase(c);//判斷是否爲大寫字母
        System.out.println(b2);

        boolean b3 = Character.isLowerCase(c);//判斷是否爲小寫字母
        System.out.println(b3);

        boolean b4 = Character.isWhitespace(c);//判斷是否爲空格
        System.out.println(b4);

        char c3 = Character.toUpperCase(c);//轉爲大寫字母
        System.out.println(c3);

        char c4 = Character.toLowerCase(c3);//轉爲小寫字母
        System.out.println(c4);


    }
}

  

運行結果:

d
d
d
d
false
true
false
true
false
D
d

  

5、String類

java.lang.String

public final class String extends Object

 

String 類表明字符串。Java 程序中的全部字符串字面值(如 "abc" )都做爲此類的實例實現。

 

字符串是常量;它們的值在建立以後不能更改。字符串緩衝區支持可變的字符串。由於 String 對象是不可變的,因此能夠共享。

 

String對象爲何不可變?

 

字符串常量池是java堆內存中一個特殊的存儲區域,當建立一個String對象,假如此字符串值已經存在於常量池中,則不會建立一個新的對象,而是引用已經存在的對象。

 

代碼以下:

 

  String s1 = "ABC";

 

  String s2 = "ABC";

 

在java中內存分爲堆內存和棧內存,堆內存存放的是對象,棧內存存儲對象的引用,字符串「ABC」存放在堆內存中,而s1,s2做爲對象的引用則存放在棧內存中,原理以下:

 

      堆內存       棧內存

 

 String對象  "ABC"______ s1  String變量的引用

 

                     |______ s2

 

假設:字符串對象容許改變,那麼將會致使各類邏輯錯誤。好比改變一個對象卻影響到另一個獨立的對象。

 

經常使用方法

 

  • charAt(int  i):返回指定索引處的字符;
  • length():返回字符串的長度;
  • contains(CharSequence  c):判斷字符串中是否包含指定的字符序列;CharSequence是一個接口,String是它的一個實現類
  • startsWith(String s):判斷字符串是否以指定的前綴開始;
  • endsWith(String s):判斷字符串是否以指定的後綴結束;
  • indexOf(char c):返回指定字符在字符串中第一次出現的索引;
  • lastIndexOf(char c):返回指定字符在字符串中最後一次出現的索引;
  • isEmpty():當且僅當字符串長度爲0時,返回true;
  • replace(char old,char new):把字符串中的old字符替換爲new字符,而後返回一個新字符串;
  • split(String s):根據指定的規則拆分字符串,返回字符串數組;
  • subString(int begin,int end):按照指定的索引截取字符串,從begin(包含)開始,到end(不包含)結束;
  • toLowerCase():把字符串的英文字母所有轉爲小寫;
  • toUpperCase():把字符串的英文字母所有轉爲大寫;
  • trim():清除字符串先後的空白字符;
  • valueOf():把指定類型的數據轉爲字符串類型;
  • toCharArray():把字符串轉爲字符數組;

 

package Practice_Anything;

public class String_Demod {
    public static void main(String[] args) {
        String s = new String("ZhangYuxian");

        int i = s.length();//返回字符串的長度;
        System.out.println("s的長度:"+i);

        char c = s.charAt(5);//返回指定索引處的字符;
        System.out.println("索引值爲5的字母:"+c);

        boolean flag = s.contains("xian");//判斷字符串中是否包含指定的字符序列
        System.out.println("字符串s中是否存在xian:"+flag);

        boolean flag1 = s.startsWith("Z");//判斷字符串是否以指定的前綴開始
        System.out.println("s字符串是否以Z開始:"+flag1);

        boolean flag2 = s.endsWith("n");//判斷字符串是否以指定的後綴結束
        System.out.println("s字符串是否以n結束:"+flag2);

        int i1 = s.indexOf('Y');//返回指定字符在字符串中第一次出現的索引
        System.out.println("字符Y在字符串s中第一次出現的索引:"+i1);

        int i2 = s.lastIndexOf('n');//返回指定字符在字符串中最後一次出現的索引
        System.out.println("字符n在字符串s中最後一次出現的索引:"+i2);

        boolean flag3 = s.isEmpty();// 當且僅當 length() 爲 0 時返回 true。
        System.out.println("字符串s的長度是否爲零:"+flag3);

        //把字符串中的old字符替換爲new字符,而後返回一個新字符串;
        String s1 = s.replace('x','t');
        System.out.println("把s字符串中的x替換爲t後的新字符串爲:"+s1);

        String[] s2 = s.split("n");//根據指定的規則拆分字符串,返回字符串數組;

        System.out.print("用指定的n拆分字符串s,獲得字符串數組:");
        for(String s3:s2){
            System.out.print(s3+" ");
        }
        System.out.println();

        String s3 = s.substring(5);//按照指定的索引截取字符串
        System.out.println("從字符串s中索引爲5的字符截取生成新的字符串:"+s3);

        String s4 = s.substring(0,5);//按照指定的索引截取字符串,從begin(包含)開始,到end(不包含)結束;
        System.out.println("從字符串s中截取索引值[0,5)的字符組成新的字符串"+s4);

        String s5 = s.toLowerCase();//把字符串的英文字母所有轉爲小寫;
        System.out.println("把字符串s中的英文字母所有轉爲小寫:"+s5);

        String s6 = s.toUpperCase();//把字符串的英文字母所有轉爲大寫;
        System.out.println("把字符串s中的英文字母所有轉爲大寫:"+s6);

        String s7 ="               Z h a ng    ";
        System.out.println("原始狀態:"+s7);

        String s8 = s7.trim();//清除字符串先後的空白字符;
        System.out.println("清除字符串先後空格後的狀態:"+s8);

        char[] chars = {'Z','y','x'};
        String s9 = String.valueOf(chars);//把指定類型的數據轉爲字符串類型;
        System.out.println("把char類型的數組轉化爲字符串類型:"+s9);

        String s10 = s.toString();// 返回此對象自己(它已是一個字符串!)。
        System.out.println(s10);

        char[] s11 = s.toCharArray();//把字符串轉爲字符數組;
        System.out.print("遍歷字符數組:");
        for(char c1:s11){
            System.out.print(c1+" ");
        }

    }
}

 

  

s的長度:11
索引值爲5的字母:Y
字符串s中是否存在xian:true
s字符串是否以Z開始:true
s字符串是否以n結束:true
字符Y在字符串s中第一次出現的索引:5
字符n在字符串s中最後一次出現的索引:10
字符串s的長度是否爲零:false
把s字符串中的x替換爲t後的新字符串爲:ZhangYutian
用指定的n拆分字符串s,獲得字符串數組:Zha gYuxia 
從字符串s中索引爲5的字符截取生成新的字符串:Yuxian
從字符串s中截取索引值[0,5)的字符組成新的字符串Zhang
把字符串s中的英文字母所有轉爲小寫:zhangyuxian
把字符串s中的英文字母所有轉爲大寫:ZHANGYUXIAN
原始狀態:               Z h a ng    除字符串先後空格後的狀態:Z h a ng
把char類型的數組轉化爲字符串類型:Zyx
ZhangYuxian
遍歷字符數組:Z h a n g Y u x i a n 

  

 6、日期類

 Date類

java.util.Date

public class Date extends Object

Date 表示特定的瞬間,精確到毫秒。 

Calendar類

java.util.Calendar

public abstract class Calendar extends Object

Calendar 類是一個抽象類,它爲特定瞬間與一組諸如 YEARMONTHDAY_OF_MONTHHOUR日曆字段之間的轉換提供了一些方法,併爲操做日曆字段(例如得到下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的偏移量。

該類還爲實現包範圍外的具體日曆系統提供了其餘字段和方法。這些字段和方法被定義爲 protected

與其餘語言環境敏感類同樣,Calendar 提供了一個類方法 getInstance,以得到此類型的一個通用的對象。CalendargetInstance 方法返回一個 Calendar 對象,其日曆字段已由當前日期和時間初始化:

     Calendar rightNow = Calendar.getInstance();
 

Calendar 對象可以生成爲特定語言和日曆風格實現日期-時間格式化所需的全部日曆字段值,例如,日語-格里高裏歷,日語-傳統日曆。Calendar 定義了某些日曆字段返回值的範圍,以及這些值的含義。例如,對於全部日曆,日曆系統第一個月的值是 MONTH == JANUARY。其餘值是由具體子類(例如 ERA)定義的。有關此內容的細節,請參閱每一個字段的文檔和子類文檔。 

Format類 

java.text.Format

public abstract class Format extends Object

 

Format 是一個用於格式化語言環境敏感的信息(如日期、消息和數字)的抽象基類。

 

Format 定義了編程接口,用於將語言環境敏感的對象格式化爲 String(使用 format 方法)和將 String 從新解析爲對象(使用 parseObject 方法)。

 

一般,一個 format 的 parseObject 方法必須能解析任何由其 format 方法格式化的字符串。不過,也可能存在不能解析的異常狀況。例如,format 方法可能建立中間無分隔符的兩個相鄰整數,在這種狀況下,parseObject 沒法判斷哪一個數字屬於哪一個數。 

 

 

DateFormat類

java.text.DateFormat

public abstract class DateFormat 

 

DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。日期/時間格式化子類(如 SimpleDateFormat)容許進行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和標準化。將日期表示爲 Date 對象,或者表示爲從 GMT(格林尼治標準時間)1970 年 1 月 1 日 00:00:00 這一刻開始的毫秒數。

 

DateFormat 提供了不少類方法,以得到基於默認或給定語言環境和多種格式化風格的默認日期/時間 Formatter。格式化風格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用這些風格的更多細節和示例。 

相關文章
相關標籤/搜索