Java和C的区别

作者&投稿:乜莘 (若有异议请与网页底部的电邮联系)
Java和C + +有什么区别?~

对于基础的掌握的话,两者相对来说差不多。因为都是面向对象的语言,大部分语法都类似。不过,相对来说JAVA更易用,因为JAVA没有指针概念,都是通过java虚拟机完成了内存回收,因此对于编程者来说这个更易用。而C++需要编程人员自己掌握内存的申请和释放,如果掌握不好,就容易出现程序崩溃等问题。JAVA语言和C++语言要想学的比较好,那么第三方类库是必不可少的,像JAVA的swing等,C++的ACE等等都是很不错的类库,必须掌握这些技能。从语言排行来看,这两者都是前3名的。JAVA略占优势。就业前景两者都有发展,不过先学习JAVA再转C++相对有些困难,而C++向JAVA转型相对来说较容易。个人的认识如上,自学的话建议学习java吧,总体来说相对C++会容易一些。 区别:—————— JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。而由于c++为了照顾大量的C语言使用者, 而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。 Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。我在这里不能完全列出不同之处,仅列出比较显著的区别: 1.指针 JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。 2.多重继承 c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。 3.数据类型及类 Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++允许将函数和变量定义为全局的。此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。 4.自动内存管理 Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法: Read r=new Read(); r.work();语句Read r=new Read();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。 5.操作符重载 Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。 6.预处理功能 Java不支持预处理功能。c/c十十在编译过程中都有一个预编译阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。 7. Java不支持缺省函数参数,而c十十支持 在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。 Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。 8 字符串 c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(String和StringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点: (1)在整个系统中建立字符串和访问字符串元素的方法是一致的; (2)字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分; (3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误; (4)可对字符串用“十”进行连接操作。 9.“goto“语句 “可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。 l0.类型转换 在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类转换问题。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。 11.异常 JAVA中的异常机制用于捕获例外事件,增强系统容错能力 try{//可能产生例外的代码 }catch(exceptionType name){ //处理 } 其中exceptionType表示异常类型。而C++则没有如此方便的机制。

微软MVP解读,C#与java的语言之争

Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。

另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。

再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。

再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。

Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。

另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。

再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。

再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。

总的来说,Java比较容易上手,学得快,但对于了解编程语言来说帮助不如C大。
当然Java和C之间的区别还有很多很多。

天呀, 前面都在说些什么呀?
1, c, 和java都是可以跨平台的, c基于编译技术, java基于虚拟机, 两个语言跨平台的机制不同.
2, java对于语言做了很多精简, 比如去除了基本数据类型的指针, 去除了函数指针, 去除了对象(复合数据类型)的传值. 但是, 由此, 他的很多解决方案就不如c语言直观了, 比如匿名类只是为了处理mvc.
3, java虽然是精简去的, 但是由于上面的原因, 他其实比c还要复杂.
4, 但是从framework的角度说, java就比c强很多了, java由于限制多, 导致问题和陷阱也少.
5, 因此, java其实比c要简单一些.
吼吼, 不知这么说你是否理解, 建议你, 两种语言都用用, 如果只能选择一种, 建议你选择c, 这个是基础, 什么oo, 都是浮云.

Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。

另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行。具体原因是,Java是解释型语言,所有代码都会翻译成统一的、与系统无关的bytecode,然后放到JVM上运行;而C是编译式语言,代码要先通过编译器转换成与系统相关的中间代码,然后才能运行。

再一个不同是,Java不支持系统调用,既无法与操作系统进行交互,这是由它跨平台的特点决定的,而C则可以调用系统中的指令,如fork()。这也就是为什么Java中只有线程(Thread)概念而没有进程(Process)概念,而C两者均有。

再者,Java无法对内存进行控制,而C则可以通过指针对内存进行人为分配。
还有一点,Java有Gabbage Collection机制,可以自动回收不再使用的空间,而C则要用free()函数释放空间。

总的来说,Java比较容易上手,学得快,但对于了解编程语言来说帮助不如C大。
当然Java和C之间的区别还有很多很多。

Java主要采用纯面向对象的思想,而C是面向过程的,C++是半面向对象的。


C罩杯是最大的吗?
c不是最大,但是对于中国女人来说c是比较完美的。在网上看到明星的被罩如下:a:孙燕姿 a+:袁咏仪 b:舒淇 c:林熙蕾(性感小野猫)d:李纹(性感女神)e:田丽(台湾最完美的胸部,不过人家是模特,一般人不用那么夸张,否则反而没整体感)f:楼上所说的女F4组合就是,不过看上去太AV,男人容易当...

单反照相机上的B、 M、 A、 C、 P、 TV、 S是什么意思?
AV:AV模式即光圈优先自动曝光模式,用户可以手动设置所需的光圈值,而相机会自动计算并选择合适的快门速度以达到正确的曝光。TV:TV模式是快门优先自动曝光模式,用户可以手动设定快门速度,而相机会根据此快门速度自动调整光圈大小以保证曝光正确。P:P模式是程序自动曝光模式,相机会自动控制光圈和快门速度,...

照相机上的B, M, AV, TV, P, C, A分别表示什么?
AV:光圈优先自动曝光模式(手动调节光圈,快门速度由机器自动调节)TV:快门优先自动曝光模式(手动调节快门,光圈由机器自动调节)P:程序自动曝光模式(光圈、快门都由机器自动调节)CA:创意自动在亮度、景深、色调等参数上可以调节,相较于在全自动模式下(标识是个长方形框)可以调的参数更多(参照相机...

我想问一下功放的av的意思是什么
音响的AV功放是包含了音频和视频两种讯号处理的视听放大器,强调的是声场的氛围,专门用于家庭影院。AV功放的A(audio)表示音频、音响,V(video)表示音频、图像。音响是一个简化后的日常词语,是音响系统的简称。即代指一整套可以还原播放音频信号的设备。音响系统很重要的一样设备是音箱,音箱一般由喇叭单...

功放分类
2、如果导通角是在半周期以上,全周期以下的,属于AB类(甲乙类),AB类的效率比A类高一些。3、如果导通角是半周期,属于B类(乙类),B类的效率比A、AB都高,但低于C、D类,而失真度比前两者稍大,可以说是综合性能很好的一种功放,所以日常也是这种使用得最多。理论效率78.5%,实际在50-60...

电脑后面的插孔边上的字母AV是什么意思啊!
AV插口就是音频与视频插口,V--代表视频,是黄色,A--代表音频,一般是两个声道,一个是白色,为左声道,一个红色,为右声道。s-video,就是二分量视频接口,就是在AV接口的基础上将色度信号C 和亮度信号Y进行分离,再分别以不同的通道进行传输。只有一根线。

求佳能500d各个档位的名称及功能
我用的是6D 只习惯于用M B C和AV 其他的 不太了解 大概应该是这样吧 对不对 就不知道了 A-DEP 自动曝光 M 手动挡 AV 光圈挡 TV 快门挡 P 程序曝光 后面的基本都是傻瓜档 运动模式 微距模式 风景模式 全自动模式 短片录制模式什么得 ...

牛A和牛C之间的人是什么?【其实我知道,只是无聊问问你们哈哈=-=不好笑...
牛Bde啦!

eterm中AV 这个指令所列出的字母表中字母都代表什么意思 以南航为例...
A 可以提供9个以上座位,1-9 可以提供1-9个座位,这种情况下系统显示具体的可利用座位数 L 没有可利用座位,但旅客可以候补 Q 永久申请状态,没有可利用座位,但可以申请(HN)S 因到达限制销售数而没有可利用座位,但可以候补 C 该等级彻底关闭,不允许候补或者申请 X 该等级...

佳能70D档位TV.AV.M.B.C.SCN.CA.A+,新手适合用哪个档位
展开全部 新手不适宜用M档……这个档位所有参数都需要人工设置,新手使用起来非常吃力。新手可以尝试使用AV和TV这两个档位……光圈优先与快门优先这两个档位经过逐步练习,可以有效提升拍摄技术水准 已赞过 已踩过< 你对这个回答的评价是? 评论 收起

历城区13920656059: java 和c的具体区别 -
圭聂乳癖: JAVA是面向对象语言,C是面向过程语言.1、C需要在目标平台上编译为机器码(二进制可执行文件)才能执行;Java可以在任何平台上编译为字节码(class文件),便可以在几乎所有平台上执行;2、C编译过的文件可以直接执行,效率更...

历城区13920656059: c语言和java的区别 -
圭聂乳癖: 语法不同; 单文件的编译时间java比C语言快; C语言可以直接操作内存,java不能直接操作; C语言可以封装动态库,java不行; C语言的代码不容易跨平台,java的代码容易跨平台; C语言有指针,java没有指针; C语言可以直接操作串口,...

历城区13920656059: C语言和JAVA这两种语言的区别 -
圭聂乳癖: 从本质上说:C语言面向过程,JAVA语言面向对象.从应用的角度看,C语言更多的用于对底层硬件的抽象(如:嵌入式、单片机领域),JAVA更多用于应用层软件的开发(如:B/S模式、C/S模式的软件)

历城区13920656059: java语言与c语言的不同 -
圭聂乳癖: 往大了说没有什么不同,所有编程语言在本质上都是想通的.逻辑算法什么的自然不用说,都是一样的.往细节了说,c是面向过程的而Java是面向对象的.面向过程是将问题简化为一个过程,面向对象则是将事物对象化,也就是所说的“类”.具体的异同还要自己亲自体会,毕竟所有别人说的都是别人的观点.

历城区13920656059: Java和C的区别
圭聂乳癖: Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象. 另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程...

历城区13920656059: C语言于JAVA语言的区别和联系 -
圭聂乳癖: Java面向对象,应该说比c语言要好用些,有些功能c语言没有,比如继承和多态.它们之间基本没有联系,但是学过c语言之后学Java会更容易些,因为c语言里的函数跟Java里的方法很类似. 如同平常说的:学会了一门语言可以融会贯通其他的语言.如果你会c,相信一星期内你对Java会有一个比较深的了解,当然前提是你得对c非常了解

历城区13920656059: c语言和java的有什么区别和联系
圭聂乳癖: Java和C都是指令式语言,不同的是Java有面向对象成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象.Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,而C、C++、C#则是与平台相关的,有些指令只在某些操作系统中才能执行.

历城区13920656059: C语言和java语言的区别和联系? -
圭聂乳癖: 各种编程语言既相互区别,又相互联系,一般来说,编程的话都是从c语言学起,然后再学习其他语言如c++,java,c#等的时候就会比较好理解了.

历城区13920656059: c语言与java语言的区别有哪些?
圭聂乳癖: C语言是一个基础语言,JAVA语言是一个快速开发语言,其区别较多,主要区别如下: C语言实现: 新型编译器,如JAVA, C#, 实时操作系统,如Linux(90%) , vxwork(60%) , WINDOWS 90%硬件相关的板卡. MS51-96-196-8086-ARM32,甚...

历城区13920656059: C语言与Java语言的差别?详细点! -
圭聂乳癖: C语言是面向过程的语言,而JAVA是面向对象的语言.java相对于c语言而言,去掉了指针等容易出错的功能, 具体如下:Java没有预处理命令.Java用static final来取代C中的常量定义.Java没有全局变量.Java基本数据类型的size是确定的,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网