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 你好世界
以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
java.lang.Number
public abstract class Number extends Object implements Serializable
抽象類 Number
是 BigDecimal
、BigInteger
、Byte
、Double
、Float
、Integer
、Long
和 Short
類的超類。
Number
的子類必須提供將表示的數值轉換爲 byte
、double
、float
、int
、long
和 short
的方法。
以Integer爲例
java.lang.Integer
public final class Integer extends Number
Integer
類在對象中包裝了一個基本類型 int
的值。Integer
類型的對象包含一個 int
類型的字段。
此外,該類提供了多個方法,能在 int
類型和 String
類型之間互相轉換,還提供了處理 int
類型時很是有用的其餘一些常量和方法。
經常使用的方法:
Integer
對象。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
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
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
假設:字符串對象容許改變,那麼將會致使各類邏輯錯誤。好比改變一個對象卻影響到另一個獨立的對象。
經常使用方法
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
java.util.Date
public class Date extends Object
類 Date
表示特定的瞬間,精確到毫秒。
java.util.Calendar
public abstract class Calendar extends Object
Calendar
類是一個抽象類,它爲特定瞬間與一組諸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日曆字段
之間的轉換提供了一些方法,併爲操做日曆字段(例如得到下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的偏移量。
該類還爲實現包範圍外的具體日曆系統提供了其餘字段和方法。這些字段和方法被定義爲 protected
。
與其餘語言環境敏感類同樣,Calendar
提供了一個類方法 getInstance
,以得到此類型的一個通用的對象。Calendar
的 getInstance
方法返回一個 Calendar
對象,其日曆字段已由當前日期和時間初始化:
Calendar rightNow = Calendar.getInstance();
Calendar
對象可以生成爲特定語言和日曆風格實現日期-時間格式化所需的全部日曆字段值,例如,日語-格里高裏歷,日語-傳統日曆。Calendar
定義了某些日曆字段返回值的範圍,以及這些值的含義。例如,對於全部日曆,日曆系統第一個月的值是 MONTH == JANUARY
。其餘值是由具體子類(例如 ERA
)定義的。有關此內容的細節,請參閱每一個字段的文檔和子類文檔。
java.text.Format
public abstract class Format extends Object
Format
是一個用於格式化語言環境敏感的信息(如日期、消息和數字)的抽象基類。
Format
定義了編程接口,用於將語言環境敏感的對象格式化爲 String
(使用 format
方法)和將 String
從新解析爲對象(使用 parseObject
方法)。
一般,一個 format 的 parseObject
方法必須能解析任何由其 format
方法格式化的字符串。不過,也可能存在不能解析的異常狀況。例如,format
方法可能建立中間無分隔符的兩個相鄰整數,在這種狀況下,parseObject
沒法判斷哪一個數字屬於哪一個數。
java.text.DateFormat
public abstract class DateFormat
DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。日期/時間格式化子類(如 SimpleDateFormat)容許進行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和標準化。將日期表示爲 Date
對象,或者表示爲從 GMT(格林尼治標準時間)1970 年 1 月 1 日 00:00:00 這一刻開始的毫秒數。
DateFormat 提供了不少類方法,以得到基於默認或給定語言環境和多種格式化風格的默認日期/時間 Formatter。格式化風格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用這些風格的更多細節和示例。