Iml
Iml
全部文章
分类
Java基础(3)
Java集合(5)
JVM(13)
LeetCode(3)
RabbitMQ(1)
Redis(6)
Solr(1)
SpringMVC(2)
剑指offer(52)
多线程与高并发(10)
数据库(2)
未归档(44)
计算机网络(3)
设计模式(1)
归档
标签
去牛客网
登录
/
注册
代码学习之路
我之为我,只在异人处
全部文章
(共146篇)
类加载过程
类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析 加载 类加载过程的第一步,主要完成下面3件事情: 通过全类名获取定义此类的二进制字节流 将字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成一个代表该类的 ...
2019-07-01
0
517
Java对象创建过程
①类加载检查: 虚拟机遇到一条 new 指令时,在常量池中查看是否有new的参数对应类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程 ②分配内存: 新生对象分配内存。对象所需的内存大小在类加载完成后便可确定 分配方...
2019-07-01
0
524
如何判断一个类是无用的类?
方法区主要回收的是无用的类,那么如何判断一个类是无用的类的呢? 判定一个常量是否是“废弃常量”比较简单,而要判定一个类是否是“无用的类”的条件则相对苛刻许多。类需要同时满足下面3个条件才能算是 “无用的类” : 该类所有的实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。 ...
2019-07-01
0
949
垃圾回收器
以上是 HotSpot 虚拟机中的 7 个垃圾收集器,连线表示垃圾收集器可以配合使用。 单线程与多线程:单线程指的是垃圾收集器只使用一个线程,而多线程使用多个线程; 串行与并行:串行指的是垃圾收集器与用户程序交替执行,这意味着在执行垃圾收集的时候需要停顿用户程序;并行指的是垃圾收集器和用户程序同时...
2019-06-30
0
551
常见的垃圾回收算法
1、标记清除法 方法:标记阶段:首先将需要进行回收的内存进行标记,清除阶段:将标记的对象进行清除 缺点:碎片化比较多,无法给大的对象分配内存;常常效率较低 2、复制算法 方法:将内存分为相等的两块,每次只使用一块内存,将这一块内存中存活的对象复制到另一块内存中,将使用过的内存进行清理; ...
2019-06-30
0
597
对象的引用
对象的引用 通过对如何判断一个对象是够应该被回收知道,可达性分析和程序计数法都是需要判断该对象是否被引用,但是对于不同的引用,回收的情况也不尽相同 1、强引用 被强引用关联的对象不会被回收。 使用 new 一个新对象的方式来创建强引用。 Object obj = new Object(); ...
2019-06-30
0
477
如何判断对象是否死亡
怎么判断一个对象是否应该被回收? 主要的方法分为两种:引用计数算法和可达性分析算法,目前常用的就是可达性分析算法; 程序计数算法 对一个对象添加一个引用的计数器,当该对象被引用依次那么计数器+1,如果引用被释放,那么计数器-1,这样根据对象最终引用次数为0时,将该对象回收; 缺点:...
2019-06-30
0
583
线程的使用
1.1.三种使用线程的方法 实现 Runnable 接口; 实现 Callable 接口; 继承 Thread 类。 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说...
2019-06-30
0
583
线程死锁
1.1.什么是线程死锁? 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入死锁状态。 下面通过一个例子来说明...
2019-06-29
0
558
线程的生命周期和状态
1.1.线程状态 Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态(图源《Java 并发编程艺术》4.1.4 节)。 线程在生命周期中并不是固定处于某一个状态而是随着代码的执行在不同状态之间切换。Java 线程状态变迁如下图所示(图源《Java 并发编程艺术...
2019-06-29
0
598
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页