一、C++、C、Go 中的如下语句:
struct xxx s1;
vector<int> v; (甚至会调构造函数!)
var ABC someType
其实会创建一个 能用的 对象!!、之后用他们进行操作基本上没什么大问题
但是在 Java 里、如果写:
ArrayList arr;
但是不去 new 一块内存并且分配的话、一用 arr 就会报空指针错误、这样写是不能用的!!
所以写多了 Java 代码、写 C系列代码总觉得用栈变量很不舒服、总觉得很危险、不完整、但其实用栈而非堆,可以防止忘了释放指针(Java中随便new、有GC)
但C++、C中还有个风险就是返回局部变量的指针给外面使用、但这个风险在Go里是没有的、Go又有指针、又有垃圾回收、在确实没人引用某个变量的情况下才会释放、挺逆天的。
二、C++、C 导 “包” 比较困难、h、lib、dll基本上是三座大山
Java可以用maven
go就离谱了、一个 import 完事了
三、C++、C 里的“框架”看起来很low、而且根本不像是框架、比如Opengl和SDL、而且数据的类型都千奇百怪(有些人喜欢char数组、有些人喜欢string、每个框架还都喜欢定义自己的宏、枚举、甚至命名方法各式各样:匈牙利、m_xxx g_xxx SDL_xxx
namespace::
总之、C++的代码里奇怪的符号和命名和 API 层出不穷、Go 和 Java 相对好点、但Java里一个类名能长的离谱、也挺恶心的
而 Go 或者 Java、如果是Web开发、那就关注每个接口怎么写、传入什么、返回什么就行了、根本不需要想太多全局性的问题、程序的难点在于分布式、在于数据库设计、"架构"、在于数据库驱动开发、数据结构是什么不需要你管、数据的存储基本只需要和数据库打交道(你在内存搞个复杂数据结构、其实很少见)
但 C++ 或者 C 离了数据结构和算法什么东西差不多都没法写。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!