原创 java序列化與反序列化(1)------序列化、反序列化概念淺述

java序列化與反序列化是一項比較重要的技術點,目前也有很多成熟的組件可以使用比如protobuf、thrift、jute、jdk自帶序列化等諸多可選項。 那麼我們下面就介紹一下序列化相關的內容。 (1)什麼是序列化與反序列化? 序列化

原创 (1)JVM運行時數據分區

我們知道java虛擬機在運行時會把它管理的內存分爲若干個區域,有的隨着虛擬機的啓動而啓動,有的隨着應用線程的啓動和創建,那下面我們就看看虛擬機運行時各個分區及其作用。 其實JVM對運行時內存進行分區的主要目的就是爲了更好的進行垃圾回收和數

原创 聊聊操作系統-進程與線程

工作也有兩年了,在研究很多項目時發現很多問題追根溯源都會到計算機底層的知識,也是越來越發現編程語言只是一層外殼,這個外殼需要去和操作系統協商使用後者管理的的計算機資源,包括存儲資源和計算資源。如果計算機底層知識不牢靠,遇到一些問題還真是不

原创 詳細教你如何部署ICE服務(二)---IceBox加載啓動Ice服務

在上一篇文章中,我使用了自己實現的一個簡單容器簡單粗暴的啓動一個ICE服務,正如上篇文章所總結的那樣,這種部署服務的方式存在諸多缺點。 這裏我們給出使用IceBox這個框架來開發和部署我們的Ice服務。 那麼什麼是IceBox框架呢?

原创 詳細教你如何部署ICE服務(三)---IceBox框架 & Ice Registry服務註冊中心的聯合使用

在詳細教你如何部署ICE服務(二)---IceBox加載啓動Ice服務這篇博客中,我們使用了IceBox來設計服務代碼和啓動Ice服務。 單單使用IceBox組件來設計和啓動Ice服務,客戶端必須將服務端的EndPoint寫死到代碼中,爲

原创 漫談jvm垃圾收集(2)

上一篇博文中我們說了,哪些對象該被回收已經在程序運行到什麼地方進行回收。接下來我們就來討論怎麼回收這些不在使用的對象。 (1)常用的幾個垃圾收集算法 標記-清除 從GC Roots開始標記所有被引用的對象,之後遍歷整個回收區刪除標記的對

原创 詳細教你如何部署ICE服務(一)

這系列文章將會一步步教你如何部署一個ICE服務,如果你正在讀這篇博客,我想你已經瞭解了什麼是ICE(Internet Communications Engine),以及如何去實現ICE服務,並且瞭解什麼是ICE對象、ICE對象標識符、I

原创 網絡編程之Selector & SelectionKey詳解(二)

這篇博文我希望能總結出一個實用的簡單客戶端服務器通信示例,我在前面幾篇博文中說過,socket通信中存在數據無邊界的問題,這樣造成不知道read數據是否完成;在前面幾篇博文中我們看到在對客戶端SocketChannel進行註冊感興趣的事件

原创 網絡編程之Selector & SelectionKey詳解(一)

NIO能通過單個線程管理多個I/O通道,主要就是通過選擇器Selector來實現的。 public abstract class Selector { protected Selector() { } public st

原创 隨筆感想之------大半夜的牢騷

截止到目前也是工作兩年有餘的人了,近半年公司人員流動較大,不斷從前同事手中接手新的業務,不同的業務技術選型又都一樣,繁多的業務類型幾乎要耗盡了自己的精力。 我一向認爲要取得一定的成就,必須專注的做一件事情,想來近半年在大量業務的摧殘下,我

原创 java序列化與反序列化(3)------jdk原生序列化機制Externalizable

我們在上一篇博客中介紹了類實現標記性接口Serializable來實現序列化,但是如果你只想序列化諸多域中的某幾個域,一種選擇是將不序列化的域都標記上transient關鍵字,但是如果不需要序列化的域比較多,那麼這種方式看起來很麻煩呀,第

原创 Redis高可用方案哨兵機制------ 配置文件sentinel.conf詳解

Redis的哨兵機制是官方推薦的一種高可用(HA)方案,我們在使用Redis的主從結構時,如果主節點掛掉,這時是不能自動進行主備切換和通知客戶端主節點下線的。 Redis-Sentinel機制主要用三個功能: (1)監控:不停監控Redi

原创 詳細講解Redis主從結構配置以及複製原理(一)

Redis是基於內存的NoSql數據庫,同時以其卓越的讀寫性能聞名業內,並且我在這篇博客Redis持久化機制原理分析與解惑-爲什麼Redis進行RDB持久化數據時,新起一個進程而不是在原進程中起一個線程中講過Redis的兩種數據持久化方式

原创 聊聊操作系統-存儲管理之虛擬內存

工作也有兩年了,在研究很多項目時發現很多問題追根溯源都會到計算機底層的知識,也是越來越發現編程語言只是一層外殼,這個外殼需要去和操作系統協商使用後者管理的的計算機資源,包括存儲資源和計算資源。如果計算機底層知識不牢靠,遇到一些問題還真是不

原创 redis列表類型list如何一次返回多個值並刪除這些值

redis的列表類型list是一個常用的數據類型,但是這個類型並不支持一次性返回多個值並刪除這些已經返回的值。 其實我們可以通過redis的事務,來完成這個一次性返回多個值並刪除這些已經返回的值的需求。 redis中的事務就是一組命令的