Java常见笔试题
Java常见笔试题:
1.String、StringBuffer和StringBuilder的区别
String 是不可变类的。即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。
StringBuffer 对象则代表一个字符序列可变的字符串,当一个StringBuffer对象被创建以后,可以用StringBuffer提供的append、insert、reverse等方法改变这个字符串的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString方法生成一个String对象
StringBuilder和StringBuffer功能相似,二者的构造器和方法也大致相同。所不同的是,StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,因此StringBuilder性能略高。
2.Servlet的生命周期
Servlet被实例化后,容器运行其init方法;
请求到达时运行其service方法,service方法自动派遣运行与请求对应的doGet或doPost方法;
当服务器决定将实例销毁的时候调用其destroy方法。
3.堆和栈有什么区别
栈是一种线性集合。按照先进后出的方式进行处理。
堆是栈的一个组成元素
4.运行时异常和一般异常有何异同
异常表示程序运行过程中可能出现的非正常状态。
运行时异常表示虚拟机的通常操作中可能遇到的异常。是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但并不要求必须声明抛出未被捕获的运行时异常。
常见的运行时异常比如:ArithmeticException、BufferOverFlowException、ClassCastException、IndexOutOfBoundsException、NullPointerException、IllegalArgumentException
5. error和Exception的区别
error 错误。一般是指虚拟机相关的问题。如内存溢出、虚拟机出错、系统崩溃,通常会导致应用程序中断。这种错误无法恢复也不可能被捕获。程序无法处理这种错误,需要在操作系统系统级被处理。
Exception是一种设计或实现的问题。可以在应用程序级被处理。
仅是学习笔记,难免出错,望不吝指点