java语言编写的程序是编译执行还是解释执行

2022-09-07 09:18:02   编辑:盛杰学
导读很多朋友对java语言编写的程序是编译执行还是解释执行还不了解,今天小绿就为大家解答一下。Java简介Java是一种面向对象的编程语言,它既吸...

很多朋友对java语言编写的程序是编译执行还是解释执行还不了解,今天小绿就为大家解答一下。

Java简介

Java是一种面向对象的编程语言,它既吸收了C语言的优点,又摒弃了C语言中难以理解的多继承和指针等概念,因此Java语言有两个特点:功能强大,使用简单。Java作为静态面向对象编程语言的代表,完美的实现了面向对象理论,让程序员用优雅的思维进行复杂的编程。

Java具有简单、面向对象、分布式、健壮、安全、平台无关和可移植、多线程、动态等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

语言特点

1.简单

Java看起来很像C,但是为了让语言变得小巧,易于熟悉,设计者去掉了C语言中很多可用的特性,一般程序员很少用到。例如,Java不支持go to语句,而是提供break和continue语句以及异常处理。Java还消除了C的运算符重载和多继承特性,不使用主文件,从而消除了预处理器。因为Java没有结构,数组和字符串都是对象,所以不需要指针。Java可以自动处理对象的引用和间接引用,实现自动垃圾回收,让用户不用担心存储管理问题,可以把更多的时间和精力放在研发上。

2.面向对象

Java是一种面向对象的语言。对于程序员来说,这意味着关注数据和操作数据的方法,而不是严格按照过程来思考。在面向对象的系统中,类是数据和操作数据的方法的集合。数据和方法描述对象的状态和行为。每个对象都是其状态和行为的封装。类是按照一定的体系和层次来排列的,这样子类就可以继承超类的行为。这个类层次结构中有一个根类,它是一个具有一般行为的类。Java程序是按类组织的。

Java还包括一组扩展的类,它们分别形成不同的包,用户可以在自己的程序中使用它们。例如,Java提供了生成图形用户界面组件的类(java.awt包),其中awt是abstract windowing toolkit的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.awt包)。

3.分配

Java是为支持网络应用而设计的,它是一种分布式语言。Java不仅支持各种级别的网络连接,还支持Socket类的可靠流网络连接,因此用户可以生成分布式的客户端和服务器。网络成为软件应用程序的分布式载体。Java程序可以一次编写,随处运行。

4.编译和解释

Java编译器生成字节码,而不是通常的机器码。Java字节码提供了一种与体系结构无关的目标文件格式,该代码被设计用来有效地将程序转移到多个平台。Java程序可以在任何实现Java解释器和运行时系统的系统上运行。在解释性环境中,程序开发的标准“链接”阶段已经大大消失了。

如果Java还有链接阶段,那只是将新类加载到环境中的过程。这是一个渐进的轻量级过程。因此,Java支持快速原型和简单的实验,这将导致快速的程序开发。这是一个微妙的开发过程,与传统耗时的“编译、链接和测试”形成鲜明对比。

5.稳健性

Java最初被用作编写消费电子产品的语言,所以它被设计用来编写高度可靠和健壮的软件。Java消除了一些编程错误,使得用它编写可靠的软件变得非常容易。

Java是一种强类型语言,允许您扩展在编译时检查潜在类型不匹配的能力。Java要求显式方法声明,不支持C风格的隐式声明。这些严格的要求确保了编译器可以捕捉调用错误,从而产生更可靠的程序。

可靠性最重要的增强之一是Java的存储模型。Java不支持指针,这消除了覆盖存储的和损坏的数据的可能性。类似地,Java的自动垃圾收集可以防止存储泄漏和其他与动态存储分配和释放相关的有害错误。

Java解释器还执行许多运行时检查,比如验证所有的数组和字符串访问都在界限内。异常处理是Java中的另一个特性,它使程序更加健壮。异常是发生类似错误的异常情况的信号。使用try/catch/finally语句,程序员可以找到错误处理代码,这简化了错误处理和恢复的任务。

6.安全

Java的存储分配模型是其防御恶意代码的主要方法之一。Java没有指针,程序员无法获取隐藏的内幕,伪造指针指向内存。更重要的是,Java编译器不处理存储安排决策,所以程序员无法通过查看声明来猜测类的实际存储安排。编译后的Java代码中存储引用的实际存储地址是由Java解释器在运行时确定的。

Java运行系统使用字节码验证过程来确保网络上加载的代码不违反任何Java语言限制。这个安全机制包括如何从互联网加载类。比如加载的类放在单独的命名空间而不是本地类,防止恶意的小应用用自己的版本替换了标准的Java类。

7.轻便

使Java语言声明独立于实现方面。例如,Java明确说明了每个基本数据类型的大小及其操作行为(这些数据类型由Java语法描述)。Java环境本身可以移植到新的硬件平台和操作系统。Java编译器也是用Java写的,而Java运行系统是用ANSIC语言写的。

8.高性能

Java是一种先编译后解释的语言,所以没有完全编译的语言快。但是,在某些情况下,性能非常重要。为了支持这些情况,Java设计者们做了一个“即时”编译器,可以在运行时将Java字节码翻译成特定CPU(中央处理器)的机器码,即实现全编译。

Java字节码格式是考虑到这些“即时”编译程序而设计的,所以生成机器码的过程相当简单,而且可以产生相当好的代码。

9.多线程

Java是一种多线程语言,支持多线程执行(也叫轻量级进程),可以处理不同的任务,很容易设计出有线索的程序。Java lang包提供了一个线程类,支持启动线程、运行线程、停止线程、检查线程状态的方法。Java的clue支持还包括一组同步原语。

这些原语是由C.A.R. Hao开发的广泛使用的同步方案,它们基于监督变量和条件变量。使用关键字synchronized,程序员可以解释一些方法不能在一个类中同时运行。这些方法在主管的控制下,以确保变量保持一致的状态。

10、动态

Java是为了适应不断变化的环境而设计的,它是一种动态语言。比如Java中的类是按需加载的,有些甚至是通过网络获取的。

以上问题已解答完毕,如果想要了解更多内容,请关注本站

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章