任务一 初识计算机和Java语言
基本概念
-
主要硬件
- CPU(中央处理器)最核心的部件,类似大脑
- 运算和控制核心
- 功能:解释计算机指令,处理计算机软件中的数据
- 内存
- 暂时存放内存数据、效率高
- 容量小、非永久存储、断电丢失数据
- ** 硬盘**
- 存储部件
- 容量大、永久存储、断电不丢失
- CPU不能直接访问硬盘,要先加载到内存
- 输入输出设备
- 键盘+显示器
- CPU(中央处理器)最核心的部件,类似大脑
-
主要软件
- **系统软件 **
- windows
- Unix
- Linux(C语言)
- IOS
- Android
- 应用软件
计算机的体系结构
![[计算机体系结构.jpg]]
-
计算机语言概述
-
第一代语言:机器语言,二进制代码,穿孔卡片
-
第二代语言:汇编语言,助记符表示机器指令,如ADD、SUB
-
第三代语言:高级语言
- Java
- C
- Python(AI)
- C++
- Scala
-
-
Java语言发展史
![[JAVA.jpg]]
- 20世纪90年代 单片机系统
家电设备
sun 詹姆斯高斯林
C++ 1983年
橡树OAK
爪哇岛 JAVA
-
Java语言发展史
-
主要版本
-
JAVA SE
![[JAVASE 1.jpg]] -
JAVA EE
![[JAVAEE 1.jpg]] -
JAVAME 已淘汰 使用Android
![[JAVAME 1.jpg]]
-
-
JAVA相关概念
-
JDK Java Development Kit
JDK11
-
JRE JAVA运行时环境
提供JAVA应用程序所必须的软件环境,无论是开发还是运行JAVA都必须安装
-
javac.exe
编译器,将高级Java源代码翻译成字节码文件
-
java.exe
解释器,主要用于启动JVM对字节码文件进行解释并执行
-
Jdk、jre、jvm
![[jdk.jpg]] -
JAVA开发工具
![[开发工具.jpg]] -
JAVA程序编写流程
![[编写流程.jpg]] -
注释
- // 单行注释
- /* */多行注释 不可嵌套
- /** */ 多行 /文档注释 支持提取的注释
- 环境变量的配置
- 将文件路径配置到环境变量Path中
- 计算机——属性——高级系统设置——高级——环境变量——系统变量——Path——编辑
- 跨平台原理
- 字节码文件通过JVM翻译成具体平台能运行的机器指令
-
任务二 变量和数据类型
变量的基本概念
-
变量:记录单个数据内容,申请一个存储单元。
-
变量的声明方式
- 数据类型 变量名 = 初始值
public class 类名 { 类体 }
- 数据类型 变量名 = 初始值
-
注意事项
- Java是强类型语言,使用变量前要声明其数据类型
- 变量使用之前必须初始化
- 变量不能重复声明
-
标识符的命名法则
- 由数字、字母、下划线以及$等组成,其中数字不能开头。
- 不能使用的关键字![[关键字.jpg]]
- 区分大小写
- 长度不宜过长
- 见名知意 支持中文 不推荐使用
- 案例题目
输入年龄和姓名打印出来
步骤
变量声明
输入变量
打印变量优化
在使用变量的时候在进行声明
减少重复的代码
数据类型
- 整数类型
- byte、short、int、long
- Long是long的包装类,区分大小写
- 7 15 31 63范围1 2 4 8字节
- 默认为int类型,超过long使用java.math.BigInteger类型
- 笔试考点
数字不能开头,无法确定是否为赋值的量还是标识符本身。
固定值可以检测,变量不能检测。
- ** 浮点类型**
- float 4个字节 单精度浮点数 7位有效数字 符号位 指数位 小数
- double 8个字节 双精度浮点数 15位有效数字 更准确
- int 整数
- 小数数据默认直接量为double。
- 浮点数计算不准确
- 布尔类型
- boolean 数值TRUE FALSE
描述真假
- 字符类型
- 2个字节 无符号位
- String 字符串
- 存的图 给一个ASCII码
- ASCII
- 0=48
- A=65
- a=97
- 空格=32
- 换行符=10
![[ASCLL.png]]
- Unicode字符集编码 所有字符都为16位
- "
- ’
- \
- \t横向制表
- \n换行
- \f换页
- 基本数据类型之间的转换
![[基本数据类型转换.png]]
- 强制类型转换
目标类型 变量名 = (目标类型)源类型变量名;
- 总结
![[任务一总结.png]]
任务三 运算符
运算符
- 算术运算符
- / % + *
- 注意事项:
两个整数相除只留整数部分。只要其中一个数不是整数就行。
0不能做除数
- 案例题目
7199 时分秒
字符串连接运算符+,+两边有一个字符串就是字符串连接符。
- 比较/关系运算符
< > >= <= == !=
- 自增减运算符
- ++自增 ia++ = ia +1后加加
- ++ia 先加加
- 自减
-
笔试考点
- 逻辑运算符 Boolean 连接多个关系运算符
- &&逻辑与 并且
- ||逻辑或 或者
- !逻辑非 取反
- 短路特性
- 逻辑与 第一个为假 则跳过第二个
- 条件/三目运算符
- 条件表达式?表达式1:表达式2
- 条件成立,执行1,不成立执行2.
- 赋值运算符
变量 = 数据;
复合赋值
ia += 2; 意思为 ia = ia + 2;
-
笔试考点1
- byte+byte=int
- byte b1 = 10; b1+=2;等价于b1 = (byte)(b1+2);
-
笔试考点2
=是赋值 ==才是等于
-
移位运算符
- "<<"左移运算符,二进制向左,右侧补充0。
- ">>"右移运算符,二进制向右,左侧补充符号位。
- ">>"逻辑右移运算符,二进制向右,左侧补充0。
-
位运算符
- & 按位与,二进制计算,同1为1。
- | 按位或
- ~ 按位取反
- ^ 按位异或,同0,异为1。
-
** 负数二进制转换**
- 原码、反码、补码
- 运算符的优先级
![[运算符优先级.png]]
- 总结
![[总结.png]]
任务四 流程控制语句
分支结构
- if分支结构
if(条件表达式){语句块;}
- 案例题目
寻找最大值
if esle分支结构
ifesle ifelse分支结构if(“军人”.equals(Str))等价于识别输入文字是否为军人。
案例1
局部变量 从声明开始一直方法体结束,块变量从声明开始一直到当前语句块结束。
cls清屏
案例2
- 出租车计费方式
- switch case分支结构
switch(变量/表达式){
}
default
case穿透,必须要有break,否则会全部执行。
switch case模拟菜单结果
循环结构
- for循环
- for(初始化表达式;条件表达式;修改初始值表达式){
循环体;
}
-
throws Exception{}
- throws Exception{
Thread.sleep(5000);
}
- throws Exception{
-
案例题目
案例1
水仙花数 153=13+53+3^3
continue关键字,提前结束本次循环,进行下一次的循环。
案例2
- 打印1~20之间的所有整数,跳过5的倍数。
break,退出循环体。
for(;;)无线循环,死循环
案例聊天案例,bye结束。案例3
- 猜数字
随机生成: import java.util.random;
Random ra = new Random();
int temp = ra.nextInt(100) + 1;
System.out.println("temp = "+ temp);
- 双重for循环 多行多列
- 5行5列,字符串内容
star
乘法表 外行内列标号退出
outer:
break outer;
判断是否是质数
计算平方根 Math.sqrt(i)
- while循环
- 当
案例
- 打印调和数列的和
- for和while的区别
- while用于条件明确,但是次数不确定
- for明确次数
- 案例题目
案例
- 反向输出
- do while 循环
- do{
循环体
}
while(条件表达式);- 案例合格检查,至少执行一次。
- 笔试考点
十动然拒
- ;的位置很重要,;用于延时,空语句
- 总结
![[模块一任务四总结.png]]
任务五 数组以及应用
数组 Array
- 多个类型相同的数据内容
- 一段连续的存储空间
- 相同数据类型的多个元素的容器,元素按线性顺序排序
- 引用数据类型
- 数组的声明方式
- 数据类型[] 数组名称 = new 数据类型[数组的长度];
- 注意事项:
调用数组的length属性可以获取数组的长度;
通过下标访问数组的每一个元素,数组的下标是从0开始。
数组初始化
- 静态方式
- 数据类型[] 变量名 = {初始值1,初始值2,…};
- 动态方式
数据类型[] 变量名= new 数据类型[长度];
给了长度但是没有初始值
- 内存结构分析
栈区都是局部变量
堆区存储new关键字创建的数组和对象
基本数据类型放的是变量,引用放的地址
- 数组的增删改查
- for循环 if 来实现
- 数组的优缺点
- 查找速度开
- 元素类型要相同
- 长度不能改变
- 增删改查,效率低
- 案例题目
案例
数组元素的拷贝
定义
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);方法含义
从源数组src取元素,范围为下标srcPos到srcPos+length1,取出共length个元素,存放到目标数组中,存放位置为下标destPos到destPos+length1。过程
public class SystemArrayCopy {
public static void main(String[] args) {
int[] src = {1, 2, 3, 4};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 1, 4);for (Object o : dest) { System.out.println(o); }
}
}
/0 1 2 3 4/
-
数组赋值,给的地址信息
-
案例题目
案例
- 学生人数的考试成绩,总分+平均分,打印
- 数组的工具类概念
- java.util.Arraays类可以实现对数组中元素的 遍历、查找、排序等操作
- Arrays.toString(arr1); 打印arr1数组中的元素
- Arrays.fill(arr1,10);将10赋值给arr1中所有元素
- Arrays.equals(arr1,arr2); arr1和arr2中的元素顺序和内容是否相同
- Arrays.sort(arr1); 将arr1中的元素从小到大排序;
- Arrays,binarySearch(arr1,53); 查找数组arr1中元素53的下标位置
- 二维数组
声明方式
数据类型[][] 数组名称 = new 数据类型[行数][列数];初始化
int[][] arr1 = {{10,12,13,14},{22,33,44,77}}arr.length 代表一维数组长度,元素的个数
brr.length 代表二维数组长度,一维数组的个数,就是行数
brr[0].length 代表二维数组中第一个元素的长度,代表一维数组的列数
考点
![[考点.png]]案例
杨辉三角