2019-8-15
1.開源就是開放源代碼
2.版本J2SE ? J2EE ? J2ME
3.歷程:JDK配置與安裝 ? ?直接吧bin目錄添加到path中即可 測(cè)試javac即可檢驗(yàn)安裝是否完成
4.JRE:Java runtime enviroment ??
5.JDK目錄介紹:bin:存放JAVA編譯器和解釋器都是可執(zhí)行文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? db:一個(gè)輕量級(jí)數(shù)據(jù)庫(kù)
? ? ? ? ? ? ? ? ? ? ? ? ? ?include:存放接口文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? jre:存放java運(yùn)行環(huán)境文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? lib:存放java類庫(kù)文件
6.主函數(shù)是程序的入口
7.println可以不傳參數(shù),此時(shí)表示換行 但是 print必須傳參數(shù)
8.注釋:?jiǎn)涡?多行 文檔????
2019-8-16
1.環(huán)境變量就是用于記錄可執(zhí)行文件所在路徑的特殊量
2.把變量理解為容器
3.變量在使用的時(shí)候必須要先初始化
4.在一個(gè)文件中不可聲明兩個(gè)同名變量(可以使用中文變量名但不推薦 ? )
5.byte(8位 一個(gè)字節(jié)) ?-128~127
6.歷程:類型轉(zhuǎn)換(自動(dòng)類型轉(zhuǎn)換前提是 小范圍變大范圍传货,強(qiáng)制類型轉(zhuǎn)換)
????->整型分類byte short -32768 ~ 32767 ? ? ?int ? ?正負(fù)21億 ? ? ?long ?
????->進(jìn)制轉(zhuǎn)換 ?日常生活中一般使用十進(jìn)制
? ? ->十進(jìn)制轉(zhuǎn)二進(jìn)制:拆分法 ? ? ? ? ? ?二進(jìn)制轉(zhuǎn)十進(jìn)制:加權(quán)法
? ? ? ? ? ? ? ? ? ? ? ? ? ?負(fù)數(shù)情形下:十進(jìn)制轉(zhuǎn)二進(jìn)制:絕對(duì)值轉(zhuǎn)為二進(jìn)制诫肠,按位取反加一
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 二進(jìn)制轉(zhuǎn)十進(jìn)制:按位取反加一术辐,轉(zhuǎn)為十進(jìn)制后添加符號(hào)即可
? ? ->八進(jìn)制和十六進(jìn)制 對(duì) 二進(jìn)制轉(zhuǎn)換只做熟悉
? ? ->IDE開發(fā)環(huán)境安裝
2019-8-17
1.快捷鍵: ?Alt+/ 輔助提示 ? ? ctrl+/ ?添加或取消注釋 ? ? ? ? ctrl+shift+f 格式化代碼 ? ? ?ctrl+D 刪除當(dāng)前行
? ? ? ? ? ? ? ? ? ? ctrl+S ?保存當(dāng)前代碼 ??
2.歷程:eclipse介紹 ?
????????????????->Scanner輸入的使用 ?主要是next(); ? ?nextLine();
? ? ? ? ? ? ? ? ->運(yùn)算符 ?算術(shù),字符串連接咸灿,當(dāng)+號(hào)兩邊有一個(gè)是字符時(shí)紫谷,就當(dāng)作連接符來處理, ? ?自增自減運(yùn)算符疮薇, ? ? ? ? ? ? ? ? ? ? 賦值運(yùn)算符,關(guān)系/比較運(yùn)算符我注, ?與 和 或 都是具有短路特性按咒,三目運(yùn)算符可以嵌套,移位運(yùn)算符
? ? ? ? ? ? ? ? ->反碼:正數(shù)的反碼就是本身 ? 負(fù)數(shù)的反碼是非符號(hào)位按位取反
? ? ? ? ? ? ? ? ->分支結(jié)構(gòu):if else
2019-8-18
1.歷程: for循環(huán)(次數(shù)明確)但骨,while循環(huán)励七, ? do-while循環(huán), ?for循環(huán)中定義的變量叫做塊變量奔缠,作用域只 ? 限 ? ? ? 于for循環(huán)內(nèi) ?
? ? ->正序倒序輸出1-10
? ? ->break和continue
? ? ->循環(huán)嵌套(外層循環(huán)一次掠抬,內(nèi)層循環(huán)所有次)
? ? ->當(dāng)型 while 和 直到型 do-while
? ? ?->while用在明確循環(huán)次數(shù)
2019-8-19
1.歷程:數(shù)組 ->一維數(shù)組的本質(zhì)就是一塊連續(xù)的內(nèi)存空間,可以在不同的存儲(chǔ)單元存儲(chǔ)不同的內(nèi)容校哎,數(shù)組名稱用于存儲(chǔ)內(nèi)存空間中的首地址两波。 ?聲明方式,例如:int[] arr = new int[5];
初始化的時(shí)候直接賦值: int[] arr = {1,2,3}; ?或者: int[] arr = new int[]{1,2,3,4};
數(shù)組的復(fù)制:System.arrayCopy(原數(shù)組,元素組要復(fù)制的起始位置雨女,目標(biāo)數(shù)組,起始位置阳准,復(fù)制長(zhǎng)度) ? ? ? ?Arrays.copyOf(起始數(shù)組氛堕,需要復(fù)制的長(zhǎng)度)
數(shù)組的輸出:array.toString(數(shù)組名); ? 這個(gè)是便捷輸出
->二維數(shù)組
2019-8-20
1.歷程:面向?qū)ο?:強(qiáng)調(diào)對(duì)象,然后由對(duì)象去調(diào)用功能 ? ? 面向過程:強(qiáng)調(diào)的是每一個(gè)功能的步驟
? ? ->面向?qū)ο筇卣鳎豪^承野蝇,封裝讼稚,抽象
? ? ->屬性:該事物的描述信息 ? ? ? ? ? ? 行為:該事物能做什么????
? ? ->類是JAVA的基本單位,類:是一組相關(guān)屬性和行為的集合
? ? ->對(duì)象是該類的具體表現(xiàn)形式 ? 創(chuàng)建對(duì)象就是對(duì)象的實(shí)例化 ?類名用大駝峰命名法
? ? ->成員變量 和 成員方法 都能調(diào)用绕沈。
? ? ->成員方法: ? 1.返回值類型 ? ? ? 2.形參列表 ? ? ? 3.成員方法體
2019-8-21
歷程:1.面向?qū)ο?? JAVA的JVM內(nèi)存 三個(gè)區(qū):堆區(qū) ?棧區(qū) ?方法區(qū)????
? ? ? ? ->構(gòu)造方法: ?作用:對(duì)類進(jìn)行初始化操作 ? ? ?構(gòu)造方法就是與類同名的那個(gè)方法 ? ? ?
????????????? 構(gòu)造方法沒有返回值類型 ? ? ? ?創(chuàng)建新對(duì)象時(shí)
? ? ? ? ? ? ? ? 當(dāng)自定義類中沒有定義構(gòu)造方法時(shí)锐想,編譯器會(huì)自動(dòng)添加一個(gè)構(gòu)造方法,空的乍狐,缺省的構(gòu)造方法赠摇,但是當(dāng)類中已經(jīng)有構(gòu)造方法時(shí),則編譯器不會(huì)去生成一個(gè)空的構(gòu)造方法浅蚪。???? ??
? ? ? ? ->方法的重載:名字相同但是參數(shù)列表不同就構(gòu)成了方法重載 ? ? 不同體現(xiàn):個(gè)數(shù)藕帜,類型,參數(shù)順序
2019-8-22
歷程:1.訪問控制: ?所有的成員變量都用private修飾 ?所有的成員方法都用public修飾
? ? ? ? ? ? 2.封裝 ?基本概念:在測(cè)試類中可以給成員變量賦值一些合法但是不合理
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 流程:私有化成員變量 ? ?提供共有的set和get ?在構(gòu)造方法中調(diào)用set變量 ? ?進(jìn)行合理值的判斷
? ? ? ? ? ? 3.static關(guān)鍵字:有static修飾就是類層級(jí) ?如果沒有就是對(duì)象層級(jí)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 基本概念:通常情況下成員變量都隸屬于對(duì)象層級(jí)惜傲,每個(gè)對(duì)象都擁有獨(dú)立的內(nèi)存空間來記錄自己的成員變量洽故,當(dāng)所有的對(duì)象的成員變量 ? ?都完全一樣的hi后,單獨(dú)記錄則會(huì)浪費(fèi)內(nèi)存空間盗誊,此時(shí)應(yīng)該將成員變量從對(duì)象層級(jí)提升到類層級(jí)时甚,在內(nèi)存中只保留一個(gè)從而被所有對(duì)象所共享。
? ? ? ? ? ? 4.繼承:當(dāng)多個(gè)類具有相同的特征和行為的時(shí)候哈踱,就可以將相同的部分提取出來組成一個(gè)新類 ? ? ? ? ? ? ? ? ? ? 提高復(fù)用性荒适,可維護(hù)性,可拓展性
? ? ? ? ? ? ? ? 關(guān)鍵字:extends ? ? 名詞:父類嚣鄙,子類 ? ?
注意:有有參構(gòu)造的時(shí)候最好加上無參構(gòu)造
2019-8-23
1.歷程: ? this和super關(guān)鍵字 ? ? ?概述:this關(guān)鍵字代表本類的對(duì)象 ? ? ?super關(guān)鍵字代表父類的對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用方式:使用this.方式可以訪問本類的成員變量和成員方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用super.方式可以訪問父類的成員變量和成員方法
? ? ? ? ? ? ? ? 方法的重寫:當(dāng)父類繼承的方法滿足不了需要吻贿,則需要重寫方法 ? ?
????????????????????????????????????????要求(方法名相同,參數(shù)列表相同哑子,返回值類型相同) ? ?
????????????????????????????????????????????訪問權(quán)限可以變大舅列,但是不能變小
? ? ? ? ? ? ? ? 1.final關(guān)鍵字:最終的,無法更改的
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->final類 ? 表示該類不能被繼承
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->final方法 ?表示該方法不能被重寫
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->final變量 ?必須初始值卧蜓,且不能更改?
? ? ? ? ? ? ? ? ? ? ? ? ? ?補(bǔ)充:一般final和static不單獨(dú)使用帐要,一般是這樣組合 public static final
? ? ? ? ? ? ? ? 2.創(chuàng)建對(duì)象過程: ? ?->將.class文件中的信息讀取到內(nèi)存的方法區(qū),這個(gè)過程叫做類的加載
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->從main()函數(shù)開始弥奸,使用new來創(chuàng)建對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 子類對(duì)象創(chuàng)建的過程:1.先加載父類 再加載子類 ?先是父類static 后是子類static
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.父類的構(gòu)造塊榨惠,然后父類的構(gòu)造方法體
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.執(zhí)行子類的構(gòu)造塊夺蛇,然后子類的構(gòu)造方法體
? ? ? ? ? ? ? ? 3.多態(tài): 同一種事物表現(xiàn)出的多種形態(tài)
? ? ? ? ? ? ? ? ? ? ? ? ? ? JAVA只有一種多態(tài):運(yùn)行時(shí)多態(tài)
? ? ? ? ? ? ? ? 4.抽象類:并且要用abstract修飾愿伴,他不能夠被實(shí)例化
? ? ? ? ? ? ? ? 抽象方法:? ? 不能被具體實(shí)現(xiàn)的方法,沒有方法體
? ? ? ? ? ? ? ? 抽象類:就是使用abstract關(guān)鍵字修飾的類,不能被實(shí)例化
? ? ? ? ? ? ? ? 注意事項(xiàng): - 抽象類中可以有成員變量 和成員方法 以及構(gòu)造方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-抽象類中可以有抽象方法也可以沒有
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-有抽象方法一定是抽象類
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -繼承抽象類一定要重寫抽象方法
? ? ? ? ? ? ? ? 5.接口:? ? ->就是一種比抽象類還抽象的類狡耻,該類型不能實(shí)例化對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->定義類的關(guān)鍵字是class? 而定義接口的關(guān)鍵字是interface
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->繼承類的關(guān)鍵字是 extends? ?而實(shí)現(xiàn)接口的關(guān)鍵字是implements
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->Java中可以通過接口來解決單繼承無法解決的類型無法共享的問題
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->接口不關(guān)心內(nèi)部數(shù)據(jù)? ? ,也不關(guān)心實(shí)現(xiàn)細(xì)節(jié)唐础,只關(guān)心類必須提供的方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意事項(xiàng):(1)接口可以實(shí)現(xiàn)多繼承晦款,也就是說一個(gè)接口可以同時(shí)繼承多個(gè)父接口
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)實(shí)現(xiàn)接口的類如果不能實(shí)現(xiàn)所有接口中待重寫的方法,則必須設(shè)置為抽象類
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)? 一個(gè)類只能繼承一個(gè)父類? 但是可以實(shí)現(xiàn)多個(gè)接口
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4)接口中所有成員變量必須由public static final共同修飾凤薛,也就是常量
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)接口中所有成員方法必須用public abstract共同修飾姓建,也就是抽象方法。
? ? ? ? ? ? ? ? ? ?6.類和接口之間的關(guān)系
? ? ? ? ? ? ? ? ? ? ? ? ? ? ->類與類之間采用繼承的關(guān)系? ? ? ? ?extends? ? ? ? ? ? ? ? ?單繼承
? ? ? ? ? ? ? ? ? ? ? ? ? ? ->類與接口之間是實(shí)現(xiàn)的關(guān)系? ? ? ? ?implements? ? ? ? ? ?多繼承
? ? ? ? ? ? ? ? ? ? ? ? ? ? ->接口與接口之間采用繼承的關(guān)系? extends? ? ? ? ? ? ? ? 通常認(rèn)為支持單繼承
? ? ? ? ? ? ? ? ? ? 7.抽象類和接口的區(qū)別
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->定義關(guān)鍵字? class,interface
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->抽象類的繼承是extends? ?而接口的實(shí)現(xiàn)是implements
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->繼承抽象類支持單繼承缤苫,而實(shí)現(xiàn)接口支持多實(shí)現(xiàn)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->抽象類有構(gòu)造方法速兔,但是接口沒有
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->接口中的所有成員變量都必須是常量,而抽象類可以是變量
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->接口中的所有成員方法都是抽象方法活玲,抽象類中可以是普通方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->接口中增加方法一定影響子類涣狗,而抽象類中可以不影響??
2019-8-28
1.Object類:java中常用的包? ?->java.lang包,他是核心包舒憾,虛擬機(jī)自動(dòng)導(dǎo)入
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->java.util包屑柔,他是java工具包
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->java.io包,他是輸入輸出包
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->java.net包珍剑,提供java網(wǎng)絡(luò)通信類的內(nèi)容
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->java.lang.reflect包掸宛,反射包,提供反射相關(guān)的類
2019-8-29
1.包裝類:? ? ?->自動(dòng)拆箱? ?包裝類 向 基本數(shù)據(jù)類型 自動(dòng)轉(zhuǎn)換
? ? ? ? ? ? ? ? ? ? ? ?->自動(dòng)裝箱? ? 基本數(shù)據(jù)類型 向 包裝類 自動(dòng)轉(zhuǎn)換
? ? ? ? ? ? ? ? ? ? ? ? 基本概述:在某些場(chǎng)合要求必須使用類類型的對(duì)象招拙,而JAVA中8個(gè)基本數(shù)據(jù)類型都不是對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 為了使這些變量能夠使用唧瘾,則必須借助包裝類包裝成對(duì)象來使用。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Integer: java.lang.Integer是Object間接子類别凤,用于包裝in類型數(shù)據(jù)饰序,該類是final類,不能被繼承
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 常用方法:->Integer(int? value)? ? ? ? ? 根據(jù)參數(shù)指定的整數(shù)值來構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Integer(String s)? ? ?根據(jù)參數(shù)指定的字符串來構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int intValue()? ? ? ? ? ? 用于獲取調(diào)用對(duì)象中含有的int類型數(shù)據(jù)并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 用于實(shí)現(xiàn)講Integer類型拆包為int
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? static int parseInt(String s)? ? ? ? ?用于將字符串類型的數(shù)據(jù)轉(zhuǎn)換為int類型的整數(shù)(掌握)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 自動(dòng)裝箱池:為了提高性能在Integer類的內(nèi)部提供了自動(dòng)裝箱池规哪,也就是把 -128 ~ 127之間的數(shù)提前裝箱完畢求豫,若程序需要其中的的數(shù)據(jù)則直接獲取,無需創(chuàng)建新對(duì)象诉稍。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String(非常重要):java.lang.String用于描述字符串蝠嘉,可以描述Java所有字符串字面值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 該類描述的字符串是個(gè)常量,一旦創(chuàng)建完畢則無法更改杯巨。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 常量池:出于性能的考慮蚤告,JVM會(huì)將字符串字面量對(duì)象緩存在常量池中,對(duì)于重復(fù)出現(xiàn)的字符串直接量服爷,JVM會(huì)首先在緩存池中查找杜恰,如果存在即返回該對(duì)象获诈。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->常用的構(gòu)造方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String()? ? ? ? ? ? ? ? ? ? 使用無參構(gòu)造來創(chuàng)建對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String(byte[] bytes)? 根據(jù)指定的數(shù)組來創(chuàng)建對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String(byte[] bytes , int offset , int length)使用參數(shù)數(shù)組中的一部分來構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String(String original)? 根據(jù)參數(shù)指定的內(nèi)容來構(gòu)造對(duì)象。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String(StringBuffer buffer)? ?根據(jù)參數(shù)指定的引用來構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String(StringBuilder builder)?根據(jù)參數(shù)指定的引用來構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->常用的成員方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? char charAt(int index)? ? -用于返回參數(shù)指定下標(biāo)位置的字符
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int length()? ? ? ? ? ? ? ? ? ? ? ?-用于返回當(dāng)前字符串的長(zhǎng)度
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int compareTo(String anotherString)? -用于比較調(diào)用對(duì)象和參數(shù)對(duì)象的字符串大小關(guān)系并返回心褐。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例如:? "abc" < "bcd"? ? ? ? ? ? "abc" < "abd"? ? ? ? ? ? ? ?"abc" < "abcd"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?boolean equals(Object anObject)? ?-用于比較字符串內(nèi)容是否相等并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? boolean equalsIgnoreCase(String anotherString)? ?-用于標(biāo)膠字符串是否相等舔涎,不考慮大小寫
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? boolean contains(Char Sequence s)? ? -用于判斷調(diào)用對(duì)象是否包含參數(shù)指定內(nèi)容
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -其中參數(shù)是接口類型,因此實(shí)參傳遞有兩種方式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a.創(chuàng)建實(shí)現(xiàn)類的對(duì)象作為實(shí)參傳遞逗爹,而String類就是該接口的實(shí)現(xiàn)類
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b.使用匿名內(nèi)部類創(chuàng)建接口類型的對(duì)象作為實(shí)參傳遞
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?boolean endWith(String suffix)? ? -用于判斷當(dāng)前字符串是否以參數(shù)指定的內(nèi)容為結(jié)尾
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? boolean startWith(String prefix)? ? -用于判斷當(dāng)前字符串是否以參數(shù)指定的內(nèi)容為開頭
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String toLowerCase()? ? ? ? ? ? ? ? -用于將當(dāng)前字符串所有的字符轉(zhuǎn)換為小寫并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String toUpperCase??????????????????-用于將當(dāng)前字符串所有的字符轉(zhuǎn)換為大寫并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String trim()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -用于去除當(dāng)前字符串中兩端的空白字符并返回终抽。
? ? ? ? ? ? ? ? ? ? ? ? ? ? byte[] getBytes()? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-用于將當(dāng)前字符串內(nèi)容轉(zhuǎn)換為char數(shù)組并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? char[]? toChaeArray()? ? ? ? ? ? ? ? ?-用于將當(dāng)前字符串轉(zhuǎn)換為char數(shù)組并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? int IndexOf( int ch )? ? ? ? ? ? ? ? ? ? ? ? ? ?-用于返回當(dāng)前字符串中參數(shù)ch指定的字符第一次出現(xiàn)的下標(biāo)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int indexOf(int ch , int fromIndex)? ? -用于從fromIndex位置開始查詢ch指定的字符,若查找失敗則返回-1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int indexOf(String str)? ? ? ? ? ? ? ? ? ? ?-用于查找參數(shù)str指定的字符串并返回下標(biāo)
? ? ? ? ? ? ? ? ? ? ? ? ? int idexOf(String str , int fromIndex)? ? -用于從fromIndex位置開始查找
? ???????????????????????????int lastIndexOf( int ch )? ? ? ? ? ? ? ? ? ? ? ? ? ?-用于返回當(dāng)前字符串中參數(shù)ch指定的字符最后一次出現(xiàn)的下標(biāo)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int lastIndexOf(int ch , int fromIndex)? ? -用于從fromIndex位置開始查詢ch指定的字符桶至,反向搜索一次若查找失敗則返回-1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int lastindexOf(String str)? ? ? ? ? ? ? ? ? ? ?-用于返回str指定的字符串最后一次出現(xiàn)的下標(biāo)
? ? ? ? ? ? ? ? ? ? ? ? ? int lastindexOf(String str , int fromIndex)? ? -用于從fromIndex位置開始反響搜索一次
? ? ? ? ? ? ? ? ? ? ? ? ? ? String substring(int beginIndex )? ? ? ? ? ? ? ? ? ? ?-用于獲取當(dāng)前字符串中從beginIndex位置開始的子字符串并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? String substring(int beginIndex,int endIndex)? ? ? ? -用于獲取當(dāng)前字符串從beginIndex位置開始到endIndex結(jié)尾的子字符串并返回
3. StringBuffer和? StringBuilder類
? ? ? ? ? ? ? ? 基本概述:由于String類描述字符序列是不可改變的,因此描述多個(gè)類似的字符串需要單獨(dú)保存,此時(shí)內(nèi)存空間消耗比較大匾旭,為了內(nèi)存空間直接對(duì)字符序列本身進(jìn)行改變镣屹,則使用StringBuffer 和 StringBuilder
? ? ? ? ? ? ? ?StringBuffer 線程安全類 效率低
? ? ? ? ? ? ? ? StringBuilder? 非線程安全類 效率高? (推薦使用)
? ? ? ? ? ? ? ? StringBuilder(String str)? ?根據(jù)字符串來構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?- 初始容量為: 16 + 字符串參數(shù)的長(zhǎng)度
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?- 該類沒有重寫equals() 和 hashcod()方法,但是重寫了 toString() ????方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? int capacity()? ? ? -? ?用于獲取當(dāng)前對(duì)象的容量并返回
? ? ? ? ? ? ? ? ? ? ? ? ? ? int length? ()? ? ? ? ?-用于返回當(dāng)前對(duì)象的字符個(gè)數(shù)
? ? ? ? ? ? ? ? ? ? StringBuilder? insert (int offset,String str)? ?- 用于將str插入到當(dāng)前字符串中offset位置并返回价涝。
? ? ? ? ? ? ? ? ? ? ??StringBuilder? append(String str)? ? ? ? ?-用于將str字符串追加到當(dāng)前字符串的末尾位置
? ???????????????????StringBuilder? ?delete(int start , int end)? ? ? ?-移除start 到 end的字符串內(nèi)容
? ? ? ? ? ? ? ? ? ???StringBuilder? ?replace? (int start , int end , String str)? ? -替換 start 到 end的內(nèi)容
? ? ? ? ? ? ? ? ? ? ??StringBuilder? reverse? ()? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-用于反轉(zhuǎn)當(dāng)前字符串字符內(nèi)容
注意:靜態(tài)方法通過 類名.方法名? 的方式調(diào)用
? ? ? ? ? ? 注意? ? ? 類層級(jí)? 和? 對(duì)象層級(jí)? 方法調(diào)用的不同之處? ? ? ? ??
2019-9-1
1.日期相關(guān)的類
? ? ->Date? ? ? ? ? ? ? ? ?基本概念:java.util.Date類用于描述特定的瞬間女蜈,可以精確到毫秒,通常用于描述年月日時(shí)分秒
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 常用方法:? ? Date()? -? ? ?無參構(gòu)造方式色瘩,默認(rèn)使用當(dāng)前系統(tǒng)時(shí)間來初始化對(duì)象伪窖。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Date(long date ) -? ? ?根據(jù)參數(shù)指定的毫秒來構(gòu)造對(duì)象,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -參數(shù)為距離1970年1月1日 0時(shí)0分0秒居兆, 1 秒 = 1000? 毫秒? 覆山, 1 毫秒 = 1000 微秒
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -該方法與File類中的方法搭配使用,很方便
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? long getTime()? -? ? 用于獲取 調(diào)用對(duì)象距離1970年1月1日0時(shí)0分0秒的毫秒數(shù)泥栖。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? void setTime(long time)? ? -? ? 根據(jù)參數(shù)指定的毫秒數(shù)來調(diào)整對(duì)象描述時(shí)間
->SimpleDateFormat類??
????????????????????????????????基本概念:java.text.SimpleDateFormate類用于實(shí)現(xiàn)? Date類 和 String類之間的轉(zhuǎn)換簇宽,調(diào)用時(shí)間格式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 常用方法:SimpleDateFormat(String Pattern)? ?-根據(jù)參數(shù)指定的格式來構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -參數(shù)字符串中格式有:y-年 m-月 d-日? ?H-時(shí) M-分 S-秒
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String format(Date date)? -? 用于將Date類型轉(zhuǎn)換為String類型 并返回。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Date parse(String source)? -? ?用于將String類型轉(zhuǎn)換為Date類型并返回
2019-9-2
集合:用于存儲(chǔ)一種或者多種引用類型吧享,并且長(zhǎng)度可變魏割。
集合的外延有: List集合,Set集合钢颂,Queue集合
List集合:? ? ? ? ? ? ? ? -? ?適用于有序存儲(chǔ)可重復(fù)元素的集合
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -? ? list接口繼承了Collection接口钞它,聲明有序存儲(chǔ)對(duì)象(可重復(fù))功能的公共接口。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-? ? List集合的實(shí)現(xiàn)類有:ArrayList, Vector ,LinkedList
? ? ? ? ? ? ? ? ? ? J獗蕖T舛狻!集合中只能存儲(chǔ)引用數(shù)據(jù)類? 不能存儲(chǔ)? 基本數(shù)據(jù)類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? List 集合常用方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? add(E? ?e)? ?-? ?像列表末尾追加元素
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?add(int index , E e)? ? -? 在指定位置上添加一個(gè)對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? addAll(Collection<? extends E>? c)? ?-? ?將集合元素添加到指定集合末尾
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?get(int index)? -? ? 返回指定位置對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? remove (int index)? ? -? ?刪除指定位置對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? set(int index , E element)? -? ?用指定元素替換列表中指定位置的元素操灿。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? indexOf(Object o )? ?-? ?返回第一個(gè)匹配對(duì)象位置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? lastIndexOf(Object o )? ?-? ?返回最后一個(gè)匹配對(duì)象的索引
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? size()? -? ?返回此列表中的元素?cái)?shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ArrayList類
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - 基于數(shù)組實(shí)現(xiàn)的耻卡,長(zhǎng)度可變的,分配連續(xù)內(nèi)容空間的List集合
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?迭代器遍歷
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 迭代器(Iterator)? -? ?迭代器是一種使用迭代法遍歷集合的對(duì)象
????????????????????????????????????????????????????????? -? ? Iterable? java集合框架的頂級(jí)集合
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Iterator接口中常用的方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? hasNext()? ?-? ?判斷是否還有其他元素
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? next()? ? ? ? ? -? ? 獲取下一個(gè)元素
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? remove? ? ? ? -? ?刪除最后一次調(diào)用next方法返回的元素
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 迭代器遍歷步驟
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.調(diào)用Iterator()? 得到一個(gè)指向集合序列第一個(gè)元素的迭代器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.用循環(huán)調(diào)用hasNext() 方法牲尺,如果有元素卵酪,返回true
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.在循環(huán)中幌蚊,使用next()方法獲取集合的下一個(gè)元素。
泛型:? ? ? ? ? -? ? ? ?是一種把類型明確明確的工作推遲到創(chuàng)建對(duì)象活調(diào)用方法的時(shí)候采取明確的特殊類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?又稱之為參數(shù)化類型溃卡,把類型當(dāng)做參數(shù)一樣傳遞
?????????????????語(yǔ)法格式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <數(shù)據(jù)類型>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?此處的數(shù)據(jù)類型只能是引用數(shù)據(jù)類型/類類型
? ? ? ? ? ? ? ? ? ?泛型優(yōu)點(diǎn):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.將運(yùn)行期間的問題提到了編譯期間
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.避免了強(qiáng)制類型轉(zhuǎn)換
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.優(yōu)化了程序設(shè)計(jì)溢豆,解決了黃色警告線
? ? ? ? ? ? ? ? ? ? 泛型分類:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 泛型類:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -? ?定義:把泛型定義在類上
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-? ? 格式:public class 類名<泛型類型1。瘸羡。漩仙。>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -? ? ?注意:泛型類型必須是引用類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 泛型方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -? 把泛型定義在方法上
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -? 格式:public? <泛型類型>返回值類型 方法名(泛型類型)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 泛型接口
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -? 把泛型定義在接口上
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -? ?格式:public? ? ?interface? ? 接口名<泛型類型>
? ? ? ? ? ? ? ? ? ? ? ? 符號(hào):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? T(type)? ? ?V(value)? ? ?E(element)? ? ? K(key)
2019-9-3
????1.collection
????2.list集合
????3.set集合
????4.map集合
????????復(fù)習(xí)? ? 當(dāng)需要在程序中記錄單個(gè)數(shù)據(jù),則聲明一個(gè)變量記錄
? ? ? ????????????? 當(dāng)需要在程序中記錄多個(gè)類型相同的數(shù)據(jù)犹赖,就使用數(shù)組
? ? ? ????????????? 當(dāng)需要在程序中記錄多個(gè)不同類型队他,則可以使用構(gòu)造對(duì)象
? ? ? ? ? ? ? ? ? ? 當(dāng)需要在程序中記錄多個(gè)類型不同的對(duì)象的時(shí)候,我們可以使用集合
數(shù)組與集合的比較
????????1.數(shù)組的特點(diǎn)
????????????????a.本質(zhì)上時(shí)一段連續(xù)的內(nèi)存空間峻村,用于記錄多個(gè)類型相同的數(shù)據(jù)
????????????????b.數(shù)據(jù)一旦聲明完畢麸折,則內(nèi)存空間固定不變
????????????????c.執(zhí)行插入或者刪除操作的時(shí)候不方便,可能會(huì)移動(dòng)大量的元素粘昨,從而導(dǎo)致效率太低
????????????????d.數(shù)組支持下標(biāo)訪問
????????????????e.數(shù)組元素可以是基本數(shù)據(jù)類型 也可以是 引用數(shù)據(jù)類型
????2.集合的特點(diǎn)
????????????????a.內(nèi)存空間可以不連續(xù)垢啼,數(shù)據(jù)類型可以不相同
????????????????b.集合的內(nèi)存空間可以進(jìn)行動(dòng)態(tài)調(diào)整
????????????????c.集合的插入刪除操作可以不移動(dòng)大量元素
????????????????d.部分支持下標(biāo)訪問,部分不支持
????????????????e.集合中必須是引用數(shù)據(jù)類型
什么是集合類:
????????????是在計(jì)算機(jī)中存儲(chǔ)一種或多種引用類型张肾,并且長(zhǎng)度可變的容器
????????????容器就是用來存儲(chǔ)和組織其他對(duì)象的對(duì)象
Collection集合:
????????JAVA語(yǔ)言中集合框架的頂層是: Collection集合? ? Map集合
????????其中Collection集合操作的元素基本單位是:?jiǎn)蝹€(gè)元素
????????????其中Map集合操作元素的基本單位是:?jiǎn)螌?duì)元素
集合常用方法
????????????????1.add(E e) 將指定對(duì)象存儲(chǔ)到容器中
????????????????2.addAll( )? 降指定集合中的元素添加到調(diào)用該方法的集合中
????????????????3. size()? 返回集合中的元素?cái)?shù)
????????????????4.contains( Object O)判斷集合中是否包含參數(shù)指定的單個(gè)元素
????????????????5.containsAll(Collection<?> c) 判斷集合中是否包含指定元素的整體
????????????????6.remove(int index)? 移除列表指定位置的元素
????????????????7.removeAll(conllection<?> c)從列表中移除指定collection 中包含的其他所有元素
????????????????8.set(int index,E element)? 將集合中指定位置元素進(jìn)行替換
List集合
????????????????他本來是繼承自Collection接口芭析,有序元素可重復(fù)的集合
List集合的實(shí)現(xiàn)類
????????????????????????ArrayList:數(shù)組查找比較快,增加刪除慢吞瞪,由于是數(shù)組實(shí)現(xiàn)馁启,
????????????????????????????????????????????再增加刪除的時(shí)候可能會(huì)牽扯到數(shù)據(jù)的擴(kuò)容,以及拷貝元素芍秆。
????????????????????????????????????????????數(shù)組可以直接按照索引查找进统,所以查找速度快。
????????????????????????linkedlist:鏈表實(shí)現(xiàn)浪听,增加刪除快螟碎,但是查找慢,由于是鏈表實(shí)現(xiàn)迹栓,
????????????????????????????????????????????????增加的時(shí)候只要讓前一個(gè)元素即可掉分,
????????????????????????????????????????????但是查詢的時(shí)候我們需要一個(gè)一個(gè)遍歷
????????????????????????????Vector:是基于數(shù)組實(shí)現(xiàn)的,線程同步的的遺留集合類克伊,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 和ArrayList原理相同酥郭,但是線程安全,效率低愿吹。
????????????????????????????Stack:后進(jìn)先出
隊(duì)列 Queue
????add 和 remove 在失敗的時(shí)候會(huì)拋出異常(不推薦使用)
????????????????????????1.offer()? 添加元素
????????????????????????2.poll()? 返回第一個(gè)元素不从,并在隊(duì)列中刪除
????????????????????????3.element()? ? 返回第一個(gè)元素
????????????????????????4.peek()? ? 返回第一個(gè)元素
2019-9-4
Set集合
????????????????????????set集合是用于無序存取不可重復(fù)的元素集合。
????????????????????????set集合的實(shí)現(xiàn):
????????????????????????????????????????????????????????1.HashSet
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.LinkedHashSet
????????????????????????????????????????????????????????3.TreeSet
????????????????????(1)HashSet
????????????????????????????????????HashSet是基于哈希表的set集合
????????????????????????????????????1.需要使用hashCode算法計(jì)算元素的hash值犁跪。
????????????????????????????????????2.基于哈希表做實(shí)現(xiàn)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.實(shí)現(xiàn)了Set接口
????????????????????HashSet集合存儲(chǔ)步驟
????????????????????????????????1.使用哈希算法計(jì)算元素對(duì)應(yīng)的哈希值椿息,使用此哈希值作為地址存儲(chǔ)
????????????????????????????????2.判斷此哈希值對(duì)應(yīng)的位置上是否已經(jīng)存有元素
????????????????????????????????3.若沒有就將元素存儲(chǔ)在該位置上
????????????????????????????????4.若有則使用equals方法判斷兩個(gè)對(duì)象是否相等歹袁,相等就不存儲(chǔ),不相等則與上一個(gè)元素存在一起
????????????????????????????????????笑死了哈啊哈哈寝优,男生女生不一樣条舔,女生和女生就更是不一樣的離譜了,就像個(gè)萬花筒乏矾,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?什么性格的都有孟抗,哈哈哈,有意思钻心,也是凄硼,這也算是造物主的機(jī)智之處,不然千篇一律捷沸,
????????????????????????????????????生活該有多么的枯燥無味摊沉,哈哈哈,永遠(yuǎn)朝向生活的向陽(yáng)面亿胸,原我們永遠(yuǎn)年輕,愿我們永遠(yuǎn)熱淚盈眶预皇。
? ? ? ? ? ? ? ? ? ? ? ? ? (2)LinkedHashSet
????????????????????????????????????????是基于雙向鏈表和哈希表侈玄,繼承自HashSet和Set集合
????????????????????????????????????????特點(diǎn):? 元素? 有序? 而且? 不重復(fù)
? ? ? ? ? ? ? ? ? ? ? ? ? (3)TreeSet
????????????????????????????????????????????是基于紅黑樹,實(shí)現(xiàn)了set集合吟温,具有排序功能的set集合
????????????????????????????????????????????樹的相關(guān)概念: 根節(jié)點(diǎn)序仙,枝節(jié)點(diǎn),葉子節(jié)點(diǎn)
排序接口
????????????????????????Comparble
????????????????????????????????????使實(shí)現(xiàn)類自身具備某種比較規(guī)則以便對(duì)其對(duì)象進(jìn)行自然排序的接口
????????????????????????自然排序:是要求自定義類實(shí)現(xiàn)Comparable接口并重寫其compareTo(T o) 方法鲁豪,在此方法中依據(jù)xx屬性進(jìn)行排序的算法
????????????????????????Comparator比較器
????????????????????????????????????在外部自定義比較規(guī)則以便容器對(duì)其存儲(chǔ)數(shù)據(jù)進(jìn)行定制排序的對(duì)象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?定制排序:是要求自定義類實(shí)現(xiàn)Comparator接口并重寫其compara(T o1, T o2)方法潘悼,
????????????????????????????????????????????????????????在此方法中依據(jù)XX屬性進(jìn)行排序的算法,也稱為比較器排序爬橡。
????????????????????????Comparable接口
????????????????????????????????????實(shí)現(xiàn)該接口的類具有排序功能
????????????????????????????????????需要重寫ComparaTo方法治唤,使用當(dāng)前對(duì)象和參數(shù)對(duì)象進(jìn)行比較
Comparator接口
????????????????????????????????????不會(huì)對(duì)集合z中的元素進(jìn)行修飾
????????????????????????????????????需要自定義比較器類s實(shí)現(xiàn)該接口重寫compara方法,比較兩個(gè)參數(shù)對(duì)象
????????????????????????????????????需要將比較器對(duì)象以參數(shù)形式傳入集合的構(gòu)造器中
集合的選擇
????????????????????????List
????????????????????????????????????????如果需要保留存儲(chǔ)順序糙申,保留重復(fù)元素宾添,推薦使用List集合
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ArrayList:查詢多 用它
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LinkedList:存取多 用它
????????????????????????????????????????????????????????Vector:若需要線程安全 用它
????????????????????????Set
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果不需要保留存儲(chǔ)順序并需要去除重復(fù)的元素,推薦用Set
????????????????????????????????????????????????????????TreeSet:元素需要排序柜裸,用它
????????????????????????????????????????????????????????HashSet:無需排序缕陕,用它? 他的效率比treeSet高
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LinkedHashSet:若需要保留存儲(chǔ)順序,有需要去除重復(fù)元素疙挺,就用它扛邑。
2019-9-5
Maps集合
? ? ? ? ? ? ? ? 鍵 ---------------? 映射 ----------------值
? ? ? ? ? ? ? ? Maps集合存儲(chǔ)元素的特點(diǎn)是以鍵值對(duì)形式存儲(chǔ)元素,容器框架
? ? ? ? ? ? ? ? 實(shí)現(xiàn)類: HashMap ---? LinkedMap --- TreeMap? -- HashTable
? ? ? ? ? ? ? ? (1) HashMap
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 基于哈希表實(shí)現(xiàn)的铐然,線程不安全的Map容器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?特點(diǎn):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.基于哈希表實(shí)現(xiàn)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.key不允許重復(fù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.底層是 數(shù)組 + 鏈表 結(jié)構(gòu)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.允許 null 鍵和 null 值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5.線程不安全
? ? ? ? ? ? ? ? ? ? HashMap的常用方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->V put (k key,v value) 添加數(shù)據(jù)蔬崩,如果先前包含該鍵的映射恶座,則替換舊值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->V get (Object key)返回指定鍵所映射的值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->Set<Map.Entry<k,v>> entrySet() 返回此地址中包含的映射的Set集合
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->Set<k> keySet() 返回集合中包含的鍵的Set集合
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->v remove (Object key) 從該集合中刪除指定鍵的映射
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->Collection<V> values() 返回集合中包含的值的Collection集合
? ? ? ? ? ? ? ? ? ? (2) LinkedHashMap
? ??????????????????????????????????????繼承自HashMap,基于雙向鏈表舱殿,存取有序的Map容器奥裸。
? ? ? ? ? ? ? ? ? ? ?(3) HashTable
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 基于散列表實(shí)現(xiàn),線程安全的Map容器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 特點(diǎn):不允許null鍵和 null值
????????????????????????????????????????????????????????????線程安全
? ????????????????????Hashtable 和 HashMap 的區(qū)別
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.?繼承的父類不同
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.線程安全性不同
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.是否允許null鍵
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.遍歷內(nèi)容實(shí)現(xiàn)不同
? ? ? ? ? ? ? ? ? ? ? ? (4)TreeMap
? ??????????????????????????????????????????基于紅黑樹實(shí)現(xiàn)沪袭,具有排序功能的Map容器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 特點(diǎn):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.底層是紅黑樹
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.不允許Null值和null鍵
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.針對(duì)鍵進(jìn)行排序的
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.線程不安全的類
注意:類名不能和需要導(dǎo)入的包同名
2019-9-6
集合工具類
? ??????????????Collections 用于操作集合的工具類
? ??????????????????????????????????注意:使用Collection工具類之前湾宙,要導(dǎo)入java.util包
? ? ? ? ? ? ? ? ?Collections類的常用方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->void sort() 對(duì)集合中存儲(chǔ)的元素進(jìn)行排序
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->shuffle() 對(duì)集合中存儲(chǔ)的元素隨機(jī)排列
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->reverse() 將集合中存儲(chǔ)的元素位置進(jìn)行反轉(zhuǎn)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->max() 獲取集合中最大元素
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->min() 獲取集合中最小元素
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->indexOfSubList() 獲取指定子列表在整個(gè)列表中第一次出現(xiàn)的位置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->lastIndexOfSubList() 獲取指定子列表在整個(gè)列表中最后一次出現(xiàn)的位置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->binarySearch()二分查找法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 注意:所有的方法都是使用static 修飾的,所以我們直接使用Collections.xxx()的方式進(jìn)行調(diào)用
2019-9-16
線程:
? ??????????????????1.原子性操作意思好像是 要么一起成功 要么一起失敗冈绊,有點(diǎn)同生共死的味道
? ??????????????????2. ->同步方法鎖對(duì)象是 鎖對(duì)象就是this
? ? ? ? ? ? ? ? ? ? ? ? ->靜態(tài)方法鎖對(duì)象 ? ? 鎖對(duì)象是類類型
? ??????????????????3.同步鎖 synchronized? 和 Lock鎖
? ??????????????????4.死鎖問題
????????????????????????????????->是指兩個(gè)活兩個(gè)以上線程在執(zhí)行的過程中侠鳄,因爭(zhēng)奪資源產(chǎn)生的相互等待的情況
? ? ? ? ? ? ? ? ? ? 5.線程組:ThreadGroup用于方便用戶對(duì)多個(gè)線程進(jìn)行管理操作
? ? ? ? ? ? ? ? ? ? 6.線程池:Executors? 提高系統(tǒng)性能,線程用完仍然循環(huán)使用
? ? ? ? ? ? ? ? ? ? 7.定時(shí)器 Timer 和? TimerTask
? ? ? ? ? ? ? ? ? ? 8.為什么wait , notify , notifyAll方法都定義在Object類中死宣?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ->這些方法存在同步中
? ? ? ? ? ? ? ? ? ? ? ? ? ? ->使用這些方法必須要標(biāo)識(shí)所屬的同步鎖
? ? ? ? ? ? ? ? ? ? ? ? ? ? ->鎖可以是任意對(duì)象伟恶,所以任意對(duì)象調(diào)用方法一定在Object類中
JAVA網(wǎng)絡(luò)編程:
? ? ? ? ? ? ? ? ? ? ? ? 1.網(wǎng)絡(luò)通信軟件:QQ , 微信 ,MSN....?
? ? ? ? ? ? ? ? ? ? ? ? 2.網(wǎng)絡(luò)模型: OSI(開放系統(tǒng)互聯(lián))(七層協(xié)議)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->應(yīng)用層? ?表示層? ? 會(huì)話層? ? 傳輸層? ? ?網(wǎng)絡(luò)層? ? ?數(shù)據(jù)鏈路層? ? ?物理層
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TCP/IP參考模型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->應(yīng)用層? ? 傳輸層? ? ? 網(wǎng)際層? ? 主機(jī)至網(wǎng)絡(luò)層
? ? ? ? ? ? ? ? ? ? ? ? 3.常見協(xié)議:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http? -? ?超文本傳輸協(xié)議,瀏覽網(wǎng)站的時(shí)候使用該協(xié)議
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ftp? ? -? ?文件傳輸協(xié)議毅该,上傳下載文件時(shí)候使用該協(xié)議
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tcp? ? -? ?傳輸控制協(xié)議博秫,是一種面向連接的協(xié)議,類似于打電話眶掌,網(wǎng)絡(luò)通信需要使用該協(xié)議
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? udp? ?-? ? 用戶數(shù)據(jù)報(bào)協(xié)議挡育,是一種非面向連接的協(xié)議,類似于寫信朴爬,網(wǎng)絡(luò)通信使用該協(xié)議
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ip? ? ?-? ? 互聯(lián)網(wǎng)協(xié)議即寒,是上述協(xié)議的底層協(xié)議
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 協(xié)議:就是一種約定/規(guī)則,是通信雙方需要遵循的一種機(jī)制
? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.網(wǎng)絡(luò)通信三要素
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->IP地址:InetAddress? ? ? ? ? ? ? ? 網(wǎng)絡(luò)中設(shè)備的標(biāo)識(shí)??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->端口號(hào):用于標(biāo)識(shí)進(jìn)程的邏輯地址召噩,可以定位進(jìn)程
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->傳輸協(xié)議:通訊的規(guī)則
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 注意:網(wǎng)絡(luò)編程中母赵,我們需要提供:IP地址 和 端口號(hào)