Java后端模拟面试 题集⑤

1.先作个自我介绍吧

面试官您好,我叫张睿超,来自湖南长沙,大学毕业于湖南农业大学,是一名智能科学与技术专业的统招一本本科生。今天主要过来面试贵公司的Java后端开发工程师岗位。

大学里面主修的课程是Java、Python、数字图像处理、JavaEE。

大学期间,英语获得6级460分,参加过华为云的比赛,获得了全国高校绿色计算系列大赛团体三等奖。

我熟悉的技术栈在简历上都写了,我自己认为自己的亮点在以下几点:能进行简单的JVM调优;有实际处理高并发问题的经验;熟悉MySQL的操作,了解数据库调优原理;熟悉Linux的基本操作。

我自学C#两周、听学校讲解Python的Django框架2周,都写出了简单的项目;半年时间研究出了一个图像加密算法,并发表为了毕业论文。Java学习了一个学期、自学了2个月,之后在校企合作的项目中做出了这两个Java项目。

领导过小组作出Django框架的项目,参与过校企合作的两个Java项目。

了解到贵公司的业务需求偏向于xxx,我正好擅长xxx,所以我来应聘贵公司的Java开发岗位。

(或者衔接)

了解到贵公司的业务需求偏向于xxx,我最近做了一个xx项目,正好做了xxx,您看需不需要作一个简单的项目介绍。

2.你们微服务是怎么划分的

我们微服务按业务来划分,包括智能调度模块、路线规划模块、运单/任务管理模块,还有其他微服务。

智能调度负责调度运单、取件任务、派件任务、延时派件任务。

延时和实时派件任务存在区别,是为了满足2小时内快递员上门取件的服务需要。比如现在是10点半,用户期望11到12点取件,就发送实时取件任务;用户期望13到14点取件,就发送延时取件任务。

路线规划负责网点管理、路线管理、时间优先路线规划、成本优先路线规划等。

我们的网点、路线都存储在Neo4j数据库中,Neo4j是用来存储图关系的非关系型数据库。

Neo4j种,节点存的是机构,分为三种标签:一级转运中心、二级转运中心和节点。

节点的属性包括:Neo4j自带的id、业务id、名称、电话、地址、坐标等。

关系存的是路线,属性包括自带id和成本。

时间优先的查询语句如下:

MATCH path = shortestPath((start:AGENCY) -[*..10]-> (end:AGENCY))
    WHERE start.bid = 123123 AND end.bid = 123456
    RETURN path

转为Java的API,用到了stream流等工具。

运单/任务管理模块就包括运单管理、运输任务管理、取件任务管理、派件任务管理等。

业务包括创建运单、司机入库等。

其他微服务有基础微服务、快递员微服务、司机微服务、订单微服务、范围微服务、支付微服务等等。

3.你用过RabbitMQ吗

4.登陆功能是你写的吗,登录功能是怎么实现的

是的。

比如微信小程序的登录,首先微信小程序准备好appid、appsecret、code和phoneCode发送给后端,后端将其中的appid、appsecret和code转发给微信接口进行校验处理,如果校验失败则返回异常的响应状态码,成功则返回200。

在成功的基础上,解析得到响应中对应用户标识的openid,然后查询数据库中是否存在该用户。如果有则返回用户信息,没有则创建。

然后再次调用微信接口,获取用户的手机号,拿这个手机号更新或新增用户的信息。

用户的信息处理完了之后,根据这些信息生成登录校验的token,再返回给前端。

之后前端每一次请求都带上token,后端校验这个token就可以处理业务了。

我们使用的身份校验的技术是JWT。

(后面就可以接上我上一篇文章Java后端模拟面试 题集④-CSDN博客的第3个问题“JWT了解过吗,有用过吗”的回答内容,打一套丝滑小连招~)

5.你们JWT令牌认证,加密是怎么处理的

我们的加密是采用的RSA加密模式。

JWT全名叫JSON Web Token,由三部分组成:

Header头,记录令牌类型、签名算法等。 例如:{"alg":"HS256","type":"JWT"}

Payload有效载荷,携带一些自定义信息、默认信息等。 例如:{"id":"1","username":"Tom"}

Signature签名,防止Token被篡改、确保安全性。将header、payload,加入指定秘钥,通过指定签名算法计算而来。
 

加密方法RSA就写在Header中。我们校验的就是加密后的第三部分。

6.你知道MySQL的常用索引有什么

按数据结构分类:

B+数索引、Hash索引、全文索引。

按物理存储分类:

聚簇索引、非聚簇索引(辅助索引、二级索引)。

按字段特性分类:

主键索引、唯一索引、普通索引、前缀索引。

按索引字段个数分类:

单列索引、联合索引(复合索引、组合索引)。

7.你数据库的表的设计是什么样子的,比如你负责的登录的表是什么样子的

因为登录业务比较独立,所以我们设计这个表的时候没有关系字段,更别说设计什么冗余字段。这个表的字段是这样的:

1.基本字段:

主键id

统一认证id auth_id

身份证号id_card_no

实名认证状态id_card_no_vertify 0未验证 1验证通过 2验证未通过 3异常状态

手机号phone

名称name

头像avatar

微信openID open_id

性别sex 1男 0女

生日birthday

其中要提一下的是这个统一认证id auth_id,这个是方便日后确定多个小程序、网站应用等端中同一用户的认证,类似于微信中的UnionId。只不过,这个auth_id是针对我们开发的程序的,UnionId是针对微信开发的平台的。

还可以提一下的是,我们用数字类型来存储日期,这样存储空间更小,并且可以用索引来提升查找性能。

存储时,用int(10)来存,这样存:

update sl_member
set birthday=UNIX_TIMESTAMP('年年年年-月月-日日 12:00:00')
where id=xxxx;

取时这样:

SELECT DATE_FORMAT(FROM_UNIXTIME(birthday), '%Y-%m-%d') AS hour
FROM sl_member;

2.辅助字段:

创建时间created

更新时间updated

同上birthday的存储方式,用数字类型来存储,占空间更小,利用索引效率更高。

存取就更简单了,不用转格式了。

 存:

update sl_member
set birthday=UNIX_TIMESTAMP('年年年年-月月-日日 时时:分分:秒秒')
where id=xxxx;

取:

SELECT FROM_UNIXTIME(birthday) AS hour
FROM sl_member;

关系字段和三种字段中冗余的部分没有。

8.物流信息单表是什么样的

9.Docker你用过吗,Docker怎么搭建的,有网络环境和无网络环境怎么搭建的

10.Spring Boot和SpringMVC的区别是什么

11.Spring Boot最主要的三个注解是哪些

12.项目中AOP用来干什么的呢

13.问一点Java基础,IO用过吗

14.有用到分布式锁吗

15.工作做了多久,为什么不做了

16.项目中有碰到过什么异常情况吗

17.我看你写了CSDN,写的是哪一块呢

18.数据库碰到过什么异常吗

19.有没有什么锁表的情况

20.切面具有几种消息通知,你用的是哪一种

21.SVM的原理说一下

22.看门狗的路由守卫是什么

23.Docker用的时候碰到过什么异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeRtos进阶——中断的内部逻辑

中断与非中断API的区别 BaseType_t xQueueSendToBack(QueueHandle_t xQueue,const void *pvItemToQueue,TickType_t xTicksToWait); BaseType_t xQueueSendToBackFromISR(QueueHandle_t xQueue,const void *pvItemToQueue,BaseType_t *pxHigherPriorityTaskWok…

MFC工控项目实例之二添加iPlotx控件

承接专栏《MFC工控项目实例之一主菜单制作》 在WIN10下使用Visual C 6.0 (完整绿色版)添加iPlotx控件的方法。 1、在资源主对话框界面点击鼠标右键如图选择插入Active控件点击进入。 2、选择iPlotx Contrlolh点击确定。 3、在对话框界面插入iPlotx控件。…

emp.dll文件丢失要怎么解决?荒野大镖客emp.dll修复方法分享

软件运行过程中经常遇到各种技术问题,其中之一就是动态链接库(DLL)文件丢失的现象。DLL文件是Windows操作系统中一个重要的组件,它包含运行多个应用程序所需要的代码和数据。因此,一个丢失的DLL文件,如“em…

《逆水寒》手游周年庆,热度不减反增引发热议

易采游戏网5月31日最新消息:随着数字娱乐时代的飞速发展,手游市场的竞争愈发激烈。在这样的大背景下,《逆水寒》手游以其独特的古风武侠世界和深度的社交体验,自上线以来便吸引了无数玩家的目光。如今,这款游戏迎来了它…

对象转为Map

方案一&#xff0c;Jackson String json objectMapperFace.writeValueAsString(contract);Map<String,Object> map objectMapperFace.readValue(json, Map.class);方案二 &#xff0c; apache BeanUtils Map<String,String> beanMap null;try {beanMap BeanUti…

MMrotate报错AttributeError: ‘NoneType‘ object has no attribute ‘shape‘

使用MMrotate训练自定义数据集报错&#xff1a; AttributeError: ‘NoneType’ object has no attribute ‘shape’ 2024-05-31 17:48:06,121 - mmrotate - INFO - workflow: [(train, 1)], max: 12 epochs 2024-05-31 17:48:06,121 - mmrotate - INFO - Checkpoints will be …

相同的树(oj题)

一、题目链接https://leetcxode-cn.com/problems/same-tree/ 二、题目思路 遍历整颗树&#xff0c;判断两棵树的每个位置的结点都相同。 每个结点的左右孩子结点都要综合判断 三、题解代码 bool isSameTree(struct TreeNode* p, struct TreeNode* q) {//如果两颗树的根结点…

汇舟问卷:国外问卷调查两小时赚28美金?

现在的年轻人不愿意打工的原因不只是因为累&#xff0c;而且赚的钱也不多。有些人开玩笑地说&#xff0c;摆个摊儿卖点小商品都比上班赚得多&#xff0c;这确实是事实。 打工只能勉强维持生计&#xff0c;不能致富。因此&#xff0c;如果我们想赚大钱&#xff0c;首先需要改变…

炫云亮相第二十届中国国际动漫节国际动漫游戏商务大会!

5月28日-29日&#xff0c;备受瞩目的第二十届中国国际动漫节国际动漫游戏商务大会(iABC2024)在杭州滨江开元名都大酒店隆重召开&#xff01;本届大会以动漫IP为核心&#xff0c;从源头到全系列数字内容&#xff0c;探索创新协同、融合发展、价值转化&#xff0c;并对重点作品和…

IDEA 常用技巧

1、代码块整体移动 选中&#xff0c;tab整体右移选中&#xff0c;shifttab整体左 移 2、统一修改变量 3.方法分割线 seting >> editor >> apperance >> show method separators 4、快捷键 构造器、set与get方法、方法重写、toString 等快捷操 鼠标停留在…

人工智能在消化道肿瘤中的最新研究【24年五月|顶刊速递·05-31】

小罗碎碎念 2024-05-31|医学AI顶刊速递 今天分享的六篇文章,主题是AI+结肠癌。但是,并非所有的文章都是直接与结直肠癌相关,比如第一篇研究的就是肝癌。 我其实想关注的是消化道肿瘤的医学AI研究——消化道由口腔、食管、胃、小肠、大肠和直肠组成,而肝脏虽然不直接参与食…

java海滨学院班级回忆录源码(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的海滨学院班级回忆录。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 海滨学院班级回忆录的…

运维开发.Kubernetes探针与应用

运维系列 Kubernetes探针与应用 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263…

电商物流查询解决方案助力提升消费者体验

截至2023年12月&#xff0c;中国网络购物用户规模达9.15亿人&#xff0c;占网民整体的83.8%。这一庞大的数字不仅展现了电子商务的蓬勃发展&#xff0c;也标志着数字零售企业营销战略的转变——从以产品和流量为核心&#xff0c;到用户为王的新阶段。因此&#xff0c;提升消费者…

探索 Android Studio 中的 Gemini:加速 Android 开发的新助力

探索 Android Studio 中的 Gemini&#xff1a;加速 Android 开发的新助力 在 Gemini 时代的下一篇章中&#xff0c;Gemini融入了更多产品中&#xff0c;Android Studio 正在使用 Gemini 1.0 Pro 模型&#xff0c;使 Android 开发变得更快、更简单。 Studio Bot 现已更名为 And…

Linux服务升级:Twemproxy 升级 Redis代理

目录 一、实验 1.环境 2.多实例Redis部署 3.Twemproxy 升级Redis代理 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本软件IP备注CentOS7.9Twemproxy192.168.204.200 Redis代理 Redis127.0.0.1:6379第一个Redis实例 Redis127.0.0.1:6380第二个…

微信小程序-页面导航-导航传参

1.声明式导航传参 navigator组件的url属性用来指定将要跳转到的页面的路径&#xff0c;同时&#xff0c;路径的后面还可以携带参数&#xff1a; &#xff08;1&#xff09;参数与路径之间使用 ? 分割 &#xff08;2&#xff09;参数键与参数值用 相连 &#xff08;3&…

五星级可视化大屏(02):再发一波,纯数据图表也跟效果杠杠的。

这是第一期&#xff0c;分享纯数据图表的&#xff0c;请大家仔细观看。

华为云的云主机安装的linux系统不能使用yum下载软件包、程序、组件等

目录 一、背景介绍 二、问题描述 1、尝试使用yum安装traceroute 2、更换yum源 3、使用curl命令访问百度&#xff0c;测试网络 三、问题分析和解决 1、修改网卡设置 &#xff08;1&#xff09;ifconfig查看网卡信息 &#xff08;2&#xff09;添加DNS 2、修改/etc/res…

移动机器人传感器

移动机器人传感器是机器人系统的关键组成部分&#xff0c;用于感知和理解周围环境&#xff0c;为导航、避障、定位和任务执行提供必要的信息。以下是一些常用的移动机器人传感器及其功能和应用。 常用移动机器人传感器 激光雷达 (LiDAR)摄像头深度摄像头超声波传感器红外传感器…