Day217,2024年最新阿里java开发面试解答难吗

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

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

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

三、项目使用【后端】技术【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、微信支付

上面有讲了


9、阿里云OSS

  • 文件存储

  • 添加讲师,上次讲师头像


10、阿里云视频点播

  • 视频上传、视频删除、视频播放

  • 整合阿里云视频播放器播放

  • 使用视频播放凭证播放


11、阿里云短信服务

  • 注册时,发送手机验证码,存储到redis中校验

12、Git

  • 代码提交到远程的Git仓库中

13、Docker+Jenkins

  • 手动打包

  • idea工具打包

  • 自动化部署过程


项目遇到的问题

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

1、前端问题—路由切换问题


  • 多次路由跳转到同一个页面,created()只执行一次

  • 解决方案:通过vue监听机制解决

image-20210311194336555

2、前端问题—ES6模块化运行问题


  • 使用Babel把ES6代码转换为ES5的代码运行

3、MyBatisPlus生成19位id值问题


  • mp生成的ip值为19位,js处理数据类型值时,只处理16位

  • 解决方案:将Long改为String类型

4、跨域问题


  • 访问协议+ip地址+端口号,三者有任何一个不一样,就会产生跨域问题

  • 解决方案:

  • 在controller添加注解@CrossOrigin

  • 通过Gateway网关解决,写一个配置类

  • 上面只能使用一个,不然会失效

5、413问题


  • 上传视频时,nginx有上传视频大小限制,如果超过,就会出现413错误

  • 413描述:请求体过大

  • 解决方案:在Nginx里配置客户端提交文件大小

  • 响应状态码:413、跨域403、重定向302

6、Maven加载问题


  • Maven加载项目时,不会加载src-java文件夹里面的xml类型文件

  • 解决方案:

  • 1、复制xml文件到target目录

  • 2、在maven中配置,与properties配置文件中指定xml文件夹


项目面试总结

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

1、项目描述


image-20210311195929594

image-20210311200518805

image-20210311200459245

2、这是一个项目还是一个产品


是一个产品;项目是从0开始搭建的

3、测试要求


首页和视频详情页qps单机qps要求 2000+

经常用每秒查询率来衡量域名系统服务器的机器的性能,其即为QPS

QPS = 并发量 / 平均响应时间

4、企业中的项目(产品)开发流程


image-20210311202008190

5、系统中都有那些角色?数据库是怎么设计的?


前台:会员(学员)

后台:系统管理员、运营人员

后台分库,每个微服务一个独立的数据库,使用了分布式id生成器

6、视频点播是怎么实现的(流媒体你们是怎么实现的)


我们直接接入了阿里云的云视频点播。云平台上的功能包括视频上传、转码、加密、智能审核、监控统计等。

还包括视频播放功能,阿里云还提供了一个视频播放器。

7、前后端联调经常遇到的问题:


1、请求方式post、get

2、json、x-wwww-form-urlencoded混乱的错误

3、后台必要的参数,前端省略了

4、数据类型不匹配

5、空指针异常

6、分布式系统中分布式id生成器生成的id 长度过大(19个字符长度的整数),js无法解析(js智能解析16个长度:2的53次幂)id策略改成 ID_WORKER_STR

8、前后端分离项目中的跨域问题是如何解决的


后端服务器配置:我们的项目中是通过Spring注解解决跨域的 @CrossOrigin

也可以使用nginx反向代理、httpClient、网关

9、说说你做了哪个部分、遇到了什么问题、怎么解决的


问题1:

分布式id生成器在前端无法处理,总是在后三位进行四舍五入。

分布式id生成器生成的id是19个字符的长度,前端javascript脚本对整数的处理能力只有2的53次方,也就是最多只能处理16个字符解决的方案是把id在程序中设置成了字符串的性质

问题2:

项目迁移到Spring-Cloud的时候,经过网关时,前端传递的cookie后端一只获取不了,看了cloud中zuul的源码,发现向下游传递数据的时候,zull默认过滤了敏感信息,将cookie过滤掉了解决的方案是在配置文件中将请求头的过滤清除掉,使cookie可以向下游传递

问题3…

10、分布式系统的id生成策略


https://www.cnblogs.com/haoxinyue/p/5208136.html

11、项目组有多少人,人员如何组成?


不要太教条,说说人一任职务

12、分布式系统的CAP原理


CAP定理:

指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可同时获得。

一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(所有节点在同一时间的数据完全一致,越多节点,数据同步越耗时)

可用性(A):负载过大后,集群整体是否还能响应客户端的读写请求。(服务一直可用,而且是正常响应时间)

分区容错性(P):分区容错性,就是高可用性,一个节点崩了,并不影响其它的节点(100个节点,挂了几个,不影响服务,越多机器越好)

CA 满足的情况下,P不能满足的原因:

数据同步©需要时间,也要正常的时间内响应(A),那么机器数量就要少,所以P就不满足

CP 满足的情况下,A不能满足的原因:

数据同步©需要时间, 机器数量也多§,但是同步数据需要时间,所以不能再正常时间内响应,所以A就不满足AP 满足的情况下,C不能满足的原因:

机器数量也多§,正常的时间内响应(A),那么数据就不能及时同步到其他节点,所以C不满足注册中心选择的原则:

Zookeeper:CP设计,保证了一致性,集群搭建的时候,某个节点失效,则会进行选举行的leader,或者半数以上节点不可用,则无法提供服务,因此可用性没法满足Eureka:AP原则,无主从节点,一个节点挂了,自动切换其他节点可以使用,去中心化

结论:

分布式系统中P,肯定要满足,所以我们只能在一致性和可用性之间进行权衡

如果要求一致性,则选择zookeeper,如金融行业

如果要求可用性,则Eureka,如教育、电商系统

没有最好的选择,最好的选择是根据业务场景来进行架构设计

13、前端渲染和后端渲染有什么区别


前端渲染是返回 json 给前端,通过 javascript 将数据绑定到页面上

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

三面蚂蚁核心金融部,Java开发岗(缓存+一致性哈希+分布式)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


前端渲染是返回 json 给前端,通过 javascript 将数据绑定到页面上

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

[外链图片转存中…(img-hAONkmIJ-1713383358263)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-zbHTPbcC-1713383358264)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值