【面试题解析】-- 20200313Java软件开发工程师面试题解析

1. ArrayList与LinkedList之间有什么区别?

ArrayList与LinkedList都实现了List接口,ArrayList的底层其实质上就是一个数组,ArrayList可以说是数组的加强版,而LinkedList底层是由一个双向链表组成。ArrayList元素查找的效率比较高,而LinkedList插入、删除元素的效率较高。

2. 什么情况下使用ArrayList是可能发生线程安全问题的?

使用ArrayList作为一个共享变量的时候是有可能出现线程安全问题的,因为ArrayList的底层操作没有进行加锁,但是如果是将ArrayList作为局部变量使用的话则不会出现该问题。

3. 你如何优化SQL执行效率?

可以从以下四个方面入手:

  1. 在查询中,避免使用*号,而是应当把需要查询的字段写全。
  2. 可以调整form表名顺序,选择最有效率的顺序。
  3. 调整where条件的顺序,将那些可以过滤掉最大记录数的放在最后面,把表连接条件写在最前面。
  4. 可以适当的加入索引提高SQL的数据检索效率。

4. 你所了解的jsp内置对象有哪些?

request、response、cookie、session、application、page、pageContext

5. Error与Exception之间有何区别?

Error表示的是恢复起来不是不可能,只是恢复起来比较困难的一种错误类型,而Exception表示的是程序运行过程中发生的不正常状况,Exception可以通过异常处理语句捕获并处理。

发布了132 篇原创文章 · 获赞 55 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43199016/article/details/104854780