java面试题
文章平均质量分 82
Pennywise.
这个作者很懒,什么都没留下…
展开
-
JVM知识点汇总(2)
目录一. 垃圾回收的优点和原理. 并考虑两种回收机制二. 垃圾回收器的基本原理是什么? 垃圾回收器可以马上回收内存吗? 有什么办法主动通知虚拟机进行垃圾回收?三. Java 中会存在内存泄露嘛? 请简单描述四.Ststem.gc() 和 Runtime.gc() 会做什么事情五. finalize() 方法是什么时候被调用? 析构函数(finalization) 的目的是什么六. 什么是分布式垃圾回收(DGC)? 它是如何工作的?七. 串行(serial) 收集器和吞吐量(throughput) 收集器的区原创 2023-07-04 10:31:32 · 599 阅读 · 0 评论 -
JVM知识点汇总(1)
任何一个工程项目都是由许多类组成的, 当程序启动时, 只把需要的类加载到 JVM 中, 其他类只有被使用到的时候才会被加载, 采用这种方法一方面可以加快速度, 另一方面可以节约程序运行时对内存的开销. 此外, 在 Java 程序语言中, 每个类或接口都对应一个 .class 文件, 这些文件可以被看成是一个个可以被动态加载的单元, 因此只有部分类被修改时, 只需要重新编译变化的类即可, 而不需要重新编译所有文件, 因此加快了编译速度.public static int value = 456;原创 2023-07-03 19:31:23 · 447 阅读 · 0 评论 -
线程池知识点汇总
FixedThreadPool 是固定大小的线程池, 只有核心线程. 每次提交一个任务就会创建一个线程, 知道线程达到线程池的最大大小. 线程池的大小一旦达到最大值就会保持不变, 如果某个线程因为执行异常而结束, 那么线程池会补充一个新的线程池。这个线程池只有一个核心线程在工作, 也就是相当于单线程串行执行所有任务. 如果这个唯一的线程因为异常结束, 那么会有一个新的线程来代替它. 此线程池保证所有任务的执行顺序按照任务的提交顺序执行.: 线程池运行的最大线程数.: 线程池的核心线程数.原创 2023-06-28 10:41:01 · 53 阅读 · 0 评论 -
synchronized 知识点汇总
在虚拟机执行到 monitorenter 指令时, 首先要尝试获取对象的锁, 如果这个对象没有被锁定, 或者当前线程已经拥有了这个对象的锁, 把锁的计数器 +1 , 当执行 monitorexit 指令时将锁计数器 -1;非公平主要表现在获取锁的行为上, 并非是按照申请锁的前后给等待线程分配锁的, 每当锁被释放时, 任何一个线程都有机会竞争到锁, 这样做的目的是为了提高执行性能, 缺点是可能会产生线程饥饿现象.如果获取对象失败, 那当前线程就要阻塞等待, 知道对象锁被另外一个线程释放为止.原创 2023-06-27 19:34:26 · 39 阅读 · 0 评论 -
并发编程知识点汇总(1)
如果线程遇到了 IO 阻塞, 我不认为有一种方法可以中断线程. 如果线程因为调用 wait(), sleep(), join() 方法而导致的阻塞, 可以中断线程, 并且通过抛出 InterruptedException 来唤醒它.在某个属性被多个线程共享, 其中一个线程修改了此属性, 其他线程可以立即得到修改后的值. 因此如果是对一个共享变量进行多个线程的赋值, 而没有其他的操作, 那么可以用 volatile 来代替。不可变对象天生是线程安全的, 所以在使用时不需要进行加锁等消耗资源的操作.原创 2023-06-27 15:18:05 · 62 阅读 · 0 评论 -
InnoDB索引与MySAM索引实现的区别是什么?
6.MylSAM的回表操作是十分快速的, 因为是拿着地址偏移量直接到文件中取数据的, 反观InnoDB是通过获取主键之后再去聚簇索引里找记录, 虽然说也不慢, 但还是比不上直接用地址去访问。5.InnoDB的非聚簇索引data域存储相应记录主键的值, 而MylSAM索引记录的是地址, 而MylSAM索引文件和数据文件是分离的, 索引文件仅保存数据记录的地址。4.InnoDB的数据文件本身就是索引文件, 而MylSAM索引文件和数据文件是分离的, 索引文件仅保存数据记录的地址。原创 2023-06-23 14:17:15 · 62 阅读 · 0 评论