1.JAVA基本类型
整型:Byte(8位) short(16位) int(32) long(64)
浮点型: double(64) float(32)
布尔:Boolean(1)
字符:char(16)
类型转换:
同类型,高位接地位,低位接高位时要数据类型转换
不同类型:由高精度接收低精度
2.数组
用于存储一组相同数据类型的元素
初始化 :
1.静态初始化 : int[] x = {};
2.动态初始化 : int[] x = new int[10];
特性
1. 长度固定
2. 类型分为 原始类型 和 引用类型两大类
3.类和对象
1. 类:一类具有相同属性或特征(方法)的事或物的集合
对象:一堆中的某一个
内部:构造方法 析构函数 属性 程序块
2. 类和类之间的关系
a) 聚合 : 在另一个类中做属性
b) 依赖 : 在另一个类中的方法中做参数
c) 聚集 : 以集合的形式存在另一个类中的属性
4.final static
final:
修饰类:不能被继承
修饰变量: 常量
修饰方法: 不能被重写
Static
1.类:通过类名.属性或方法 静态元素不会跟着对象变化
2. 静态方法中不能使用费静态属性和方法
3. 生命周期(GC garbage collection 垃圾回收机制 栈 递归 堆)
当对内存元素没有任何引用指向时既可以被回收
Protected void finalize(){}
静态元素永远不会被回收
非静态元素引用如果超过一定时间未被使用则会被回收
5.单例模式
三要素
1. 构造方法私有
2. 私有 静态 属性作为当前类的一个对象
3. 提供一个共有的方法用于获取当前类的对象
优点:
节省内存
缺点:
定义多了也会占用内存
例:
public class SingleTon{
private static SingleTon singleTon = new SingleTon();
private SingleTon(){}
public static SingleTon getInstance(){
return singleTon;
}
}
6.类的加载顺序
属性(一般属性,静态属性)
程序块(一般快 静态块)
构造方法
加载 和初始化(赋值)
1. 加载静态属性
2. 加载静态块
3. 非静态属性
4. 非静态属性
5. 构造方法
继承关系的加载顺序
1. 父类中的静态属性
2. 父类中的静态块
3. 子类中的静态属性
4. 子类中的静态块
5. 父类中的非静态属性
6. 父类中的非静态块
7. 父类中的构造方法
8. 子类中的非静态属性
9. 子类中的非静态块
10. 子类的构造方法
7.字符串
字符串特性 不可变性
1.一个字符串空间以后就不可发生变更
2.一个字符串值一旦被声明,则不会再次声明第二回
String下常用类:
char charAt(int index)
返回指定索引处的 char 值。
int codePointAt(int index)
返回指定索引处的字符(Unicode 代码点)。
int codePointBefore(int index)
返回指定索引之前的字符(Unicode 代码点)。
int codePointCount(int beginIndex, int endIndex)
返回此 String 的指定文本范围中的 Unicode 代码点数。
int compareTo(String anotherString)
按字典顺序比较两个字符串。
boolean contains(CharSequence s)
当且仅当此字符串包含 char 值的指定序列时,才返回 true。
boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结束。
int indexOf(String str)
返回第一次出现的指定子字符串在此字符串中的索引。
String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。
String[] split(String regex)
根据给定的正则表达式的匹配来拆分此字符串。
String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
StringBuffer可变 线程安全类
StringBuilder 可变 非线程安全类
8.接口 、 抽象类
抽象
abstract
特性:
1. 不能创建对象(不能 new)
2. 可以有一般属性
3. 可以有一般方法
4. 可以有抽象方法
5. 可以有构造方法
6. 抽象类可以有抽象方法,具体类不能有抽象方法
接口
Interface implements
特性:
1. 不能创建对象
2. 可以声明静态常量 不能声明一般属性
3. 不能有一般方法
4. 所有元素的修饰符默认为public
5. 不能有构造方法
9.多态
父类引用指向子类对象
调用的方法是父类下的
实际执行的是子类中重写的方法
10集合
Collection extends Iterable
List extends Collection有序可重复
1.ArrayList extends AbstractList
非线程安全
扩增 (old*3)/2+1
2.LinkedList extends AbstractSequentialList
链表
3.Vector extends AbstractList
线程安全类
Set extends Collection 无需无重复
1.HashSetextends AbstractSet
2.TreeSetextends AbstractSet
Map
1.HashMap extends AbstracMap
扩增 两倍
初始因子0.75
2.TreeMap extends AbstracMap
实现Comparable接口 重写compareTo(Object o)方法
//重写依据?
public boolean equals(Object obj){
if (obj == this){
return true;
}
if (obj instanceof Student){
Student stu = (Student)obj;
if (this.id.equals(stu.id) ){ //具体条件
return true;
}
}
return false;
}
3.HashTable extends Dictionary
11.异常处理
错误 : Error(StackOverflowError,OutOfMerryError)
异常 : Exception
认为规定的一种不正常现象
ArithmeticException 数学异常
Infinity无穷大
NullpointerException 空指针异常
对象没有赋值,还要调用旗下的方法或属性等
一般在输出时遇到这种现象
ClassCastException 造型异常
要造型类型和他原本真实类型不相符
ArrayIndexOutOfBoundsException 数组超出索引
取的索引超出了数组最大索引限定
NumberFormatException 数字格式化异常
try{
}catch(Exception e){
}finally{
}
Throw Exception