从一处细节对比C++语言和Java语言
2012-01-11 22:26
204 查看
关于C++语言和Java语言的对比优劣从来就没有停止过,本人一直使用C++开发,对Java也算是有点了解,最近偶然注意到一个细节,所以分享给大家
这个细节也不是什么大发现,但是他对程序员的编程习惯还是有很大影响的
C++语言没有package概念,Java有package概念。 因为C++没有package,会导致C++程序员犯一个错误,那就是不分模块,上来就进行面向对象设计,类设计,这样设计的结果就会出现一个怪兽类。 Java语言因为有package概念,就会引导程序员进行模块划分,并且注重模块间接口的清晰性。
总体对比C++, Java,Java将一些优秀的编程经验和解决方案内置到语言中了,所以对于开发者来说比较容易,而C++则提供了无数种可能性。 又以垃圾回收为例, 有人说C++能很容易的实现一个垃圾回收机制,没错,自动释放只要封装一层,很容易实现,实现引用计数方式的自动释放也不难,但是实现多线程安全的智能指针就有难度了吧。Java语言的使用者根本不需要考虑这个问题,语言机制本身已经实现了。 而C++, 直到2006年的TR1,才把智能指针shared_ptr纳入进来,今年才通过标准。即便已经通过标准,我相信对于一个初学者来说,很可能不知道选择合适的库来解决手中的问题
回顾自己这么多年使用C++开发的经验,虽然有很多乐趣,但是总体而言,成本偏高
这个细节也不是什么大发现,但是他对程序员的编程习惯还是有很大影响的
C++语言没有package概念,Java有package概念。 因为C++没有package,会导致C++程序员犯一个错误,那就是不分模块,上来就进行面向对象设计,类设计,这样设计的结果就会出现一个怪兽类。 Java语言因为有package概念,就会引导程序员进行模块划分,并且注重模块间接口的清晰性。
总体对比C++, Java,Java将一些优秀的编程经验和解决方案内置到语言中了,所以对于开发者来说比较容易,而C++则提供了无数种可能性。 又以垃圾回收为例, 有人说C++能很容易的实现一个垃圾回收机制,没错,自动释放只要封装一层,很容易实现,实现引用计数方式的自动释放也不难,但是实现多线程安全的智能指针就有难度了吧。Java语言的使用者根本不需要考虑这个问题,语言机制本身已经实现了。 而C++, 直到2006年的TR1,才把智能指针shared_ptr纳入进来,今年才通过标准。即便已经通过标准,我相信对于一个初学者来说,很可能不知道选择合适的库来解决手中的问题
回顾自己这么多年使用C++开发的经验,虽然有很多乐趣,但是总体而言,成本偏高
相关文章推荐
- 【Java语言学习】之Comparator 和 Comparable 对比
- 嵌入式语言对比之 JavaME vs QtC++
- C,C++,java,python四大语言横向对比(转)
- 高级语言虚拟机的一点理解,对比.NET和Java平台
- Java语言的26个细节
- 嵌入式语言对比之 JavaME vs QtC++
- 关于vb.net和c#,c#和java语言的语法差异对比
- 初学python(对比java语言不同) 第十一篇
- 初学python(对比java语言不同) 第九篇
- Java语言与C++语言的差异总结
- Java语言和C及C++语言的区别
- java/.net语言及IDE简易对比
- Java语言的26个细节
- 初学python(对比java语言不同) 第一篇
- Java与C/C++语言对比
- Java语言基础(类型运算细节)
- 初学python(对比java语言不同) 第十篇
- C 语言 和 C++语言的对比学习 三 运算符,表达式
- Java语言和C++语言的差异—老生常谈
- Protobuffer和json 简单对比(java语言)