基础篇2:Java的运行与工作原理 JDKJRE JVM的区别

Java的运行与工作原理
在这里插入图片描述
大家好,我是27岁的小学生liu__peng;


— 分享笔记第1天

Java运行与工作原理>



— 人和人之间的交流是通过相同的语言进行交流,而人和机器的交流是通过各种编程语言实现的,Java就是其中之一。
— 我们通过编程软件输入具有含有一定意义的代码,机器将这些代码存储成.java的文件夹,比如HelloWorld.java,下面就是学习的第一段代码:

/*
 * 用来定义一个包:定位类(包名+类名)
 * package  用来定义包的关键字
 * cn.tedu.hello  包名 全小写+公司域名倒着写
 * ;  Java 语句的结束符
 */
package cn.tedu.hello;

/*
 * 用来定义一个类
 * public   ----公共的,作为类的修饰符,修饰类的可见范围
 * class  ----用来定义类的关键字
* HelloWorld ----  类名,符合驼峰命名法
 * {代码.... }
 */
public class HelloWorld {
/*
	 * 用来定义主方法/主函数:是程序的入口
	 *  public -----公共的,作为方法的修饰符
	 *  static   -----静态的,说明方法是静态的 
	 *  void  ----空/无 说明方法的返回值是空的 
	 *  main  ----方法名
	 *  ( ) ----是方法的标识符
	 *  String[] args  ---方法的参数
	 *  {代码/方法体}
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	/*
	 * 向控制台输出制定数据
	 * System ---要发出系统指令
	 * out  --- 向外输出的我动作
	 * println--- 打印后换行
	 * () ----方法的标识符
	 * hello java  ---方法的参数
	 * ;   Java--- 语句的结束符
	 */
		System.out.println("hello java");
	}
}

— 下一步就是编译的过程,Java源代码(.Java)经过java编译器(javac.exe)编译后,不会直接转换为机器码,而是转化成一种中间格式,成为字节码(.class),字节码再经过java虚拟机(JVM)转化成特定的CPU架构的机器码。也就是这个中间物,java才有了所谓的跨平台。

JDK JRE JVM的区别

— JDK包含JRE JRE包含JVM

JVM(虚拟机):java virtual machine

—&nbdp; Java虚拟机 用来解释执行字节码文件(.class文件)的
— JVM是JRE的一部分,它是一个虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
— ==JVM是java实现跨平台最核心的部分,==所以的java程序会首先被编译为.class的类文件,JVM的主要工作是解释自己的指令集(字节码)并映射到本地的CPU的指令集或OS的系统调用。Java面对不同操作系统使用不同的虚拟机,依次实现了跨平台。JVM对上层的java源文件是不关心的,它关心的只是源文件生成的类文件。

**JRE:java runtime environment **

— Java运行时环境,针对java用户
— 在java平台下,所有的java程序都需要在JRE下才能运行,只有JVM还不能进行class的执行,因为解释class的时候。JVM需要调用解释所需要的类库lib。JRE里面有两个文件夹bin和lib,这里可以认为bin就是JVM,lib就是所需要的类库,而JVM和lib合起来就称为JRE
—  JRE包括JVM和JAVA核心类库与支持文件。与JDK不同,它不包含开发工具—编译器,调试器和其他工具。

JDK: java development kit

—  java开发工具包,用来开发java程序的,针对java开发者
—  JDK是整个java的核心,包括了java的运行环境(Java Runtime Environment)、一堆java工具(javac、java、jdb等)和java基础的类库(java API包括rt.jar)
—  Java API 是java的应用程序接口,里面有很多已经写好的java class ,包括一些重要的语言结构以及基本图形,网络和文件I/O等等,可以直接调用。

总结
—  有JVM就可以解释执行字节码文件(.class)
JVM解释执行这些字节码文件的时候需要调用类库,如果没有这些类库JVM就不能正确的执行字节码文件。JVM+类库=JRE
有了JRE就可以正确的执行java程序了,但是光有JRE不能开放java程序,所以JRE+开发工具=JDK。有了JDK就可同时开发,执行JRE

— 在这个地方我还有一个疑问:java虚拟机(JVM)本身是跨平台的吗?





27岁小学生的每日必须,志同道合的你,点个赞,关注一波呗!互相学习,共同进步


整理不易,三连击来一波。 2020.12.10版本
如有错误请大家指出,谢谢~

大家好,我是27岁的小学生liu__peng,请大家多多关注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值