锁定老帖子 主题:从java转向C\c++开发要学会些什么
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (17)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-27
shendl 写道 楼主说得不对。
C,C++,Java是3种截然不同的语言。 要用该语言的能力去编程。 不要总是记得Java。否则你写出的C++就是Java风格的代码。而这不好。不行。 我并没说记得什么,这不是武侠小说,废掉武功练出葵花宝典。我们要记得不是语法的条条框框。我们要的思想,设计的思想。 |
|
返回顶楼 | |
发表时间:2009-09-27
需要的是耐心,是重视。如果以为很简单,那结果会令你失望了。
举例来说,单是字符串操作,从JAVA到C++,你都可能会觉得难以适应。如果你用STL库,还好办些(不过刚学C++的话你还没功夫学STL吧),如果你不用这些库,你会发现多数情况下你要自己对字符串指针的长度与结尾负责,你会发现以前做JAVA时较多关心业务问题,现在做C++时陷进了技术细节问题上。 |
|
返回顶楼 | |
发表时间:2009-09-28
就凭我自身经验来看,一个是 操作系统内核方面的知识要熟悉,就象winapi、宏 之类的东东,另一个就是 java确实是关注业务方面,c/c++是技术实现问题
实际操作过程中发现java的IDE比如eclipse很好用,而c/c++的IDE至今没发现一个很好用的,可能是太熟悉eclipse的操作了 |
|
返回顶楼 | |
发表时间:2009-09-28
更‘高级’的语言,更关注的是业务
‘低级’点的语言,要更多考虑实现细节 C的字符串操作就是个典型的例子 |
|
返回顶楼 | |
发表时间:2009-09-28
个人觉得指针
|
|
返回顶楼 | |
发表时间:2009-09-28
mxswl 写道 java 转 c++还是容易些的,毕竟oo那一部份对于有一些功力的java coder来说是基本没问题了. 转c的话要花一些功夫. 我觉得学c要结合着操作系统,编译原理, runtime env来理解,才能有所成. 不能像玩java的时候一样,把底层都交给jvm,自己只管的oo就行. 这个帖子就这个回复有用。 |
|
返回顶楼 | |
发表时间:2009-09-29
我觉得本质的区别在于,真正需要用C/C++的项目都是比较关注性能的,否则真的建议使用Java。既然项目关注性能,那么我们在做架构,设计和编码的时候,贯穿始终的东西都是这个:性能。那么有的时候可能我们的设计会有妥协,然后具体设计和编码的时候,对算法的要求比较高。
其次,我觉得C/C++太关注细节,和底层操作系统结合比较紧。一般来说,一个Team里面要有几个大牛,专门做这块东西的封装。指针的使用仍然是C/C++系统里面一个常见的问题根源。按照C++的建议,对指针的使用应尽量使用智能指针(这个不一定是auto_ptr或者shared_ptr,有可能是自己封装的)。不过,实际中,很少有项目会这样做。指针的问题还是比较浪费时间的。 再则,就是线程安全。这个最重要的是第三方库的安全和系统调用是否安全,这个在Unix/Linux上非常非常重要。 还有就是C++多年来的一些问题。没有一个权威的日志库,没有一个权威的单元测试库,没有一个跨平台的GUI库。 我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。 |
|
返回顶楼 | |
发表时间:2009-09-29
C++跟java相比最大的好处是速度快,C++是一门不完善的语言,发展速度极慢,java程序员向C++转换也是不得已
|
|
返回顶楼 | |
发表时间:2009-09-29
ankyhe 写道 我觉得本质的区别在于,真正需要用C/C++的项目都是比较关注性能的,否则真的建议使用Java。既然项目关注性能,那么我们在做架构,设计和编码的时候,贯穿始终的东西都是这个:性能。那么有的时候可能我们的设计会有妥协,然后具体设计和编码的时候,对算法的要求比较高。
其次,我觉得C/C++太关注细节,和底层操作系统结合比较紧。一般来说,一个Team里面要有几个大牛,专门做这块东西的封装。指针的使用仍然是C/C++系统里面一个常见的问题根源。按照C++的建议,对指针的使用应尽量使用智能指针(这个不一定是auto_ptr或者shared_ptr,有可能是自己封装的)。不过,实际中,很少有项目会这样做。指针的问题还是比较浪费时间的。 再则,就是线程安全。这个最重要的是第三方库的安全和系统调用是否安全,这个在Unix/Linux上非常非常重要。 还有就是C++多年来的一些问题。没有一个权威的日志库,没有一个权威的单元测试库,没有一个跨平台的GUI库。 我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。 1、本人喜欢log4j的c++版本 log4cplus 2、没有一个跨平台的GUI库(有一个sw库是跨所有平台的,只是你不了解)。 我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。 3、这个说的好,业务通通用java,核心通讯或服务器用c |
|
返回顶楼 | |
发表时间:2009-09-30
ankyhe 写道 我觉得本质的区别在于,真正需要用C/C++的项目都是比较关注性能的,否则真的建议使用Java。既然项目关注性能,那么我们在做架构,设计和编码的时候,贯穿始终的东西都是这个:性能。那么有的时候可能我们的设计会有妥协,然后具体设计和编码的时候,对算法的要求比较高。
其次,我觉得C/C++太关注细节,和底层操作系统结合比较紧。一般来说,一个Team里面要有几个大牛,专门做这块东西的封装。指针的使用仍然是C/C++系统里面一个常见的问题根源。按照C++的建议,对指针的使用应尽量使用智能指针(这个不一定是auto_ptr或者shared_ptr,有可能是自己封装的)。不过,实际中,很少有项目会这样做。指针的问题还是比较浪费时间的。 再则,就是线程安全。这个最重要的是第三方库的安全和系统调用是否安全,这个在Unix/Linux上非常非常重要。 还有就是C++多年来的一些问题。没有一个权威的日志库,没有一个权威的单元测试库,没有一个跨平台的GUI库。 我觉得新项目选择使用C++要谨慎,实在觉得有性能需要,也可能只是系统的20%。其他80%可以考虑使用Java。 GUI我还真没见过 完全跨平台的的 什么库。 不改改能直接用的估计也只是个demo罢了.... C++并非写应用的首选,特别是所谓的 操作db, crud之类。光是string编码就够喝一壶的了。 |
|
返回顶楼 | |