沈益達Java基礎總結

? ? ? java是一門強類型語言(變量的使用要嚴格符合定義文虏,所有變量都必須先定義后使用),java的內存結構是棧內存殖演、堆內存氧秘、方法區(qū)。棧(用于局部變量趴久,當數據使用完丸相,所占空間會自動釋放),堆(存放數組和對象彼棍,通過new建立實例灭忠,每一個實體都具有內存地址值,實體的變量都有默認初始化值座硕,實體不被使用時會被垃圾回收器回收)共同特點都具備自己釋放內存弛作。Java中描述事物通過類的形式提現(xiàn),類是具體事物的抽象华匾,概念上的定義映琳。在java中只支持單繼承,不支持多繼承{關于java中多繼承困惑解答(類定義屬性和方法描述某一類事物的抽象瘦真,接口定義的是行為并不限于任何具體意向)接口與接口的關系稱為實現(xiàn)比稱為繼承更為貼切}刊头。java對傳輸數據操作通過流的方式,用于操作流的對象都在IO包中诸尽。

1.函數的特點:定義函數可以將功能代碼進行封裝原杂,便于對該功能進行復用(提高代碼復用性),函數之間只能調用函數您机,不可以在函數內部定義函數穿肄。

2.數組:數組就是一個容器。

3.面向對象(萬物皆對象思想):基于面向過程創(chuàng)立而成际看,將功能封裝進對象咸产,強調具備了功能的對象。它符合人們的思考習慣仲闽,將復雜的事情簡單化脑溢。面向對象叫做方法,而面向過程叫做函數

3.1—封裝(encapsulation):指隱藏對象的屬性和實現(xiàn)細節(jié)屑彻,僅對外提供公共的訪問方式验庙,更好的將變化隔離,便于使用社牲,提高重用性和安全性粪薛。

3.2—繼承(inheritance):指子類獲得父類非私有屬性和行為,繼承提高了代碼復用性搏恤,讓類與類之間產生關系违寿,提供了多態(tài)的前提和條件。繼承中存在覆蓋時熟空,子類方法權限一定要大于等于父類方法權限藤巢。Final可以修飾類、方法息罗、變量菌瘪,修飾的類不可以被繼承,修飾的方法不可以被覆蓋阱当,修飾的變量是一個常量,只能被賦值一次糜工,內部類只能訪問被final修飾的局部變量弊添。關于抽象類是具體事物抽取出來的,本身是不具體的捌木,沒有對應的實例油坝。抽象類與普通類的區(qū)別就是抽象類是用abstract修飾的,抽象類可以有抽象方法也可以有普通方法刨裆,抽象類有構造器澈圈,但是抽象類本身卻不能夠被實例化,抽象類的構造方法就是給子類實例化時初始化使用的帆啃,因為初始化一個子類對象時會先調用super關鍵字對父類進行初始化瞬女。定義抽象類就是為了給子類繼承,所以抽象類不能為final修飾的最終類努潘,抽象方法不能為static诽偷,而抽象方法的權限至少為protected(或者是public)子類可以訪問的。抽象類與接口區(qū)別:接口比抽象類更加抽象疯坤,接口中不能有抽象方法报慕,抽象類只有單繼承而接口可以多繼承,接口中只能有public的抽象方法和public的變量压怠。

3.3多態(tài)(polymorphism):指某一類事物的多種存在形態(tài)眠冈,它的存在提高了程序擴展性和后期可維護性,前提是需要存在繼承或者實現(xiàn)關系菌瘫,而且要有覆蓋操作蜗顽。

4.異常:throws(標識)用在函數上布卡,后跟著異常類名、throw(拋)用在函數內诫舅,后面跟著異常對象羽利。如果在處理異常時,之前執(zhí)行了System.exit(0)操作刊懈,那么Finally代碼塊則不會被執(zhí)行这弧。一個方法被覆蓋時,方法必須拋出相同的異承檠矗或者異常之類匾浪。

5.多線程:通過繼承Thread類方法創(chuàng)建線程,通過實現(xiàn)Runnable接口創(chuàng)建線程卷哩。Wait();和sleep();兩者的區(qū)別:wait釋放這個線程鎖占用的系統(tǒng)資源到線程池中休息蛋辈,而線程池的設計亨元模式,是自帶隊列的将谊,如果去找它會找到后進去休息的線程冷溶,如果不去找它,它就會一直線程池中休息尊浓,從而占用喜用資源逞频,而sleep是原地休息,不進線程池栋齿,所以不釋放占用的系統(tǒng)資源苗胀。多線程安全問題,多個線程操作同一片資源的時候瓦堵,極可能造成資源數據錯亂基协,所以就需要使用到線程同步鎖,同步鎖就是把共享的資源加同步菇用,只有一個線程能夠對這片數據進行操作澜驮,當這個線程結束對數據的操作,就會釋放同步讓別的線程來操作數據刨疼,就不會造成數據的錯亂泉唁。

? ? ? ?單例設計模式就是為了保證一個類的對象在內存的唯一性,單例設計模式有4種方式揩慕,其中兩種比較早的方式是餓漢式與懶漢式亭畜。餓漢式線程同步效率高,但是在類被加載進內存時就會初始化對象迎卤,因此不能延遲加載(如果這個對象占用內存資源較多)拴鸵,就會比較浪費資源,并且無法防反射破解。懶漢式是可以達到延遲加載劲藐,但是線程不同步八堡,如果懶漢式加了同步鎖,調用效率就會比較低聘芜,并且也無法防反射破解兄渺。因此有了兩種新的方式取代餓漢式與懶漢式。枚舉式取代了餓漢式汰现,枚舉式就是天然的單例挂谍,并且它是由虛擬機底層創(chuàng)建的,天然防反射破解瞎饲,調用效率高口叙,可惜不能延遲加載。私有靜態(tài)內部類式取代了懶漢式嗅战,定義一個靜態(tài)內部類妄田,需要時在內部類創(chuàng)建外部類對象,內部類創(chuàng)建對象數據局部變量驮捍,不會再類加載時就被初始化疟呐,因此達到延遲加載,并且線程同步东且,但是遺憾的是它也無法防反射萨醒,只能認為的在單例類構造器中做些手腳來防止反射破解。

6.集合(Collection):就是對多個對象進行操作和存儲苇倡。問數組和集合類同是容器,有何不同囤踩?數組長度固定且只能存儲基本數據類型旨椒,而集合長度可變但只能存儲對象。它的接口List(列表):可存放重復元素堵漱,元素存取是有序的综慎、Set(集):不可存放重復元素,元素存放是無序的勤庐。ArrayList():線程不安全示惊,查詢速度快、LinkedList:鏈表結構愉镰,增刪速度快米罚。集合的迭代就是取出集合中的元素的一種方式,Collection中有Iterator方法所以每一個子類集合對象都具備迭代器丈探,迭代器在集合接口中是通用的录择,它替代了Vector類中的Enumeration(枚舉),next方法是自動向下取元素,要避免出現(xiàn)NoSuchElementException隘竭,返回值類型是Object記得要轉換類型塘秦。Set集合元素唯一性原因:HashSet通過equals方法和hashCode方法來保證,TreeSet通過compareTo或compare方法來保證动看。泛型的特點提高了程序安全性尊剔,將運行期遇到的問題轉移到了編譯期,省去了類型強轉的麻煩菱皆,優(yōu)化了程序的設計须误。Map集合常用類HashMap:線程不安全,速度快搔预,允許存放null值霹期,null鍵、TreeMap:對鍵進行排序拯田,原理與TreeSet相同历造。

7.IO(Input、Output)流:處理設備之間數據傳輸是通過IO流來完成船庇,按操作數據分為:字節(jié)流和字符流吭产,按流向分為:輸入流和輸出流。緩沖區(qū)提高了對數據的讀寫效率鸭轮。BufferedReader是裝飾設計臣淤,用于增強同一個體系中的Reader的子類。裝飾設計模式中的裝飾類通常跟被裝飾類是在同一個體系中窃爷,但是兩者間不存在直接關系邑蒋,都是通過組合、多態(tài)的方式按厘,讓增強類持有被增強類的父類或者接口引用医吊,在需要增強被增強類時,就把被增強類的對象傳給增強類逮京,裝飾設計模式避免了繼承體系膨脹的好處卿堂,但是也帶來小對象過多的弊端。

8.GUI(圖形化界面):事件監(jiān)聽機制就是確定事件源懒棉,通過事件源對象addXXXXListener()方法接收XXXListener的子類對象草描,一般用匿名內部類來表示。網絡通信就是Socket間的通信策严,Socket是網絡服務提供的一種機制穗慕,數據在兩個Socket間通過IO傳輸。


擴展內容:

? ?在GOF23設計模式中接口妻导、組合跟多態(tài)都是一起使用的揍诽,例如行為模式中的狀態(tài)模式诀蓉,設置一個狀態(tài)接口,然后許多種狀態(tài)類實現(xiàn)那個狀態(tài)接口暑脆,真實對象持有這個狀態(tài)接口的引用渠啤,真實對象再通過多態(tài)達到不同狀態(tài)的切換。

問:int與Integer的區(qū)別:

int是基本數據類型添吗,直接用來存數值沥曹,而Integer是一個類,int的初始化參數為0碟联,而Integer是null妓美。

問:泛型有什么作用:

在數據類型不明確的時候可以使用泛型。java是解釋型語言鲤孵,一個程序運行分兩個步驟壶栋,一個是編譯時,一個是運行時普监,而泛型就是在編譯時進行參數類型的安全檢查贵试,所有的強制類型轉換都是自動的和隱式的,提高代碼的重用率凯正。泛型不能使用在靜態(tài)屬性跟靜態(tài)的方法上毙玻,泛型也不存在多態(tài)。

問:說說暴力反射與反射的區(qū)別:

java的一個程序運行分為運行時和編譯時廊散,反射就是在運行時加載某個對象在內存中唯一的字節(jié)碼文件桑滩,并且獲取該字節(jié)碼文件中的各種屬性,把字節(jié)碼文件中的各種屬性拆分成各種java類允睹, 而暴力反射就是把語言訪問檢查setAccessible開關設為true运准,這樣虛擬機在反射時就會取消安全訪問檢查,提高了反射速度缭受,并且可以對私有屬性進行訪問戳吝。

問:正則表達式的利弊:

正則表達式用一些符號對字符串進行操作,簡化了書寫贯涎,但是很多符號亂糟糟的聚集在一起很大程度降低了閱讀性。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末慢洋,一起剝皮案震驚了整個濱河市塘雳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌普筹,老刑警劉巖败明,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異太防,居然都是意外死亡妻顶,警方通過查閱死者的電腦和手機酸员,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讳嘱,“玉大人幔嗦,你說我怎么就攤上這事×ぬ叮” “怎么了邀泉?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钝鸽。 經常有香客問我汇恤,道長,這世上最難降的妖魔是什么拔恰? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任因谎,我火速辦了婚禮,結果婚禮上颜懊,老公的妹妹穿的比我還像新娘财岔。我一直安慰自己,他們只是感情好饭冬,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布使鹅。 她就那樣靜靜地躺著,像睡著了一般昌抠。 火紅的嫁衣襯著肌膚如雪患朱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天炊苫,我揣著相機與錄音裁厅,去河邊找鬼。 笑死侨艾,一個胖子當著我的面吹牛执虹,可吹牛的內容都是我干的。 我是一名探鬼主播唠梨,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼袋励,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了当叭?” 一聲冷哼從身側響起茬故,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚁鳖,沒想到半個月后磺芭,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡醉箕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年钾腺,在試婚紗的時候發(fā)現(xiàn)自己被綠了徙垫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡放棒,死狀恐怖姻报,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情哨查,我是刑警寧澤逗抑,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站寒亥,受9級特大地震影響邮府,放射性物質發(fā)生泄漏。R本人自食惡果不足惜溉奕,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一褂傀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧加勤,春花似錦仙辟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至戴尸,卻和暖如春粟焊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背孙蒙。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工项棠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挎峦。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓香追,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坦胶。 傳聞我的和親對象是個殘疾皇子透典,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內容

  • 一:java概述:1,JDK:Java Development Kit顿苇,java的開發(fā)和運行環(huán)境峭咒,java的開發(fā)工...
    ZaneInTheSun閱讀 2,650評論 0 11
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法钙皮,繼承相關的語法蜂科,異常的語法顽决,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,104評論 0 62
  • 1.音頻导匣,1a 2.視頻才菠,無 3.游戲和應用 Tom and i went to Bejing auto muse...
    紫夜1606閱讀 247評論 0 0
  • 2017.09.26星期二 晴 農歷八月初七 今天一早還是睡得很鼾,女兒抱著寶寶過來了贡定,寶寶看到我就直接朝我撲過來...
    小幸福vs茹萍閱讀 165評論 2 1