Java GC 垃圾回收算法
引用计数收集器
跟踪收集器
(1)标记-清除收集器
(2)标记-压缩收集器
(3)复制收集器
(4) 增量收集器
(5)分代收集器
hashcode和equals
hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在JDK的Object.java中,这就意味着Java中的任何类都包含有hashCode() 函数。
equals它的作用也是判断两个对象是否相等,如果对象重写了equals()方法,比较两个对象的内容是否相等;如果没有重写,比较两个对象的地址是否相同,价于“==”。同样的,equals()定义在JDK的Object.java中,这就意味着Java中的任何类都包含有equals()函数。
可以使用哪些方法创建多个线程;Thread有哪些接口?
1、继承Thread类实现多线程
2、实现Runnable接口方式实现多线程
3、通过Callable和Future接口创建线程
**
多线程中有哪些锁
**
- 可重入锁
2.可中断锁
3.公平锁
4.读写锁
线程的5种状态:
新建(New) ,就绪(Runnable),运行(Running),阻塞(Blocked),死亡(Dead)
为什么要使用线程池:
系统启动一个新线程的成本是比较高的,而使用线程池避免了频繁的创建和销毁线程,可以很好地提高性能。
线程池在系统启动时即创建大量空闲的线程,程序将一个Runnable对象或Callable对象传给线程池,线程池就会自动
启动一个线程来执行它们的run()或call()方法,当run()或call()方法执行结束后,该线程并不会死亡,而是再次
返回线程池中成为空闲状态,等待执行下一个对象的run()或call()方法。