原创 協議的那些事兒——OSI模型和TCP/IP模型

計算機網絡優先於計算機誕生,人們爲了計算機之間彼此連接交互,定義了某些協議,這種協議就好比人類的語言,起初協議有很多,一家公司,一個部門都定義了自己內部的協議,從而導致彼此間無法交流,計算機網絡缺乏靈活性和擴展性。就好比我不太能聽懂外

原创 網絡通信開發(一)

基本任務 掌握常用的網絡命令 對網絡通信有基本理解 能編寫簡單的網絡通信服務器和客戶端程序 能自定義通信協議,實現複雜的通信機制 完成一個完整的網絡聊天系統 作爲學習計算機網絡,想要開發通信項目的人,我想你應該知道每臺機器有一個I

原创 網絡通信開發(二)

一、羣聊服務器的實現基本功能 當客戶機連接服務器,服務器要求客戶機輸入用戶名和密碼 當輸入的用戶名和密碼與服務器所保存的賬號一致登錄成功,否則斷開 登錄成功後,給其他客戶機提示信息,顯示在線人數 登錄成功的客戶機可以給服務器發送消息

原创 JVM的內存回收機制——GC

文章目錄一、判斷垃圾回收的對象二、什麼時候需要執行GC三、如何執行GC四、小結 JVM通過GC回收堆和方法區的內存,這個過程是自動執行的。我們需要考慮三件事 一、哪些內存需要回收 二、什麼時候需要執行GC 三、如何執行GC 一、判斷

原创 淺析JVM基本結構

文章目錄一、Java代碼編譯和執行二、Java虛擬機的體系結構三、詳談運行時數據區小結 一、Java代碼編譯和執行 程序員編寫Java程序,通過編譯器生成.class文件也就是字節碼,字節碼通過字節碼本或網絡進入Java運行平臺,Ja

原创 線程池的組成及種類

文章目錄一、 線程池的組成結構二、常見的線程池種類三、線程池的工作流程四、線程池的好處五、小結 我們知道一個進程可以把任務分成多個部分交給線程執行,多線程技術減少了CPU閒置時間,增加了程序併發性。 假設創建線程的時間爲t1,執行任務

原创 TCP三次握手,四次揮手

三次握手: 舉例說明: 1.A對B說:我要向你借點錢,可以嗎? 第一次握手,A向B發出請求。 2.B對A說:可以,你要借多少? 第二次握手:如果B不迴應A(可能沒錢或者不願借),那麼溝通失敗,A無法向B借錢。如果B迴應了A,那麼B就會

原创 你的線程安全嗎??

文章目錄一、什麼是非線程安全二、判斷線程是否安全的標準三、實現線程安全的方式四、同步的實現方式1.synchronized(互斥鎖)2.Lock(可重入鎖) 最近在看面經,關於Java的面試,老生常談的一個問提就是多線程的安全問題和線

原创 js函數詳解

文章目錄一、函數的命名二、函數調用的模式1.方法調用模式2.函數調用模式3.構造函數調用模式4.apply或call調用模式 一、函數的命名 函數使用function關鍵字來定義。它可以用在函數定義表達式或者函數聲明語句裏。在這兩種形

原创 Java彈球遊戲的基本實現(一)

之前做了彈球遊戲,用了線程,以爲自己懂了,但是做飛機大戰的時候覺得有點亂,所以回過頭來整理一下彈球遊戲的做法: 文章目錄一、做出界面並在界面上畫出球1.寫一個主類顯示界面,這個很簡單可以直接跳過2.給窗體添加鼠標監聽,定義一個窗體鼠標

原创 基本概念

一、什麼是程序?進程?線程?多線程 1.程序(Program):本身是指令的集合,是爲讓計算機執行某些操作或者解決某個問題而編寫的一系列有序指令的集合。通常由一段代碼+數據+資源文件組成(涉及語法+算法+數據結構) 2.進程(Proc

原创 Java關鍵字

文章目錄一、什麼是關鍵字二、關鍵字列舉1)類,方法,變量修飾符2)數據類型的關鍵字3)對象的關鍵字4)異常的關鍵字5)循環使用的關鍵字6)條件使用的關鍵字:7) 其他 一、什麼是關鍵字 關鍵字是用來表示一種數據類型,或者表示程序的結構

原创 簡述字符串三種編碼方式的發展及聯繫

計算機如何處理文本? 首先我們要明白,計算機只能處理數字,如果要處理文本,必須先把文本轉換爲數字才能處理。 一個字節(1byte)=8bit,所以一個字節能表示的最大整數是(11111111)=28-1=255如果表示更大的數必須得用

原创 Java數據數據結構(三)——隊列

今天但看了大二數據結構這本書,對隊列進行一個整理。 文章目錄一、什麼是隊列二、順序數組實現隊列三、循環數組實現隊列四、鏈表實現隊列 一、什麼是隊列 隊列和棧一樣,都是一種受限制的線性表。隊列元素只能從隊尾插入(稱爲入隊),隊首刪除(稱

原创 數據結構(二)——棧

文章目錄一、什麼是棧?二、實現的基本操作三、數組實現棧四、一個數組實現兩個棧五、鏈表實現棧 一、什麼是棧? 說的術語一點就是一種只能在一端進行插入和刪除操作的線性表,可以用數組實現也可以用鏈表實現。說的白話一點,棧就像一個玻璃杯,只有