搜狗实习面试记录

前两天,参加了搜狗实习的面试。因为实习是一时的想法,没有做太多准备。第一天投简历,第二天就面试了。搜狗营销事业部的董先生面试的,总体来说表示的十分不好,好多地方都欠缺。特此把面试中的问题记录下来,留作后续复习使用。

设计模式

选择你熟悉的设计模式,画出UML图。(策略模式、装饰者模式、门面模式等)

你在项目中使用到了什么设计模式,为什么使用?

数据库

如果要设计一个分布式数据库,你会怎么设计,需要考虑什么。

分布式事务的实现方式。

数据库的隔离级别。

数据库加索引的时候,采用的什么数据结构。如果使用Like进行查询,使不使用索引。

Java异常

异常有那几大类,ClassNotFound属于哪一类,这些异常有什么区别。

在项目中构建的业务逻辑异常,采用的运行时异常还是检查异常。

Java并发

synchronized关键字加在一个静态方法上时,加锁的对象是什么。

线程的状态转换图,wait和sleep的区别。

synchronized实现的工作原理是什么。

什么是Java Monitor的概念,主要作用是什么。

生产者和消费者模型,伪代码实现。

Java容器

HashMap的数据结构是什么,怎么实现O(1)的复杂度。

HashTable、HashMap和ConcurrentHashMap的数据结构实现。

ConcurrentHashMap的get,put和size方法的加锁的步骤和方法。

项目

全国高考录取系统的架构图,你开发的模块要点。

如果程序有性能上的问题,调优的思路是什么。

Java资源占用比较多,使用什么工具去查看资源占用情况。

算法

26进制数的转换,27->AA

总结

原来看过的书,例如设计模式、Java并发编程没有时常复习,现在一时想不起来。

学习的课程,分布式数据库、大数据平台技术还是有些用处,需要整理和复习。

Java的基础知识还是牢固,需要经常总结复习。

在项目上的问题,需要更深一步思考。

面试后,设计了一个自己的技术学习路线,主要从三个层次:

Java基础知识:设计模式,Java 容器,Java 异常,Java 并发等。学习完成后,完成一个小型项目的练习与开发。

Java进阶:Jvm 相关知识,Java 网络编程,Java RPC,Java 网络架构,CDN,Spring,Memcache等系统的架构了解。

大数据架构:分布式数据库,分布式集群管理,大数据处理平台。

这次面试后,对自己触动很大。就想在大三去找的腾讯实习面试一样,打击后,毅然决然的选择了保研道路,并取得了很好的结果。但这次,已经是退无可退,迫切需要自己在技术方面做全面的提升。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9f5f476bcb0bcc1d696feb9bff3af9f5.html