- 博客(7)
- 收藏
- 关注
原创 Java中的线程操作
文章目录1. 创建和运行线程1.1 使用Thread1.2 使用Runnable1.3 FutureTask配合Thread2. Thread类中常见方法sleep与yieldsleepyield线程优先级守护线程3. 线程的状态3.1 线程的五种状态(操作系统角度)3.2 线程的六种状态(Java API角度) 1. 创建和运行线程 1.1 使用Thread Thread t = new Thread(){ public void run(){ // do something
2021-10-26 10:35:38
149
原创 垃圾回收(一)
文章目录1. 确定哪些对象还“存活”,哪些已经“死去”1.1 引用计数算法1.2 可达性分析算法1.3 引用2.垃圾回收算法2.1 分代收集理论跨代引用2.2 标记-清除算法2.3 标记-复制法2.4 标记-整理算法 垃圾收集需要完成的三件事: 哪些内存需要回收? 什么时候回收? 如何回收? 在Java内存模型中,程序计数器、虚拟机栈、本地方法栈这3个区域随线程而生,随线程而灭,占中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已
2021-10-25 22:19:56
336
3
原创 虚拟机对象的分配、布局和访问
文章目录1. 对象的创建1.1 内存分配方式指针碰撞(Bump the Pointer)空闲列表(Free List)线程安全问题2. 对象的内存布局2.1 对象头2.2 实例数据2.3 对齐填充3. 对象的访问定位3.1 句柄3.2 直接指针访问 1. 对象的创建 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配
2021-10-22 00:11:47
140
原创 JVM内存模型-运行时的数据区域
JVM内存模型-运行时的数据区域 文章目录JVM内存模型-运行时的数据区域1. 程序计数器2. Java虚拟机栈3. 本地方法栈4. Java堆5. 方法区6. 运行时常量池7. 直接内存 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些数据区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户进程的启动和结束而建立和销毁。以下是Java虚拟机包括的几个运行时数据区域。 1. 程序计数器 程序计数器是一块较小的
2021-10-20 23:26:56
100
原创 JVM内存模型-运行时的数据区域
JVM内存模型-运行时的数据区域 文章目录JVM内存模型-运行时的数据区域1. 程序计数器2. Java虚拟机栈3 本地方法栈4 Java堆5 方法区6 运行时常量池7 直接内存 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些数据区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户进程的启动和结束而建立和销毁。以下是Java虚拟机包括的几个运行时数据区域。 1. 程序计数器 程序计数器是一块较小的内存空间,
2021-10-20 23:22:59
92
原创 线程安全性
线程安全性 文章目录线程安全性1. 什么是线程安全性2. 加锁机制2.1 内置锁2.2 重入 1. 什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调用方式或者这些线程如何交替执行,并且在主调代码中不需要额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 2. 加锁机制 2.1 内置锁 Java提供了一种内置的锁机制来支持原子性:同步代码块。同步代码块包含两部分:一个是作为锁的对象引用,一个作为由这个锁保护的代码块。 synchronized(lock) {
2021-10-19 00:03:19
70
原创 JavaWEB之XML
1 xml简介: * eXtensible Markup Language 可扩展标记型语言 ** 标记型语言 - 使用标签操作 ** 可扩展 - html里面的标签都是固定的,都有特定的含义。 - xml中的标签可以自己定义 可以写中文的标签 例如:<猫>...
2018-07-31 16:46:51
112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人