Java下筆記

一、String、Scanner、API

1. API會查詢

2. Scanner:

  • hashNext(...) 、HashNextLine
  • next(...) 、nextLine

3. String

  • 構(gòu)造方法:5個(gè)
  • 成員方法:判斷、獲取、轉(zhuǎn)換、其他

二、 StringBuffer

1. StringBuffer概念、特點(diǎn)

  • 線程安全字符序列。
  • 為什么?string每次修改都要新建一個(gè)對象,浪費(fèi)控件、耗費(fèi)時(shí)間。
  • 特點(diǎn):修改不會新建對象
  • 與String的區(qū)別:①長度可變②如果使用前者做字符串的拼接,不會浪費(fèi)太多的資源

2. StringBuffer構(gòu)造方法:3個(gè)構(gòu)造(無參、帶容量參數(shù)、帶默認(rèn)值的參數(shù))

3. StringBuffer成員方法:

  • 添加:append(String str)、insert(int offset,String str)
  • 刪除:deleteCharAt(int index)、delete(int start,int end)
  • 替換:replace(int start,int end,String str)
  • 截?。?br> subString(int startIndex)包含下標(biāo)index對應(yīng)的字符
    subString(int start,int end):左閉右開
  • 反轉(zhuǎn):reverse()

4. StringBuffer和String的轉(zhuǎn)換

  • String轉(zhuǎn)StringBuffer:
    ①sb.append(String str)
    ②new StringBuffer(String str)
  • StringBuffer轉(zhuǎn)String
    ①new String(sb)
    ②sb.toString()

5.高級數(shù)組操作

①冒泡排序:相鄰元素比較,大的后移,最后最大值到了最大索引處。
②選擇排序:第一個(gè)元素和后邊依次作比較,最小的放最小索引處。
③二分查找:目標(biāo)元素和中間值比較,如果等于則查找成功,如果大于中間值則查找右邊子表,如果小于中間值則查找左邊子表。

三、包裝類

  1. 什么是包裝類及作用
  2. Integer
    構(gòu)造(2個(gè)):
    成員方法(3個(gè)):toString()、parseInt()、valueOf()
  3. int和string相互轉(zhuǎn)化
    int --> String:""、int.toString()、String.valueOf()
    String--> int :Integer.parse()
  4. 自動拆箱、裝箱
  5. Character
    構(gòu)造方法(1個(gè)):
    成員方法(5個(gè)):isDigit()、isUpperCase()、isLowerCase()、toLowerCase()、toUpperCase()
  6. Math:
    ①兩個(gè)常量:E 、PI
    ②N個(gè)方法:abs()、max()、min()、round()、random()、floor()、ceil()、sqrt()、pow()
    2-5隨機(jī)數(shù):2+(int)(Math.random*(5-2+1))
  7. Random
  8. System
  9. Date:
    兩個(gè)構(gòu)造:無參-有默認(rèn)種子,當(dāng)前系統(tǒng)時(shí)間毫秒值、有參(int seed)
    兩個(gè)方法:getTime()、setTime()
  10. DateFormat
    一個(gè)構(gòu)造:Pattern-y、M、d、H、m、s
    兩個(gè)方法:format()-格式化、parse()-解析
  11. Calender
    獲取對象:單例設(shè)計(jì)模式提供對象-Calender.getInstance()
    一個(gè)方法:get(String key)
    key:Calendar.YEAR...

四、正則表達(dá)式

  1. 概念:符合某一規(guī)則字符串
  2. 規(guī)則
    ①字符:x \n \r
    ②字符類:[abc] [^abc] [0-9] [a-zA-Z]
    ③預(yù)定義字符類:. \. \d \w=[a-zA-Z_0-9]
    ④邊界匹配器:^ $ \b
    ⑤數(shù)量詞:x+ x? x* x{n} x{n,} x{n,m}
  3. 身份證、手機(jī)號、郵箱、QQ、密碼、驗(yàn)證碼
    QQ:"[1-9][0-9]{4,9}"
    ID:"[1-9][0-9]{16}[0-9X]"
    密碼:"[A-Z]\w{6,12}"
    驗(yàn)證碼:"\d{4}"
    郵箱:"\w+@\w{2,6}(\.[a-z]{2,3})+"
  4. 正則功能:
    ①判斷:String.mathes()
    ②分割:String[] arr = String.Split("x");
    ③替換:replaceAll()

五、集合

  1. 集合由來、特點(diǎn)
  2. Collection:單列集合根接口
    add():添加元素
    addAll():添加集合
    remove(Object o):刪除元素
    clear():清除所有元素
    removeAll(collection):刪除與指定集合相同的元素
    retainAll(Collection):刪除與指定集合不同的元素
    size():大小
    contains():包含元素、集合
    isEmpty():集合是否為空
    toArray():集合轉(zhuǎn)換為數(shù)組
  3. Iterator:集合專門迭代器,遍歷集合
    hasNext():判斷是否有下一個(gè)元素
    next():獲取下一元素
  4. List:有序的Collection
    add(index,object):插入
    set(index,object):修改
    remove(index):刪除指定下表的元素
    get(index):獲取指定下表的元素
    ListIterator:
    ConcurrentModificationException:
  5. 數(shù)據(jù)結(jié)構(gòu):儲存數(shù)據(jù)的方式
    ①棧:先進(jìn)后出
    ②隊(duì)列:先進(jìn)先出
    ③數(shù)組:有索引、長度不可變、查詢快、增刪慢
    ④鏈表:查詢慢,增刪快
  6. ArrayList
    特點(diǎn):查詢快,增刪慢,線程不安全,效率高
    特有方法(2個(gè)構(gòu)造):
    ArrayList()
    ArrayList(Collection)
    List繼承過來方法
  7. Vector
    特點(diǎn):底層是數(shù)組,查詢快,增刪慢,線程安全,效率低
    特有方法(3):
    addElement()
    elementAt(int index)
    elements()
  8. LinkedList:
    特點(diǎn):查詢慢,增刪快,線程不安全,效率高
    特有方法(7):
    addFirst()
    addLast()
    getLast()
    getFirst()
    removeFirst()
    removeLast()
    add(int index,Object o)
  9. 泛型
    概念:一種把類型確定工作推遲到創(chuàng)建對象或者調(diào)用方法時(shí)確定的特殊類型,簡稱參數(shù)化類型。
    格式:<任意大寫字母>注意:必須是引用數(shù)據(jù)類型
    分類
    ①泛型類:public class 類名<T> {}
    ②泛型方法:public <T> void 方法名(T t){}
    ③泛型接口:public interface 接口名<T>{}
  10. TreeSet類概述和特點(diǎn)

六、Set

  1. Set概述、特點(diǎn)
    無序、不重復(fù)
  2. HashSet
    特點(diǎn):無序、不重復(fù)
    去重(string和自定義對象)
    如果自定義對象:必須重寫方法hashCode()、equals()
  3. LinkedHashSet類概述和特點(diǎn)
    特點(diǎn):有序、元素不重復(fù)
  4. 靜態(tài)導(dǎo)入:
    一個(gè)類中定義幾個(gè)靜態(tài)方法,在測試類中調(diào)用不用類名調(diào)用,導(dǎo)入類名包,加*(通配符)
import static day06.FlyMath.*;
  1. 可變參數(shù):
    public void get(int... arr){}
  • 注意:把可變參數(shù)寫在參數(shù)列表最后。
  1. 工具類
    Arrays(數(shù)組):sort()、fill()、toString()、binarySerach()、asList()
    Collections(集合):sort()、reverse()、swrap()、max()、min()、reverseOlder()、shufle()
  2. 增強(qiáng)For
    格式:
    for(數(shù)據(jù)類型 變量:集合/數(shù)組){}
    好處:
    ①避免下標(biāo)越界
    ②簡化數(shù)組或者集合遍歷

七、Map

  1. 概述與特點(diǎn)
    概念:雙列集合,存儲鍵值對
    特點(diǎn):鍵唯一、值可重復(fù)
  2. 成員方法(11):
    put(key,value)
    remove(key)
    isEmpty()
    size()
    get(key)
    clear()
    containsKey()
    containsValue()
    keySet()
    values()
    entrySet()
  3. Map四種遍歷
    ①ketSet():通過鍵獲取值
    ②entrySet()
    ③values():只能獲取值,無法通過值獲取鍵
  4. HashMap特點(diǎn)、使用
    特點(diǎn):保證鍵的唯一性
    使用:鍵和值可以是任意引用類型,鍵唯一
  5. LinkedHashMap
  6. TreeMap
  7. HashTable

八、異常

  1. 概念:程序在運(yùn)行時(shí)發(fā)生不正常事件,打斷程序執(zhí)行流程
  2. 分類:
    ①編譯時(shí)異常
    ②運(yùn)行異常
  3. 常見異常
    ①ArithmeticException
    ②NullPointerException
    ③ClassCastException
    ④ArrayIndexOutOfBoundsException:數(shù)組越界
    ⑤IndexOutOfBoundsException:集合越界
    ⑥FileNotFoundException
    ⑦IOException
    ⑧SQLException
    ⑨NumFormatException
    ⑩NoSuchMethodException
  4. 處理
    ①拋給JVM,不作處理,僅僅拋出來
    ②try...catch...finally
    ③自定義異常

九、File

  1. 概念:文件和文件夾

  2. 構(gòu)造:
    ①File(String pathName)
    ②Fiel(File file)
    ③File(File paranet,Strinig fileName)
    ④File(String parent,String FileName)

  3. 成員方法
    ①createNewFile()
    ②delete()
    ③reNmae()
    ④mkDir()
    ⑤mdDirs()
    ⑥isFile()
    ⑦isDirectory()
    ⑧isHidden()
    ⑨canRead()
    ⑩canWrite()
    ?exist()
    ?getName()
    ?getPath()
    ?getAbsolutePath()
    ?getParent()
    ?lenth()
    ?lastModified()
    ?listRoots()
    ?list()、list(fiilter)、listFiles()、listFiles(Filter)

  4. 遞歸
    概念
    案例:階乘、斐波那契數(shù)列、遍歷文件

十、IO

  1. IO概念:設(shè)備之間傳遞數(shù)據(jù)
  2. IO基類
    InputStream、outPutStream、Reader、Writer
  3. FileOutPutStream:從內(nèi)存(程序)寫到硬盤
    FileInPutStream:從硬盤讀取到內(nèi)存(程序)
  4. 緩存字節(jié)流
    BufferedOutputStream(outPutStream):
    BufferedInputStream(InputStream):
  5. 轉(zhuǎn)換流(字符流)
    原因:字節(jié)流操作字符不方便
    組成:字節(jié)流+編碼表
    編碼表:現(xiàn)實(shí)世界字符和對應(yīng)的數(shù)值組成的一張表
    六個(gè)流:
    ①InputStreamReader、outPutStreamWriter
    ②FileReader、FileWriter
    ③BufferedReader、BufferedWriter
  6. 序列化流:java對象—>硬盤數(shù)據(jù)、網(wǎng)絡(luò)節(jié)點(diǎn)
    反序列化流:硬盤數(shù)據(jù)、網(wǎng)絡(luò)節(jié)點(diǎn)—>java對象
    Android中使用:界面之間傳遞數(shù)據(jù)、緩存
  7. 文件隨機(jī)訪問流:RandomAccessFile
    概念: 對文件隨機(jī)讀和寫
    文件指針:獲取、設(shè)置
    模式:四種("rw")

十一、多線程

  1. 幾個(gè)概念:程序、進(jìn)程、線程
  2. 創(chuàng)建線程:
    方式一:自定義類繼承Thread,重寫方法run,在run里執(zhí)行操作,調(diào)用start開啟;
    方式二:
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容