原创 算法練習bat----------07排序的穩定性和彙總

穩定性:假定有3,1,2,3,1,4,2,1 那麼排完序就是1,1,1,2,2,3,3,4,那麼穩定性就是能否保證上面的第一個3和第二個3,在排完序後先相對位置不變 冒泡排序(能,O(N^2)):只要保證相同不交換就能保證穩定,例如:7,

原创 方法區和常量池

方法區和常量池 2017年11月15日 21:20:11 閱讀數:7262更多 個人分類: Java虛擬機 版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wangbiao007/arti

原创 算法練習bat----------04荷蘭國旗問題

給定一個無序數字,小於num放左邊,等於num放中間,大於num放右邊,要求空間複製度O(1),時間複雜度O(n) 實際上就三種情況:(使用less表示數組-1,more表示數組length,cur表示當前位置) ① 當數字小於num,l

原创 數據庫查詢出來的時間在前端顯示成了一串數字?解決方法:

時間格式註解:@Temporal(TemporalType.XXXX)時間格式化hibernate jpa註解   時間格式註解:@Temporal(TemporalType.XXXX)時間格式化hibernate jpa註解 Tempo

原创 ConcurrentHashMap之實現細節

鎖分離 (Lock Stripping)   ConcurrentHashMap允許多個修改操作併發進行,其關鍵在於使用了鎖分離技術。它使用了多個鎖來控制對hash表的不同部分進行的修改。ConcurrentHashMap內部使用段(S

原创 08互斥鎖,讀寫鎖和條件

java.util.concurrent.locks包提供了鎖和等待條件的接口和類, 可用於替代JDK1.5之前的同步(synchronized)和監視器機制(主要是Object類的wait(), notify(), notifyAll(

原创 04徹底理解Java的Future模式

啓動一個FutureTask,將耗時操作放在Callable裏面進行操作(這樣不會堵塞線程,Callable相當於runnable,不過是有返回值的) 先上一個場景:假如你突然想做飯,但是沒有廚具,也沒有食材。網上購買廚具比較方便,食材去

原创 Java 如何有效地避免OOM:善於利用軟引用和弱引用

Java 如何有效地避免OOM:善於利用軟引用和弱引用   想必很多朋友對OOM(OutOfMemory)這個錯誤不會陌生,而當遇到這種錯誤如何有效地解決這個問題呢?今天我們就來說一下如何利用軟引用和弱引用來有效地解決程序中出現的OOM問

原创 jdk1.7和1.8前後的HashMap,HashTable和ConcurrentHashMap的比較

你知道HashMap中hash方法的具體實現嗎?你知道HashTable、ConcurrentHashMap中hash方法的實現以及原因嗎?你知道爲什麼要這麼實現嗎?你知道爲什麼JDK 7和JDK 8中hash方法實現的不同以及區別嗎?如

原创 Java運算符

1.>>,>>>和<<< <<      :     左移運算符,num << 1,相當於num乘以2 >>      :     右移運算符,num >> 1,相當於num除以2 >>>    :     無符號右移,忽略符號位,空位都

原创 ThreadLoacl

實際的通過ThreadLocal創建的副本是存儲在每個線程自己的threadLocals中的; 首先,ThreadLocal 不是用來解決共享對象的多線程訪問問題的,一般情況下,通過ThreadLocal.set() 到線程中的對象是該線

原创 Java內存區域

程序計數器:  線程私有的,他是一塊較小的內存空間,他相當字節碼於解釋器中的指針,也就是該內存存放下一條即將執行指令的地址。字節碼解釋器就是通過改變 這個計數器的值來選擇下一條即將執行的指令。每一個線程都有一個程序計數器(內存),這樣

原创 06Two Phase Termination設計模式

在進行線程兩端終結的時候需要考慮: 第二階段的中止保證安全性,比如設計對貢獻資源的操作 要百分百地確保線程結束,假設在第二個階段出現了死循環,堵塞等異常導致無法結束 對資源的釋放時間要控制在一個可控的範圍內  

原创 03不可變對象設計模式

在多線程中,我們通常通過給變量加鎖來達到數據一致性,但也可以通過將類設計成不可變類來解決 每次添加的時候,生成一個對象,對裏面不可變的變量進行賦值, 與String類似,String s1="Hello";s1=s1+" world"

原创 09ThreadLocal在上下文中的應用

ThreadLocal存儲的內容在當前線程自己的ThreadLocalMap中,當線程銷燬,數據自然被釋放 實現一個簡單的線程上下文 每個線程若想使用,直接使用get()獲取對應的實例,然後調用相應的方法就行,不會影響其他線程調用實例