当前位置: 首页 > news >正文

Java的对象和类

C++创建对象和Java创建对象的区别

  • C++:类名 变量 = 直接创建对象
  • Java:类名 变量 = 只创建引用,没有对象
  • Java必须new才会真正生成对象

因为Java的设计规则是:

Java中所有对象,都必须放在堆里,不能直接在栈上

  • 栈上只能放:基本类型+对象引用
  • 真正的对象永远在堆
  • 想要对象,必须new

C++则是:

  • 栈上可以直接放对象
  • 堆上也可以放对象
  • 灵活,但容易出错

放在堆的对象和放在栈中的对象有什么区别?

  • 栈上对象:自带内存、自动销毁、速度快、不能手动控制生命周期
  • 堆上对象:手动创建、手动/GC管理、灵活但稍慢

1、位置&大小
栈(stack)

  • 空间小、固定
  • 函数一进就分配,一出就回收
  • 存:局部变量、基本类型、对象引用、C++栈对象

堆(heap)

  • 空间大
  • 想多大就多大
  • 存所有Java对象、C++new出来的对象

2、生命周期(最重要区别)
栈对象

  • 离开大括号{}就自动销毁
  • 不用你管,自动释放
  • 生命周期固定、短

堆对象

  • 生命周期由你控制
  • C++:必须delete,否则泄露
  • Java:GC自动回收

3、访问速度

  • 栈:超快(CPU直接访问)
  • 堆:慢一点(要寻址)

4、能不能返回?
栈对象
Solution func() {
Solution sol;
return sol; // 可以,返回拷贝
}

栈指针/引用(危险)
Solution* func() {
Solution sol;
return / // ❌ 严重错误!
}
函数结束sol已经销毁,返回野指针

堆对象(安全)
Solution* func() {
return new Solution(); // ✅ 没问题
}

5、赋值行为(超级关键)
栈对象赋值 = 拷贝一份新对象
Solution a;
Solution b = a; // 真·复制一个新对象
改变b不会改变a,两者独立,互不影响

堆对象赋值 = 只复制指针/引用
Solution* a = new Solution();
Solution* b = a; // 两个指针指向同一个对象
改变b也会改变a

Java全是这种行为
Solution a = new Solution();
Solution b = a; // 同一对象
这个时候你改变b对象,a对象也会跟者改变

http://www.jsqmd.com/news/629480/

相关文章:

  • 理财类多语言算力矿机源码深度解析:技术架构与实现路径
  • Display Driver Uninstaller (DDU):显卡驱动问题的终极解决方案与实战指南
  • Unity 3D游戏性能优化全攻略:如何让你的游戏在低配设备上也能流畅运行
  • 遥感AI的‘降噪耳机’:深入拆解Earth-Adapter如何用频率域方法净化卫星图像特征
  • FaceFusion应用指南:电商模特换脸、影视修复、虚拟偶像制作
  • 使用 C# 删除 PDF 中的数字签名柿
  • Hive实战:如何用SQL分析用户学历与收入的关系(附完整代码)
  • Free-NTFS-for-Mac:macOS NTFS读写终极免费解决方案
  • 智慧树自动刷课插件:3分钟完成安装,告别手动刷课的终极解决方案
  • 大模型解释性不是选修课:3类监管合规红线+4套生产级XAI工具链,今天不部署明天被叫停
  • 安装VcXsrv开启X-server
  • EZO I2C传感器库深度解析:pH/EC工业测量系统构建
  • 大模型边推理边学习?揭秘Meta/Llama-3.2与阿里Qwen2-RLHF中隐藏的在线增量训练协议栈(附开源适配补丁)
  • 我不是狐狸,我是那Harness Engineering闹
  • 2026年福斯润滑油代理商核心资质与技术服务解析:长城润滑油代理商推荐、雪弗龙润滑油代理商推荐、切削液代理商推荐选择指南 - 优质品牌商家
  • OneNET数据流查询避坑指南:如何用Python精准获取最新和历史传感器数据
  • XCA 2.9.0:高效管理数字证书与密钥的全面解决方案
  • 终极网盘下载加速方案:8大平台直链解析神器LinkSwift完全指南
  • 2026年工业提升门厂家参考:兰州工业平移门、兰州工业折叠门、兰州工业推拉门、兰州工业提升门、兰州工业滑升门、兰州工业翻板门选择指南 - 优质品牌商家
  • 彻底告别Cursor AI试用限制:5分钟掌握开源项目cursor-free-vip的核心技术
  • MATLAB高效合并多张fig图像:子图布局的自动化实现
  • Cursor VIP:创新共享模式让AI编程助手触手可及
  • 开源Windows系统优化工具:3分钟让你的电脑运行速度提升51%
  • 嵌入式低功耗设备电池寿命精准预测模型
  • Linux I/O 演进史:从管道到零拷贝,一篇串起个服务端核心原语俨
  • 5大核心功能深度解析:Jasminum如何重塑你的中文文献管理工作流
  • 神经符号推理系统:架构演进与产业落地新范式
  • Servlet 的了解和使用
  • 别怕公式!用大白话+Python代码带你一步步还原DDPM的降噪采样过程
  • 使用手机如何将纸质礼薄转换为电子礼薄?