一拗窃、String、Scanner、API
1. API會(huì)查詢
2. Scanner:
- hashNext(...) 瓮增、HashNextLine
- next(...) 、nextLine
3. String
- 構(gòu)造方法:5個(gè)
- 成員方法:判斷哩俭、獲取绷跑、轉(zhuǎn)換、其他
二凡资、 StringBuffer
1. StringBuffer概念砸捏、特點(diǎn)
- 線程安全字符序列。
- 為什么隙赁?string每次修改都要新建一個(gè)對(duì)象垦藏,浪費(fèi)控件、耗費(fèi)時(shí)間伞访。
- 特點(diǎn):修改不會(huì)新建對(duì)象
- 與String的區(qū)別:①長(zhǎng)度可變②如果使用前者做字符串的拼接掂骏,不會(huì)浪費(fèi)太多的資源
2. StringBuffer構(gòu)造方法:3個(gè)構(gòu)造(無(wú)參、帶容量參數(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)
- 截让昂凇:
subString(int startIndex)包含下標(biāo)index對(duì)應(yīng)的字符
subString(int start,int end):左閉右開(kāi) - 反轉(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.高級(jí)數(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() - 自動(dòng)拆箱、裝箱
- 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)造:無(wú)參-有默認(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
獲取對(duì)象:?jiǎn)卫O(shè)計(jì)模式提供對(duì)象-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ī)號(hào)裙顽、郵箱付燥、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()
五键科、集合
- 集合由來(lái)、特點(diǎn)
- Collection:?jiǎn)瘟屑细涌?br>
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):儲(chǔ)存數(shù)據(jù)的方式
①棧:先進(jìn)后出
②隊(duì)列:先進(jìn)先出
③數(shù)組:有索引、長(zhǎng)度不可變勋锤、查詢快饭玲、增刪慢
④鏈表:查詢慢,增刪快 - ArrayList
特點(diǎn):查詢快叁执,增刪慢茄厘,線程不安全矮冬,效率高
特有方法(2個(gè)構(gòu)造):
ArrayList()
ArrayList(Collection)
List繼承過(guò)來(lái)方法 - 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)建對(duì)象或者調(diào)用方法時(shí)確定的特殊類型葛假,簡(jiǎn)稱參數(shù)化類型。
格式:<任意大寫(xiě)字母>注意:必須是引用數(shù)據(jù)類型
分類
①泛型類:public class 類名<T> {}
②泛型方法:public <T> void 方法名(T t){}
③泛型接口:public interface 接口名<T>{} - TreeSet類概述和特點(diǎn)
六滋恬、Set
- Set概述聊训、特點(diǎn)
無(wú)序、不重復(fù) - HashSet
特點(diǎn):無(wú)序恢氯、不重復(fù)
去重(string和自定義對(duì)象)
如果自定義對(duì)象:必須重寫(xiě)方法hashCode()带斑、equals() - LinkedHashSet類概述和特點(diǎn)
特點(diǎn):有序、元素不重復(fù) - 靜態(tài)導(dǎo)入:
一個(gè)類中定義幾個(gè)靜態(tài)方法勋拟,在測(cè)試類中調(diào)用不用類名調(diào)用勋磕,導(dǎo)入類名包,加*(通配符)
import static day06.FlyMath.*;
- 可變參數(shù):
public void get(int... arr){}
- 注意:把可變參數(shù)寫(xiě)在參數(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)越界
②簡(jiǎn)化數(shù)組或者集合遍歷
七、Map
- 概述與特點(diǎn)
概念:雙列集合烟逊,存儲(chǔ)鍵值對(duì)
特點(diǎn):鍵唯一渣窜、值可重復(fù) - 成員方法(11):
put(key,value)
remove(key)
isEmpty()
size()
get(key)
clear()
containsKey()
containsValue()
keySet()
values()
entrySet() - Map四種遍歷
①ketSet():通過(guò)鍵獲取值
②entrySet()
③values():只能獲取值,無(wú)法通過(guò)值獲取鍵 - HashMap特點(diǎn)宪躯、使用
特點(diǎn):保證鍵的唯一性
使用:鍵和值可以是任意引用類型图毕,鍵唯一 - LinkedHashMap
- TreeMap
- HashTable
八、異常
- 概念:程序在運(yùn)行時(shí)發(fā)生不正常事件眷唉,打斷程序執(zhí)行流程
- 分類:
①編譯時(shí)異常
②運(yùn)行異常 - 常見(jiàn)異常
①ArithmeticException
②NullPointerException
③ClassCastException
④ArrayIndexOutOfBoundsException:數(shù)組越界
⑤IndexOutOfBoundsException:集合越界
⑥FileNotFoundException
⑦IOException
⑧SQLException
⑨NumFormatException
⑩NoSuchMethodException - 處理
①拋給JVM予颤,不作處理囤官,僅僅拋出來(lái)
②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)存(程序)寫(xiě)到硬盤(pán)
FileInPutStream:從硬盤(pán)讀取到內(nèi)存(程序) - 緩存字節(jié)流
BufferedOutputStream(outPutStream):
BufferedInputStream(InputStream): - 轉(zhuǎn)換流(字符流)
原因:字節(jié)流操作字符不方便
組成:字節(jié)流+編碼表
編碼表:現(xiàn)實(shí)世界字符和對(duì)應(yīng)的數(shù)值組成的一張表
六個(gè)流:
①InputStreamReader贝淤、outPutStreamWriter
②FileReader柒竞、FileWriter
③BufferedReader、BufferedWriter - 序列化流:java對(duì)象—>硬盤(pán)數(shù)據(jù)播聪、網(wǎng)絡(luò)節(jié)點(diǎn)
反序列化流:硬盤(pán)數(shù)據(jù)朽基、網(wǎng)絡(luò)節(jié)點(diǎn)—>java對(duì)象
Android中使用:界面之間傳遞數(shù)據(jù)、緩存 - 文件隨機(jī)訪問(wèn)流:RandomAccessFile
概念: 對(duì)文件隨機(jī)讀和寫(xiě)
文件指針:獲取离陶、設(shè)置
模式:四種("rw")
十一稼虎、多線程
- 幾個(gè)概念:程序、進(jìn)程招刨、線程
- 創(chuàng)建線程:
方式一:自定義類繼承Thread霎俩,重寫(xiě)方法run,在run里執(zhí)行操作沉眶,調(diào)用start開(kāi)啟茸苇;
方式二: