原创 Spring IOC循環依賴問題

A對象引用B對象 B對象引用A對象 spring中採用三級緩存來解決: private final Map<String, ObjectFactory<?>> singletonFactories = new HashMap(1

原创 mysql性能優化之sql優化

1、SQL優化 (1)show status 命令 mysql> show status like'Com_%'; mysql> SHOW STATUS LIKE 'THREADS _%';         當然除了上述操作之外,還存在

原创 mysql性能優化之索引優化

     在MySQL數據庫中索引的優化是最重要的優化手段之一,能夠解決生產過程中的大部分SQL性能問題。在對MySQL數據庫優化的時候,對系統進行基於索引的梳理,這個動作是最有效的操作。創建唯一性索引,加快數據的檢索速度。通過索引訪問表

原创 二叉樹、二叉搜索樹、平衡二叉樹、紅黑樹、B樹、B+樹

原文鏈接:http://www.sohu.com/a/280609547_818692 說呂老師給小史講完人工智能的一些知識後,他們一起回家吃小史姐姐做的飯去了。 【飯後】 呂老師:面試

原创 冒泡排序、選擇排序、快速排序、插入排序、希爾排序、歸併排序、基數排序以及堆排序

1、冒泡排序 - 依次比較相鄰兩元素,若前一元素大於後一元素則交換之,直至最後一個元素即爲最大;然後重新從首元素開始重複同樣的操作,直至倒數第二個元素即爲次大元素;依次類推。如同水中的氣泡,依次將最大或最小元素氣泡浮出水面。 實現代碼就是

原创 StringUtils裏的isEmpty方法和isBlank方法的區別

 1.isEmpty 沒有忽略空格參數,是以是否爲空和是否存在爲判斷依據。   2.isBlank 是在 isEmpty 的基礎上進行了爲空(字符串都爲空格、製表符、tab 的情況)的判斷。

原创 代理模式之靜態代理和動態代理

靜態代理 靜態代理是由程序員創建或工具生成代理類的源碼,再編譯代理類。 所謂靜態也就是在程序運行前就已經存在代理類的字節碼文件,代理類和委託類的關係在運行前就確定了。 (1)基於接口實現方式   (2)接口繼承方式實現 public c

原创 Java 208道面試題及部分答案

原文鏈接:https://www.cnblogs.com/chen1005/p/10481102.html 一、Java 基礎 1.JDK 和 JRE 有什麼區別? 答:JRE是java運行時環

原创 多線程鎖的升級和無鎖、偏向鎖、輕量級鎖、重量級鎖

隨着競爭情況逐漸升級,鎖可以升級但不能降級。 鎖一共四種狀態,低-->高 無鎖狀態、偏向鎖狀態、輕量級鎖狀態、重量級鎖狀態。 偏向鎖: 優點:加鎖和解鎖不需要額外的消耗,和執行非同步方法相逼僅存在納秒級的差距。 缺點:如果線程間存在鎖競爭

原创 string使用等號比較的問題

代碼: String s3= new StringBuilder("ni").append("hao").toString(); System.out.println(s3.intern() == s3)

原创 錦囊

具體如下   一、Java 基礎 1. JDK 和 JRE 有什麼區別?   2. == 和 equals 的區別是什麼? 3. 兩個對象的 hashCode()相同,則 equals()也一定爲 true,對嗎? 4. final 在

原创 單例 雙重檢查鎖定的重排序問題

雙重檢查鎖定代碼: //雙重檢查鎖定 public class DoubleCheckedLocking { private static Instance instance; public static Instan

原创 堆外內存

在Java中創建的對象都處於堆內內存(heap)中,堆內內存是由JVM所管控的Java進程內存,並且它們遵循JVM的內存管理機制,JVM會採用垃圾回收機制統一管理堆內存。與之相對的是堆外內存,存在於JVM管控之外的內存區域,Java中對堆

原创 volatile 關鍵字和多處理器總線嗅探

volatile變量修飾的共享變量在進行寫操作的時候回多出一行彙編: 0x01a3de1d:movb $0×0,0×1104800(%esi);0x01a3de24:lock addl $0×0,(%esp); Lock前綴的指令在多核處

原创 ConcurrentLinkedQueue常用方法:

ConcurrentLinkedQueue常用方法: 增: add :底層調用offer offer : 將指定元素插入此隊列的尾部 刪: poll 是從隊列取出元素並且刪除該元素 remove 如果此元素不存在,則返回 false,移除