C++和JAVA得区别? java和c++有什么区别??

C++\u548cJAVA\u7684\u533a\u522b\u662f\u4ec0\u4e48\uff1f

C\u8bed\u8a00\u662f\u7ecf\u5178\u7684\u9762\u5411\u8fc7\u7a0b\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u7f16\u7a0b\u5165\u95e8\u4e00\u822c\u90fd\u5b66C\u8bed\u8a00\u4ee5\u4e86\u89e3\u7f16\u7a0b\u4ee5\u53ca\u953b\u70bc\u903b\u8f91\u601d\u7ef4\u80fd\u529b\uff0c\u5728\u4e00\u4e9b\u8ddf\u786c\u4ef6\u6bd4\u8f83\u7d27\u5bc6\u7684\u7f16\u7a0b\u4e2d\u4e5f\u7ecf\u5e38\u7528\u5230\u3002\x0d\x0a\x0d\x0aC++\u662f\u5728C\u8bed\u8a00\u7684\u57fa\u7840\u4e0a\u52a0\u5165\u4e86\u9762\u5411\u5bf9\u8c61\u7684\u6982\u5ff5\uff0c\u6210\u4e3a\u6df7\u5408\u578b\u9762\u5411\u5bf9\u8c61\u8bed\u8a00\uff0c\u529f\u80fd\u5f3a\u5927\uff0c\u4f46\u96be\u5ea6\u4e5f\u5927\u3002\x0d\x0a\x0d\x0aJava\u662f\u5728C++\u7684\u57fa\u7840\u4e0a\u8fdb\u884c\u6539\u8fdb\u7684\uff0c\u6452\u5f03\u4e86\u4e00\u4e9bC++\u7684\u4e0d\u8db3\u4e4b\u5904\uff0c\u8bed\u6cd5\u8ddfC++\u5f88\u50cf\uff0c\u5b83\u662f\u8fd0\u884c\u5728Java\u865a\u62df\u673a\u4e0a\uff0c\u6240\u4ee5\u53ef\u4ee5\u8de8\u5e73\u53f0\uff0c\u4e00\u5904\u7f16\u8bd1\uff0c\u5230\u5904\u6267\u884c\u3002\x0d\x0a\x0d\x0a\u7f16\u7a0b\u90fd\u662f\u6613\u5b66\u96be\u7cbe\uff0c\u54ea\u4e2a\u90fd\u597d\u5b66\uff0c\u54ea\u4e2a\u53c8\u90fd\u4e0d\u597d\u5b66\u3002\u90fd\u6709\u5f88\u597d\u7684\u53d1\u5c55\u524d\u666f\uff0c\u5c31\u770b\u662f\u4ec0\u4e48\u65b9\u5411\u4e86\u3002\u5e95\u5c42\u7684C\u3001\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\u3001\u6e38\u620f\u7b49\u7b49C++\u3001\u5d4c\u5165\u5f0f\uff0c\u7f51\u9875\uff0cJava\u3002

C\u8bed\u8a00\u662f\u7ecf\u5178\u7684\u9762\u5411\u8fc7\u7a0b\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u7f16\u7a0b\u5165\u95e8\u4e00\u822c\u90fd\u5b66C\u8bed\u8a00\u4ee5\u4e86\u89e3\u7f16\u7a0b\u4ee5\u53ca\u953b\u70bc\u903b\u8f91\u601d\u7ef4\u80fd\u529b\uff0c\u5728\u4e00\u4e9b\u8ddf\u786c\u4ef6\u6bd4\u8f83\u7d27\u5bc6\u7684\u7f16\u7a0b\u4e2d\u4e5f\u7ecf\u5e38\u7528\u5230\u3002\x0d\x0a\x0d\x0aC++\u662f\u5728C\u8bed\u8a00\u7684\u57fa\u7840\u4e0a\u52a0\u5165\u4e86\u9762\u5411\u5bf9\u8c61\u7684\u6982\u5ff5\uff0c\u6210\u4e3a\u6df7\u5408\u578b\u9762\u5411\u5bf9\u8c61\u8bed\u8a00\uff0c\u529f\u80fd\u5f3a\u5927\uff0c\u4f46\u96be\u5ea6\u4e5f\u5927\u3002\x0d\x0a\x0d\x0aJava\u662f\u5728C++\u7684\u57fa\u7840\u4e0a\u8fdb\u884c\u6539\u8fdb\u7684\uff0c\u6452\u5f03\u4e86\u4e00\u4e9bC++\u7684\u4e0d\u8db3\u4e4b\u5904\uff0c\u8bed\u6cd5\u8ddfC++\u5f88\u50cf\uff0c\u5b83\u662f\u8fd0\u884c\u5728Java\u865a\u62df\u673a\u4e0a\uff0c\u6240\u4ee5\u53ef\u4ee5\u8de8\u5e73\u53f0\uff0c\u4e00\u5904\u7f16\u8bd1\uff0c\u5230\u5904\u6267\u884c\u3002\x0d\x0a\x0d\x0a\u7f16\u7a0b\u90fd\u662f\u6613\u5b66\u96be\u7cbe\uff0c\u54ea\u4e2a\u90fd\u597d\u5b66\uff0c\u54ea\u4e2a\u53c8\u90fd\u4e0d\u597d\u5b66\u3002\u90fd\u6709\u5f88\u597d\u7684\u53d1\u5c55\u524d\u666f\uff0c\u5c31\u770b\u662f\u4ec0\u4e48\u65b9\u5411\u4e86\u3002\u5e95\u5c42\u7684C\u3001\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\u3001\u6e38\u620f\u7b49\u7b49C++\u3001\u5d4c\u5165\u5f0f\uff0c\u7f51\u9875\uff0cJava\u3002

一、主体不同

1、C++:是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计。

2、JAVA:是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。

二、特点不同

1、C++:不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

2、JAVA:具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。


三、优势不同

1、C++:在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

2、JAVA:具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。


参考资料来源:百度百科-C++

参考资料来源:百度百科-Java



Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++。但 Java 的句法更清晰、规模更小、更易学。Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终退出了 Java。正是这样,Java 从根本上解决了 C++的固有缺陷,形成了一种新的完全面向对象的语言。Java 和 C/C++的相似之处多于不同之处,有 C 基础的读者,学习 Java 会更容易。相比较而言,Java 的编程环境更为简单。



C++和JAVA 表面上看,JAVA 比较优秀的地方就是跨平台,也就是程序移植!而C++移植方面不入JAVA,而C++的闪光点,就是程序性能,运行速度,执行效率!C++一般用于开发系统程序,大型程序,驱动等、、、对性能要求比较高的东西,而java的闪光点,一般在网页上,或者小型的软件上!但java的执行效率明显不如C++ 因为它要靠java虚拟机运行java编写的程序java程序执行效率不高,但开发效率要比C++要高!希望对你有所帮助!不懂的地方追问!

看到他们的答案就自悲了:以下是个人观点:c++:目前来说就是做一些大的软件和写一些游戏吧。java:可以写游戏戏,网页,软件。但是JAVA没有C++强大,因为他少了指针。但是C++ 学起来有一点点困难。如果你逻辑思维英语比较好的话。可以选C++,如果不是很好就选JAVA吧。因为JAVA至少在10年内应该不会有什么大问题。而C++应该不会有问题吧。所以看你了。这两个都比较可以。本人意思是学C++,

(1)
Java有垃圾回收机制,当然也就没有C++的析构函数。但是,可控制性和C++相比就差了一点,而且也不是说有了垃圾回收,就不会产生内存泄漏。由于相互引用等原因可能造成对象的生存周期过长,垃圾回收失效。对象内存的回收,个人认为应该是由程序员来掌握的事情。C++可以用auto_ptr,shared_ptr等智能指针来完成自动析构,当然前提是你要熟悉他们的实现机制和应用场合
(2)
Java中所有的对象都是分配在堆上,在Java中只有句柄,也就是引用,没有指针。这样做有哪些好处呢?
a)没有指针。在java中没有sizeof,
没有*。看看下面这些语句吧,感觉是不是很象。b)
避免了临时对象。在Java中所有的对象都是以句柄表示,函数参数传递,结果返回等都是以句柄形式。也就避免了C++中经常出现的局部指针局部引用问题,
对象参数拷贝赋值,切片等问题,提高了效率和可靠性。
String
a
=
new
String(“123”);
//
Java
Code
std::string
*a
=
new
string(“123”);
//c++
code
(c)
在Java中,包含关系只能由句柄表示。
(3)
Java是单根继承体系,而C++可以有多重继承。java可以用interface来实现多重继承。来谈谈Java中的Object类,许多有趣的地方。
Clone方法,C++也可以实现,呵呵,”虚拟构造函数”,参见<
>
Equals方法,
由于Java中对象只能由句柄表示,又没有C++操作符重载的能力,所以这个来比较等价对象。C++中我们可以重载”==”操作符来判断等价对象。
Finalize方法,呵呵,类似于析构函数,但是千万不要当成析构函数来用哦,这个方法何时调用不是你能把握的,取决于垃圾回收机制
hashCode方法,
STL没有HashMap,HashTable等,但是java.util中有,所以…..
剩余的都是满足线程和同步的方法,跟C++没有可比性
(3)
在java中数组也是对象,所以当你下标越界的时候,会收到一个异常。而C++数组显然要比Java快点,因为他不检查index。
(4)
在java中,”123”这种字符串也是对象,而在C++中确是const
char*,
最让人范错的是那个字符串结束符。但是java和c++对这种const
char*
字符去有相同的优化,试试下面的代码:
String
a
=
"123";
String
b
=
"123";
if
(a
==
b)
{
System.out.println("OK");
}
C++代码:
const
char
*p
=
"123";
const
char
*q
=
"123";
if
(
q
==
p)
{
std::cout<<"OK"<
评论
0
0
0
加载更多

  • java鍜宑鐨勫尯鍒
    绛旓細1銆佽璁$悊蹇靛拰绫诲瀷锛欽ava鏄潰鍚戝璞$殑缂栫▼璇█锛屽己璋冧唬鐮佺殑鍙Щ妞嶆с佸畨鍏ㄦу拰鍙墿灞曟с傝孋璇█鏄潰鍚戣繃绋嬬殑锛屾洿璐磋繎纭欢鎿嶄綔锛屽父鐢ㄤ簬绯荤粺绾х紪绋嬨2銆搴旂敤鍦烘櫙锛欽ava骞挎硾搴旂敤浜庝紒涓氱骇搴旂敤寮鍙銆佸ぇ鏁版嵁澶勭悊銆佷簯璁$畻鍜孉ndroid骞冲彴銆侰璇█鍒欐洿澶氱敤浜庢搷浣滅郴缁熴佸祵鍏ュ紡绯荤粺鍜屾父鎴忓紑鍙戙3銆鍐呭瓨绠$悊锛欽ava閲囩敤鑷姩...
  • c鍜宩ava鐨勫尯鍒
    绛旓細c鍜宩ava鐨勫尯鍒細搴旂敤棰嗗煙銆佽瑷鐗瑰緛銆佸鏉傜▼搴︿笉鍚銆1銆佸簲鐢ㄩ鍩 java鍩烘湰鍙互绉板緱涓婃槸鈥滃叏鍦烘櫙鈥濈殑缂栫▼璇█锛屼笉璁烘槸缃戠珯寮鍙戯紝杩樻槸瀹夊崜寮鍙戯紝杩樻槸娓告垙寮鍙戠瓑绛夛紝杩欎簺棰嗗煙閮戒笉鍦╦ava璇濅笅銆傝宑璇█灏辨瘮杈冩湁灞闄愭т簡锛屽畠鏇村鐨勫簲鐢ㄥ湪鐗╄仈缃戠殑宓屽叆寮忓紑鍙戯紝浠ュ強鎿嶄綔绯荤粺涓娿備粠杩欎釜瑙掑害鏉ョ湅锛屽涔爅ava鍚庣殑灏变笟...
  • c璇█鍜宩ava鐨勫尯鍒
    绛旓細1. 璇硶宸紓锛欳璇█鍜孞ava鐨勮娉曠粨鏋勫瓨鍦ㄦ湰璐ㄥ尯鍒銆侰璇█鍏锋湁杈冧负搴曞眰鐨勬帶鍒惰兘鍔涳紝鑰孞ava鎻愪緵浜嗘洿楂樼骇鐨勬娊璞°2. 缂栬瘧閫熷害锛氬湪缂栬瘧鍗曚釜鏂囦欢鏃讹紝Java閫氬父姣擟璇█蹇紝鍥犱负Java鎷ユ湁鏇撮珮鏁堢殑缂栬瘧鍣ㄥ拰鍗虫椂缂栬瘧锛圝IT锛夋満鍒躲3. 鍐呭瓨鎿嶄綔锛欳璇█鍏佽鐩存帴璁块棶鍜屾搷浣滃唴瀛橈紝Java鍒欓氳繃鍐呭瓨绠$悊鍣ㄦ潵澶勭悊鍐呭瓨锛屼粠鑰屾彁...
  • c璇█鍜孞AVA璇█鏈変粈涔鍖哄埆?
    绛旓細涓よ呯殑鍖哄埆锛1銆侀潰鍚戝璞ava鐨勯潰鍚戝璞$殑鎸囧悜鎬у緢鏄庢樉锛岃孋鍒欐槸涓涓瑙勭殑缁撴瀯鍖栬瑷銆 Java涓湁涓涓瓧绗︿覆绫籗tring, 閫氳繃璋冪敤 String.length()灏卞彲浠ヤ簡瑙e瓧绗︿覆鐨勯暱搴︼紝浣嗘槸鍦–璇█涓紝鍒欓渶瑕佷娇鐢ㄥ嚱鏁皊trlen(str)鏉ュ緱鍒板瓧绗︿覆锛堝瓧绗︽暟缁勶級鐨勯暱搴︺2銆鍚嶇О绌洪棿Java閫氳繃鍖咃紙package锛夋潵瀹炵幇鍚嶇О绌洪棿锛屽湪...
  • C璇█鍜宩ava鏈変粈涔堜笉鍚?
    绛旓細锛1锛銆佸熀鏈暟鎹被鍨嬩笉鍚岋細c璇█鏄痠nt short long char float double 杩樻湁涓浜涚壒娈婄被鍨 缁撴瀯浣擄紝鎸囬拡锛岃仈鍚堜綋绛夛紝鏁扮粍锛屽瓧绗︿覆 锛沯ava 鏄痓yte int short long float double char boolean 锛岃屼笖c璇█鐨勫熀鏈被鍨嬬殑浣嶆暟鍜屾搷浣滅郴缁熷拰鏈哄櫒鐩稿叧锛岃宩ava 鏄浐瀹氱殑锛涳紙2锛夈鏂囦欢缁勭粐鏂瑰紡涓嶄竴鏍锛歝璇█浼氭妸...
  • C璇█鍜孞AVA鏈変粈涔鍖哄埆?
    绛旓細鐩稿悓鐨鍦版柟锛1銆佽娉曠被浼硷細鐢变簬Java鍙互绠楁槸浠嶤++鍙戝睍鑰屾潵鐨勶紝鍥犳Java涓嶤璇█鐨勮娉曟瘮杈冪被浼 2銆佺紪绋嬬殑鐔熺粌绋嬪害灏辨槸瀵硅瑷绋嬪簭搴撶殑鎺屾彙绋嬪害锛氫粠鏌愮绋嬪害涓婃潵璇达紝缂栫▼璇█閮芥槸鐢辫娉曞拰鐩稿簲鐨勭▼搴忓簱鎵鏋勬垚锛孞ava鏈夎嚜韬殑绫诲簱锛孋璇█鍒欐湁鏍囧噯搴撱傛墍璋撶殑缂栫▼锛屽氨鏄娇鐢ㄤ笌璇硶鏉ヨ皟鐢ㄥ拰缁勫悎绋嬪簭搴撲腑鐨勫嚱鏁般...
  • c璇█涓巎ava璇█鏈夊摢浜鍖哄埆?
    绛旓細C璇█鍜孞ava璇█鏄袱绉嶄笉鍚岀殑缂栫▼璇█锛屽畠浠湁浠ヤ笅鍑犱釜鏂归潰鐨勫尯鍒細1. 搴旂敤鑼冨洿锛欳璇█涓昏鐢ㄤ簬绯荤粺缂栫▼銆佹搷浣滅郴缁熴佸祵鍏ュ紡绯荤粺绛夋柟闈紝鑰孞ava璇█鍒欏箍娉涘簲鐢ㄤ簬Web寮鍙戙佺Щ鍔ㄥ紑鍙戙佸ぇ鍨嬩紒涓氱骇搴旂敤寮鍙绛夋柟闈2. 璇硶锛欳璇█鏄竴绉嶈繃绋嬪寲璇█锛屽己璋冨璁$畻鏈哄簳灞傜‖浠剁殑鎺у埗锛屽叾璇硶姣旇緝绠鍗曪紱Java璇█鍒欐槸涓...
  • Java涓C璇█涓よ呮湁浠涔鍖哄埆?
    绛旓細Java璇█鏄粠C璇█鍙戝睍鑰屾潵鐨勶紝淇濈暀浜咰璇█涓殑澶ч儴鍒嗗唴瀹癸紝骞朵笖鍦ㄧ紪绋嬫柟闈㈠拰C璇█鏈夊緢澶х殑鐩镐技銆侸ava璇█鍏锋湁鑷繁鐨勭壒寰侊紝Java璇█涓殑璇彞鏇村姞娓呮櫚锛岃妯″皬锛岄潪甯稿鏄撳涔犮傞偅涔圝ava璇█鍜孋璇█鏈夐偅鏄笉鍚岀殑鍦版柟鍛紵涓嬮潰鐢佃剳鍩硅涓哄ぇ瀹朵粙缁岼ava璇█涓嶤璇█鐨勫尯鍒銆1銆佹寚閽 鍦↗ava缂栫▼涓槸娌℃湁鎸囬拡鐨勶紝鍦...
  • java鍜宑璇█鏈変粈涔鍖哄埆
    绛旓細java鍜宑璇█鏈変粈涔鍖哄埆锛涓璧锋潵浜嗚В涓涓嬪惂銆1銆Java鐨鏂囦欢缂栬瘧鏃堕棿姣C璇█蹇紱C璇█鍙互鐩存帴鎿嶄綔鍐呭瓨锛孞ava涓嶈兘锛2銆丆璇█鍙互灏佽鍔ㄦ佸簱锛孞ava涓嶈锛3銆丣ava鐨勪唬鐮佸鏄撹法骞冲彴锛孋璇█涓嶅鏄擄紱4銆丆璇█鍙互鐩存帴鎿嶄綔涓插彛锛孞ava闇瑕佺涓夋柟鐨勬敮鎸侊紱5銆丣ava鐨勭嚎绋嬫槸灏佽濂界殑锛孋璇█鐨勭嚎绋嬫洿鍔犵伒娲伙紱6銆丣ava...
  • java鍜宑璇█鏈変粈涔鍖哄埆鍜岃仈绯?
    绛旓細final銆乸rivate鏄潤鎬佺粦瀹氫互澶栵紝鎵鏈夋柟娉曚竴寰嬫寜鍔ㄦ佺粦瀹氬鐞嗐3銆佸湪鍒濆鍊鐨勫尯鍒 鍦C璇█涓紝鏄彲浠ヤ笉鍒濆鍖栦娇鐢ㄧ殑 鑰屽湪JAVA涓紝鏄繀椤诲垵濮嬪寲鍊肩殑銆4銆佸湪鎶借薄鏂规硶鎴栨娊璞$被鐨勫尯鍒 C璇█鐨勫绛夎娉曟槸鈥滅函铏氬嚱鏁扳濆拰鈥滄娊璞$被鈥 Java浣跨敤abstract鍏抽敭瀛椾慨楗版娊璞℃柟娉曟垨鎶借薄绫伙紝final绫讳笉鑳借缁ф壙銆
  • 扩展阅读:c++和java哪个好就业 ... c++和java哪个工资高 ... java自学要学多久 ... 学java一般能干什么 ... 学c++有前景吗 ... 学c++好还是学java好 ... c++和python先学哪个 ... java c++ ... 先学c++还是先学java ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网