原创 Java多線程-CompletionService
一、 CompletionService介紹 CompletionService是jdk1.5用來取代Future效率不高的, CompletionService的功能是以異步的方式一邊生產新的任務,一邊處理已完成任務的結果,
原创 如何線程安全地遍歷List
一、ArrayList遍歷問題 1.當只有一個線程迭代遍歷ArrayList時:邊遍歷邊修改List元素會出現ConcurrenMdifyedException 正確方法可以採用迭代器遍歷迭代器修改元素 2.當多個線程訪問Ar
原创 jvm調優常用參數設計值
一、堆內存分佈 1.新生代:每次新生代的垃圾回收(又稱Minor GC)後只有少量對象存活,所以選用複製算法(有Eden區,兩個Survivor區), 新生代內存按照8:1:1的比例分爲一個eden區和兩個survivor(survivo
原创 linux如何使用jstack分析線程狀態
在高併發,多線程環境下的java程序經常需要分析線程狀態,本本是一個分析步驟無具體講解(具體命令可自行google學習) 一般流程: 1.使用 -l jps 查看有哪些java程序在運行 2.使用 top 查看步驟1中進程號(pid或者v
原创 Jprofiler
一、JProfiler是什麼 JProfiler是由ej-technologies GmbH公司開發的一款性能瓶頸分析工具,非常強大,分析cpu使用內存使用,虛擬機垃圾回收情 況等等 二、破解安裝 破解版本:
原创 linux下幾個監控工具
一、工具名稱 jps jstat jinfo jmap jhat jstack 五種 二、用法 1).jps
原创 關於for循環
一直以爲已經真正理解透徹for循環了結果取因爲用了一個全局的變量導致出錯,下面用兩個例子來演示吧 代碼示例一: public class TestFor { public static void main(String
原创 阻塞隊列
關於阻塞隊列主要用於java多線程消費者-生產者的模型,阻塞隊列是線程安全的 ,put 、get等操作都加了鎖,當阻塞隊列爲空時整個隊列會阻塞,直到有數據位置,纔可以取出。 阻塞隊列中的方法 VS 非阻塞隊列中的方法 1.非
原创 netty(二)LengthFieldBasedFrameDecoder解碼器的詳情
1.關於LengthFieldBasedFrameDecoder LengthFieldBasedFrameDecoder是netty解決拆包粘包問題的一個重要的類,主要結構就是header+body結構。我們只需要傳入正確的
原创 netty(三)LengthFieldBasedFrameDecoder解碼器的使用例子
1.需求 :發送數據接收數據個格式 /** * 發送數據格式 接收數據的格式 * +---2----+--2--+---
原创 java8 Lamba表達式
首先弄清函數式接口與Lamba表達式關係?(紅色部分概念自行google) 只有有了函數式接口纔可以寫lamba表達式。 一、java內置的四種函數式接口 1. Predicate < T >接口是隻有一個參數的返回布爾類型
原创 netty入門(一)
1.關於netty可以自行google,我先概述一下netty入門helloword 只要按步驟寫 入門後就可自己專研源碼 用maven構建: <dependency> <groupId>io.netty</group
原创 leetcode關於位操作算法題總結
本文將根據題目總結常用的位操作常用的解決算法問題的技巧 詳見:https://blog.csdn.net/huanghanqian/article/details/79343855
原创 BlockingQueue在多線程中運用
參考:https://www.cnblogs.com/fnlingnzb-learner/p/9784776.html
原创 註解
註解是什麼? 註解如同標籤,初學者可以這樣理解註解:想像代碼具有生命,註解就是對於代碼中某些鮮活個體的貼上去的一張標籤。簡化來講,註解如同一張標籤。 元註解是什麼意思呢? 元註解是可以註解到註解上的註解,或