原创 kotlin的簡約lambda

kotlin的lambda可以很簡約: //正常情況 view.setOnClickListener({ v -> v.setVisibility(View.INVISIBLE) }) //當lambda是函數的最後一個參數時,可

原创 泛型擦除以及類型安全

帶你深挖Java泛型類型擦除以及類型擦除帶來的問題這篇文章寫的很好,通俗易懂,轉載記錄一下。 如有侵權,請聯繫我刪除。

原创 Java鎖相關

爲什麼Java中需要“鎖”? Java支持多線程訪問,對於一個公共資源,如果多個線程同時對其進行讀寫操作,就會發生程序混亂,造成未知的bug,所以需要對這個公共變量資源加鎖,讓各個線程按順序對這個資源進行操作,避免發生數據不一致的

原创 kotlin中類怎麼禁止外部通過構造器創建實例

在Java中,如果不想讓外部通過類的構造方法來創建實例對象的話(單例模式中經常見),一般會將構造方法聲明爲private: class A { ... private A(){ } ... } 那麼在kotlin中怎麼

原创 Android-Activity中setContentView流程解析

在Activity中加載佈局的時候,我們都知道調用的是setContentView方法,那麼具體是如何實現的呢? 本文基於參考其他人博客以及自己翻閱源碼做一個記錄。 隨便找到一個Activity,點擊setContentView方

原创 flutter/dart 語法點記錄

1.??=運算符 如果 ??= 運算符前面的變量爲null,則賦值,否則不賦值 var param1 = "hello", param2 = null; param1 ??= "world"; param2 ??= "

原创 Java泛型-基礎理解

在開發過程中經常會看到泛型或者使用到泛型,所以基於自己的理解,拆分幾篇文章由淺入深記錄一下。 爲什麼需要泛型? 泛型這個概念,是在JDK1.5引進來的,其實可以把它理解成一個語法糖,它解決的是什麼問題呢? 舉個栗子: 假如有以下一

原创 Android Studio運行flutter項目,點擊方法名提示Cannot find declaration to go to

在github找了個flutter的demo準備學習下,跑起來之後發現代碼很多關鍵字都沒有高亮了,點擊也不能跳轉、關聯源碼,搜了一下,以下辦法解決了我的問題: 刪除項目根目錄下的.idea文件夾 File/Close Proje

原创 HashMap實現原理記錄

HashMap實現原理 基於jdk1.8深入瞭解HashMap底層原理。 1.put實現流程 final V putVal(int hash, K key, V value, boolean onlyIfAbsent,

原创 事件分發主要過程

Touch事件分發中只有兩個主角:ViewGroup和View。ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三個相關事件。View包含dispatchT

原创 最近太忙了

最近公司任務比較多,都沒時間寫文章了。。。 點贊 收藏 分享 文章舉報 山水相逢-z 發佈了53 篇原創文章 · 獲贊 25 · 訪問量 3萬+ 私信

原创 hellocharts-android-Android圖表開源庫的使用(一)

最近項目中需要用到圖表,技術有限,自己實現起來有難度,於是對比之後,最終決定使用hellocharts這個開源庫,傳送門:https://github.com/lecho/hellocharts-android ,一是因爲引入方便,二是

原创 微信小程序學習一初探“小程序”

最近這兩天,“微信小程序”這個詞佔據了朋友圈,大有一番風起雲涌之勢,當然,還不可能誇張到使原生App開發人員失業這種程度。當然,作爲一名技術人員,時刻保持對新技術的好奇心是必須的,所以在網上找大神的教程,搭建了一下開發環境,來學習一下這

原创 ClassLoader雙親委託機制流程

在加載類的時候,Java建議使用雙親委託這種模型,流程其實很簡單,借用一張流程圖簡單記錄一下:

原创 Android進程間通信機制Binder學習

Android 系統是基於 Linux 內核的,Linux 已經提供了管道、消息隊列、共享內存和 Socket 等 IPC (跨進城通信)機制。但是由於性能、穩定性和安全性幾方面的原因,Android系統設計了Binder機制來實現I