能源互联网公司 面试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li1987by/article/details/79935112

电话面的一家能源互联网公司
任职要求:
1. 计算机专业本科及以上学历,有5年以上Java应用开发经验,具有大型分布式、高并发、高负载、高可用系统的设计、开发和调优经验者优先考虑;
2. 精通Spring(包含Spring Boot、Spring Cloud等)/Dubbo/Hibernate/MyBatis等J2EE开源框架技术;
3. 熟练使用mongodb、redis、codis、hbase等NoSQL;
4. 熟悉Hadoop/Spark、Strom、rabbitMQ、kafka 等,且有实际分布式项目经验者优先考虑;
问题:
1.springmvc执行原理
答:
脑袋蒙圈,找回点记忆
从客户端请求出发,到达服务器端servlet容器。通过servlet容器发起和接受一系列动作,1)解析出请求经过处理器映射器找到相应的处理器返还回来,2)触发处理器适配器调用处理器来处理业务逻辑,完成后返回ModelAndView回来。3)servlet将ModelAndView传递给视图解析器处理,返回回来View。4)servlet渲染view响应给客户端浏览器
2.springmvc注解有哪些
答:
上来一通
@Controller,@Service,@Resource,@RequestMapping,@RequestParam,@RequestBody,@ResponseBody,@PathVavirable,@Autowired
3.如何实现单点登录
答:
主要提到了Token校验形式
有一个验证服务器,所有登录方请求都会查看本地是否有用户信息的cookie。没有就会调用验证服务器,进入用户登录界面,如果用户登录成功就会在浏览器生成cookie。当再次登录时,就会带着这个cookie请求验证服务器,验证服务器会校验这个cookie值,如果验证正确就会返回用户信息。
4.mybatis # 和$区别


sql中参数前缀是#,可以防sql注入,相当于 参数 = ?的形式
而前缀$的参数相当于拼接sql的形式,sql += 参数的形式
5.商品规格如何存储

当时没有概念,只想来订单记录中有这个信息,商品信息存储在主表,商品详情包括商品规格存在另外的表里,根据商品详情id进行关联
正确的做法是:使用模板的思想实现
参考
针对每种商品类目设计一个规格参数模板,然后商品去套相应的参数模板,按照模板参数赋值,就实例化这个规格参数模板了。
即分为了两块来做,第一块要设计每类商品的规格参数模板,这样就解决了每类商品规格参数不同的问题。第二块就是要实例化参数模板,生成最终商品的规格参数
如:1)模板结构,需要和商品类目关联
模板结构
相应的数据库dll
dll
前台只要按指定json格式构建规格参数模板,然后生成json文本传给后台,然后保存服务器
front
2)模板数据,需要和商品关联
模板数据
相应的数据库表dll
dll
前台如果要给某件商品添加规格参数,只要解析对应模板的json格式数据,然后生成表单,添加每个字段的数据,再按之前所示的具体数据结构json格式生成json提交后台,然后保存数据库
front
6.dubbo实现协议

Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。
参考文献
7.zookeeper全部宕机是否有问题

觉得有问题,被告知是不会有问题。这个问题其实明显不会有问题才问…
8.mybatis事务实现原理

代理,被告知aop,其实差不多
9.隔离特性

希望被提醒一个…被告知 提交读…未提交读。其实我想提问一个就是想说这个,结果还又被说了,后两个重复读,序列化读真是忘得没影了。
10.如何保证分布式定时任务只执行一次

逻辑啰嗦的一顿,什么事务加状态位判断了。被告知一般不会用到事务。光记得阿里支付接口有类似的场景,好像用的标记状态来实现的,其实是想说的支付幂等性。
问题的角度是只执行一次,利用锁是最简单了…
后来又分析了下,确实类似支付宝支付的异步通知,支付成功后,会向收款方服务器定时发送8次通知,收到success返回就停止通知。

猜你喜欢

转载自blog.csdn.net/li1987by/article/details/79935112