专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » java和c的区别:JAVA和C++区别 »正文

java和c的区别:JAVA和C++区别

来源: 发布时间:星期五, 2009年4月3日 浏览:0次 评论:0
JAVA和C都是面向对象语言也就是说它们都能够实现面向对象思想(封装继乘多态)而由于c为了照顾大量C语言使用者
RR4DA/zhl而兼容了C使得自身仅仅成为了带类C语言多多少少影响了其面向对象彻底性!JAVA则是完全面向对象语言它句法更清晰规模更小更易学它是在对多种设计语言进行了深入细致研究基础上据弃了其他语言不足的处从根本上解决了c固有缺陷
5f:?D(g9m2O1QJava和c相似的处多于区别的处但两种语言问几处主要区别使得Java更容易学习并且编程环境更为简单
7D6tm ^9|#X0A&J6|A我在这里不能完全列出区别的处仅列出比较显著区别:JAVA中文站社区门户6G+p&R'uvJ y
JAVA中文站社区门户9W.}5ZN)A#ne c7|r
1.指针
VE5M"B'e1yHJAVA语言让编程者无法找到指针来直接访问内存无指针并且增添了自动内存管理功能从而有效地防止了c/c语言中指针操作失误如野指针所造成系统崩溃但也不是说JAVA没有指针虚拟机内部还是使用了指针只是外人不得使用而已这有利于Java安全
v)b+fs4S1xa/X;s$C
5ToQ~9AQ2.多重继承
5g0h(Cp8S.Fc支持多重继承这是c个特征它允许多父类派生个类尽管多重继承功能很强但使用复杂而且会引起许多麻烦编译实现它也很不容易Java不支持多重继承但允许个类继承多个接口(extends+implement)实现了c多重继承功能又避免了c多重继承实现方式带来诸多不便JAVA中文站社区门户&[?"\ o0\ ] J

~P\M2qR7d/bL3.数据类型及类JAVA中文站社区门户V_9z RQ#J%l
Java是完全面向对象语言所有和变量部必须是类部分除了基本数据类型的外其余都作为类对象包括对象将数据和思路方法结合起来把它们封装在类中这样每个对象都可实现自己特点和行为而c允许将和变量定义为全局此外Java中取消了c/c结构和联合消除了不必要麻烦JAVA中文站社区门户/NL ~p T3e,x3TB

F(v+Q{ @w4EMB$[l4.自动内存管理
1cb'J7TRT C |EBJava中所有对象都是用操作符建立在内存堆栈上这个操作符类似于c操作符下面语句由个建立了个类Read对象然后该对象work思路方法:JAVA中文站社区门户B*_5C}7|5z rD M R

"Ry,y6E?l3ARead r= Read
7ZiJsNr.workJAVA中文站社区门户#maP"ci z
JAVA中文站社区门户$Kw6w|(P-jN.gke{
语句Read r= Read;在堆栈结构上建立了个Read例子Java自动进行无用内存回收操作不需要员进行删除而c十十中必须由贝释放内存资源增加了设计者负扔Java中当个对象不被再用到时无用内存回收器将给它加上标签以示删除JAVA里无用内存回收是以线程方式在后台运行利用空闲时间工作JAVA中文站社区门户?7{l k)SyGVyd&Gw"S

$V/BYr w|5.操作符重载
oU8X*R c@Java不支持操作符重载操作符重载被认为是c十十突出特征在Java中虽然类大体上可以实现这样功能但操作符重载方便性仍然丢失了不少Java语言不支持操作符重载是为了保持Java语言尽可能简单JAVA中文站社区门户;x)uk8X$?me0u"y
JAVA中文站社区门户1Bd%bb"}RrOz
6.预处理功能
h M7c_+r5UJava不支持预处理功能c/c十十在编译过程中都有个预编泽阶段即众所周知预处理器预处理器为开发人员提供了方便但增加丁编译复杂性JAVA虚拟机没有预处理器但它提供引入语句(import)和c十十预处理器功能类似JAVA中文站社区门户U7FPwB5a)D(x
JAVA中文站社区门户 DW!|1m#@b7zg*@
7. Java不支持缺省参数而c十十支持
(G/v_o+X[j#NH%M在c中代码组织在可以访问全局变量c十十增加了类提供了类算法该算法是和类相连c十十类思路方法和Java类思路方法十分相似然而由于c十十仍然支持c所以不能阻止c十十开发人员使用结果和思路方法混合使用使得比较混乱
Q&gb3G*fA cgZJava没有作为个比c十十更纯面向对象语言Java强迫开发人员把所有例行包括在类中事实上用思路方法实现例行可激励开发人员更好地组织编码
jw%w-D,Z[
'Ura/Q%}M7N"u;k8 JAVA中文站社区门户0{7C{jw-kT l
c和c十十不支持串变量在c和c十十中使用Null终止符代表结束在Java中串是用类对象(strinR和Buffer)来实现这些类对象是Java语言核心用类对象实现串有以下几个优点:
@:xy L4H^_d'A2R iQ2`(1)在整个系统中建立串和访问串元素思路方法是JAVA中文站社区门户,hs:wfuD&S
(2)J3阳串类是作为Java语言部分定义而不是作为外加延伸部分;JAVA中文站社区门户e [7Rn uTt/kb
(3)Java串执行运行时检空可帮助排除些运行时发生
NKmh0hx(4)可对串用“十”进行连接操作
oLj5q Dt;i|2Y@JAVA中文站社区门户&x.p_1O0v!CF3R
9“goto语句JAVA中文站社区门户,@H;YTlwG_
“可怕”goto语句是c和c“遗物”它是该语言技术上合法部分引用goto语句引起了结构混乱不易理解goto语句子要用于无条件转移子和多结构分支技术鉴于以广理由Java不提供goto语句它虽然指定goto作为关键字但不支持它使用使简洁易读JAVA中文站社区门户No q*_*obC

Wgmn4~Nl0.类型转换
[P:_A)kEV Y在c和c十十中有时出现数据类型隐含转换这就涉及了自动强制类型转换问题例如在c十十中可将浮点值赋予整型变量并去掉其尾数Java不支持c十十中自动强制类型转换如果需要必须由显式进行强制类型转换JAVA中文站社区门户0\Z!M v O`

o~-f)|Y4L-l11.异常
Cq#b m'w!XJAVA中异常机制用于捕获例外事件增强系统容错能力
?avjOW#}
txS.e0tDtry{//可能产生例外代码JAVA中文站社区门户S.o.D+R9^0JU
}catch(exceptionType name){JAVA中文站社区门户A#p*P4|y6q-K
//处理JAVA中文站社区门户"\#_%ZY7Q:D,f
}JAVA中文站社区门户-lN.[ M;Jg W.\`
其中exceptionType表示异常类型而C则没有如此方便机制

TAG: Java JAVA java
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: