第二章 java概述

一、Java基础常识

1、java发展简史

版本

发行时间

说明

Java 1.0

1996.01.23

Sun 公司发布 Java 的第一个开发工具包 ,发布内容包括Sun Classic VM、Applet、AWT

Java 1.1

1997.02.19

发布内容包括JAR、JDBC、JavaBeans、RMI、Inner Class、Reflection

Java 1.2

1998.12.08

Java 拆分成:J2SE(标准版)、J2EE(企业版)、 J2ME(小型版)

发布内容包括EJB、Java Plug-in、Java IDL、Swing、JIT

Java 1.3

2000.05.08

JNDI 提升到平台级

Java 1.4

2004.02.06

发布内容包括正则表达式、异常链、NIO、日志类、XML、XSLT 装换器

Java 5.0

2004.09.30

版本号从 1.4 直接更新至 5.0, 平台更名为 JavaSE、JavaEE、JavaME

发布内容包括自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环;Java Memory Model,java.util.concurrent

Java 6.0

2006.12.11

2009.04.20 Oracle 宣布收购 SUN 公司

Java 7.0

2011.07.02

发布内容包括G1、可并行的类加载框架、加强对非 Java 语言调用的支持等

Java 8.0

2014.03.18

此版本是继 Java 5.0 以来变化最大的版本。是长期 支持版本(LTS)。

新增Lambda、时间 API、日期 API、移除 HotSpot 永久代等新特性

Java 9.0

2017.09.22

此版本开始,每半年更新一次;Java 9.0 开始不 再支持 windows 32 位系统 ,发布内容包括Jigsaw 模块化;HotSpot 日志系统、HTTP 2 客户端 API 等

Java 10.0

2017.09.22

内部重构:同一源仓库、同一垃圾收集器接口、同一即使编译器接口等

Java 11.0

2018.09.25

JDK 安装包取消独立 JRE 安装包,是长期支持版本 (LTS)

发布内容包括LTS、ZGC、Lambda 类型推断

Java 12.0

2019.03.19

发布内容包括Switch 表达式扩展、G1收集器优化;Shenandoah GC

Java 13.0

2019.09.17

发布内容包括动态 CDS 档案、ZGC优化,释放内存还给操作系统、socket底层实现引入NIO等

Java 14.0

2020.03.17

发布内容包括打包工具、instanceof 的模式匹配、Switch 表达式-标准化、 JFR 事件流 、 外部存储器访问 API 等

Java 15.0

2020.09

发布内容包括EdDSA数字签名算法 、密封类(预览)、 隐藏类 、 废弃 RMI 激活机制、移除 Nashorn JavaScript引擎等

Java 16.0

2021.03

该版本相当于是将JDK14、JDK15的一些特性进行了正式引入,如instanceof模式匹配(Pattern matching)、record的引入等最终到JDK16变成了final版本

Java 17.0

2021.09

是一个LTS版本,发布内容包括增强型伪随机数生成器、 强封装JDK的内部API 等,主要是对前几个版本的整合和完善。

Java 18.0

2022.03

发布内容包括设置UTF-8为JavaAPI 的默认字符集、引入 jwebserver、重新实现核心的方法反射、地址解析 SPI等

Java 19.0

2022.09

发布内容包括虚拟线程(预览)、外部函数和内存 API(预览)、switch 模式匹配、结构化并发(孵化)等

Java 20.0

2023.03

发布内容包括虚拟线程、矢量API提案、结构化并发、外部函数和内存(FFM)API、记录模式(预览)

Java 21.0

2023.09

是一个长期支持(LTS)版本,发布的内容包括:字符串模板、扩展 Z 垃圾收集器(ZGC)、虚拟线程、作用域值、密钥封装机制(KEM)的API接口、结构化并发 API 等15项新增内容

2、Java体系结构图

第二章 java概述_第1张图片

3、java技术体系平台

 1)、javaSE(Java Standard Editio) 标准版 :

  • 此版本以前称为 J2SE ,从JDK 5.0开始,改名为Java SE。
  • 包括用户界面接口 AWT 及 Swing,网络功能与国际化、图像处理能力以及 输入输出支持等提供了完整的Java核心API
  • 支持面向桌面级应用(如 Windows 下的应用程序)的 Java 平台,即定位 个人计算机的应用开发

2)、javaEE(Java Enterprise Edition) 企业版:主要用于开发J2EE

  • 版本以前称为 J2EE ,从JDK 5.0开始,改名为Java EE,从2018年2月26日开始,J2EE改名为Jakarta EE
  • 为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的 Web 应用开发
  • JavaEE 是 JavaSE 的扩展,增加了用于服务器开发的类库,包含了诸Servlet、Jsp等技术

3)、javaME(Java Micro Editio):主要用于移动设备、嵌入式设备上的java应用程序,

  • 此版本以前称为 J2ME,从JDK 5.0开始,改名为Java ME
  • 支持 Java 程序运行在移动终端(手机、机顶盒)上的平台,即定位在消 费性电子产品的应用开发
  • JavaME 是 JavaSE 的内伸,精简了 JavaSE 的核心类库,同时也提供自己的 扩展类。增加了适合微小装置的类库:javax.microedition.io.*等

4)、JavaSE、Java EE及Java ME三者之间的关系

第二章 java概述_第2张图片

4、java特性(特点)
  • 简单性:Java语言的简单性体现在它的语法与C语言和C++语言很相似,很多程序员能够轻松地学习Java。Java没有复杂的特性,比如操作符的重载和多继承,而且Java语言不使用指针,避免了程序员需要管理内存的问题。所以,Java语言的学习和编写代码非常方便和简单
  • 跨平台性:Java的特点之一就是跨平台性,它可以在不同的计算机上运行。Java源程序代码经过编译后生成二进制字节码,这些字节码与平台无关,但可以由Java虚拟机识别。这使得Java代码具备跨平台性,可以应用于不同的操作系统和硬件环境
  • 可移植性:Java的特点之一就是可移植性,Java程序可以运行到任何支持Java的操作系统上。这一点使得Java程序在不同的硬件平台上都能够正常运行,并且不需要依赖其他硬件平台。这也是Java得以广泛应用于各个领域的原因之一
  • 稳健性:Java的特点之一就是稳健性。Java是一种安全可靠、高度规范的编程语言,它通过静态分析、静态生成和静态编译等方式来保证安全性。在网络、分布环境下,Java的运行环境更加复杂,不易被攻击者侵入。另外,Java的内存安全性也得益于它的安全性设计,它通过内存泄漏防护和代码注入防护措施来避免内存泄露。因此,Java的稳健性是其重要的特点之一。
  • 多线程:Java的特点之一就是支持多线程,多线程是一种并发编程的方式,可以同时运行多个小任务,提高程序的并发性能和实时控制性能。Java的run()方法可以同时运行多个线程,而不需要创建独立的线程对象。通过多线程,可以实现异步执行,同时可以同步执行多个小任务,提高程序的并发性能和实时控制性能
  • 分布式:Java的特点之一就是分布式,它支持在网络上应用,并且是分布式语言。Java可以处理TCP/IP协议,方便地访问其他对象。同时,它还支持基于TCP/IP协议的子库,可以非常方便地处理网络上的动态内容
  • 动态性:Java的特点之一就是具有动态性。Java语言的设计使其适合于动态地装入和运行复杂的对象,包括类库的扩展。由于C++不支持动态性,而Java的动态特性使得程序员可以编写灵活的代码来解决动态问题,而不会受限于C++的静态编译。这使得Java成为一种适用于动态编程的编程语言。
  • 还包括其他特点,如面向对象、安全性、体系结构中立、解释型、高性能等
5、JDK、JRE与JVM
  • JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具,

        JDK = JRE + java 的开发工具 [如:java, javac,javadoc,javap 等]

  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库, 即JRE = JVM + Java 的核心类库
  • JVM( Java Virtual Machine):Java虚拟机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,对于不同的操作系统,有不同的虚拟机。
  • JDK、JRE与JVM三者之间的关系如图

第二章 java概述_第3张图片

6、编译与运行
  • 编译(javac):将.java 源代码文件编译为 .class 字节码文件
  • 运行(java): 将.class 字节码文件加载到java虚拟机中运行

二、第一个java程序HelloWord

1、开发步骤:

Java 程序开发三步骤:编写、编译、运行。

1)、编码:将 Java 代码编写到扩展名为 .java 的源文件中

  • 在 E:\javaBasc目录下新建文本文件,完整的文件名修改为 HelloWorld.java,其中文件名为 HelloWorld,后缀名必须为.java
  • 用记事本或 Sublime Text等文本编辑器打开,在文件中输入如下代码,并且保存
public class HelloWorld{
    public static void main(String[] args) {
    	System.out.println("I’m Leading java");
    }
}

2)、编译:通过 javac.exe 命令对该 java 文件进行编译,生成一个或多个字节码文件

  • 在 DOS 命令行中,进入E:\javaBasc 目录,使用 javac 命令进行编译,或使用文件资源管理器打开E:\javaBasc 目录,然后在地址栏输入 cmd。
  • 输入:javac Java 源文件名.后缀名 回车

第二章 java概述_第4张图片

3)、运行:通过 java.exe 命令对生成的 class 文件进行运行

  • 在 DOS 命令行中,在字节码文件目录下,使用 java 命令进行运行。
  • java HelloWord执行编译后的字节码文件

第二章 java概述_第5张图片

注意:在运行字节码文件时,不需要带后缀名,带后缀名程序运行将报错,如

第二章 java概述_第6张图片

2、第一个Java程序解释说明

第二章 java概述_第7张图片

3、Java程序的执行流程

第二章 java概述_第8张图片

4、Java 开发注意事项和细节说明
  • Java源文件以.java为扩展名,源文件中的基本组成部分为类
  • Java应用程序的执行入口为main()方法,它是固定的书写格式
  • Java程序中是严格区分大小写
  • java方法由一条或多条语句组成,每条语句必须以英文状态下";"结束
  • 程序中的{}都是成对出现,缺一不可
  • 一个源文件中只能有一个公共的类(即public修饰的类)

三、Java转义字符

序号

转义字符

说明

1

\t

一个制表位,实现对齐的功能

2

\n

换行符

3

\\

双斜线,表示一个\

4

\"

一个"

5

\'

一个'

6

\r

一个回车换行符

四、Java注释

用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性(可读性);注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。

1)、Java 中的注释类型包括单行注释、多行注释和文档注释

  • 单行注释格式: // 注释文字
  • 多行注释格式: /* 注释文字 */
  • 文档注释格式:/** 注释文字 */
/**
 *   这是一个文档注释
 */
public class HelloWord {
	/*
		这是一个多行注释
	*/
    public static void main(String[] args) {
    		//这是一个单行注释
    		System.out.println("I'm Leading java");
    }
}

2)、多行注释里面不允许有多行注释嵌套 ,文件可以报错成功,但在编译时将会报错

/**
 *   这是一个文档注释
 */
public class HelloWord {
	/*
		这是一个多行注释
		/*
		 *   这是多行注释嵌套
		 */
	*/
    public static void main(String[] args) {
    		//这是一个单行注释
    		System.out.println("I'm Leading java");
    }
}

第二章 java概述_第9张图片

3)、被注释的文字,不会被 JVM(java 虚拟机)解释执行,编译后的字节码文件不会显示被注释的代码块信息

第二章 java概述_第10张图片

五、Java代码编写规范

在实际项目开发中,遵守Java编程规范可以提高代码的可读性、可维护性和可扩展性,也可以减少代码错误和维护成本。同时,为了保证项目的一致性和代码质量,团队中的每个人都应该遵守Java编程规范

以下是一些常见的注意事项

  1. 代码缩进: 一定要有缩进。缩进就像人得体的衣着一样,缩进的快捷键 tab 键或4个空格
  2. 必要的空格 :变量类型、变量、赋值符号、变量值之间填充相应空格,使代码更美观
  3. 类、类属性、类方法的注释必须使用多行注释或文档注释,不得使用单行注意
  4. 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚
  5. 要避免使用魔法数,它指的是数字字面量或字符串字面量,应该使用常量或枚举类型
  6. 避免使用全局变量全局变量会影响代码的可读性和可维护性,应该使用局部变量或者封装变量。在实际项目开发中,应该尽可能地避免使用全局变量。
  7. 避免使用嵌套过深的语句嵌套过深的语句会影响代码的可读性,应该使用分支语句或循环语句等结构化语句。在实际项目开发中,应该尽可能地避免使用嵌套过深的语句
  8. 每行代码的长度尽量不超过80个字符,对于较长的代码可以使用换行符进行分割;可以提高代码的可读性和可维护性,同时也方便代码审查和重构

你可能感兴趣的:(重学JavaSE,java,开发语言)