自己項目中一直都是用的開源的xUtils框架,包括BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模塊,這四大模塊都是項目中比較常用的。最近決定研究一下xUtils的源碼,用了這么久總得知道它的實現原理吧。我是先從先從BitmapUtils模塊開始的。BitmapUtils和大多數圖片加載框架一樣,都是基于內存-文件-網絡三級緩存。也就是加載圖片的時候首先從內存緩存中取,如果沒有再從文件緩存中取,如果文件緩存沒有取到,就從網絡下載圖片并且加入內存和文件緩存。
這篇帖子先分析內存緩存是如何實現的。好吧開始進入正題。
分享一波簡介的面試題目
騰訊—什么是對稱加密,什么是非對稱加密,公鑰與私鑰屬于對稱加密嗎
面試官: 什么是對稱加密,什么是非對稱加密,公鑰與私鑰屬于對稱加密嗎
心理分析:密碼學一般是大學計算機專業學的,面試官在靠這個問題的時候 并不會深入密碼學底層的內容,知識考到對稱與非對稱的區別。這個問題一般不會深入問道,但是會問道關于https,https目前使用了非對稱加密。但是求職者千萬別陷入坑中,說沒聽過對稱與非對稱。
**求職者:**應該從 加解密入手
公鑰和私鑰就是俗稱的不對稱加密方式,是從以前的對稱加密(使用用戶名與密碼)方式的提高。我用電子郵件的方式說明一下原理。
使用公鑰與私鑰的目的就是實現安全的電子郵件,必須實現如下目的:
-
- 我發送給你的內容必須加密,在郵件的傳輸過程中不能被別人看到。
-
- 必須保證是我發送的郵件,不是別人冒充我的。
要達到這樣的目標必須發送郵件的兩人都有公鑰和私鑰。 公鑰,就是給大家用的,你可以通過電子郵件發布,可以通過網站讓別人下載,公鑰其實是用來加密/驗章用的。私鑰,就是自己的,必須非常小心保存,最好加上密碼,私鑰是用來解密/簽章,首先就Key的所有權來說,私鑰只有個人擁有。公鑰與私鑰的作用是:用公鑰加密的內容只能用私鑰解密,用私鑰加密的內容只能用公鑰解密。
比如說,我要給你發送一個加密的郵件。首先,我必須擁有你的公鑰,你也必須擁有我的公鑰。
首先,我用你的公鑰給這個郵件加密,這樣就保證這個郵件不被別人看到,而且保證這個郵件在傳送過程中沒有被修改。你收到郵件后,用你的私鑰就可以解密,就能看到內容。
其次我用我的私鑰給這個郵件加密,發送到你手里后,你可以用我的公鑰解密。因為私鑰只有我手里有,這樣就保證了這個郵件是我發送的。
當A->B資料時,A會使用B的公鑰加密,這樣才能確保只有B能解開,否則普羅大眾都能解開加密的訊息,就是去了資料的保密性。驗證方面則是使用簽驗章的機制,A傳資料給大家時,會以自己的私鑰做簽章,如此所有收到訊息的人都可以用A的公鑰進行驗章,便可確認訊息是由 A 發出來的了
最后
希望大家能有一個好心態,想進什么樣的公司要想清楚,并不一定是大公司,我選的也不是特大廠。當然如果你不知道選或是沒有規劃,那就選大公司!希望我們能先選好想去的公司再投或內推,而不是有一個公司要我我就去!還有就是不要害怕,也不要有壓力,平常心對待就行,但準備要充足。最后希望大家都能拿到一份滿意的 offer !如果目前有一份工作也請好好珍惜好好努力,找工作其實挺累挺辛苦的。
這里附上上述的面試題相關的幾十套字節跳動,京東,小米,騰訊、頭條、阿里、美團等公司19年的面試題。把技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節。
由于篇幅有限,這里以圖片的形式給大家展示一小部分。可以點擊藍色字體免費獲取
[外鏈圖片轉存中…(img-fi53vR9a-1619078926461)]