成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java程序設(shè)計(jì)筆記

microcosm1994 / 2270人閱讀

摘要:對(duì)象的自動(dòng)清除對(duì)象回收是由垃圾回收線程負(fù)責(zé)方法可以要求系統(tǒng)進(jìn)行垃圾回收,僅僅是建議系統(tǒng)沒有析構(gòu)方法,但的有類似方法系統(tǒng)在回收時(shí)會(huì)自動(dòng)調(diào)用對(duì)象的方法子類的方法可以在里面釋放系統(tǒng)資源,一般來說,子類的方法中應(yīng)該調(diào)用父類的方法。

對(duì)象的自動(dòng)清除

對(duì)象回收是由垃圾回收線程負(fù)責(zé)

System.gc()方法可以要求系統(tǒng)進(jìn)行垃圾回收,僅僅是建議系統(tǒng)

java沒有“析構(gòu)方法”,但Object的finalize()有類似方法

系統(tǒng)在回收時(shí)會(huì)自動(dòng)調(diào)用對(duì)象的finalize()方法

protected void finalize() throws Throwable{}

子類的finalize方法可以在里面釋放系統(tǒng)資源,一般來說,子類的finalize方法中應(yīng)該調(diào)用父類的finalize方法。

內(nèi)部類與匿名類 內(nèi)部類

定義在一個(gè)類的內(nèi)部

使用分為內(nèi)部使用和外部使用

內(nèi)部類總可以直接訪問外部類的字段及放啊

內(nèi)部類總訪問外部類的字段可以用“外部類名.this.字段”的方式

用static修飾內(nèi)部類,表明該內(nèi)部類實(shí)際是一種外部類

因?yàn)樗c外部類的實(shí)例無關(guān)

有人認(rèn)為static的類是嵌套類,不是內(nèi)部類

匿名類

它沒有類名,在定義類的同時(shí)就生成該對(duì)象的一個(gè)實(shí)例,不取名字,直接用父類或接口的名字

一次性使用的類

例子:

new Handler(){
...
}
局部類

同局部變量一樣,方法中的內(nèi)部類

不能用public,private,protected,static修飾

但可以被final,abstract修飾

可以訪問器外部類的成員

不能夠訪問該方法的局部變量,除非是final局部變量。

Lambda表達(dá)式

基本寫法

(參數(shù)) -> 結(jié)果

例子:

(String s) -> s.lenth();
x -> x*x;
() -> {System.out.println("aaa")}

大體上相當(dāng)于其它語言的”匿名函數(shù)”或”函數(shù)指針”

在java中它實(shí)際上是“匿名類的一個(gè)實(shí)例”

裝箱 基本類型的包裝類

它將基本類型包裝成Object

integer i = new Integer(10);

Integer i=10;
實(shí)際為:Integer i=Integer.valueOf(10);

拆箱

int a=i;
實(shí)際為:a=i.intValue();

枚舉

可以在enum定義體中,添加字段,方法,構(gòu)造方法

注解

又稱為注記,標(biāo)記,標(biāo)記,注釋

是在各種語法要素上加上附加信息,以供編譯器或其他程序使用

常用注解:

@Override 表示覆蓋父類的方法
@Deprecated 表示過時(shí)的方法
@SuppressWarnings 標(biāo)識(shí)讓編譯器不產(chǎn)生警告

引用與指針

引用實(shí)質(zhì)就是指針

但是它是受控的,安全的
比如:

會(huì)檢查空指引

沒有指針運(yùn)算

不能訪問沒有引用到的內(nèi)存

自動(dòng)回收垃圾

(1) 指針 》引用類型,引用本身就相當(dāng)于指針,可以用來修改對(duì)象的屬性,調(diào)用對(duì)象的方法
(2)指針運(yùn)算 》數(shù)組
(3)函數(shù)指針 》接口,lambda表達(dá)式
(4)指向結(jié)點(diǎn)的指針 》對(duì)象的引用
(5)使用JNI

java Native interface

它允許java代碼和其他語言寫的代碼進(jìn)行交互

基本類型的相等 基本類型:

數(shù)值類型:轉(zhuǎn)換后比較

浮點(diǎn)數(shù),最好不直接用==

Double.NAN==Double.NAN結(jié)果為false

boolean型無法與int比較

注 valueOf() -128到127會(huì)有緩存,超過的話就沒有緩存了

枚舉類型

內(nèi)部進(jìn)行了唯一實(shí)例化,可以直接判斷

引用對(duì)象

“==”是直接看兩個(gè)引用是否一樣

如果要判斷內(nèi)容是否一樣,則要重寫equals方法

如果重寫equals方法,則最好重寫hashCode方法,因?yàn)橐话阋詢?nèi)容的hashCode作為唯一性標(biāo)志

[圖片上傳失敗...(image-845e09-1522336106762)]

String對(duì)象的特殊性

判斷對(duì)象,一定不要用==,要用equals

但是字符串變量及字符串常量會(huì)進(jìn)行內(nèi)部化,相同的字符串常量是==的

異常

異常又稱為例外,差錯(cuò)

對(duì)應(yīng)著java運(yùn)行錯(cuò)誤處理機(jī)制

基本寫法:

try{
    語句組
}catch(Exception ex){
    異常處理語句組;
}
java中處理異常

拋出異常

運(yùn)行時(shí)系統(tǒng)在調(diào)用棧中查找:從生成異常的方法開始進(jìn)行回溯,直到找到

捕獲異常的代碼

異常的分類

Throwable

Error:JVM錯(cuò)誤

Exception

多異常的處理

子類異常要排在父類異常的前面

finally語句

無論有無異常,都會(huì)執(zhí)行處理語句

受檢的異常

Exception分兩種

RuntimeException及其子類,可以不明確處理

否則,稱為受檢的異常,受檢的異常,要求明確進(jìn)行語法處理,要么捕獲,要么拋出異常

自定義異常

創(chuàng)建用戶自定義異常類

繼承自Exception類或某個(gè)子Exception類

定義屬性和方法,或重載父類的方法

對(duì)于異常,不僅要進(jìn)行捕獲處理,有時(shí)候還需要將異常進(jìn)一步傳給調(diào)用者,一變讓調(diào)用者也能感受到這種異常,這是可以在catch語句塊或finally

語句塊中采取以下三種方式:

將當(dāng)前捕獲的異常再次拋出

重新生成一個(gè)異常,并拋出

重新生成一個(gè)新異常,該異常中包含了當(dāng)前異常的信息,如throw new Exception (“some message “,e)

斷言及程序的調(diào)試

斷言

assert 表達(dá)式

assert 表達(dá)式,信息

在調(diào)試程序時(shí),如果表達(dá)式不為true,則程序會(huì)產(chǎn)生異常,并輸出相關(guān)的錯(cuò)誤信息


assert hypotenuse(3,4)==5:”算法不正確”;

它起到對(duì)程序的檢測(cè)作用

編譯及運(yùn)行

只有在JDK1.4及以上的版本才可以使用斷言

在運(yùn)行時(shí),要使assert起作用,則在運(yùn)行時(shí),使用選項(xiàng)(-ea ,即-enableassetions)

如 java -ea - classpath.Assertion

程序的測(cè)試及Junit

在編寫程序代碼的同時(shí),還編寫測(cè)試代碼來判斷這些程序是否正確,這個(gè)過程稱為“測(cè)試驅(qū)動(dòng)”的開發(fā)過程

在java的測(cè)試過程,經(jīng)常使用Junit框架

測(cè)試函數(shù)

@Test來標(biāo)注測(cè)試函數(shù)
fail(info) :表示信息出錯(cuò)
assertEqauls(arg1,arg2):表示程序要保證兩個(gè)參數(shù)相等
assertNull(arg):表示參數(shù)要為null

程序的調(diào)試

語法錯(cuò)誤(Syntax error):編輯,編譯器發(fā)現(xiàn)

運(yùn)行錯(cuò)誤(Runtime error):異常處理機(jī)制

邏輯錯(cuò)誤(Logic error):調(diào)式(debug),單元測(cè)試(unit test)

程序的調(diào)試

在IDE中,項(xiàng)目中點(diǎn)右鍵,debug as

進(jìn)入到調(diào)試視圖(debug perspective)

調(diào)試的手段

斷點(diǎn)(breakpoint)

跟蹤(trace)

監(jiān)視(watch)

在很有可能有錯(cuò)誤的地方設(shè)置斷點(diǎn),然后跟蹤
java基礎(chǔ)類庫

java.lang core

java.util

java.io

java.awt

java.net

java.sql

Object類

Object類是所有類的直接或間接父類

讓所有的類有了一致性

equals()

==是引用相等,equals是內(nèi)容相等

如果覆蓋equals方法,一般也要覆蓋hashcode方法

getClass()方法是final方法,它返回一個(gè)對(duì)象在運(yùn)行時(shí)所對(duì)應(yīng)的標(biāo)識(shí)

toString返回對(duì)象的字符串表示

finalize用于在垃圾收集前清除對(duì)象

notify(),notifyAll(),wait()線程相關(guān)

System類

System.getProperty(String name)獲取特定的系統(tǒng)屬性值

線程

進(jìn)程:一個(gè)程序的運(yùn)行

線程:程序中單個(gè)順序的流控制稱為線程

一個(gè)進(jìn)程中可以含有多個(gè)線程
一個(gè)進(jìn)程中的多個(gè)線程

特點(diǎn)

分享CPU(并發(fā)的或以時(shí)間片的方式)

共享內(nèi)存

線程體 — run()方法來實(shí)現(xiàn)的

線程啟動(dòng)后,系統(tǒng)就自動(dòng)調(diào)用run()方法

使用

通過繼承Thread類

通過向Thread()構(gòu)造方法傳遞Runnable對(duì)象

可用匿名類實(shí)現(xiàn)Runnable或用lambda表達(dá)式

線程池封裝

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68931.html

相關(guān)文章

  • 大部分程序員都記不住的注解,Idea 云筆記卻能輕松記住

    摘要:只因技術(shù)種類繁雜眾多層出不窮,程序員只有靠不斷的學(xué)習(xí)才能不落后于技術(shù),被工作淘汰。特此推薦給大家。 99%的程序員每天都是先學(xué)習(xí),后工作,不然完成不了工作。只因技術(shù)種類繁雜眾多、層出不窮,程序員只有靠不斷的學(xué)習(xí)才能不落后于技術(shù),被工作淘汰。我就是這其中一員,深得體會(huì)其中的「疼并快樂」,在...

    ARGUS 評(píng)論0 收藏0
  • Java虛擬機(jī)筆記-內(nèi)存區(qū)與內(nèi)存溢出

    摘要:小結(jié)程序計(jì)數(shù)器和虛擬機(jī)棧是線程私有的,而堆和方法區(qū)是線程共享的除了虛擬機(jī)運(yùn)行時(shí)內(nèi)存,在中使用類可以直接操作本機(jī)內(nèi)存。 Java的內(nèi)存區(qū)域 Java虛擬機(jī)在執(zhí)行Java程序中會(huì)把它所管理的內(nèi)存劃分為若干個(gè)數(shù)據(jù)區(qū)域,這些區(qū)域有各自的用途,以及生命周期,有些依賴虛擬機(jī)進(jìn)程啟動(dòng)而存在,有些依賴用戶線程的啟動(dòng)和結(jié)束而建立和銷毀 運(yùn)行時(shí)內(nèi)存 showImg(/img/bVqUpc); 程序計(jì)數(shù)器(...

    Ocean 評(píng)論0 收藏0
  • java程序員的c語言學(xué)習(xí)筆記,一文快速了解

    摘要:結(jié)構(gòu)體也可以包含結(jié)構(gòu)體,就像內(nèi)部類訪問結(jié)構(gòu)的屬性和一樣。。我覺得這個(gè)需要學(xué)下數(shù)據(jù)結(jié)構(gòu)才能更好理解給數(shù)據(jù)類型起一個(gè)新名字則可以通過對(duì)于結(jié)構(gòu)體我可以這樣再通過變量名就可以簡(jiǎn)便的聲明結(jié)構(gòu)體變量。文件暫時(shí)過了一遍預(yù)處理器頭文件就是擴(kuò)展名為的文件。 ...

    FuisonDesign 評(píng)論0 收藏0
  • Java學(xué)習(xí)筆記7-網(wǎng)絡(luò)編程

    摘要:網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備計(jì)算機(jī)的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來。通常用于互聯(lián)網(wǎng)協(xié)議,被稱。編程套接字使用提供了兩臺(tái)計(jì)算機(jī)之間的通信機(jī)制??蛻舳顺绦騽?chuàng)建一個(gè)套接字,并嘗試連接服務(wù)器的套接字。 網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來。 網(wǎng)絡(luò)編程是指編寫運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來。 java.net 包中 J2SE ...

    lufficc 評(píng)論0 收藏0
  • Java初學(xué)者最佳的學(xué)習(xí)方法以及會(huì)遇到的坑(內(nèi)含學(xué)習(xí)資料)!

    摘要:最近系統(tǒng)整理了一套初學(xué)者最佳的學(xué)習(xí)方法以及會(huì)遇到的坑等,希望對(duì)你有所幫助。正常的智商其實(shí),學(xué)習(xí)并不需要所謂的數(shù)學(xué)邏輯好,需要英語水平棒。大周期每天學(xué)習(xí)時(shí)間五個(gè)小時(shí)以上的,建議學(xué)習(xí)周期。三學(xué)習(xí)時(shí)會(huì)遇到的坑不知道學(xué)習(xí)的重點(diǎn),下面學(xué)習(xí)路線會(huì)畫。 最近系統(tǒng)整理了一套java初學(xué)者最佳的學(xué)習(xí)方法以及會(huì)遇到的坑等,希望對(duì)你有所幫助。 目錄: 一、學(xué)習(xí)java的前提 二、學(xué)習(xí)java的方法 三、學(xué)習(xí)...

    Half 評(píng)論0 收藏0
  • Centos學(xué)習(xí)筆記14 - java程序啟動(dòng)腳本

    摘要:?jiǎn)?dòng)命令假定項(xiàng)目名字是文件服務(wù)器,用來上傳和下載包目錄包文件名稱日志文件名稱腳本名稱下運(yùn)行包的方式如下當(dāng)前窗口被鎖定,可按打斷程序運(yùn)行,或直接關(guān)閉窗口,程序退出當(dāng)前窗口不被鎖定,但是當(dāng)窗口關(guān)閉時(shí),程序中止運(yùn)行。 服務(wù)器如果關(guān)機(jī),應(yīng)用比較多的話,需要重啟把所有程序啟動(dòng)一遍。在網(wǎng)上找了一些腳本,綜合改了一個(gè)新的出來。以后啟動(dòng)就可以少寫一些命令了。 啟動(dòng)命令 假定項(xiàng)目名字是fileserve...

    roland_reed 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

microcosm1994

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<