優化代碼能夠減少代碼的體積,提升代碼運行的效率。
java
小白哥帶你打通任督二脈
程序員
應用情景 前一陣有個作反抄襲檢測的小夥伴問了我一個問題。 --- 在多線程裏就是有個變量,我須要讀取它來判斷是否給它寫入一些信息。 打算加鎖,可是若是讀取時候加入readlock,寫入時候加入writelock, 這樣作可能讀寫不一樣步。可是若是一塊兒加lock效果就跟synchr…
面試
Java 線程內存模型, 線程、工做內存、主內存
算法
本文想要介紹的,jOOR(Java Object Oriented Reflection),它是一個對 java.lang.reflect 包的簡單封裝,使得咱們使用起來更加直接和方便。
數據庫
這篇文章是做者讀完深刻了解 java 虛擬機的讀書筆記,能夠做爲學習 java 虛擬機的路線。
編程
做者的大廠面試經驗分享以及面試時應該準備的哪些知識點。
後端
要面試的趕忙看吧
安全
概述 廣義的堆外內存 說到堆外內存,那你們確定想到堆內內存,這也是咱們你們接觸最多的,咱們在 jvm 參數裏一般設置 - Xmx 來指定咱們的堆的最大值,不過這還不是咱們理解的 Java 堆,-Xmx 的值是新生代和老生代的和的最大值,咱們在 jvm 參數裏一般還會加一個參數 - XX:MaxPermSize 來指定持久
性能優化
申明:本文首發於 詳細深刻分析 ClassLoader 工做機制 ,若有轉載,請務必註明原出處便可,謝謝配合。 詳細深刻分析 Java ClassLoader 工做機制 什麼是 ClassLoader ? 你們都知道,當咱們寫好一個 Java 程序以後,不是管是 C/S 仍是 …
微信
???關注微信公衆號:【芋艿的後端小屋】有福利: RocketMQ / MyCAT / Sharding-JDBC 全部源碼分析文章列表 RocketMQ / MyCAT / Sharding-JDBC 中文註釋源碼 GitHub 地址 您對於源碼的疑問每條留言都將獲得認…
《java併發編程系統與模型》已出版,真心但願你們能支持這本書,您的支持就是我最大的動力! AbstractExecutorService: 抽象的執行器。ArrayBlockingQueue: 一個有邊界的先進先出的阻塞隊列BlockingDeque: 接口描述,阻塞雙端隊列…
Java 中的 FutureTask 做爲可異步執行任務並可獲取執行結果而被你們所熟知。一般可使用 future.get() 來獲取線程的執行結果,在線程執行結束以前,get 方法會一直阻塞狀態,直到 call() 返回,其優勢是使用線程異步執行任務的狀況下還能夠獲取到線程的執行結果,可是 FutureTask 的以上功能倒是依靠經過一個叫 AbstractQueuedSynchronizer 的類來實現,至少在 JDK 1.五、JDK1.6 版本是這樣的(從 1.7 開始 FutureTask 已經被其做者 Doug Lea 修改成再也不依賴 AbstractQueuedSynchronizer 實現了,這是 JDK1.7 的變化之一)。
程序員必備利器——Java程序性能分析工具Java VisualVM(Visual GC) VisualVM 是一款免費的集成了多個JDK 命令行工具的可視化工具,它能爲您提供強大的分析能力,對 Java 應用程序作性能分析和調優。這些功能包括生成和分析海量數據、跟蹤內存泄漏…
JVM 是 Java Virtual Machine(Java虛擬機)的縮寫,它是一種規範,HotSpot VM是其最主流的實現(其餘實現),一般咱們討論JVM若是沒有特地說明是何種實現,便指的是HotSpot VM。JVM也並不是僅支持Java語言,任何可編譯爲字節碼的編程語言能能夠運行在JVM上,例如前不久谷歌在 I/O 2017宣佈將做爲 Android 開發 First-Class 語言的 Kotlin。JVM定義了一些運行時數據區以便執行程序時候所用,一部分數據區在虛擬機啓動時建立,在虛擬機退出時銷燬,另一些數據區是針對每一個線程的,這些數據區是和線程的生命週期相同,即隨着線程的建立而建立銷燬而銷燬。理解這些區域對於進一步理解JVM和編寫併發程序是很是重要的,本文將結合做者本身的理解對各區域作一粗淺的解析,不對之處,望指出,共勉。
Doug Lea 前段時間公司裏有個項目須要進行重構,目標是提升吞吐量和可用性,在這個過程當中對原有的線程模型和處理邏輯進行了修改,須要 發現有不少基礎的多線程的知識已經模糊不清,如底層線程的運行狀況、現有的線程池的策略和邏輯、池中線程的健康情況的監控等,此次從新回顧了一下,其中涉…
咱們在 67 節和 68 節實現了線程的一些基本協做機制,那是利用基本的 wait/notify 實現的,咱們提到,Java 併發包中有一些專門的同步工具類,本節,咱們就來探討它們。 咱們要探討的工具類包括: 讀寫鎖 ReentrantReadWriteLock 信號量 Semaphore 倒計…
一些有關代碼優化的小細節,一個一個細小的優化點累積起來,對於代碼的運行效率絕對是有提高的。
本節探討定時任務,定時任務的應用場景是很是多的,好比: 鬧鐘程序或任務提醒,指定時間叫牀或在指定日期提醒還信用卡 監控系統,每隔一段時間採集下系統數據,對異常事件報警 統計系統,通常凌晨必定時間統計昨日的各類數據指標 在 Java 中,有兩種方式實現定時任務: 使用 java.uti…
說明 有關java併發能夠看這裏:https://yuedu.baidu.com/ebook... 要學習Java或者任意一門技術,我以爲最好的是從官網的資料開始學習。官網所給出的資料老是最權威最知道來…
本來地址:Java多線程乾貨系列—(四)volatile關鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關鍵字,volatile這個關鍵字可能不少朋友都據說過,或許也都用過。在Java 5以前,它是一個備受爭議的關鍵字,由於在程序中使用它每每…
Garbage First Collector, 簡稱 G1 Collector,是 HotspotJDK1.7 後提供的面向大內存 (Heap 區數 G 到數 10G)、多核系統的收集器,可以實現軟停頓目標收集而且具備高吞吐量, 具備更可預測的停頓時間。一些基本的垃圾收集的概念和術語能夠參考我以前的一篇理解 GC(垃圾回收算法和原理)。