淘天二志愿1688面经
- iBatis和MyBatis两者之间有什么差异?
- SQL写在XML文件,一般如何做安全性上的一些防范。
写了一个SQL,变量不是用变量做替换,怎么防止外面的黑客做攻击,比如写SQL的时候,做替换,有没有留意一些SQL可能要防范攻击的,针对这个SQL的安全漏洞的注入。比如像MyBatis和IBatis,他们一般是提供了什么样的机制? - 用了这两个框架,数据最后还是落MySQL库的,MySQL里面就是简单的单表落库了?
答 是多个表 - 服务治理这块做什么动作呢,也就是说只是额外传参,拦截做信息上报,用什么方式去实现的,具体实现上面,直接就是
导入他们的服务治理jar包,maven坐标放pom, 然后加载相关类进spring容器。 调用其他系统的时候,把(组名,系统名,时间戳)放请求头里,然后他们用okhttp拦截器拦截
- 做拦截是吧,那是基于http,基于那个servelet里面做filter还是,信息上报像springboot,现在这个你想去实现,可以用什么方式去实现?
通过拦截http请求,http的一些web框架去做的。如果只是单纯记录一些比如业务信息,这个地方还可以什么方式做么?我理解这里想要你拿到服务调用参数或者是返回值,是不是一定要在http这层做
那一开始通过什么方式写到异步队列里呢?可以通过以什么样的方式去做?
比如说像你要去打一些日志?对吧,这种一般通过什么方式去实现?一种是刚才说的可能在web这一层去做拦截,还有可以是怎么做的?
平常有用过么,方便排查,这是个比较通用的东西,总要在某些点去打日志?日志这一块,你是直接,比如说就是写死在代码里,还是怎么做?
-
比如说像用Spring Boot,涉及到ioc,依赖反转,就注入的这一块。一般在写代码的时候,怎么样去做Bean注入的。
比如说我用Spring框架,我做Bean注入,你在代码里,就是本身框架有哪些可以实现一个Bean注入。
@Resource是Spring提供的么,还是Java自带的,JDK自带的
就是比如说像他用@Resource注解,你用@Resource这个注解,一般是基于什么规则去定义一个Bean来做注入的。
就是他怎么认为这个Bean是匹配的,就是要注入进来的,就他怎么去找打它的容器里吗对应是哪个Bean,基于什么样的规则去找。 -
就那个说是基于Redis,Redis你是用来做什么的。
-
像Redis的话,它支持哪种数据结构
-
ZSet的数据结构是怎么去实现的么,比如说ZSet基于什么样的数据结构实现
-
缓存雪崩,击穿,穿透这些现象一般是因为什么原因导致的,一般有什么样的策略或者手段去防范。
-
分布式锁用Redis去实现的么?还是?
-
像库存的判断,你这个地方库存的判断是为了验证什么,实际上做一些对库存这块的一些控制,那你是做了哪些动作。
-
就超卖,但你用,比如说像分布式锁,你这里相当于说是只有拿到锁才允许执行库存-1,是吧?对,比如说你这里直接加个锁,那意味着其实是正常来讲,所有的人可能要排队拿锁嘛,就觉得那这种体验或者性能上有没有可以提升的地方?针对这种库存问题。
但是你用乐观锁,这时候不是会出现锁版本冲突,那可能最终可能它的效果是不是跟悲观锁差不多,只是说他不用悲观锁那样等这个锁,但是可能,比如说ABC三个线程,对吧?那可能最后可能,比如说A先更新了乐观锁,然后BC如果是高并发的情况下,BC也是更新失败的。 -
怎么防止恶意的刷单。多个账号就是一起刷,但背后,是一个人,对吧。还有一种,就是你怎么识别到他。
-
多线程的场景,线程这块你平常用的多么,那像线程,比如说如果是去实现一个线程,对吧,有哪些方法?
-
Runnable和Callable有什么差别?
Callable也是个接口。 -
线程像Thread,Thread里面有个join方法,还有个yield方法,这两个方法是做什么用的。
-
像你刚才提到的线程池吧,就是有个像性能池对吧?一般一个性能池的一个正常工作原理是什么样的?
它里面有哪些核心的参数呢?这些参数是怎么配合做工作的呢? -
hashmap的结构是什么样的?那红黑树还能退化回去么?怎么扩容?负载因子,为啥翻两倍?

浙公网安备 33010602011771号