一、Java常用类
答: awt类、io类、lang类、math类、nio类、sql类、text类、time类
二、HashTable和HashMap的区别?
转载 https://www.cnblogs.com/firepation/p/9448027.html
三、Servlet的生命周期,是否是线程安全?
1.生命周期:
转译:将JSP转译Servlet类,即转译Java源文件;
编译: 将转译后的Java源文件编译成.class字节码文件;
加载:加载.class字节码文件;
实例化:创建JSP对应的Servlet对象
初始化:调用_jspInit()方法初始化对象的属性
执行:调用_jspService()方法处理客户请求。
销毁:服务器关闭时销毁jsp的对象,调用_jspDistroy()清理占用资源。
注意:转译、编译、加载、实例化、初始化默认情况下发生在第一次访问页面时;
可以配置服务器启动时进行上述过程。
2.是否安全?
Servlet是单例的,且非线程安全
3.如何解决Servlet中非线程安全问题?
第一种:在Servlet中尽量减少成员变量的使用,尽量考虑使用局部变量;
第二种:在服务方法中使用同步语句块或将服务方法做成同步方法;
第三种:使用SingleThreadModel 接口。
四、Callable和Runable的区别?
1.Runnable没有返回值;Callable可以返回执行结果,是个泛型,和Future、FutureTask配合可以用来获取异步执行的结果
2.Callable接口的call()方法允许抛出异常;Runnable的run()方法异常只能在内部消化,不能往上继续抛
注:Callalbe接口支持返回执行结果,需要调用FutureTask.get()得到,此方法会阻塞主进程的继续往下执行,如果不调用不会阻塞。
五、集合的结构
六、数据库的相关知识
七、怎样在双向链表有A和C节点,在其中插入一个节B点,链表不会断开?
在双向链表的结点A和B之间插入结点P需要修改:
P的前驱,P的后继,A的后继,B的前驱