原创 微軟等數據結構+算法面試100題全部答案集錦

1.把二元查找樹轉變成排序的雙向鏈表題目:輸入一棵二元查找樹,將該二元查找樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只調整指針的指向。10/ \6 14/ \ / \4 8 12 16轉換成雙向鏈表4=6=8=10=12=14

原创 一次詭異的調優

近碰到的一個Java應用,費了半天勁還是沒定位到是哪兒的問。發上來給大家看看,給點建議。 環境DB Server:32core HPUX DB2App Server * 2:8core HPUX WAS6.1 每個節點2個app初次測試現

原创 歸併排序的實現

歸併排序是建立在歸併操作上的一種有效的排序算法。該算法是採用分治法(Divide and Conquer)的一個非常典型的應用。首先考慮下如何將將二個有序數列合併。這個非常簡單,只要從比較二個數列的第一個數,誰小就先取誰,取了後就在對應數

原创 談談ConcurrentHashMap1.7和1.8的不同實現

知止而後有定,定而後能靜,靜而後能安,安而後能慮,慮而後能得。ConcurrentHashMap在多線程環境下,使用HashMap進行put操作時存在丟失數據的情況,爲了避免這種bug的隱患,強烈建議使用ConcurrentHashMap

原创 圖解堆排序

摘要:      作爲選擇排序的改進版,堆排序可以把每一趟元素的比較結果保存下來,以便我們在選擇最小/大元素時對已經比較過的元素做出相應的調整。      堆排序是一種樹形選擇排序,在排序過程中可以把元素看成是一顆完全二叉樹,每個節點都大

原创 MySQL優化

一、SQL語句優化(1)使用limit對查詢結果的記錄進行限定(2)避免select *,將需要查找的字段列出來(3)使用連接(join)來代替子查詢(4)拆分大的delete或insert語句二、選擇合適的數據類型(1)使用可存下數據的

原创 MySQL索引類型

一、簡介MySQL目前主要有以下幾種索引類型:1.普通索引2.唯一索引3.主鍵索引4.組合索引5.全文索引二、語句CREATE TABLE table_name[col_name data type] [unique|fulltext][

原创 快速排序算法原理及實現(單軸快速排序、三向切分快速排序、雙軸快速排序)

歡迎探討,如有錯誤敬請指正如需轉載,請註明出處http://www.cnblogs.com/nullzx/1. 單軸快速排序的基本原理快速排序的基本思想就是從一個數組中任意挑選一個元素(通常來說會選擇最左邊的元素)作爲中軸元素,將剩下的元

原创 java類中serialversionuid 作用 是什麼?舉個例子說明

serialVersionUID適用於Java的序列化機制。簡單來說,Java的序列化機制是通過判斷類的serialVersionUID來驗證版本一致性的。在進行反序列化時,JVM會把傳來的字節流中的serialVersionUID與本地

原创 Spring面試題整理

Spring 概述1. 什麼是spring?spring 是個Java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平臺的web應用。Spring 框架目標是簡化Java企業級應用開發,並通

原创 調優總結--調優方法

JVM調優工具Jconsole,jProfile,VisualVMJconsole : jdk自帶,功能簡單,但是可以在系統有一定負荷的情況下使用。對垃圾回收算法有很詳細的跟蹤。詳細說明參考這裏 JProfiler:商業軟件,需要付費。功

原创 超級詳細的二叉樹的3種遍歷方法的遞歸和非遞歸的實現

二叉樹是一種非常重要的數據結構,很多的數據結構都是基於二叉樹的基礎演變過來的。二叉樹的前,中, 後3種遍歷方式,因爲樹的定義本身就是遞歸定義的,所以採用遞歸的方法來實現是很簡單的。遞歸開銷會很大,如果使用非遞歸的方式需要用到棧來進行模擬,

原创 Java類加載器ClassLoader總結

JAVA類裝載方式,有兩種:1.隱式裝載, 程序在運行過程中當碰到通過new 等方式生成對象時,隱式調用類裝載器加載對應的類到jvm中。 2.顯式裝載, 通過class.forname()等方法,顯式加載需要的類類加載的動態性體現:一個應

原创 JVM調優總結(3):垃圾回收面臨的問題

如何區分垃圾上面說到的“引用計數”法,通過統計控制生成對象和刪除對象時的引用數來判斷。垃圾回收程序收集計數爲0的對象即可。但是這種方法無法解決循環引用。所以,後來實現的垃圾判斷算法中,都是從程序運行的根節點出發,遍歷整個對象引用,查找存活

原创 Spring IOC -bean對象的生命週期詳解

生命週期執行的過程如下:1)spring對bean進行實例化,默認bean是單例2)spring對bean進行依賴注入3)如果bean實現了BeanNameAware接口,spring將bean的id傳給setBeanName()方法4)