Java面试题 No.1 入门简单的一些看看

一、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()方法的当前对象就是线程对象,可直接操作。

上一篇:详细解读 DispatcherServlet 初始化过程(带时序图)


下一篇:关于Git和Svn的区别