java语言的编译环境和c++有什么区别,java的特色是什么?
2个回答
展开全部
Java不是编译成本机机器代码,而是编译成自己的虚拟机代码,由虚拟机解释执行,C++是编译成本机代码执行的。
Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
具体来说,它具有如下特性:
简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。
1.面向对象面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。
继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。
2 平台无关性
Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。
Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。
另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。
Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个
Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。
3 分布式分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。
Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。
Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。
4 可靠性和安全性
Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
上述几种机制结合起来,使得Java成为安全的编程语言。
5 多线程线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。
C和C++采用单线程体系结构,而Java却提供了多线程支持。
Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。
Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
具体来说,它具有如下特性:
简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。
1.面向对象面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。
继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。
2 平台无关性
Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。
Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。
另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。
Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个
Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。
3 分布式分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。
Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。
Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。
4 可靠性和安全性
Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。
由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
上述几种机制结合起来,使得Java成为安全的编程语言。
5 多线程线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。
C和C++采用单线程体系结构,而Java却提供了多线程支持。
Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。
展开全部
Java编译本机机器代码编译自虚拟机代码由虚拟机解释执行C++编译本机代码执行
Java种跨平台适合于布式计算环境面向象编程语言
具体说具特性:
简单性、面向象、布式、解释型、靠、安全、平台关、移植、高性能、线程、态性等
面我重点介绍Java语言面向象、平台关、布式、线程、靠安全等特性
1.面向象
面向象其实现实世界模型自延伸现实世界任何实体都看作象象间通消息相互作用另外现实世界任何实体都归属于某类事物任何象都某类事物实例说传统程式编程语言程算驱面向象编程语言则象消息驱用公式表示程式编程语言:程序=算+数据;面向象编程语言:程序=象+消息
所面向象编程语言都支持三概念:封装、态性继承Java例外现实世界象均属性行映射计算机程序属性则表示象数据行表示象(其作用处理数据或同外界交互)所谓封装用自主式框架象数据联起形整体说象支持封装手段封装基本单位Java语言封装性较强Java全程变量主函数Java绝部员象简单数字类型、字符类型布尔类型除外于些类型Java提供相应象类型便与其象交互操作
态性种表现形式具体说用外接口内实现表示举例计算机堆栈存储各种格式数据包括整型浮点或字符管存储何种数据堆栈算实现针同数据类型编程员必手工选择需使用统接口名系统自选择运算符重载(operatoroverload)直认种优秀态机制体现由于考虑使程序变难理解所Java取消
继承指象直接使用另象属性事实我遇实体都继承含义例若汽车看实体实体:卡车、公共汽车等些实体都具汽车特性汽车父亲些实体则汽车孩Java提供给用户系列类(class)Java类层结构类继承父类属性与另外些面向象编程语言同Java支持单继承
2?平台关性
Java平台关语言指用Java写应用程序用修改同软硬件平台运行平台关两种:源代码级目标代码级CC++具定程度源代码级平台关表明用C或C++写应用程序用修改需重新编译同平台运行
Java主要靠Java虚拟机(JVM)目标码级实现平台关性JVM种抽象机器附着具体操作系统本身具套虚机器指令并自栈、寄存器组等JVM通软件硬件实现(目前SUN系统公司已经设计实现Java芯片主要使用网络计算机NC
另外Java芯片现使Java更容易嵌入家用电器)JVMJava平台关基础JVMJava解释器用解释Java编译器编译程序Java编程员编写完软件通Java编译器Java源程序编译JVM字节代码任何台机器要配备Java解释器运行程序管种字节码何种平台另外Java采用基于IEEE标准数据类型通JVM保证数据类型致性确保Java平台关性
Java平台关性具深远意义首先使编程员所梦寐求事情(发软件任意平台运行)变事实加快促进软件产品发其Java平台关性迎合网络计算机思想量用应用软件(字处理软件等)都用Java重新编写并且放某Internet服务器具NC用户需要占用量空间安装软件需要
Java解释器每需要使用某种应用软件载该软件字节代码即运行结发服务器目前已数家公司始使用种新型计算模式构筑自企业信息系统
3?布式
布式包括数据布操作布数据布指数据散网络同主机操作布指计算散同主机处理
Java支持WWW客户机/服务器计算模式支持两种布性于前者Java提供叫作URL象利用象打并访问具相同URL址象访问式与访问本文件系统相同于者Javaapplet程序服务器载客户端即部计算客户端进行提高系统执行效率
Java提供整套网络类库发员利用类库进行网络程序设计便实现Java布式特性
4?靠性安全性
Java初设计目应用于电类消费产品要求较高靠性Java虽源于C++消除许C++靠素防止许编程错误首先Java强类型语言要求显式声明保证编译器发现调用错误保证程序更加靠;其Java支持指针杜绝内存非访问;第三Java自单元收集防止内存丢失等态内存配导致问题;第四Java解释器运行实施检查发现数组字符串访问越界Java提供异处理机制程序员组错误代码放简化错误处理任务便于恢复
由于Java主要用于网络应用程序发安全性较高要求没安全保证用户网络载程序执行非危险Java通自安全机制防止病毒程序产载程序本系统威胁破坏Java字节码进入解释器首先必须经字节码校验器检查Java解释器决定程序类内存布局随类装载器负责自网络类装载单独内存区域避免应用程序间相互干扰破坏客户端用户限制网络装载类能访问某些文件系统
述几种机制结合起使Java安全编程语言
5?线程
线程操作系统种新概念称作轻量进程比传统进程更并发执行单位
CC++采用单线程体系结构Java却提供线程支持
Java两面支持线程面Java环境本身线程若干系统线程运行负责必要用单元收系统维护等系统级操作;另面Java语言内置线程控制简化线程应用程序发Java提供类Thread由负责启运行终止线程并检查线程状态Java线程包括组同步原语些原语负责线程实行并发控制利用Java线程编程接口发员便写支持线程应用程序提高程序执行效率必须注意Java线程支持定程度受运行支持平台限制例操作系统本身支持线程Java线程特性能表现
Java种跨平台适合于布式计算环境面向象编程语言
具体说具特性:
简单性、面向象、布式、解释型、靠、安全、平台关、移植、高性能、线程、态性等
面我重点介绍Java语言面向象、平台关、布式、线程、靠安全等特性
1.面向象
面向象其实现实世界模型自延伸现实世界任何实体都看作象象间通消息相互作用另外现实世界任何实体都归属于某类事物任何象都某类事物实例说传统程式编程语言程算驱面向象编程语言则象消息驱用公式表示程式编程语言:程序=算+数据;面向象编程语言:程序=象+消息
所面向象编程语言都支持三概念:封装、态性继承Java例外现实世界象均属性行映射计算机程序属性则表示象数据行表示象(其作用处理数据或同外界交互)所谓封装用自主式框架象数据联起形整体说象支持封装手段封装基本单位Java语言封装性较强Java全程变量主函数Java绝部员象简单数字类型、字符类型布尔类型除外于些类型Java提供相应象类型便与其象交互操作
态性种表现形式具体说用外接口内实现表示举例计算机堆栈存储各种格式数据包括整型浮点或字符管存储何种数据堆栈算实现针同数据类型编程员必手工选择需使用统接口名系统自选择运算符重载(operatoroverload)直认种优秀态机制体现由于考虑使程序变难理解所Java取消
继承指象直接使用另象属性事实我遇实体都继承含义例若汽车看实体实体:卡车、公共汽车等些实体都具汽车特性汽车父亲些实体则汽车孩Java提供给用户系列类(class)Java类层结构类继承父类属性与另外些面向象编程语言同Java支持单继承
2?平台关性
Java平台关语言指用Java写应用程序用修改同软硬件平台运行平台关两种:源代码级目标代码级CC++具定程度源代码级平台关表明用C或C++写应用程序用修改需重新编译同平台运行
Java主要靠Java虚拟机(JVM)目标码级实现平台关性JVM种抽象机器附着具体操作系统本身具套虚机器指令并自栈、寄存器组等JVM通软件硬件实现(目前SUN系统公司已经设计实现Java芯片主要使用网络计算机NC
另外Java芯片现使Java更容易嵌入家用电器)JVMJava平台关基础JVMJava解释器用解释Java编译器编译程序Java编程员编写完软件通Java编译器Java源程序编译JVM字节代码任何台机器要配备Java解释器运行程序管种字节码何种平台另外Java采用基于IEEE标准数据类型通JVM保证数据类型致性确保Java平台关性
Java平台关性具深远意义首先使编程员所梦寐求事情(发软件任意平台运行)变事实加快促进软件产品发其Java平台关性迎合网络计算机思想量用应用软件(字处理软件等)都用Java重新编写并且放某Internet服务器具NC用户需要占用量空间安装软件需要
Java解释器每需要使用某种应用软件载该软件字节代码即运行结发服务器目前已数家公司始使用种新型计算模式构筑自企业信息系统
3?布式
布式包括数据布操作布数据布指数据散网络同主机操作布指计算散同主机处理
Java支持WWW客户机/服务器计算模式支持两种布性于前者Java提供叫作URL象利用象打并访问具相同URL址象访问式与访问本文件系统相同于者Javaapplet程序服务器载客户端即部计算客户端进行提高系统执行效率
Java提供整套网络类库发员利用类库进行网络程序设计便实现Java布式特性
4?靠性安全性
Java初设计目应用于电类消费产品要求较高靠性Java虽源于C++消除许C++靠素防止许编程错误首先Java强类型语言要求显式声明保证编译器发现调用错误保证程序更加靠;其Java支持指针杜绝内存非访问;第三Java自单元收集防止内存丢失等态内存配导致问题;第四Java解释器运行实施检查发现数组字符串访问越界Java提供异处理机制程序员组错误代码放简化错误处理任务便于恢复
由于Java主要用于网络应用程序发安全性较高要求没安全保证用户网络载程序执行非危险Java通自安全机制防止病毒程序产载程序本系统威胁破坏Java字节码进入解释器首先必须经字节码校验器检查Java解释器决定程序类内存布局随类装载器负责自网络类装载单独内存区域避免应用程序间相互干扰破坏客户端用户限制网络装载类能访问某些文件系统
述几种机制结合起使Java安全编程语言
5?线程
线程操作系统种新概念称作轻量进程比传统进程更并发执行单位
CC++采用单线程体系结构Java却提供线程支持
Java两面支持线程面Java环境本身线程若干系统线程运行负责必要用单元收系统维护等系统级操作;另面Java语言内置线程控制简化线程应用程序发Java提供类Thread由负责启运行终止线程并检查线程状态Java线程包括组同步原语些原语负责线程实行并发控制利用Java线程编程接口发员便写支持线程应用程序提高程序执行效率必须注意Java线程支持定程度受运行支持平台限制例操作系统本身支持线程Java线程特性能表现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询