大家又重新住在了一起。大家都很开心,张伟每天都在认真工作、学习各种知识,就是为了完成那本属于他的计划。
“你们说,我是学c++还是jave?我觉得我有必要问一下展博了。”张伟细细的问道
张伟你至于吗?这么努力,你放心大力不会在德国跟别人跑的。我的学生,我相信他。胡一菲拿出老师应有的气质。
就是,张律师。大力是你的,没人跟你抢。还有你的钢琴老师跟我说你的进步很大,只要自己买个钢琴在家练,就OK了,你不用慌!准不准备买个好钢琴,我可以赞助你点。赵海棠哈哈大笑。
“你什么时候变得对我这么好了?我都不太相信了。算了,先感谢你的好意。对了不要忘了跟那个老师说,我还要再练练。不着急出师。我去给展博打电话了。”
“喂,展博,你有空吗?我想学一种编程语言,你跟我说说有哪几种。什么好学一点,又上手快。”张伟带着恳求的语气。
“没问题,张伟。你拿笔和纸记下来,有C语言(绘图能力强,具有可移植性)、java(通用性、高效性)、c++(支持多重编程范式)、php(超文本预处理语言)、c#语言等等。你可以学c++或者jave但是两个还是有区别的。1、 JAVA的应用在高层,C++在中间件和底层
2、 JAVA离不开业务逻辑,而C++可以离开业务为JAVA们服务
3、 java语言给开发人员提供了更为简洁的语法;取消了指针带来更高的代码质量;完全面向对象,独特的运行机制是其具有天然的可移植性。
4、 java 是运行在JVM上的,之所以说它的可移植性强,是因为jvm可以安装到任何的系统
5、 c++不是不能在其他系统运行,而是c++在不同的系统上运行,需要不同的编码(这一点不如java,只编写一次代码,到处运行)。java程序一般都是生成字节码,在JVM里面运行得到结果。
6、 java 在web 应用上具有c++无可比拟的优势
7、 java在桌面程序上不如c++实用,C++可以直接编译成exe文件,指针是c++的优势,可以直接对内存的操作,但同时具有危险性。(操作内存的确是一项非常危险的事情,一旦指针指向的位置发生错误,或者误删除了内存中某个地址单元存放的重要数据,后果是可想而知的)。
8、垃圾回收机制的区别。c++用析构函数回收垃圾,java自动回收(GC算法),写C和C++程序时一定要注意内存的申请和释放。
9、 java 丰富的插件是java 发展如此迅速的原因
10、 java 很大的沿袭了c++的一些实用结构
11、对于底层程序的编程以及控制方面的编程,c++很灵活,因为有句柄的存在。
Java并不仅仅是C++语言的一个变种,它们在某些本质问题上有根本的不同:
(1)Java比C++程序可靠性更高。有人曾估计每50行C++程序中至少有一个BUG。姑且不去讨论这个数字是否夸张,但是任何一个C++程序员都不得不承认C++语言在提供强大的功能的同时也提高了程序含BUG的可能性。Java语言通过改变语言的特性大大提高了程序的可靠性。
(2)Java语言不需要程序对内存进行分配和回收。Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,在Java语言中,内存的分配和回收都是自动进行的,程序员无须考虑内存碎片的问题。
(3)Java语言中没有指针的概念,引入了真正的数组。不同于C++中利用指针实现的“伪数组”,Java引入了真正的数组,同时将容易造成麻烦的指针从语言中去掉,这将有利于防止在c++程序中常见的因为数组操作越界等指针操作而对系统数据进行非法读写带来的不安全问题。
(4)Java用接口(Interface)技术取代C++程序中的多继承性。接口与多继承有同样的功能,但是省却了多继承在实现和维护上的复杂性。
总的来说Java和C++各有各的优势,无需争论那种语言好,哪种语言不好,能够存在就一定有它的优势,只要你决定了要学编程就扎实的学好,编程语言都是相同的,学会一种,其他的学起来就很容易了。你可以慎重考虑一下,自己选。
张伟和展博通了两个小时的电话,张伟不是心疼跨国电话费,而是在想学什么。
最终他选择了c++。