原创 設計模式(面試)

1. 什麼是設計模式?     設計模式是前人在工作過程中總結的一套有效的編碼方案,是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。 2. 爲什麼要用設計模式?   衆所周知JAVA不像其他語言那麼靈活,特別死板的限制

原创 JVM和類加載過程

1. JVM內存和操作系統內存關係        操作系統內存也有堆和棧。操作系統的棧由操作系統自己管理。操作系統的堆是開放的。        JVM的內存是操作系統堆中的一塊區域。        對於操作系統來說,jvm只是一個普通的程

原创 手寫服務器系列(5) 簡單服務器優化——複雜請求的支持

     上一篇 博客中我們實現了一個簡單的服務器,真是極其簡單。實際場景中當然不可能只是訪問一下http://localhost:8080/。本篇博客,我們的目的是優化簡單服務器,讓它支持複雜請求。 1. 優化HttpRequest  

原创 幾道常見的面試題

1. 一個類的方法執行順序 public class A {     static {         System.out.println("靜態方法執行啦");     }     {         System.out.pr

原创 探索單元測試系列(2) Junit在Spring中使用

編寫被測試文件 1.Controller類 package com.example.demo.junit.spring.controller; import com.example.demo.junit.spring.service.

原创 手寫服務器系列(2) 幾種TCP編程接收數據的寫法

緊接着上一篇博客,我們這邊博客來看看tcp編程接收數據的幾種寫法。 1.InputStream寫法(上篇博客的寫法): package com.zlyx.easy.server; import java.io.IOException;

原创 vmware 安裝 win10

1. 下載安裝vm軟件,地址:VM下載 2. 下載win10 iso鏡像文件    (1) 下載win10安裝工具:win10安裝工具下載    (2) 下載完成後,選擇給其他電腦安裝ios文件即可得到win10的iso鏡像文件(考驗網速

原创 隨機面試題

1. 怎麼保證MQ消息必達? (1)客戶端和服務端都提供回調接口,一旦收到數據消息就發送確認消息; (2)客戶端對消息編號,一旦異常服務端及時通知客戶端重發; 2. 怎麼用Redis做分佈式鎖?  (1) 用setNX(key,value

原创 探索單元測試系列(6) Mock總結

概念     Mock其實是一種思想,一種單元測試的解決方案。     Mock出現之前,我們的單元測試工作量很大,而且往往會受限於開發進程。     Mock很好地解決了局部單元測試的問題,提出了預期返回值並模擬的概念。     目前M

原创 如何應對互聯網模式下的高併發場景(面試)

1. 架構升級+負載均衡        用“大中臺,小前臺”的新架構戰略來應對日益龐大和複雜的需求,將核心業務處理和數據處理轉移到大中臺,小前臺只做定製化的業務處理。同時,對服務進行必要的負載均衡來緩解單個服務的壓力。 2. 異步IO  

原创 事務

1. Mysql事務的基本要素    原子性、一致性、隔離性、持久性 2 .Mysql事務的併發問題   髒讀:事務A讀取了事務B提交的數據,然後事務B回滾,事務A得到的就是髒數據;   不可重複讀:事務A和事務B同時多次讀取同一條數據,

原创 線程池

1. 什麼是線程池?     顧名思義,存放線程的一個池子。 2.怎麼設計一個線程池 (1) 新建一個數組,創建一堆線程存放進去; (2)用線程池中的線程來處理任務,處理完成後回收線程而不是銷燬線程; (3)設計等待隊列來存放來不及處理的

原创 JDK lock鎖(面試)

1. lock鎖家族關係圖 (1)lock接口最常見的實現有ReadLock、WriteLock,ReentrantLock三個,其中ReadLock、WriteLock是ReentrantReadWriteLock內部的靜態類。 (2

原创 JDK併發包(面試)

JDK併發包下主要新增了兩個內容,一個是關於線程和鎖的同步控制工具,一個是併發容器。  面試時問的比較多的是信號量、倒數計數器、ConcurrentHashMap。 (1)信號量(Semaphore) 信號量可以用來限流。Semapho

原创 Dubbo(面試)

1. 分佈式事務 場景:服務A同時調用服務B和服務C,要求服務B和服務C同時成功時操作才成功。如果其中一個失敗,需要進行事務性回滾。 方案: (1)分階段提交:引入一個全局事務管理模塊,將服務B和服務C的事務分爲parpare和commi