面试宝典的总结

Collection 与Collections的区别?

Collection是集合类的上级接口,继承与他有关的接口主要有List和Set

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作

 重载Overload 与重写Override的区别 


重载:在一个类中的现象:同一个类中,存在方法名相同,参数列表不同的方法
重写:是指建立了继承关系以后,子类对父类的方法不满意,可以重写,遵循两同两小一大原则
重载的意义:是为了外界调用方法时方便,不管传入什么样的参数,都可以匹配到对应的同名方法
重写的意义:在不修改源码的情况下,进行功能的修改与拓展(OCP原则:面向修改关闭,面向拓展开放)



3、try...异常 catch  finally 和try ..异常 catch,我要return一个值,那个会执行return?
假如在try  catch里面加一个throw,会return值吗?是既抛异常也有返回值,还是只有异常。
try  catch  resource

顺序 try catch return finally return(catch中的)

finally 中有return不执行

  1. 当Java程序执行try块、catch块遇到return语句时,当系统执行完return语句之后,并不会立即结束该方法,而是去寻找该异常处理流程中是否包含finally块,如果没有finally块,方法终止,返回相应的返回值。如果有finally块,系统立即开始执行finally块——只有当finally块执行完成后,系统才会再次跳回来根据return语句结束方法。如果finally块里使用了return语句来导致方法结束,则finally块已经结束了方法,系统不会跳回去执行try、catch块里的任何代码。
  2. 只返回异常。程序在catch中执行throw语句时并不会立即抛出异常,而是去寻找该异常处理流中是否包含finally块。如果没有finally块,程序立即抛出异常;如果有finally块,程序立即开始执行finally块——只有当finally块执行完成后,系统才会再次跳回来抛出异常。如果finally块里使用return语句来结束方法,系统将不会跳回catch块去抛出异常。

4、抽象类和接口

  1. 接口是一种用interface定义的类型,抽象类是一种用class定义的类型
  2. 接口中的方法都是抽象方法,还有默认方法与静态方法。抽象类中的方法不做限制
  3. 接口中的都是静态常量,抽象类中可以写普通的成员变量
  4. 接口没有构造方法,不可实例化,抽象类有构造方法,但是也不可以实例化
  5. 接口是先天设计的结果,抽象是后天重构的结果
  6. 接口可以多继承,抽象类只能单继承

数据库
1、事务,事务怎么提交,怎么应用,一张表能不能使用事务

事务是将一堆sql语句绑定在一起执行,sql中默认事务是开启的,也可以自己进行事务提交,先用

start开启事务,写完sql在手动提交,commit ,

当对数据库进行增删改的时候,会对数据造成破坏的时候,使用事务,可以,当有多条数据存在的时候。


2、索引是什么,在数据库中怎么查看索引的效率

索引是排好序的目录,可以快速进行数据检索 ,explain

  1. 1.把创建了索引的列的内容进行排序,
  2. 对排序结果生成倒排表
  3. 在倒排表内容上拼上数据地址链
  4. 先找到倒排表内容,取出数据链,从而拿到具体数据

3、左连接,右连接,内连接有什么区别

  • inner join 内连接,只保留两张表中完全匹配的结果集
  • left join会返回左表所有的行,即使在右表中没有匹配的记录
  • right join会返回右表所有的行,即使在左表中没有匹配的记录

4、左连接和内连接那个效率高

  • 如果inner join是等值连接,返回的行数比较少,所以性能相对会好一点
  • 同理,使用了左连接,左边表数据结果尽量小,条件尽量放到左边处理,意味着返回的行数可能比较少。这是mysql优化原则,就是小表驱动大表,小的数据集驱动大的数据集,从而让性能更优

spring框架
1、项目有几个,应用了什么技术


2、自己拿手的项目模块具体说一下
3、mybatis查询数据库的两种写法。以及写完SQL语句后还有干啥?


4、前端页面怎么调用后端,顺序是什么。
5、restful了解吗?说一说

1)每一个URI代表一种资源;

  (2)客户端和服务器之间,传递这种资源的某种表现层;

  (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

微服务
1、用过那些组件


2、分别介绍组件的作用
3、feign方式怎么调用,怎么实现的

  1. Feign应用过程分析(底层逻辑先了解):
  2. 1)通过 @EnableFeignCleints 注解告诉springcloud,启动 Feign Starter 组件。
  3. 2) Feign Starter 会在项目启动过程中注册全局配置,扫描包下所由@FeignClient注解描述的接口,然后由系统底层创建接口实现类(JDK代理类),并构建类的对象,然后交给spring管理(注册 IOC 容器)。
  4. 3) Feign接口被调用时,底层代理对象会将接口中的请求信息通过编码器创建 Request对象,基于此对象进行远程过程调用。
  5. 4) Feign客户端请求对象会经Ribbon进行负载均衡,挑选出一个健康的 Server 实例(instance)。
  6. 5) Feign客户端会携带 Request 调用远端服务并返回一个响应。
  7. 6) Feign客户端对象对Response信息进行解析然后返回客户端。
     

MVC工作原理
用户发送请求至前端控制器DispatcherServlet。

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet调用HandlerAdapter处理器适配器。

5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView。

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9、ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户。
 

4、讲讲redis,以及你怎么应用到项目中的。还有单点登录
前端
1、会什么技术,使用的组件是原生的还是别人写好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值