数据相关
数据类型
📔 整型
| 类型 | 占用空间 |
|---|---|
| byte | 8位(1字节) |
| short | 16位(2字节) |
| int | 32位(4字节) |
| long | 64位(8字节) |
📔 浮点型
| 类型 | 占用空间 |
|---|---|
| float | 32位(4字节) |
| double | 64位(8字节) |
📔 字符型:char — 2字节
📔 布尔类型:**boolean**值为**true/false**;
类型转换
📝 自动类型转换
📔 注意:
- 自动类型转换与C++中有所区别,int类型不能自动转换成boolean类型
- 在大小写字母转化时,也不能像C++中那样比如;Java中不允许这样的写法,因为计算过程中有数据类型转化成了int类型,int不能自动转换为char
char ch = 'd';ch = ch - 'a' + 'A';
📝 强制类型转换
📃 和C++中语法类似,直接在其前面使用强制类型转换;以字母大小写转换为例,Java中可以
char ch = 'd';ch = (char)(ch - 'a' + 'A');
流程控制
顺序结构
顺序结构是最简单最基本的结构,按照代码的顺序一次执行。
📔 if 语句
if(关系表达式){语句体;}
if(关系表达式){语句体1} else (关系表达式) {语句体2}
if(关系表达式) {语句体1;} else if (关系表达式) {语句体2;}
📔 switch 语句(开关语句)
switch (表达式) {case 1:语句体1;break;case 2:语句体2;break;case 3: …………default: 语句体;}
📃 case 穿透:case 后面没有break;发生穿透。在不判断下一个 case 的情况下,直接向下运行,直到遇到break;
循环结构
结构内语句一直被循环执行。
📔 for 循环
for (int i = 0; i < n ; i++){语句体;}
📔 while循环
while(条件判断语句){语句体;}
📔 do while循环
do{语句体;}while(条件控制语句);
📃 当在程序执行中遇到死循环时:Ctrl + C 结束死循环。
跳转控制语句
📔 continue:跳过某一次或者说当前循环体内容。
📔 break:直接跳出循环。
Java中随机数生成与使用
📔 Random
import java.util.Random
import java.util.*;public class LoginService {public int resultRandomInt(int value) {int ans = 0;Random r = new Random();if (value % 2 == 0) {ans = r.nextInt(10); // 生成随机数} else {ans = r.nextInt(10) + 10; // 生成随机数}return ans;}}
📝 其中 num 为一个具体数字,生成范围为 0 — num-1即**[0,num)**;
数组
格式
- 格式一:
** 数据类型[] 变量名**(推荐使用) - 格式二:
**数据类型 变量名[]**
数组元素访问
📔 语法:**数组名[索引];**
📑 注意:
- 索引从0开始
- 动态初始化时将由计算机赋初始值。
📄 整数默认 — 0
📄 浮点数默认 — 0.0
📄 布尔值默认 — false
📄 字符默认 — 空字符
📄 引用类型默认 — null
Java中内存分配
📔 栈内存:
- 存储局部变量
- 栈内存使用完后立即消失
📔 堆内存:
- 存储new出来的东西(实体、对象)
- 使用后在垃圾回收器空闲
数组初始化
📔 动态初始化 — 初始化时只指定数组长度,由系统为数组分配初始值
📝 格式:**数据类型 [] 变量名 = new 数据类型[数组长度];**
int[] arr = new int[3];
📔 静态初始化
📝 格式:数据类型[] 变量名 = new 数据类型[]{ 数据1,数据2,数据3,……};
int[] arr = new int[]{1,2,3};
📝 索引问题
- 索引越界
- 空指针异常 arr = null 时不能强行访问,不再指向对象。
