- 博客(5)
- 收藏
- 关注
原创 Java内存模型(JMM)
引言在《深入理解Java虚拟机》中有一张介绍JMM的图,如下:由图可知,每一个Java线程中都有一个内部的工作内存,保存了主内存共享数据的拷贝副本。这里的工作线程与JVM内存结构中一个线程私有的内存空间——虚拟机栈不是一个概念。Java线程中的并不存在工作内存,它只是对CPU寄存器和高速缓存的抽象描述。CPU线程是CPU调度的最小单位,线程中的字节码指令最终都是在CPU中执行的,CPU在...
2020-04-16 14:31:01 117
原创 ClassLoader的加载机制
简介一个完整的Java程序是由多个.class文件组成,在程序运行过程中,需要将这些.class文件加载到JVM中才可以使用,而ClassLoader就是负责加载.class文件的。何时被加载Java程序启动时,不会一次性加载程序中所有的.class文件,而是在运行过程中动态的加载相应的类到内存中;通常情况下,.class文件会在以下两种情况被ClassLoader主动加载到内存中:调用...
2020-04-15 08:58:36 245
原创 GC回收机制
最近在拉钩课程上学习Android进阶课程,跟着老师上课的内容再整理一遍笔记,理一下思路。简介与C语言相比,Java中不需要手动释放对象内存,JVM中的垃圾回收器会自动回收。在JVM中程序计数器、虚拟栈和本地方法栈不需要考虑回收问题,它们的生命周期依赖线程的生命周期。而堆和方法区需要在程序运行期间动态分配和回收内存,所以垃圾回收器主要关注这部分内存。可达性分析JVM中通过可达性分析决定对象...
2020-04-11 14:51:59 348
原创 从JVM讨论关于程序运行时的内存分配
Java文件被JVM加载到内存的过程程序计数器**作用:**记录代码已经执行到的位置,方便CPU重新执行此线程时,知道从哪里开始执行指令。**使用场景:**恢复线程、分支操作、循环操作、跳转、异常处理等。补充:程序计数器不规定OOM;程序计数器的线程私有的,每条线程内部都有一个稀有的程序计数器,生命周期依赖线程的创建和结束;程序计数器记录的是正在执行的虚拟机字节码指令的地址,但如...
2020-04-07 13:41:20 145
原创 RecyclerView与ItemTouchHelper实现拖拽和侧滑(移动)删除
某天学习RecyclerView正好看到这样一个效果,感觉这个小功能实现应该不难而且也能巩固知识。在开发过程中RecylerView常被用来代替ListView和GirdView实现更强大的功能,这里不花太多篇幅解释RecylerView。1.布局文件本实例布局比较简单,只使用到了两个TextView和RecylerView,XML文件如下:<androidx.recyclerv...
2020-03-06 08:52:00 271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人