又是凉凉的一天

拼搏现实的明天。 2022-10-08 11:15 335阅读 0赞

1、自我介绍。

我是从我的工作年限、行业、常用技术栈以及在工作中所扮演的角色来讲解的,最后基于提前对公司的了解又对此进行了一番仰慕。

2、问项目(让我讲一个最熟悉的)。

wk,这么无视我的吗!最近的项目还是比较熟悉的,我最近做的是基于SASS平台的OA系统。其中的数据库的设计、权限管理、定时系统、日志系统和个人中心等我都做了相关准备。索性一不做二不休拿起数据库设计和权限管理就开始了我的征程。

数据库我是基于数据库三范式的思想进行设计的(对三范式简述了一下),设计前考虑了用户量以及后期的数据拓展,因为平台是基于SASS来做的,故此前期考虑了数据库的分库和分表。按照二叉树的方式进行划分的,ID则是按照雪花算法来设定的,便于后期的数据扩容。

设计期间根据不同的字段对其进行了长度设置这也是为了提高表空间的利用。字段名称方面根据英文制定的方式进行来规范,设计方面采用的是Workbench。

大致叙述完这些设计前的准备工作后,根据自己所设计的模块进行了具体的讲解,我这边讲的是用户管理模块,大家可以根据自己所擅长的来讲。

权限管理方面,我重点分析了技术上的选型shiro和spring security以及redis和JWT,由此引出了我这次面试的滑铁卢,惨败于JWT的长链接、短链接失效的问题,其实这个点我是考虑过的,但是讲解的时候没讲清,果然还是面试需谨慎啊!!!

3、要是握手第三次断了,你是怎么设计的?

三次握手如果第三次失败了会怎么样:失败了服务端收到不确认包,会超时重发5次,若还是没有收到确认包,或者收到了数据包,则服务端直接发送reset重置包结束本次连接;

四次挥手之所以结束时需要多一次请求是因为:客户端单方面无数据发送认为可以结束了,但是服务端不一定没有数据发送,所以服务端要将确信信息和自身发起断开分作两步。

图片

图片

4、float f=3.4;是否正确?

不正确,编译无法通过。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;

5、mysql中,用户鉴权与 Host 优先级。

MySQL 鉴权的方式是 Username 和 Host 两个维度的,最近遇到了一些关于登录时到底是被 MySQL 识别为哪个账号的问题,因此简单梳理一下 MySQL 匹配账号的优先级。

MySQL 在创建用户的时候,一般是需要指定用户名和来源 IP 的。

由于 Host 这个字段支持正则匹配,因此这个字段设置为 % 的时候,则代表所有的来源 IP 都能匹配到。

MySQL 会按照 Host 的匹配精度,按降序排列同一个 Username 的所有账号,当 Client 端尝试登录 MySQL 的时候,会按照顺序依次这个 Username 下面所有的 Host 规则,直到匹配成功。Host 这个字段不仅能填 IP,也能写域名,同样也能利用到正则表达式匹配。

由于域名指向的 IP 受 DNS 的影响,因此多数时候会用 IP,一般来说需要 DNS 来屏蔽一些后端细节的时候才会用域名来作为 Host 字段的值。

总结:

作为比较保险的办法,尽量少用 Host 来区分不同的账号,直接用不同的 Username 会比较好管理和维护,如果一定需要用 Host 来区分,那么至少也要用不同的密码,防止匹配到了错误的用户,导致权限不足引起业务上的问题。

6、spring ioc容器是如何知道需要管理哪些对象呢?

我们给ioc容器提供一个配置清单,这个配置支持xml格式java注解的方式,在配置文件中列出需要让ioc容器管理的对象,以及可以指定让ioc容器如何构建这些对象,当spring容器启动的时候,就会去加载这个配置文件,然后将这些对象给组装好以供外部访问者使用。

7、Spring容器使用步骤。

  1. 引入spring相关的maven配置;
  2. 创建bean配置文件,比如bean xml配置文件;
  3. 在bean xml文件中定义好需要spring容器管理的bean对象;
  4. 创建spring容器,并给容器指定需要装载的bean配置文件,当spring容器启动之后,会加载这些配置文件,然后创建好配置文件中定义好的bean对象,将这些对象放在容器中以供使用;
  5. 通过容器提供的方法获取容器中的对象,然后使用。

期间又聊了聊我的个人规划、期望薪资、上家单位的薪资以及离职原因这些问题,其他倒也没聊啥。对了,还给我出来一个sql的场景题回答的不是很好。估计今天的面试没过吧!

反思:

项目业务点中技术点应用的细化以及bug出现原因和解决方案应该加强;

sql语句的优化回答过程中应该分点、有层次的来回答,加强场景的练习,不少公司问到的都是类似的问题;

遇到不会的问题不要紧张、不要紧张。

加油!

20210621102740282.jpeg

另附资源下载:关注 “Java面试百分百
1,后台回复:“面试资料”,可获取一份最新的Java面试资料。

发表评论

表情:
评论列表 (有 0 条评论,335人围观)

还没有评论,来说两句吧...

相关阅读

    相关

    ![format_png][] 猜到了开头,却没猜到结尾... 1 一份名单 昨天在网上瞎逛的时候,突然看到了一份名单,北京地区 P2P 公司经营情况,虽然有所预料但还

    相关 了?!

    大家好,我是程序员吴师兄,今天有感而发,头条水一篇,次条算法文。 -------------------- 今天我正在制作算法动画,有个地方卡壳,打算去群里水一水缓解缓解,

    相关

    1、自我介绍。 我是从我的工作年限、行业、常用技术栈以及在工作中所扮演的角色来讲解的,最后基于提前对公司的了解又对此进行了一番仰慕。 2、问项目(让我讲一个最熟悉的)

    相关 Webpack,

    在刚刚结束的 VueConf2021 中,除了 Vue 3.0 以外,另外一个亮点就是下一代构建工具 Vite 了。 在尤雨溪分享的【 Vue 3 生态进展和计划】的演讲中,

    相关 阿里

    1.自我介绍 2.C++容器的使用场景和底层 3.泛型编程(模板如何是不同对象传入的时候产生的结果是不一样的) 4.四次挥手的过程以及状态的改变 5.链表是否有