第一天(12.01)
- 语句以分号结束
- 起名以'_','$'和字母开头
- 使用final定义常量
- '^'表示异或,相同为false
算术运算符'+'的使用
-
从左到右逐个执行
-
只要有字符串参与,就会将前后拼接
System.out.printIn("abc"+true); //abctrue
System.out.printIn(2+1+"abc"+2+1); //3abc21
-
字符+字符 或 字符+数字 时,会将字符转换为ASCII码对应值再运算
输入
点击查看代码
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
基本数据类型
类型转换
- 底层类型是二进制位数增加和删除,注意最前一位都是符号位
隐式:1100 0100 --> 0000 0000 1100 0100
强制: 1001 0101 1100 0100 --> 1100 0100
隐式转换
- 取值范围小 --> 取值范围大
- int<long<float<double
转换场景
- 小范围与大范围运算时,小范围自动转换为大范围再进行运算,并最终返回大范围类型数据
- byte,short,char在进行任何运算时都会先转换为int再运算
- 在使用 +=, -= ,*= ,/= ,%= 时底层都隐藏了强制类型转换
强制类型转换
- 取值范围小 <-- 取值范围大
短路逻辑运算符
- && 和 ||
- 前面条件能够判断则跳出,提高程序效率
三元运算符
- 三元运算符的结构必须被使用
'&' 的用法('|' 同理)
- 作为逻辑连接运算符连接两个表达式
- 可以用在 数字和数字 字符和数字 字符和字符 之间使得其转换而成的十进制数在底层通过按位与的方式运算
- 计算机中的数的存储方式都是补码,按位与运算结果也是补码,因此计算结果需要特别注意收尾符号位
左移和右移
a << 2
a >> 2
- 底层逻辑也是二进制左右移,相当于乘除2en
流程控制
if
- if后的大括号省略时,如果直接写
int a = 100;
会报错,该语句包含定义和赋值两句 - 支持else if最后不加else
第二天(12.02)
- 使用 sout+Tab 快速输出
System.out.print()
在使用时不会换行- sc.nextLine()可用于键盘读入字符串
switch
- switch中路由是byte,short,int,char,枚举,字符串
- default位置可以随意
- JDK12的switch简化写法
case 1 -> System.out.printIn("number为1");
- switch使用于离散值,if可用于连续值
- 支持多个值匹配(注意JDK版本)
case 1,2,3,4,5: System.out.printIn("workday");
for
- 键入 5.fori+Tab 快速写循环(循环5次)
- continue:结束本次循环,开始下次循环
案例:判断回文数
生成1-99之间随机数
点击查看代码
Random r = new Random();
int num = r.nextInt(1,100); //记得配置高版本jdk
System.out.println(num);
数组
- 定义
int[] array = new int[]{1,2,3,4}; //静态
int[] arr = new int[3]; //动态
- 使用去arr.length获取数组长度
- 快速遍历数组快捷 arr(数组名).fori + Tab,然后填入语句
- 数组初始值定义规律
- 数组以以下方式复制时,只复制引用,实质上指向同一块空间
点击查看代码
int[] arr1 = {1,2,3};
int[] arr2 = arr1;
第三天
- psvm + Tab 快捷创造程序主入口
- 选中代码中重复部分 + ctrl + Alt + M 自动抽取方法
- 上述参数定义放在选取部分之外
System.out.println();// 只做换行不输出
- ctrl + Alt + L 格式化代码
方法重载
- 同一个类方法名相同
- 参数不同(个数,类型,顺序)
- 与返回值类型无关(返回值类型可以不同)
- 进行随机抽取时,可将所有需要抽取的元素放入数组,随后随机生成数组的下标
注意Java中的内存空间分配
- 分为栈和堆两部分
- 栈用于存储程序运行过程的方法以及方法中定义的基本数据类型
- 对用于存储程序运行过程中创建的引用类型数据
- 栈中方法出栈后数据消失(作用域),而堆中的数据不会随着某个方法出栈而消失,只在程序全部运行完毕后释放
二维数组
- 数组定义
int[][] arr = new int [][]{{11,22,33},{44,55}};
int[][] arr = new int [2][]; //允许不定义第一位数组长度
- 允许后续使用别的数组引用对二维数组进行重新赋值
- 内存形式