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