目录
1.try-catch-finally中的finally的执行机制
1.try-catch-finally中的finally的执行机制
1.finally的执行先于try或catch中的return
2.无论是否出现异常,finally仍然会执行
3.finally中一般写入一定会执行的代码;如数据库的连接、输入输出流、数据库的释放
2.什么是Exception和Error
1.Java可抛出的结构有三种:编译时异常CheckedException、运行时异常RuntimeException、错误Error
2.编译时异常:Exception和除了运行异常外的Exception子类都属于编译时异常。Java编辑器会对其进行检查,要么使用throws抛出或使用try-catch进行处理,否则无法编译通过。
3.运行时异常:RuntimeException及其子类都被称为运行时异常。Java编辑器不会对其进行检查,是在运行时出现的异常。
4.错误:Error类及其子类都属于错误。和运行时异常一样,Java编辑器不会对其进行检查,当资源不足、约束失败或者程序无法继续执行的时候会产生错误。
3.Throw和Throws的区别
1.Throw:手段抛出一个异常;使用在方法内部
2.Throws:处理异常的一种方式;使用在方法的声明处
4.Error与Exception区别
1.error表示的是系统错误,无法使用程序来进行处理,比如内存溢出。
exception表示的是异常,异常能够通过程序来进行捕捉或者进行使用优化来避免,即当程序运行正常时不会出现异常情况。
5.Java中的I/O流是什么,分为几类
1.I/O流用于处理设备之间的数据传输,在Java中,数据的输入输出操作以流(stream)的方式进行。
2.流的分类:
按照流的单位不同:字符流、字节流
按照流的流向不同:输入流、输出流
按照流的角色不同:节点流、处理流
节点流:直接作用在文件上的流;处理流:包住节点流的流
6.I/O与NI/O
1.I/O:用于设置之间的数据传输,数据的输入输出以流的方式进行,是面向流进行的操作。
2.NI/O:1.4版本引入的一套新的I/O的API,数据的输入输出以块的方式进行,是面向缓冲区的操作。
NI/O是面向缓冲区的操作,因此能够更加高效地进行读写操作。
7.常用的I/O的类有哪些
抽象基类:InputStream OutputStream Reader Writer
文件流:FileInputStream FileOutputStream FileReader FileWriter
缓冲流:BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
8.字符流与字节流的区别
字符流:以字符为单位进行输入输出数据,按照两个字节16位传输
字节流:以字节为单位进行输入输出数据,按照8位传输
9.Java反射创建对象
1.Java中可以使用反射进行对象创建
//通过反射:Class类中的newInstance()方法
Class clazz = Person.class;
Person p = (Person) clazz.newInstance();
2.使用反射创建对象需要先查找类资源,然后使用类加载器创建,过程繁琐,效率没有new+构造器效率高
10.什么是类的加载过程
程序经过javac.exe后,会生成一个或多个字节码.class文件;然后使用java.exe对字节码文件进行解释运行,相当于将字节码文件加载到内存中,这个过程就叫做类的加载。并且加载到内存中的类,就叫做运行时类,也就是Java.lang.Class的一个实例。