`

C++程序员和Java程序员的差异

阅读更多

 

首先说明,这几年接触的最多的程序员就是C++程序员和Java程序员,这只是我自己的一点体会而已,一个人的眼光难免是浅薄的。不过,欢迎拍砖,也欢迎对号入座。

从对基础知识掌握的程度来说,例如数据结构和算法,C++程序员要比Java程序员牢靠得多。究其原因,大概是因为C++程序员需要经常自己实现那些项目基础设施,但是Java程序员大多拿来即用。公平地说,C++不是一门适合程序员初学者的语言,但是Java是。C++程序看起来确实要比Java程序稍难懂一些,C++程序员往往思维更加严密。另一方面,我也发现内地的程序员要比沿海和发达城市的程序员基础扎实,而且低调内敛,不那么浮华,但是就是善于解决那些难啃的问题。

从视野的角度来说,Java程序员往往要更宽泛一些。由于语言本身上说,Java将很多C++逃不掉的陷阱和坑洞都填补了,仅从语言上说,无论是入门还是使用都显得更加简单,程序员就有更多精力来关注语言本身之上的事情。而且,Java领域的类库明显要丰富得多,所以在考虑某一个设计实现的时候,Java程序员很喜欢到处寻找可以拿来即用的类库,但是C++程序员习惯于自己去做其中大部分的事情。对于面向对象设计,模块和组件的设计,Java程序员往往要掌握得稍好一些。

在读书的时候,很多程序员都会给自己订立一个方向,有的喜欢写底层实现,有的喜欢研究人工智能,有的喜欢做企业应用,有的喜欢涉足互联网……就像对C++和Java等语言的选择一样。当然,工作有时候并不如心中所愿,这方面可能和自己最初的方向并不一致——有人选择继续,发现这个活儿也不错;有人就会选择放弃,继续执着地寻找自己喜欢的事情。我有三个当初和我一起学Java学J2EE的朋友,现在一个成了DBA,一个卖水果去了,还有一个在创业搞机顶盒。

当然,也有很多程序员天天都在纠结:学什么更赚钱?C++还是Java有前途?前端还是后端有前途?转管理还是转咨询?也有人这样问我,对于这样深不可测的问题,为了避免显得我没文化、见识浅,我总是一笑置之。

文章系本人原创,转载请注明作者和出处(http://www.raychase.net

注:本博客已经迁移到个人站点 http://www.raychase.net/ ,欢迎大家访问收藏,本ITEye博客在数日后将不再更新。

4
3
分享到:
评论
3 楼 josico 2012-10-27  
弱弱的问一下 页游是用C还是用java写的啊 
2 楼 gaozhonghui 2012-10-25  
这几天在您的blogger上学习了不少东西,
思考的东西多了!
1 楼 qdpurple 2012-10-25  
今天花了2个小时时间,浏览了楼主的站点.慨叹自己知道的太少.(java开发2年). 佩服楼主对技术的追求与执着.

内地程序员与沿海程序员, 第一次听到这样的见解 , 有意思! 呵呵 

相关推荐

    Java虚拟机中冷对象的研究_骆凡.caj

    操作系统的差异性,能在各种不同的物理机上面建立统一的运行环境,实现了一次编 译,处处运行的目的。这使得程序员能够把主要精力放在具体的业务逻辑上,使得工 作更加有效率。而同样是为了提高工作效率, java ...

    java基础学习笔记 java整合技术 java工具类.rar

    java较为简单,例如:java不再支持多继承,C++是支持多继承的,多继承比较复杂,C++中有指针,java中屏蔽了指针的概念,避免了绝大部分的指针越界和内存泄露的问题,这里说明一下,java语言低层是用C++实现的,并不...

    java图像压缩源码-bookmark:一个java程序员日常书签导航~在线工具,API,帮助手册,资源,阅读

    本人是一个java程序员,常常在日常开发中会用到线上一些工具,我个人感觉很实用的,因此分享给大家,希望大家喜欢,欢迎各位fork一起完善! 在线工具 :java quartz cron表达式生成 :开发人员工具集合如json,php,css...

    智能软件源码统计软件工具

    linecount是一个智能源码统计专家软件工具,可以对多种程序源码进行详细的统计,包括但不限于VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL等。它可以准确地分析出程序中代码行、注释行和空白行的行数...

    JAVA面试题最全集

    简述 Java Server Page 和 Servlet 的联系和区别。 33.简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34.EJB规范规定EJB中禁止的操作有哪些? 35.java除了8种基本类型外,在虚拟机里还有哪一种,...

    java 面试题 总结

    Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。 12、final, finally, finalize的区别。  final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 ...

    超级有影响力霸气的Java面试题大全文档

    Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。 15、final, finally, finalize的区别。  final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 ...

    链接器和加载器.PDF(链接器和加载器 Beta 2)

    《链接器和加载器》首先通过实例深入浅出地阐述了在不同的编译器和操作系统中链接和加载过程的差异。在这个基础上,作者提出了清晰实用的忠告,来帮助你创建更快、更清晰的代码。你将会学习如何规避和Windows DLL...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    Tcl_TK编程权威指南pdf

    我一直使自己在很大程度上保持着一个Tcl程序员的角色,而我们工作组中的其他人员则埋头于Tcl本身的C语言实现。我创建的应用程序有HTML编辑器、EMAIL比用户接口程序、Web服务器以及用户数据库,我们的商务应用就建立...

    编写程序高手的造就的文章

    自然,很快他就从一个c++高手变成了java高手。如果一个编程新手学java,学两年也不如一个高手学两个月的。高手学新东西快。  高手写代码速度快。统计结果说,人均每人月的有效代码速度大概是300至400行。但那是...

    oecp一种将 OSV 用作认证工具

    OECP工具聚焦openEuler内核和基础包,保障二次发行版生态核心特性不...检测2个ISO(基于RPM)的软件包,软件包内文件,库文件接口(C/C++),内核KABI的变化差异,检测同一个软件(rpm包)在不同版本下的变化以及差异

    asp.net知识库

    .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下...

Global site tag (gtag.js) - Google Analytics