Java 语言基础知识¶
标识符¶
Java 语言中,标识符由字母、下划线、美元符($)开始,后接字母、下划线、美元符、数字。
保留字不可作为标识符
数据类型¶
自动类型转换
不同类型数据转化为同一类型(向高级转换)
flowchart LR
A[byte,short,char] --> B[int] --> C[long] --> D[float] --> E[double]
类型划分¶
Java 语言中,数据类型分为两大类:基本类型和引用类型。
- 基本类型:byte、short、int、long、float、double、char、boolean
- 引用类型:类、接口、数组
常量与变量¶
变量定义:<typeSpecifier> <varName>[=value];
- 变量名对大小写敏感
- 长度无限制
- 先初始化,后使用
常量定义:final <typeSpecifier> <varName>=value;
- 一旦赋值不可被修改
布尔类型(boolean)¶
值只有 true 和 false,不能接受整数赋值
字符类型(char)¶
字符常量 '<ch>',字符变量 char ch;,16 位
整型数据(integer)¶
- 常量:十进制整数、八进制整数(
0开头)、十六进制整数(0x开头)、二进制整数(0b开头) - 变量
- byte:8位
- short:16位
- int:32位
- long:64位
浮点型数据(float)¶
- 常量:十进制数字(+ 小数点 + 小数部分)+
f或F- 科学计数法:
<mantissa>e<exponent>,mantissa和exponent均为十进制数字
- 科学计数法:
- 变量:
- float:32位
- double:64位
字符串类型(String)¶
- String 和 StringBuffer
- String:不可变字符串
- 构造:
String(char chars)、String(char chars[], int startindex, int numChars)等 - 修改:
concat()、replace()、substring()等
- 构造:
- StringBuffer/StringBuilder:可变字符串
- 构造:
StringBuffer()、StringBuffer(String str)、StringBuffer(int len)等 - 修改:
append()、insert()、setCharAt()等
- 构造:
- String:不可变字符串
- 比较:
equals()、equalsIgnoreCase()等 - 转化:
toString() - 连接:
+,实质为StringBuffer的多次append()操作
数组类型(array)¶
一维数组 <type> arrayName[]¶
- 初始化:
int intArray[],intArray = new int[15] - 引用:
arrayName[index],从0开始 - 拷贝
- 引用:
int[] a = {} int[]b = a - 值:
copyOf方法
- 引用:
- 排序:
Arrays.sort() - 遍历:for-each循环
for (variable: collection) {statement}依次处理数组中每个元素,而不必指定下标值
多维数组¶
“数组的数组”。在 Java 中,数组空间是非连续分配的,每一维大小不必相同。
二维数组 type arrayName[][] 或 type [][]arrayName
初始化(动态):
Java
arrayName = new type[arrayLength1][arrayLength2];
// 或
arrayName = new type[arrayLength1][];
arrayName[0] = new type[arrayLength2];
// ... //
arrayName[arrayLength1-1] = new type[arraylength2n];
复合数据类型数组,先为最高维分配引用空间,再顺次分配低维空间。必须为每个数据元素单独分配空间。
运算符和表达式¶
运算符¶
- 算术运算符:
+、-、*、/、%、++、-- - 关系运算符:
>、<、>=、<=、==、!= - 逻辑运算符:
&&、||、! - 位运算符:
&、|、^、~、<<、>>、>>> - 赋值运算符:
=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=、>>>= - 条件运算符:
?: -
其他
- 分量
. - 下标
[] - 实例
instance of - 内存分配
new - 方法调用
() - 强制类型转换
(type)
...
- 分量
表达式¶
运算符按优先顺序从高到低结合,同级运算符从左向右结合
数学函数 java.lang.Math,若 import static java.lang.Math.* 便可不加 Math. 调用其方法和常量
控制语句¶
块作用域¶
{} 其中的若干语句组成一个块,块中定义的变量只在块内有效。可嵌套,但不可同时在其中声明同名变量。
分支语句¶
if-elseswitch-case
循环语句¶
whiledo-whilefor
跳转语句¶
breakcontinuereturn
例外处理语句¶
try-catch-finallythrow抛出例外对象
简单输入输出¶
- 读取输入
- 需要引入
java.util.*包 Scanner类- 构造:
Scanner sc = new Scanner(System.in) - 方法:
next()、nextInt()、nextDouble()等
- 构造:
- 需要引入
- 格式化输出
System.out.print()System.out.println():打印完一行后换行System.out.printf():C 风格格式化输出