一、Java语言概述

1、Java语言发展历史

  • Java诞生于SUN(Stanford University Network),Java之父是詹姆斯.高斯林(James Gosling)
发行版本 发行时间 备注
Java 1995.05.23 Sun公司在Sun world会议上正式发布Java和HotJava浏览器
Java 1.0 1996.01.23 Sun公司发布了Java的第一个开发工具包
Java 1.1 1997.02.19
Java 1.2 1998.12.08 拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版)
Java 1.3 2000.05.08
Java1.4 2004.02.06
Java 5.0 2004.09.30 ①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME
Java 6.0 2006.12.11 2009.04.20 Oracle宣布收购SUN公司
Java 7.0 2011.07.02
Java 8.0 2014.03.18
Java 9.0 2017.09.22 ①每半年更新一次;②Java 9.0开始不再支持windows 32位系统
Java 10.0 2018.03.21
Java 11.0 2018.09.25 JDK安装包取消独立JRE安装包,长期支持版本
Java 12.0 2019.03.19
Java 13.0 2019.9.18
Java 14.0 2020.3.17
Java 15.0 2020.9
Java16.0 2021.3
Java17.0 2021.9 最新的长期支持版本

2、Java语言的特点

(1)优点

  • 面向对象:Java语言支持封装、继承、多态,面向对象编程,让程序更好达到高内聚,低耦合的标准
  • 支持分布式:Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段
  • 健壮型:Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择
  • 安全性高:Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查
  • 跨平台性:Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行

(2)缺点

  • 语法过于复杂,严谨,对程序员的约束比较多,与python和php等相比入门相对较难
  • 一般适用于大型网站开发,整个架构会比较重,对于初创公司开发和维护人员的成本比较高,选择用Java语言开发网站或应用系统的需要一定的经济实力

3、Java技术体系平台

  • JavaSE(Java Platform, Standard Edition标准版):允许您在桌面和服务器上开发和部署Java应用程序

  • JavaEE(Java Platform, Enterprise Edition企业版):是为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发

  • JavaME(Java Platform, Micro Edition小型版):为互联网上的嵌入式和移动设备上运行的应用提供了一个健壮、灵活的环境:微控制器、传感器、网关、移动电话、个人数字助理(PDA)、电视机顶盒、打印机等等。基于JavaME的应用程序在许多设备上都是可移植的,但是利用了每个设备的本机功能

    • Java Embedded: 用于解锁物联网的智能设备的价值:通过远程市场更新和刷新功能延长产品生命周期和价值;利用Java的可伸缩性、健壮性、可移植性和全套功能,提高生产效率,降低成本,缩短上市时间;在边缘启用快速数据功能
    • Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能够承载采用Java技术的应用程序。Java card提供了一个安全的、可互操作的执行平台,它可以在一个资源受限的设备上存储和更新多个应用程序,同时保持最高的认证级别和与标准的兼容性
    • Java TV:是一种基于JavaME的技术,它为开发在tv和机顶盒设备上运行的java应用程序提供了一个性能良好、安全且易于实现的解决方案

img

二、Java语言跨平台原理

1、Java语言跨平台原理

  • C跨平台原理

img

  • Java跨平台原理

    • Java设计了一套简洁的虚拟指令集,也就是字节码

img

    • Java虚拟机(JVM,Java Virtual Machine)是由软件技术模拟出计算机运行的一个虚拟的计算机,它负责解释执行字节码指令集。而不同的平台,需要安装不同的Java虚拟机程序

img

    • Java虚拟机的设计不仅仅解决了Java程序跨平台的问题,同时解决了很多语言的跨平台问题
      • MacOS,Windows,Linux,android等

img

2、JVM、JRE、JDK的关系

  • JVM(Java Virtual Machine ):Java虚拟机,是运行所有Java程序的假想计算机,是Java程序的运行环境之一,也是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在**JVM**之上
  • JRE (Java Runtime Environment) :是Java程序的运行环境,包含**JVM**和运行时所需要的核心类库
  • JDK (Java Development’s Kit):是Java程序开发工具包,包含**JRE**和开发人员使用的工具

想要运行一个已有的Java程序,那么只需安装JRE 即可

想要开发一个全新的Java程序,那么必须安装JDK ,其内部包含JRE

img

img

三、Java程序说明

1、 HelloWorld案例

(1)程序开发步骤说明

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

img

(2)编写Java源程序,保存.java源文件

  1. 新建文本文件,完整的文件名修改为HelloWorld.java,其中文件名为HelloWorld,后缀名必须为.java
  2. 用sublime/notepad++等文本编辑器打开
  3. 在文件中输入如下代码,并保存
1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}

(3)编译Java源文件生成.class字节码文件

  1. Java源文件的编译工具是javac.exe
  2. 在命令行中,进入Java源文件所在目录,使用javac 命令进行编译:javac HelloWorld.java

编译格式:javac Java源文件名.后缀名

  1. 此时目录会产生一个新的文件HelloWorld.class,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件

(4)运行Java程序

  1. Java字节码文件的运行工具是java.exe
  2. 使用java 命令运行:java HelloWorld

运行格式:java 主类名字,主类是指包含main方法的类

2、Java程序的结构与格式

1
2
3
4
5
类{
方法{
语句;
}
}

3、Java程序的入口

  • Java程序的入口是main方法
1
2
3
public static void main(String[] args){

}

4、Java程序编写习惯

(1)源文件名和类名

  • public类:源文件名必须与类名一致
  • 非public类:源文件名可以和类名不一致,但是不便于代码维护,建议与类名一致

(2)源文件和类个数

  • public类:只能有一个
  • 非public类:可以有多个,编译后会生成多个.class字节码文件

为了方便代码维护,一个源文件尽量只写一个类

(3)类与main方法

  • main方法(主方法)习惯写在public类中

5、Java字符编码问题

问题:命令行窗口的字符编码与.java源文件的字符编码不一致

解决方案一:在Notepad++等编辑器中,修改源文件的字符编码

解决方案二:在使用javac命令时,指定源文件的字符编码

例:javac -encoding utf-8 Review01.java