java面试基础和应用题(四)

162 阅读5分钟

28. 说说 == 和 equals() 方法区别?

答:== 和equals都是java中判断两个变量是否相等。如果判断的是两个基本类型的变量,并且二者都是数值类型,只要变量的值相等就返回true,两个引用变量只有他们指向同一个引用,==才返回true。equals方法用来判断是否与其他引用变量相等,两个引用变量指向同一个对象才返回true。重写equals 方法,相等条件由业务要求决定。

29. 说说java的异常处理机制?

答;异常处理机制让程序具有极好的容错性和健壮性。java异常机制分为异常处理try…catch…finally、抛出异常throw、throws、异常跟踪栈。try用于包裹业务代码,catch捕捉并处理某种类型的异常,finally用于回收异常。throws只能在方法签名中使用,可以声明抛出多个异常,表示当前方法不知道该处理这个异常。throw用于方法体内抛出的异常,throws用于方法声明中。执行throw一定抛出某种异常关于finally问题。

30. 说说springboot的理解它和spring的区别?

答:springboot和spring的关系:从本质上来说springboot就是spring,它能完成bean配置。springboot使用习惯优于配置的理念,让项目快速运行起来。但是springboot不提供spring的核心功能,作为spring的脚手架框架,快速的构建项目。预设第三方配置,开箱即用的目的。

springboot的主要功能:自动配置,起步依赖是特殊的maven依赖gradle依赖,端点监控

sprringboot的优点:对主流开发框架无配置集成,项目无需依赖外部servlet容器,提供运行时的应用监控,可以提高开发、部署效率。

31. 说说spring的理解?

答:spring框架包含了众多模块,比如:core, testing, data access, web servlet等。core是spring的核心模块提供IoC容器、AOP功能、数据绑定、类型转换等基础功能。loC和AOP是spring的核心,IoC是控制反转可以帮助我们维护对象和对象之间的依赖关系,降低对象的耦合度。DI依赖注入它是IoC的实现方式。实现依赖注入的关键是IoC容器,它的本质就是一个工厂。AOP是面向切面编程,是OOP的补充。它可以解决一批组件的共性需求(如权限检查,日志输出、事务管理)。在AOP思想下,我们将解决共性需求的代码独立出来,然后通过配置的方式声明这些代码应该放在什么地方、何时调用。

32. 说说spring的bean的生命周期?

答:bean的生命周期是bean的定义、bean的初始化、bean的生存期、bean的销毁4个部分。基本步骤:1)spring启动查找并加载需要被spring管理的bean,并进行bean的实例化。2)将bean引入和值注入到bean属性中。3)如果bean实现了BeanNameAware接口,spring将id传递给setBeanName方法。4)如果bean实现BeanFactoryAware接口,spring将调用set方法。5)bean实现ApplicationContext接口,spring调用set方法将bean的应用上下文传入进来。

33. 谈谈对MVC的理解?

答:MVC是一种设计模式。在这种模式下,软件被分为三层。即Model(模型)-View(视图)-Controller(控制器)Model代表的是数据,是指从现实世界中抽象出来的对象模型,是应用逻辑的反应,封装数据和对数据的操作,实际对数据进行处理。View代表的是用户界面,负责模型展示,一般就是用户所见的界面。Controller代表的是数据处理逻辑,是Model和  View的桥梁,将软件分层降低对象的耦合度,便于代码维护。负责视图和模型之间的交互,控制对用户的输入反应、响应方式和流程;将用户的请求转发到相应的模型上,模型的改变及时的反应到视图上。为了解耦以及代码可维护性,服务端开发一般会分为三层:表现层、业务层、数据访问层。在浏览器访问服务器,请求会先到达表现层以jsp+servlet+bean模式为例。bean就是一个模型,既可以作为数据模型封装数据也可以作为业务逻辑包含业务的逻辑操作。jsp作为视图层,为用户提供展示数据向控制器发出请求请求模型进行更新。servlet作为控制器,用来接收用户提交的请求,获取请求数据再转换为转换为业务模型的数据模型调用业务模型的业务方法,根据业务选择要返回的视图。spring MVC是当下最主流的模式,前端控制器是Dispatcherservlet接口实现类,映射处理器Handlermapping接口实现类,视图解析器ViewResolver接口实现类页面控制器controller接口实现类。

34. 说说springboot常用注解?

答:@springbootapplication: springboot项目的核心注解,用于开启自动配置。

@enableautoconfigration注解:启动spring程序上下文时进行自动配置。自动配置基于项目classpath中引入的类和已定义的bean来实现。

@import注解:是@enableautoconfigration的组成部分,也是自动配置功能的核心实现者。

@conditional注解: spring 4 版本引入的新特性根据是否满足指定条件决定是否进行bean的实例化及装配。