- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 线程池解析
ThreadPoolExecutor threadPool = new ThreadPoolExecutor( 5,//核心线程数,即使空闲时也会被保留:建议使用《CPU核心数*2》设置为线程数量 10,//最大线程数量,当任务缓存的超过BlockingQueue时,再次启动指定线程执行任务。 50,//线程空闲下存活多久 TimeUnit.SECONDS,//存活时间的单位 new ArrayBlockingQueue<Runnable>(5),//阻塞队列,任务超过核心线程数后,会
2021-03-13 17:11:03 254
原创 LeakCancary源码分析
if (!LeakCanary.isInAnalyzerProcess(this)) { LeakCanary.install(this);}public static RefWatcher install(@NonNull Application application) { return refWatcher(application) .listenerServiceClass(DisplayLeakService.class) .excludedRefs(Andro
2020-11-15 14:18:53 278
原创 Android事件分发代码流程分析
Android事件传递Android事件传递流程伪代码第一步/** * Activity#dispatchTouchEvent分发事件 */public boolean dispatchTouchEvent(MotionEvent ev) { //调用PhoneWindow分发事件。->第二步 if (getWindow().superDispatchTouchEvent(ev)) { return true; } //返回false 表示所有View都不处理该事件,交给
2020-10-27 13:37:04 202
原创 自定义View(onMeasure个人理解)
onMeasure方法是View的方法,主要用于测量View大小。onMeasure方法有两个参数,分别是View宽和高的MeasureSpec。protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) MeasureSpec是View中的内部类,是二进制运算,由于int是32位的,用高两位表示mode,低30表示size。MeasureSpec.getMode(widthMeasureSpec);//通过Me
2020-07-21 14:25:45 222
原创 线程知识点整理
线程的概念线程和进程的区别进程:系统分配资源的最小单位,一个进程里最少有个一个线程线程:CPU调度的最小单位并发和并行:线程的启动方式new ThreadRunnable接口Callable接口线程的方法线程的状态线程安全问题锁的种类synchronizedsynchronized(内置锁)属于可重入锁,默认是非公平锁。synchronized的缺点1:获取锁后,无法中断。2:无法尝试获取锁,取不到时只会一直等待锁。对象锁与类锁1:锁某个对象或者当前当前类的实例2:类
2020-06-02 13:27:38 352
原创 JVM学习笔记(二)
栈:栈中的生命周期是跟随线程,所以一般不需要关注堆:堆中的对象是垃圾回收的重点方法区/元空间:这一块也会发生垃圾回收,不过这块的效率比较低,一般不是我们关注的重点堆内存的划分GC判断对象存活引用计数算法:JVM早期使用,相互引用,很难判断是否该回收可达性分析:GC root强软弱虚...
2020-03-08 22:11:26 134
原创 JVM学习笔记(一)
运行时数据区线程共享内存区域方法区(运行时常量池):类信息、常量、静态变量、即时编译期后的代码堆内存:对象实例(几乎所有对象)、数组线程私有内存区域程序计数器:指向当前线程正在执行的字节码指令(CLASS)的地址(行号)。为什么需要程序计数器?因为Java是多线程,切换线程时需要记录线程所执行的位置,以便于切换回来时可以正常执行。为什么JVM使用栈?栈(Stack):出口和入口是一...
2020-03-08 22:11:07 140
原创 Flutter学习(一:Mac配置环境变量)
配置flutter环境变量下载Flutter SDKflutter官网下载地址配置Flutter环境变量打开终端、cd ~(cd到根目录下)touch .bash_profile(在没有.bash_profile时会进行创建)open -e .bash_profile(以文本的形式打开文件)在打开的文件中添加export PATH=${PATH}:/xxx/xxx/flutter...
2019-11-28 12:13:50 210 1
原创 Flutter学习(二:变量、内置类型、操作符)
变量Flutter中没有基本数据类型,全部为Object类型,所以未初始化的变量值为null。ObjectObject是所有类的基类,Object声明的变量可以是任意类型。int、String、bool等等都是Object类型。Object obj = "变量";Object i = 1;i = true;i = "sss";varvar关键字:在声明变量赋值时决定它的类型(...
2019-11-28 12:13:19 1166
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人