JAVA SE概述

1、内容

1.1、计算机语言发展简史

主要分为三个阶段:
a) 第一代:机器语言
b) 第二代:低级语言
c) 第三代:高级语言(Java、php、c#、C++、NodeJS)

1.2、Java发展简史

  1. Java是一种语言,具有自己的语法和数据结构
    2. Java来自于sun,sun指的是斯坦福大学网络(目前已经被Oracle收购)
    3. 具体发展历程
时间 描述
1991~1995 Sun为了占领智能消费电子产品市场,由james gosling负责该项目,来开发Oak语言
1995 将Oak改名为Java
1996 发布JDK1.0
1997 发布JDK1.1
1998 发布JDK1.2,将该版本命名为J2SDK,将Java更名为Java 2
1999 将java分为三大块:J2SE(Java标准版)、J2EE(Java企业版)、J2ME(Java微型版本)
2000 发布J2SE1.3
2002 发布J2SE1.4
2004 此时不再叫J2SE1.5,叫5.0
2005 2005 Java 10周年,将J2SE改为 JAVA SE、将J2EE改为 JAVA EE、将J2ME改为 JAVA ME
2006 发布JAVA SE 6
2011年7月 发布JAVASE 7
2014 JAVA8:lambda表达式(企业中几乎都是JAVA8,因为稳定,并且完全满足开发)
2017 JAVA9
2018 JAVA10
2018 JAVA11
2019 JAVA12
2019 JAVA13
2020 JAVA14
2020 JAVA15
2021 JAVA16
2021 JAVA17

注:JDK分为Oracle的JDK和社区版的OpenJDK,前者慢慢会提供收费服务(JDK本身使用不会收费),两者都是通过JDK源码包编译出来的,你自己也可以编译出JDK!OpenJDK就是网友们编译出来的。。。

这里是OpenJDK,我们linux服务器上的生产环境,都是OpenJDK的!https://adoptopenjdk.net/index.html

JAVA SE、JAVA EE、JAVA ME之间的关系
01_J2SE概述 - 图1

1.3、Java语言特性

简单性
面向对象(适合大型企业级项目)
可移植性(JVM)(一次编译到处运行)
健壮性(自动垃圾回收机制GC、封装了非常多底层的功能)
多线程

1.4、Java的加载与执行

  1. 源文件(.java源代码)通过编译器编译成字节码文件class。

  2. 通过JVM中的解释器将字节码文件生成对应的可执行文件,运行。

  3. 将编译后的程序加载到方法区,存储类信息。

  4. 运行时,JVM创建线程来执行代码,在虚拟机栈和程序计数器分配独占的空间。根据方法区里的指令码,在虚拟机栈对线程进行操作,程序计数器保存线程代码执行到哪个位置。

“一处编写,处处运行”:编译后,不依赖于平台环境,在各种操作系统均可运行。

01_J2SE概述 - 图2

1.5、开始第一个Java程序

1.5.1、J2SE 的安装

  1. 下载J2SE安装程序
    在搜索引擎搜索:oracle jdk 8 download一般就能直接搜索到官网下载地址
    2. 进行安装

1.5.2、搭建开发环境

  1. 显示扩展名
    2. 标题和地址栏最好显示完整路径
    3. Notepad++
    4. 常用命令
  • cd 目录名称,进入目录
  • cd ..,退回上级目录
  • dir,显示文件或目录
  • del 文件名,删除文件
  1. path,classpath(环境变量)
  • 主要是为了检索文件方便,如果执行某个文件,不用到文件所在目录执行,那么操作系统会在path路径中检索
  • Classpath为类路径,是java运行时查找类文件的路径
  1. 在命令行执行java -version,如果出现如下显示,说明正常
    image.png

编译HelloWorld程序

  1. public class HelloWorld{
  2. public static void main(String[] args){
  3. System.out.println("欢迎来到学习Java系列课程!");
  4. }
  5. }

如何编译
javac (java compile)文件名(完整的文件名称,含扩展名),如:javac HelloWorld.java
以上会形成一个HelloWorld.class文件,说明编译成功了
开始运行HelloWorld程序,如何运行?
采用java class文件名(不要扩展名),如:java HelloWorld 结果如图:

第一个程序,成功运行

解释HelloWorld程序

  1. //这种是单行注释,那么java中的所有注释都不会编译到class文件中,所以注释可以任意的写
  2. /*
  3. * 这是多行注释
  4. */
  5. /**
  6. * 这是多行doc注释,这种注释可以通过生成文档工具,生成到文档里面
  7. */
  8. /*
  9. public:全局的范围,项目中所有的包都可以访问的
  10. class:标识一个类
  11. HelloWorld:类名,类名的命名规则:首字母大写
  12. {}:所有的类都需要放到大括号中
  13. static:表示静态的
  14. void:表示无返回值
  15. main:是方法名
  16. String[]:数组
  17. args:数组变量名
  18. System.out.println():打印一行内容
  19. */
  20. public class HelloWorld{
  21. public static void main(String[] args){
  22. System.out.println("欢迎来到Code School学习Java系列课程!");
  23. }
  24. }

Java注释在程序运行时是不执行的,同时也不会放到class文件中,注释主要有三种方式

  • // 单行注释
  • 多行注释

    /
    多行注释
    /

  • 多行注释,可以生成java doc文档

    /*
    多行注释
    多行注释
    /
    通过javadoc HelloWorld.java来体验

    1.6、public class 和 class的区别

    类的定义有两种方式:

  • public class 类名

  • class 类名

采用public class来声明class,那么文件名必须和类名完全一致(包括大小写),如果文件名和类名不一致,将会出现如下错误:如图:

代码示例,文件名为HelloWorld.java

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. System.out.println("Hello World");
  4. }
  5. }

采用class来声明类,文件名可以任何合法的文件名称,文件名不需要和Class类一致
但生成的class文件名称和类名一致,不和原文件名称一致

多个class如何执行?

在一个Java文件中,可以声明多个类,如:

  1. public class HelloWorld{
  2. public static void main(String[] args){
  3. System.out.println("欢迎来到Code School学习Java系列课程!");
  4. }
  5. }
  6. class HelloWorld2{
  7. public static void main(String[] args){
  8. System.out.println("欢迎来到Code School学习Java系列课程!");
  9. }
  10. }

需要注意:一个.java文件只能有一个类采用public class进行声明

1.7、名词介绍

JDK:运行+编译 环境
JRE:运行环境
JVM:虚拟机

1.8、java命令帮助

如果不知道java命令如何使用,可以使用帮助文档查询
格式:java命令 -help
java -help
javac -help
javadoc -help

通过查询文档知道javadoc指定一个目录:
javadoc HelloWorld.java -d helloworld