前言
Java学习笔记
编译源码为字节码文件
通过JVM运行字节码文件
主方法
1 2 3 4 5
| public class Main { public static void main(String[] args) { ... } }
|
注释
输出语句
传送门
1
| System.out.println("文本内容");
|
输入语句
输入单个数据
1
| String str = new Scanner(System.in).next();
|
输入多个数据
1
| String str = new Scanner(System.in).nextLine();
|
变量
- 变量的命名
- 只能包含字母、数字、_、$,并且不能以数字开头
- 严格区分大小写
- 不能使用关键字
- 可以中文命名,但不建议
声明变量
定义变量
1
| 数据类型 变量名1 = 值, 变量名2 = 值;
|
变量赋值
- 变量的赋值语句完成后会返回赋值结果,所以将返回值继续参与运算
常量
定义常量
- 常量可以先声明后赋值,常量只有首次赋值会成功,之后赋值会失败
1 2
| final 数据类型 常量名; 常量名 = 值;
|
基本数据类型
| 标识符 |
数据类型 |
byte |
字节 |
short |
短整型 |
int |
整型 |
long |
长整型 |
float |
单精度浮点型 |
double |
双精度浮点型 |
char |
字符型 |
boolean |
布尔型 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| byte a = 127;
short b = 32767;
int c = 2147483647;
long d = 9223372036854775807L;
float e = 3.14F;
double f = 3.14;
char g = 'a';
boolean h = true;
|
二进制数
八进制数
十六进制数
长数字分隔符
英式数字分隔法
1
| int oneBillion = 1_000_000_000;
|
中式数字分隔法
1
| int oneBillion = 10_0000_0000;
|
应用于二进制数
1
| int binary = 0b0000_0000;
|
应用于十六进制数
1
| int hexadecimal = 0xFFFF_FFFF;
|
运算符
算术运算符
关系运算符
逻辑运算符
赋值运算符
=、+=、-=、*=、/=、%=、&=、|=、<<=、>>=
字符串连接运算符
按位运算符
&(与)、|(或)、^(非)、~(取反)、<<(左移)、>>(右移)、>>>(无符号右移)
1 2
| byte a = 1 ^ 0; byte b = ~1;
|
左移运算:高位丢弃,低位补0
右移运算:低位丢弃,高位补与符号位相同的值
无符号右移:低位丢弃,高位补0
隐式类型转换
- 不同类型整型类型数据通过算数运算符运算,会自动转换为int类型
1 2 3
| byte a = 1; short b = 1; int c = a + b;
|
- 不同类型浮点型数据通过算数运算符运算,会自动转换为double类型
1 2 3
| byte a = 1; float b = 1.0F; double c = a + b;
|
- 不同类型数据与字符串型数据进行加法运算,会自动转换为字符串型
分支语句
if…else
1 2 3 4 5
| if (条件) { 满足条件时执行 } else { 不满足条件时执行 }
|
1 2 3 4 5 6 7
| if (条件1) { 满足条件1时执行 } else if (条件1) { 满足条件2时执行 } else { 不满足条件时执行 }
|
switch…case
- Java的
switch语句具有穿透行为,在每个case语句中,必须使用break跳出seitch语句
- 所有条件都不符合时,执行
default的语句的代码
1 2 3 4 5 6 7 8 9 10 11
| switch (变量) { case 值: ... break; case 值: ... break; default: ... break; }
|
三目运算符
1
| 数据类型 变量名 = 表达式 ? 值1 : 值2;
|
循环语句
for
1 2 3
| for (int i = 起始值; i < 结束值; i++) { ... }
|
while
do…while
1 2 3
| do { ... } (循环条件) while;
|
break
1 2 3 4 5 6
| outer: for (;;) { for (;;) { break outer; } }
|
continue
终止程序
完成