原创 HashMap中,4種遍歷方式。

在HashMap中,有一個明顯的特徵。在存儲的時候,會有一個鍵值對的關係。鍵和值存在着一一對應(映射)的關係。而HashMap中的鍵相當與Set,無序不可重複。因此,在遍歷的時候可以用Set集合得到HashMap中的鍵,然後通過Set集合

原创 Java設計模式之單列模式

簡言單列模式:單一,也就是說一個類只能有一個對象。就類似於有些軟件只能打開一次,當需要保證一個對象在內存中的唯一性時,就需要引入單列模式。實現步驟創建單列模式分三步操作:1.將構造函數私有化2.在類中創建一個本類對象3.提供一個公有的接口

原创 線程同步下的死鎖機制

死鎖比如說有兩個線程T1和T2,在線程同步的情況下,有兩個鎖L1和L2。當T1線程持有L1鎖,想去訪問L2鎖住的資源。當T2線程持有L2鎖,想去訪問L1下面的資源。這個時候T1和T2線程就會彼此僵持着,兩個線程都不肯讓步,等待彼此釋放資源

原创 開發快一年多,很少寫博客了,但依然會記錄掌握的知識點

簡述 在這一行已經差不多有個一年多的時間了,在此非常感謝上家公司帶我的那個大佬,在我實習的那段時間裏,不厭其煩的教導我,謝謝你,宇哥。 這段時間,從最開始的對知識的懵懂無知,到現在也差不多能做出點什麼東西。在小公司工作的這一段時間

原创 FileReader和FileWriter讀寫文件,以及拷貝文件。

簡介如果看了上一篇 FileInputStream和FileOutputStream讀寫文件,然後實現文件的拷貝。那麼對與這篇就是小菜一碟。唯一區別在於上一個是基於字節流,這個基於字符流。字節流就用byte數組充當緩存,字符流用char數

原创 BufferedInputStream和BufferedOutputStream字節緩存流及字符緩存流的使用

簡介在IO流裏面有4個緩存流,分別是:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter。當我們用read()讀取文件時,每讀一個字節,訪問一次硬盤

原创 Java設計模式之工廠方法模式

前言java有23中設計模式。設計模式在Java編程裏面用處非常的多,如果把開發一個項目比喻成蓋房子,在蓋房子的過程中不同的位置需要不同的設計方式,如果設計的好,房子會更耐用更美觀。在開發過程中有時就要引入設計模式,讓代碼可重用,保證代碼

原创 使用TCP實現簡單的聊天功能

簡介當我們在網上進行數據傳輸的時候,首先需要建立穩定的連接(針對於TCP),然後通過Socket(套接字)將數據以流的方式輸入輸出,讓雙方的數據進行交互。而對於UDP,只需要知道對方的地址即可,不需要進行穩定的連接。TCP比較穩定,效率低

原创 PrintWriter和PrintStream用法

簡介PrintWriter和PrintStream是兩個打印流,當我們需要對數據進行輸出時,一般用的會比較多。比如說Socket通信,數據通過Socket流入流出,在流出的時候可能會用到PrintWriter。在選擇這兩個流的時候,如果需

原创 FileInputStream和FileOutputStream讀寫文件,然後實現文件的拷貝。

IO流Java裏面分爲兩種流:字節流和字符流。如果細分的話有,可分爲:4個文件流,4個緩衝流,2個轉換流,2個打印流,2個序列化流,2個數據流。//文件流 FileInputStream //字節輸入流 FileOu

原创 TCP文件傳輸

網絡協議裏面有個FTP(文件傳輸協議),專門用於傳輸文件。但今天我們用Socke直接實現客戶端與服務器端的文件傳輸,只需要在上次的Socke通訊中稍作改變,就可以達到文件傳輸的目的。步驟1.創建服務器端package FileSocket

原创 Java遞歸:求階乘、階加、斐波那契數列以及遍歷文件夾中所有文件名。

       在編程中有些時候我們需要用同一個函數來解決有重複操作的問題,簡而言之就是調用其本身。如果一個函數直接調用其本身的話,會造成類似於死循環的這種錯誤。因此,在遞歸的過程個需要掌握兩個條件,來避免這種錯誤。1.遞歸的臨界條件,也就

原创 FileOutputStream寫入中文字符後,然後用FileInputStream一個個讀取,出現的亂碼問題。

問題在我們用FileOutputStream寫入中文和英文,然後用FileInputStream一個個讀出來時,發現中文字符會出現亂碼,而英文字符保持不變。看如下代碼:package FileStream; import java.io

原创 使用UDP發送消息

1.簡介在osi(七層網絡架構:應用層,表示層,會話層,傳輸層,網絡層,數據鏈路層,物理層)中,TCP和UDP屬於同一層即傳輸層,IP屬於網絡層。TCP在傳輸時,需要建立穩定可靠的連接(三次握手和四次揮手)。UDP則不需要,只需指定數據報

原创 TCP+多線程,讓發送消息和接收消息各佔一條線程

在上次Socket通訊 使用Socket實現簡單的聊天功能 中。客戶端和服務器只有一方可以發送消息,另一方則只能等待(接收消息),而且不能連續發送消息。因爲發送消息和接受消息共有一條線程,需要來回的切換。這時我們就要專門爲發送消息和接受消