原创 HashMap和Hashtable的區別和聯繫

HashMap和Hashtable的區別和聯繫 相同點: 實現原理相同,功能相同,底層都是哈希表結構,查詢速度快,在很多情況下可以互用 不同點: 1、Hashtable是早期提供的藉口,HashMap實心板JDK提供的接口 2、H

原创 Redis緩存雪崩、緩存擊穿、緩存穿透、應用場景(含分佈式鎖)

緩存雪崩 緩存雪崩是指緩存同一時間大面積的失效,所以,後面的請求都會落到數據庫上,造成數據庫短時間內承受大量請求而崩掉。 解決方案 緩存數據的過期時間設置隨機,防止同一時間大量數據過期現象發生。 一般併發量不是特別多的時候,使用最

原创 算法複雜度O(1),O(n),O(logn),O(nlogn)的區別

算法複雜度分爲時間複雜度和空間複雜度: 時間複雜度是指執行這個算法所需要的計算工作量 空間複雜度是指執行這個算法所需要的內存空間 1.對於一個循環,假設循環體的時間複雜度爲 O(n),循環次數爲 n,則這個 循環的時間複雜度爲

原创 SpringIOC、SpringAOP知識點總結

控制反轉(IOC),傳統的 java 開發模式中,當需要一個對象時,我們會自己使用 new 或者 getInstance 等直接或者間接調用構造方法創建一個對象。而在 spring 開發模式中,spring 容器使用了工廠模式爲我

原创 數據庫優化方案整理

從圖中可以很明顯的看出Mysql數據庫優化的常用方法以及成本的高低。sql語句的優化和索引的優化是成本最小但是效果最好的方法 優化方向 1.SQL以及索引的優化 首先要根據需求寫出結構良好的SQL,然後根據SQL在表中建立有效的

原创 Servlet簡介及其生命週期詳解

Servlet(Server Applet)是Java Servlet的簡稱,稱爲小服務程序或服務連接器,用Java編寫的服務器端程序,具有獨立於平臺和協議的特性,主要功能在於交互式地瀏覽和生成數據,生成動態Web內容。 Serv

原创 什麼是JDBC&JDBC操作數據庫過程

什麼是JDBC? Java數據庫連接,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規範客戶端程序如何來訪問數據庫的應用程序接口,提供了諸如查詢和更新數據庫中數據的方法。 簡單說它就是J

原创 必須掌握的30種SQL語句優化

1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應儘量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描。 3.應儘量避免在 wh

原创 JSP與Servlet的關係

JSP和Servlet有什麼關係? (JSP的本質就是Servlet,JVM只能識別java的類,不能識別JSP的代碼,Web容器將JSP的代碼編譯成JVM能夠識別的java類) ①Servlet是一個特殊的Java程序,它運行於

原创 SpringMVC 處理流程及常用註解

SpringMVC 處理流程 a. 用戶向服務器發送請求,請求被 springMVC 前端控制器 DispatchServlet 捕獲; b. DispatcherServle 對請求 URL 進行解析,得到請求資源標

原创 Spring Boot 自動配置原理以及核心註解

Spring Boot 的核心配置文件有哪幾個?它們的區別是什麼? Spring Boot 中有以下兩種配置文件: bootstrap (.yml 或者 .properties) application (.yml 或者 .pro

原创 紅黑樹

在認識紅黑樹之前,先來理解下二叉查找樹(BST)。 二叉查找樹特徵: 1, 左子樹上所有的節點的值均小於或等於他的根節點的值 2, 右子數上所有的節點的值均大於或等於他的根節點的值 3, 左右子樹也一定分別爲二叉排序樹 下面爲標準

原创 使用mybatis+Spring實現mysql的讀寫分離

使用spring AbstractRoutingDatasource實現多數據源 public class DynamicDataSource extends AbstractRoutingDataSource { //

原创 百戰程序員的面試題分享

HashMap和Hashtable的區別和聯繫 相同點: 實現原理相同,功能相同,底層都是哈希表結構,查詢速度快,在很多情況下可以互用 不同點: 1、Hashtable是早期提供的藉口,HashMap實心板JDK提供的接口 2、H