来深圳发展呢,开始了面试之旅,年底啦,可能机会并不多,本来自己也是个小菜鸟。听说学Java的女生很少,我就去碰碰运气啦。
2019年1月8号下午去哒
这次面试去了一家外包公司,人事还是比较和气哒,是个漂亮的小姐姐,没有笔试,就直接去所谓的经理那里啦。
大概问了我这几个问题
一、SpringMVC的执行流程?
1、客户端将请求提交给DispatcherServlet
2、DispatcherServlet查询一个或多个HanderMapping,找到处理请求的的Controller
3、DispatcherServlet将请求提交给Controller
4、Controller调用逻辑处理后,返回相应的ModelAndView
5、DispatcherServlet查询一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图
6、视图解析器渲染后返回到客户端
二、AOP原理
aop 面向切面编程 其底层原理就是动态代理,就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对已有方法进行增强。
三、SpringBoot好处
使用Java或Groovy开发基于Spring的应用程序非常容易。
减少了大量的开发时间并提高了生产力。避免了编写大量的样板代码,注释和XML配置。
Spring Boot应用程序与其Spring生态系统集成非常容易。
遵循“自用默认配置”方法,以减少开发工作量。提供嵌入式HTTP服务器,如Tomcat,Jetty等,以开发和测试Web应用程序非常容易。
提供了许多插件来开发和测试Spring启动应用程序非常容易使用构建工具,如Maven和Gradle。
提供了许多插件,以便与嵌入式和内存数据库工作非常容易。
四、项目中常用注解
@Autowired -自动装配
@Component -支持自动装配
@Service -Service层实现
@Repository - DAO层实现
@Controller -Web层实现
五、Shiro框架重要组件
1、Subject - 本质就是当前访问用户的抽象描述
2、SecurityManager - Shiro架构中的核心组件,通过它可以协调其他组件完成用户认证和授权
3、Realm - 定义了访问数据的方式,用来连接不同的数据源
六、Redis支持的数据类型
string 、 list 、 set 、zset 、hash
七、Linux常用命令,启动TomCat命令
ls - 查看目录中文件
pwd - 显示工作路径
yum - list - 列出当前系统中安装的所有包
yum clean all - 删除所有缓存的包和头文件
date - 显示日期
./startup.sh - 启动TomCat
八、Mybatis分页怎么实现
1、项目搭建完成后,引入pagehelper依赖
2、在Mybatis.xml里面配置拦截器插件
3、在mapper文件添加sql
4、dao添加对用方法(@Param)
5、Service添加分页查询方法,并实现实现类
九、SpringBoot怎么修改修改端口
在applicatoin.properties配置文件加入server.port = 修改的端口号
十、简单谈谈单例模式
单例模式是最Java中简单的设计模式之一,属于创建型模式。模式提供一个单一的类,该类负责自己创建对象,并提供唯一的一个访问方式
单例模式分为懒汉式和饿汉式,懒汉式在用到的时候才会去创建单例对象。饿汉式在程序启动被加载时,单例模式就已经被创建。
十一、HashMap和Hashtable区别
- HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口
- 主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高Hashtable
- HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
- 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是
十二、创建线程方式,有什么区别
第一种方式:使用Runnable接口创建线程
第二种方式:直接继承Thread类创建对象
使用Runnable接口创建线程
1.可以将CPU,代码和数据分开,形成清晰的模型
2.线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法
3.有利于保持程序的设计风格一致
直接继承Thread类创建对象
1.Thread子类无法再从其它类继承(java语言单继承)。
2.编写简单,run()方法的当前对象就是线程对象,可直接操作。
嗯嗯,记得就这些了,还有一些项目相关的问题就不描述了。问的还是比较基础的,可能不想怼我吧。