原创 $'\t' 解釋

參考 簡單來說,就是a=$'\t' 後,a內容就是tab了。 cat a.sh a=$'\t' echo $a sh -x a.sh Words of the form $'string' are treated specia

原创 MySQL 約束與索引

約束 索引問答 primary key unique key MySQL操作 外鍵 MYSQL不支持非主鍵的聚集索引。 PRIMARY KEY 不可空不可重複,在一個表裏可以定義聯合主鍵; primary key = u

原创 自己動手實現-監聽器

監聽器就是在執行一些操作的時候通知監聽此事件的對象執行一定的方法。 寫了BingoneMap,其中使用Set存儲監聽器,在事件發生後執行監聽器事件。基本要素是留一個口子給開發者實現該事件需執行怎麼的操作。 同時注意數據之間的傳遞,

原创 工具站點

Bash查 json工具 URL解碼 24mail ExcelToHtml HtmlToMarkdown

原创 CountDownLatch

CountDownLatch 針對有強先後關係類的併發順序,而不是允許隨機的情況。 CountDownLatch其實可以把它看作一個計數器,只不過這個計數器的操作是原子操作,同時只能有一個線程去操作這個計數器,也就是同時只能有一個

原创 TopMap

經常有一種需求,是需要存儲鍵值對,放入一個對象對應的使用次數。 然後需要獲取前10%、20%等數據。如果進行Map的全量排序輸出會非常慢,因此需要用TreeMap。 使用TreeMap<Integer,Set<T>>記錄這個調

原创 git diff java 實現

經常使用git diff 但是其是如何實現的呢? 本博客簡單實現不考慮行的比較。可以比較兩個字符串 // 相當於把每一行換比較換成字符比較,道理一樣 s1='xxxxxxxxxx' s2='yyyyyyyyyy' 首先我們把文件

原创 Java多線程示例(模擬通話,sleep,join,yield,wait,notify,Semaphore)

主線程等待子線程的多種方法 synchronized淺析 sleep 是靜態方法,Thread.sleep(xx)誰調用誰睡眠。 join 是合併方法,當前線程調用其他線程xx.join()則等到xx結束才能運行 yie

原创 FFT

花了一天時間學習了一下FFT。 參考 解決的問題: 乘法加速。將O(n^2) 降低至O(nlogn) 思想: 原本的乘法是多項式的每一項去乘然後合併同類項,FFT將問題變爲n個點的乘法。(x,y0)* (x,y1) = (x,y

原创 tmux 使用

參考 參考 快捷鍵 解決終端不能多開。 基本需要掌握的就是 session、window、panel的增、刪、查看、切換 tmux所有自帶命令都默認需要先按Ctrl + b,然後再鍵入對應的命令 tmux ls -查看所

原创 Redis-util 轉換函數

#include "fmacros.h" #include <stdlib.h> #include <stdio.h> #include <string.h> #include <ctype.h> #include <limits

原创 AVL平衡樹(詳解)-JAVA版本

平衡二叉樹在進行插入操作的時候可能出現不平衡的情況,AVL樹即是一種自平衡的二叉樹. 它通過旋轉不平衡的節點來使二叉樹重新保持平衡,並且查找、插入和刪除操作在平均和最壞情況下時間複雜度都是O(log n) AVL樹的旋轉一共有四種情形,注

原创 Liunx 用戶權限管理

對服務器操作,首先的任務就是分配權限。 1. 用戶信息在/etc/passwd,密碼在/etc/shadow,組信息/etc/group 2. 對文件來說chown改變所有者、chgrp改變組信息 Linux權限管理及用戶與用

原创 Bash 入門

SHELL十三問 內置1 $# 是傳給腳本的參數個數 $0 是腳本本身的名字 $1 是傳遞給該shell腳本的第一個參數 $2 是傳遞給該shell腳本的第二個參數 $@ 是傳給腳本的所有參數的列表 $* 是以一個單字符串顯示所

原创 ssh、scp、split 、tar、tail

用ssh連接到服務器上 tail動態查看日誌 將需要的文件分割打包tar split scp傳送本地分析 ssh -l user xxx.xxx.xxx.xxx cd /data/logs tail -f access.