Day217,linux高级编程面试题

使用Jwt生成token字符串

*Jwt有几部分组成,分别为什么?

三部分组成,分别为:jwt头、有效载荷(用户信息)、签名哈希(防伪标志)

*你登录功能的实现流程是什么?

调用登录的接口,会返回一个token字符串,把token字符串放到cookie中,创建前端拦截器进行判断,如果cookie里包含token字符串,把token放到header中。调用接口会从header中取值到token,根据token值获取到用户信息,然后在页面中进行显示


- 微信扫码登录

*OAuth2是什么?

只是一种解决方法,按照一种规则,但是具体是什么规则,没有规定

他是一种方案,但不是一种协议

image-20210311170833600

*你是如何获取扫码人微信信息的?

扫码后,微信会返回两个值code和state;然后拿着这个code去请求微信的固定地址,获得两个值access_token访问凭证和openid每个微信的唯一表示;然后拿着这两个再去请求微信的一个固定地址获取到扫码人的信息

4、名师列表功能

5、名师详情功能

6、课程列表功能

  • 多条件查询分页列表功能

7、课程详情功能

  • 课程信息显示(包含基本信息、讲师信息、分类信息、大纲信息)

  • 判断课程是否需要购买

8、课程详细视频在线播放功能

阿里云视频点播、阿里云播放器

9、课程支付功能

  • 生成课程订单

  • 生成微信支付二维码

  • 微信最终支付

*你的微信支付功能的流程你说说?

如果课程是收费课程,点击立即购买,生成课程订单;点击订单页面中的去支付,生成微信支付二维码;使用微信区扫秒二维码实现支付;支付之后,每个3秒查询支付状态(是否支付成功),如果没有支付成功就等待,如果支付成功之后,修改订单状态,向支付表中添加记录


项目的技术点

================================================================

一、前后端分离开发


后端写接口,前端调后端接口得到数据并显示

二、项目使用【前端】技术


1、vue

  • 基本语法

  • 指令:

  • v-bind 简写

  • v-model

  • v-for

  • v-if

  • v-html

  • 生命周期:

  • created(),页面渲染之前

  • mounted(),页面渲染之后

  • 绑定事件:

-v-on 简写@

  • ES6规范,通过babel转成ES5,框架自带

2、Element-UI


3、Nodejs

Js运行环境,不需要浏览器直接运行代码,模拟服务器效果


4、NPM

包管理工具,类似Maven

  • npm命令

  • npm init初始化

  • npm install 依赖名


5、Babel

转码器,ES6转换ES5代码


6、前端模块化

通过一个页面或js去调用另外一个页面的js文件的方法

ES6语法不能在nodejs中直接使用,需要通过babel编译成ES5再执行


7、后台系统用vue-admin-templete

基于vue、Element-ui、9528端口


8、前台系统用Nuxt

基于vue、3000端口

服务器渲染技术


9、Echarts

图标工具

百度捐给aprch


*你能做全栈吗?

不要直接回答能或不能;

说:项目中有80%的后端都是我写的,前端都是cv的,对于前端技术有所了解


三、项目使用【后端】技术【1】


1、微服务架构

将项目拆分为独立的模块,每个模块都有其端口号,模块与模块之间没有关系,是通过远程调用实现

2、SpringBoot

*SpringBoot是什么东西?

SpringBoot本质就是spring,只是快速构建Spring工程的脚手架

  • 细节:

  • 启动类包扫描机制

从外往里扫,也可以设置扫描机制,通过@ComponentScan(包路径)

  • 配置类

  • SpringBoot配置文件类型

  • properties

  • yaml

  • 配置文件加载机制

  • 先bootstrap

  • 再properties或yaml

  • 再对应的环境如:dev、test、prod

3、SpringCloud

  • 是很多框架的总称,基于springboot实现

  • 组成的框架由:

  • eureka服务注册,nacos

  • OpenFeign服务调用

  • Hystrix熔断器

  • Gateway网关

  • Config配置中心,nacos

  • Bus消息总线,nacos

  • 项目中,使用阿里巴巴nacos,代替springcloud一些组件

  • Nacos

  • 注册中心

  • 配置中心

  • Feign

  • 服务调用,一个微服务调用另外一个微服务,实现远程调用

  • 熔断器

  • Gateway网关,之前是zuul

  • 版本

  • image-20210311182529496

4、MyBatisPlus

  • MyBatisPlus就是对MyBatis的增强,本身并没改变

  • 自动填充

  • 乐观锁

  • 逻辑删除

  • 代码生成器

5、EasyExcel

  • 阿里巴巴提供操作Excel工具,效率高,代码简洁

*为什么他效率高,代码简洁?

因为他封装了poi进行封装,采用SAX方法(一行一行操作)进行解析

Dom:一次将所有数据放进内存中来

  • 项目应用在添加课程分类,读取excel数据

三、项目使用【后端】技术【2】


1、SpringSecurity

  • 项目整合框架实现权限管理功能

  • 框架组成:

  • 认证(登录)

  • 授权(对用户授予权限)

  • 登录认证过程

*说一说SpringSecurity的登录认证过程?

image-20210311192138289

  • 代码执行过程

image-20210311192211455


2、Redis

  • 首页数据通过Redis做缓存

  • Redis数据类型:

  • Set

  • List

  • Hash

  • String

  • zset

*Redis做缓存,什么样的数据适合使用Redis做缓存?

经常访问,但不经常修改的数据;如主页


3、Nginx

  • 方向代理服务器

  • 请求转发、负载均衡、动静分离


4、OAuth2+JWT

  • 针对特定问题的解决方案

  • Jwt制定一种规则生成字符串,包括:三部分

  • JWT头

  • 有效载荷(用户信息)

  • 防伪标志


5、HttpClient

  • 模拟浏览器,请发请求响应的工具

  • 项目中应用场景:微信登录获取扫描人信息,微信支付查询支付状态


6、Cookie

  • 特点:

  • 客户端技术,存储在浏览器、客户端中

  • 每次发送请求,都会带着cookie

  • cookie有默认有效时长,默认关闭浏览器就不存在了,也可以设置时长,会话级别


7、微信登录

上面有讲了

8、微信支付

上面有讲了


小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

总结

我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。

这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。

大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:

希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!

、实战项目、讲解视频**

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-RXiWjilZ-1711045183079)]

总结

我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。

这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。

大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:

[外链图片转存中…(img-cb9LOj8M-1711045183079)]

[外链图片转存中…(img-hPAv9DS0-1711045183080)]

[外链图片转存中…(img-ajMdbL9V-1711045183080)]

希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值