原创 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

原创 註解

註解是什麼?         註解如同標籤,初學者可以這樣理解註解:想像代碼具有生命,註解就是對於代碼中某些鮮活個體的貼上去的一張標籤。簡化來講,註解如同一張標籤。 元註解是什麼意思呢?         元註解是可以註解到註解上的註解,或