原创 你有沒有想過: 爲什麼Java中String是不可變的?

解答: 有三點: 1)String 在底層是用一個 private final 修飾的字符數組 value 來存儲字符串的。final 修飾符保證了 value 這個引用變量是不可變的,private 修飾符則保證了 value

原创 JDK 是如何判斷兩個對象是否相同的?判斷的流程是什麼?

JDK 是如何判斷兩個對象是否相同的呢?判斷的流程是什麼? 參考解答: JDK 會先判斷兩個對象的hashCode是否相同,如果hashCode不同,則說明肯定是兩個不同的對象了;如果hashCode相同再通過equals()方法

原创 mac zsh 配置 adb 環境變量 “zsh: command not found: adb”

“zsh: command not found: adb” 解決方法: 前提 已經成功安裝了 Android Studio. 打開 iTerm 終端依次輸入下面命令: echo 'export ANDROID_HOME=/User

原创 Window、WindowManager、View 之間的關係

Window 和 WindowManager 是什麼關係? Window 和 View 是什麼關係? WindowManager 和 View 是什麼關係? Window 和 WindowManager 是什麼關係? Wido

原创 面試題:計算 n!階乘的結果的末尾有幾個0

前言 首先基於一個事實:我們不可能真的把 n! 的結果計算出來,再去數結果的末尾有幾個0;n 很小還好,如果n很大,甚至趨近於無窮大,我們是不可能這樣做的。原因主要有二: 一般計算機的計算能力和存儲能力也有限,是計算不出那麼大的

原创 面試題:尋找一個字符串中出現次數最多的字符以及出現的次數

要求編寫代碼實現:尋找一個字符串中出現次數最多的字符以及出現的次數。 解法一:用刪除法實現 (挺巧妙的一種) public class FindTheMostAppearChar { public static void main(St

原创 LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

在 Mac 上 通過 git clone 命令克隆 github 上的代碼,發現報錯: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 原

原创 Java8 和 Java9 的主要新特性

Java 8 的主要新特性 1. Lambda 表達式 Lambda 允許把函數作爲一個方法的參數傳遞進方法中。 作用:解決 Java 被詬病的匿名內部類的問題。 2. 接口中可增加了默認方法 作用:在接口中也可以有實現方法了。 3.

原创 Window 的添加過程

Window 的添加過程 Window(或者說View) 是怎麼添加到 Android 系統中然後展示給用戶的?讓我們來探索一下 Window 的添加過程。 Window 添加過程的入口方法 要探索添加的過程,必須先在源代碼中找到添加 Wi

原创 Window 和 WindowManager 是什麼關係

如果問你三個簡單的問題,你能答上來嗎,你是怎麼理解的呢。 Window 和 WindowManager 是什麼關係? Window 和 View 是什麼關係? WindowManager 和 View 是什麼關係? Window 和 W

原创 一個有趣的問題: 如何用HashSet來存儲重複的字符串?

1. 前言 今天,我們來探討一個實際中不常用但卻比較有意思的問題。它能幫助你理解 “HashSet中的鍵值是唯一的,不可重複的” 這句話的真正含義,也考驗你對問題的思考深度。 注:實際應用中,我們一般是用 ArrayList 集合來存儲相同

原创 你有沒有想過: Java 虛擬機是如何判斷兩個對象是否相同的?判斷的流程是什麼?

在Java程序運行時,會產生那麼多的對象,那 Java 虛擬機是如何判斷兩個對象是否相同的呢?判斷的流程是什麼? 參考解答:Java 虛擬機會先判斷兩個對象的hashCode是否相同,如果hashCode不同,則說明肯定是兩個不同的對象了;

原创 你有沒有想過: 爲什麼Java中String類實例化之後就不能改變它的內容了?

解答:因爲 String 在通過 new 的構造方式實例化的時候,在底層會用一個 private final 修飾的字符數組來存儲字符串,該字符數組用了 final 來修飾所以是不可變的。 public final class String

原创 你有沒有想過: 爲什麼Java中String通過new的方式實例之後就不能改變它的內容了?

解答: 因爲在 String 通過 new 的構造方式初始化的時候,在底層會用一個 private final 修飾的字符數組來存儲字符串,該字符數組用了 final 來修飾所以是不可變的。 public final class St

原创 最安全的 hexo 多電腦同步博客解決方案--非新建分支

本遷移解決方案博主親測有效,請放心遷移,遷移過程中如果還遇到什麼問題歡迎和我交流。 我們經常有這樣一個需求場景:需要在多臺電腦間完成 Hexo 博客的撰寫和發佈,這就涉及到如何多臺電腦同步博客的問題。 我最近也遇到了這個問題,網上