一、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)元素和中間值比較,如果等于則查找成功,如果大于中間值則查找右邊子表,如果小于中間值則查找左邊子表。
三、包裝類
- 什么是包裝類及作用
- Integer
構(gòu)造(2個(gè)):
成員方法(3個(gè)):toString()、parseInt()、valueOf() - int和string相互轉(zhuǎn)化
int --> String:""、int.toString()、String.valueOf()
String--> int :Integer.parse() - 自動拆箱、裝箱
- Character
構(gòu)造方法(1個(gè)):
成員方法(5個(gè)):isDigit()、isUpperCase()、isLowerCase()、toLowerCase()、toUpperCase() - 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)) - Random
- System
- Date:
兩個(gè)構(gòu)造:無參-有默認(rèn)種子,當(dāng)前系統(tǒng)時(shí)間毫秒值、有參(int seed)
兩個(gè)方法:getTime()、setTime() - DateFormat
一個(gè)構(gòu)造:Pattern-y、M、d、H、m、s
兩個(gè)方法:format()-格式化、parse()-解析 - Calender
獲取對象:單例設(shè)計(jì)模式提供對象-Calender.getInstance()
一個(gè)方法:get(String key)
key:Calendar.YEAR...
四、正則表達(dá)式
- 概念:符合某一規(guī)則字符串
- 規(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} - 身份證、手機(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})+" - 正則功能:
①判斷:String.mathes()
②分割:String[] arr = String.Split("x");
③替換:replaceAll()
五、集合
- 集合由來、特點(diǎn)
- Collection:單列集合根接口
add():添加元素
addAll():添加集合
remove(Object o):刪除元素
clear():清除所有元素
removeAll(collection):刪除與指定集合相同的元素
retainAll(Collection):刪除與指定集合不同的元素
size():大小
contains():包含元素、集合
isEmpty():集合是否為空
toArray():集合轉(zhuǎn)換為數(shù)組 - Iterator:集合專門迭代器,遍歷集合
hasNext():判斷是否有下一個(gè)元素
next():獲取下一元素 - List:有序的Collection
add(index,object):插入
set(index,object):修改
remove(index):刪除指定下表的元素
get(index):獲取指定下表的元素
ListIterator:
ConcurrentModificationException: - 數(shù)據(jù)結(jié)構(gòu):儲存數(shù)據(jù)的方式
①棧:先進(jìn)后出
②隊(duì)列:先進(jìn)先出
③數(shù)組:有索引、長度不可變、查詢快、增刪慢
④鏈表:查詢慢,增刪快 - ArrayList
特點(diǎn):查詢快,增刪慢,線程不安全,效率高
特有方法(2個(gè)構(gòu)造):
ArrayList()
ArrayList(Collection)
List繼承過來方法 - Vector
特點(diǎn):底層是數(shù)組,查詢快,增刪慢,線程安全,效率低
特有方法(3):
addElement()
elementAt(int index)
elements() - LinkedList:
特點(diǎn):查詢慢,增刪快,線程不安全,效率高
特有方法(7):
addFirst()
addLast()
getLast()
getFirst()
removeFirst()
removeLast()
add(int index,Object o) - 泛型
概念:一種把類型確定工作推遲到創(chuàng)建對象或者調(diào)用方法時(shí)確定的特殊類型,簡稱參數(shù)化類型。
格式:<任意大寫字母>注意:必須是引用數(shù)據(jù)類型
分類
①泛型類:public class 類名<T> {}
②泛型方法:public <T> void 方法名(T t){}
③泛型接口:public interface 接口名<T>{} - TreeSet類概述和特點(diǎn)
六、Set
- Set概述、特點(diǎn)
無序、不重復(fù) - HashSet
特點(diǎn):無序、不重復(fù)
去重(string和自定義對象)
如果自定義對象:必須重寫方法hashCode()、equals() - LinkedHashSet類概述和特點(diǎn)
特點(diǎn):有序、元素不重復(fù) - 靜態(tài)導(dǎo)入:
一個(gè)類中定義幾個(gè)靜態(tài)方法,在測試類中調(diào)用不用類名調(diào)用,導(dǎo)入類名包,加*(通配符)
import static day06.FlyMath.*;
- 可變參數(shù):
public void get(int... arr){}
- 注意:把可變參數(shù)寫在參數(shù)列表最后。
- 工具類
Arrays(數(shù)組):sort()、fill()、toString()、binarySerach()、asList()
Collections(集合):sort()、reverse()、swrap()、max()、min()、reverseOlder()、shufle() - 增強(qiáng)For
格式:
for(數(shù)據(jù)類型 變量:集合/數(shù)組){}
好處:
①避免下標(biāo)越界
②簡化數(shù)組或者集合遍歷
七、Map
- 概述與特點(diǎn)
概念:雙列集合,存儲鍵值對
特點(diǎn):鍵唯一、值可重復(fù) - 成員方法(11):
put(key,value)
remove(key)
isEmpty()
size()
get(key)
clear()
containsKey()
containsValue()
keySet()
values()
entrySet() - Map四種遍歷
①ketSet():通過鍵獲取值
②entrySet()
③values():只能獲取值,無法通過值獲取鍵 - HashMap特點(diǎn)、使用
特點(diǎn):保證鍵的唯一性
使用:鍵和值可以是任意引用類型,鍵唯一 - LinkedHashMap
- TreeMap
- HashTable
八、異常
- 概念:程序在運(yùn)行時(shí)發(fā)生不正常事件,打斷程序執(zhí)行流程
- 分類:
①編譯時(shí)異常
②運(yùn)行異常 - 常見異常
①ArithmeticException
②NullPointerException
③ClassCastException
④ArrayIndexOutOfBoundsException:數(shù)組越界
⑤IndexOutOfBoundsException:集合越界
⑥FileNotFoundException
⑦IOException
⑧SQLException
⑨NumFormatException
⑩NoSuchMethodException - 處理
①拋給JVM,不作處理,僅僅拋出來
②try...catch...finally
③自定義異常
九、File
概念:文件和文件夾
構(gòu)造:
①File(String pathName)
②Fiel(File file)
③File(File paranet,Strinig fileName)
④File(String parent,String FileName)成員方法
①createNewFile()
②delete()
③reNmae()
④mkDir()
⑤mdDirs()
⑥isFile()
⑦isDirectory()
⑧isHidden()
⑨canRead()
⑩canWrite()
?exist()
?getName()
?getPath()
?getAbsolutePath()
?getParent()
?lenth()
?lastModified()
?listRoots()
?list()、list(fiilter)、listFiles()、listFiles(Filter)遞歸
概念
案例:階乘、斐波那契數(shù)列、遍歷文件
十、IO
- IO概念:設(shè)備之間傳遞數(shù)據(jù)
- IO基類
InputStream、outPutStream、Reader、Writer - FileOutPutStream:從內(nèi)存(程序)寫到硬盤
FileInPutStream:從硬盤讀取到內(nèi)存(程序) - 緩存字節(jié)流
BufferedOutputStream(outPutStream):
BufferedInputStream(InputStream): - 轉(zhuǎn)換流(字符流)
原因:字節(jié)流操作字符不方便
組成:字節(jié)流+編碼表
編碼表:現(xiàn)實(shí)世界字符和對應(yīng)的數(shù)值組成的一張表
六個(gè)流:
①InputStreamReader、outPutStreamWriter
②FileReader、FileWriter
③BufferedReader、BufferedWriter - 序列化流:java對象—>硬盤數(shù)據(jù)、網(wǎng)絡(luò)節(jié)點(diǎn)
反序列化流:硬盤數(shù)據(jù)、網(wǎng)絡(luò)節(jié)點(diǎn)—>java對象
Android中使用:界面之間傳遞數(shù)據(jù)、緩存 - 文件隨機(jī)訪問流:RandomAccessFile
概念: 對文件隨機(jī)讀和寫
文件指針:獲取、設(shè)置
模式:四種("rw")
十一、多線程
- 幾個(gè)概念:程序、進(jìn)程、線程
- 創(chuàng)建線程:
方式一:自定義類繼承Thread,重寫方法run,在run里執(zhí)行操作,調(diào)用start開啟;
方式二: