原创 Leetcode No.94 二叉樹的中序遍歷(循環法,含先序、中序、後序通用解解題技巧)

二叉樹的中序遍歷 題目描述 題目分析 先序遍歷的場景,例如圖中的ABCDE,正常的先序遍歷順序應該是從A出發,先打印A 然後從A訪問到B再打印B,再從B訪問到D再打印D,再從B訪問到E打印E,在訪問到F打印F,最後打印C。即被打

原创 如何正確的做技術選型

概述 技術選型是項目的根基,如果選擇了不適合自己業務場景的技術。初期由於業務複雜程度和業務量都比較小,所以可能感受不是十分明顯,但是到了後期這將會是一個噩夢。會導致系統問題頻發,極不穩定,甚至導致項目迭代舉步維艱,甚至有的團隊會停止新

原创 Sharding-JDBC 3.x 原理篇之基本介紹(一)

簡介 Sharding-JDBC是噹噹開源的數據庫水平切分的中間件,其代表了客戶端類的分庫分表技術框架(這一點與MyCat不同,MyCat本質上是一種數據庫代理)。Sharding-JDBC定位爲輕量級數據庫驅動,由客戶端直連數據庫,

原创 Sharding-JDBC 3.x 原理篇之基本介紹(二)附1.x~3.x版本文檔

前言 上一篇描述了Sharding-JDBC的歷史演進過程和設計理念,本篇將具體描述Sharding-Sphere的具體功能和個版本特性。後續將對常用核心功能逐一進行分析和探討。 版本功能 1.x功能列表 分庫分表 SQL解析功能完善

原创 Java單例模式及延遲加載

單例模式是 軟件開發中非常重要的模式之一。絕大多數的軟件項目中都會用到單例模式。單例模式應用的好與壞在高併發訪問的情況下性能差異較爲明顯。下面我們來看一下單例模式的具體解釋。 描述:單例模式許多時候是一個全局的靜態共享對象,爲了保證其性

原创 更改RemixOS分辨率

虛擬機安裝RemixOS後屏幕分辨率很低,導致體驗很差。經過一番折騰總結出以下方法,親測有效 1、啓動菜單中選擇並進入DEBUG模式 2、重新掛載/mnt文件夾爲可寫入狀態 mount -o remount,rw /mnt 3、編

原创 Java無鎖堆棧詳解

有這樣一個題目: 實現一個無鎖的Stack,並寫一段測試代碼(多線程訪問),證明這個Stack是線程安全的。 分析: 出於節省內存空間的考慮,使用鏈式的存儲結構來實現。 實現該堆棧的思想爲: 1、壓入一個新節點時,將舊結點存入新結點中

原创 Java Aio Socket異步通信例子

以下是關於Aio Socket 通信的一個例子,通過回調的方式發送和處理消息。其中要注意的是在緩衝區(ByteBuffer)中put數據以後要先進行flip(參見Nio部分解釋)操作再發送數據,否則數據將會傳輸失敗。以下是例子,直接上代碼

原创 Java線程安全隊列操作

題目如下: 使用 wait notify 實現一個隊列,隊列有2個方法,add 和 get 。add方法往隊列中添加元素,get方法往隊列中獲得元素。隊列必須是線程安全的。如果get執行時,隊列爲空,線程必須阻塞等待,直到有隊列有數據。

原创 Java NIO 非阻塞socket通信案例

NIO的特性:它以塊爲基本單位處理數據,所有的數據都要通過緩衝區(Buffer)來進行傳輸。它有一個用來作爲原始I/O操作的抽象通道(Channel)並提供了Selector的異步網絡接口。且支持將文件映射到內存,以大幅提高I/O效率。

原创 解決wine托盤圖標覆蓋問題

解決wine托盤圖標覆蓋,使用第三方托盤圖標管理工具進行託管。 安裝 sudo apt-get install indicator-systemtray-unity 卸載 sudo apt-get purge indicator-syst

原创 Ubuntu 16.04 安裝 Wine 及安裝 PLSQL Developer

安裝PLSQL的過程相對簡單,只需安裝wine即可,PLSQL目前尚未發現依賴問題。 系統版本:Ubuntu 16.04 PLSQL版本:PLSQL 11 ORA版本:11.2 第一步: 安裝最新版Wine #開啓32位支持 $ su

原创 Java類的熱替換

描述:以下是類熱替換的核心代碼。程序直觀明瞭,如有錯誤請大家提出,本人及時改正,謝謝! ClassLoader重要類說明: findLoadedClass:每個類加載器都維護有自己的一份已加載類名字空間,其中不能出現兩個同名的類。凡是通過

原创 CentOS7 yum 安裝 MySQL 5.7

CentOS7的yum源中默認好像是沒有mysql的。爲了解決這個問題,我們要先下載mysql的repo源。 1. 下載mysql的repo源 $ wget http://repo.mysql.com/mysql-community-

原创 MVN 安裝 JAR包

ORACLE的JDBC JAR 包 無法從MVN倉庫中下載, 需要自行安裝 POM配置 <dependency> <groupId>com.oracle</groupId> <artifa