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有前途?前端还是后端有前途?转管理还是转咨询?也有人这样问我,对于这样深不可测的问题,为了避免显得我没文化、见识浅,我总是一笑置之。

时间: 2024-08-02 23:59:06

C++程序员和Java程序员的差异的相关文章

c# java 转化-将C#程序转化成java程序

问题描述 将C#程序转化成java程序 //创建请求对象 HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(PostUrl); if (httpWebRequest == null) { return ""; } #region 填充httpWebRequest的基本信息 httpWebRequest.ContentType = contentType; httpWebRequest.Method = &

java程序-写一个Java程序检测电脑硬件信息,风扇转速等等

问题描述 写一个Java程序检测电脑硬件信息,风扇转速等等 写一个Java程序检测电脑硬件信息,风扇转速等等,跪求写一个Java程序检测电脑硬件信息,风扇转速等等,要求代码清晰,谢谢 解决方案 > **_是的_ 很有道理** 解决方案二: 其实虚拟机加载的时候硬件信息已经加载到内存中了,具体获取办法,调用内置类库里面的类即可,至于调用哪个,请自己查 解决方案三: 参考这里http://blog.sina.cn/dpool/blog/s/blog_4cef5c7b0100wyrd.html

java程序 不能运行-.java程序运行中出现的问题

问题描述 .java程序运行中出现的问题 为什么相同我在eclipse上运行java程序的时候只有run configurations选项而没有run Application选项,我的java刚入门,提的问题比较低级,请各位大神多多指教,非常感谢! 解决方案 没有run Application(运行应用)选项,很明显,你的文件里面没有Main函数,Main函数是程序的入口和出口,没了Main函数自然不能启动程序的.看看你的文件里面有没有:`public static void main(Stri

Java程序员常犯的五个错误_java

下面针对每一个错误用文字说明结合代码详解的方式展示给大家,具体内容如下: 1. Null 的过度使用 避免过度使用 null 值是一个最佳实践.例如,更好的做法是让方法返回空的 array 或者 collection 而不是 null 值,因为这样可以防止程序抛出 NullPointerException.下面代码片段会从另一个方法获得一个集合: List<String> accountIds = person.getAccountIds(); for (String accountId :

都说大家忍不了程序员,那么程序员有没有忍不了的事情

简评:都说大家忍不了程序员,什么程序员不善于和大家交流沟通,特立独行,每天穿着固定,不会撩妹还宅...其实程序员也有很多忍不了的事情,比方说产品跑来和你说,这个功能很简单,实现一下就行了,以及其他同学让你帮助他PS证件照,我是软件工程师,不是PS大师好哇? 栈和队列的区别是啥? 吃多了拉就是队列:吃多了吐就是栈. 世界上最遥远的距离不是生与死,而是你亲手制造的Bug就在你眼前,你却怎么都找不到她. <C++程序设计语言>比<C程序设计语言>厚了几倍...果然有了对象就麻烦很多. 怎

Java程序的性能优化StringBuffer与Vector

程序|性能|优化 ? Java使得复杂应用的开发变得相对简单.毫无疑问,它的这种易用性对Java的大范围流行功不可没.然而,这种易用性实际上是一把双刃剑.一个设计良好的Java程序,性能表现往往不如一个同样设计良好的C++程序.在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身.养成好的代码编写习惯非常重要,比如正确地.巧妙地运用java.lang.String类和java.util.Vector类,它能够显著地提高程序的性能.下面我们就来具体地分析一下这方面的问题.

Java 程序中的多线程

程序|多线程 在Java程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应该能够编写简单的多线程程序. 为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务.这样的程序有单个控制线程,控制在这四个任务之间线性地移动.此外,因为所需的资源 - 打印机.磁盘.数据库和显示屏 -- 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含

实现Java程序跨平台运行的12点注意事项

程序 编写跨平台Java程序注意事项 使用Java语言编写应用程序最大的优点在于"一次编译,处处运行",然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的,那么如何才能编写一个真正的跨平台的Java程序呢?下面是在编写跨平台的Java程序是需要注意的一些事情: 1. 编写Java跨平台应用程序时,你可以选择JDK1.0,1.1,1.2或支持它们的GUI开发工具如:Jbuilder,Visual Age for Java

Java程序性能优化(辛苦了几个小时,还经历了一次停电,我真是命苦!)

程序|性能|优化 Java程序性能优化 一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子:import java.util.Vector;class CEL {    void method (Vector vector) {        for (int i = 0; i < vector.size (); i++)  // Violation            ; //