- 数组
1.1 数组特征: 长度固定, 类型一样, 地址连续。
数组扩容的算法,一般是扩为 原来的1.5倍。
1.2 一般要注意的问题:
* 容量
* 长度/大小
* 使用前初始化大小(容量)
1.3 层次由低到高:
数组 ——> 链表 ——> 二叉树 ——> 树 ——> 森林 ——> 图 ——> 向量
1.4 内存的示意图
三个部分一般存放的东西:
栈: 对象的引用,基本数据类型(一个对象占 8 个字节)
堆: 对象, 引用型数据
静态区: 方法, 或者用 “static” 修饰的东西
1.5 变量: 内存中的一块空间。
//final修饰后,变量只能赋值一次
final int y = 1;
y = 2; //错误,
- 数据类型
引用型 <—— 数据类型 ——> 基本类型
2.1 运算顺序:
算数运算 参与 关系运算; 关系运算 参与 逻辑运算 ; 位运算 在 逻辑 运算 之前。
一般运算是由左到右。
下面给出
从右到左
的运算:
自增,自减:
三位运算:
(a > b) ? c : d
表示
先判断括号里a > b是否成立,如果 a > b 成立的话,取值为 c ,否则取值为 d 。
不存在 短路运算的两种例子:
a & b 如果 a 为 false, 会继续运算 b
a | b 如果 a 为 true, 会继续运算 b
2.2 位运算符
"<<" 左移一位表示除以2; "a << 3" 左移三位表示 除以 2^3 ,即就是除以8
">>" 反之同理与左移
补码原理: 按位取反 再加 1
以 -5 为例: byte a = - 5 ;
5 —> 0 0 0 0 0 1 0 1
!5 —> 1 1 1 1 1 0 1 0
!5 + 1 —> 1 1 1 1 1 0 1 1
1.1 数组特征: 长度固定, 类型一样, 地址连续。
数组扩容的算法,一般是扩为 原来的1.5倍。
1.2 一般要注意的问题:
* 容量
* 长度/大小
* 使用前初始化大小(容量)
1.3 层次由低到高:
数组 ——> 链表 ——> 二叉树 ——> 树 ——> 森林 ——> 图 ——> 向量
1.4 内存的示意图
三个部分一般存放的东西:
栈: 对象的引用,基本数据类型(一个对象占 8 个字节)
堆: 对象, 引用型数据
静态区: 方法, 或者用 “static” 修饰的东西
1.5 变量: 内存中的一块空间。
//final修饰后,变量只能赋值一次
final int y = 1;
y = 2; //错误,
引用型 <—— 数据类型 ——> 基本类型
三位运算: (a > b) ? c : d 表示
先判断括号里a > b是否成立,如果 a > b 成立的话,取值为 c ,否则取值为 d 。
a | b 如果 a 为 true, 会继续运算 b
2.2 位运算符
">>" 反之同理与左移
5 —> 0 0 0 0 0 1 0 1
!5 —> 1 1 1 1 1 0 1 0
!5 + 1 —> 1 1 1 1 1 0 1 1