Java基础点:常用类
生活随笔
收集整理的這篇文章主要介紹了
Java基础点:常用类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
a) 是一個final類,無法被繼承,是不可變的字符序列,內部定義了final char[];
i. 不可變性體現:
b) 實現了Serializable(字符串可序列化),comparable接口
c) 通過字面量方式賦值:字符串聲明在字符串常量池(位于方法區中),字符串常量池中不會有相同內容的字符串
a) 字面量方式
i. 數據聲明在方法區字符串常量池
b) New加構造器方式,創建了新的對象
i. 數據在堆空間中先開辟空間后,堆中再指向字符串常量池
c) 字符串拼接:
i. 常量與常量:結果在常量池,若變量用final定義則也是這個結果。
ii. 若有變量參與拼接:結果在對空間中(地址值指向堆空間)
iii. 若上述的拼接結果調用intern()方法,返回值就在常量池中
a) Int length(): 返回字符串長度:return value.length();
b) Char charAt(int index): 返回索引處的字符
c) Boolean isEmppty(): 判斷是否為空數組: return value.length==0;
d) String toLowerCase();//toUpperCase: 所有字符轉化為大小寫
e) Trim(): 忽略前邊和后邊的空白
f) Boolean equals(Object obj):比較字符串內容是否相同
g) Boolean equalsIgnoreCase(Object obj):忽略大小寫比較
h) String concat(String str): 將指定的字符串連接到此字符串結尾,相當于“+”
i) Int compareTo(Object obj): 比較兩字符串大小,涉及到字符串排序
j) String substring(int beginIndex, int endIndex): 截取從beginIndex到endIndex(不包括end 左閉右開!!)的索引的字符串
k) Boolean endWith(String suffix):
l) Boolean startWith(String prefix):
m) Boolean startWith(String prefix, int toffset):
i. 測試此字符串是否以指定的后綴、前綴、索引開始或結束
n) Boolean contains(CharSequence s):判斷是否包含字符串s
o) Int indexOf(String str): 返回指定子字符串在字符串中第一次出現處的索引,沒找到返回-1
p) Int lastIndexOf(String str): 返回指定子字符串在字符串中最右邊出現處的索引
q) Int indexOf(String str,Int i): 返回指定子字符串在字符串中i索引開始找,若出現相同的子字符串返回索引,沒找到返回-1
r) String replace(Char oldChar, Char newChar): 返回一個newChar替換oldChar的字符串
s) String replace(charSequence target, CharSequence replacement): 替換一整個序列
t) Boolean match(String regex): 字符串是否匹配給定的正則表達式
u) String split(String regex, int limit)
a) String?char[]: str.toCharArray(); 調用String的toCharArray();
b) Char[]?String: new String(char[]),調用String構造器;
a) Str—>byte[]: str.getBytes();
b) Byte[]?Str: new String(bytes),使用String構造器;
a) 可變的字符序列,底層char[]存
b) 線程安全的,效率低
c) 新建時,相當于底層創建長度是16的char數組
d) 擴容問題:默認擴容為原來的兩倍+2, 將原有的數組的元素復制到新的數組中。Newcapacity<<1(左移一位乘2)
e) SB.length不一定等于16,返回有多少個元素。
a) 可變的字符序列,底層char[]存
b) 線程不安全的,效率高
c) 創建時,相當于底層創建長度為原長度+16的char數組(“abc”.length + 16);
a) Append():字符串拼接
b) Delete(int start, int end):刪除指定位置元素,左閉右開。Abc11?delete(2,4)?ab1
c) Replace(int start, int end, String str):替換
d) Insert(int offset, xxx):在指定位置插入XXX
e) Reverse: 反轉
f) Int indexOf(String str): 返回字符串首次出現的位置
a) Public static long currentTimeMillis():返回1970.01.01到現在的毫秒時間差(時間戳)
a) Java.util.Date
i. toString():顯示當前的年月日時分秒 星期 時區
ii. getTime():獲取毫秒數(時間戳)
iii. 構造器Date(): 創建當前時間的Date對象
iv. 構造器Date(Long 時間戳): 創建時間戳的Date對象
b) Java.sql.Date
i. 構造器Date(時間戳): 創建時間戳的Date對象
a) 實例化,方法非靜態
i. 構造特定的格式,使用指定的方式進行格式化
b) 對日期Date類的格式化和解析
c) 格式化:日期?字符串
i. String format = sdf.format(new Date());
d) 解析: 字符串?日期
i. Date date1 = sdf.parse(str);
a) 實例化
i. Calender cal = Calender.getInstance();
ii. Get(): cal.get(Calender.DAY_OF_ MONTH);返回當前月的日期
iii. Set():
iv. Add():
v. getTime():
vi. setTime():
a) 需要實例化
i. 類名.now(): LocalDate ld = LocalDate.now();
ii. 類名.of(): LocalDateTime ldt = LocalDateTime.of(2020,10,6,13,23,12);–>yyyy,MMMM,dddd,hh,mm,ss不用考慮偏移量的問題
b) Get()
i. Ldt.getDateOfMonth()/DateOfWeek…獲取月(周)中的第幾天
c) withXxx()體現了不可變性
i. 使用withXxx()進行日期修改后,原本的日期不發生改變
a) 時間線上的瞬時點,記錄應用程序的時間戳
b) 實例化:Instant.now(); instant.atOffset(ZoneOffesrt.ofHours(8));?獲取中國時區標準時間,通過添加偏移量。
c) Instant.toEpochMilli(); 獲取對應的毫秒數
d) Instant.ofEpochMilli(Long long): 通過給定的毫秒數創建instant實例
a) 用于格式化和解析日期或者時間,提供了三種格式化的方法。
i. 自定義格式化初始化
b) 格式化:日期?字符串
i. formatter.format(LocalDateTime.now());
c) 解析:
i. formatter.parse(String)
a) Java中的對象只能進行==和!=操作,無法比較大小
b) 由于需要對對象進行排序,則需要比較大小。
a) 實現comparable接口,重寫comparaTo(obj)方法
b) 在compareTo(obj)指明比較大小的方式
總結
以上是生活随笔為你收集整理的Java基础点:常用类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java基础点——面向对象(中)
- 下一篇: Java基础点:集合