Time of Update: 2018-07-26
一、懶漢式單例模式,解決反射和還原序列化漏洞 package com.iter.devbox.singleton;import java.io.ObjectStreamException;import java.io.Serializable;/** * 懶漢式(如何防止反射和還原序列化漏洞) * @author Shearer * */public class SingletonDemo6 implements Serializable{// 類初始化時,不初始化這個對象(
Time of Update: 2018-07-26
測試線程死結,運行以下代碼: public class Test1 {private static Object o1 = new Object();private static Object o2 = new Object();public static void main(String[] args) {for( int i = 0;i<100;i++){new Thread(new Runnable() {@Overridepublic void run()
Time of Update: 2018-07-26
java並發線程的相關基礎知識 1. Synchronized方法和 Synchronized代碼塊和 wait(),notify()( wait,notify方法均屬於 Object類方法, 即任何類都具有該方法,至於 Thread類的其他方法都屬於其專屬方法,需要繼承 Thread類,或繼承 Runnable介面的,並建立 Thread執行個體來使用) (1
Time of Update: 2018-07-26
package the_five_session_B; import java.util.Scanner; /* 標題:分糖果 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲: 每個小朋友都把自己的糖果分一半給左手邊的孩子。 一輪分糖後,擁有奇數顆糖的孩子由老師補給1個糖果,從而變成偶數。
Time of Update: 2018-07-26
曆屆試題 分糖果 時間限制:1.0s 記憶體限制:256.0MB 問題描述 有n個小朋友圍坐成一圈。老師給每個小朋友隨機發偶數個糖果,然後進行下面的遊戲: 每個小朋友都把自己的糖果分一半給左手邊的孩子。
Time of Update: 2018-07-26
開源地址 https://github.com/a466350665/smart https://git.oschina.net/a466350665/smart QQ交流群:454343484(群內含各種工具和文檔下載) 簡述 Smart定位用當下最流行的SSM(SpringMVC + Spring +
Time of Update: 2018-07-26
1. 高並發最佳化分析 關於並發 並發性上不去是因為當多個線程同時訪問一行資料時,產生了事務,因此產生寫鎖,每當一個擷取了事務的線程把鎖釋放,另一個排隊線程才能拿到寫鎖,QPS(Query Per Second每秒查詢率)和事務執行的時間有密切關係,事務執行時間越短,並發性越高,這也是要將費時的I/O操作移出事務的原因。 在本項目中高並發發生在哪。 在上圖中,紅色的部分就表示會發生高並發的地方,綠色部分表示對於高並發沒有影響。
Time of Update: 2018-07-26
《Java線程池》:Executor生命週期 我們知道線程是有多種執行狀態的,同樣管理線程的線程池也有多種狀態。JVM會在所有線程(非後台daemon線程)全部終止後才退出,為了節省資源和有效釋放資源關閉一個線程池就顯得很重要。有時候無法正確的關閉線程池,將會阻止JVM的結束。 線程池Executor是非同步執行任務,因此任何時刻不能夠直接擷取提交的任務的狀態。這些任務有可能已經完成,也有可能正在執行或者還在排隊等待執行。因此關閉線程池可能出現一下幾種情況:
Time of Update: 2018-07-26
在日常工作中,有很多個物件,我們只需要一個。比如:線程池, 緩衝,註冊表等。如果製造出多個執行個體,就會導致許多問題,如程式行為異常,資源使用過量等。這就需要對對象的構建進行控制,使其只能產生一個對象。這就是本篇要講的設計模式——singleton(單例)。 單例模式的定義:確保只有一個類只有一個執行個體,並提供一個全域訪問點。 那麼,要如何?單例模式,使得一個類只能產生一個對象呢。請看下面的實現: public class Singleton {private
Time of Update: 2018-07-26
上次分享了java線程池的原理,這次對各種線程池從記憶體和cpu使用上進行分析,讓讀者清楚以後線程池的使用原理 和在實際項目中如何使用線程池和怎麼選取阻塞隊列 1.線程池不允許使用 Executors 去建立,而是通過 ThreadPoolExecutor 的方式,這樣的處理方式讓寫的同學更加明確線程池的運行規則,規避資源耗盡的風險。 說明: (1)使用newFixedThreadPool記憶體模型
Time of Update: 2018-07-26
根據網易雲課堂Java開發課程學習 - 裝飾模式介紹 裝飾模式以對客戶透明的方式動態給一個對象附加上更多的責任。換言之,客戶並不會感到對象在裝飾前後有什麼不同。裝飾模式可以在不使用創造更多子類的情況下,將對象的功能進行擴充(Java中的IO流就是用的這種模式)。 - 裝飾模式中的角色: 1. 抽象組件(Componet)角色:給出一個抽象介面,以規範準備接收附加責任的對象。 說白了 定義一個介面 2. 具體組件(ConcreteComponent)角色:定義一個將要接收附加責任的類
Time of Update: 2018-07-26
類變數、成員變數、局部變數 類變數(也叫靜態變數)是類中獨立於方法之外的變數,用static 修飾。(static表示“全域的”、“靜態”,用來修飾成員變數和成員方法,或靜態代碼塊(靜態代碼塊獨立於類成員,jvm載入類時會執行靜態代碼塊,每個代碼塊只執行一次,按順序執行))。 成員變數(也叫“執行個體變數”、“域”)也是類中獨立於方法之外的變數,不過沒有static修飾。 局部變數是類的方法中的變數。 看下面的虛擬碼說明: public
Time of Update: 2018-07-26
package com.http5;import java.io.InputStream;import org.apache.commons.io.IOUtils;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import
Time of Update: 2018-07-26
java工程師的職業規劃 http://blog.csdn.net/qq1175421841/article/details/51030092 Java工程師的職業生涯應該如何規劃? http://mt.sohu.com/20160909/n468059119.shtml Java工程師職業規劃 https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3
Time of Update: 2018-07-26
Java中的Atomic包使用指南 本文首發於並髮網,作者:方騰飛 引言 Java從JDK1.5開始提供了java.util.concurrent.atomic包,方便程式員在多線程環境下,無鎖的進行原子操作。原子變數的底層使用了處理器提供的原子指令,但是不同的CPU架構可能提供的原子指令不一樣,也有可能需要某種形式的內部鎖,所以該方法不能絕對保證線程不被阻塞。 Atomic包介紹
Time of Update: 2018-07-26
【1】 處級程式員:做一些靜態介面; 程式員:做一些增刪改查的小模組; 中級程式員:做邏輯較複雜的模組; 進階程式員:做核心模組; 專案經理:系統的整體架構; 部門經理:多項目的管理; 總裁:多部門以及企業的發展規劃; 【2】 如果剛畢業,就多花幾年積累經驗,不可能靠一門絕技吃遍天下,不要指望java 賺錢多還是c++ or .NET 賺錢多。太早。 積累經驗為主。積累設計,架構,測試,交流,管理,情商等多方面的經驗。然後再根據以後n年的積累做出決定。
Time of Update: 2018-07-26
單例類,也是將要序列化的類 package test;import java.io.Serializable;import java.util.Date;/** * 定義一個可序列化的單例類,單例實現方法是靜態內部類實現 同時為了在序列化後,再次還原序列化獲得對象還是單例模式。用readResolve方法 * 對於這個不是很懂。 * * @author cindy * */public class MyObject implements Serializable { /**
Time of Update: 2018-07-26
“選擇重於努力,方向重於能力。”很多職場人都缺乏藉助職業導師的職業智慧和職場經驗為自己撥開職場迷霧,導航職業方向的意識。鐘總監建議,有好像王敏這種職業困惑的職場人,最好向具有同行業職場經驗的職場導師尋求職業指導,藉助導師們的職業智慧和職場經驗讓自己少走彎路。 Java可以做傳統型應用程式、面向Internet的應用程式
Time of Update: 2018-07-26
刷微博時偶然看到 Lambda 的 HelloWorld 教程,覺得很酷炫。分享一下。 效果樣本 總體看起來效果就是代碼簡潔,如下 //之前的寫法btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("hello lambda"); ...
Time of Update: 2018-07-26
點擊上方“程式員小灰”,選擇“置頂公眾號” 有趣有內涵的文章第一時間送達。 本文轉載自公眾號 Hollis 一直以來程式員都給大家以高智商低情商,不懂得浪漫不會哄女生開心的形象。但是,我覺得程式員都是浪漫的。對於這種錯誤觀念,只能用一首歌來表達廣大程式員的心聲:程式員的好,只有他身邊的那個人才知道。。。 每個程式員都知道的一句話其實就是最美的情話:“Hello