Java 常用類


Object 老祖宗

java.lang.Object

1. 所有的類直接或者間接繼承父類 Java認為所有的對象都具備一些基本的共性內容 這些內容可以不斷的向上抽取 最終就抽取到了一個最頂層的類中(Object) 該類中定義的就是所有對象都具備的功能

2. 具體方法:

boolean equals(Object obj): 用於比較兩個對象是否相等 其實內部比較的就是兩個對象地址

String toString(): 將對象變成字符串 默認返回的格式: 類名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode()) 為了對象對應的字符串內容有意義 可以通過復寫 建立該類對象自己特有的字符串表現形式

Class getClass(): 獲取任意對象運行時的所屬字節碼文件對象

int hashCode(): 返回該對象的哈希碼值 支持此方法是為了提高哈希表的性能

通常equals, toString, hashCode在應用中都會被復寫 建立具體對象的特有的內容

  

String 字符串類

java.lang.String

1. java中用String類進行描述 對字符串進行了對象的封裝 這樣的好處是可以對字符串這種常見數據進行方便的操作 對象封裝后 可以定義N多屬性和行為

2. 特點: 字符串一旦被初始化 就不可以被改變 存放在方法區中的常量池中

3. 具體方法:

1> 構造方法 將字節數組或者字符數組轉成字符串

String s1 = new String(); //創建了一個空內容的字符串

String s2 = null; //s2沒有任何對象指向 是一個null常量值

String s3 = ""; //s3指向一個具體的字符串對象 只不過這個字符串中沒有內容

String s4 = new String("abc");

String s5 = "abc"; //一般用此寫法

new String(char[]); //將字符數組轉成字符串

new String(char[], offset, count); //將字符數組中的一部分轉成字符串

2> 一般方法

a. 獲取

length(); //獲取字符串的長度

char charAt(int index); //指定位置的字符

int indexOf(int ch); //返回第一次找到的字符角標 如果不存在返回-1

int indexOf(int ch, int fromIndex); //返回從指定位置開始第一次找到的角標 如果不存在返回-1

int indexOf(String str); // 返回第一次找到的字符串角標 如果不存在返回-1

int indexOf(String str, int fromIndex);

int lastIndexOf(int ch);

int lastIndexOf(int ch, int fromIndex);

int lastIndexOf(String str);

int lastIndexOf(String str, int fromIndex);

String substring(int start); //start位開始 length()-1為止

String substring(int start, int end); //start開始到end為止 //包含start 不包含end

substring(0, str.length()); //獲取整串

b. 判斷

boolean contains(String substring); //字符串中包含指定的字符串嗎

boolean startsWith(string); //字符串是否以指定字符串開頭啊

boolean endsWith(string); //字符串是否以指定字符串結尾啊

boolean equals(string); //覆蓋了Object中的方法 判斷字符串內容是否相同

boolean equalsIgnoreCase(string) ; //判斷字符串內容是否相同 忽略大小寫

c. 轉換

//可以通過字符串中的靜態方法 將字符數組轉成字符串

static String copyValueOf(char[] );

static String copyValueOf(char[], int offset, int count);

static String valueOf(char[]);

static String valueOf(char[], int offset, int count);

//將基本數據類型或者對象轉成字符串

static String valueOf(char);

static String valueOf(boolean);

static String valueOf(double);

static String valueOf(float);

static String valueOf(int);

static String valueOf(long);

static String 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(); //去除字符串兩端的空格

int compareTo(); //如果參數字符串等於此字符串 則返回值 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); 刪除從startend-1范圍的元素

StringBuffer deleteCharAt(index); 刪除指定位置的元素

//sb.delete(0, sb.length()); 清空緩沖區

//修改

StringBuffer replace(start, end, string); startend-1替換成string

void setCharAt(index, char); 替換指定位置的字符

void setLength(len); 將原字符串置為指定長度的字符串

//查找 (查不到返回-1)

int indexOf(string); 返回指定子字符串在此字符串中第一次出現處的索引

int indexOf(string,int fromIndex); 從指定位置開始查找字符串

int lastIndexOf(string); 返回指定子字符串在此字符串中最右邊出現處的索引

int lastIndexOf(string, int fromIndex); 從指定的索引開始反向搜索

//獲取子串

string substring(start); 返回start到結尾的子串

string substring(start, end); 返回startend-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(int num, int radix);

4. 將其他進制轉換十進制: parseInt(string, radix); //將給定的數轉成指定的基數進制

5. jdk1.5版本后 對基本數據類型對象包裝類進行升級 在升級中 使用基本數據類型對象包裝類可以像使用基本數據類型一樣 進行運算

Integer i = new Integer(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

屬性和行為都是靜態的

long currentTimeMillis(); //返回當前時間毫秒值

exit();  //退出虛擬機

Properties getProperties(); //獲取當前系統的屬性信息

Properties prop = System.getProperties(); //獲取系統的屬性信息 並將這些信息存儲到Properties集合中

System.setProperty("myname","禕哥哥"); //給系統屬性信息集添加具體的屬性信息

String name = System.getProperty("os.name"); //獲取指定屬性的信息

 

Runtime 運行時環境類

java.lang.Runtime

類中沒有構造方法 不能創建對象

但是有非靜態方法 說明該類中應該定義好了對象 並可以通過一個static方法獲取這個對象 用這個對象來調用非靜態方法 這個方法就是 static Runtime getRuntime(); (單例設計模式)

class  RuntimeDemo {
    public static void main(String[] args) throws Exception {
        Runtime r = Runtime.getRuntime();
        Process p = r.exec("notepad.exe SystemDemo.java"); //運行指定的程序
        Thread.sleep(4000);
        p.destroy(); //殺掉進程
    }
}

 

Math 數學運算工具類

java.util.Math

用於數學運算的工具類 屬性和行為都是靜態的 該類是final不允許繼承

static double ceil(double a); //返回大於指定數值的最小整數

static double floor(double a); //返回小於指定數值的最大整數

static long round(double a); //四舍五入成整數

static double pow(double a, double b); //ab次冪

static double random(); //返回0~1的偽隨機數

 

Date 日期類

java.util.Date

日期類 月份從0-11(這就是老外 奇奇怪怪)

//日期對象轉成毫秒值

Date d = new Date();

long time1 = d.getTime();

long time2 = System.currentTimeMillis(); //毫秒值

//毫秒值轉成具體的日期

long time = 1322709921312l;

Date d = new Date();

d.setTime(time);

//將日期字符串轉換成日期對象 使用的就是DateFormat方法中的 Date parse(String source);

public static void method() throws Exception {

    String str_time = "2011/10/25";

    DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); //SimpleDateFormat作為可以指定用戶自定義的格式來完成格式化

    Date d = df.parse(str_time);

}

//將日期對象轉換成字符串的方式 DateFormat類中的format方法

//創建日期格式對象

DateFormat df = new SimpleDateFormat(); //該對象的建立內部會封裝一個默認的日期格式 11-12-1 下午1:48

//如果想要自定義日期格式的話 可使用SimpleDateFormat的構造函數 將具體的格式作為參數傳入到構造函數中 必須要參與格式對象文檔

df = new SimpleDateFormat("yyyyMMdd HH:mm:ss");

//調用DateFormat中的format方法 對已有的日期對象進行格式化

String str_time = df.format(d);

 

Calendar 日歷類

ava.util. Calendar

public static void method(){
    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(int num){
    return num > 9 ? num + "" : "0" + num;
}

public static String getWeek(int index){
    //查表法 建立數據的對應關系
    //最好 數據個數是確定的 而且有對應關系 如果對應關系的一方 是數字 而且可以作為角標 那么可以通過數組來作為表
    String[] weeks = {"","日","一","二","三","四","五","六"};
    return weeks[index];
} 

 

十一 File 文件類

java.io.File;

1. 將文件系統中的文件和文件夾封裝成了對象 提供了更多的屬性和行為可以對這些文件和文件夾進行操作 這些是流對象辦不到的 因為流只操作數據

2. 具體方法:

//創建

boolean createNewFile(); 在指定目錄下創建文件 如果該文件已存在 則不創建 而對操作文件的輸出流而言 輸出流對象已建立 就會創建文件 如果文件已存在 會覆蓋 除非續寫

boolean mkdir(); 創建此抽象路徑名指定的目錄

boolean mkdirs(); 創建多級目錄

//刪除 注意: 在刪除文件夾時 必須保證這個文件夾中沒有任何內容 才可以將該文件夾用delete刪除 window的刪除動作 是從里往外刪 java刪除文件不走回收站 要慎用

boolean delete(); 刪除此抽象路徑名表示的文件或目錄

void deleteOnExit(); 在虛擬機退出時刪除

//獲取

long length(); 獲取文件大小

String getName(); 返回由此抽象路徑名表示的文件或目錄的名稱

String getPath(); 將此抽象路徑名轉換為一個路徑名字符串

String getAbsolutePath(); 返回此抽象路徑名的絕對路徑名字符串

String getParent(); 返回此抽象路徑名父目錄的抽象路徑名 如果此路徑名沒有指定父目錄 則返回 null

long lastModified(); 返回此抽象路徑名表示的文件最后一次被修改的時間

File.pathSeparator; 返回當前系統默認的路徑分隔符 windows默認為";"

File.Separator; 返回當前系統默認的目錄分隔符 windows默認為"\"

//判斷

boolean exists(); 判斷文件或者文件夾是否存在

boolean isDirectory(); 測試此抽象路徑名表示的文件是否是一個目錄

boolean isFile(); 測試此抽象路徑名表示的文件是否是一個標准文件

boolean isHidden(); 測試此抽象路徑名指定的文件是否是一個隱藏文件

boolean isAbsolute(); 測試此抽象路徑名是否為絕對路徑名

//重命名

boolean renameTo(File dest); 可以實現移動的效果 剪切+重命名

  

十二 Properties

一個可以將鍵值進行持久化存儲的對象 Map --> Hashtable的子類

用於屬性配置文件 鍵和值都是字符串類型

特點: 可以持久化存儲數據, 鍵值都是字符串, 一般用於配置文件

load(); 將流中的數據加載進集合 原理其實就是將讀取流和指定文件相關聯 並讀取一行數據 因為數據是規則的key=value 所以獲取一行后 通過 = 對該行數據進行切割 左邊就是鍵 右邊就是值 將鍵 值存儲到properties集合中

store(); 寫入各個項后 刷新輸出流

list(); 將集合的鍵值數據列出到指定的目的地

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM