2019秋招java后端面试题

1.jsp九大内置对象

  1. request对象:表示来自客户端的请求
  2. response对象:表示对客户端的响应
  3. session对象:指的是客户端与服务器的一次会话
  4. out对象 :out对象是用来向客户端输出内容
  5. page对象:page对象指向当前JSP页面本身
  6. application对象:实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在
  7. pageContext对象:提供了对JSP页面内所有的对象及名字空间的访问,该对象主要用于访问JSP之间的共享数据。
  8. config对象:config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
  9. exception对象:是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象

2.过滤器、监听器、拦截器的区别

  1. 监听器(listener):
    监听器就是监听某个对象的的状态变化的组件
  2. 过滤器(filter):
    过滤器就是服务器启动的时候创建和初始化,当有请求访问时就会调用过滤器的doFilter方法,当关闭服务器的时候就会调用destroy方法销毁过滤器。
  3. 拦截器(interceptor):
    拦截器是在面向切面编程中应用的,基于JAVA的反射机制,在一个业务逻辑(某个方法) 前、后调用另一个方法。

3.I/O包含哪些类

Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的.

4.JDBC中statement和prepareStatement的区别

  1. preparestatement预编译,预编译指的是数据库的编译器,会对此sql语句提前编译。然后将预编译的结果缓存到数据库中,下次执行时替换参数直接执行编译过的语句。相当于动态sql
  2. statement是每次都需要数据库编译器编译的。

5.数据结构

  1. 数组
  2. 队列
  3. 链表
  4. 字典树(高效树形结构)
  5. 散列表(哈希表)

还有一些排序算法、查找算法。需要慢慢消化

6.Spring两大特性

  1. IOC控制反转,不是一种技术,而是一种思想,对象的生命周期不是由程序本身来决定,而是由容器来控制,所以称之为控制反转。就是将创建对象的权利交由Spring容器管理。解耦,便于维护。
  2. AOP就是面向切面编程,就是在原有业务的基础上增加一些重复的功能需求,比如将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性

7.Mybatis中#{}与${}的区别

  1. #{}是预编译处理,${}是字符串替换。
  2. Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
  3. Mybatis在处理 时 , 就 是 把 {}时,就是把 {}替换成变量的值。直接拼接到sql语句上
  4. 使用#{}可以有效的防止SQL注入,提高系统安全性。

8.Mybatis中Mapper接口与xml映射文件如何对应

  1. Mapper接口的全类名,就是映射文件中的命名空间namespace的值,
  2. 接口的方法名,就是映射文件中MappedStatement的id值,
  3. 接口方法内的参数,就是传递给sql的参数。
  4. Mapper接口是没有实现类的,当调用接口方法时,接口全类名+方法名拼接字符串作为key值,可唯一定位一个MappedStatement.

9.Shiro简介以及其核心

  1. Apache Shiro是一个强大且易用的Java安全框架,能够执行身份验证、授权、加密和会话管理等。
  2. Subject即“当前操作用户”。但是,在Shiro中,Subject这一概念并不是"帐户",而是与shrio交互的当前应用。
  3. SecurityManager是Shiro框架的核心,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
  4. Realm是安全数据源,其中包含认证和授权数据。

10.Redis简介

简单来说 redis 就是一个非关系型内存数据库,它通过key-value的方式进行存储。所以存写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。

持续更新中…

你可能感兴趣的:(2019秋招java后端面试题)