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