基本数据类型
byte 1字节
short 2字节
int 4字节
long 8字节 0L
float 4字节 0.0f
double 8字节
boolean 1字节
char 2字节 ‘\u0000’
变量类型
局部变量:方法,语句块中定义的变量,作用域方法内,使用前必须初始化。
成员变量:类中,方法外的变量,作用域整个类。
静态变量:类中,方法之外,用static修饰,作用域整个类,在运行期间只有一个副本。
传参时,基本类型的参数采用值传递,方法内修改变量值不会影响方法外对应的变量。
引用类型的参数采用引用传递,方法内修改变量的值会影响方法外的变量。
修饰符
访问修饰符和非访问修饰符
访问修饰符:
public,protect,default(不写的默认值),private
非访问修饰符
static:静态方法和静态变量。
final:变量被修饰后不能被重新赋值,方法被修饰后可以被继承,但不能被重写。
abstract:修饰的类不能被实例化,abstract和final不能同时存在。修饰的方法必须被子类重写。
synchronized:修饰的方法在同一时间只能被一个线程访问。
transient:序列化的对象会跳过被修饰的指定变量。
volatile:被修饰的对象每次被读取时会
String
String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上。
.length()返回字符串长度
使用+或者.concat()连接字符串
StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuffer 线程安全。
数组
声明并创建一个数组
dataType[] arrayRefVar = new dataType[arraySize];
数组的长度 .length 变量
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的:
- 给数组赋值:通过 fill 方法。
- 对数组排序:通过 sort 方法,按升序。 比较数组:通过 equals
- 方法比较数组中元素值是否相等。
- 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
数据结构
主要结构包括:
- 枚举
- 位集合
- 向量
- 栈
- 字典
- 哈希表
- 属性
- 集合 collection
有很多是传统的遗留,已经不太常用。
字典,向量,栈,属性这些数据结构缺少核心,统一的主题。
collection的设计满足:高性能;不同类型的集合具有高度互操作性;扩展和适应要简单。
集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:
-
接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map
等。之所以定义多个接口,是为了以不同的方式操作集合对象 -
实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。
-
算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序,这些算法实现了多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
ArrayList
add(item) 增加一个元素
set(index, item)修改指定位置的元素
remove(index)删除指定位置的元素
size()返回数组长度
sort()排序数组
LinkedList
和ArrayList的使用方法一样,只不过建议的使用场景不同,类似于链表和数组的场景区别
HashSet
基于HashMap实现;允许null;无序;线程不安全;实现Set接口
remove(item)根据元素值删除元素
HashMap
put(key, value)添加键值对
get(key)访问键值对
remove(key)删除键值对