目录
1.1、标识符
标识符可以简单理解为:给文件名、类名、接口名、注解名、数组名、方法名、变量名、常量名起名字。
标识符的命名规则:(必须遵守)
标识符由字母(a-z,A-Z)、数字(0-9)、下划线(_)、美元符号($),且第一个字符不能为数字。
标识符是严格区分大小写的。
标识符使用 Unicode 标准字符集,最多可以识别 65535 个字符。
标识符不能是 Java 的关键字和保留字。
标识符的写法规则:(建议遵守)
大驼峰命名法:所有单词的首字母大写,单词间无空格,适用于:文件名、类名、接口名、注解名,例如:StudentName
小驼峰命名法:除首字母小写,其余所有单词的首字母大写,单词间无空格,适用于:数组名、方法名、变量名,例如:studentName
常量的命名法:所有单词大写,单词间用下划线分隔,适用于:常量名,例如:STUDENT_NAME
1.2、关键字和保留字
关键字是 Java 语言中已经被赋予特定意义的一些单词,不可以把这些关键字作为标识符来使用。
关键字的分类展示:(共50个)
用于定义数据类型的关键字:class、interface、byte、short、int、long、float、double、char、boolean、void
用于定义数据类型值的关键字:true、false、null
用于定义流程控制的关键字:if、else、switch、case、default、while、do、for、break、continue、return
用于定义访问权限修饰符的关键字:private、protected、public
用于定义类、方法、变量修饰符的关键字:abstract、final、static、synchronized
用于定义类与类、类与接口、接口与接口之间关系的关键字:extends、implements
用于定义建立实例、引用实例、判断实例的关键字:new、this、super、instanceof
用于定义异常处理的关键字:try、catch、finally、throw、throws
用于定义包、导入包的关键字:package、import
剩余其他的关键字:volatile、transient、strictfp、native、assert
保留字的分类展示:(共2个)
在命名标识符的时候,虽然 const 和 goto 不是 Java 的关键字,但也不可以使用,这两个词可能会在以后的升级版本中被用到。
1.3、基本数据类型
数据类型:
整数类型:
int a = 0b11111111;//支持二进制
int b = 255;//支持十进制
int c = 0377;//支持八进制
int d = 0xFF;//支持十六进制
转义字符:
转义字符 | 字符含义 |
---|---|
\ddd | 3位八进制数所代表的任意字符 |
\uxxxx | 4位十六进制所代表的任意字符 |
\' | 代表一个单引号字符 |
\" | 代表一个双引号字符 |
\\ | 代表一个反斜杠字符 |
\t | 水平制表符 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
1.4、变量和常量
- 变量:在程序运行期间,其值可以发生改变的量,被称为变量。语法:
数据类型 标识符 [=初始化值];
- 常量:在程序运行期间,其值不会发生改变的量,被称为常量。语法:
final 数据类型 标识符 [=初始化值];
1.5、类型转换
自动类型转换:把小范围数据类型赋值给大范围数据类型,由于精度并不会丢失,因为这种转换是自动的。
强制类型转换:把大范围数据类型赋值给小范围数据类型,由于精度可能会丢失,因此需要进行强制转换。
语法:目标数据类型 新标识符 = (目标数据类型)(旧标识符 / 表达式);
1.6、运算符
运算符的分类:
算术运算符:+、-、*、/、%
自增与自减:++、–
位运算符:&(与)、|(或)、~(非)、^(异或)
移位运算符:<<(左移)、>>(有符号右移)、>>>(无符号右移)
逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)
关系运算符:==、!=、<、<=、>、>=、instanccof
三目运算符:?:
赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>=
运算符优先级:
位运算的习题:
1.7、输入和输出
// import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
byte b = scanner.nextByte();//输入byte类型数据
short s = scanner.nextShort();//输入short类型数据
int i = scanner.nextInt();//输入int类型数据
long l = scanner.nextLong();//输入long类型数据
float f = scanner.nextFloat();//输入float类型数据
double d = scanner.nextDouble();//输入double类型数据
char c = scanner.next().charAt(0);//输入char类型数据
boolean bool = scanner.nextBoolean();//输入boolean类型数据
System.out.println("b=" + b);//输出byte类型数据
System.out.println("s=" + s);//输出入short类型数据
System.out.println("i=" + i);//输出入int类型数据
System.out.println("l=" + l);//输出long类型数据
System.out.println("f=" + f);//输出float类型数据
System.out.println("d=" + d);//输出double类型数据
System.out.println("c=" + c);//输出char类型数据
System.out.println("bool=" + bool);//输出boolean类型数据
1.8、流程控制
条件语句:
跳转语句:
- break:结束本次循环。带标签的 break 语句,将跳到与标签匹配的语句块末尾。
- continue:跳过本次循环。带标签的 continue 语句,将跳到与标签匹配的循环首部。
1.9、数组
一维数组:
格式一:数据类型[] 数组名 = new 数据类型[数组长度];
格式二:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
格式三:数据类型[] 数组名 = {元素1,元素2,...};
二维数组:
格式一:数据类型[][] 数组名 = new 数据类型[行长度][列长度];
格式二:数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2,...},{元素1,元素2,...},...};
格式三:数据类型[][] 数组名 = {{元素1,元素2,...},{元素1,元素2,...},...};
参数数组:
命令行:public static void main(String[] args)