论坛首页 编程语言技术论坛

从java转向C\c++开发要学会些什么

浏览 18583 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (17)
作者 正文
   发表时间:2009-09-23  
如果之前没有c或是c++的经验,从java转到c++会遇到一些你在java中不常会遇到的问题,比如内存管理,没有DI库,一些惯用法不同,野指针,程序飞掉,库的使用方式等

0 请登录后投票
   发表时间:2009-09-23   最后修改:2009-09-23
pister 写道
raojl 写道
1、继续保持java平台的可移植作风: 尽量使用标准库(顺便学学STL)、开源的东西、条件编译
2、学会忍受引用和指针的混合使用
3、继续保持面向对象的管理方式
4、学会内存管理,不要想象java的内存自管理
5、不要C++\C的网络应用库很丰富,就算有java那么丰富,你的头也会大。所以学会一门脚本语言,
   来实现一些对时效没有要求,但对功能有较高要求的网络应用。
6、该要算法的时候一定要思考,没必要的别自讨苦吃。
7、还有一点,多看别人的代码,思考与java的异同。
8、最重要的,不要告诉你在学校没学过C,没有C的基础,吃的苦头可不小。
9、想到再补充,大家一起补充。。。。


1、需求驱动技术,如果要保持可移植的作风,那么肯定要牺牲些什么,牺牲的是不同平台的差异,牺牲的是不同平台的优势,除非你想做成通用库,一般的应用没有必要这么做。可移植性即使保证了,但是时间保证了吗,成本保证了吗?我们要在之间找个平衡点,而不是一味的追求移植。
2、如果你想,你完全可以不用c++的引用,你完全可以把c++的指针当做java的引用来看,最多只是多了个资源的管理问题,要确保时候释放,正确释放。
3、不能白什么是“面向对象的管理方式”,如果说是编程方式,除了面向过程和oop外,花些时间在gp上还是值得的,目前c++的gp要比java的gp强很多。
4、见2
5、还是那就话,需求决定技术,什么技术能够要求,谁的成本低,就用谁。
……


分析的淋漓尽致。
需求决定技术,什么技术能够要求,谁的成本低,就用谁 --这只是我们程序自由的理想。往往一线的技术人员没有
决定使用哪种技术的权利,不然我为什么会被和谐呢?


0 请登录后投票
   发表时间:2009-09-23  
mathgl 写道
cyberblue 写道
宏和指针,其他的影响不大。

不过很多人喜欢炫耀冷僻的语法,某些语法甚至不可移植,相关这方面内容可以参观下“国际C语言混乱代码大赛”。


template是个很神奇的东东。。可以看看boost里头的实现...相当诡异


模板确实很抽象,比Java里的泛型诡异多了,做Java的一般都不怎么愿意用。

有个说法,C++是一些数学很强的搞出来的,抽象的东西很多,Java是一群电子很强的人搞出来的,用起来的感觉基本和在板子上摆弄元器件差不多。
0 请登录后投票
   发表时间:2009-09-26  
pister 写道
raojl 写道
1、继续保持java平台的可移植作风: 尽量使用标准库(顺便学学STL)、开源的东西、条件编译
2、学会忍受引用和指针的混合使用
3、继续保持面向对象的管理方式
4、学会内存管理,不要想象java的内存自管理
5、不要C++\C的网络应用库很丰富,就算有java那么丰富,你的头也会大。所以学会一门脚本语言,
   来实现一些对时效没有要求,但对功能有较高要求的网络应用。
6、该要算法的时候一定要思考,没必要的别自讨苦吃。
7、还有一点,多看别人的代码,思考与java的异同。
8、最重要的,不要告诉你在学校没学过C,没有C的基础,吃的苦头可不小。
9、想到再补充,大家一起补充。。。。


1、需求驱动技术,如果要保持可移植的作风,那么肯定要牺牲些什么,牺牲的是不同平台的差异,牺牲的是不同平台的优势,除非你想做成通用库,一般的应用没有必要这么做。可移植性即使保证了,但是时间保证了吗,成本保证了吗?我们要在之间找个平衡点,而不是一味的追求移植。
2、如果你想,你完全可以不用c++的引用,你完全可以把c++的指针当做java的引用来看,最多只是多了个资源的管理问题,要确保时候释放,正确释放。
3、不能白什么是“面向对象的管理方式”,如果说是编程方式,除了面向过程和oop外,花些时间在gp上还是值得的,目前c++的gp要比java的gp强很多。
4、见2
5、还是那就话,需求决定技术,什么技术能够要求,谁的成本低,就用谁。
……

第五条,不太准,有时候是谁的关系硬,就用谁,O(∩_∩)O哈哈~
0 请登录后投票
   发表时间:2009-09-26  
指针是精髓。
0 请登录后投票
   发表时间:2009-09-26  
pister 写道
2、如果你想,你完全可以不用c++的引用,你完全可以把c++的指针当做java的引用来看,最多只是多了个资源的管理问题,要确保时候释放,正确释放。

从你这句话就可以知道你根本不懂c++
0 请登录后投票
   发表时间:2009-09-26  
从java转向c,c++,最需要的不是熟悉c++的指针,引用,甚至模板,友元之类的东东。
作为一个c/c++程序员,面向的是各种操作系统,并非浏览器,因此最需要补充的是操作系统的知识,包括内核对象,多线程等各种跟操作系统密切相关的东东。
0 请登录后投票
   发表时间:2009-09-27  
visualcatsharp 写道
pister 写道
2、如果你想,你完全可以不用c++的引用,你完全可以把c++的指针当做java的引用来看,最多只是多了个资源的管理问题,要确保时候释放,正确释放。

从你这句话就可以知道你根本不懂c++


或许吧,呵呵
0 请登录后投票
   发表时间:2009-09-27  
兄弟们注意队形,讨论不是在讨论谁对谁错,既然讨论有的是是是非非,然后怎么改进?不是要一棍子打死谁!
0 请登录后投票
   发表时间:2009-09-27  

java 转 c++还是容易些的,毕竟oo那一部份对于有一些功力的java coder来说是基本没问题了.

转c的话要花一些功夫. 我觉得学c要结合着操作系统,编译原理, runtime env来理解,才能有所成.
不能像玩java的时候一样,把底层都交给jvm,自己只管的oo就行.
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics