一.基本数据类型
数据类型 | 范围 | 二进制位数 | 包装类 | 默认值 |
---|---|---|---|---|
byte | [-128,127] | 8位,有符号 | Byte | 0 |
short | [-32768,32767] | 16位,有符号 | Short | 0 |
int | [-2^31,2^31-1] | 32位,有符号 | Integer | 0 |
long | [-2^63,2^63-1] | 64位,有符号 | Long | 0L |
float | 单精度 | 32位 | Float | 0.0f |
double | 双精度 | 64位 | Double | 0.0d |
boolean | true or false | 1位 | false | |
char | [‘\u0000’,’\uFFFF’] | 16位,无符号 | Character | ‘\u0000’ |
包装类: https://zhuanlan.zhihu.com/p/65538963
自动类型转换
实线表示自动转换时不会造成数据丢失,虚线则可能会出现数据丢失问题。
二.修饰符
访问控制修饰符
修饰符 | 当前类 | 同一包内 | 子孙类(同一包) | 子孙类(不同包) | 其他包 |
---|---|---|---|---|---|
public | Y | Y | Y | Y | Y |
protected | Y | Y | Y | Y/N | N |
default | Y | Y | Y | N | N |
private | Y | N | N | N | N |
访问控制和继承
请注意以下方法继承的规则:
- 父类中声明为 public 的方法在子类中也必须为 public。
- 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
-
abstract 修饰符
抽象类
- 抽象类不能用来实例化对象
- 一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类
- 抽象类可以包含抽象方法和非抽象方法
抽象方法
synchronized
- 关键字声明的方法同一时间只能被一个线程访问
- transient
- 序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。
- volatile
三.常用类库
Math
Character
Arrays
StringBuffer 和 StringBuilder
| StringBuilder | 速度快,非线性安全 | | —- | —- | | StringBuffer | 速度慢,线性安全 |
日期类
Date
- SimpleDateFormat
- 格式化日期
- prase()转换String为Date | 字母 | 描述 | 示例 | | :—- | :—- | :—- | | G | 纪元标记 | AD | | y | 四位年份 | 2001 | | M | 月份 | July or 07 | | d | 一个月的日期 | 10 | | h | A.M./P.M. (1~12)格式小时 | 12 | | H | 一天中的小时 (0~23) | 22 | | m | 分钟数 | 30 | | s | 秒数 | 55 | | S | 毫秒数 | 234 | | E | 星期几 | Tuesday | | D | 一年中的日子 | 360 | | F | 一个月中第几周的周几 | 2 (second Wed. in July) | | w | 一年中第几周 | 40 | | W | 一个月中第几周 | 1 | | a | A.M./P.M. 标记 | PM | | k | 一天中的小时(1~24) | 24 | | K | A.M./P.M. (0~11)格式小时 | 10 | | z | 时区 | Eastern Standard Time | | ‘ | 文字定界符 | Delimiter | | “ | 单引号 | ` |
printf格式化日期
转 换 符 | 说 明 | 示 例 |
---|---|---|
c | 包括全部日期和时间信息 | 星期六 十月 27 14:21:20 CST 2007 |
F | “年-月-日”格式 | 2007-10-27 |
D | “月/日/年”格式 | 10/27/07 |
r | “HH:MM:SS PM”格式(12时制) | 02:25:51 下午 |
T | “HH:MM:SS”格式(24时制) | 14:28:16 |
R | “HH:MM”格式(24时制) | 14:28 |