原创 Mac 升級 Git

 MAC OS默認使用自帶的git,但是MAC OS自帶git版本過低。爲了使用git的一些新功能,有必要升級git。 下載安裝HomeBrew # 下載安裝homebrew,這個過程時間非常長,請耐心等待 $ /bin/bash

原创 【密碼學】彩虹表

        以前和很多人一樣,對彩虹表的理解是片面的:以爲彩虹表是一個大的“明文->密文”的映射表。按照這個理解(也就是暴力破解)某個哈希函數的彩虹表的容量是超大超大的,即使對明文做了分類。        今天看了一下上面鏈接的那個帖

原创 一個List賦值給一個List

轉自:Click 1 List 是通過指針指向地址來查詢和存儲數據的。而如果直接將一個List賦值給另一個List。則會導致該兩個List都指向同一個地址。而導致如果後一個List的元素值改變,前一個List的元素值也隨之改變。這個要記住

原创 【密碼學】哈希函數-SHA

一、哈希函數 1.定義: Hash函數將長度可變的數據塊M作爲輸入,產生固定長度的Hash值h=H(M)。 2.特徵: (1)可變長度輸入,固定長度輸出; (2)不可逆; (3)小概率發生碰撞,只能減少碰撞概率,無法避免碰撞; 3.應用:

原创 【匿名通信】在Linux(Ununtu 16.04)環境下編譯運行tor源碼

1.準備工作 (1)安裝make工具 sudo apt-get install make (2)安裝gcc sudo apt-get install build-essential (3)創建目錄     mkdir tor-b

原创 將Javaweb項目部署到雲服務器

一、前言 由於業務需要,要搞一個文件上傳下載服務器,代碼當前已經在localhost上調試成功。現在需要把這個項目部署到雲服務器上,選擇的服務器是vultr的vps,系統是Ubuntu16.04。 二、環境準備 1.jdk安裝 常規安裝即

原创 View事件分發機制

原文鏈接:https://www.jianshu.com/p/38015afcdb58 參考資料: Android事件分發機制詳解:史上最全面、最易懂 android中的事件傳遞和處理

原创 Android異步消息處理機制(源碼分析+面試題)

參考文獻: Android異步消息處理機制源碼剖析 Handler全家桶之 —— Handler 源碼解析 你真的懂Handler嗎?Handler問答 android的消息處理機制(圖+源碼分析)——Looper,Handle

原创 【源碼分析】HashMap的原理及常見面試題

參考文獻: HashMap實現原理及源碼分析 CS-Notes Java容器 HashMap 相關面試題及其解答 美團面試題:Hashmap的結構,1.7和1.8有哪些區別,史上最深入的分析 既然紅黑樹那麼好,爲啥hashmap

原创 java容器迭代或序列化時不允許修改操作之ConcurrentModificationException異常

java容器迭代或序列化時不允許修改操作 原因:迭代或序列化前後會查看modCount是否發生變化,如果發生變化,意味着容器結構發生變化,會拋出一個ConcurrentModificationException異常;容器在遍歷時

原创 ThreadLocal的原理

參考: https://blog.csdn.net/v123411739/article/details/78698834 https://blog.csdn.net/u010687392/article/details/505

原创 線程池的使用和簡單原理

參考文獻: Android 多線程: 完全解析線程池ThreadPool原理&使用 Android開發——Android中常見的4種線程池(保證你能看懂並理解) Java併發編程:線程池的使用 1 簡介  除了①線程池,使用

原创 Java 異常

1 什麼是java異常  異常是指在程序運行時,阻礙程序正常執行的錯誤事件。比如:用戶輸入錯誤數據、硬件故障、網絡阻塞等都會導致出現異常。 只要產生了異常,一個異常對象就會被創建,JRE就會試圖尋找異常處理程序來處理異常。 2 Jav

原创 一個類實現兩個包含同名抽象函數的接口

1.同名抽象函數返回值類型相同   能正常編譯; 2.同名抽象函數返回值類型不同   能正常編譯; public interface Listener1 { int a=0;//默認是public static final

原创 Java包裝類

2.1 包裝類的作用 (1)基本數據類型的存在意義   我們都知道在Java語言中,new一個對象存儲在堆裏,我們通過棧中的引用來使用這些對象。但是對於經常用到的一系列類型如int、boolean…如果我們用new將其存儲在堆裏就不是