面试集锦

1.步骤

注册数据库驱动

建立数据库连接

创建一个Statement(声明)

执行SQL语句

处理结果集

关闭数据库连接

2.Thread和Runnable实现线程类的区别

继承Thread,线程代码存放在Thread子类的run方法中,

实现Runnable,线程代码存放在接口子类的run方法中

实现Runnable接口,适合多个相同代码的线程去处理同一个资源的情况,可以避免由于单继承的局限,增强了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。

3.什么是死锁

两个进程都在等待对方执行完毕才能继续往下执行的时候就会发生死锁,结果就是两个进程都陷入了无限的等待。

4.如若确保多个线程可以访问多个资源同时又不导致死锁

使用多线程的时候,一种非常简单的避免死锁的方式就是,指定获取锁的顺序,并强制线程按照指定的顺序获取锁,因此,如果所有的线程都以同样的顺序加锁和释放锁,就不会出现死锁。

5.readonly和disable区别

readonly只针对input(text/password)和textarea有效,disable对于所有的表单元素都有效,当表单使用disable后,我们将表单以post或get方式提交时,这个元素的值不会被传出去,readonly会将该值传过去。

6.Mybatis的#{}和${}

动态SQL是Mybatis强大的特性之一。这也是他由于其他框架的原因,Mybatis在对SQL语句预编译之前,会对SQL进行动态解析。

#{}相当于?,${}将传入的参数当做字符串解析

#{}很大程度防止SQL注入,${}不可以防止SQL注入

${}一般用于传入数据库对象,例如传入表名

7.什么是SpringMVC框架

SpringMVC是基于过滤器对servlet进行封装的一个框架,我们使用的时候就在web.xml文件中配置DispatcherServlet(前端控制器)类,SpringMVC工作时主要通过DispatcherServlet管理接收请求并处理。

8.@RequestMapping注解的作用

用于类上,表示类中的所有响应请求的方式都是以该地址作为父路径

用在方法上,需要在这个注解里写上要拦截的路径

你可能感兴趣的:(面试集锦)