JavaSE----01.Java简介

Java简介

      • 1、java介绍
      • 2、java版本
      • 3、java个版本的特点:
      • 4、java主要特性和优势:
      • 5、java中的JDK、JRE、JVM区别:
      • 6、java程序运行的过程:
          • 什么是字节码?采用字节码的好处是什么?

1、java介绍

  Java是于1995年由Sun公司推出的一种跨平台面向对象高级程序设计语言。Java最初的名字叫OAK。Java是一种通过解释方式来执行的语言,其语法和C++类似。Java也是一门跨平台的语言,用Java编写的程序可以在任何平台上运行。实现了 “一次编写,到处运行”。

2、java版本

Java主要分为三个版本:

  1. JavaSE:  java标准版,主要用于开发桌面应用程序。
  2. JavaME:  java移动版,主要针对嵌入式设备软件开发。
  3. JavaEE:  java企业版,主要用于开发企业级分布式网络程序。

3、java个版本的特点:

版本 发布时间 特点
JDK1.0 1996 代号OAK
JDK1.1 1997 引入JDBC、java bean、反射、添加内部类支持等
JDK1.2 1998 引入集合框架等
JDK1.3 2000 引入Java Sound API、jar文件索引,进行了大量优化等
JDK1.4 2004-02 添加XML处理、Java打印服务、支持正则表达式等
JDK5.0 2004-09 重大改变:添加自动装箱、自动拆箱、枚举、泛型、注解等
JDK6.0 2006 支持脚本语言、继承Web Services、插拔注解等
JDK7.0 2011 支持动态语言、引入新I/O文件系统等
JDK8.0 2014 接口改进、引入函数式接口、引入Lambda表达式等
JDK9.0 2017-09 模块化、JShell等
JDK10.0 2018-03 局部变量类型推断、删除工具javah等
JDK11.0 2018-09 字符串、集合增强等
JDK12.0 2019-03 Switch 表达式、默认CDS归档等
JDK13.0 2019-09 Dynamic CDS Archives等

4、java主要特性和优势:

  1. 分布式:持Internet应用分布式的开发。
  2. 高性能:相对于解释型的脚本语言来说,的确是高效的。
  3. 面向对象:面向对象的编程语言。
  4. 跨平台可移植:一次编写,到处运行。
  5. 安全健壮:java的强类型机制、异常处理、垃圾自动回收是java程序健壮的重要保证。
  6. 动态性:反射机制。
  7. 多线程:在java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

5、java中的JDK、JRE、JVM区别:

  • JDK: Java开发工具包(java development kit), 包含了JRE、JVM和开发工具(javac、java、jar、Javadoc等),主要针对开发者。
  • JRE: Java运行环境(Java Runtime Environment), JRE的内部有一个Java虚拟机(JVM)以及一些标准的类别函数库,主要针对java用户。
  • JVM: Java虚拟机(Java Virtual Machine), 用来解释执行字节码文件(.class文件)的。

JDK、JRE、JVM关系图:
JavaSE----01.Java简介_第1张图片

6、java程序运行的过程:

Java 程序从源代码到运行一般有如下3个步:
JavaSE----01.Java简介_第2张图片

我们需要格外注意的是 .class --> 机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT 编译器,而JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言。

什么是字节码?采用字节码的好处是什么?
在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java程序无须重新编译便可在多种不同操作系统的计算机上运行。

你可能感兴趣的:(JavaSE,Java基础,JVVM,JRE)