讨论:Java 是编译型还是解释型语言?

回答1: 见知乎 郭无心 的回答:

有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。

对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言。也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。

(1)Java语言的编译–>解释–>运行过程

(2)JVM

可以说Java是兼具编译型语言与解释型语言的特点的。

回答2: Java的源代码首先被编译成字节码,然后依赖各种不同平台的虚拟机来解释执行字节码。

回答3: 见知乎 路人 的回答

先看下定义:

编译型语言: 把做好的源程序全部编译成二进制代码的可运行程序,然后,可直接运行这个程序。
解释型语言: 把做好的源程序翻译一句,然后执行一句,直至结束!

Java它是首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言,也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。

参考资料:

  • 知乎:Java 是编译型语言还是解释型语言?
  • 说说Python程序的执行过程 - 飞林沙 - 博客园

  • Java、Python分别是解释型还是编译型语言?

  • 爱上极客:简述编译型与解释型编程语言

  • 大前端开发者需要了解的基础编译原理和语言知识 (这篇文章讲了有关编译器、解释器、编译原理等知识,挺详细的。)

什么是编译型和解释型语言?相关推荐

  1. 编译型和解释型语言的区别

    编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言就不用再进行翻译了. 解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编C/C++ 等都是编译型语言,而Java, ...

  2. 编译型和解释型、动态语言和静态语言、强类型定义语言和弱类型定义语言

    一.编译型与解释型语言 我们编写程序也就是源代码基本是用高级编程语言,比如JavaScript, java, c等等,这些语言计算机是不理解的,所以需要转化(翻译)成计算机理解的机器语言,或者说目标C ...

  3. 彻底明白编译型和解释型、动态语言和静态语言区别

    编译型和解释型的区别 先来看看编译型语言定义: 编译型语言首先是将源代码编译生成机器指令,再由机器运行机器码 (二进制). 再来看看解释型语言的定义: 解释型语言的源代码不是直接翻译成机器指令,而是先 ...

  4. java半解释半编译_编译型语言、解释型语言、半编译半解释型语言

    计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序.将其他语言翻译成机器语言的工具,被称为编译器. 编译器翻译的方式有两种:一种是编译,一种 ...

  5. 关于编程语言的思考——编译型和解释型

    原文地址: http://blog.csdn.net/chosen0ne/article/details/7087041 我们知道,任何编程语言编写的程序归根到底都是由底层机器的机器代码(01序列)执 ...

  6. java介于编译型和解释型

    .java文件先编译成.class文件. 源程序-->Java编译器-->字节码-->类装载器-->(到了jvm)-->字节码校验器-->解释器-->操作系统 ...

  7. 重学java基础第二十一课:编译型和解释型

  8. python语言的解释性特点指的是编写的程序不需要编译_解释性与编译型 Python2和python3的区别...

    一 基础: 1.解释型语言与编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算 ...

  9. 解释型语言和编译型语言的区别

    解释型语言和编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级 ...

最新文章

  1. 点点看   只有想不到没有看不到
  2. jqueryrotate 使用 帮助 笔记 学习
  3. 腾讯的张小龙是一个什么样的人
  4. MySQL系列:innodb源代码分析之线程并发同步机制
  5. 力扣 136. 只出现一次的数字 【异或运算】
  6. java编程语言大全_JAVA编程语言的基础知识(一)
  7. 用科学计算机log21 p x,山东理工大学数据结构期末 试题及答案
  8. 数论之勾股数组(毕达哥拉斯三元组)
  9. c++ *p++ (*p)++ ++(*p)详细实战解读
  10. 楼道游戏 c语言,C语言基础题!
  11. MybatisPlus懒人代码生成器(附源码)
  12. ipad 在线打代码 code-server
  13. KK集团5年估值200亿,新零售还好做吗?
  14. ps 钢笔工具做部分透明图片
  15. python 仪表盘 ppt_Python之pyecharts数据可视化,词云图,仪表盘!
  16. 物体识别全流程(Ubuntu16.04)结合ROS
  17. 用java实现从txt文本文件批量导入数据至数据库
  18. android hid 编程,Android Bluetooth HID完成详解,androidhid
  19. js当前页面打开小窗口 window.open
  20. GitHub 又又又多了一个新主题 —— Dimmed Dark 主题!

热门文章

  1. 开发之路(设计模式二:观察者模式)
  2. 《深入理解Android》一2.1 浏览器工作原理概述
  3. linux常用命令(用户篇)
  4. MFC ListCtrl和IP控件的使用杂记
  5. 静态链接库与动态链接库
  6. maven 发布到仓库
  7. 深入 Python :Dive Into Python 中文版 读书笔记 第13,14,15单元测试
  8. 一台路由器实现电信ITV与宽带共享上网
  9. Chef是一个什么样的工具
  10. udf、utaf、udtf进出数量规律