Java编译运行过程

在上一篇文章中,我们了解了第一个Java入门程序,以及如何编译和运行第一个Java程序。本文主要了解以下编译和运行Java程序时会发生什么。此外,我们还会分析一些常见的问题。

1 Java程序编译过程

在编译时,Java文件由Java编译器(它不与底层操作系统交互)将Java代码转换为字节码(.class)。

2 Java程序运行过程

在Java程序运行中,会执行以下步骤:

类加载器(Classloader):类加载器是JVM的子系统,用于加载类文件。

字节码验证程序(Bytecode Verified):检查代码片段中是否存在可能违反对对象访问权限的非法代码。

解释器(Interpreter):读取字节码流,然后执行指令。

3 两个常见的问题

3.1 Java源文件命名方式

问题:一个class的名称为Simple,Java源文件名称可以不是Simple.java么?

答案是可以的,但是前提是该类不是public修饰符。

3.2 一个Java源文件写多个类

问题:一个Java源文件中可以写多个类么?

答案是可以的。如下图所示:

java编译过程_Java编译运行过程相关推荐

  1. java运行时_java编译时与运行时概念与实例详解

    Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念. 基础概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只 ...

  2. HI3861学习笔记(3)——编译构建和代码运行过程

    一.Ninja编译工具简介 在Unix/Linux下通常使用Make/Makefile来控制代码的编译,但是Makefile对于比较大的项目有时候会比较慢,Ninja是Google的一名程序员推出的注 ...

  3. java创建对象的过程_Java创建对象的过程

    Java创建对象的过程 Java是一门面向对象的编程语言,在Java程序运行过程中每时每刻都有对象被创建出来.在语言层面上,创建对象通常仅仅是一个new关键字而已,而在虚拟机中,对象的创建又是怎样一个 ...

  4. java AST 表达式_java 编译时注解-AST 抽象语法树简介

    AST 语法入门 以前使用 Lombok 一直觉得是一个很棒的设计,可以同时兼顾注解的遍历和运行的性能. 运行时注解一直因为性能问题被人诟病. 自己尝试写过一些框架,但是耗费了比较多的精力,因为 AS ...

  5. 安装java过程_Java的安装过程

    记录一下自己在Windowns下安装java的过程 打开网址后要先登录,如果没有号就先注册,然后才能下载 step1:下载JDK (1)将鼠标指向download,会出现如下界面: (2)点击左上角P ...

  6. 类java的步骤_java类加载的过程

    类加载就是三个过程:加载.链接.初始化 链接又可以分为验证.准备.解析 1.加载 将class字节码文件通过类加载器装入内存中 2.验证 确保当前class文件的字节流所包含的内容符合当前JVM的规范 ...

  7. java 编译 注释_Java编译、注释、常量简介

    java程序运行: .java文件:源文件 javac 字节码文件 java .java文件 --------> .class文件 --------> 结果 编译 运行 1.编译源文件: ...

  8. java 语法检查_java编译期间的语法检查

    展开全部 使用javac编译时加上 -verbose 选项.就会发现会载入第三方jar文件D:\Temp>javac -verbose -cp J:\library\xpp3\xpp3-1.1. ...

  9. java小车赛跑_Java模拟赛跑过程

    Java并发面试中的一个经典问题--手写代码模拟赛跑过程.该问题考查CountDownLatch的用法,比Java实现生产者-消费者模型的考查更直接: 对Java并发模型的理解 对Java并发编程接口 ...

  10. java 链表 传递_java 链表 传递过程中的问题

    具体情况如下一共有三个类,分别是主类main,从TXT文件中读取入链表的类read,还有一个是对链表内容进行查询的类inquiryread读取并没有问题,read中有加入检测M.List.add(A) ...

最新文章

  1. 自动驾驶系统关系与自动泊车原理
  2. 应对单条高频的数据修改方案
  3. 精确分割和筛选音频从长的音频中
  4. Eclipse新建工程编译R cannot be resolved to a variable问题
  5. [翻译] ZLHistogramAudioPlot
  6. qgis折点打断_arcgis在折点处打断并建立网络分析(最短路径等问题)
  7. 3-36Pytorch与tensorboardX
  8. 教你把gps服务器修改为中国加速搜星,Android的GPS加速搜星的原理和方法
  9. android实例教程_改造Android示例教程
  10. python1e2_Python必修基础(1)
  11. VirtualBox 虚拟CentOS7新增虚拟盘,并扩充 root和home 目录容量
  12. 维纳滤波python 函数_加性高斯白噪声及维纳滤波的基本原理与Python实现
  13. C语言——链表简单介绍
  14. DNS服务器常见的攻击方式
  15. 通过双网卡电脑将网络共享到路由器
  16. 条码追溯系统解决外贸企业进销存管理
  17. 怎么把PDF转换成图片?这三种转换方法都可以实现
  18. python机器学习之决策树案例——泰坦尼克号幸存者的预测
  19. RT-Thread柿饼的控件简介
  20. mvn install BUILD FAILURE : Downloading from central: https://repo.maven.apache.org/maven2/org/sp...

热门文章

  1. FunCode太空战机C++实现
  2. socket和udp
  3. matlab制作数字滤波器(带通滤波器)
  4. [问题探讨]ECharts实现带钓鱼岛和南海诸岛的中国(China)地图
  5. SmartDeblur-图片模糊处理器
  6. ANSYS18的简略安装教程
  7. ug链轮设计软件_教你怎么用UG做链轮教程【UG爱好者首发】
  8. 2.struts2 Actions动作 - ActionSupport
  9. 计算机VFP基础知识,VFP基础教程章数据库系统基础知识4
  10. 灵悟礼品网上专卖店——画出项目的主要框架