知道美河 | 上传资料 | VIP申请 | 精品课程 | 资料搜索 | 问题反馈 | 会员手册 | 积分消费 | 积分充值 | 帐号保护
美河学习学习在线赞助VIP

美河学习在线(主站) eimhe.com

 找回密码
 建立账号
查看: 391641|回复: 166

[原创] 第一期【主题,辩论】Java与C++的对比(已结束)

[复制链接]
发表于 2008-11-29 14:16:30 | 显示全部楼层 |阅读模式

评判时间: 2009-12-31 21:44

裁判观点: 辩论没有胜负,此贴相信会给新手很大的帮助,最后结果是根据投票,
同时经管理员,版主商议, piaoling获得第一期的最佳辩手

最佳辩手: piaoling

如今企业选择使用哪个做项目,我们需要更为深入的学习哪门技术,Java ? C++ ?  ...?, ?3 q/ R3 Z7 K/ G- M$ M. W
Java作为新生代的宠儿,得到迅速,姑且不论是否能在今后取代c++,! y/ }( u) a0 U  U
著名的电骡就是c++编写的,它对c也有很好的兼容,运行速度快,每门语言都有自己的精髓,否则不会各领风骚: v4 q+ S6 D& ]( x2 |0 _' _. k

  g0 d/ s$ {: m! E" ^二者的基本结构非常相似,两者都是面向对象语言。希望大家能够展开探讨,0 c( o, |+ I$ _2 y5 T; W
究竟现在更需要什么样的人才,初学者应该从和做起,避免让更多的人走弯路$ i2 Y( @4 k0 T% V4 B

2 Q/ E8 e  k6 e* P1 r# S- b
0 H6 v7 T8 g6 W+ N% l  K! b7 }具体参加细则及奖励措施,请参考 【主题,辩论帖】参赛细则及图文介绍
: S$ k. _) O6 `* ]4 i: G6 i8 G
1 p- u% a4 U# N4 P" c' z: z% I0 t% e& X: V/ K! d- s: F  C: M
注:希望大家多从当前形式,和企业的需要分析毕竟需求决定供给,,功能上,两者的差异可以少些,不要一句什么好什么坏,希望你们的经验可以给刚进入学习的朋友一些启示- Y' W# R# V( p( K

3 y% r- v1 T6 ~# e1 @) N; ]8 I& V/ [1 S" G: B, T# H( ?! V! H
支持原创,严打转载冒充者
/ Y$ E. ?0 R' f4 R7 i) x; y; V. a: s! H
. o( }2 W9 E2 Q: g8 k

; ^9 Z9 }* r! \% }! ^下期待定话题:
5 C( [  j  I$ n1 {一:如果时间倒退至大学,这四年学习的机会,你会怎么利用课余时间,学习哪几门课程
% q. C+ O+ b2 G: i参考:0 m+ m; E; a  D5 N+ T
综合性路线:j2se--数据库--网络--操作系统技术--系统分析师资格证(这是我正在走的路线)' S  M- V" B* `6 N) P0 b0 m2 U
或者你选择j2ee路线:j2se--j2ee(jsp servlet+struts hibernate+spring+ejb3.0+UML
4 U4 ]' ~( p4 k. z2 Q* f或者你选择网络工程师路线:网络技术(CISCO/华为/…)+系统技术(Windows/Linux/Unix/…)+数据库技术(Oracle/DB2/…)+网络服务应用的架设及管理(Mail/OA/DNS/WEB/FTP/VPN/…)+……
9 I" t' H/ q$ T' u3 z其他路线 ...
, J, i0 ~' d  d" M0 V* H) r: N
  U) b6 F0 I. W- ^! z$ I二比较话题:jsp,asp,php的比较

结束时间: 2009-12-31 21:44 裁判: 深情少年

正方观点 (270)

Java更适于时代的发展

反方观点 (126)

c++独领风骚,经久不衰

发表于 2008-11-29 14:34:38 | 显示全部楼层

java 好

十年来,Java编程语言及平台成功地应用在网络计算及移动等各应用领域,比如移动电话、个人电脑、跨国金融系统和卫星通讯等。据统计,目前全球运行Java的设备已达到25亿,Java开发人员超过450万,基于Java技术的智能卡达10亿,基于Java技术的手机达7.08亿,采用Java技术的PC机达7亿,JCP(Java Community Process,Java社区进程)成员达912个,运营商们部署Java平台140多个。

评分

1

查看全部评分

发表于 2008-11-29 14:39:04 | 显示全部楼层
java与C++的基本结构极为相似,学过c++的人再学java非常容易上手,java是在c++基础上去掉C++里面烦人的指针。 java的流行,兼容性强,功能不弱,用java 编写程序要比用C++来的容易。
  C2 {5 z' L1 l6 hc++功能虽然强,但里面的指针很难掌握,而c++最主要也就是指针,所以掌握起来很困难。

评分

1

查看全部评分

发表于 2008-11-29 14:41:27 | 显示全部楼层
刚开始是C语言,然后就是C++,Java是完全意义上的面向对象的语言,而C语言不是,C++也只能算部分面向对象的语言。

评分

1

查看全部评分

发表于 2008-11-29 14:45:25 | 显示全部楼层
先有C语言,然后是C++,而java是在后才出现的,从历史上看新的事物是必将代替旧事物的。这是必然。

评分

1

查看全部评分

发表于 2008-11-29 14:48:04 | 显示全部楼层
用C++编一个程序就要从头就开始做,而JAVA本身就集成了很多的东西,所以用起来非常爽,就好比要盖房子,前者要从制作砖头开始,然后再去盖房子,而后者已经有了现成的砖头,你想想哪个效率会更高呢。结果是显然的。

评分

1

查看全部评分

发表于 2008-11-29 14:51:48 | 显示全部楼层
中国现在国内虽然是C++的天下,但是我们的眼光要放远一点,你看看人家国外,java已经非常成熟。国内的很多东西不少是从国外引进来了,你们想想啊,国外现在人人都在用java而国内的明天就可想而知了。

评分

1

查看全部评分

发表于 2008-11-29 14:56:58 | 显示全部楼层
Java几乎可以任何平台上良好的运行,比如洗衣机里的控制程序,空调里的控制程序等。有人说C++也可以啊,但是如果在上述两者间建立能信并由远程系统来控制呢。用C++可能很难做吧。

评分

1

查看全部评分

发表于 2008-11-29 15:03:10 | 显示全部楼层
发表于 2008-11-29 15:03:41 | 显示全部楼层
JAVA是更好的面向对象的语言及JAVA是跨平台性非常好。
! D6 p8 I- k* r  P* y如果让我只用一句话来说明Java胜过C++理由,我会说Java简单。其实就是这么简单。

评分

1

查看全部评分

发表于 2008-11-29 15:05:54 | 显示全部楼层
我们是计算机系的,上学的时候学C++就学得非常郁闷,而后来学了JAVA后,感觉就不一样了。也许是我笨一点,不过这的确是自己的感受。

评分

1

查看全部评分

发表于 2008-11-29 15:24:03 | 显示全部楼层
我有一个朋友一直用C++在公司里做项目几年了,而现在他说要转向JAVA了。为什么呢?像他这样有基础的人当然不会是因为JAVA简单才学的, C++做的项目在后期维护上要付出很大的代价,既费时间又费金钱,而JAVA的测试维护体系及工具就做得比较好了,可能节省相当的资源。1 x1 e! `" O% [$ O. q  p
你去找工作的时候行业里的人经常会问“用过JAVA吗?而你如果说没有,结果是可以想到的。' q# ]. q/ H- n6 j  G
而且现在大学生在校的时候,计算机专业的一般都会开JAVA。/ S+ E  H0 h! M% l
如今现在电子信息高速发达,正是用JAVA的好时候,大到通信小到家用电器,用途非常广泛。在做一些三维物特效方面JAVA的优势更是不容置疑。8 y6 x# X; ~6 d" i, q
引用SUN公司的话:它是一种简单、面向对象、分布式、解释型、稳定、安全、结构中立、易移植、高性能、多线程的动态语言。# W5 Z! i( O, a; _5 d8 a$ X4 k
如果让您选择你会选择什么呢?

评分

1

查看全部评分

发表于 2008-11-29 16:10:27 | 显示全部楼层
Java比C/C++易学、易用,且有强大的内建功能。当Java在编程领域得到广泛应用后,C++将可能退出历史舞台,因为Java能做C++的所有事情,同时,Java的代码可以重用。

评分

1

查看全部评分

发表于 2008-11-29 17:30:50 | 显示全部楼层

java后来居上,C++大势将去

曾经不知有多少人讨论过C++与java孰强孰弱的问题。这不美河也讨论起来了。
& G9 P+ S0 h2 b. F    80年代出现了C语言。它一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设- l9 R& t: m6 T( ~3 _2 i5 ~2 m
0 z* i0 F. `# q$ d5 W
计语言,编写不依赖计算机硬件的应用程序。因此,被广泛应用。+ v% k1 ~: A3 c4 V+ j* y+ m, i+ ?
    而后90年代末在C语言的基础上又出现C++语言。与C语言相比C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对% w1 {# f- X2 ]9 ~2 q
5 e  w/ l( c! K7 q# a: m" b+ j) C4 x& I
象程序设计。这些都是C语言无法比拟的。它是一门独立的语言,也不依赖于C语言,又有些上述的优势,因此在相当长的一段时间里,C++几乎囊括了编程的全部。至今仍雄风不减当
* X# @1 T5 {' L% F$ J6 P6 E. ?% h; C, p& o# V+ \
年。2 }# ~9 s! m* C) I/ V1 U
    1995年Sun Microsystems公司推出的Java程序设计语言。它是一种简单、面向对象、分布式、解释型、稳定、安全、结构中立、易移植、高性能、多线程的动态语言。从Sun推出2 ]9 Q8 L5 y! q. [7 ]. e

/ U9 D' P: x/ E5 ^) k. X4 gjava的那一刻全世界的目光都被这个神奇的语言所吸引。Java语言的优良特性使得其应用具有无比的健壮性和可靠性,又有JAVA的测试维护体系及工具,这也在很大程序上减少了应用+ h5 Q3 |9 d! Y. ?. e. J. s) D- a

$ c- u3 p$ x1 x3 R8 j% @5 O) S系统的维护费用。1 x0 K: e! L+ |  j
    下面说说java相对于C++哪些优势:7 _" ]' j9 @# A. V3 D1 y$ ~
    1.从上面的定义可以看出JAVA是更好的完全意义上的面向对象的语言,而C++仅仅是支持面向对象程序设计。这就使得java的维护更为简单,可扩充性更强。其实很多做软件的人, T$ r3 g# d7 }" I

8 R# C2 b$ ]+ t/ [为什么在用C++几年的基础上,毅然选择java,就是因为C++编出程序在后期维护上要付出很大的代价,而java的测试维护体系及工具非常完善,大大节省了人力物力资源。' k( K5 U7 Z! z8 W5 W$ o
    2.JAVA是跨平台性非常好。例如你可以在windows下开发测试,然后部署到linux下。正因为此如今java已经应用到信息社会的各个领域,比如移动通信、个人电脑、家用电器及卫# a: D) [3 G  g
5 i! \: d0 n' \5 T9 I$ V
星导航等诸多方面。当然C++也可以实现跨平台,但要困难得多。
8 N+ X0 E7 S, w' t; z- `    3.java的开源与规范。因为是开源,许多工具是免费的,所以每个人都可以自行开发;而java中又到处都是规范,不论是J2EE、Web还是Job等,更连java虚拟机也都是规范。好处: h2 P8 o! n* }5 H0 P8 E- m
+ s8 B7 ~! O9 K" ~4 P; a" {; y/ h
在于已经规定了大的方向,百家齐鸣,各显神通,但有一点是肯定的,不论是谁实现的,都是在推荐着java的进步。SUN公司正是把住了这一点才使得java有了今天的辉煌,一切都是
$ C& m3 ^, Q" h7 A* V0 u) f* F/ _  }. D! H6 q
抽象的,一切都是接口。真的是一流公司定规范,这是SUN公司的高明之处。
9 P" J, @5 G! B# Z2 \- ^5 d1 E    4.java是建立在简单的基础上。java与C++的基本结构非常相似,但又去掉了C++里面烦人的指针。这就使得人们很容易上手。c++功能虽然强,但里面的指针很难掌握,而C++的精
2 F/ e. D$ ]! @3 `  C' P! S4 L; S
髓又表现在指针的运用上,这使得一般人难以驾驭。& ]3 d- N- o$ B& N0 l
    有的人说C++的执行效率比java要高。不错,java在执行效率上的确是不如C++来得快,但随着计算机运行速度的提升,很多应用对运行效率要求已经没有以前那么高了,而对开发
% ~+ J9 m" u: c* a( e3 P) a& W% i. |7 G2 |
周期的要求提高了。这也是选择java平台的优势所在。这可能是SUN公司的另一个高明之处吧。   7 ^4 M  P8 C  h# u, v7 q
    还举这个例子,同时开发一个项目,如果你选择C++做平台,那么你将从0开始作;若你用java为工具,则你的起点可能是30。就好比盖楼一样,前者是先炼制砖瓦,然后再建楼;
3 f6 u8 x2 \7 ~& f1 z/ }
- s8 Q7 N: G' j) `% _; _9 a! L8 e8 v$ C而后者则相当于已经有现成的砖头甚至接过别人建的半个楼,然后继续建设。结果不言而喻。. t; N; P; O0 r' r+ Q1 @+ B9 v" {
    首选从历史的角度来看:新事物必将代替旧事物,其间也许可能出现一定的反复,但被代替已是必然。就好比如今国内的C++如日中天,而java可能还处于青少年,但C++会一点点老去,而此时java已然成年。( o* P& ]1 ~/ o  E4 ?- |* ~4 {8 a
    再从个人角度看,面对功能强大但难以驾驭的C++与功能同样出色且容易上手的java,你会选择哪一个呢?我一定会奔向java,只有一个理由:那就是因为java简单。更何况java相对C++有如此多的优点。% }7 r' @# k7 q, X$ Y  s+ O
    可以用一句话来概括就是:java后来居上,C++大势将去。
4 a4 M! I) D5 n! a! d( x: ~* b' L
- c  h7 c) P+ p3 L& s[ 本帖最后由 sjah113 于 2008-11-29 17:41 编辑 ]

评分

1

查看全部评分

发表于 2008-11-29 19:15:54 | 显示全部楼层
java,c++开发的东西是不一样的,java用于开发基于b/s架构的系统语言,c++ 主要开发用于c/s架构的系统语言,随着基于java的ajax,flex等浏览器富客户端的技术越来越成熟,java一统天下只是早晚的事情。到时候c++还会存在,但是只是为java服务的一个小工具语言了,有些仁兄说c++的指针灵活,可其他的特性和java能比吗?一次编译,到处运行;软件复用性;大量的开源框架;全球20%的使用占有率;上手快;这些c++是没的比的。java会想汽车淘汰马车一样淘汰c++ ,当然,马车在农村还是存在的。

评分

1

查看全部评分

发表于 2008-11-29 19:20:16 | 显示全部楼层
原帖由 zhaozhiqiang6 于 2008-11-29 19:15 发表 : f! Y, L; o( R. N; p# N
java,c++开发的东西是不一样的,java用于开发基于b/s架构的系统语言,c++ 主要开发用于c/s架构的系统语言,随着基于java的ajax,flex等浏览器富客户端的技术越来越成熟,java一统天下只是早晚的事情。到时候c++还会存 ...

  D, l3 k" h& V呵呵。同意楼上的说法,大家想得是一样的。java淘汰C++只是时间的问题。

评分

1

查看全部评分

发表于 2008-11-29 19:31:21 | 显示全部楼层

没有C#或其他语言,我只好参与JAVA了。

如题。C++其实是基于底层平台的。和JAVA的对比性不太好说。要看在用在什么项目中了。
4 D8 o& {3 M. j5 c. mIT界、软件界的发展,C和C++的功劳是不可磨灭的。JAVA正是在社会不断发展中,摸索出的一种更便捷,更强大的语言。从特点和支持性来说,应该更胜一筹。
5 S" [+ ]3 Z$ C) Y& _  X4 F) t; E- M) E
最后还是一句:拿具体东西来说话,没有具体项目中的实践,该辩论只能说是闲侃。^_^。

评分

1

查看全部评分

发表于 2008-11-29 20:12:50 | 显示全部楼层
java通俗易学,而且在各个领域都有建树,无论是底层的嵌入式开放到网页编程设计,java都是编程人员的首选
) L6 Y4 m" o( q而且现在大学里面也有从大一就开始开设java,一直到大四毕业,专门培养java编程思想!
5 ~1 R8 |" Q. A+ t% [" h3 V5 H2 @我认为java将会是未来的主流!!!谢谢

评分

1

查看全部评分

发表于 2008-11-29 20:33:42 | 显示全部楼层

java将更成熟

java本身通俗易学,它的api和框架使得编程更轻松,对算法掌握要求不再苛刻+ N' u- a1 f8 {$ F( \
- t6 D+ j0 S2 q4 P
虽然java目前可能不能像C++强大,只是说明java有待完善而已) W( k1 N: |  z2 V% h$ {3 A& K

6 _' x+ e" m! f: c7 ]: t: K一个初学编程者的看法

评分

1

查看全部评分

发表于 2008-11-29 20:34:57 | 显示全部楼层

敏捷开发Java正当时

任何一种语言很难说谁好谁坏,只是看使用的人群,C++可以说在编写硬件驱动这块很强,但要用在商业开发则有些为难,真正可以与Java对抗的只有C#了,其实真正在企业级应用程序的解决方案中,应该是J2EE和.Net平台。只是现在在讨论Java和C++的对比,那么应该说在敏捷开发上Java正当时,简言之敏捷就是软件开发应该轻装上阵,卸下文档的包袱,使团队保持高度的灵活性,我原来参与的一个项目就是用到了一个Java轻量级Web应用程序开发的框架StrutsMVC框架,用得工具和开发包全部是免费的,这也是Java的一大优势所在,特别适合中小企业开发。不论是在可维护性,可升级性,灵活度及移植性等方面,Java所具有的优势是C++无法匹敌的。

评分

1

查看全部评分

发表于 2008-11-29 20:50:41 | 显示全部楼层

java是时代的发展和潮流,C++必将被取代!

我是南航的研究生,最初接触的是C++,感觉他的功能确实强大,代码也的确比java简洁。在数字图像处理方面和一些嵌入式中有不可代替的地位。但在现在很多应用都是跨平台的和网络应用,这正是java的强项,否则也就不会有现在的普及了,而且C++中的指针虽然功能强大但是也对软件特别是大型project的确有很大的隐患。
- J1 C* Y8 l' v$ o+ \  java的简单和跨平台是C++不可替代的,而且是纯粹的面向对象的新生代。以后在一些专业的追求代码效率和复杂算法的方面以外,java必将把C++取而代之。

评分

1

查看全部评分

发表于 2008-11-29 21:55:23 | 显示全部楼层
发表于 2008-11-29 22:01:18 | 显示全部楼层
Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
6 B  K- U- G# O: k2 g; Z/ d. LJava语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

评分

1

查看全部评分

发表于 2008-11-29 22:29:32 | 显示全部楼层
java是大势所趋了,因为我是学网络的,个人对程序语言不是很难了解,指发表我的观点:# ^9 Z% ?5 ^) o; g) A% u
投java就是看他的应用范围。。。。。。。

评分

1

查看全部评分

发表于 2008-11-30 09:32:30 | 显示全部楼层

只能说JAVA更适用于商业应用

之所以这么说,来自于java和C++应用的可维护性和开发周期,java运行于自己虚拟机之上,在计算效率上,同样的情形下是比不上C++的,但是在注重结果和研发周期方面,java规避了许多C++的先天不足,使得我们这些程序员可以不用有那么多的顾虑,而且java提供的面向对象机制相对于C++来说是比较易于理解的,便于设计和理解,控制结果。
6 b0 N( O( X( l所以说,如果开发商业应用的话,java是首选,如果苛求效率而追求完美的话C++是个不错的选择...
# z2 j" w' Z5 o0 G" P3 ^- j/ Z. k0 w; J' i# D
补充一下,我就是从C++转java的,对于C++来说,公司的培训和学习的周期绝对是比java长的,而且对于大型的商业软件公司不可能找到的人都是高手,心思缜密,对于不能很好理解,控制和学习的技术,编写出来的产品对于后期的运维来说也是极具风险的,这是不值得的,除非一个公司对于一项技术有了很雄厚的知识储备,否则选择一个开发相对敏捷,最终产品维护方便的技术才是明智的。  b$ ?0 e8 f# r; g4 M
) |' v9 R" J' v& `
[ 本帖最后由 danirkl 于 2008-11-30 09:37 编辑 ]

评分

1

查看全部评分

发表于 2008-11-30 12:39:25 | 显示全部楼层

当然Java更适于时代的发展

JAVA比C++容易掌握熟练.! E6 ^+ `* A1 Z  g# [$ K
C++维护起来比JAVA要复杂,废时间.6 k& ^5 w5 w, L" M
.JAVA有一套比较好的测试维护体系和工具

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 建立账号

本版积分规则

 
QQ在线咨询

QQ|小黑屋|手机版|Archiver|美河学习在线 ( 浙网备33020302000026号 )

GMT+8, 2026-4-27 12:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表