-
Java 8 - Tutorial
Overview Java8於2014年初發佈,此次發佈是在版本歷史中很重要的一次大幅度更新, 僅從編程語言特性來說,Java8絕對是一次革命性的改進,以前的聲明式編程,如今吸收了函數式編程語言的特點,提升了Java語言的表達力、簡潔性。 我們程序員要與時俱進!不要怕改變,跳出舒適區,好好地擁抱新技術、新思想吧! Lambda Expression Streams Met...
-
Java - ThreadPoolExecutor
ThreadPoolExecutor 在java.uitl.concurrent.ThreadPoolExecutor類是Executor框架中最核心的類。 先來看頂部注釋: Ref: 线程池你真不来了解一下吗? - Java3y - 博客园 構造方法與參數說明 ThreadPoolExecutor有四個構造方法,前三個都是基於第四個實現。 第四個構造方法定義如下: 七...
-
Java - Thread Callable & Future
Callable & Future There are two wats of creating threads – one by extending the Thread class and other by creating a thread with a Runnable. However, one feature lacking in Runnable is tha...
-
Java - Thread Executor 框架
Executor Executor框架是Java5之後引進的,存在於java.util.concurrent包下, 雖然Executor只是個簡單的接口,卻為一個靈活而且強大的框架創造了基礎,並且是【線程池】的基礎。 解耦的機制 -> Executor提供了一種將【任務提交】與【任務執行】分離開來的機制(解耦) TaskExecutionWebServer使用Executor代...
-
Java - Executors 線程池
Thread Pool in Oracle tutorial 【Thread Pools (The Java™ Tutorials > Essential Classes > Concurrency)】 Most of the executor implementations in java.util.cuncurrent use thread pools, which co...
-
Java - Thread Task Execution 任務執行
任務(Tasks) 大多數並發應用程序是圍繞執行任務(task)進行管理的。任務時邏輯上的工作單元,線程是使任務異步執行的機制。 任務(task)的定義: 是抽象、離散的工作單元(unit of work) 是獨立的工作,它的工作並不依賴其他任務的狀態、結果或邊界效應(side effect) 任務的邊界(task boundaries): Web服務器 郵件服務...
-
Java - Thread Life Cycle method 線程生命週期方法
Overview Reference wait and notify() Methods in Java - Baeldung The Thread.join() Method in Java - Baeldung
-
Java - Thread Life Cycle 線程生命週期
Overview In the Java language, multithreading is driven by the core concept of a Thread. During their lifecycle, threads go through various states: Ref: Life Cycle of a Thread in Java - Baeldu...
-
Clean Code 無暇的程式碼- Ch8 邊界
重點:如何花最少時間學習與使用第三方API 有以下方式可供快速使用: 封裝泛型細節,使用者只要知道我需要的結果就好,不需要知道到底傳入什麼泛型 apache log4j 單元測試(unit test) 第一點說明: public class Sensors { private Map sensors = new HashMap(); public Se...
-
Clean Code 無暇的程式碼- Ch7 異常處理
Use try-catch 重點總結: 使用異常處理,而非錯誤碼 在最外層定義好try-catch,讓調用者決定如何處理異常 使用unchecked異常,原因是維持封閉性原則 提供異常的詳細資訊 打包被調用者,封裝異常 第四點詳細說明: 這是沒修飾過的一般代碼: LDAP ldap = new LDAP("username", "password"); try...
-
Clean Code 無暇的程式碼- Ch6 對象及數據結構
Summary 具體化的類別:曝露行為,隱藏數據 抽象化的接口:曝露數據,隱藏行為 Allow users to manipulate the essence of the data, without having to know the implementation 允许用户操纵数据的本质,而不必了解实现 簡單來說,利用面向對象以及三個特性(封裝、繼承、多態...
-
Clean Code 無暇的程式碼- Ch5 編排
前言 看完這章節,說真的我以前沒有那麼注意排版,因為我排版都用編譯器(IDEA)自動排版,個人覺得IDEA的排版就很好看了,而且很方便。 再來如果IDEA排版後不足之處我會自己【依感覺】調整,不過我覺得我的美觀感都滿有用的,可能我是文組科系,首先就天天看排版,也在學排版, 本身就對排版好壞很敏感。 (其實也不是絕對,看我同學排版跟屎一樣,就知道這也是跟天賦有關~) 廢話不多說,這章節沒...
-
Clean Code 無暇的程式碼- Ch4 註解
這章節的重點就在目錄: 註解原則: 【註解無法彌補糟糕的代碼】 【用好的程序表達你的本意】 好的註解: README: 每個文件開頭的標準註解 // Copyright (c) 2019 by ~ // Released ~ Lincense version 2 資訊型註解:對一些方法的額外註解(例如終止遞歸的條件是啥,或是這段代碼在做啥),當然如果用...
-
Clean Code 無暇的程式碼- Ch3 函數
【每個函數只有一層抽象概念】 抽象概念高層次:getHTML(); 抽象概念中層次:String pagePathName = PathParser.render(pagePath); 抽象概念低層次:string.append("\n") 一個函數擁有混合層次的抽象概念,總是令人困惑,無法分辨某個表達式(expression)是一個基本概念還是一個細節。 變量與參數 ...
-
Clean Code 無暇的程式碼- Ch2 有意義的命名
有意義名稱 Bad: int priceTable[] = new int[16]; Good: static final int PRICE_TABLE_MAX = 16; int price Table[] = new int[PRICE_TABLE_MAX]; 原則上 0 不用於魔法值,這是因為 0 經常被用作數組的最小下標或者變量初始化的預設值。 原文網址:https...
-
Clean Code 無暇的程式碼- Ch1 無暇的程式碼
Clean Code 無暇的程式碼:敏捷軟體開發技巧守則 作者: Robert C. Martin 我的前言 期待已久的書,一直很想閱讀,最近買了這本書,終於有機會有時間拜讀了。 在寫項目的時候,常常覺得自己寫的程序不夠乾淨、整潔、清爽,有很多冗贅的代碼。一來是時間上時程內的產出,當然最主要是自己本身實力不足、經驗不夠。 許多時候為了快速開發,選擇便宜行事的方式,代碼質量就被剝奪...
-
GoodBye 2019, Hello 2020
道別2019,展望2020! 2020年来啦!祝大家新年快乐~ by 初音未来_Crypton 大家元旦快乐!!!«٩(´ ꒳ `)۶» by 新科娘Official
-
Java - Livelock 活鎖
Livelock A thread often acts in response to the action of another thread. If the other thread’s action is also response to the action of another thread, then livelock may result. As with deadl...
-
Java - Thread Starvation 飢餓
Starvation and Livelock Starvation and livelock are much less common a problem than deadlock, but are still problems that every designer of concurrent software is likely to encounter. Ref: ...
-
Java - Thread Deadlock 死鎖
死鎖 【Java并发编程实战】頁205: 當一個線程永遠佔有一個鎖,而其他線程嘗試去獲得這個鎖,那麼它們將永遠被阻塞。 Deadlock (The Java™ Tutorials > Essential Classes > Concurrency) Deadlock describe a situation where two or more threa...