原创 android 開源庫 AndroidSlidingUpPanel 簡單使用

1 簡介 AndroidSlidingUpPanel  可向上拖動的view 官方展示:     2 使用 2.1 添加依賴 repositories { mavenCentral() } implementation 'co

原创 JetPack實戰(1)架構組件簡介

  官網:https://developer.android.google.cn/jetpack/ 包含以下8大架構組件: 其中 databinding,Lifecycles,LiveData,ViewModel,Room,5個最爲常用,

原创 androidstudio配置註釋模板

步驟 一、File->Setting->Editor->Live Templates 二、創建一個Template Group 點擊最右邊+,創建一個Template Group,填寫group名,任意填寫 三、創建Live Templa

原创 JAVA設計模式----觀察者模式

概念 觀察者模式(Observer),又叫發佈-訂閱模式(Publish/Subscribe),定義對象間一種一對多的依賴關係,使得每當一個對象改變狀態,則所有依賴於它的對象都會得到通知並自動更新 其中,Subject類是主題,它把所有對

原创 coordinaryLayout簡單使用

層疊佈局,各個大廠的App使用率還是很高的 佈局: <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout

原创 簡單封裝RecycleView

 封裝通用RecycleAdapter package com.example.selfview.adapter; import android.util.SparseArray; import android.view.Layout

原创 JVM(2)Voletile、內存屏障

高可用、高擴展、高性能   volatile前後都會加內存屏障,這個內存屏障可以禁止指令重排序 lock: addl   Volatile 1. 線程可見性 boolean flag =true; new Thread(){

原创 JAVA多線程(1)鎖,CAS,volatile 常見問題

拋出一個問題,自由發揮。。   請描述Synchronized和reentrantlock的底層實現以及衝入的底層原理 https://blog.csdn.net/Aqu415/article/details/102930585   請描

原创 JAVA多線程(1)幾種常見鎖,及其原理

1. 用戶態和內核態 JDK早期,sync都是重量級鎖,因爲申請鎖資源必須通過kernel系統調用 ring 0,1,2,3      Linux只用了0,3 0用戶態    3內核態   2. CAS 不需要系統申請鎖,通過彙編指令執行

原创 android筆記----通過View獲取Activity

通過View獲取Activity public static Activity getActivityFromView(View view) { if (null != view) { Context context = v

原创 JVM(2)相關問題

1.對象的創建過程 Object o = new Object(); 獲取內存 初始化 建立關聯   2. DLC 單例 是否需要加 Volatile 必須加! 可以防止指令重排序 做判斷的時候 if(obj != null){}   半

原创 Flutter開發(5)頁面跳轉,數據傳遞,數據回傳

頁面跳轉,傳遞數據 import 'package:flutter/material.dart'; class Product { final String title; final String description;

原创 Flutter開發(1)相關資料,安裝、下載、鏡像、環境配置、模擬器使用、示例demo

1. Flutter相關資料 GitHub:https://github.com/Solido/awesome-flutter shoocase: https://flutter.dev/showcase flutter中文網:https

原创 Flutter開發(3) 常用組件 listview 、 gridview 、rowWidget(水平佈局)、columnWidget(垂直佈局)

listview  import 'package:flutter/material.dart'; void main() => runApp(MyApp( items:new List<String>.generate(1000

原创 Flutter開發(2) 常用組件 Container,image

Container     容器 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends Statele