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. c++ 命令行执行

    常用命令如下 g++ -g -std=c++ a.cpp -std 指定c++的版本 -g 在可执行程序中包含标准调试信息 -o FILE 指定输出文件名,在编译为目标代码时,这一选项不是必须的.如果 ...

  2. 11.web5

    先补充点小知识: 关于jjencode 和  aaencode(颜文字) 1.什么是jjencode? 将JS代码转换成只有符号的字符串 2.什么是aaencode? 将JS代码转换成常用的网络表情 ...

  3. LVS负载均衡实现双向热备

    一.LVS1服务器配置 安装ipvsadm,keepalived [root@localhost ~]# yum -y install ipvsadm keepalived 配置keepalivedd ...

  4. POJ3974Palindrome(Manacher)

    传送门 题目大意:求最长回文串 题解:Manacher 代码: #include<cstdio> #include<cstring> #include<iostream& ...

  5. Windows许可证 即将过期

    最近打开电脑,系统总是自动弹出Windows许可证即将过期的弹窗,现在总结方法如下. 命令都是在运行窗口输入的打开方式:win+R组合键或者右键点击win10开始菜单,点击“运行”查看系统版本:win ...

  6. C# params 可变参数使用注意

    今天在一个 .NET Core 项目中调用一个自己实现的使用 params 可变参数的方法时触发了 null 引用异常,原以为是方法中没有对参数进行 null 值检查引起的,于是加上 check nu ...

  7. Mybatis智能标签

    一.ProviderDao层 //智能标签案例 //智能标签多条件查询 public List<Provider> providerTest(@Param("proCode&qu ...

  8. QOS限速

    XX涉及的QOS限速主要有两种: 第一种是针对一个端口下双向IP互访: 第二种是针对多个端口下双向IP互访:(聚合car) 聚合car:是指能够对多个业务使用同一个car进行流量监控,即如果多个端口应 ...

  9. PHP fastcgi_finish_request 方法

    本文介绍,PHP运行在FastCGI模式时,FPM提供的方法:fastcgi_finish_request. 在说这个方法之前,我们先了解PHP有哪些常用的运行模式? PHP运行模式 CGI 通用网关 ...

  10. 【广州.NET社区推荐】.NET Core Q&A - ORM

    Object/Relational Mapping(ORM) 作为开发工作中非常重要的组件,重量级.轻量级.简单的.复杂的 各种各样有很多种适应不同的业务场景,但这些组件分散在网络世界的各个角落,寻找 ...