-
MySQL - SQL Optimizing 優化
Optimization SQL Statements 確定SELECT字段而不是SELECT * 如果表具有許多字段和許多行,則這將查詢大量不需要的數據。 Inefficient: SELECT * FROM Customers Efficient: SELECT FirstName, LastName, Address FROM Customers 選擇更多字段以避免S...
-
MySQL - SQL Basic 基礎
Basic SQL命令: 不分大小寫(Case Insensitive) 關鍵字不可以分割成多行 MySQL單雙引號皆可,但其它database只接受單引號 常數(Literal):不變的數據,不儲存於數據庫內部 Ref: database design - Reason why oracle is case sensitive? - Stack Overflo...
-
Git - Commit Message Guidelines 提交消息準則
type (scope): subject BLANK LINE body BLANK LINE footer subject & body: First line is 50 characters or less Then a blank line Remaining text should be wrapped at 72 characters Ref:...
-
Hello World
Hello World! 請多指教! _(:з」∠)_
-
Java - JSON 用法
Jackson Parse to Java primitive type { "admin_email": "abc@123.com", "admin_password": "abc123" } 只能取得第一層的參數,無法取得第二層的參數 如果使用optString(),會視為null並轉換空字串;如果使用getString(),會視為null拋出Excep...
-
Java - Thread Publication and Escape 對象的發佈與逸出
對象的發佈與逸出 發佈(publishing):能夠被當前作用域外的代碼所使用 逸出(escape):一個對象在尚未準備好時就將它發佈 常見逸出的有下面幾種方式: 靜態域逸出 public修飾的get方法 方法參數傳遞 隱式的this 以下分別說明: 靜態域逸出 // public修飾的靜態域,相當於發佈了這個對象 // person對象也間...
-
Java - Thread Immutable Objects 對象不可改變性
Immutable Objects An object is considered immutable if its state cannot change after it is constructed. Maximum reliance on immutable objects is widely accepted as a sound strategy for creatin...
-
Java - Thread Synchronization 線程同步機制
同步是一種概念,用於防止多個線程輸入代碼的特定部分,這又是避免線程問題的最基本概念。 Synchronization is a concept to prevent more than one thread from entering a specific part of code, which is - again - the most basic concept of avoi...
-
Java - Thread Safe 線程安全
何謂線程安全 參考【Java并发编程实战】頁17 & 頁18的定義: 線程安全,一個類是線程安全的,是指在被多個線程訪問時,類可以持續進行正確的行為 當多個線程訪問一個類時,如果不用考慮這些線程在運行時環境下單調度和交替執行, 並且不需要額外的同步措施,及在調用方代碼不必作其他的協調,這個類的行為仍然是 正確的,那麼這個類就是線程安全的 換句話說,就是多線...
-
Java - Risks of Thread 線程的風險
線程安全危險 線程安全的問題是微妙且出乎意料的,因為在沒有進行充分同步的情況下,多線程中的各個操作的順序是不可預測的,也就是容易造成線程安全問題。 簡單舉個例子: 下面的程序在單線程中運行是沒有問題的。 import net.jcip.annotations.NotThreadSafe; @NotThreadSafe class UnSafeSequence { priva...
-
Java - Thread Objects 線程對象
Create and Starting a Thread extends Thread class ThreadExample extends Thread { public static void main(String[] args) { System.out.println("Inside : " + Thread.currentThread().getNa...
-
Java - Concurrency 並發編程
基礎知識 用多線程只有一個目的:更好的利用cpu資源。 更詳細的說: 系統需要多功能處理,開啟進程非常耗費資源 進程間的通訊很不方便,因為大多數操作系統不允許進程訪問其他進程的內存空間 因為多線程程序是亂序執行,每次執行的結果都是隨機的。因此,只有亂序執行的代碼才有必要設計為多線程。 關於線程的一些概念: cpu時間片:我們操作系統看起來可以多個程序同時運行,分...
-
Java - JVM 虛擬機
Java Virtual Machine (JVM) is a engine that provide runtime environment to drive the Java code or applications. It converts Java bytecode into machines language. JVM is a part of Java Run Environ...
-
Java - Memory Allocation 內存分配
Where storage lives Registers This is the fastest storage because it exists in a place different from that of other storage: inside the central processing unit (CPU). However, the number o...
-
Algorithms - Binary Search Tree 二叉查找樹
Binary tree full binary tree A binary tree in which each node has exactly zero or two children is called a full binary tree. In a full tree, there are no nodes with exactly one child. Tr...
-
Algorithms - 符號表
Symbol table 符號表(Symbol Table)是一個非常常見的數據結構,在現實生活中應用很多。它是一個key-value對應的結構。 在符號表中,存儲的是鍵值對。通過輸入key,查詢對應的value。 applications api 符號表的操作,就是基本的CRUD 這裡有幾個約定: key is not null if key is not ...
-
Algorithms - 排序
overview 算法複雜度: 十大经典排序算法(动图演示) - 一像素 - 博客园 相關概念: 穩定:如果a原本在b前面,而a=b,排序之後a仍然在b的前面。 不穩定:如果a原本在b的前面,而a=b,排序之後a可能會出現在b的後面 時間複雜度:see Algorithms Time Complexity 時間複雜度 空間複雜度:是...
-
Web App Server Deploy 部署
install Windows10 安裝maven在Windows10,需要兩樣:Java JDK、Maven。 下載並設定好Java JDK(7+) 在此處,選擇Binary zip archive 解壓縮到想放的位置 開始環境變數的設定(System variables) 需要的環境變數有: Variable name ...
-
Web App Server Deploy 部署
jar and war JAR: Java ARchive WAR: Web application ARchive From Java Tips: Difference between ear jar and war files: These files are simply zipped files using java jar tool. These file...
-
Web App Server Path 路徑關聯
System server Path 絕對路徑 相對路徑 定義 文件真正存在的路徑,以根目錄為基準,進行查找文件 文件相對存在的路徑,以當前文件為基準,進行查找...