- 2025-03-21ZGC垃圾回收器
ZGC(TheZGarbageCollector)是JDK11中推出的一款低延迟垃圾回收器,它的设计目标包括:停顿时间不超过10ms;停顿时间不会随着堆的大小,或者活跃对象的大小而增加;支持8MB~4TB级别的堆(未来支持16TB)。CMS与G1停顿时间瓶颈在介绍ZGC之前,首先回顾一下CMS和G1的GC过程以及停顿时间的瓶
- 2025-03-21java基础--序列化与反序列化的概念是什么?
经典总结序列化就是把Java对象变成一串字节流,字节流就像是一种“通用语言”,可以在不同的计算机间传递。这样做的主要目的是保存对象的状态,以便以后可以恢复。反序列化则是把这些字节流重新变回Java对象,恢复对象的状态,方便程序继续使用它。详情内容1.什么是序列化?序
- 2025-03-21C++设计模式-建造者模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
一、基本介绍1.1模式定义建造者模式(BuilderPattern)是一种创建型设计模式,它将复杂对象的构建过程与对象表示分离,使得同样的构建过程可以创建不同的产品。比如汽车制造流水线,底盘、引擎、外壳的组装流程固定,但不同配置组合能产出轿车、SUV等不同车型。1.2核心价值构建
- 2025-03-21JVM 01
今天是2025/03/2016:36day09总路线请移步主页Java大纲相关文章今天进行JVM前二个模块的归纳首先是JVM的相关内容概括的思维导图以下是针对思维导图中内存管理和垃圾回收(GC)模块的详细说明:1.内存管理(运行时数据区)1.1堆(Heap)作用:存储对象实例和数组(所有线程共
- 2025-03-21手把手教你玩转C++类和对象(万字解析,超详细!!!)
类和对象一、类的定义1.类的定义格式2.访问限定符3.类域二、实例化1.实例化概念2.对象大小内存对齐规则为什么要内存对齐?三、this指针四、C++和C语言实现Stack对比C实现Stack代码C++实现Stack代码五、类的默认成员函数六、构造函数构造函数怎么写?构造函数特性初始化
- 2025-03-21Java 面试题及答案整理
1.sleep()和wait()有什么区别?sleep():方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间。因为sleep()是static静态的方法,他不能改变对象的机锁,当一个synchronized块中
- 2025-03-21cpp自学 day14(类和对象——对象的初始化和清理)
构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题一个对象或者变量没有初始状态,对其使用后果是未知 构造同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题 析构C++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调
- 2025-03-21【Effective Java】第6条:避免创建不必要的对象
引言在Java编程中,对象创建是一个常见的操作,但并非所有对象创建都是必要的。过多的对象创建不仅会增加内存消耗,还可能影响程序的性能。在《EffectiveJava》一书中,第6条“避免创建不必要的对象”就深入探讨了这一问题,并提出了相应的优化策略。本文将对该条内容进行详细解析,
- 2025-03-20如何更优雅构建对象?
1.使用Lombok的@Builder注解Lombok的@Builder是一种非常简洁且强大的工具,可以自动生成Builder模式的代码。它避免了手动编写大量样板代码,并且支持链式调用和不可变对象的设计。@Data@NoArgsConstructor@AllArgsConstructor@BuilderpublicclassPerson{p
- 2025-03-20202108121235 - 垃圾回收
那JVM是如何判断哪些对象应该被回收?哪些应该被保持呢?在古代,刑罚中有诛九族一说。指的是有些人犯大事时,皇上杀一人不足以平复内心的愤怒时,会对亲朋好友产生连带责任。诛九族时首先需要追溯到一个共同的祖先,再往下细数连坐。堆上的垃圾回收也有同样的思路。我们接下来就具体分析
- 2025-03-20Java垃圾回收机制详解及性能优化详解
Java的垃圾回收机制是Java虚拟机(JVM)自动管理内存的一项重要功能。下面是对Java垃圾回收机制和性能优化的详细解释:垃圾回收机制:对象的生命周期:在Java中,当创建对象时,它们会被分配在堆内存中。当对象不再被引用时,它们就变得不可达。垃圾回收机制负责识别和清理这些不可达的对象,以
- 2025-03-20最全java面试题及答案(208道)
本文分为十九个模块,分别是:「Java基础、容器、多线程、反射、对象拷贝、JavaWeb、异常、网络、设计模式、Spring/SpringMVC、SpringBoot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」 ,如下图所示:共包含208道面试题,本文的宗旨
- 2025-03-20Java面试八股文合集(持续更新)
1、ConcurrentHashMap底层原理ConcurrentHashMap是在HashMap的数据结构上,增加了CAS操作和Synchronized互斥锁来保证线程安全,并且使用volatile关键字修饰了node中的next和val字段来保证多线程环境下某个线程新增或修改节点对于其他线程是立即可见的。在进行添加操作时:计算ha
- 2025-03-20前端JavaScript(JS)基础介绍_js前端
目录1.简介2.JS引入方式3.JS基础语法4.JS函数5.JS对象6.JS事件1.简介网页三剑客之一(HTML、CSS、JS)。JavaScript(简称“JS”)是一种高级的,解释型的编程语言。它是Web开发中不可或缺的一部分,主要用于增强网页的交互性,实现动态效果。跨平台、面向对象都跟java有着一样的特性
- 2025-03-20WPF界面与逻辑处理的转变
一、界面交互对象的区别搭积木Winform最基本的功能实现,拖控件也符合认知从自己看到的东西入手,看不见的东西理解复杂,要自己去想象扩展 有这样一个问题控件、拆开重新实现组装实现Winform要复杂一些,GDI绘图,画笔,线,正方形,贴图,画文字完全处于抽象思维,看不到实际的显示效果
- 2025-03-20【新手必备,老司机赶紧收藏!】3DMAX这款插件你有了吗?
一、插件简介3DMAX材质ID随机生成器(MaterialIDsRandomGenerator,简称MIRG)是3DMAX"彩虹系列"工具中的高效插件,专为可编辑多边形对象设计。其核心功能是通过一键操作实现材质ID的智能随机分配,支持多边形、元素、平滑组及多对象批量处理,并允许自定义颜色生成规则。兼容3dsMax
- 2025-03-19golang的GC机制
一、垃圾回收什么是垃圾回收?垃圾回收(GC,garbagecollection)是自动内存管理的一种形式,通常由垃圾收集器收集并适时回收或重用不再被对象占用的内存,比如众所周知的Java语言就能很好的支持GC。后起之秀——Go语言也同样支持垃圾回收,它使得Go程序员在编写程序的时候不再需要考虑内
- 2025-03-19【java】反射
反射反射机制可以读取注解。反射的概念在Java中,通常情况下,我们在编译时就知道要使用的类和方法。但反射机制打破了这种常规,它允许程序在运行时动态地分析类、调用方法、操作字段等。也就是说,在运行时,程序可以根据需要来决定要使用哪个类、调用哪个方法、访问哪个字段,而
- 2025-03-19对象
1.类和对象1.对象的介绍1.面向过程:自己的事情自己干,代表语言C语言洗衣服:每一步自己要亲力亲为->找个盆,放点水,找个搓衣板,搓搓搓2.面向对象:自己的事情别人帮忙去干,代表语言Java语言洗衣服:自己的事情别人干->全自动洗衣机3.
- 2025-03-19鸿蒙开发-ArkTS对象语法与类型定义
ArkTS(ArkTypeScript)是鸿蒙生态中用于应用开发的一种语言,在TypeScript(TS)的基础上进行了扩展,提供了声明式UI、状态管理等能力。以下是ArkTS对象语法与类型定义的详细解析:一、对象语法1)对象的定义:在ArkTS中,对象通常是通过类(class)来定义的。类是一个蓝图,它描述了对象的属性
- 2025-03-19一文掌握:掌握 JavaScript 中的内存生命周期。
一、JavaScript内存生命周期概述JavaScript内存生命周期和大多数程序语言一样,分为三个阶段:分配内存、使用内存、释放内存。不同的编程语言对于这三个阶段的实现方式有所不同,而JavaScript的内存管理是自动的,由JavaScript引擎帮助开发者处理。一、JavaScript内存生命
- 2025-03-19[总结篇]C#性能优化-垃圾回收-每个细节都有示例代码
前言在C#开发中,性能优化是提升系统响应速度和资源利用率的关键环节。当然,同样是所有程序的关键环节。通过遵循下述建议,可以有效地减少不必要的对象创建,从而减轻GC的负担,提高应用程序的整体性能。记住,优化应该是有针对性的,只有在确定了性能瓶颈之后,才应该采取相应的措施
- 2025-03-18使用weak_ptr解决shared_ptr循环引用问题
在C++中,使用weak_ptr可以解决shared_ptr的循环引用问题。循环引用通常发生在两个或多个对象通过shared_ptr互相引用,导致引用计数无法归零,内存无法释放。以下是详细解释和示例:1.循环引用的问题假设两个类A和B互相持有对方的shared_ptr:#include<memory>classB;/
- 2025-03-18python赋值与拷贝
目录赋值拷贝浅拷贝深拷贝序言看这个贴子的小伙伴们肯定了解了python3各种基础的变量赋值操作。那么接下来我们深入的来了解一下赋值和拷贝之前的区别!赋值说明:赋值操作是将一个变量名指向某个对象的内存地址,而不是创建一个新的对象。赋值后,多个变量名会共享同一个对象。特点
- 2025-03-18Java序列化
Java中的序列化是什么?序列化(Serialization)是将对象的状态转换为字节流的过程,以便:持久化存储:将对象保存到文件或数据库中。网络传输:通过网络将对象从一个JVM传递到另一个JVM。缓存:将对象序列化后存储到缓存中(如Redis)。反序列化(Deserialization)是序列化的逆过程,即将