您的位置 首页 java

如果你都系统的学过Java和C++,你会发现以下这些差异

关注微信公众号老卢私塾

如果你都系统的学过 Java 和C++,你会发现以下这些差异(我现录现想的,缺少的请评论补充):

1命名规范:

gcc /g++是Unix_C代码风格(Unix和C的关系看我之前的视频去),其命名规范为 your_age 这种单词全小写用下划线连接的命名风格。

再比如函数(方法)名:get_db_by_name()

VC++是 匈牙利命名法 :成员范围_类型功能。如m_lpszName其中m表示是成员变量(JAVA中叫属性),lp是指针类型,sz是字符串,Name是功能。

Java命名规范,采用驼峰命名法,如getElementById()

那用哪个呢?我建议还是各自用各自的吧。这就是开发的不容易之处,尤其是 C语言 开发,JAVA可以毫无顾忌的跨平台,反正跟应用层 程序员 没啥关系,全是底层实现的。而C/C++程序员,你就得考虑了,WIN下用VC, Linux 用gcc,你这代码风格怎么统一?这也是现在都用Qt的原因。总之现在的流行作法都是:采用Unix_C命名规范。

2面向对象

之前视频说过了,Java把C++中的OO中的鸡肋的令人迷惑的功能去掉了,所以都学下来你会明显发现Java的面向对象好学得多。请大家自行思考下C++的 虚函数 、纯虚函数和Java抽象方法、抽象类、接口的区别。

3小件或者说是中间件数量

在这方面不管是C++还是PHP,甚至是 Python ,见着Java都得叫大哥。那中间件多得啊,我从200X年学到现在都学不完,Java程序员应该都能体会出来,Java其实就是Web开发,咱们先不说安卓,安卓相对Web的中间件少多了。而Web开发不管你是PHP还是Python或 Node.js 都不会感觉太难MVC,唯独Java开发,玩了快20年的Web了,还是不断的出品新玩意儿!一个CRUD功能就能有N家厂商N种中间件来实现。

而针对为了方便使用Java中间件,各IDE也是不断升级,比如我用过的这些Java IDE: JCreator 、Borland JBuilder、 Eclipse MyEclipse 、JetBrains的IDEA。只要有一个新Java中间件出现, IDE 势必会为其开发出一个简便使用的GUI界面插件。SSM大家肯定都会,我相信都明白我刚才说的意思。在我们Struts+Spring+Hibernate年代就已经是这样了。

说回C++,基本开发必用的中间件(撇开行业应用类的不说)就是个 boost 。至于 之前说过的 MFC , WTL ,那都是win下才有的,在Linux下不用,越是Linux开发越纯粹,就是我之前视频所说:gcc+API=搞定一切。如果你是C圈的程序员,不管你是WIN平台的还是LINUX平台的,都明白,WIN下C开发,要不是有了Qt,死的心都有了。不过说回来,这也是有比较才有伤害, 微软 的MFC在业界是饱受争议的,现在军工领域用它的不少,互联网大厂都不再使用MFC了。我现在写VC都是用WTL,轻便,够用,跨平台(WIN多个版本)。

4.思维方式

因为C/C++就是用来开发端应用(PC,服务器),是C/S甚至是纯C端思维方式

而JAVA的Web开发,是B/S思维方式。

这对初级程序员的思维方式会产生麻烦,比如处理交互、数据的异步、同步。

Java的安卓开发也是端应用,与后台服务器无关。所以JAVA安卓开发和C/C++开发时的思考方式是相同的,也是C/S处理模式

我再说白些,端处理网络数据(本机的不提了,WEB基本就没有本机)的方式:

C/S == Socket(TCP)

Web == HTTP(含 HTTPS ,WebSocket)

学过网络的同学们知道,这两个不是一层的协议。所以其思考方式和代码组织方式差异巨大。

今天又扯多了,辛苦大家倾听了,谢谢关注我,再见!

文章来源:智云一二三科技

文章标题:如果你都系统的学过Java和C++,你会发现以下这些差异

文章地址:https://www.zhihuclub.com/189299.shtml

关于作者: 智云科技

热门文章

网站地图