首页 > 编程语言 >Java到底是编译型语言还是解释型语言?

Java到底是编译型语言还是解释型语言?

时间:2023-03-08 12:11:48浏览次数:57  
标签:Java 语言 程序 c++ 编译 java

Java编程语言是由Sun微系统公司在20世纪90年代早期开发的。尽管Java主要用于基于internet的应用程序,但它是一种简单、高效、通用的语言。Java最初是为运行在多个平台上的嵌入式网络应用程序而设计的。它是一种可移植的、面向对象的解释性语言。

Java是非常可移植的。相同的Java应用程序可以在任何计算机上以相同的方式运行,而不考虑硬件特性或操作系统,只要它有Java解释器。除了可移植性之外,Java的另一个关键优势是它的一组安全特性,这些特性不仅可以保护运行Java程序的PC不受错误代码引起的问题的影响,还可以保护运行Java程序的PC不受恶意程序(如病毒)的影响。您可以安全地运行从Internet下载的Java applet,因为Java的安全特性可以防止这些类型的applet访问PC的硬盘驱动器或网络连接。applet通常是嵌入在HTML页面中的小型Java程序。

Java既可以被认为是编译型语言,也可以被认为是解释型语言,因为它的源代码首先被编译成二进制字节码。这个字节码运行在Java虚拟机(JVM)上,JVM通常是一个基于软件的解释器。使用编译的字节码可以使解释器(虚拟机)变得更小、更高效(几乎和CPU运行本机编译代码一样快)。此外,这个字节码为Java提供了可移植性:无论计算机硬件或软件配置如何,它都可以在任何正确实现的JVM上运行。大多数Web浏览器(如Microsoft Internet Explorer或Netscape Communicator)包含运行Java小程序的JVM。

与c++(另一种面向对象的语言)相比,Java代码运行稍慢(因为JVM),但它更可移植,具有更好的安全特性。虚拟机在不受信任的Java程序和运行该软件的PC之间提供隔离。Java的语法类似于c++,但是语言有很大的不同。例如,Java不允许程序员实现运算符重载,而c++允许。此外,Java是一种动态语言,您可以在程序运行时安全地修改它,而c++不允许这样做。这对于无法承受任何停机时间的网络应用程序尤其重要。此外,所有基本Java数据类型都是预定义的,不依赖于平台,而一些数据类型可以随着C或c++中使用的平台而改变(例如int类型)。

Java程序比c++程序更具有高度的结构化。Java中的所有函数(或Java方法)和可执行语句必须驻留在类中,而c++允许函数定义和代码行存在于类之外(就像C风格的程序一样)。在Java中,全局数据和方法不能驻留在类之外,而c++允许这样做。这些限制虽然有时很麻烦,但有助于维护Java程序的完整性和安全性,并迫使它们完全面向对象。

Java的另一个关键特性是它是一个开放标准,其源代码是公开的。Sun Microsystems控制着Java语言及其相关产品,但Sun的自由许可政策促成了互联网社区将Java作为标准。您可以从Sun的Java Web站点免费下载开发和运行Java小程序和应用程序所需的所有工具

http://java.sun.com

 

在本例中,类AverageProgram(即程序)只包含一个方法(函数)main()。注意,大部分语法与C或c++相同,包括注释分隔符:您可以在Java中使用C(/* */)或c++(//)风格的分隔符。甚至while()语句也像在C/ c++中一样工作。输出到屏幕是使用System.out.println()完成的,其中println()是标准Java System的调用方法。对象。Java也有一个系统。在对象中,用于从键盘读取,但必须经过处理才能有用。在本例中,假设ConsoleIn是先前定义的类(使用System.in),其中包含用于读取整数值的Readlnt()方法。

与我们调查过的其他编程语言一样,这只是对Java的简要介绍。要了解更多细节,请参考参考书目中的Java文本或访问Sun Microsystems的Java网站(http://java.sun.com)。接下来我们将讨论如何编写在微软Windows操作系统下运行的程序。

 

(1)java语言的编译-->解释--->执行过程

 

 

 

 

 

 

 

 

(2)java的虚拟机

 

 

 

 

 

 

 

定义:

编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。

解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!

区别:

编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。

解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。

个人认为,java更偏向解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。

附:

编译型的语言包括:C、C++、Delphi、Pascal、Fortran

解释型的语言包括:Java、Basic、javascript

 

标签:Java,语言,程序,c++,编译,java
From: https://www.cnblogs.com/lps1944900433/p/17191588.html

相关文章

  • java jdk8 时间系列 Duration和Period的使用
    简介Duration类通过年月日时分秒相结合来描述一个时间量,最高精度是纳秒。时间量可以为正也可以为负,比如1天(86400秒0纳秒)、-1天(-86400秒0纳秒)、1年(31556952秒0纳秒)、1毫秒......
  • JAVA 实现导入导出Excel-随笔
    1、开个小差今天是我第一次使用博客园记录随笔内容;从-CSDN->Typora->语雀其中的转换过程中,让我清楚这三个工具都比博客园记录随笔要轻松的多;话又说回来,那么我又为什么......
  • Go语言: 如何让 request.Body 可以多次读取
    起因:困惑使用了go的http服务后,发现request.Body居然只能读取一次,第二次读取数据为nil.比如我在gin的服务器中,先加入了accessLog,需要进行parseForm()但是后续......
  • java map集合的获取功能
       ......
  • 实验1 C语言开发环境使用和编程初体验
    实验任务1程序源码//打印一个字符小人#include<stdio.h>intmain(){printf("O\n");printf("<H>\n");printf("II\n");printf("O\n");printf("<H>\n");......
  • Java分布式应用:性能调优
    第五部分性能调优性能瓶颈的表象:1.资源消耗过多、外部处理系统的性能不足2.资源消耗不多,但程序的响应速度不够关于CPU通常使用时间片、多核的方法达到对CPU的分割;每个C......
  • Java分布式应用:分布式Java应用与Sun JDK类库
    第四部分分布式Java应用与SunJDK类库集合包CollectionList接口:List接口:List(有序、可重复)的实现类有ArrayList、Vector、LinkListArrayList、Vector底层是通过数组实现......
  • Java分布式应用:深入了解JVM
    第三部分深入理解JVMJava代码的执行过程Java源码编译机制javac将java源码转换成javaclass字节码java运行javaclass字节码Java编译后产生的是字节码,在运行的时候将字......
  • Java基础面试(三)
    Java基础面试(三)1.Java一个类当中如果没有构造函数,编译器会自动生成一个缺省的构造函数;如果这个类有其他的构造函数,编译器则不会提供缺省构造参数。2.SpringMVC与Struct2.......
  • 实现动态切换版本JDK8和JAVA17
    一、下载安装两个版本的JDK官网下载地址:JavaDownloads|Oracle下载安装成功后,安装路径E:\Java\上 JDK8 有两个包一个jdk1.8.0_231,一个jre1.8.0_231。JDK17只有一个j......