#博学谷IT学习技术支持#
1-1 Java概述
01_Java语言背景
Java 语⾔是⼀种分布式的⾯向对象语⾔,具有⾯向对象、平台⽆关性、简单性、解释执⾏、多线程、安全性等很多特点
java语言的三个版本
Java se: Java语言的(标准版),用于桌面应用的开发,是其他两个版本的基础
Java me:java语言的(小型版),用于嵌入式消费类电子设备
Java EE:Java语言的(企业版),用于Web方向的网站开发
02_Java跨平台原理
Java语言程序可以在 Windows 、 Mac 、 Linux 系统上运行
跨平台原理:在不同的操作系统中,都安装一个与操作系统对应的java虚拟机 JVM
03_JRE、JDK、JVM
JVM(Java Virtual Machine),Java虚拟机
JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)
JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具
Java开发的三个步骤
开发Java程序需要三个步骤:编写代码,编译代码,运行代码
1.编写代码
编写一个a.java文件
JRE:JRE是 Java Runtime Environment 缩写,指Java运行环境,包含JVM虚拟机及Java的核心类库
- 类:Java文件在代码集合体现(类=Java文件,一个Java文件代表一个类)
- 类库:存放多个java类的仓库
- 核心类库:Java已经写好的,非常核心的,代码仓库
2.编译代码
.java文件属于【源文件】,是无法被JVM所识别执行的,
使用JAVA提供在JDK中的翻译工具,可以将其翻译为JVM直接识别并执行
JDK:(java Development KIt) 是java 语言的开发工具包,内部包含了代码的 编译工具 和 运行工具。
使用编译工具对A.Java 源文件进行编译,
编译成功会产生一个对应的A.class文件【字节码文件】,
该文件可以被jVM直接识别
3.运行代码
使用运行工具将A.class运行在JVM虚拟机中
JRE、JDK、JVM的作用
1、编写代码需要JRE中的核心类库代码。 2、编译代码需要JDK中的翻译工具。 3、运行代码需要JDk中的运行工具。 4、代码需要在JVM中
04_JDK的下载和安装
JDK的下载
目录说明
| 目录名称 | 说明 |
|---|---|
| bin | 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 |
| conf | 该路径下存放了JDK的相关配置文件。 |
| include | 该路径下存放了一些平台特定的头文件。 |
| jmods | 该路径下存放了JDK的各种模块。 |
| legal | 该路径下存放了JDK各模块的授权文档。 |
| lib | 该路径下存放了JDK工具的一些补充JAR包。 |
05_常用DOS命令
打开cmd方式:
- 开始菜单点击
- win+R然后键入cmd打开
- 任意文件夹下,shift+鼠标右键点击,在此处打开命令行窗口
- 任意文件夹地址栏前输入cmd加空格
常用命令:
盘符切换 E:
查看当前目录下所有的文件 dir
进入同级的其他目录 cd videos
进入不同级的其他目录 cd /d music
返回上一级 cd ..
创建文件夹 md test
删除文件夹 rd test
创建文件 cd>test.txt
删除文件 del test.txt
清楚屏幕 cls
退出终端 exit
查看电脑ip地址 ipconfig
获取网站的ip地址 ping www.baidu.com
打开计算器 calc
07_HelloWorld案例的编写和执行
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
编译java文件生成class文件,运行class文件。
编译:javac 文件名.java ( javac HelloWorld.java )
执行:java 类名 ( java HelloWorld )
11_注释
注释是对代码的解释和说明,可以提高程序的可读性
- 单行注释 // 说明
- 多行注释 /* 解释 */
- 文档注释以 /** 开始,以 */ 结束
12_关键字
关键字是指被java语言赋予了特殊含义的单词。关键字的字母全部小写。
1-2 数据类型及转换
13_常量
在程序的执行中,其值不会发生改变的量(数据)
常量的分类:
字符串常量: 被双引号包裹的内容
整形常量:所有整数
小数常量:所有小数
字符常量:被单引号包裹的内容,里面 只能放单个字符
布尔常量:true false
空常量:null
14_变量的介绍
变量就内存总的存储空间,空间中存储着经常发生改变的量(数据)
15_数据类型
计算机存储单元
计算机存储设备的最小信息单元叫“位 (bit)”,又称之为“比特位”,通常用小写的字母”b”表示。
而计算机中最基本的存储单元叫“字节(byte)”, 通常用大写字母”B”表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位,其换算单位如下: 1B(字节) = 8bit 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB
Java中的数据类型
Java是一个强类型语言,Java中的数据必须明确数据类型。在Java中的数据类型包括基本数据类型和引用数据类型 两种。
| 数据类型 | 关键字 | 内存占用 | 取值范围 |
|---|---|---|---|
| 整数类型 | byte | 1 | -128~127 |
| short | 2 | -32768~32767 | |
| int(默认) | 4 | -2的31次方到2的31次方-1 | |
| long | 8 | -2的63次方到2的63次方-1 | |
| 浮点类型 | float | 4 | 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38 |
| double(默认) | 8 | 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 | |
| 字符类型 | char | 2 | 0-65535 |
| 布尔类型 | boolean | 1 | true,false |
注意 : 在java中整数默认是int类型,浮点数默认是double类型。
16_变量的定义和使用
变量定义格式:数据类型 变量名 = 数据值;
// 整数类型变量
int a = 10;
double b = 12.3
char c = 'a'
boolean d = true;
17_变量的注意事项
- 变量名不允许重复定义
- 定义变量多个使用逗号 int a = 1,b = 2
- 变量使用前需要赋值
- 定义float类型变量时,需要在数值后面加入F的标识,F可以大写也可以小写
- long a = 1000L
- 变量的作用域,只在它所在的大括号中有效
18_键盘录入
import java.util.Scanner;
public class Demo1Scanner {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println(a);
}
}
19_标识符
标识符是编程时使用的名字,用于给类、方法、变量、常量等命名。
Java中标识符的组成规则: 由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。 不能使用java中的关键字作为标识符。 标识符对大小写敏感(区分大小写)。
Java中标识符的命名约定: 小驼峰式命名:变量名、方法名
首字母小写,从第二个单词开始每个单词的首字母大写。
大驼峰式命名:类名 每个单词的首字母都大写。
另外,标识符的命名最好可以做到见名知意 例如:username、studentNumber等。
01_隐式转换
在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动 类型转换 和 强制类型转换。
类型转换的过程
将数据类型中,取值范围小的数据,给取值大的类型赋值,可以直接赋值
Double = int
-
整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
Int = byte + byte
-
boolean类型不能与其他基本数据类型相互转换。
02_强制转换
将一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或者变量
注意: 浮点数转化为整形会舍弃浮点数
1-3 运算符
04_算数运算符
运算符和表达式
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
算术运算符
+ - * / %
注意:
-
/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
-
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
05_字符的+操作
ASCII (American Standard Code for Information Interchange): 美国信息交换标准代码
是计算机中字节到字符的一套对应关系
char类型参与算术运算,使用的是计算机底层对应的十进制数值。
常用三个字符对应的数值:
'a' -- 97 a-z是连续的,所以'b'对应的数值是98,
'c'是99,依次递加 'A' -- 65 A-Z是连续的,所以'B'对应的数值是66,
'C'是67,依次递加 '0' -- 48 0-9是连续的,所以'1'对应的数值是49,'2'是50,依次递加
06_字符串的+操作
在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。
08_自增自减运算符
++ --
++和-- 既可以放在变量的后边,也可以放在变量的前边。
放在前面则先做运算,后面则先赋值
09_赋值运算符
+= -= /= *= %=
short s = 10;
s = s + 10;
s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);
注意:自带强制类型转换
10_关系运算符
> < <= >= == !=
11_逻辑运算符
& 逻辑与
| 逻辑或
! 逻辑非 : 取反
^ 逻辑异或 : 相同为false, 相反为true
12_短路逻辑运算符
&& 短路与
|| 短路或
具有短路效果
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
13_三元运算符
格式:值 = 表达式?表达式:表达式
1-4 条件控制语句
分支结构(if, switch) 循环结构(for, while, do…while)
15_流程控制语句-顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
16_if语句格式 3种
if (关系表达式) {
语句体;
}
if (关系表达式) {
语句体1;
} else {
语句体2;
}
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
… else {
语句体n+1;
}
注意:如果只有一条语句,大括号可以省略
01-分支语句switch语句
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程: 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
03-switch语句case穿透
概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透
应用:如果多个case语句重复,可以使用case穿透来优化代码
04-循环语句-for循环
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
注意: 如果带有统计、计算等循环,要将统计字段变量定义在循环外部
10-循环语句-while循环
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
12-循环语句-dowhile循环
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
13-三种循环的区别
三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
什么时候使用 for 或者 while
当知道循环终点时使用for,不知道何时结束循环时使用while
14-死循环
for死循环格式 : for(;;){ }
while死循环格式 : while(true){ }
do..while死循环格式 : do{ }while(true);
15-跳转控制语句
跳转控制语句(break) 跳出循环,结束循环
跳转控制语句(continue) 跳过本次循环,继续下次循环
注意: continue只能在循环中进行使用!
16-循环标号
lo:while(true){
...
switch(week){
ase 0:
break lo;
}
}
17-Random基本使用
Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能
使用步骤:
-
导入包 import java.util.Random;
-
创建对象 Random r = new Random();
-
产生随机数 int num = r.nextInt(10);
解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9
1-6 开发工具
01-IDEA的概述和安装
IDEA全称 IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。
集成环境:把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。
02-IDEA中的项目结构
project(项目、工程)
module(模块):一个project中有多个module
package(包):一个module中有多个package
class(类):一个package中有多个class
03-IDEA中的第一个代码
1.创建Project 项目
2.创建Module 模块
3.创建Package 包
4.创建class 类
5.在类中编写代码
6.完成编译运行
04-IDEA常用快捷键
| 快捷键 | 作用 |
|---|---|
| psvm + 回车 | 快速生成main方法 |
| sout + 回车 | 快速生成输出语句 |
| Alt + 1 | 打开 \ 隐藏工程目录结构 |
| Alt + 4 | 打开 \ 隐藏控制台 |
| Alt + 4 | 打开 \ 隐藏控制台 |
Ctrl + L 格式化代码
Alt + Enter 代码修正提醒
Ctrl + / 批量当行注释
ctrl+shift + / 批量多行注释
Alt + shift + ↑ 上移当前行
Alt + shift + ↓ 下移当前行
tab 代码右移 shift + tab 代码左移
这些都不重要,ctrl+ c ctrl+ v 就够了
05-IDEA操作模块
通过 File - Project Structure 操作对模块进行操作
注意:remove module 不会删除源文件