`
raojl
  • 浏览: 208379 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
1、继续保持java平台的可移植作风: 尽量使用标准库(顺便学学STL)、开源的东西、条件编译
2、学会忍受引用和指针的混合使用
3、继续保持面向对象的管理方式
4、学会内存管理,不要想象java的内存自管理
5、不要C++\C的网络应用库很丰富,就算有java那么丰富,你的头也会大。所以学会一门脚本语言,
   来实现一些对时效没有要求,但对功能有较高要求的网络应用。
6、该要算法的时候一定要思考,没必要的别自讨苦吃。
7、还有一点,多看别人的代码,思考与java的异同。
8、最重要的,不要告诉你在学校没学过C,没有C的基础,吃的苦头可不小。
9、想到再补充,大家一起补充。。。。
分享到:
评论
50 楼 450029462 2013-09-20  
java学好了 c++其实也不难,就是 宏多点 内存控制多点 思想是差不多的
49 楼 gembler 2009-12-28  
ray_linn 写道
wandou 写道
如果java学好了,其实c++也没什么要学的。



这是我过最扯淡的话了....

如果下次要搞什么je最囧的语录,wandou这句一定要入选,不入选,创造条件也要入选
48 楼 raojl 2009-12-28  
呵呵,c++是本身复杂,java是扩展复杂!
47 楼 ray_linn 2009-12-28  
wandou 写道
如果java学好了,其实c++也没什么要学的。



这是我听过最扯淡的话了....
46 楼 wandou 2009-12-28  
如果java学好了,其实c++也没什么要学的。
45 楼 murusu 2009-11-23  
mathgl 写道
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编码就够喝一壶的了。


Qt和wxWidget不就是两个不错的跨平台gui库吗?
不过还是没有java方便就是了
44 楼 raojl 2009-11-06  
firecloudhawk 写道
面向对象有什么好,在C语言用面向对象?给个理由
那我在java里用函数编程好不好?


好不好虽然没有好的定义标准,但是怎么让我们写的东西别人也能很快看懂,自己也好维护! 结构 + 资料对象 的设计我觉得很不错,C虽然是函数过程性质的语言,但是并不是就不能实现某些面向对象的东西!没有好与不好,有的是自己喜欢,别人不厌的检验!让自己让他人都有个愉悦的工作环境。
43 楼 firecloudhawk 2009-11-06  
面向对象有什么好,在C语言用面向对象?给个理由

那我在java里用函数编程好不好?
42 楼 william_ai 2009-10-29  
c里用struct,java里用class
c里用指针,java里用引用
c里用自己malloc还得自己free,java里有gc
c里自己写底层更多些,java里好多都已经封装好了
c里面字符集转换,socket编程,xml处理,webservice,corba,甚至服务器中间件等编程也都有现成框架。
41 楼 samwalt 2009-10-13  
raojl 写道
samwalt 写道
raojl 写道
samwalt 写道
raojl 写道
1、继续保持java平台的可移植作风: 尽量使用标准库(顺便学学STL)、开源的东西、条件编译
2、学会忍受引用和指针的混合使用
3、继续保持面向对象的管理方式
4、学会内存管理,不要想象java的内存自管理
5、不要C++\C的网络应用库很丰富,就算有java那么丰富,你的头也会大。所以学会一门脚本语言,
   来实现一些对时效没有要求,但对功能有较高要求的网络应用。
6、该要算法的时候一定要思考,没必要的别自讨苦吃。
7、还有一点,多看别人的代码,思考与java的异同。
8、最重要的,不要告诉你在学校没学过C,没有C的基础,吃的苦头可不小。
9、想到再补充,大家一起补充。。。。

为什么要转到c/c++?


被“河蟹”了

啥意思?

就是没得选择!

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

为什么要转到c/c++?


被“河蟹”了

啥意思?

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

为什么要转到c/c++?


被“河蟹”了

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

为什么要转到c/c++?


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

为什么要转到c/c++?
35 楼 lichuan 2009-10-05  
用什么语言,什么库来开发,考虑什么?

- 人才市场资质
- 功能/性能需求
- 开发/维护/移植 成本
- 兼容性

...
34 楼 flashj 2009-10-02  
visualcatsharp 写道
从java转向c,c++,最需要的不是熟悉c++的指针,引用,甚至模板,友元之类的东东。
作为一个c/c++程序员,面向的是各种操作系统,并非浏览器,因此最需要补充的是操作系统的知识,包括内核对象,多线程等各种跟操作系统密切相关的东东。

深有同感,有时候我觉得那些平台相关api比语言本身复杂多了.
33 楼 EQualizer 2009-10-01  
计算机(字数?)
32 楼 magic8421 2009-10-01  
主要就是学指针吧  最好把汇编语言也了解一下
不然写出来的代码一运行就崩溃  segfault =..=
31 楼 clonepig 2009-10-01  
useless!!!!!!!

相关推荐

    面向对象编程C++和Java比较教程

    在从C++转向Java或反之的过程中,开发者需要适应这些语言间的差异。例如,C++程序员可能需要学习如何避免指针的直接操作,理解Java的垃圾回收机制;Java程序员则需要学会使用C++的模板和内存管理。 总之,C++和Java...

    给C++初学者的忠告

    - **建议**:对于初学者来说,建议先从较为简单的语言入手,掌握基本的编程思想后再转向C++的学习。如果直接选择C++,则需确保自己有足够的耐心和时间去逐步攻克难关。 #### 2. 通过阅读《Thinking in C++》加深...

    钱能的c++书籍

    本书的特色在于其技术参照的变更,从以C语言为背景转向了以标准C++为蓝本,同时参考Java技术,并在内容结构上进行了大幅度的重组。这些更新使得第二版更加贴合当前的编程需求,同时也更加符合计算机科学的教学大纲。...

    编程技巧:C/C++,ASP.NET,JAVA,Linux shell,SQL等

    本文将深入探讨C/C++, ASP.NET, JAVA, Linux Shell以及SQL等编程语言的实用技巧,帮助你无论在哪个领域都能游刃有余。 首先,让我们从C/C++开始。C++是一种面向对象的语言,它的模板和继承机制为程序员提供了极大的...

    C语言经典编程900例

    虽然随着技术的发展,许多开发者转向了更高级的语言如Java和C++,但C语言作为计算机科学的基础,其简洁、高效的特点依然被广泛应用在系统编程、嵌入式开发等领域。 C语言,由Dennis Ritchie在20世纪70年代初为Unix...

    大学生软件企业实习报告800字范文.pdf

    同时,要灵活调整求职策略,比如接受不同岗位的挑战,如从技术服务开始,积累经验后再转向开发工作。 5. 工作体验与成长:在工作中,可能会经历压力、挫折,但这些都是个人成长的催化剂。要学会适应工作环境,处理...

    注意:涵盖Java相关技术堆栈

    1. **Go语法**:Go语言的语法简洁,与C/C++类似,但更加强调安全和效率。 2. **并发编程**:Go的goroutine和channel是其并发模型的核心,它们提供了轻量级线程和同步机制。 3. **接口**:Go的接口定义方式不同于其他...

    编写程序的要领

    2. **C#**:结合了C++和Java的优点,主要用于Windows平台的开发。 3. **C++**:提供高性能和底层控制,适用于系统级编程和游戏开发。 4. **C**:用于系统编程,是学习计算机科学基础的绝佳选择。 5. **Visual Basic ...

    AndroidPPt

    - **主要编程语言**:Android 应用主要基于 Java 开发,同时支持 SQL 和 C/C++(底层基于 Linux)。 - **编程方式**: - 基于 ADT 的 Java 编程。 - 基于 NDK 的 C 编程。 #### 六、Android 编程环境配置 - **...

    JSP实验题目和代码

    ### JSP实验知识点详解 #### 实验一:编写、保存、运行...通过以上两个实验,学生不仅能够掌握基本的JSP页面开发流程,还能够深入了解JSP页面中的Java语法和逻辑控制。这对于后续更复杂的应用开发具有重要的基础意义。

    windows环境下32位汇编语言程序设计

    用汇编写复杂的运算程序固然会比C更有效率,但同样的事在C中用一个表达式就全部搞定了,从这里开始学汇编,给人的感觉就像从复杂的公式开始学算术,要知道,加法还没有学会呢!而对于高级语言封装起来的系统功能,用...

    C数据结构C#数据结构

    传统上,数据结构与算法的教学资源多以Java或C++语言编写,然而随着C#的崛起,越来越多的开发者转向这一语言。《C数据结构C#数据结构》一书填补了C#数据结构与算法学习资料的空白,为C#程序员提供了深入理解并应用...

    我的sourceinsight配置和宏工具

    它提供了对多种编程语言的支持,如C、C++、Java、Python等,并且具有强大的代码导航、搜索、语法高亮和自动完成功能。在这个“我的sourceinsight配置和宏工具”主题中,我们将深入探讨如何配置SourceInsight以及利用...

    Scala Functional Programming Patterns

    之后,他转向C++,进而又深入Java和Scala。Atul对开源项目充满热情,热爱脚本语言和整洁的代码。他总是乐于学习新的命令行技巧,目前在Webonise Labs担任工程师,并曾作为Dr. Dobb's Jolt Awards的评审团成员。此外...

    学习 WSH 的理由小结

    - 作者首先提及了自己早期学会并喜欢的编程语言是VBS(Visual Basic Scripting Edition),同时指出虽然C语言学习得更早,但由于经济条件限制,无法购买电脑以及相应的C编译器,导致长时间无法通过C语言编程。...

Global site tag (gtag.js) - Google Analytics