Java的加载与执行

举报
兮动人 发表于 2021/10/24 15:21:05 2021/10/24
【摘要】 Java的加载与执行

1. Java语言发展史:

  1. Java语言诞生于1995年。
  2. 其实在1995年之前SUN公司(太阳微电子公司:该公司目前被oracle(甲骨文:做数据库的)收购了)为了占领智能电子消费产品市场,派James Gosling领导团队开发了一个oak(橡树)语言。
  3. 1996年:JDK1.0诞生
  4. 什么是JDK? Java开发工具包
    • 做Java开发必须安装的一个工具包,该工具包需要从官网下载。
    • 目前SUN被oracle收购了,所以下载需要去oracle下载。http://www.oracle.com
  5. 目前Java包括三大块:
    • JavasE (Java标准版)
    • JavaEE (Java企业版)
    • JavaME (Java微型版)
  • 其中JavaSE是基础,以后主攻方向是JavaEE方向。

2. Java语言特性【开源、免费、纯面向对象、跨平台】

1. 简单性:

  1. 相对而言的,例如java中不再支持多继承,C++是支持多继承的,多继承比较复杂
  2. C++中有指针,Java中屏蔽了指针的概念。
  3. 所以相对来说Java是简单的。
  4. Java语言底层是c++实现的。不是c语言。

2. 面向对象

  1. Java是纯面向对象的。更符合的人的思维模式。更容易理解。

3. 可移植性

  1. 什么是可移植性?
    • java程序可以做到一次编译,到处运行。
    • 也就是说java程序可以在windows操作系统上运行,
    • 不做任何修改,同样的java程序可以直接放到inux操作系统上运行,这个被称为Java程序的可移植性,或者叫做跨平台。
  2. windows操作系统内核和Linux操作系统的内核肯定不同,它们这两个操作系统执行指令的方式也是不一样的。
  3. 结论:显然java程序不能直接和操作系统打交道。因为java程序只有一份。操作系统执行原理都不同。
  4. SUN的团队他们想了一个办法,他们让java程序运行在一台虚拟的计算机当中,这个虚拟的计算机叫做Java虚拟机,简称JVMJava虚拟机再和底层的操作系统打交道。
    在这里插入图片描述

4. 多线程

5. 健壮性:

  1. 和自动垃圾回收机制有关,自动垃圾回收机制简称gc机制。
  2. Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心。

6. 安全性

3. Java的加载与执行

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

  1. 编译阶段
  2. 运行阶段

1. 编译阶段

  • 编译阶段主要的任务是检查Java源程序是否符合Java语法,符合Java语法则能够生成正常的字节码文件(xxx.class),不符合Java语法规则则无法生成字节码文件
  • 字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。
  • 编译阶段的过程:
    1. 程序员需要在硬盘的某个位置<位置随意>新建一个.java扩展名的文件,该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随意编写,必须符合Java语法规则<Java语法规则是需要记忆的>
    2. Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译
  • javac怎么用呢?在哪用呢?
    1. javac的使用规则:
      javac java源文件的路径
    2. 在Dos命令窗口中使用。
      javac是一个java编译器工具/命令。
  • 一个java源文件可以编译生成多个.class文件。
  • 字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源程序不要删除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头再重新修改java源程序,然后将java源程序重新编译生成新的class文件,然后再运行这个class程序,生成新的效果。
  • 编译结束之后,可以将class文件拷贝到其他操作系统当中运行。【跨平台】

2. 运行阶段【可以在其它操作系统当中,跨平台】

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

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

    1. 在Dos窗口中使用。
    2. java.exe怎么用呢? java 类名
      • 例如:
      1. 硬盘上有一个A.class,那么就这样用:java A
      2. 硬盘上有一个B.class,那么就这样用: java B
      3. 硬盘上有一个C.class,那么就这样用:java C
    • 千万要注意:不要写成这样: java A.class这种方式是错误的,大家记住就行
  • 运行阶段的过程是:

    1. 打开Dos命令窗口输入: java A
    2. java.exe命令会启动Java虚拟机(JVM), JVM会启动类加载器classLoader
    3. ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中。
    4. JVMA.class字节码文件解释成二进制1010101010这样数据。
    5. 然后操作系统执行二进制和底层硬件平台进行交互。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。