加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_盐城站长网 (https://www.0515zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

最新Java校招面试题及答案

发布时间:2020-12-25 00:39:22 所属栏目:运营 来源:网络整理
导读:副标题#e# 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编程(JUC 包) JVM 内存管理 Java 8 知识点 网络

10)还有一些问题,如 MySQL 和 SQL Server 用法上的区别、limit 关键字的使用等问题。

小结:数据库方面还是事务机制、隔离级别比较重要,当然了数据库索引是必考的问题。偶尔也会给你几个表,让你现场写 SQL 语句,主要考察 group by 和 having 等关键字。

(八)MVC 框架相关知识点

我在项目中使用的框架有 Spring MVC 和 MyBatis,所以在简历上只写了这两种框架,面试官主要针对这两种框架进行提问。以下问题供小伙伴们参考。

JavaWeb 开发经典的 3 层框架:Web 层、Service 层(业务逻辑层)和 Dao 层(数据访问层)

  • Web 层:包含 JSP 和 Servlet 等与 Web 相关的内容;

  • 业务层:只关心业务逻辑;

  • 数据层:封装了对数据库的访问细节。

Spring 知识点

1)Spring 的 IOC 和 AOP 有了解吗?

答:

  • IOC:控制反转,(解耦合)将对象间的依赖关系交给 Spring 容器,使用配置文件来创建所依赖的对象,由主动创建对象改为了被动方式;

  • AOP:面向切面编程,将功能代码从业务逻辑代码中分离出来。

2)AOP 的实现方式有哪几种?如何选择?(必考)

答:JDK 动态代理实现和 cglib 实现。

选择:

  1. 如果目标对象实现了接口,默认情况下会采用 JDK 的动态代理实现 AOP,也可以强制使用 cglib 实现 AOP;

  2. 如果目标对象没有实现接口,必须采用 cglib 库,Spring 会自动在 JDK 动态代理和 cglib 之间转换。

扩展:JDK 动态代理如何实现?(加分点)

答:JDK 动态代理,只能对实现了接口的类生成代理,而不是针对类,该目标类型实现的接口都将被代理。原理是通过在运行期间创建一个接口的实现类来完成对目标对象的代理。

  1. 定义一个实现接口 InvocationHandler 的类;

  2. 通过构造函数,注入被代理类;

  3. 实现 invoke( Object proxy,Method method,Object[] args)方法;

  4. 在主函数中获得被代理类的类加载器;

  5. 使用 Proxy.newProxyInstance( ) 产生一个代理对象;

  6. 通过代理对象调用各种方法。

解析:关于 IOC 和 AOP 的详细阐述,请各位参阅我的博客:Spring 核心 AOP(面向切面编程)总结,Spring 框架学习—控制反转(IOC)

3)Spring MVC 的核心控制器是什么?消息处理流程有哪些?

答:核心控制器为 DispatcherServlet。消息流程如下:

<img src="https://www.52php.cn/res/2019/03-16/23/fa0a33b96b08d7ffc6ded52cf4c2996a.jpg" alt="">

4)其他问题包括:重定向和转发的区别、动态代理和静态代理的区别等。

Mybatis 知识点

关于 MyBatis 主要考察占位符#和 $ 的区别,区别如下:

  1. 符号将传入的数据都当做一个字符串,会对自动传入的数据加一个双引号;

  2. $ 符号将传入的数据直接显示生成 SQL 中;

  3. 符号存在预编译的过程,,对问号赋值,防止 SQL 注入;

  4. $ 符号是直译的方式,一般用在 order by ${列名}语句中;

  5. (编辑:网站开发网_盐城站长网 )

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!