实习面试总结

实习面试一

1.自我介绍
2.项目介绍
3.知道微服务吗?(什么是微服务?)

将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事

4.SpringBoot如何自动配置?

注@EnableAutoConfiguration, @Configuration, @ConditionalOnClass 是自动配置的核心
1.@EnableAutoConfiguration 给容器导入META-INF/spring.factories 里定义的自动配置类。
2.筛选有效的自动配置类。
3.每一个自动配置类结合对应的 xxxProperties.java 读取配置文件进行自动配置功能

5.讲一下Redis的主从复制,哨兵集群。

主从复制:
主从复制即将master中的数据即时、有效的复制到slave中
一个master可以拥有多个slave,一个slave只对应一个master

1.读写分离:master写、slave读,提高服务器的读写负载能力
2.负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数量,通过多个从节点分担数据读取负载,大大提高Redis服务器并发量与数据吞吐量
3.故障恢复:当master出现问题时,由slave提供服务,实现快速的故障恢复

哨兵集群:
1.集群监控:负责监控 redis master 和 slave 进程是否正常工作。
2.消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。
3.故障转移:如果 master node 挂掉了,会自动转移到 slave node 上。
4.配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址。

6.Java常用的MQ有哪些?
7.如何查询一条执行语句的情况?
8.SpringBoot打包后怎么样测试?
9.Redis变慢了怎么排查?
10.Docker和虚拟机的区别?

(1) 虚拟机是在一台物理机上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。
docker是开源的应用容器引擎,依然需要先在电脑上安装操作系统,然后安装Docker容器管理器。
(2) 虚拟机是在硬件级别进行虚拟化,而docker是在操作系统的层面虚拟化
(3 虚拟机实现了操作系统之间的隔离,docker只是进程之间的隔离,所以虚拟机的隔离级别更高,安全性更强
(4) docker的运行速度更快
(5) docker的文件要小的多,虚拟机要大

11.知道Maven吗?怎样安装和部署的?
12.Spring依赖注入要引入哪些包?
13.Spring、SpringBoot和SpringMVC的区别?

Spring是一个轻量级IOC和AOPJava开发框架,目的是解决企业级应用开发的复杂性,即简化Java开发。
Spring Boot 是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合

14.Inner Join与Left Join的区别?(内连接和左连接的区别?)

1.内连接
指的是要同时满足ON语句的条件才行。
2.外连接:分为左外连接和右外连接
左连接是 左边表作为主表,根据ON语句的条件查询,如果查询到则返回,没有查询到则返回null,

15.IOA和IC知道吗?

实习面试二

1.自我介绍
2.知道线程池吗?
3.SSM框架有哪些?

实习面试三

1.自我介绍?
2.说一下你的技术栈?
3.学校教的课程?
4.会Python和C吗?
5.HTML的组成?
6.JQuery的类选择器是怎样的?
7.使用SQL语句修改名字?
8.如何查询数据库中前一百条数据?(提醒:使用的关键字)
9.SpringBoot如何接收Json的数据?(使用的注解)
10.快速的搭建一个SpringBoot项目并且整合Mybatis?
11项目由哪些层组成?(dao层,controller层等)
12.前端的name或者ID在Controller用什么注解接收?(PathVariable的作用?)
13.LayUI的组成?
14.Vue的组成?(深入探讨停止,因为只看得懂)
15.Ajax的组成部分?
16.Get与Post的区别?

①get的url参数可见,post的url参数不可见
②get通过拼接url传达参数,post通过body传递参数
③get可以缓存,post不可用缓存
④get页面返回不产生影响,post页面返回,需要重新提交请求
⑤get通过url编码,post支持多种编码

17.知道Shiro吗?
18.项目部署到Linux系统上过吗?

实习面试四

1、自我介绍
2、讲一下第一个项目有什么表?
3、多对多表结构设计和使用场景?用几张表来设计?
4、怎样获取当前时间,精确到时分秒?
5、String和Integer之间相互转换?
6、单例模式怎样实现的?
7、Vue的生命周期?

实习面试五

1、自我介绍
2、项目介绍(挑一个模块)
3、数据库用的是什么?有用过什么数据库?
4、Redis存储的数据类型有哪些?
5、有哪些良好的编写代码习惯?
6、项目怎么分层的?都要什么用?
7、实体类有什么用?

实体类就是一个拥有Set和Get方法的类,也是 一个载体。数据库中表的设计差不多都是等于业务里面的一个类。一个表对应是一个实体类,表的字段对应实体类的属性。
前端向后端传递数据时可以定义一个实体类,然后将其对应的属性赋值,然后传到后台。这样就不需要一个一个属性赋值参数传过来,只要传一个实体类就好了。

8、数据库增删改查的语句讲一下?
9、Group By有什么用?
10、排序有什么用?
11、讲一下左连接和右连接?
12、讲一下内连接和外连接?
13、SSM和SpringBoot使用后的区别?
14、SpringSecurity有什么用?

Spring Security是针对Spring项目的安全框架, 也是Spring Boot底层安全模块默认的技术选型, 他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入spring-boot-starter-security模块, 进行少量的配置, 即可,实现强大的安全管理!

15、使用SpringSecurity实现了什么功能?
16、用户权限模块怎么设计的?
17、项目的登录功能怎么实现的?
18、什么是前后端分离?什么是前后端不分离?

1.前后端分离:将前端视图和后端数据进行分离,后端只需要提供接口(后端数据)给前端,前端提供的独立的视图系统,并且前后端分离项目在进行项目部署的时候可以分开,不仅开发效率提高了,而且一定上减少了程序的耦合。
2.前后端不分离:前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高

19、后端怎样返回JSON数据?
20、8个Java的基本数据类型?
21、它们对应的包装类是什么?

除了int和char以外,其它六个类的类名和基本数据类型一直
Int对应的是Integer
char对应的Character

22、包装类有什么作用?

Java中的八种基本数据类型不面向对象的,为了使用方便和解决这个不足,为每个基本数据类型设计了一个对应的类,方便对象的操作

23、什么是Java类?
24、什么是继承?
25、一个类可以继承多个父类吗?
26、什么是接口?
27、一个类怎么实现一个接口?
28、一个类可以实现多个接口吗?
29、Maven用来干什么的?

Maven是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型
Maven的作用:
项目构建:提供标准的、跨平台的自动化项目构建方式
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
统一开发结构:提供标准的、统一的项目结构

30、常用的开发工具是什么?
31、怎么Dug?
32、项目难以解决的地方是什么?怎么解决?

实习面试六

1.了解个人情况
2.多级菜单,在数据库中怎么设计的?
3.怎么做树形菜单?
4.前端怎么获取后端数据?
5.Maven是什么?
6.SpringAOP是什么?
7.数据库分组有什么用?
8.数据库都有什么关系?
9.怎么维护它们?
10.Lambda表达式是什么?

Lambda 表达式是一种匿名函数,没有声明的方法,也即没有访问修饰符、返回值声明和名字.
Lambda表达式本身就是一个接口的实现,只有一个接口函数需要被实现的接口类型,我们叫函数式接口.
Lambda表达式最直观的作用就是使得代码变得异常简洁。

实习面试七

1.最近做的一个项目?
2.项目中的分页怎么实现?
3.Mysql中分页用什么关键字?
4.分页的参数有什么用?
5.Redis有几种数据类型?
6.SpringMVC的核心控制器?

DispatcherServlet

7.Spring的核心有什么?(IOC和AOP)
8.IOC和AOP是什么?
9.IOC怎么实例化对象?

使用构造器实例化bean
使用静态工厂实例化bean
使用实例工厂实例化bean

10.Sevlet生命周期?
12.线程的生命周期?
13.转发和重定向有什么区别?

重定向的特点:
1.地址栏发生变化
2.重定向可以访问其他站点的资源
3.重定向是两次请求,不能使用request对象来共享数据
转发的特点:
1.转发地址栏路径不变
2.转发只能访问当前服务器下的资源
3.转发是一次请求,可以使用request对象来共享数据

14.String获取长度的方法?
15.Ajax有几种请求方式?

GET请求会向数据库发索取数据的请求,从而来获取信息
POST请求向服务器端发送数据的,但是该请求会改变数据。像数据库的insert操作一样,会创建新的内容。
PUT请求是向服务器端发送数据的,从而改变信息.像数据库的update操作一样,用来修改数据的内容,但是不会增加数据
DELETE用来删除某一个资源的,该请求就像数据库的delete操作。

17.内连接和外连接的区别?
18.分布式了解吗?

大任务划分为一个个小任务。一个或多个人完成同一任务中的不同部分。被分解后的小任务互相之间有独立性,节点之间只管接受和传递信息。

实习面试八

1.自我介绍
2.项目的分页怎么实现?
3.手机登录怎么实现?
4.清除缓存怎么做?(Redis清除缓存,设置过期时间)

redisTemplate.opsForValue().set(key,value,过期时间)

5.Mybatis是什么?用来做什么?有什么特点?

1.Mybatis是一个持久层框架,它对JDBC操作数据库的过程进行封装,使只需要关注sql本身。
2.原来使用JDBC操作数据库,需要手动的写代码去注册驱动等,Mybaits帮助我们把这些事情做了,我们只需要关注业务sql即可,这样可以提高开发效率。

特点:
1.基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理。
2.提供XML标签,支持编写动态SQL语句,与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接。

6.Spring的特点?
7.前端通过请求到后端,SpringMVC的执行流程?
8.List和Map的区别?

List:是存储单列数据的集合,存储的数据是有序并且是可以重复的,可以运行元素为null。
Map:存储双列数据的集合,通过键值对存储数据,存储 的数据是无序的,Key值唯一不能重复,value值可以重复

9.接口和抽象类的区别?
10.常用IO流有哪些?

按流向分类:输入流、输出流
按操作对象分类:字节流、字符流

字节流
字节输入流InputStream对文件中的内容进行读取
字节输出流OutputStream将字节写入文件

字符流
输入流Reader
输出流Writer

11.有几种创建线程的方式?

继承 Thread 类;
实现 Runnable 接口;
实现 Callable 接口;
使用 Executors 工具类创建线程池

13Redis有几种数据类型?
14.Mabatis和Mybatis-plus的区别?

1.Mybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。

MyBatis:
1.所有SQL语句全部自己写
2.手动解析实体关系映射转换为MyBatis内部对象注入容器

Mybatis Plus:
1.强大的条件构造器,满足各类使用需求
2.内置的Mapper,通用的Service,少量配置即可实现单表大部分CRUD操作
3.提供了基本的CRUD功能,连SQL语句都不需要编写
3.自动解析实体关系映射转换为MyBatis内部对象注入容器

15.Mybatis-plus的核心功能有哪些?

①强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
②支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
③内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
④分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
⑤内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
⑥内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

16.逻辑删除怎么实现?

逻辑删除 :数据库中没有被移除,而是通过一个变量来让它失效!
1、在数据表中增加一个 deleted 字段
实习面试总结_第1张图片
2、实体类中增加逻辑删除属性,使用@TableLogic注解
在这里插入图片描述
3.在Config配置中添加逻辑删除组件
实习面试总结_第2张图片

17.SpringCloud的五大组件?
18.服务调用的轮询算法怎么实现?

在config配置中LoadBalanced注解
实习面试总结_第3张图片

你可能感兴趣的:(面试,java,职场和发展)