又是凉凉的一天

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

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

 

加油!

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值