原创 jvm的分類

2020太難了,我前ios同事失業2個多月還沒找到工作,面試機會都很少,所以一定要沉澱下技術,jvm其實離我們做Android的很遠,但是又很近,因爲像熱修復或者Java垃圾回收機制,都會用到,但是相對來說Java後臺的人是比學的,但是把

原创 JVM 加載.class文件的方式

加載.class文件方式 1:從本地系統中直接加入 2:通過網絡獲取,典型的是web applet 3:從zip壓縮包讀取,成爲日後jar ,war格式的基礎 4:運行時計算生成,使用最多的是動態代理技術 5:由其他文件生成,典型是jsp

原创 android 談談invalidate和postInvalidate方法的區別

看這二個方法的區別只有深入到代碼中去看了,首先看invalidate()方法 invalidate()分析 public void invalidate() { invalidate(true); } 然後到

原创 kotlin Control Flow

kotlin流程控制語句,官網:https://kotlinlang.org/docs/reference/control-flow.html Control Flow: if, when, for, while kotlin中的流程語句

原创 Java 非對稱加密介紹

祕鑰對:公鑰和私鑰 非對稱:公鑰加密私鑰解密   私鑰加密公鑰解密 公鑰互換:二個組織或者個人 最典型的非對稱加密是RSA,它的加密級別很高,但是加密速度是很慢

原创 面試題:創建線程有幾種方式

網上有說3或者4種,他們說的4種或者3種是把什麼線程池也放進去了,今天我們就來看下oracle官網的描述, A thread is a thread of execution in a program. The Java Virtual

原创 android 組件化gradle語法

Android項目中都有build.gradle文件,其實這是gradle構建工具,gradle是由Groovy語言開發的,之前只是把簡單的語法學習了下,由於要找工作 沒時間學習了,如果能找到工作 上班後再學習,也有可能這輩子就離開it了

原创 性能優化之 線程優化

線程調度原理 在任意時刻,只有一個線程佔用cpu,處於運行狀態,在多線程併發的情況下,輪流使用CPU的使用權,但是現在是多核的時代, 比如現在很多電腦或者手機是8核的,意思是有8個cpu,讓這8個cpu去執行任務,如果是執行任務很多的情況

原创 Kotlin入門簡介

Kotlin是一門可以運行在Java虛擬機,瀏覽器,Android上的靜態語言,與Java100%兼容,所以Kotlin可以做後臺 前端  android,這是要全棧的節湊, 學習Kotlin最好的資料:https://kotlinlan

原创 Android組件化APT使用與介紹

針對上篇講的module之間的跳轉問題, 這就出現了路由的概念了,應該上路由去幫助我們去做那些事 APT(Annatotion Processing Tool) 是一種處理註解的工具,它對源代碼文件進行檢測找出其中的註解(Annotati

原创 android組件化項目部署

組件化的好處 分模塊打包 測試  統一版本管理   組件化可以不互相依賴,但可以互相交互,任意組合,高度結偶 phone module:新建出可以獨立運行的模塊   apply plugin: 'com.android.applicati

原创 android aop(三) AspectJ

AspectJ是面向切面編程的一個框架,它遵循了Jvm的語法並擴展了java語言,我們知道一個類想要運行起來,是先javac命令變成.class(字節碼) 再由java命令把該類加載到jvm中,而AspectJ就在javac命令在.jav

原创 java 二個值交換的幾種方式

比如:a=4,b=5,在不引用第三個變量時實現兩者值交換 這個面試題可能會到問到,在牛客網上就遇到這題,今天拿出來記錄下,怕忘記 真正的做法有三種,依次實現下 第一種:最容易想到的方法,就是引用一箇中間變量 int a = 4;

原创 一道字符串面試題

題目:輸入“aaaaabbbbccc”,輸出“a5b4c3” 我所想到的是用map去實現,key存字符,value存出現的次數,代碼如下: public static void main(String[] args) {

原创 Java面試題:判斷一個數是不是2的幾次冪

第一種思路就是拿2*2*2...*2是否等於某個值,這樣也可以判斷 public static boolean isPowerOfTwo(int n) { if(n<=0){ return f