
面试
文章平均质量分 78
哈特谢普苏特
海上生明月
展开
-
View绘制流程分析
setContentView()做了什么我们知道在onCreate()方法中setContentView()方法是将xml文件解析到DecorView上,那么DecorView又是什么时候显示在屏幕上的呢?我们都知道activity的生命周期中onResume()做了很多工作,而onResume()的调用如上图所示。在ActivityThread中,handleResumeActivity()方法不光调用了performActivity()方法最终实现对onResume()方法的调用,还进行了以原创 2022-02-15 10:26:24 · 1221 阅读 · 0 评论 -
setContentView()做了什么事情?
setContentView()做了什么事情原创 2022-02-09 23:14:06 · 1861 阅读 · 1 评论 -
Java 锁
1.volatilevolatile具有可见性和一致性,禁止指令重排序优化,但是无法保证原子性,因为很多操作都不是原子操作(如i++)由Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write这六个除了volatile之外,Java还有两个关键字能实现可见性,它们是synchronized和final。而final关键字的可见性是指:被final修饰的字段在构造器中一旦被初始化完 成,并且构造器没有把“this”的引用传递出去(this引用逃原创 2021-12-27 17:10:10 · 213 阅读 · 0 评论 -
sychronized理解
1..class和.dex文件对于Java而言,编译后生成的是.class文件而对于android而言,.class文件是中间状态,还需要将.class文件通过dex工具变成.dex文件,最终变成.apk文件如一个类Demo,注意一定不要将它写在xx.com.example下,而是直接写在java文件夹下(即不要导入任何包)血的教训,千万不要写入任何路径,否则会像我一样折腾半天Demo类定义如下,里面写了一个foo()的方法,且被synchronized修饰(可以对比一下有无修饰生.原创 2021-12-27 14:06:35 · 355 阅读 · 0 评论 -
Java线程的一点理解
1.线程和进程的区别进程是资源进行分配和调度的基本单位 进程包含线程 进程有自己线程cpu调度的最小单位2.线程的生命周期一个线程被创建变成了new,在获取到除了cpu之外的资源后变成了runnable,在等待检测锁的时候是blocked,在被执行wait() sleep()以及join()等方法后变为waiting以及等待特定的时间时是timed_waiting,终结后变为terminated.理解一下blocked:当一个线程被调用了wait()/join()之类的方..原创 2021-12-24 16:04:20 · 610 阅读 · 0 评论 -
Activity启动过程——10.0源码分析
安卓10 activity启动流程分析原创 2021-12-23 17:30:59 · 2175 阅读 · 0 评论 -
HashMap原理
1.构造器hashmap有四个构造器(1) HashMap() 如下所示代码 DEFAULT_LOAD_FACTOR = 0.75f /** * Constructs an empty <tt>HashMap</tt> with the default initial capacity * (16) and the default load factor (0.75). */ public HashMap() { ...原创 2021-12-19 23:03:56 · 450 阅读 · 0 评论