首页 > 代码库 > Java基础

Java基础

Java基础

1 语言元素

1.1 关键字

有特殊含义的单词,不能被用作标识符(全小写)

  • abstract --- 定义抽象类或者抽象方法
  • assert --- 断言(*)
  • boolean --- 定义布尔类型的关键字
  • byte --- 定义字节类型(最小的整型)的关键字
  • break --- 终止循环
  • catch --- 捕获异常
  • continue --- 让循环进入下一趟循环
  • char --- 定义字符型的关键字
  • class --- 定义类的关键字
  • case --- 用于switch-case-default多分支结构的关键字(定义一个分支(等值判断),通常每个分支后会有一个break)
  • default --- 用于switch-case-default多分支结构的关键字(之前的case都没有匹配上就会执行default中的代码)
  • double --- 定义双精度类型的关键字
  • do --- 构造do-while循环的关键字
  • else --- 构造if-else分支结构的关键字
  • enum --- 定义枚举类型的关键字(符号常量) (*)
  • extends --- 继承的关键字
  • final --- 三种用法:a. 定义常量;b. 定义终结类;c.定义终结方法
  • finally --- 定义总是执行代码(通常跟在try-catch之后,释放外部资源)
  • float --- 定义单精度浮点型的关键字
  • for --- 构造for循环的关键字
  • if --- 构造if-else分支结构的关键字
  • int --- 定义整型的关键字
  • implements --- 用于实现接口的关键字
  • instanceof --- 用于RTTI(运行时类型识别)的关键字
  • import --- 导入包的关键字
  • interface --- 定义接口的关键字(约定、能力、角色)
  • long --- 定义长整型的关键字
  • new --- 创建对象的关键字
  • native --- 声明本地方法的关键字(由C/C++编写的方法)
  • package --- 定义包的关键字(管理类、解决名字冲突问题)
  • public --- 访问修饰符(公开)
  • protected --- 访问修饰符(受保护:对子类相当于公开,对不在同一个包下的其他类相当于私有)
  • private --- 访问修饰符(私有)
  • return --- 让方法返回的关键字
  • static --- 静态修饰符(静态方法、静态成员、静态初始化块、静态内部类)
  • strictfp --- 定义严格浮点运算的关键字
  • super --- 代表父类对象引用的关键字(可以调用父类构造器、调用父类方法、访问父类成员)
  • synchronized --- 同步
  • switch --- 用于switch-case-default多分支结构的关键字(switch接受的表达式可以是byte、short、int、char,1.5可以接受enum、1.7可以接受String)
  • short --- 定义短整型的关键字
  • this --- 表示当前对象引用的关键字
  • transient --- 表示不需要序列化的关键字
  • throw --- 抛出异常对象
  • throws --- 在定义方法时声明方法调用可能引发的异常
  • try --- 将可能出异常状况的代码保护起来
  • void --- 没有返回值
  • volatile --- 防止编译器错误优化假设的关键字
  • while --- 构造do-while循环的关键字 / 构造while循环的关键
  • goto --- 跳转(不能用,保留字)
  • const --- 常量(不能用,保留字)

 

1.2 标识符

标识符的命名规则

1. 字母、数字、下划线和$,数字不能开头

2. 大小写敏感

3. 不能跟关键字冲突

 

见名知意

变量(variable)和方法(method)命名:驼峰标识(Camel Notation)第一个单词小写以后每个单词首字母大写

类(class)命名:帕斯卡标识(Pascal Notation)每个单词首字母大写

常量(constant)命名:全大写字母,多个单词之间用下划线分隔

1.3 运算符

+ - * / % 算术运算

= += -= *= 赋值运算

() 类型转换/改变优先级

[] 下标运算

?: 条件运算(三目运算/三元运算)

&& 短路与 || 短路或 短路运算

& 逻辑与 | 逻辑或

!逻辑变反

> < >= <= == != 关系运算

instanceof 类型识别运算 new 创建对象运算

++ -- 自增/自减运算

& | ^ ~ >> << >>> 位运算

+ 字符串连接

+ - 正负号运算

. 访问成员运算

, 逗号运算

1.3.1 优先级

1.3.2 结合性

从左向右计算还是从右向左计算

1.4 字面量

也被称为直接量

100、10L

1.5F、3.14、1.2E-3

‘x‘、‘\t‘、‘\u0xAB‘

"Hello, world"

String.class、int[].class

1.5 分隔符

逗号、分号、圆括号、方括号、花括号、冒号、空格

2 数据类型

2.1 基本数据类型

byte、short、int、long

float、double

char

boolean

2.2 引用类型

3 程序结构

3.1 顺序结构

3.2 分支结构

if-else

switch-case-default

 

3.3 循环结构

while循环

do-while循环

for循环

4 数组

数组的基本知识

数组是对象

数组可以是基本类型的数组,也可以是引用类型的数组

数组中元素的类型一致

通过数组的length属性可以获得元素的个数

可以通过下标运算[]访问数组元素,下标范围0到length-1

数组中的元素也可以是另一个数组,即多维数组

最常用的多维数组是二维数组,它类似于表格、矩阵或游戏中的地图、棋盘,有很多用途

 

数组的工具类Arrays

sort --- 排序

binarySearch --- 二分查找

copyOf --- 拷贝

 

和数组相关的两个算法

排序:简单排序算法(插入排序、选择排序、冒泡排序)和高级排序算法(快速排序、归并排序、堆排序)

查找:顺序查找和二分查找(折半查找)

4.1 一维数组

4.2 二维数组

4.3 Arrays工具类

5 字符串

5.1 String

不变字符串

 

String API

length --- 获取字符串长度

equals --- 比较字符串的内容

equalsIgnoreCase --- 忽略大小写比较字符串内容

indexOf / lastIndexOf --- 字符串模式匹配

substring --- 取子串

startsWith / endsWith --- 是否以某个字符串开头或结尾

trim --- 修剪左右两侧空白

charAt --- 取指定位置的字符

concat --- 字符串连接

toLowerCase / toUpperCase --- 字符串变小写/大写

5.2 StringBuilder

改变字符串的效率:StringBuilder > StringBuffer >> String

5.3 StringBuffer

StringBuffer API

length --- 获取字符串长度

append --- 向字符串追加内容

insert --- 在指定位置插入内容

delete --- 删除指定位置的内容

indexOf / lastIndexOf --- 字符串模式匹配

reverse --- 字符串倒转

replace --- 用给定的字符串替换指定的字符串

5.4 正则表达式

String支持正则表达式þ方法:

matches

replaceAll

replaceFirst

split

Pattern类compile方法创建一个正则表达式对象

 

正则表达式中的术语:

元字符 \d \s \w \b .

量词 {n,m}、*、+、?

脱字符 [^]

反义 \D \S \W

分组 () |

 

6 方法

6.1 方法的定义

6.1.1 修饰符

访问修饰符 public、private、protected

静态修饰符 static

抽象 abstract

本地 native

同步 synchronized

6.1.2 返回值

6.1.3 参数列表

6.1.4 异常声明

6.1.5 方法体

6.2 方法的调用

6.2.1 静态方法

6.2.2 实例方法

6.2.3 递归调用

6.3 重载

overload

在一个类中同名方法有不同的参数列表