1.1 Java语言背景介绍(了解)
语言:人与人交流沟通的表达方式。
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言。
Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言
Java之父:詹姆斯·高斯林(James Gosling)
java 语言的三个版本
Java SE 用于桌面应用的开发,是其他两个版本的基础
桌面应用:用户只要打开程序,程序的界面会让用户在最短的时间内找到他们需要的功能,同时主动带领用户完成他们的工作并得到最好的体验
学习JavaSE的目的:为今后要从事的JavaEE开发打基础
java ME Java 语言的(小型版),用于嵌入式消费类电子设备
Java EE ava 语言的(企业版),用于 Web 方向的网站开发
网页:通过浏览器将数据展示在用户面前,跟后台服务器没有交互
网站:通过跟后台服务器的交互,将查询到的真实数据再通过网页展示出来
简单理解:网站=网页+后台服务器
1.2 Java语言跨平台原理(理解)
平台:指的是操作系统
Windows
Mac
Linux
Java程序可以在任意操作平台上运行
Java跨平台原理
总结:在不同的操作系统中,都安装一个与操作系统对应的Java虚拟机JVM (Java Virtual Machine)即可
Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的跨平台。
分析:JVM本身是否可以跨平台
答:JVM虚拟机本身不允许跨平台,允许跨平台的是Java程序
1.3 JRE和JDK(记忆)
Java程序开发的三个步骤:编写代码,编译代码,运行代码
编写代码:
JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)
类:java 文件在代码中的集合体现(类=java文件,一个java文件,一个java类)
类库:存放多个java文件的仓库
核心类库:java已经写好的,非常核心的代码仓库
重点理解:我们自己在编写代码的过程中,需要用到java存放在JRE中,已经写好的java文件
编译代码:
A.java java文件属于【源文件】是无法被JVM所识别执行的
解决方案:将其翻译为JVM可以直接识别的并执行
翻译方式:使用Java提供在JDK中的翻译工具
JDK(Java Development Kit)是Java语言的软件开发工具包,内部包含了代码的编译工具和运行工具
A.java------------使用编译工具,对A.java【源文件】进行编译-----------编译成功,会自动产生一个对应的A.class文件【字节码文件】,该文件可以被JVM直接识别并执行。---------A.class---------------使用运行工具---将A.class运行在JVM虚拟机当中
JRE,JDK,JVM的作用
1.编写代码的过程中,需要使用JRE中Java已经写好的代码
2.编译代码的过程中,需要使用JDK中的翻译工具
3.运行代码的过程中,需要使用JDK中的运行工具
4.代码需要运行在JVM当中
JRE,JDK,JVM的关系
JDK包含了JRE 和开发工具
JRE中包含了JVM和核心类库
总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。
1.4 JDK的下载和安装(应用)
Java语言发展史
1995年Java语言 Sun公司
2004年Java(5.0)
2009年Oracle甲骨文公司收购Sun公司
2014年Java(8.0) 最多,最稳定的版本
2018年9月(11.0)
2019年3月(12.0)
1.4.1 JDK下载
通过官方网站获取JDK
http://www.oracle.com
注意:针对不同的操作系统,需要下载对应版本的JDK。
1.4.2 安装
傻瓜式安装,下一步即可。但默认的安装路径是在C:Program Files下,为方便统一管理建议修改安装路径,将与开发相关的软件都安装到一个目录下,例如:E:develop。
注意:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。
1.4.3 JDK的安装目录介绍
目录名称 | 说明 |
bin |
该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 |
conf |
该路径下存放了JDK的相关配置文件。 |
include |
该路径下存放了一些平台特定的头文件。 |
jmods |
该路径下存放了JDK的各种模块。 |
legal |
该路径下存放了JDK各模块的授权文档。 |
lib |
该路径下存放了JDK工具的一些补充JAR包。 |