原创 Java程序員必知——基於微服務的軟件架構模式

微服務(micro services)這個概念不是新概念,很多公司已經在實踐了,例如亞馬遜、Google、FaceBook,Alibaba。微服務架構模式 (Microservices Architecture Pattern)的目的是將大

原创 細細講述Java技術開發的那些不爲人知的規則

本文介紹的Java規則的說明分爲3個主要級別,中級是平時開發用的比較多的級別,在今後將陸續寫出其他的規則。遵守了這些規則可以提高程序的效率、使代碼又更好的可讀性等。 一、在finally方法裏關掉input或者output資源 方法體裏面

原创 Java併發編程:線程及同步的性能——線程池

線程池和ThreadPoolExecutors 雖然在程序中可以直接使用Thread類型來進行線程操作,但是更多的情況是使用線程池,尤其是在Java EE應用服務器中,一般會使用若干個線程池來處理來自客戶端的請求。Java中對於線程池的支

原创 新一代分佈式任務調度框架:噹噹elastic-job開源項目的10項特性

一、爲什麼需要作業(定時任務)? 作業即定時任務。一般來說,系統可使用消息傳遞代替部分使用作業的場景。兩者確有相似之處。可互相替換的場景,如隊列表。將待處理的數據放入隊列表,然後使用頻率極短的定時任務拉取隊列表的數據並處理。這種情況使用消

原创 如何在JAVA中比較兩個String對象

問題 最近寫程序的時候,遇到了需要比較兩個 String 對象是否相等的情況,我習慣性的寫了形如if(a == "a"){}的語句,IDEA 跳出警告,內容如下: String values are compared using '==',

原创 Java程序員注意——審查Java代碼的六種常見錯誤

代碼審查是消滅Bug最重要的方法之一,這些審查在大多數時候都特別奏效。由於代碼審查本身所針對的對象,就是俯瞰整個代碼在測試過程中的問題和Bug。並且,代碼審查對消除一些特別細節的錯誤大有裨益,尤其是那些能夠容易在閱讀代碼的時候發現的錯誤,這

原创 Java程序員必備——Tomcat配置技巧Top10

一、配置系統管理(Admin Web Application) 大多數商業化的J2EE服務器都提供一個功能強大的管理界面,且大都採用易於理解的Web應用界面。Tomcat按照自己的方式,同樣提供一個成熟的管理工具,並且絲毫不遜於那些商業化

原创 Java程序員必須掌握Spring XML配置的12個技巧

Spring是一個強有力的Java程序框架,其被廣泛應用於Java的程序中。它用POJO提供了企業級服務。Spring利用依賴注入可以獲得簡單而有效的測試能力。Spring beans,依賴關係,以及服務所需要的bean都將在配置文件中予以

原创 Java程序員必須要掌握的13個集合類操作優化

本文首先針對 Java 集合接口進行了一些介紹,並對這些接口的實現類進行詳細描述,包括 LinkedList、ArrayList、Vector、Stack、Hashtable、HashMap、WeakHashMap 等,然後對一些實現類的實

原创 Java程序員編程性能優化必備的34個小技巧

1.儘量在合適的場合使用單例 使用單例可以減輕加載的負擔,縮短加載的時間,提高加載的效率,但並不是所有地方都適用於單例,簡單來說,單例主要適用於以下三個方面: 控制資源的使用,通過線程同步來控制資源的併發訪問; 控制實例的產生,以達到節

原创 阿里後端Java面試題:啓動線程是start()還是run()?爲什麼?

面試官:請問啓動線程是start()還是run()方法,能談談嗎? 應聘者:start()方法 當用start()開始一個線程後,線程就進入就緒狀態,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行。但是這並不意味着

原创 技術迭代日益快速的時代下,技術人如何自處?

科技發展的迅速是一件令人興奮的事情。但如果站在一個技術開發者的角度去看的話,反而是一件心累的事兒,因爲想要跟上科技更新的腳步並不是一件容易的事。所以作爲技術人,我們是緊跟技術發展的潮流還是深挖其中的一項技術,必然就會牽扯到我們的一個職業規

原创 面試的時候怎麼和面試官講解你對MySQL索引的理解

一、索引是什麼? 索引是幫助MySQL高效獲取數據的數據結構。 二、索引能幹什麼? 索引非常關鍵,尤其是當表中的數據量越來越大時,索引對於性能的影響愈發重要。索引能夠輕易將查詢性能提高好幾個數量級,總的來說就是可以明顯的提高查詢效率。 三

原创 十分鐘深入理解HashMap源碼

十分鐘就要深入理解HashMap源碼,看完你能懂?我覺得得再多看一分鐘,才能完全掌握! 終於來到比較複雜的HashMap,由於內部的變量,內部類,方法都比較多,沒法像ArrayList那樣直接平鋪開來說,因此準備從幾個具體的角度來切入。

原创 聯想高級Java研發面經+面試題:Spring+多線程+MySQL+設計模式

上個禮拜,之前的一個同事突然聯繫我說他去面了聯想的JAVA開發工程師,想分享一下面試經歷和麪試題。我當時就拍板說,好啊! 然後就整理了一下,寫了這篇文章;和大家分享一下這次面試經驗和麪試題。 薪資還可以啊,年薪40W+啊!多少人的夢想啊