排序
面试题:Java 面向对象编程与面向过程编程的区别是什么?
Java 面向对象编程(OOP, Object-Oriented Programming)与面向过程编程(Procedural Programming)代表了两种不同的编程范式,它们在程序设计的理念、结构以及解决问题的方式上有着显著的区别...
面试题:Java 线程安全的集合有哪些?
在Java中,线程安全的集合类主要分为两类:传统线程安全集合和现代并发集合。以下是常见的线程安全集合及其特点: 1. 传统线程安全集合 这些集合通过 synchronized 关键字或全局锁实...
面试题:Synchronized 修饰静态方法和修饰普通方法有什么区别?
在 Java 中,synchronized 关键字可以用来修饰实例方法、静态方法或者代码块。当它用于修饰静态方法和普通(实例)方法时,存在一些重要的区别,主要体现在锁的对象以及锁定的范围上。 锁定对象...
面试题:Java 里的对象在虚拟机里面是怎么存储的?
在 Java 虚拟机(JVM)中,对象的存储主要涉及几个关键部分:堆内存、方法区以及栈内存。以下是关于 Java 对象在 JVM 中如何存储的详细说明: 堆(Heap) 对象实例数据:几乎所有的对象实例数据...
面试题:什么是 Java 中的 JIT(Just-In-Time)?
Java中的JIT(Just-In-Time)编译器是Java虚拟机(JVM)的一部分,用于提高Java应用程序的执行效率。Java源代码首先被编译成字节码(bytecode),这是一种与平台无关的中间表示形式。 当运行这...
面试题:Java 中的深拷贝和浅拷贝有什么区别?
在Java中,对象拷贝通常分为浅拷贝(Shallow Copy)和深拷贝(Deep Copy)。它们之间的主要区别在于如何处理对象中的引用类型成员变量。 浅拷贝(Shallow Copy) 定义:浅拷贝创建了一个新的对...
面试题:Java 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别?
Java 中的 ConcurrentHashMap 在 1.7 和 1./XMLSchema 版本之间有显著的区别,这些变化主要集中在实现细节、性能优化以及并发控制策略上。以下是 1.7 和 1.8 版本之间的几个关键区别: 数据结构...
面试题:为什么 Netty 不使用 ThreadLocal 而是自定义了一个 FastThreadLocal ?
Netty 使用 FastThreadLocal 而不是标准的 Java ThreadLocal,主要是为了提高性能和优化内存使用。 虽然 ThreadLocal 提供了线程本地存储的能力,允许每个线程拥有其变量的一个独立初始化的副本...
面试题:什么是 Java 的 StampedLock?
StampedLock 是 Java 8 引入的一种锁机制,位于 java.util.concurrent.locks 包中。 它提供了一种比传统的读写锁(如 ReentrantReadWriteLock)更灵活和高效的替代方案,特别适用于读操作远多于...
面试题:Java 中的 CMS 和 G1 垃圾收集器如何维持并发的正确性?
CMS(Concurrent Mark-Sweep)和 G1(Garbage First)垃圾收集器在Java中通过不同的机制来维持并发操作的正确性,即确保在应用程序线程与垃圾收集器线程同时运行时不会导致数据不一致或错误。 ...