异常
1,Throwable 异常和错误的父类。
2,Error和Exception。
3,Error常见的StackOverflowError,OutOfMemoryError,NoClassDefFoundError。
4,异常关键字
- Try 监听可能出现异常的代码块
- Catch 捕获异常
- throws 方法上声明异常
- throw 抛出一个异常对象
- finally 总要被执行,假如catch中有return,finally的执行顺序在return之前。
5,JVM如何处理异常
一个方法出现异常,会生成一个异常对象交给jvm,经过一系列操作,jvm通过调用栈找不到能解决异常的方法,最后抛出异常。
基础
1,final
类不可以继承
方法不可以被重写
final是引用不变,可以修改内存的变量,达到final改变的目的。
2,static
静态方法
类加载时候引用
类调用方法,其实对象也能调用。
还有一种神奇用法
public class Test(){
public static int top() return -1;
public static void main(String[] args){
Test test = null:
test.top();
}
}
3,jdk,jre,jvm
jdk 开发工具
jre 运行环境
jvm 虚拟机
jdk > Jre > 虚拟机
4,面向对象三大特性
继承,封装,多态
5,String是对象不是基本的数据结构。
6,修饰符default和protect的区别
default可以包内访问
protect可以包外子类访问
7,final,finally,finalize
final 不变的修饰符
finally 异常处理
finalize 回收线程
8,抽象类和接口的对比
所以java多继承可以通过实现接口来整。
9,在Java中定义一个不做事且没有参数的构造方法的作用
被子类继承时,要实现父类构造方法,如果没有这玩意,会编译错误。
10,equals和==的区别
==比较的是对象的内存是否一样,如果是基本数据类型则比较值。
equals也是比较对象,一般都会重写。
11,&和&&的区别
&一种按位与,一种要实现两边方法
&&只要左边false,右边不执行,||同样。
12,hashcode和equals
hashcode的是通过内存地址进行hash计算得到的,2的32次方。
但是可能会冲突。
所以
hashcode相等,equals不一定相等。
equals相等,hashcode一定相等。
13,反射
通过类获取他的属性和方法,通过对象能调用他的属性和方法。
14,自动装箱和自动拆箱。
基本数据类型和其对象的转换。
15,Integer的-128到127在缓冲池里,所以调用的时候内存地址都一样,不在这范围的值则不一样。
16,String
- 不是基本数据类型
- String不可变,但是可以用StringBuffer和StringBuilder进行修改。
- StringBuffer是线程安全的,加了同步锁,StringBuider不是。
- tring str=”i”与 String str=new String(“i”)一样吗?
不一样,因为内存的分配方式不一样。String str=”i”的方式,java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中。
17,基本数据结构
人傻了,和印象完全不一样emmmm