原创 說一道字節跳動的算法題 | Android 向

一. 審題面試題:給定一個 RootView,打印其內 View Tree 的每個 View。在 Android 下,UI 的佈局結構,對標到數據結構中,本質就是一個由 View 和 ViewGroup 組成的多叉樹結構。其中 View

原创 被開發者拋棄的 Executors,錯在哪兒?

一. 序在 Java 領域內,我們使用多線程的方式來實現併發編程。而線程本身是操作系統的一個概念,雖然不同的語言對線程都進行了一些封裝,但是最終都是調用到操作系統中去創建和調度線程。既然線程是一項重要的系統資源,爲了更合理的利用此資源,

原创 爲什麼我把 Run 出來的 Apk 發給老闆,卻裝不上!

一. 序當我們在 Android Studio 中,直接 Run 一個項目時,AS 會自動打一個 Debug 的 Apk,並通過 ADB 命令,將 App 安裝到我們連接的設備上。這個 Run 出來的 Apk,在工程的 build/ 目

原创 “作爲字節跳動面試官,有些話我不得不說!”

轉載自字節跳動由於肺炎疫情的影響,不少同學年初跳槽的計劃被擱置。雖然計劃被打亂,但是這也給我們留出時間更好的準備面試。隨着企業復工時間的延長,不少公司裁員、降薪甚至倒閉,之後只會更難。看了不少「面試官說」系列的文章,都是由點及面的技術性

原创 圖解算法:確定單鏈表有環,如何找到環的入口和長度?

一、序本文繼續給大家帶來一道和單鏈表相關的算法題。之前聊到,如何對單鏈表是否存在環進行檢測(戳我瞭解),今天再來聊聊這個問題的進階題:一個單鏈表,如果有環,求環的入口。一個單鏈表,如果有環,求環的長度。鏈表這種結構,可以通過「指針」,將

原创 微信原圖到底在救人,還是在泄露隱私?取決於你怎麼用!

@Jefferson Palomique一. 序最近又看到有人在討論,微信原圖泄露隱私的事情。起因好像是有人在社交媒體上發佈了一張照片,然後被網友定位到具體的生活範圍,甚至直接定位到居住的小區,樓層門牌號等信息,想想還是很可怕的。在這個

原创 TCP三次握手、四次揮手出現意外情況時,如何保證穩定可靠?(完整版)

本文是之前分多篇發佈的文章,現在整理成一篇發佈,調整了一些小細節。一. 序當我們聊到 TCP 協議的時候,聊的最多的就是三次握手與四次揮手。但是大部分資料和文章,寫的都是正常的情況下的流程。但是你有沒有想過,三次握手或者四次揮手時,如果

原创 20200202 這個千年一遇的對稱日,是時候將「迴文算法」一網打盡!

今天是 2020 年 02 月 02 日,被稱爲「千年一遇的對稱日」,20200202 正反都一樣,反正都是「愛你愛你」的意思。不少新人都選擇今天作爲領證的日子,不過因爲肺炎的緣故,有些地方已經取消了今日的預約。但是我們今天不聊這日子的

原创 面試官:“看你簡歷上寫熟悉 Handler 機制,那聊聊 IdleHandler 吧?”

一. 序 Handler 機制算是 Android 基本功,面試常客。但現在面試,多數已經不會直接讓你講講 Handler 的機制,Looper 是如何循環的,MessageQueue 是如何管理 Message 等,而是基於場景去提問

原创 圖解算法:單向鏈表做加法運算

問:給出兩個非空的鏈表,來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式存儲的,並且每個結點只能存儲一位數字。將這兩個鏈表相加起來,返回一個新的鏈表,表示他們之和。 例如:342 + 465 = 807 兩數相加這道題

原创 常見的鏈表翻轉,字節跳動加了個條件,面試者高呼「我太難了」| 圖解算法

本文首發自公衆號「承香墨影(ID:cxmyDev)」,歡迎關注。 一. 序 我又來講鏈表題了,這道題據說是來自字節跳動的面試題。 爲什麼說是「據說」呢?因爲我也是看來的,覺得題目還是挺有意思,但是原作者給出的方案,我想了想覺得還有優

原创 面試官:"準備用HashMap存1w條數據,構造時傳10000還會觸發擴容嗎?"

// 預計存入 1w 條數據,初始化賦值 10000,避免 resize。 HashMap<String,String> map = new HashMap<>(10000) // for (int i = 0; i < 10000;

原创 Android 本地化適配:RTL(right-to-left) 適配清單

本文首發自公衆號:承香墨影(ID:cxmyDev),歡迎關注。 一. 序 越來越多的公司 App,都開始淘金海外,尋找更多的機會。然而海外市場千差萬別,無論是市場還是用戶的使用習慣,都有諸多的不同。 當你接觸一款出海 App 的時候,除了

原创 EventBus 消息的線程切換模型與實現原理

一. 序 EventBus 是一個基於觀察者模式的事件訂閱/發佈框架,利用 EventBus 可以在不同模塊之間,實現低耦合的消息通信。 EventBus 因爲其使用簡單且穩定,被廣泛應用在一些生產項目中。 通常我們就是使用 EventBu

原创 Gson 解析 Json,容錯纔是關鍵,舉幾個常用的實例!

一. 序 前幾天寫了一篇,關於利用 GSON 在 JSON 序列化和反序列化之間,數據容錯的文章。最簡單的利用 @SerializedName 註解來配置多個不同 JSON Key 值,或者再使用 @Expose 來配置一些例外的情況。更復