国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

源碼之家,精品網站源碼、商業源碼、免費源碼、網站源代碼下載網站
分類導航

源碼動態|PHP源碼|ASP源碼|.NET源碼|HTML源碼|商業源碼|游戲源碼|

服務器之家 - 源碼之家 - 源碼動態 - head first java(java入門書籍推薦排行)

head first java(java入門書籍推薦排行)

2023-05-06 18:58未知服務器之家 源碼動態

headfirstjava 1.基本概念 1.1.工作方式 源代碼(.java)編譯器(執行javac程序)產生字節碼(.class與平臺無關)JAVA虛擬機(JVM,讀取與執行字節碼) 1.2.匯編語言是對基礎機器的少量抽象,C,BASIC,FORTRAN等是對匯編語言的一種抽象 1.3.類實例化

headfirstjava

1.基本概念
1.1.工作方式
源代碼(.java)—編譯器(執行javac程序)—產生字節碼(.class與平臺無關)—JAVA虛擬機(JVM,讀取與執行字節碼)
1.2.匯編語言是對基礎機器的少量抽象,C,BASIC,FORTRAN等是對匯編語言的一種抽象
1.3.類實例化的過程相當于創建了一個句柄
1.4.doStuff(c),一個圓句柄傳遞給一個本來期待shape句柄的函數,圓是shape的子類,所以doStuff()發給shape的消息,circle也能接受,原因是編譯器編譯代碼時并不知道自己要操作的準確類型是什么,這種情況叫多形性,實現的方法叫叫動態綁定
1.5.用戶提交的信息通過所有WEB服務器均能支持的“通用網關接口”(CGI)會傳到服務器
1.6.數據保存地:
1.6.1.寄存器
1.6.2.堆棧(RAM,保存句柄)
1.6.3.堆(RAM,保存對象)
1.6.4.靜態存儲(RAM,static)
1.6.5.常數存儲(ROM)
1.6.6.非RAM存儲(另一臺機器或磁盤,不依賴于程序是否運行)
1.7.實例變量數字默認值為0,BOOLEAN初始值為false,對象引用為null,局部變量沒有默認值,必須初始化
2.構造器與垃圾收集器
2.1.正在執行的方法位于棧頂,執行完被釋放掉
2.2.對象存在于堆中,實例變量存在于所屬對象中,局部變量和方法的參數的生命周期只限于方法被放在棧上的這段期間,即所有局部變量存在于棧上的堆棧塊中
2.3.primitive主數據類型變量指boolean,char,byte,short,int,long,float,double這8種
2.4.對象引用變量與primitive主數據類型變量都是放在棧上
2.5.方法的參數傳遞都是值傳遞,基本類型傳值,引用類型傳地址
2.6.內存分兩種,堆內存和棧內存
2.7.數組和對象在沒有引用變量指向它的時候,才變成垃圾,不能再被使用,但是仍然占著內存,在隨后的一個不確定的時間被垃圾回收器釋放掉。這個也是java比較占內存的主要原因
2.8.堆和棧由JVM自帶的機制進行管理
2.8.實例變量存在于對象所屬的堆空間上,如果實例變量是個對象,則會在當前對象的堆空間中存入對象的引用變量,被引用的對象在被NEW的時候放在另一個堆空間中
2.9.內存分配策略:head first java(java入門書籍推薦排行)
靜態


2.10.無參構造函數是必須的(沒有建的時候系統提供,自己寫了構造函數的話則必須自寫無參構造函數)
2.11.執行NEW的指令是個重大事件,它會啟動構造函數連鎖反應,一直到Object這個類為止,創建子類,其繼承的父類也會被連鎖創建,創建對象時其構造函數被逐次放到堆棧塊,逐級調用直到最上面是Object類的構造函數
2.12.如果新建子類對象時,在子類的構造函數中沒有寫對父類構造函數的調用,則編譯器會自動幫我們加上super(),對super()的調用默認會加在第一行,自寫的話也必須保證在第一行
2.13.使用this()來從某個構造函數調用同一個類的另外一個構造函數,只能用在構造函數中,且必須是第一行語句,super()與this()不能兼得
2.14.方法運行于堆棧
2.15.局部變量在方法執行時存活,方法執行完死掉,活著的時候狀態會被保存
2.16.有3種方法可以釋放對象的引用
引用離開它的范圍,如函數中有實例化,函數執行結束后
引用被重新賦值到其他對象上
引用被重新賦值為null
對象的引用死掉后,該對象就等著垃圾處理器回收了
2.17.靜態方法直接從類調用,沒有對象的引用,抽象的類是不能被初始化的
2.18.可通過用私有的構造函數來限制非抽象類被初始化eg:Math
2.19.靜態方法不能調用非靜態的變量,因為靜態方法通過類名稱來調用,所以無法引用到該類的任何實例變量,因為靜態方法不知道堆上有哪些實例
2.20.靜態方法也不能調用非靜態方法,即使可以通過引用變量調用靜態方法,但靜態方法依然不知道是哪個對象引用所做的調用
2.21.同一類所有的實例共享一份靜態變量,即可以用靜態變量來統計某個類被創建實例的個數
2.22.靜態變量的默認值為該變量類型的默認值
2.23.JVM決定什么時候加載類
2.24.final的類不能被繼承,final方法不能被覆蓋,final變量不能被改變值
2.25.primitive數據類型與對應的包裝類型編譯器會自動進行轉換,即某處用到某種類型都可用其對應的類型替代
3.異常處理
3.1.編譯器會核對每件事,除了RuntimeException之外
3.2.判斷某個方法可能會拋出異常的方法是看該方法有沒有throwsException,那么其他方法在調用該方法時就要聲明try/catchl
3.3.try/catch塊種發生異常后,try后的語句不再執行,執行完catch后整個try/catch塊后接著執行
3.4.try塊失敗—catch塊—finally塊—其余部分
try塊成功—finally—其余部分
有return指令情況下流程會跳到finally然后再回到return指令
3.5.如果可能有多個異常,就要對應多個catch塊,但通常通過聲明多個異常的父類來代替聲明多個異常
3.6.在調用可能出現異常的方法時,該方法也可以拋出異常(throwsException),那么這個方法從堆棧上釋放掉,異常拋給調用它的方法,如果主方法也拋出異常,最終異常會拋給JVM,JVM無法處理死掉
3.7.內部類可以使用外部所有的方法與變量,就算是私用的也可以,內部類跟正常的類沒有差別還多了特殊的存取權,在外部類可以創建內部類的實例,如果要在外部類以外的程序初始內部實例,需要:
Outerot=newOuter();
Outer.Innerin=ot.newInner();
3.8.如果某類可序列化,則它的子類也可序列化
3.9.被標記為trasient的變量跳過實例化,靜態類不會被序列化,序列化的類需要實現Serializable接口
3.10.序列化:鏈接(此處FileOutputStream叫做連接串流)
ObjectOutputStreamos=newObjectOutputStream(newFileOutputStream(a.ser))
os.writeObject(one);
os.writeObject(two);

解序列化:鏈接,讀取的順序必須與吸入的順序相同
ObjectInputStreamis=newObjectInputStream(newFileInputStream(a.ser))
Oneone=(One)is.readObject();
Twotwo=(Two)is.readObject();

3.11.某類被序列化,則它的引用對象也會被序列化
3.12.緩沖區bufferedWriter
BufferedWriterbw=newBufferedWriter(newFileWriter(aFile))
bufferedWriter可以暫存一堆數據,等緩沖區滿時再寫入磁盤,這樣就減少了對磁盤的操作次數,提高了效率,因為每趟磁盤操作都比內存操作話費更多的時間,如果要強制緩沖區立即寫入,可調用bw.flush()這個方法
3.13.所有的流都是以下4個基本類的子類:
InputStreamReader
OutputStreamWriter
InputStream和OutputStream及其子類處理字節流,按ASCII編碼,主要用在處理二進制數據
字符流常用于文本
4.網絡與線程
4.1.Socket連接(客戶端對服務器建立)
Socketa=newSocket(“11.1.45.234”,5000)
網頁服務器(HTTP)端口是80,HTTPS:443這是規定的標準
4.2.每個服務器有65536個TCP端口(0-65535),0-1023都被保留給已知的特定服務
4.3.字符流與字節流通過InputStreamReader,OutputStreamWriter來關聯,實際上是通過byte[]和String來關聯
4.4.從Socket得到的輸入流為字節流
4.5.PrintWriter可作為字符數據與字節間的轉換橋梁
4.6.服務器對特定端口創建:
ServerSocketserverSock=newServerSocket(4242);
服務器會監聽4242這個端口
客戶端創建
服務器創建與客戶端通信的新Socket
A.Socketsock=serverSock.accept();(方法在用戶連接時返回Socket)
服務器會無限循環,每次循環會調用A方法,A檢測到客戶端連接了才會繼續往下執行
4.7.JAVA.LANG是被默認導入的
4.8.JAVA虛擬機會負責主線程的啟動以及垃圾收集所需的系統用線程
4.9.只有多處理器才能同時處理好幾件事
4.10.線程調用start()方法后,進入待執行狀態,由虛擬機的線程調度機制來決定線程的狀態
4.11.GUI:圖形用戶接口
4.12.創建新線程(2中方法)
A:實現Runnable接口
Runnabler=newMyRunnable();
Threadt=newThread(r);
T.start();
B:用線程的子類覆蓋掉run()方法
ClassAextendsThread{
@Override
Voidrun(){……}
}
Aa=newA(…)
A.start();
4.13.Thread.sleep()可以強制線程進入等待狀態直到過了設定時間為止,sleep()(可能跑出異常)可以讓所有線程都有機會運行
4.14.使用synchronized關鍵詞可以防止兩個線程同時進入同一對象的同一方法
4.15.每個對象有唯一的鎖和鑰匙,當使用同步化方法時,對象會在某個線程進入后鎖上,別的線程企圖進入就得等待
4.16.由于鎖機制,兩個線程在進入各自對象后睡覺醒來后訪問對方的對象就都得處于等待狀態,造成死鎖
4.17.類本身也有鎖,比如靜態變量的保護
4.18.通過私有的構造函數和創建靜態實例可做出單例模式

java入門書籍推薦排行

書是人類不可或缺的精神食糧。正如高爾基所言:書是人類前進的階梯。借名人名言給我們引薦一些對Java學習有用的經典書本,對程序員來說,我覺得最佳學習方法仍是看書,看視頻花費時刻太長,而閱覽博客則不夠體系。
對Java初學者最好的方法就是找到一本經典的好書,然后啃完它。當然,我仍是引薦我們有時刻寫寫博客,究竟好記憶不如爛筆頭,許多的作業經驗,不記錄會隨著時刻的推移也畢竟會被遺忘,看書也相同,看到要點動手去實踐,動腦去考慮,動手記錄下來,哪些書適宜初學者呢?下面和千鋒廣州小編一同來看看吧!
1、《HeadFirstJava》Java入門書本
《HeadFirstJava》是本完整的面向對象(object-oriented,OO)程序設計和Java的學習輔導。你會學會如何像個面向對象開發者相同去考慮。但假如你真地想要好好地學習Java,你會需求《HeadFirstJava》強烈引薦學習此書,十分適宜初學者入門。
2、《Java從入門到精通》適宜自學者這本書首要針對Java根底,對于沒有學過Java的人才說,是一個不錯的挑選。經過這本書,我們能夠從零開始,慢慢來學習,而且實操很多,不會讓你看到最終呈現只會理論的狀況。
3、《ThinkinginJava》(中文名:《Java編程思想》)適宜中級自學者和訓練者
是一切Java程序員必備教科書。這本書不管是正在學習仍是現已作業許多年的程序員,都能夠從這本書中得到你想要的東西。這本書具有教材和工具書的作用,就像一本字典,想知道什么都能夠從中查詢。盡管這本書很好,但并不主張初學者學習,對于初學者難度較大。
4、《瘋狂Java講義》適宜自學者看內容比較項目化,實操方法很多,假如你想進行Java的深化學習,無妨看看這本書。
5、《Java核心技術》這本書分為兩個部分,第一個部分講的是根底常識,第二個部分講的是高級特性。可是里面臨Java的技術講述大而全,簡直對語法和根底庫講的都很夯實,我覺得入門看這個很適宜。
6、《Java開發實戰經典》這本書比較適宜自學者學習,里面有很多小案例,能夠邊學邊練,鞏固常識。[1]

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲综合二 | 欧美日韩精品在线播放 | 免费看国产视频 | 亚州中文字幕 | 视频一区 日韩 | 开心久久婷婷综合中文字幕 | av官网在线| 午夜免费福利视频 | 欧美视频一二三区 | 日韩中文字幕在线播放 | 精品在线一区 | 日韩中文字幕在线视频 | 亚洲视频一区在线播放 | 粉嫩欧美一区二区三区高清影视 | 夜夜夜久久久 | 色综合一区二区三区 | 激情久久久 | 日韩中文字幕在线视频 | 久久精品国产v日韩v亚洲 | 在线观看成人 | 色婷婷一区二区三区 | 日日夜夜精品免费视频 | 成人午夜在线 | 欧美日韩一区二区三区 | 中文一二区| 日韩一级免费观看 | 青青久视频 | 91av在线播放 | 成人免费毛片aaaaaa片 | 久操视频在线 | 国产精品1区2区 | 99亚洲精品| 91视频黄色 | 欧美精品v国产精品v日韩精品 | 亚洲精品www久久久久久广东 | 在线视频 91 | 国产一区久久久 | 中文字幕专区 | 中文字幕在线观看 | ririsao久久精品一区 | 亚洲高清av |