1.ArrayList和Array有什么区别?
答:ArrayList算是Array的加强版;
区别:(存储内容上的比较):Array数组可以包含基本类型和对象类型 ArrayList只能包含对象类
(空间大小的比较):Array大小是固定的,而ArrayList空间大小是动态增长的
(方法上比较):ArrayList作为Array的增强版,当然在方法也增加许多的新功能,列如:添加全部addAll();移除全部:removeAll();
2.& 和 && 的区别?
答:&:左侧如果为false,右侧还要继续进行比较
&&:左侧如果为false,右侧不会继续比较(短路运算符)
3.Spring MVC的运行原理?
答:客户端发出一个http请求给web服务器--web服务器解析http请求--匹配成功 dispatchServlet 的请求路径 --web将请求转为dispatchServlet--更具请求找到Handler,并且进行封装,并已逻辑视图返回给DispatcherServlet,再通过model解析并且返回给客户端.
4.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
答:会执行,在方法返回调用前执行,准确说在return中间执行
5.列出一些你常见的运行异常?
答:NullpointerException--空指针异常
ClassCastException--类型强制转化错误
IndexOutBoundsException--下标越界异常
6.GC是什么?为什么要有GC?
答:GC是垃圾回收机制,就是把一些不用内存或者不用的对象销毁后,释放空间.
7.String 和 StringBuffer的区别?
答:在速度上StringBuffer块与String;因为String对象是不可更改的;所以一但创建就要重新构造一个空间;而StringBuffer是不可更改;是追加在其后面,不会构建新的空间,所以速度上比String快.
8.Java中栈区和堆区的区别,说下Java的内存机制?
答:栈区放的一般都是存放基本类型变量和对象的引用变量;二堆区存放的是new创建的对象和数组
9.静态变量和实例变量的区别?
答:静态变量需要static关键字来修饰,实例变量则不需要;
静态变量属于类;实例对象属于对象;
实例变量需要创建对象才能使用;静态变量可以直接使用类来引用;
10.什么是值传递?什么是引用传递?
答:值传递;只会传给一个副本;所以原始对象不会受影响;
引用传递:不会创建副本,会新建一个堆栈,会改变传递的内容;