专栏名称: java那些事
分享java开发中常用的技术,分享软件开发中各种新技术的应用方法。每天推送java技术相关或者互联网相关文章。关注“java那些事”,让自己做一个潮流的java技术人!《java程序员由笨鸟到菜鸟》系列文章火热更新中。
目录
相关文章推荐
51好读  ›  专栏  ›  java那些事

我是如何在阿里巴巴面试中壮烈牺牲的?(内含面试题)

java那些事  · 公众号  · Java  · 2019-03-22 16:00

正文

请到「今天看啥」查看全文


大佬:默认的是实现是单例模式吗?

我:对的。

这里查了一下为什么不用工厂模式而使用IOC。其实本质上还是因为IOC是通过反射机制来实现的。当我们的需求出现变动时,工厂模式会需要进行相应的变化。但是IOC的反射机制允许我们不重新编译代码,因为它的对象都是动态生成的。


数据库


大佬:你使用过哪些数据库呀?

我:Mysql还有SQLight。(被遗忘的MongoDB在角落里无声哭泣)

大佬:那你使用的ORM框架除了Hibernate还有哪些,比如IBatis?

我:我用过MyBatis。

大佬:那你能讲一下你对两个框架使用后的感受吗?

我:当时使用Mybaits的时候,也有去社区了解了一下两个框架的口碑,发现大家的战队都坚定而对立。对Hibernate的不满通常是因为它在复杂关联中往往会带来严重的性能问题,也就是N+1的问题。但是它是面向对象支持的最好的框架了。而Mybatis则相对而言比较易于使用,只需要会SQL语句就行了。但是也意味着会破坏一些面向对象的规则。

大佬:(似乎有点认可)那你了解数据库的事务吗?能讲一下数据库的事务级别吗?

我:(忘得一干二净)不好意思,我记不太清楚了。

大佬:那你还记得数据库的加锁吗?比如乐观锁、悲观锁?

我:(求您别问了)

大佬:(锲而不舍)那我现在假设有一张用户表,你也知道,正常的表只能存放大概一千万或是两千万左右的数据。但是阿里巴巴有上亿的用户?你会怎么存储呢?

我:可以纵向分割与横向分割。

大佬:那你觉得这里应该纵向还是横向呢?

我:纵向(载入史册的嘴瓢)

大佬:(很有耐心)可是这样我的数据库还是放不下啊。







请到「今天看啥」查看全文