![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
九阳真经
文章平均质量分 95
孙悟空2015
追根溯底,回归本质,挖掘兴趣,激发思考。
展开
-
《他强由他强,清风拂山岗;他横由他横,明月照大江》之四
当发生 GC 时,用户线程必须全部停下来,才可以进行垃圾回收,这个状态我们可以认为 JVM 是安全的(safe),整个堆的状态是稳定的。对停顿时间敏感的应用:G1设计目标是为了提供可预测的停顿时间,通过允许用户设定期望的停顿时间(比如50毫秒),G1能够通过控制每次垃圾收集的工作量来满足这个目标。这个机制确保了在进行这些操作时,没有正在执行的线程会更改JVM的内存状态,这对于垃圾回收器正确识别可达对象、重新编译方法或执行其他需要全局视角的操作是十分重要的。函数式接口是只定义了一个抽象方法的接口。原创 2024-06-20 15:00:04 · 994 阅读 · 0 评论 -
《他强由他强,清风拂山岗;他横由他横,明月照大江》之三
由于OSGi环境中对类的加载以及模块间的依赖关系有严格的控制,所以OSGi也自定义了类加载器的行为,实现类加载时可能不遵循传统的双亲委派模型。这样的设计将对象的创建与其使用的控制分离开来,工厂模式隐藏了对象创建的细节,而代理模式控制了对象的访问,并可以在对象方法的执行前后添加额外逻辑。构造函数中不仅包括开发者定义的初始化代码,还包括编译器可能提供或者插入在构造函数中的特殊代码,用来初始化方法区中的数据。设置对象头:JVM需要在对象头中设置一些数据,如对象是哪个类的实例、对象的哈希码、对象的GC代年龄等。原创 2024-05-11 17:24:44 · 711 阅读 · 0 评论 -
《他强由他强,清风拂山岗;他横由他横,明月照大江》之二
使用 ArrayList 更适合查找和更新操作频繁的场景,因为它提供了快速的随机访问能力,两者都是线程不安全的。LinkedList 更适用于插入和删除操作频繁的场景,尤其当这些操作发生在列表的头部或者中间位置时。在决定使用 ArrayList 还是 LinkedList 时,要考虑应用的具体需求,包括操作类型(插入、删除、访问),操作的位置(头部、中间、尾部)以及性能要求。原创 2024-04-12 14:13:55 · 1059 阅读 · 0 评论 -
《他强由他强,清风拂山岗;他横由他横,明月照大江》之一
TCP提供可靠的、面向连接的传输服务,适合于那些需要确保数据完整性和顺序性的应用。它通过一系列复杂的协议机制(如错误检测、确认重传、流量控制和拥塞控制)来保证这一点。UDP则提供简单的、不可靠的、无连接的数据传输服务,适合于那些对实时性要求高、对数据丢失不敏感的应用。UDP由于其低延迟和较小的协议开销,常用于那些对网络质量要求不太高的场景。选择TCP或UDP通常取决于应用程序对数据传输的具体需求。一些应用可能还会结合使用TCP和UDP来利用各自的优势。原创 2024-03-22 10:23:53 · 676 阅读 · 0 评论