![]()
![]()
# ASCII 编码
1 2 3 4 5 6 7 8 9 10
| 美国信息交换标准编码,就是一套现代英语,数学,和其他西欧字符(不含中文)的编码规则
字符在计算机底层就是存储其编号的二进制形式 ```字符 十进制 二进制 A 65 0110 0001 B 66 0110 0010 a 97 0110 0001 b 98 0110 0010 0 48 0011 0000
|
![]()
# 二进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| 计算机底层都是一些数字电路,用开表示0,关表示1 这些01的形式就是二进制
* 数据在计算机底层都是采用二进制存储的
* 二进制如何表示具体的数字呢
* 二进制转换成十进制的运算方式
* 00 = 0 * 2^0 + 0 * 2^1 = 0;
* 01 = 1 * 2^0 + 0 * 2^1 = 1
* 10 = 0 * 2^0 + 1 * 2^1 = 2
* 11 = 1 * 2^0 + 1 * 2^1 = 3
* */
int age1 = 3;
int age2 = 19;
|
# 变量
1 2 3
| 变量就是用来存储有数据的内存区域可以理解为盒子,且里面存储的数据可以变化
强制限制盒子中存储数据的形式.例如(整数类型)int、double (小数类型)
|
定义格式
数据类型 变量名称 = 初始值;double money = 6.0;
1 2 3 4 5
| 累加数据:
money = money + 4.0 ;
money += 4;
|
修改变量数据
![]()
注意: Java 在数据的赋值上左右间有区别
变量注意点
什么类型的变量 一定是存放什么类型的数据,同一个范围内不能定义重名的变量,变量定义的时候可以不给初始化值,但是使用的时候必须有初始值
![]()
变量只在所在的大括号中有效!
![]()
# 数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| 数据类型就是约束变量存储数据的形式
基本数据类型 :8种
byte 字节型 占1个字节 -128 至 127
byte number = 98;
short 短整型 占2个字节
short money = 20000;
int 整型 占4个字节 (默认使用的类型 整数用它)
int it = 232442442;
long 长整型 占8个字节
long lg2 = 1234454634554L;
(默认写一个整数是int类型, 要想类型是float类型 后面要跟上 L / l)
float 浮点型 占4个字节 (小数 )
float scrore = 0.25F;
(默认写一个小数是double类型 要想类型是float类型 后面要跟上 F / f)
double 小数型 占8个字节 (小数用它)
double scores2 = 999.99;
char 字符型 占2个字节
char ch = 'a'; (只能包含一个字节) String可以包含多,且单引号定义
boolean 布尔型 占1一个字节
boolean rs = true;
引用数据类型 : String 字符串
String name = "西门吹雪"; String内部用来存储的结果是一个char字符数组。
自动类型转
类型范围小的变量,可以直接的赋值给类型范围大的变量
|
![]()
表达式最终结果由表达式最高类型决定
** 同时:在表达式中 byte short cahr 是之间转成 int 的 **
byte-->short-->long-->int-->float-->double
![]()
相加过大的情况
![]()
1 2 3 4 5 6 7 8 9
| 强制类型转换:
类型范围大的数据或者变量 不能直接赋值给类型范围小的变量 会报错
强制类型转换 可能造成数据(丢失) 溢出
数据类型 变量2 = (数据类型) 变量1 / 数据
int的类型范围比byte大, 但这时 byte又想接收它的数据 于是发生了强制类型转换
|
![]()
![]()
![]()
# 运算符
数值拆分案例
![]()
![]()
其他运算符
自增自减运算符: 如果单独使用放前后是没有区别的 a++ a--
![]()
在表达式中或者不是单独操作的情况下 ++ -- 在变量前后存在区别
int a = 3; int b = a++; 先使用再 ++
b = 3 a = 4
![]()
++ -- 在变量前面 先 + 1 -1 再使用
![]()
赋值运算符 = += -= *= /= %=
** += 运算符 **
![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 逻辑运算符:
逻辑与 & 一假则假 (判断两个结果都必须满足的案例)
短路与 && 判断结果与 ”&“一样 过程是左边为false 右边则不执行
逻辑或 | 一真则真 (适用于两个条件某一个成立就可以的案例)
短路或 || 判断结果与 ”|“一样 过程就是左边为true 右边则不执行
逻辑非 ! !ttue = false !false = true
逻辑异或 ^ 两个条件都是false或者都是true则结果是false, 两个条件不同结果返回上true
**“ & ” “ | ” 案例**
|
![]()
三元运算符 条件为 true 则执行左边 为 false 执行右边 跟 if 判断一样
![]()
![]()
# 练习题:找最大值
![]()
优先级问题 & > | > && > ||
因为 && 的优先级比 || 高 所以先执行
![]()
# 键盘录入
1 2 3 4 5 6 7
|
调用sc对象的功能等待接收用户输入的数据
int age = sc.nextInt();
将这行代码写再打印下面 就可以把输入的数据存存储到 age 变量中
|
![]()
键盘录入的接收数据我们要把后面的 next 加上相同类型的,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import java.util.Scanner;
public class java { public static void main(String[] args) { System.out.println("你好世界"); Scanner sc = new Scanner(System.in); System.out.println("姓名是"); String name = sc.nextLine(); System.out.println("年龄是"); String age = sc.nextLine(); System.out.println("爱好是"); String pass = sc.nextLine(); System.out.println(name); System.out.println(age); System.out.println(pass); } }
|
# 判断语句
# if
![]()
![]()
![]()
# swithch
switch 分支结构 swith 适用于具体的数值 判断 一旦找到就会执行
break 跳出并结束当前所在循环的执行
default 前面所有都不成立才执行的语句
![]()
需求根据月份判断天数 1 3 5 7 9 10 12 是 31 天 利用穿透性
![]()
# 循环语句
** for **
for: i < 多大的数字 里面就会遍历几次
![]()
找到 100——900 的水仙花数
![]()
九九乘法表
![]()
# while
![]()
打印九九乘法表
![]()
需要 折叠几张 0.1 到 8848860 如果是纸张特定的大小 那么只要改变最终的厚度就知道了
一开始不知道循环的次数的话使用 while 更专业
解题思路,每次对折那么都是之前的两倍 那么循环一次对折一次 * 2
等高度到了 saber 之后就停止循环 ,定义变量就可以知道次数,循环多少次就知道折了多少下
![]()
# do-while
与 while 相似 只是 判断语句写在下方
![]()
# 循环嵌套
这里会输出出 5 个 3 行的 “你好世界” 我们第一个 i 是基于下面输出的次数,嵌套于其中的
for 里面的 j 决定的是下面的数字语句输出几次 所以一步步看
![]()
![]()
# 随机数
随机数的使用 Random 创建随机数对象
Random r = new Random()
调用 nexint 功能 (方法); 可以返回一个整型的随机数给你
![]()
随机某一范围 :减加法
原理 某一个范围的数字,
用大的去减去小的得出的数再 + 1 就是放在括号里的数,剩下加上的数字就是小的数本身
1 -10 ===> -1 ====> (0-10)+1
![]()
案例
![]()
# 数组
1 2 3 4 5 6 7
| 使用静态初始化数组 它也是引用类型数组里面存储的是内存中的地址信息
数据类型[] 数组名称 = new 数据类型[]{元素1,元素2}
int[] ages = {12, 24, 36}; 简化写法
注意:(数组什么类型的数据,那么开头的数据类型就是什么数据)
|
![]()
1 2 3 4 5 6 7
| 动态初始化数组:定义数组的时候只确定元素的类型和 数组的长度 之后再存入具体的数据
数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[10]; 赋值的时候 -1 长度就是正确的长度
arr[9] = 12;
|
![]()
如果当前已经知道了存入的元素值,用静态初始化 如果不知道要存入哪些数据 那么用动态初始化
** 动态初始化数组默认规则 **
![]()
数组两种遍历方式
# for 循环遍历数组
![]()
# for-Each 循环
它能在不使用下标的情况下遍历数组
![]()
数组案例练习
# 数组求和案例
![]()
数组元素最大值
定义一个变量为第一个数组元素存储的值
然后进行比较大小 如果大于了 max 那么 max 就等于这个数字
是 max 等于 faceScore [i] 不是然里面的数字等于 max 这么 max 永远都不会改变
![]()
猜数字游戏:
定义一个动态初始化的数字 存储 5 个随机的 1-20 之间的数据并存入数组中
![]()
随机排名 定义一个循环 循环 5 次 依次录入一个工号存入对应的位置
![]()
# 方法
# Void 返回值情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 无返回值那么类型是void 这种方法称为 无参数无返回值 方法内则不能使用return返回数据也不能结束 return可以立即跳出并结束当前方法的执行
直接在方法里面打印输出,但 如果里面有打印的东西(sout语句)那么调用的时候我们也不用另外打印出来
定义:
public static void saber(int a){ int a = 10; int b = a-2 }
调用: saber(10) 方法不调用就不执行 调用时必须严格匹配单独的参数情况
|
![]()
# return 有返回值情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 定义格式:
public static int saber(int a,int b){
return 100; }
调用格式:
方法名(参数); 举例: isNum(5); System.out.println( saber(10,20)); 使用格式1调用我们可以直接打印出方法
数据类型 变量名 = 方法名(参数); int maxNum = saber(int a,int b) 利用变量存储区进行接收 System.out.println(maxNum);
-------------------------------------------------------
public class word { public static void main(String[] args) { System.out.println( saber(10,20));
} public static int saber(int a,int b){ if (a > b) { return a; } else { return 100; return值我们可以自定义出来,return是什么值 我们调用出来也是什么值 retur d return也可以是变量的值 }
} }
|
![]()
![]()
# 访问权限
![]()
# 方法案例
![]()
![]()
![]()
![]()
# 方法参数传递
1 2 3 4 5 6 7 8
| java的参数传递机制 值传递
在传输实参给方法的形参的时候 并不是传输实参本身,而是传输实参中存储的值,这就是值传递
注意:
实参: 如在方法内部定义的变量 形参: 如在定义方法时,() 中 所声明的参数
|
.
![]()
# 方法参数传递案例
![]()
return : 跳出并立即结束所在方法的执行
break : 跳出并结束当前所在循环的执行
continue: 结束当前所在循环的当次继续 进入下一次执行
![]()
# 判断重置语句
1 2 3 4 5 6 7 8 9 10
| int flge = 1; while (flge == 1){ int yue = sc.nextInt(); if (yue <=0 || yue >12){ System.out.println("不符合月份重新输入"); continue; }else{ break; } }
|
# 综合案例
买飞机票
键盘 录入 机票原价 月份和机舱类型
使用 swith 分支判断是头等舱还是经济舱;
旺季 5-10 头等舱 9 折 经济舱 8.5 折 淡季 11 月到 4 月 头等舱 7 折 经济舱 6.5 折
![]()
找素数
![]()
评委打分
![]()
数字加密
![]()
![]()