原创 一些基礎的問題

標識符 由字母數字下劃線$符號組成,但是不能以數字開頭 關鍵字 從來沒有用到的關鍵字:goto, const jdk1.4 assert jdk1.5 enum 接口和抽象類的區別 1.從構造器來看:抽象類允許有構造方法,而接

原创 Netty(一):IO通信模型

[TOC] BIO:同步阻塞模型 在傳統的同步阻塞模型中,ServerSocket負責綁定IP地址,監聽端口;Socket負責發起連接操作。連接成功後,雙方通過輸入和輸出流進行同步阻塞式通信。 採用BIO通信模型的Server端,由一

原创 深入dubbo內核(3):本地服務暴露

服務發佈原理 觀察dubbo服務發佈時的啓動日誌 [DUBBO] The service ready on spring started. service: com.alibaba.dubbo.demo.DemoService, du

原创 RabbitMQ

RabbitMQ 1.RabbitMQ是什麼? RabbitMQ是一個基於AMQP協議的高級消息中間件,它主要的技術特點是可用性,安全性,集羣,多協議支持,可視化的客戶端,活躍的社區。 2.爲什麼選擇RabbitMQ 功能強大,支持死信

原创 ThreadPoolExecutor高級應用

自定義線程池隊列的選擇 使用有界隊列(ArrayBlockingQueue)自定義線程池,當任務的數量小於corePoolSize的時候,直接創建新的線程執行任務。當任務數量大於corePoolSize的時候會將任務加入到等待隊列。若等

原创 Future模式

package future; //核心接口Data,客戶端需要的真實數據,在future模式中,這個data有兩個重要實現 //RealData,真實數據 //FutureData,用來提取RealData的一個"訂單",可以立即返回

原创 hashMap原理

線性表的弊端 線性表的順序存儲,佔用的空間地址是連續的,查找方便,但是容易造成內存空間的浪費。插入和刪除,需要大規模的移動數據,既不安全速度又慢。鏈式存儲雖然插入刪除方便但是由於其空間的不連續,查找速度慢。當我們既要對數據增刪又要查詢顯然

原创 JVM類加載機制

class類文件結構 任何一個Class文件都對應着唯一 一個類或者接口的定義信息,但是類或者接口不一定都定義在文件裏。類或者接口可以直接通過類加載器生成。Class文件是一組以8位字節爲基礎單位的二進制流,按照嚴格的順序排列在Class

原创 隊列

隊列是隻允許在一端進行插入操作,而在另一段進行刪除操作的線性表。 插入的一段稱爲隊尾,刪除的一端稱爲隊頭。 隊列的順序存儲結構:採用順序存儲結構的隊列 容易假溢出, 即使是循環隊列也面臨着大規模的移動數據的安全問題。所以隊列採用鏈式存

原创 深入dubbo內核(1):dubbo的自動發現機制

首先了解一下java的spi spi的設計目標: 面向對象的設計思想是模塊之間基於接口編程,模塊之間不可以對實現類進行硬編碼,一旦代碼涉及了具體的實現類就違反了可插拔的原則,如果要替換一種實現就要修改代碼。 Java spi提供了這樣一

原创 DelayQueue小例子

網吧上網: package Test1; import java.util.Calendar; import java.util.concurrent.DelayQueue; import java.util.concurrent.De

原创 深入dubbo內核(3):dubbo的IOC機制

當@Adaptive註解沒有註解在擴展點實現類上,而是在擴展點實現類的方法上的時候則會生成一個<擴展點接口名>$Adpative的代理類。 private Class<?> createAdaptiveExtensionClass()

原创 棧(經典應用逆波蘭表達式)

java中棧繼承了Vector,源碼很簡單,採用的是順序存儲結構。 實現棧: import java.util.Arrays; public class Stack { private Object[] elementData

原创 LinkedList底層原理(雙向鏈表)

public class LinkedList<E> { private Node<E> first; private Node<E> last; private int size; private c

原创 深入dubbo內核(2):註解式配置dubbo服務

dubbo註解式配置版本:2.5.8 服務提供方配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/