原创 zk系列-3.watch事件的分類/模式和服務端返回的代碼

1.事件的種類 2.事件的模式 在調用getData等方法添加的watcher都是一次性的,調用後就被移除掉了。通過addWatcher可以添加持續性事件。分爲以下兩種: PERSISTENT(ZooDefs.AddWatchM

原创 總結:對Java內存模型JMM的理解

JMM規定了線程的工作內存和主內存的交互關係,以及線程之間的可見性和程序的執行順序。一方面,要爲程序員提供足夠強的內存可見性保證;另一方面,對編譯器和處理器的限制要儘可能地放鬆。JMM對程序員屏蔽了CPU以及OS內存的使用問題,能

原创 數據庫事務和隔離級別(重點,不可重複讀和可重複度的區別)

數據庫事務的四個特性(ACID) 1 、原子性 (Atomicity) 事務是數據庫的邏輯工作單位,事務中包含的各操作要麼都做,要麼都不做 2 、一致性 (Consistency) 事務執行的結果必須是使數據庫從一個一

原创 數組,字符串全排列算法分析(字典序生成法)

先看一個題: 題目描述 輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。 結果請按字母順序輸出。

原创 zk系列-1.客戶端數據請求和接受

GetData // 同步調用 public byte[] getData(final String path, Watcher watcher, Stat stat) throws KeeperException, In

原创 關於Using index for group-by和Loose Index Scan的關係

最近看好多關於mysql的blog在講鬆散掃描的時候,提到了explain後,extra會顯示Loose Index Scan,但是在5.6.34等版本中,會顯示Using index for group-by,通過查找官方資料發

原创 劍指offer複雜鏈表複製

題目描述 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果爲複製後複雜鏈表的head。(注意,輸出結果中請不要返回參數中的節點引用,否則判題程序會直接返回空) 我的

原创 jvm垃圾收集器回收什麼樣的對象以及各種引用

jvm可大致分爲5部分,其中程序計數器、虛擬機棧、本地方法棧,是線程私有的,隨線程分方法的調用生滅。GC回收的對象主要集中在堆區和方法區。 引用計數法: 每當一個地方引用該對象,該對象的引用計數器加1,引用失效後引用計數器減1。 算法簡

原创 ByteBuffer的Put和Get的用法和要注意的細節

最近再看java的NIO,裏面提到了幾個基本的類,其中ByteBuffer是最基礎的,用於Channel的讀寫傳輸數據使用。下面總結一下我理解的ByteBuffer。 先從代碼開始分析 static public voi

原创 Thread類中值得注意的方法

1,Sleep(long)讓出cpu的使用權,不釋放鎖 Wait(long)讓出cpu使用權,並釋放鎖。 2,Join()是通過wait函數實現的主線程阻塞。 3,interrupted()函數是Thread靜態函數

原创 Tomcat7源碼導入MyEclipse

Tomcat 1, 下載Tomcat7 http://labs.renren.com/apache-mirror/tomcat/tomcat-7/v7.0.22/src/apache-tomcat-7.0.22-src.zi

原创 微信登錄獲取掃碼結果的原理

之前面試,有個面試官問我微信掃碼登錄的原理,當時我沒具體的看過,就說了一下自己的猜想。 用戶訪問網頁版登錄界面,登錄頁面動態生成一個登錄鏈接,應該帶有token之類的,這時候網頁開始不停的給服務器發送請求,輪訓用戶是否已經掃碼成

原创 Full GC會不會回收年輕代討論

最近在看JVM相關的資料的時候提到了一個空間分配擔保的問題,大體意思就是: 在1.6 update24之前,在發生minor GC前虛擬機會檢查老年代最大的可用的連續空間是否大於年輕代所有對象的總和,弱國這個條件成立,則Mino

原创 redo log的刷新策略

MySQL支持用戶自定義在commit時如何將log buffer中的日誌刷log file中。這種控制通過變量 innodb_flush_log_at_trx_commit 的值來決定。該變量有3種值:0、1、2,默認爲1。但注