java常见_Java 常用类
一Object 老祖宗
java.lang.Object
1.所有的類直接或者間接繼承父類Java認(rèn)為所有的對象都具備一些基本的共性內(nèi)容這些內(nèi)容可以不斷的向上抽取最終就抽取到了一個最頂層的類中(Object) 該類中定義的就是所有對象都具備的功能
2.具體方法:
booleanequals(Object obj): 用于比較兩個對象是否相等其實內(nèi)部比較的就是兩個對象地址
String toString(): 將對象變成字符串默認(rèn)返回的格式: 類名@哈希值= getClass().getName() + '@'+ Integer.toHexString(hashCode()) 為了對象對應(yīng)的字符串內(nèi)容有意義可以通過復(fù)寫建立該類對象自己特有的字符串表現(xiàn)形式
Class getClass(): 獲取任意對象運行時的所屬字節(jié)碼文件對象
inthashCode(): 返回該對象的哈希碼值支持此方法是為了提高哈希表的性能
通常equals, toString, hashCode在應(yīng)用中都會被復(fù)寫建立具體對象的特有的內(nèi)容
二String 字符串類
java.lang.String
1.java中用String類進行描述對字符串進行了對象的封裝這樣的好處是可以對字符串這種常見數(shù)據(jù)進行方便的操作對象封裝后可以定義N多屬性和行為
2.特點: 字符串一旦被初始化就不可以被改變存放在方法區(qū)中的常量池中
3.具體方法:
1> 構(gòu)造方法將字節(jié)數(shù)組或者字符數(shù)組轉(zhuǎn)成字符串
String s1 = newString(); //創(chuàng)建了一個空內(nèi)容的字符串
String s2 = null; //s2沒有任何對象指向是一個null常量值
String s3 = ""; //s3指向一個具體的字符串對象只不過這個字符串中沒有內(nèi)容
String s4 = newString("abc");
String s5 = "abc"; //一般用此寫法
newString(char[]); //將字符數(shù)組轉(zhuǎn)成字符串
newString(char[], offset, count); //將字符數(shù)組中的一部分轉(zhuǎn)成字符串
2> 一般方法
a. 獲取
length(); //獲取字符串的長度
charcharAt(intindex); //指定位置的字符
intindexOf(intch); //返回第一次找到的字符角標(biāo)如果不存在返回-1
intindexOf(intch, intfromIndex); //返回從指定位置開始第一次找到的角標(biāo)如果不存在返回-1
intindexOf(String str); // 返回第一次找到的字符串角標(biāo)如果不存在返回-1
intindexOf(String str, intfromIndex);
intlastIndexOf(intch);
intlastIndexOf(intch, intfromIndex);
intlastIndexOf(String str);
intlastIndexOf(String str, intfromIndex);
String substring(intstart); //從start位開始到length()-1為止
String substring(intstart, intend); //從start開始到end為止//包含start位不包含end位
substring(0, str.length()); //獲取整串
b. 判斷
booleancontains(String substring); //字符串中包含指定的字符串嗎
booleanstartsWith(string); //字符串是否以指定字符串開頭啊
booleanendsWith(string); //字符串是否以指定字符串結(jié)尾啊
booleanequals(string); //覆蓋了Object中的方法判斷字符串內(nèi)容是否相同
booleanequalsIgnoreCase(string) ; //判斷字符串內(nèi)容是否相同忽略大小寫
c. 轉(zhuǎn)換
//可以通過字符串中的靜態(tài)方法將字符數(shù)組轉(zhuǎn)成字符串
staticString copyValueOf(char[] );
staticString copyValueOf(char[], intoffset, intcount);
staticString valueOf(char[]);
staticString valueOf(char[], intoffset, intcount);
//將基本數(shù)據(jù)類型或者對象轉(zhuǎn)成字符串
staticString valueOf(char);
staticString valueOf(boolean);
staticString valueOf(double);
staticString valueOf(float);
staticString valueOf(int);
staticString valueOf(long);
staticString valueOf(Object);
//將字符串轉(zhuǎn)成大小寫
String toLowerCase(); //轉(zhuǎn)小寫
String toUpperCase(); //轉(zhuǎn)大寫
//將字符串轉(zhuǎn)成數(shù)組
char[] toCharArray(); //轉(zhuǎn)成字符數(shù)組
byte[] getBytes(); //可以加入編碼表轉(zhuǎn)成字節(jié)數(shù)組
//將字符串轉(zhuǎn)成字符串?dāng)?shù)組切割方法
String[] split(分割的規(guī)則-字符串);
//將字符串進行內(nèi)容替換注意: 修改后變成新字符串并不是將原字符串直接修改
String replace(oldChar, newChar);
String replace(oldstring, newstring);
String concat(string); //對字符串進行追加
String trim(); //去除字符串兩端的空格
intcompareTo(); //如果參數(shù)字符串等于此字符串則返回值0 如果此字符串按字典順序小于字符串參數(shù)則返回一個小于0 的值如果此字符串按字典順序大于字符串參數(shù)則返回一個大于0 的值
三StringBuffer 字符串緩沖區(qū)
java.lang.StringBuffer
1.構(gòu)造一個其中不帶字符的字符串緩沖區(qū)初始容量為16個字符
2.特點:
1> 可以對字符串內(nèi)容進行修改
2> 是一個容器
3> 是可變長度的
4> 緩沖區(qū)中可以存儲任意類型的數(shù)據(jù)
5> 最終需要變成字符串
3.具體方法:
//添加
StringBuffer append(data); 在緩沖區(qū)中追加數(shù)據(jù)追加到尾部
StringBuffer insert(index, data); 在指定位置插入數(shù)據(jù)
//刪除
StringBuffer delete(start, end); 刪除從start至end-1范圍的元素
StringBuffer deleteCharAt(index); 刪除指定位置的元素
//sb.delete(0, sb.length()); 清空緩沖區(qū)
//修改
StringBuffer replace(start, end, string); 將start至end-1替換成string
voidsetCharAt(index, char); 替換指定位置的字符
voidsetLength(len); 將原字符串置為指定長度的字符串
//查找(查不到返回-1)
intindexOf(string); 返回指定子字符串在此字符串中第一次出現(xiàn)處的索引
intindexOf(string,intfromIndex); 從指定位置開始查找字符串
intlastIndexOf(string); 返回指定子字符串在此字符串中最右邊出現(xiàn)處的索引
intlastIndexOf(string, intfromIndex); 從指定的索引開始反向搜索
//獲取子串
string substring(start); 返回start到結(jié)尾的子串
string substring(start, end); 返回start至end-1的子串
//反轉(zhuǎn)
StringBuffer reverse(); 字符串反轉(zhuǎn)
四StringBuilder 字符串緩沖區(qū)
java.lang.StringBuilder
1.JDK1.5出現(xiàn)StringBuiler 構(gòu)造一個其中不帶字符的字符串生成器初始容量為16個字符該類被設(shè)計用作StringBuffer的一個簡易替換用在字符串緩沖區(qū)被單個線程使用的時候(這種情況很普遍)
2.具體方法: 和StringBuffer一樣
3.StringBuffer 和StringBuilder 的區(qū)別:
StringBuffer線程安全
StringBuilder線程不安全
單線程操作使用StringBuilder 效率高
多線程操作使用StringBuffer 安全
五Integer int對象包裝類
java.lang.Integer
1.數(shù)字格式的字符串轉(zhuǎn)成基本數(shù)據(jù)類型的方法
1> 將該字符串封裝成了Integer對象并調(diào)用對象的方法intValue();
2> 使用Integer.parseInt(numstring); 不用建立對象直接類名調(diào)用
2.將基本類型轉(zhuǎn)成字符串
1> Integer中的靜態(tài)方法String toString(int);
2> int+ "";
3.將一個十進制整數(shù)轉(zhuǎn)成其他進制
1> 轉(zhuǎn)成二進制: toBinaryString
2> 轉(zhuǎn)成八進制: toOctalString
3> 轉(zhuǎn)成十六進制: toHexString
4> toString(intnum, intradix);
4.將其他進制轉(zhuǎn)換十進制: parseInt(string, radix); //將給定的數(shù)轉(zhuǎn)成指定的基數(shù)進制
5.在jdk1.5版本后對基本數(shù)據(jù)類型對象包裝類進行升級在升級中使用基本數(shù)據(jù)類型對象包裝類可以像使用基本數(shù)據(jù)類型一樣進行運算
Integer i = newInteger(4); //1.5版本之前的寫法
Integer i = 4; //自動裝箱1.5版本后的寫法
i = i + 5;
//i對象是不能直接和5相加的其實底層先將i轉(zhuǎn)成int類型在和5相加而轉(zhuǎn)成int類型的操作是隱式的自動拆箱: 拆箱的原理就是i.intValue(); i+5運算完是一個int整數(shù)如何賦值給引用類型i呢? 其實有對結(jié)果進行裝箱
Integer c = 127;
Integer d = 127;
System.out.println(c = = d); //true
//在裝箱時如果數(shù)值在byte范圍之內(nèi)那么數(shù)值相同不會產(chǎn)生新的對象也就是說多個數(shù)值相同的引用指向的是同一個對象
六System 系統(tǒng)類
java.lang.System
屬性和行為都是靜態(tài)的
longcurrentTimeMillis(); //返回當(dāng)前時間毫秒值
exit();? //退出虛擬機
Properties getProperties(); //獲取當(dāng)前系統(tǒng)的屬性信息
Properties prop = System.getProperties(); //獲取系統(tǒng)的屬性信息并將這些信息存儲到Properties集合中
System.setProperty("myname","祎哥哥"); //給系統(tǒng)屬性信息集添加具體的屬性信息
String name = System.getProperty("os.name"); //獲取指定屬性的信息
七Runtime 運行時環(huán)境類
java.lang.Runtime
類中沒有構(gòu)造方法不能創(chuàng)建對象
但是有非靜態(tài)方法說明該類中應(yīng)該定義好了對象并可以通過一個static方法獲取這個對象用這個對象來調(diào)用非靜態(tài)方法這個方法就是staticRuntime getRuntime(); (單例設(shè)計模式)
classRuntimeDemo {public static void main(String[] args) throwsException {
Runtime r=Runtime.getRuntime();
Process p= r.exec("notepad.exe SystemDemo.java"); //運行指定的程序
Thread.sleep(4000);
p.destroy();//殺掉進程
}
}
八Math 數(shù)學(xué)運算工具類
java.util.Math
用于數(shù)學(xué)運算的工具類屬性和行為都是靜態(tài)的該類是final不允許繼承
staticdoubleceil(doublea); //返回大于指定數(shù)值的最小整數(shù)
staticdoublefloor(doublea); //返回小于指定數(shù)值的最大整數(shù)
staticlonground(doublea); //四舍五入成整數(shù)
staticdoublepow(doublea, doubleb); //a的b次冪
staticdoublerandom(); //返回0~1的偽隨機數(shù)
九Date 日期類
java.util.Date
日期類月份從0-11(這就是老外 奇奇怪怪)
//日期對象轉(zhuǎn)成毫秒值
Date d = newDate();
longtime1 = d.getTime();
longtime2 = System.currentTimeMillis(); //毫秒值
//毫秒值轉(zhuǎn)成具體的日期
longtime = 1322709921312l;
Date d = newDate();
d.setTime(time);
//將日期字符串轉(zhuǎn)換成日期對象使用的就是DateFormat方法中的Date parse(String source);
publicstaticvoidmethod() throwsException {
String str_time = "2011/10/25";
DateFormat df = newSimpleDateFormat("yyyy/MM/dd"); //SimpleDateFormat作為可以指定用戶自定義的格式來完成格式化
Date d = df.parse(str_time);
}
//將日期對象轉(zhuǎn)換成字符串的方式DateFormat類中的format方法
//創(chuàng)建日期格式對象
DateFormat df = newSimpleDateFormat(); //該對象的建立內(nèi)部會封裝一個默認(rèn)的日期格式11-12-1 下午1:48
//如果想要自定義日期格式的話可使用SimpleDateFormat的構(gòu)造函數(shù)將具體的格式作為參數(shù)傳入到構(gòu)造函數(shù)中必須要參與格式對象文檔
df = newSimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
//調(diào)用DateFormat中的format方法對已有的日期對象進行格式化
String str_time = df.format(d);
十Calendar 日歷類
ava.util. Calendarpublic static voidmethod(){
Calendar c=Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR)+ "年" + (c.get(Calendar.MONTH)+1) + "月"
+ getNum(c.get(Calendar.DAY_OF_MONTH)) + "日"
+ "星期" +getWeek(c.get(Calendar.DAY_OF_WEEK)));
}public static String getNum(intnum){return num > 9 ? num + "" : "0" +num;
}public static String getWeek(intindex){//查表法 建立數(shù)據(jù)的對應(yīng)關(guān)系//最好 數(shù)據(jù)個數(shù)是確定的 而且有對應(yīng)關(guān)系 如果對應(yīng)關(guān)系的一方 是數(shù)字 而且可以作為角標(biāo) 那么可以通過數(shù)組來作為表
String[] weeks = {"","日","一","二","三","四","五","六"};returnweeks[index];
}
十一File 文件類
java.io.File;
1.將文件系統(tǒng)中的文件和文件夾封裝成了對象提供了更多的屬性和行為可以對這些文件和文件夾進行操作這些是流對象辦不到的因為流只操作數(shù)據(jù)
2.具體方法:
//創(chuàng)建
booleancreateNewFile(); 在指定目錄下創(chuàng)建文件如果該文件已存在則不創(chuàng)建而對操作文件的輸出流而言輸出流對象已建立就會創(chuàng)建文件如果文件已存在會覆蓋除非續(xù)寫
booleanmkdir(); 創(chuàng)建此抽象路徑名指定的目錄
booleanmkdirs(); 創(chuàng)建多級目錄
//刪除注意: 在刪除文件夾時必須保證這個文件夾中沒有任何內(nèi)容才可以將該文件夾用delete刪除window的刪除動作是從里往外刪java刪除文件不走回收站要慎用
booleandelete(); 刪除此抽象路徑名表示的文件或目錄
voiddeleteOnExit(); 在虛擬機退出時刪除
//獲取
longlength(); 獲取文件大小
String getName(); 返回由此抽象路徑名表示的文件或目錄的名稱
String getPath(); 將此抽象路徑名轉(zhuǎn)換為一個路徑名字符串
String getAbsolutePath(); 返回此抽象路徑名的絕對路徑名字符串
String getParent(); 返回此抽象路徑名父目錄的抽象路徑名如果此路徑名沒有指定父目錄則返回null
longlastModified(); 返回此抽象路徑名表示的文件最后一次被修改的時間
File.pathSeparator; 返回當(dāng)前系統(tǒng)默認(rèn)的路徑分隔符windows默認(rèn)為";"
File.Separator; 返回當(dāng)前系統(tǒng)默認(rèn)的目錄分隔符windows默認(rèn)為"\"
//判斷
booleanexists(); 判斷文件或者文件夾是否存在
booleanisDirectory(); 測試此抽象路徑名表示的文件是否是一個目錄
booleanisFile(); 測試此抽象路徑名表示的文件是否是一個標(biāo)準(zhǔn)文件
booleanisHidden(); 測試此抽象路徑名指定的文件是否是一個隱藏文件
booleanisAbsolute(); 測試此抽象路徑名是否為絕對路徑名
//重命名
booleanrenameTo(File dest); 可以實現(xiàn)移動的效果剪切+重命名
十二Properties
一個可以將鍵值進行持久化存儲的對象Map --> Hashtable的子類
用于屬性配置文件鍵和值都是字符串類型
特點: 可以持久化存儲數(shù)據(jù), 鍵值都是字符串, 一般用于配置文件
load(); 將流中的數(shù)據(jù)加載進集合原理其實就是將讀取流和指定文件相關(guān)聯(lián)并讀取一行數(shù)據(jù)因為數(shù)據(jù)是規(guī)則的key=value 所以獲取一行后通過= 對該行數(shù)據(jù)進行切割左邊就是鍵右邊就是值將鍵值存儲到properties集合中
store(); 寫入各個項后刷新輸出流
list(); 將集合的鍵值數(shù)據(jù)列出到指定的目的地
總結(jié)
以上是生活随笔為你收集整理的java常见_Java 常用类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 有哪些反射机制_Java 的反
- 下一篇: mysql 8.1初始密码_MySQL8