原创 java併發編程實戰閱讀筆記(第三章)對象的共享

如何共享和發佈對象,從而使他們能夠安全地由多個線程訪問。 可見性 可見性:   可見性是一種複雜的屬性,因爲可見性中的錯誤總是會違揹我們的直覺。通常,我們無法確保執行讀操作的線程能適時地看到其他線程寫入的值,有時甚至是根本不可能

原创 JVM優化--優化gc

什麼時候需要排查gc問題 我們遇到什麼樣的現象會懷疑gc有問題,進而優化呢?gc問題大體上可以分爲兩類:內存溢出、gc不健康。 內存溢出一般會藉助dump文件進行查看,設置jvm參數-XX:+HeapDumpOnOutOfMemo

原创 設計模式之工廠模式

介紹 意圖: 定義一個創建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創建過程延遲到子類進行。 主要解決: 主要解決接口選擇的問題。 何時使用: 我們明確地計劃不同條件下創建不同實例時。 如何解決: 讓其子類實現工

原创 設計模式之代理模式

代理模式 在代理模式(Proxy Pattern)中,一個類代表另一個類的功能。這種類型的設計模式屬於結構型模式。 在代理模式中,我們創建具有現有對象的對象,以便向外界提供功能接口。 介紹 意圖:爲其他對象提供一種代理以控制

原创 設計模式之適配器模式

設計模式之適配器模式 功能: 將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。 適用場景: 1、已經存在的類的接口不符合我們的需求; 2、創建一個可以複用的類

原创 設計模式之抽象工廠模式

http://lavasoft.blog.51cto.com/62575/11674/ 1.3 抽象工廠(Abstract Factory)模式 抽象工廠模式可以向客戶端提供一個接口,使得客戶端在不必指定產品具體類型的

原创 設計模式之橋接模式

設計模式之橋接模式 特點   將抽象部分與實現部分分離,使他們都可以獨立地進行變化。爲了達到讓抽象部分和實現部分獨立變化的目的,抽象部分會擁有實現部分的接口對象,有了實現部分的接口對象之後,就能夠通過這個接口來調用具體實現部分的功

原创 java併發編程實戰閱讀筆記(第二章)線程安全性

什麼是線程安全性 當多個線程訪問某個類時,這個類始終都能表現出正確的行爲,那麼就稱這個類是線程安全的。線程安全性最核心的概念是正確性。 原子變量:多線程中,執行將計數器+1這樣的操作,容易產生競態條件,可以使用原子變量(Atom

原创 java併發編程實戰閱讀筆記(第四章)對象的組合

一、設計線程安全的類 在設計線程安全類的過程中,需要包含三個步驟: 1)找出構成對象狀態的所有變量。 2)找出約束狀態變量的不變形條件。 3)建立對象狀態的併發訪問管理策略。 對象的域:是指對象中的變量。 對象的狀態:如果

原创 設計模式之策略模式

意圖:定義一系列的算法,把它們一個個封裝起來, 並且使它們可相互替換。 主要解決:在有多種算法相似的情況下,使用 if…else 所帶來的複雜和難以維護。 何時使用:一個系統有許多許多類,而區分它們的只是他們直接的行爲。 如

原创 設計模式之外觀模式

外觀模式 外觀模式(Facade Pattern)隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的接口。這種類型的設計模式屬於結構型模式,它向現有的系統添加一個接口,來隱藏系統的複雜性。 這種模式涉及到一個單一的類,該

原创 RocketMQ問答

文章目錄一、爲什麼要使用MQ?我們系統中如何使用MQ的?爲什麼用他?介紹一下RocketMQ。二、RocketMQ的架構是怎麼樣的?引申1:RocketMQ如何做到高可用?引申2:RocketMQ如何保證消息不被重複消費?引申3:

原创 遠程調試的正確姿勢

目前測試環境開啓了遠程調試,但是很多小夥伴不清楚遠程調試的正確姿勢,容易影響其他人對於測試環境的使用,更嚴重的可能會導致服務不可用。這裏講一下我們瞭解到的遠程調試正確姿勢,供小夥伴們參考。 一、遠程調試的開啓 1)Tomcat工程

原创 ES基礎入門基本查詢語句

最近由於項目中使用ES,對照《Elasticsearch: 權威指南》進行學習,將一些知識進行整理總結。 ##插入一條記錄 PUT /megacorp/employee/1 { "first_name" : "John",

原创 概要設計的必要性及寫法

1.1.文檔的重要性 很多小夥伴在需求、開發、測試階段不注重文檔,認爲這耽誤時間、畫蛇添足。實際上文檔對於軟件行業是十分重要的。軟件的定義:軟件是包括程序、數據及其相關文檔的完整集合。 從這個定義中我們能夠體會到文檔的重要性。很多