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

细节区别还很多,印象深刻的就是以上几个。用到的其他一些特性如:异常、正则、String、容器(集合)、IO、多线程等,做一些基础功能开发时,并没有感受到太大差异,如果有 C++ 基础,会很快上手。

相关文章

如何掌握所有的程序语言 —— 王垠

posted @ 2023-01-26 09:27  Zijian/TENG  阅读(53)  评论(0编辑  收藏  举报