Java 和 C++、Go、Python 有什么区别?
先自己想一想,再看参考要点
参考要点
- Java 编译为字节码由 JVM 执行,热点代码由 JIT 编译为机器码,因此能跨平台,C++ 依赖于特定的平台
- Java 没有指针,支持自动垃圾收集,不支持多重继承(用接口代替)和操作符重载
- Go 直接编译为机器码,启动快,goroutine 由运行时调度到少量线程上,用 channel 通信,错误通过返回 error 值处理
- Python(CPython)是动态类型,运行时才发现类型错误,有全局解释器锁(GIL),CPU 密集的任务要用多进程
- 内存回收上,Java 用分代的垃圾收集器,Go 用与程序并发的标记清除,Python 以引用计数为主