C++ 和 Java 的区别(A C++ programmer's perspective)
最近需要开发一个 Java 的代码生成器,周末看了 2 天廖雪峰的 Java 教程,就能直接上手写 Java。说下自己最明显的感受,用的不多,理解不一定对:
- 【编译/解释】Java 编译+解释,运行在 JVM,跨平台移植方便,但执行速度/效率比 C++ 低
- 【编程范式】Java 纯面向对象,除了几个基本类型,都是类;C++ 支持多种编程范式:面向过程、面向对象、模板元编程...
- 【垃圾回收】Java 有自动的 GC 垃圾回收机制,只管 new,不用 delete
- 【语言特性】Java 没有指针、头文件、多重继承、运算符重载、union、struct 等,历史包袱不像 C++ 那么重,整体感觉比 C++ 更纯粹、精简、统一
- 【其他】
- Java 的泛型:类型擦除,不能实例化模版类型 T,必须将
Class<T> clazz
传入,然后通过反射机制clazz.newInstance()
来实例化 - Java 基本数据类型大小都有明确规定,不像 C++ 只规定基本数据类型的最小大小
- Java String 不可改,每次修改创建新对象,需要 StringBuilder
- Java 的泛型:类型擦除,不能实例化模版类型 T,必须将
细节区别还很多,印象深刻的就是以上几个。用到的其他一些特性如:异常、正则、String、容器(集合)、IO、多线程等,做一些基础功能开发时,并没有感受到太大差异,如果有 C++ 基础,会很快上手。
相关文章
本文作者:Zijian/TENG(微信公众号:好记性如烂笔头),转载请注明原文链接:https://www.cnblogs.com/tengzijian/p/17067561.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具