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