博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里电话面的几个问题回溯
阅读量:6032 次
发布时间:2019-06-20

本文共 1230 字,大约阅读时间需要 4 分钟。

两个电话,问了不少,一些简单的问题未列出来。

1. 简述HashMap的原理

我的答案:主要描述了原理和对查询效率的影响。
原理分析:HashMap可以理解为简单的内存DB吧?

2. Oracle查询时,模糊查询是否会使用到索引

我的答案:%xx%一定用不到,xx%和%xx应该可以用到。
总结答案:xx%可以用到,%xx和%xx%用不到。
原理分析:索引底层使用B-TREE,此tree采用散列值映射的方式,因为是树状结构,查询效率为log(n)。当然查询必须从根节点向下搜索,故而xx%可使用到索引的前半部分,而%xx则无法使用索引。

3. where子句中,!=是否用到索引

我的答案:用到
总结答案:未用到
原理分析:感觉这是个陷阱。理论上确实用到了——过滤非的时候。但之后真正的查询逻辑却要扫描n-1次。从业务查询的角度看,未使用到。

4. 查询表时,where后条件的顺序是否影响查询效率?

我的答案:对于单表,语法分析器会自动优化,不会影响。
总结答案:建议将过滤给力的部分放在最后;语法分析器或优化,效率无差别。
原理分析:oracle查询分析器执行时,where子句自右向左执行,所以将大过滤放在最右边。

5. 开放题

假如双11淘宝搞了秒杀活动,指定时间会有大量用户涌入。
目前有两个表:
user_base:id, name, password.....
user_grade:level, last_login_time, bill_count
有何策略,在用户大量涌入时减少db压力?
我的答案:
1. ui层面。因用户的真正需求是秒杀,可将用户等级信息在页面默认隐藏,用户需要时才点击显示。
2. 逻辑层面:cache
3. DB层面:通过大数据预判某些用户行为,将可能登录的用户特殊处理。
原理分析:尚不明。

1. 多线程情况下,如果B线程在A线程执行后执行。

我的答案:wait,notify
总结答案:最简单的方法:两个线程共享一个资源,例如byte sig=1。线程1在sig=1时执行,执行完后置sig=2。线程2在sig=2时执行。
还有其它方法,大概多用到java5中concurrent包。
原理分析:此题简单,秀逗了未答好。

2. 有什么方法,能保证事务一致性?

我的答案:DB层面,实现JTA接口,使用spring的事务管理。
总结答案:待续。

3. linux定时任务,怎么操作

我的答案:at命令,具体执行时间与spring中quartz相似。但我使用的定时任务多是app层面的,不熟。
总结答案:cron命令,具体执行时间与quartz相似。
原理分析:at可定时执行,但功能稍弱。cron确实没怎么用过,短板。

4. 将10W条数据写入到分布式DB中,如何保证写入均匀,无重写,漏写?

我的答案:无思路。

转载于:https://www.cnblogs.com/xzs603/p/3533237.html

你可能感兴趣的文章
算术运算表达式正则及分析
查看>>
Oracle 12c 多租户 手工创建 pdb 与 手工删除 pdb
查看>>
shell初涉
查看>>
[浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(二)
查看>>
ASP.NET 中设置路径的三种方式
查看>>
EBS使用 Distributed AD在多个节点并行adpatch
查看>>
windows添加和删除服务
查看>>
关于云栖,有点无语的几个地方,管理能不能管?
查看>>
Windows线程的同步与互斥
查看>>
C#进阶系列——MEF实现设计上的“松耦合”(四):构造函数注入
查看>>
AngularJs ng-change事件/指令(转)
查看>>
linux系统下安装两个或多个tomcat
查看>>
ProtoBuffer 简单例子
查看>>
iOS多线程开发系列之(一)NSThread
查看>>
微信小程序初体验(上)- 腾讯ISUX社交用户体验设计成员出品
查看>>
SAP WM Physical Inventory Method ST & PZ
查看>>
一次快速的数据迁移感悟
查看>>
MySQL修改提示符
查看>>
《ELK Stack权威指南(第2版)》一3.6 Java日志
查看>>
C++流的streambuf详解及TCP流的实现
查看>>