原创 NIO——ServerSocketChannel

 ServerSocketChannel 可以監聽進來的 TCP 連接,類似於 Java 網絡編程中的 ServerSocket。ServerSocketChannel 類位於 java.nio.channels 包中。下面是一個

原创 NIO——Non-blocking Server

 即使你瞭解 Java NIO 的非阻塞功能是怎麼工作的,設計一個非阻塞的 Java NIO server 依然很困難。和阻塞式的 IO 相比,非阻塞的 IO 有多個挑戰。下面就討論一下非阻塞的 Server 面臨的主要挑戰,並提

原创 JUC鎖——互斥鎖之非公平鎖

獲取非公平鎖   非公平鎖和公平鎖在獲取鎖的方法上,流程是一樣的。它們的區別主要表現在“嘗試獲取鎖的機制不同”。簡單點說,“公平鎖”在每次嘗試獲取鎖時,都是採用公平策略(根據等待隊列依次排隊等待);而“非公平鎖”在每次嘗試獲取鎖時

原创 Java使用selenium爬取網頁源代碼並通過郵件發送

1、項目搭建:idea + gradle + springboot  build.gradle:引入selenium相關依賴 apply plugin: 'java' apply plugin: 'maven' apply plu

原创 Gradle

Gradle用戶指南 點贊 收藏 分享 文章舉報 如不來 發佈了309 篇原創文章 · 獲贊 50 · 訪問量 8萬+ 私信

原创 設計模式——概述

一、設計模式的分類  1、根據目的來分   根據模式是用來完成什麼工作來劃分,這種方式可分爲創建型模式、結構型模式和行爲型模式 3 種。   ①創建型模式:用於描述“怎樣創建對象”,它的主要特點是“將對象的創建與使用分離”。GoF

原创 無頭瀏覽器(Headless Chrome)的使用

一、Windows系統  1、安裝Chrome   略  2、配置系統環境變量   將Chrome的安裝目錄(chrome.exe所在的目錄)追加到系統變量的path變量中,比如我的Chrome安裝在了:C:\Program Fi

原创 NIO——概述

 Java NIO(New IO) 從 JDK1.4 開始, 是一個可以替代標準 Java IO 和 Java 網絡 IO 的IO API,Java NIO 提供了與標準 IO 不同的 IO 工作方式。 一、Java NIO 的特

原创 NIO——通道之間的數據傳輸

 在 Java NIO 中,如果兩個 Channel 中的一個是 FileChannel,那麼這兩個 Channel 可以直接傳送數據。FileChannel 提供了一個 transferTo() 方法和一個 transferFr

原创 NIO——Scatter 和 Gather

 Java NIO 內置了 Scatter(分散器) 和 Gather(聚集器),Scatter 和 Gather 是從 Channel 中讀取數據或者向 Channel 中寫入數據的相關概念。  Channel 的分散(Scat

原创 NIO——Buffer

一、Buffer 簡介  Java NIO 中的 Buffer 用於和 Channell 交互,像之前說的那樣,數據從 Channel 讀入到 Buffer,從 Buffer 寫入到 Channel。  Buffer 本質上是一塊

原创 NIO——Selector

 Java NIO 的 Selector 組件可以監測一個或多個 Channel 實例,可以監聽到哪一個 Channel 爲讀寫或者其他操作做好了準備。這樣一個單線程就可以管理多個 Channel,相當於管理了多個網絡連接。  1

原创 NIO——Channel

一、Channel 簡介  Java NIO 中的 Channel 有些類似於 Stream,但又有些不同: 一個 Channel 即可讀又可寫,而 Stream 通常只能單向操作,即流分爲輸入流(只能讀)和輸出流(只能寫) C

原创 NIO——通道Channel

一、IO的進化史  ①起初系統的IO由CPU負責,在IO頻繁的時候CPU資源不能被充分利用  ②後來,有了DMA(直接存儲器),當有IO操作時DMA先向CPU申請權限,DMA申請到權限後全權負責IO操作,這樣CPU就可以去完成其

原创 Mysql——分區

1、分區的概念:如果一張表的數據量太大的話,那麼myd(表數據)、myi(索引數據)就會變的很大,查找數據就會變的很慢,這個時候我們可以利用mysql的分區功能,在物理上將這一張表對應的三個文件,分割成許多個小塊。這樣我們查找一條