简介不同点
关注点接口调用优化运行方式知识架构java不擅长的地方 基本就这些了 简介
一点粗鄙的总结,肯定不全面。
java我只接触了 后端部分。
c++基本上你可以应用在所有的领域,但是在后端方面,会被java打的妈都不认识。
c++像万能工具,java就像是专用工具。万能工具优化的再好也不如专用工具。
c++适合造轮子,java是使用轮子。
java调用的东西,往下挖,你会发现都是c/c++,但是上层调用,就是java比较好使。 java的锁,跟到jvm,你就会发现也是调用了c/c++。
(别纠结了,jvm都是c/c++写的,因为效率)
c++关注点是解决一个个技术点,实现某项功能,eg:截屏、格式转换、消息转发、人脸识别……
java的关注点是系统整合,解决用户的某一类需求,eg:财务系统、客户管理系统、车辆管理系统…
c++让你看脚下,java给了你全局观。
接口调用 c++使用是各种原生的api接口(第三方库、操作系统的、驱动文件的~),比较偏底层一点点。你要好好考虑多线程、事件处理、阻塞、通信、硬件、操作系统等等细节。
java也是使用的是各种jar包(也是各种第三方库),但是他们在后端这个领域形成了自己的一套成熟的解决方案,就固定的使用那么几个包。语法固定、注释固定、
代码组织格式固定。
c++的优化方面,多线程、减少内存复制、利用多核、GPU算……
java的优化方面,绝大部分是架构上的优化,微服务、分布式、dns加速、升级虚拟机配置。
java代码级的优化,基本上不存在的(当然循环调用数据库这种还是要注意的)。。。因为像是jvm调优、高并发啥的,这都是高级内容。
c++你要准备各种依赖的dll到对应的目录下。
java简单,打出一个jar包之后,运行(需要预先装好java运行环境)
java -jar xxxxxx.jar
就好了。
知识架构 c++,各种专有领域,音视频、驱动、图像处理、界面……
java,网络、数据库、消息转发,定时任务。
c++你动不动就崩溃,java你想写的崩溃了都很难。
简单点来说c++玩的杂;
java最最底层玩的是数据库,增删改查,主要操作对应是字符串。
c++你可能要往下跟好几层,才能看到最底层的接口。
java一般代码你往下跟个3层,就能看到数据库操作函数了。
让java写GUI程序(界面编程),放弃吧,太丑了。
让java调用系统接口要JNI的方式,麻烦。