当前位置:   article > 正文

JAVA项目【仿牛客网面试总结】【分章节】_仿牛客网面试笔记

仿牛客网面试笔记

1

什么是Maven?

一个大型的 Web 项目,需要依赖很多第三方类库,不同 Jar 包之间还有复杂的依赖关系;这时,Maven 出现了,我们只需要告诉它需要的 Jar 包,它会帮我们自动下载并管理它们。
Maven就是这样一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。

Maven的核心思想?

约定大于配置。Maven会约定一些规则,不能违反,比如项目的目录结构。

Spring

什么是Spring?

Spring是一个轻量级的容器(框架),如果加上定语:
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。

Spring全家桶的组成?

Spring Framework:Spring的核心;
Spring Boot:构建项目,可以用它快速开发单个微服务;
Spring Cloud:协调微服务,可以将一个大项目拆分成多个小项目分而治之;
Spring Cloud Data Flow:连接数据源,集成多个平台数据。
再深入到Spring Framework

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LQbN1ZYO-1685417610806)(C:\Users\DoubleC\Desktop\小白要找工作\images\image-20230530090328053.png)]

Spring由二十多个小模块组成,下面只列举这个项目中用到的技术栈。

  • Core Container(核心容器)
    • 控制反转(IoC)
  • Data Access(数据访问)
    • Spring MyBatis
  • Web(Web开发)
    • Spring MVC
  • Data Integration(数据集成)
    • Email:发邮件
    • Scheduling:定时任务
    • AMQP:消息队列
    • Security:安全控制

什么是IoC?

控制反转(IoC)是一种管理对象 Bean 的设计思想,它将手动创建 Bean 对象的权力交给 Spring 框架。这样我们在创建对象时就只需要添加相应的注解或配置文件,而不用考虑如何创建它。
它的优点:降低耦合,我们在将Bean对象交给容器管理时,需要对象的定义和配置文件,各对象之间的关系在配置文件中声明,不会直接产生耦合。
依赖注入(DI):是IoC的实现方式;
IoC容器(IoC Container):是依赖注入的关键。本质上是一个工厂,数据结构是Map。

IoC 容器控制了对象,主要控制了外部资源获取。反转则是由容器来帮忙创建及注入依赖对象

有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活

对象Bean如何使用?

Bean常见的四种注解:
@Controller
@Repository
@Service
@Component
如何使用Bean:
使用依赖注入:@AutoWired

Spring MVC

为什么要引入Spring MVC?

在早期 Web 开发中,控制层、业务层和数据访问层均交给 JSP 或 Java Bean 处理,这样做的弊端:

  • JSP和Java Bean严重耦合;Java和Html耦合;
  • 技术人员除了需要 Java 知识,还需要前端技术栈才可以工作;
  • 前端依赖后端,后端依赖前端,工作效率很低;
  • 代码复用性差;

什么是Spring MVC?

  • M 代表模型(Model):模型就是数据,如:dao , bean
  • V 代表视图(View):视图用于展示数据,如:网页,JSP
  • C 代表控制器(Controller):控制器用于接收用户请求,将不同的数据展现在不同的视图上。

Spring MVC的架构?

MVC 三者都属于该表现层。(controller、service、dao)
补充一个小知识点:模板引擎Thymeleaf:用于生成动态Html。

项目开发顺序!

了解了MVC的基本原理,大概的开发顺序就跃然纸上。
开发顺序与调用顺序相反,这个很好理解,因为后面的依赖前面的。
Dao -> Service -> Controller

  • entity:开发属性名;
  • Dao:写接口,定义方法头;
  • Mapper:写配置文件.xml,实现接口,Bean对象生成;
  • MapperTests:添加AutoWired注解注入Mapper,测试Bean;
  • service:添加Service注解,还要添加AutoWired注解注入Mapper,开发业务代码,根据不同逻辑返回值,将返回值交给controller;
  • controller:添加Controller注解,同样要注入Mapper,根据service传过来的不同返回值处理请求,将查询到的数据通过model传给模板;
  • .html:模板就是html文件,将数据渲染为视图View展示给用户。

Spring Boot

什么是Spring Boot?

一个Java Web的开发框架,和Spring MVC类似。但其实Spring Boot也不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架
演化过程:J2EE -> Spring -> Spring Boot

Spring Boot的核心思想?
约定大于配置。默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。

Spring Boot的优势?

  • 为所有Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求
  • 调试技巧

响应状态码有哪些?

  • 2开头:成功响应;
  • 3开头:重定向,向浏览器返回需要再次访问的地址,浏览器再次访问。重定向的作用:使用一种低耦合的方式实现功能的跳转;
  • 4开头:客户端响应失败;
  • 5开头:服务器已经接收请求,但响应失败

如何调试?

先打印日志,分析;
如果还是不行,根据响应状态码定位是客户端还是服务端的问题,确定之后打断点Debug。

Git

  • commit、push、pull是什么意思?
  • commit:提交到本地数据库;
  • push:同步到远程数据库;
  • pull:将服务器的代码拉取到本地;
  • update:pull时如果发现代码冲突,会弹出一个解决冲突的窗口,在这里解决;

Git 回退的三种类型?

  • mixed:为默认值,等同于git reset。将文件回退到工作区,此时会保留工作区中的文件,但会丢弃暂存区中的文件;
  • soft:将文件回退到暂存区,此时会保留工作区和暂存区中的文件;
  • hard:将文件回退到修改前,此时会丢弃工作区和暂存区中的文件;

2

注册

如何实现注册功能?

  1. 将注册信息发给服务器;
  2. 服务器发送邮件给注册时的邮箱;
  3. 用户点击激活链接完成注册。

会话管理

HTTP协议的特点?

HTTP是无状态的:一个浏览器向一个服务器发送的请求都是独立的,服务器记不住浏览器的状态;使用Cookies可以创建有状态的会话。

解法一:Cookies

服务器发送给浏览器并保存在本地的一小块数据,浏览器下一次向同一服务器发送请求时携带它给服务器,服务器根据Cookies迅速查找,找到该用户的活动记录。
在这里插入图片描述

解法二:Session

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/774654
推荐阅读
相关标签
  

闽ICP备14008679号