jdk中有一个javac.exe(java编译器)

*Java程序的运行包括两非常重要的阶段

-编译阶段

-运行阶段

*编译阶段

-主要任务是检查Java源程序是否符合Java语法

符合Java语法则能够生成正常的字节码文件(xx.class)

不符合Java语法规则则无法生成字节码文件

-字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。

-编译阶段的过程:

  *程序员需要在硬盘的某个位置随意新建一个.java扩展名的文件,

  该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。

  而这个源程序是不能随意编写,必须符合Java语法规则<Java语法规则是需要记忆的>

  *Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译。

  javac怎么用呢?在哪用呢?

    -在DOS命令窗口中使用

    -javac的使用规则:

         【javac java源文件的路径】

   javac是一个java编译器工具/命令。

  *一个java源文件可以编译生成多个.class文件

  *字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。

  但是一般java源程序不要删除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头重新修改java源程序,

  然后将java源程序重新编译生成新的class文件,然后在运行这个class程序,生成新的效果。

  *编译结束之后,可以将class文件拷贝到其他操作系统当中运行。【跨平台】

*运行阶段

  -JDK安装之后。除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe,java.exe命令主要负责运行阶段

  -java.exe在哪里用?怎么用?

    -在DOS窗口使用

    -java.exe怎么用呢?

      【java 类名】

          例如:

          磁盘上有一个A.class ,那么就这么用:java A

          磁盘上有一个B.class ,那么就这么用:java B

          千万要注意:不要写成这样:java A.class【这种方式是错误的,大家记住】  

      -运行阶段的过程是:

        *打开DOS命令窗口

        *输入:java  A

        *java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader

        *ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中。

        *JVM将A.class字节码文件解释成二进制1010101010这样的数据。

        *然后操作系统执行二进制和底层硬件平台进行交互。

  

  

  

java的加载与运行的更多相关文章

  1. java热加载和热部署

    JAVA热部署和热加载 联系与区别 Java热部署与热加载的联系 1.不重启服务器编译/部署项目 2.基于Java的类加载器实现 区别 部署方式 热部署在服务器运行时重新部署项目 热加载在运行时重新加 ...

  2. Java ClassLoader加载机制理解

    今天看到了一篇介绍Java ClassLoader加载机器的文章, 才发觉一直来自己的肤浅, 好好地给补了一课, 不得不存档! 原文地址: http://www.blogjava.net/lhulcn ...

  3. 【设计模式】C++单例模式的几种写法——Java自动加载内部类对象,C++怎么破?

    单例模式是最简单的设计模式,就让我像玩简单的游戏一样写下去吧. v1: 简单模式 和这个版本有过一面之缘,但不敢苟同. class Singleton { private: Singleton() { ...

  4. 原来热加载如此简单,手动写一个 Java 热加载吧

    1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...

  5. java的加载与执行原理剖析

    到目前为止,我们接触过的重点术语,总结一下: Java体系的技术被划分为三大块: JavaSE:标准版 JavaEE:企业版 JavaME:微型版 安装JDK之后: JDK:java开发工具箱 JRE ...

  6. C#如何加载程序运行目录外的程序集

    我们的应用程序部署的时候,目录结构一般不会只有运行程序的目录这一个,我们可能在运行目录下建子目录,也可能使用System32目录,也可能使用其它第三方的程序集..Net程序集 首先会在GAC中搜索相应 ...

  7. java class加载机制及对象生成机制

    java class加载机制及对象生成机制 当使用到某个类,但该类还未初始化,未加载到内存中时会经历类加载.链接.初始化三个步骤完成类的初始化.需要注意的是类的初始化和链接的顺序有可能是互换的. Cl ...

  8. java用户界面——加载图片 jpg GIF

    java用户界面--加载图片 jpg GIF 代码如下: package day08; import java.awt.GridLayout; import javax.swing.Icon;impo ...

  9. 未能加载文件或程序集“BLL”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。

    今天使用VS2012创建项目的时候,考虑到项目中代码的重用性以及清晰简洁性,搭建了一个三层架构,但是在项目运行的时候,总是报错: “未能加载文件或程序集“BLL”或它的某一个依赖项.生成此程序集的运行 ...

随机推荐

  1. 对java的几点个人浅浅的认知

    特点   简单地说,Java 具有如下特点:简单的.面向对象.平台无关.多线程.分布式.安全. 高性能.可靠的.解释型.自动垃圾回收等特点. 主要面向internet的语言 Java比其他任何一门语言 ...

  2. java8-02-再探Lambda表达式

    Lambda表达式   主要作用替代匿名内部类   达到简化代码的操作                                  Lambda表达式 在对象中的使用   Employee类

  3. Codeforces Global Round 5

    传送门 A. Balanced Rating Changes 签到,分正负搞一下就行. B. Balanced Tunnel 题意: 给出\(n\)辆车的进洞顺序和出洞顺序,问有多少量车实现了洞中超车 ...

  4. faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [21] rhs shape= [2]

    faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shap ...

  5. Leetcode103_Binary-tree-zigzag-level-order-traversal

    原题: https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/ 思路,如果无从下手,先要了解二叉树的广度优 ...

  6. eclipse拉取git项目 Read timed out after 30,000 ms

    点击 eclipse -> Window -> Preferences -> Team ->git   在git选项里有Remote connection timeout ,默 ...

  7. 最近公共祖先(LCA)基础模板(倍增法)

    之前在澡堂学过这么个东西,听课时理解非常透彻,然后做题时是这种状态: 因为并没有切板子题,最近切掉以后看同桌,他默默地说了一句话: 我是什么时候A的来着... 我当时就心态爆炸... 现在来进行简单整 ...

  8. mysql和oracle分页

    mysql分页 关键字limit,limit m,n 其中m表示起始位置的下标,下标从0开始.n表示要显示的条数,比如要查询一个表的第2到5条数据. ,; oracle分页 关键字rownum, ro ...

  9. XML与DTD(够用)

    1: 概述 1.1 什么是XML 1.2 三个重点 1.3规则 1.4 常用转义 2: Xml声明 XML 中,空格会被保留 XML 以 LF 存储换行 3:Xml标签 4:Xml元素 5:XML 属 ...

  10. centos7下mysql5.7的安装与配置

    centos7下MySQL5.7的安装与配置 下载 下载地址 根据系统和版本选择红框中的四个RPM包下载即可,然后放到centos7系统中的/opt目录下,等待稍后安装. 安装前的准备 1. 检查系统 ...