面试实题:No.17

1、海量数据如何处理?
https://blog.csdn.net/v_JULY_v/article/details/6279498
https://blog.csdn.net/v_july_v/article/details/7382693
2、 数据库中的索引采用什么数据结构?请简述。
索引(index)是一种排序数据结构,为了提高在属性A上查找具有某个特定值的元组的效率,其中Movies(id,name,year,actor)一张电影表的属性就是里面的四个值。它是一棵二叉查找树的键值对,大型关系的索引实现技术是DBMS实现最重要的核心问题。
索引通常使用B树和B+树的数据结构,以协助快速查询、更新数据表中的数据。
eg: select * from Movies where name='A' and year=1990;
当关系很大时,查询代价太高。若10000个元组需要条件逐个测试,此时可以在Movies和name、year属性上建立索引。
create index keyIndex on Movies(name,year)
3、 数组和链表各自的优缺点?
(1)数组:固定长度,减小内存浪费,方便遍历(通过下标存取),删除操作后面依次前移,插入操作依次后移,可能遇到超出原定义数组大小,栈分配空间。
(2)链表:动态分配存储,方便增减\插入\删除操作、遍历通过指针依次进行,堆分配空间。
4、 简述你熟悉的一种设计模式或项目中用过的设计模式。
其产生原因是有些对象由于某些原因,如对象开销太大、安全保护、远程访问等,直接访问会给使用者或系统带来很多麻烦,所以通过在访问此对象时添加一个对此对象的访问层——代理。如:购买火车票的代售点、银行交易的支付宝等。
代理模式(Proxy Pattern)给某个对象提供一个代理,并由代理对象控制原对象的引用。简言之,一个对象不想或不能直接引用一个对象,可通过”代理“第三者来间接引用,代理对象在客户端和目标对象之间起到中介作用。
举例:一个男孩喜欢上一个女孩,男孩想认识女孩,直接去和女孩打招呼吧,又觉得不好意思,就委托女孩的室友Proxy去帮他搞定这件事,获取女孩的一些信息如QQ、电话、微信。
实际应用:在浏览海量图片时,我看可以使用代理模型,其大图片对应的缩略图就相当于Proxy,当用户喜欢某张具体的图片,点击后在显示具体的大图。否则都显示大图非常浪费资源、内存等。
优点:不让客户直接对对象进行操作,代理可起到保护作用、代理可设置必要的判断、减少系统资源的消耗,对系统进行优化并提高运行速度。
5、 简述设计模式的五大原则。
(1) 单一职责原则(Modem,一个类只干一件事拨号\挂机、发送\接受请求)
(2) 开闭原则(增加新功能,原有功能代码关闭,如计算器运算类,子类加法类、减法类)
(3) 里氏替换原则(企鹅继承鸟,但企鹅不会飞,使用父类也适用于子类)
(4) 接口隔离原则(多个和客户相关的接口要好于一个通用接口)
(5) 依赖倒置原则(高层次模块不应该依赖于低层次的模块,二者都应该依赖于抽象)
发布了441 篇原创文章 · 获赞 1021 · 访问量 53万+

猜你喜欢

转载自blog.csdn.net/A_BlackMoon/article/details/104902617