其实学些java基础知识点是很重要的,只有将基础学好了,才能进行拓展实践,提高自己的相关技能,才可以胜任java岗位,那么今天我们就给大家分享一些java基础知识点面试题以及答案!
1.SpringMVC request接收设置是线程安全的吗?
是线程安全的,request、response 以及 requestContext 在使用时不需要进行同步。而根据 spring的默认规则,controller对于BeanFactory而言是单例的。即controller只有一个, controller 中的request等实例对象也只有一个。
2.Mybatis 如何防止 sql 注入?mybatis 拦截器了解过吗,应用场景是什么?
Mybatis使用#{}经过预编译的,是安全的,防止sql 注入。
Mybatis拦截器只能拦截四种类型的接口:Executor、StatementHandler、ParameterHandler和ResultSetHandler。这是在Mybatis的Configuration中写死了的,如果要支持拦截其他接口就需要我们重写Mybatis的Configuration。
Mybatis可以对这四个接口中所有的方法进行拦截。
Mybatis拦截器常常会被用来进行分页处理。
3.mvc的各个部分都有哪些技术来实现?如何实现的?
MVC是Model-View-Controller的简写。Model代表的是应用的业务逻辑(通过 JavaBean,EJB组件实现),View 是应用的表示面(由JSP页面产生),Controller是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
4.什么叫脏数据,什么叫脏读(Dirty Read)?
脏数据在临时更新(脏读)中产生。事务A更新了某个数据项X,但是由于某种原因,事务A出现了问题,于是要把A回滚。但是在回滚之前,另一个事务B读取了数据项X的值(A 更新后),A回滚了事务,数据项恢复了原值。事务B读取的就是数据项X的就是一个“临时”的值,就是脏数据。
脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
5.throws和throw有什么不同点?
throw和throws都是异常处理机制当中的关键字,throw是手动抛异常,throws是以声明的方式抛出异常,并且抛给调用者处理。
6.short s1 = 1; s1 = s1 + 1; 有错吗?short s1 = 1; s1 += 1 有错吗?
前者不正确,后者正确。
对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结果也是 int 型,需要强制转换类型才能赋值给 short 型。
而 short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当于 s1 = (short)(s1 + 1);其中有隐含的强制类型转换。
这些都是基础知识面试题,在面试中也是经常会考到的,因此大家一定要将基础知识打牢,这样在面对面试的时候,才会不慌不忙,顺利通关!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。
推荐阅读: