原创 關於TCP UDP HTTP HTTPS的問題

目錄 TCP的三次握手 下面就是TCP與UDP的區別: Http與Https的區別: 什麼是Http協議無狀態協議 怎麼解決Http協議無狀態協議? HTTP事務  HTTP1.0與Http1.1 的區別 : 常見的HTTP相應狀態碼 H

原创 zookeeper(2)ZAB 協議分析

目錄 前言 Atomic broadcast protocol 問題的提出 ZAB 的四個階段 協議實現 Fast Leader Election Recovery Phase (恢復階段) 總結 前言 ZAB 協議是爲分佈式協調服務 Z

原创 構造方法和普通方法有什麼區別

與一般方法相比,構造方法的特點是: 1、構造函數的名稱總是和它的類名一致。 2、構造函數沒有返回值,即不可以爲它指定任何類型的返回值,包括void。 3、在構造函數的第一條語句中,可以調用同類的另一個構造函數或者父類的構造函數。 4、構造

原创 後端接口的冪等性

在微服務架構下,我們在完成一個訂單流程時經常遇到下面的場景: 一個訂單創建接口,第一次調用超時了,然後調用方重試了一次 在訂單創建時,我們需要去扣減庫存,這時接口發生了超時,調用方重試了一次 當這筆訂單開始支付,在支付請求發出之後,在服

原创 java簡單面試題

一個".java"源文件中是否可以包括多個類(不是內部類)?有什麼限制? 可以有多個類,但只能有一個public的類,並且public的類名必須與文件名相一致。   switch語句能否作用在byte上,能否作用在long上,能否作用在S

原创 Java 中的異常和處理詳解

簡介程序運行時,發生的不被期望的事件,它阻止了程序按照程序員的預期正常執行,這就是異常。異常發生時,是任程序自生自滅,立刻退出終止,還是輸出錯誤給用戶?或者用C語言風格:用函數返回值作爲執行狀態?。Java提供了更加優秀的解決辦法:異常處

原创 工廠模式--工廠方法模式

一、定義  工廠方法模式,定義一個用於創建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延遲到其子類。 需求:設計個計算器,兩個數字之間的加減乘除基本運算。   IFactory.java package com.Fa

原创 《Effective Java》讀書筆記

  引言 第2章 創建和銷燬對象 何時以及如何創建對象,何時以及如何避免創建對象,如何確保創建的對象能夠被適時地銷燬,以及如何管理銷燬之前必須進行的所有清楚工作 第1條 考慮用靜態工廠方法代替構造器 靜態工廠方法與構造器不同的第一大優勢在

原创 緩存更新的套路

                                                    看到好些人在寫更新緩存數據代碼時,先刪除緩存,然後再更新數據庫,而後續的操作會把數據再裝載的緩存中。然而,這個是邏輯是錯誤的。試想,兩

原创 JAVA設計模式之代理模式

【代理模式應用場景舉例】 比如在玩“極品飛車”這款遊戲,如果遊戲者手中的金錢達到了一定的數量就可以到車店買一部性能更高的賽車,那麼這個賣車的“車店”就是一個典型的“汽車廠家”的“代理”,他爲汽車廠家“提供賣車的服務”給有需求的人士。從面向

原创 工廠模式--簡單工廠模式

簡單說說簡單工廠模式: 需求:設計個計算器,兩個數字之間的加減乘除基本運算。 首先是Operation運算抽象類: package com.SimpleFactory; /** * 簡單工廠模式 * @Description: 運

原创 JavaWeb秒殺業務場景設計

秒殺業務場景設計問題經常被面試的時候被問到,在實際業務中,也常常需要實現,下面我們來看看如何實現秒殺業務.秒殺業務,是典型的短時大量突發訪問類問題特點:    秒殺時網站的訪問量大增;            秒殺時購買的請求數量遠小於庫存

原创 Java web 實現 之 Filter分析ip統計網站的訪問次數

統計工作需要在所有資源之前都執行,那麼就可以放到Filter中了。我們這個過濾器不打算做攔截操作!因爲我們只是用來做統計的。用什麼東西來裝載統計的數據。Map<String,Integer>整個網站只需要一個Map即可!Map什麼時候創建

原创 單例模式

轉載:https://blog.csdn.net/jason0539/article/details/23297037 本文繼續介紹23種設計模式系列之單例模式。 概念:   java中單例模式是一種常見的設計模式,單例模式的寫法有好幾種

原创 緩存與數據庫一致性保證

本文主要討論這麼幾個問題:(1)啥時候數據庫和緩存中的數據會不一致(2)不一致優化思路(3)如何保證數據庫與緩存的一致性 一、需求緣起上一篇《緩存架構設計細節二三事》(點擊查看)引起了廣泛的討論,其中有一個結論:當數據發生變化時,“先淘汰