c++与java的区别,与相似

关于学习的一点疑问

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

    刚开始的时候我们也搞不清这些概念,不过后来就慢慢清晰了,首先和大家谈谈Java和js的区别,最简单的区别就是一个是后端,一个是前端。

    java是纯面向对象语言,javascrip其实和Java是完全不同的东西,他以前也不叫JavaScript,叫做etscape Navigator,据说是为了搭载Java的顺分车才改名叫js的,因为当时Java很火。

    JavaScript 是一种“脚本”,它直接把代码写到 HTML中,浏览器读取它们的时候才进行编译、执行。Java,是嵌在网页中,而又有自己独立的运行窗口的小程序。而且JavaScript 是动态类型语言,而 Java 是静态类型语言

    让我们在来看看Java和c语言的区别,首先Java是面向对象的在里面,而C是完全面向过程的。Java可以跨平台,不同的操作系统都可以通过JVM来解释Java程序,而c语言的有些指令只在某些操作系统中才能执行。

    那么js和c语言的区别在哪里呢?JavaScript是嵌入式脚本语言,可以直接插入网页或者以单独文件的形式引入网页。C语言是编译型语言,编写完毕后需要调试、编译,编译后为可执行文件,可独立运行。

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方法。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-08-04
c/c++ 比较早,C++引入了面向对象的概念,尽管它还不是纯粹的面向对象语言。关于c/c++就不用多说了,他们地位是撼不动的。很强大。

后来Java出来了 ,同样震精世界了啊,纯粹的面向对象,不像c++那样还保留了些许面向过程的思想。因为其跨平台的原因,java的运行机制和其他语言不一样,引入了虚拟机的概念,它既不属于编译型的语言 也不属于解释型的语言,而处于中间,他将源代码编译成了所谓的字节码,由虚拟机负责解释然后和本地操作系统沟通并执行,可以说他编译是面向虚拟机的,而非特定的机器,这点和C以及其他编译型语言有明显的区别。当然Java取消了c/c++里面指针的概念,减少了程序员的负担。

要说他们的相同点,那就是他们都编程语言,都能完成人们赋予它们的任务。
要说不同点,那就它们属于不同的家族,每个家族都有他们擅长的领域、和不擅长的领域。比如,你要去写一个底层的驱动了,那么你把C语言拿过来了,给你个单片机让你写个程序控制某台机器,你又把C语言拿出来了,第二天又让你写个网站程序,会员注册管理之类的,这个时候你把java的 j2ee搬出来了,搞定了。相信从这里你就看出来,他们的区别在哪里了,也就是他们各自擅长的领域和不擅长的领域在哪里。你绝对不能用java语言去开发一个驱动程序,你更不能用C语言,去写一个 B/S架构的网站,试图取代java ee 里面的 servlet 那就累了。
当然,除了这些语言之外,还有很多的语言可供选择,有时候各种语言会重叠,实现同一任务,会有N多可选择的语言,这个时候,就根据你喜欢了,或者说公司有要求,必须用什么写,你就用什么写,最终完成任务。

我不赞成,把各种语言拿过来横向对比,非得排出一个序来,争的脸红脖子粗,来证明谁更牛逼,谁第二牛逼,等等。就好比你写一个windows窗口应用程序,你可以用c 也可以用vc++ mfc 也可以用delphi 还可以用c# 甚至还能用易语言,当然也能用java ,java里面又能选择使用 AWT,SWING,SWT 等等。。。 这么多的选择,只能说,你喜欢用哪个、哪个用的顺手就用哪个,不纯正谁比谁牛逼的问题。
我用一根针,来削铅笔,很费劲不能实现,拿过来一把小刀,很轻松就完成任务了,我认为刀子比针牛逼;后来我需要缝衣服了,把刀子拿过来怎么缝也缝不好,结果用针很轻松的完成任务了,我又感觉针比刀子牛逼。到底谁牛逼?能够学会在不同的场合使用最合适的工具的人,才是最牛逼的,而刀子和针,仅仅是一个没有思想的工具罢了,程序语言也是一样的。本回答被提问者和网友采纳
第2个回答  2012-02-21
Java中无指针,地址什么的操作,和C++的同名关键字也意义不一样。
Java现在发展的是越来越接近C++了。
第3个回答  2012-02-21
你学学就知道了。 其实编程语言都很相似。
相似回答