JavaSE 基础 (1) java 环境搭建及入门
Java 语言背景介绍
Java 语言
语言:人与人交流沟通的表达方式。
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言
Java 语言是美国 Sun 公司 (Stanford University Network) 在 1995 年推出的计算机语言。
Java 之父:詹姆斯高斯林 (James Gosling)。
Java 语言的三个版本
- Java SE: Java 的标准版, 其实就是 Java 基础, 又叫做 “J2SE”
- Java ME: Java 的小型版, 主要做嵌入式开发, 已经被 Android 替代, 又叫做 “J2ME”
- Java EE: Java 的企业版, 其实就是网站, 又叫做 “J2EE”
Java SE
Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。
桌面应用:用户只要打开程序,程序的界面 会让用户在最短的时间内找到他们需要的功能,同时主动带领用户完成他们的工作并得到最好的体验。
 java环境搭建及入门/1.png)
图1
)学习 Java SE 的目的:为 Java EE 开发,打基础。
Java ME
Java ME:Java 语言的(小型版),用于嵌入式消费类电子设备
 java环境搭建及入门/2.png)
图2
)Java EE
Java EE:Java 语言的(企业版),用于 Web 方向的 网站 开发。
网页:通过浏览器将 数据展示 在用户面前,跟后台服务器没有交互
网站:通过跟后台 服务器的交互,将查询到的真实数据 再通过网页展示出来。
简单理解:网站 = 网页 + 后台服务器
java 语言跨平台原理
平台与跨平台
平台:指的是操作系统。
- Windows
- Mac
- Linux
跨平台:Java 程序可以在 任意操作系统上运行。
跨平台原理
 java环境搭建及入门/3.png)
图3
) java环境搭建及入门/4.png)
图4
)总结:在不同的操作系统中,都安装一个与操作系统对应的 Java 虚拟机 (JVM Java Virtual Machine) 即可。
分析:JVM 本身是否可以跨平台?
答:JVM 虚拟机本身不允许跨平台,允许跨平台的是 Java 程序。
JRE 和 JDK
Java 程序开发的三个步骤
开发 Java 程序,需要三个步骤:编写代码、编译代码、运行代码。
 java环境搭建及入门/5.png)
图5
) java环境搭建及入门/6.png)
图6
)JDK、JRE 和 JVM 的关系
 java环境搭建及入门/7.png)
图7
)JDK 的下载和安装
Java 语言发展史
 java环境搭建及入门/8.png)
图8
)JDK 的下载
通过官方网站获取 JDK,http://www.oracle.com
注意:针对不同操作系统,下载对应的 JDK。
 java环境搭建及入门/9.png)
图9
) java环境搭建及入门/10.png)
图10
) java环境搭建及入门/11.png)
图11
)JDK 的安装目录
目录名称 | 说明 |
---|---|
bin | 该路径下存放了 JDK 的各种工具命令。Javac 和 java 就放在这个目录 |
conf | 该路径下存放了 JDK 的相关配置文件 |
include | 该路径下存放了一些平台特定的头文件 |
jmods | 该路径下存放了 JDK 的各种模块 |
legal | 该路径下存放了 JDK 各模块的授权文档 |
lib | 该路径下存放了 JDK 工具的一些补充 JAR 包 |
Javac 是编译命令, java 是运行命令, 告诉虚拟机运行那些字节码文件
常用 D0S 命令
- 常用 DOS 命令
- Path 环境变量的配置
- HelloWorld 案例编写和执行
- HelloWorld 案例常见问题
- Notepad 软件的使用
DOS 命令提示符
为什么要学习 DOS 命令提示符?
目的:为了能够使用 JDK, bin 目录中的 (javac.exe) 编译和 (java.exe) 运行工具。
 java环境搭建及入门/12.png)
图12
)结论:JDK 提供的编译和运行工具,并不是双击运行去使用的。
正确使用方式:在 DOS 中通过指令去运行。
如何打开DOS命令提示符?
(1) 按下 Win+R,在运行输入框中,输入 cmd,回车。
(2) 打开指定文件夹,在 “路径栏” 中,直接输入 cmd,然后点击回车 (推荐)
 java环境搭建及入门/13.png)
图13
)问题原因:javac.exe 存放于 D 盘的 JDK 安装目录,而当前却在 C 盘中进行访问,没有找到。
命令提示符窗口中的常用命令
操作 | 说明 |
---|---|
盘符: | 切换到对应的盘符, E: 回车, 表示切换到 E 盘 |
cd 目录路径 | 进入一个目录 |
cd.. | 进入父目录 |
cd / | 回到盘符根目录 |
dir | 显示当前文件夹中的所有内容 |
cls | 清屏 |
exit | 退出 |
上下键 | 查找敲过的命令 |
tab键 | 自动补齐命令 |
ctrl+c | 终止程序的运行 |
快速进入 bin 目录所在 DOS 命令提示符
Path 环境变里的配置
为什么要配置 Path 环境变量
 java环境搭建及入门/16.png)
图16
)弊端:只能在 bin 目录下才能使用 javac 和 java 工具, 今后的代码都放在 bin 目录下不便于管理
 java环境搭建及入门/17.png)
图17
)假如要运行这个 A.java
文件, 我需要运行 javac
命令, 但是 javac
命令在 jdk12\bin
目录下, 也就是说只能把 A.java
文件放到 jdk12\bin
目录下, 在这个目录里打开 DOS
窗口, 才能运行 javac
命令, 综上所述, 需要 文件
和 javac
命令处于同一目录, 但是随着文件越来越多, 都放到 bin
目录下, 不便于管理, 所以我们需要配置环境变量, 让文件无论放在那个位置, 都能够找到 javac.exe
作用:能够在任意目录(文件夹路径) 下,都能 访问到 bin 目录中的 javac 和 java 工具
配置 Path 环境变量
按下 Win键+E, 找到计算机
 java环境搭建及入门/18.png)
图18
) java环境搭建及入门/19.png)
图19
) java环境搭建及入门/20.png)
图20
) java环境搭建及入门/21.png)
图21
) java环境搭建及入门/22.png)
图22
)问题:变量名一定要叫 JAVA_HOME 吗?
答案:不一定,但建议叫 JAVA_HOME, 后续要使用的软件,只会识别该名称。
 java环境搭建及入门/23.png)
图23
)% % 代表引用
 java环境搭建及入门/24.png)
图24
)校验是否配置成功:重新打开 DOS 窗口,输入 javac 命令查看结果
He11o World 案例
操作步骤
① 创建一个文本文件
② 把文件的名字修改为 “HelloWorld.java”
③ 用记事本打开该文件,在文件中书写代码
|
|
④ 在 Dos 窗口中找到该文件
⑤ 编译并运行
编译: javac 文件名.java
运行: java 类名
 java环境搭建及入门/25.png)
图25
)Notepad 软件的安装和使用
 java环境搭建及入门/26.png)
图26
) java环境搭建及入门/27.png)
图27
) java环境搭建及入门/28.png)
图28
)注释
注释概念
- 注释是在程序 指定位置 添加的 说明性信息
- 简单理解:对代码的一种解释说明,方便 我们程序员更好的去 阅读代码
概述: 就是对代码进行 "解释说明" 的文字.
格式:
单行注释: // 注释内容
多行注释: /* 注释内容 */
文档注释: /** 注释内容 */
关键字
关键字概念
- 关键字:被 java 赋予了特定含义的英文单词
 java环境搭建及入门/29.png)
图29
)概念: 在 Java 中 "被赋予特定含义" 的单词.
特点:
1.全小写.
2.会变色.
main 是关键字吗?
main 不是关键字,但是他是比关键字更为关键的一个单词,因为 JVM 在执行代码的时候,只会识别该单词
常量
常量概念
- 常量:在程序的 执行过程 中,其值 不会发生改变 的量(数据)
 java环境搭建及入门/30.png)
图30
)常量分类:
字符串: 被双引号包括起来. "abc","我爱Java".
字符: 被单引号包括起来的一个字或符号. 'a','5','我'
整数: 1,3,5,-9,-13
浮点: 1.3,5.4,-2.2
布尔: true,false 注意:布尔常量单独打印没有意义
空: null,表示什么都没有. 注意:null 空常量不能输出打印
像 helloword 1 2 3 称字符常量 用 final 修饰称符号常量
常量优化机制
 java环境搭建及入门/31.png)
图31
)当常量在左侧的范围内时, 编译时不会报错, (隐藏了强制类型转换)?
数据类型
计算机存储单元
我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫 “位(bit)",我们又称之为 “比特位”,通常用小写的字母 “b” 表示。而计算机中最小的存储单元叫 “字节(byte)",通常用大写字母 “B” 表示,字节是由连续的 8 个位组成。
常用的存储单位,大家比较熟悉,我们一起来看看:
- 1B(字节)=8bit
- 1KB=1024B
- 1MB=1024KB
- 1GB=1024MB
- 1TB=1024GB
- 1PB=1024TB
数据类型
Java 语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的 数据类型 也分配了不同的 内存空间,所以它们表示的 数据大小 也是不一样的。
- 不同的 数据类型 也分配了不同的内存空间,所以它们表示的 数据大小 也是不一样的。
 java环境搭建及入门/32.png)
图32
)说明:e+38 表示是乘以 10 的 38 次方,同样,e-45 表示乘以 10 的负 45 次方
- 常量【没有手动指定数据类型】但只要是数据,就会存在数据类型
 java环境搭建及入门/33.png)
图33
)java 的数据类型可分为两大类:基本数据类型 和 引用数据类型
 java环境搭建及入门/34.png)
图34
)整数类型
 java环境搭建及入门/35.png)
图35
) java环境搭建及入门/36.png)
图36
)一个字节有 8 位,每位有 0 和 1 两种状态,一共可以表示 2 的 8 次方个信息
byte: 1 字节, 28=256
1-256 , 从零开始 0-255, 从负数开始 -128 到 127(-128 到 -1 是 128 个状态,0 到 127 是 128 个状态), 所以是-27~27-1
整型常数默认为 int 型,声明 long 型常量可以后加 l 或 L
浮点类型
金融领域不允许误差,需使用 BigDecimal 类
float (精确到 7 位) 4 字节 -3.403E38(E38 是 10 的 38 次方) 到 3.403E38
double (精确到 15,16 位) 8 字节 -1.798E308 到 1.798E308
java 浮点型常量有两种表示形式
- 十进制数形式,例如:3.14 314.0 0.314
- 科学记数法形式,如:3.14E0 3.14E2 3.14E-1
默认为 double 类型,float 类型赋值时需要添加后缀 F/f
浮点数是不精确的,尽量不要直接进行比较
字符型
占 2 个字节, 表示 1 个字符
char 类型用来表示在 Unicode 编码表中的字符。Unicode 编码被设计用来处理各种语言的文字,它占 2 个字节,可允许有 65536 个字符。
其他语言使用的是 ASCII 字符集,占 1 个字节,256 位,对英语来说绰绰有余,但对汉字来说是不够的。
Unicode 具有从 0 ~ 65535 之间的编码,他们通常用从 ‘\u0000’ ~ ‘\uFFFF’ 之间的十六进制值来表示(前缀为 u 表示 Unicode)
一个字符可以用 char,两个字符得用 string,因为他是字符串,java 中的字符串不是基本数据类型,而是一个独立定义的类
字符串用 String 定义,String str=‘我爱中国’
转义字符:
\n 换行
\r 回车
\t 制表符(tab)
\" 双引号
\' 单引号
\\ 反斜杠
boolean
boolean 有两个常量值,true、false,在内存中占 1 个或 4 个字节
一般是 4 个字节,数组中是 1 个字节
标识符
java 采用 Unicode 字符集,汉字和英文字母一样,都是普通字符集
概述: 标识符其实就是 "给类或变量起的名字".
规范:
硬规则:
1.标识符必须以 字母、下划线_、美元符$ 开头
2.标识符其他部分可以是 字母、下划线_、美元符$ 和 数字 的任意组合
3.java 标识符大小写敏感,且长度无限制
4.标识符不可以是 java 的关键字
潜规则:
1.见名知意.
2.给 "变量/方法" 起名字的时候,要使用 "小驼峰命名法".
3.给 "类/接口" 起名字的时候,要使用 "大驼峰命名法".
扩展:
小驼峰命名法: 第 1 个单词全小写,其他单词首字母大写,其他字母小写. student, studentName, studentAgeName
大驼峰命名法: 所有单词,首字母大写,其他字母小写. Student, StudentName, StudentAgeName
变量
为什么要有变量
 java环境搭建及入门/37.png)
图37
)什么是变量
 java环境搭建及入门/38.png)
图38
)以上两块内存空间,所记录的值,是经常发生改变的,对于这种经常发生改变的数据,就是所谓的变量
变量: 其实就是内存中的一块空间
变量名: 给空间起的名字就是 "变量名"
数据值: 空间中存储的数据
数据类型: 对空间中存储的数据的限制
怎样定义变量
格式: 数据类型 变量名 = 数据值;
解析:
该格式本质上是两句话.
数据类型 变量名: 叫做变量的定义,本质上是去内存中 "挖一块空间"
变量名 = 数据值: 叫做变量的赋值,其实就是给 "空间装数据"
变量的注意事项
1.变量名不能重复
2.Java 以分号作为一句话的结尾,一句话可以定义多个变量(不建议)
3.变量在使用之前必须赋值
4.定义 long 类型变量时,数值后边必须加 L
5.定义 float 类型变量时,数值后边必须加 F
6.变量只能在他所在的大括号中使用,当这个大括中的代码执行完毕后,内部所【定义】的变量就会从内存中消失
成员变量和局部变量
变量的分类
从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量
类型 | 声明位置 | 从属于 | 生命周期 |
---|---|---|---|
局部变量 | 方法或语句块内部 | 方法/语句块 | 从声明位置开始,直到方法或语句块执行完毕,局部变量消失 |
成员变量(实例变量) | 类内部,方法外部 | 对象 | 对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失; |
静态变量(类变量) | 类内部,static 修饰 | 类 | 类被加载,静态变量就有效;类被卸载,静态变量消失。 |
局部变量(local variable)
方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。
书写位置:
成员变量: 类中方法外
局部变量: 方法内部
存储位置:
成员变量: 存储在堆中
局部变量: 存储在栈中
生命周期:
成员变量: 随着对象的创建而出现,随着对象的消失而消失,和对象在一块.
局部变量: 随着方法的调用而出现,随着方法的调用完毕而消失,和方法在一块.
初始化值:
成员变量: 有默认初始化值,byte、short、int、long:是0, float、double:是0.0, char是 '\u000',布尔是false,引用类型是 null
局部变量: 没有默认初始化值,必须先定义, 赋值, 才能使用
键盘录入
键盘录入介绍
- 为什么要有键盘录入?
目的:为了让我们操的数据,变得更加灵活
举例:int a = 10:
这里 a
虽然是个变量,但记录的值,却是手动写死的。
能不能让 a
变量记录的值,灵活起来,用户输入 什么,a
变量就记录 什么。
使用步骤
|
|
Scanner 方法
|
|
Scanner 中 nextInt() 后 nextLine() 无效的原因:
nextInt(): 接收一个整型数字,注意,只接受数字
nextLine(): 接收一串字符串,包括空格,制表符,换行符
当我们输入数字的时候,是不是按下了回车键,这个时候,nextInt() 从缓冲区把我们输入的数字读走了,但留下了换行符,等到运行 nextLine(),他开始读缓冲区里的内容,然而缓冲区里还留有一个换行符,相当于没给我们机会去输入东西,就按回车结束了