面经详情

领导NICE 面试也不难
当时面试的java实习生岗位 先是在BOSS上面沟通后 邮件通知面试面试 先是HR面试 问了些大学经历 然后是JAVA开发面试 问了Map和HashMap和spring相关 然后是技术主管面试 问了主要项目上的问题 最后等通知后通知被录取 
Q:Map和HashMap的区别1条回答

相关推荐

匿名用户
Java
确定通过感觉靠谱
外企普遍喜欢问基础问题,并喜欢考手写代码,首先是自我介绍, 问:你之前面试了几家,有拿到OFFER么?答:没有,这是第一家。 问:讲一下你最近一次项目。答:略。 问:你们这个项目有流量一般是多少。答:扯一通,最后说因为一些原因项目没上线,没有做流量统计。 问:你了解哪些数据结构。答:Collections, 包含List Map Set等,然后是树,包括二叉树,红黑树等。对于之后的数据结构例如图个人还没有学习。 问:Map底层是如何实现的?答:map主要通过哈希算法完成数据存储。主要思想就是使用哈希槽,长度为2的整数次幂,存数据的时候通过计算所存对象的hash值,然后将哈希值对哈希槽长度取模来决定所存数据存于拿个哈希槽。 问:如何解决哈希槽碰撞问题?答:如果取模结果一样,默认会往后一个哈希槽移动一格,若为空,则存,不空则再往后移,直到找到一个空槽为止。Java对hashmap的实现中使用capacity指定哈希槽长度,会有一个loading factor,用来指定当哈希槽达到多少饱和度时会增加capacity来减少碰撞的发生。 问:那你知道priorityqueue吗? 答:priorityqueue就是一种队列,与普通队列FIFO不同的是,出队的时候按照priority权重出队。 问: 那你如何实现priorityqueue。 答:我说最佳实现我一下想不起来了,如果让我现在实现,比较简单的实现方法就是使用set集合,集合中的对象持有一个权重属性。 问:你这个实现入队出队的效率是多少。答:入队O(1) 出队要遍历,所以是O(n)。 问:现在我的系统对priorityqueue是高读取,低写入,你这个实现出队效率太低,怎么办。答:我可以使用数组或者ArrayList,这种实现在元素入队时就进行排列,可以使入队复杂度为O(n), 出队直接取第一个元素,复杂度O(1)。 问:那你知道heap这个数据结构么答:有印象,一下想不起来。 问:那我给你提醒一下,heap可以弹出最小值最大值,你认为用heap怎么实现priorityqueue答:我想起来了,heap就是。用heap做priorityqueue 可以实现入队出队复杂度都是lgN。 问:好,现在给你出个题你做一下,给你一个String, 如何将这个String逆转。答:public String reverseWord(String s){   String r = "";   for(char c : s.toCharArray())     r = c + r;   return r;} 问:你知道什么设计模式?答:gof有23中设计模式,我大概知道其中20种。具体 的话有 工厂、单例、策略、代理。 问:你能具体介绍其中一种么。答:最简单的就是单例。然后讲了单例是什么,讲懒加载,非懒加载。 问:写一下单例模式。答:略。 问:你对面向对象了解么。答:了解。 问:我现在要设计一个文件存储系统,具有目录结构,能实现文件的读写,请问你怎么设计。答:java中已经有设计好了的文件存储系统,如果我要设计我就会按照java已有的方向设计。所以我觉得您这个问题就是问IO流,然后我讲了io 跟 nio ,最后做了一下对比。 问:现在我有一个很长的链接地址,用户输入很困难,与之对应的有一个较短的链接地址。我现在要设计另一个功能,当用户输入短地址的时候,能够自动转换为长地址,并访问那个页面,怎么实现这个功能。答:首先谈谈长短地址的映射关系,如果对于所有地址,都有一种固定的映射关系,例如f(短)=长,那么在用户输入短地址的时候可以直接通过对应算法获取长地址。如果没有这种关系,我只能在数据库中设计一个表,用于存储长短地址的映射关系。具体的实现可以利用拦截器,在用户输入短地址的时候,调用映射函数或查表,然后返回长地址。 问:假设没有这种映射关系,然后我现在每月有5000万人使用这个功能,那么平均每秒会有几次数据库访问。答:我不太明白您这个题的出题意图,如果这是个纯数学题的话,那么就是5000 万 / (30*24*60*60)。 问:只可能是这么多么?答:您没给出具体场景,在一般条件下就是这么多。我认为您其实想问数据库承载量的问题。如果想减少数据库的直接访问量,可以使用缓存。用户访问数据库的时候,如果缓存有对应数据,则直接取缓存,没有则访问数据库,并将结果存入缓存。 问:那你如何解决缓存满了的问题呢?答:定义缓存数据淘汰机制。以redis为例,其内部提供了6种淘汰机制。然后我讲了三种机制,随机淘汰,最少使用淘汰,最近过期淘汰。 问:对于我们这个系统,如何选择淘汰机制。答:这需要分情况讨论,如果用户对页面的请求是完全随机的话,我会直接使用随机淘汰策略。如果数据有冷热的话,比如百度的链接请求次数明显多页某些专业网站,我会使用最少查询淘汰策略。 问:你还有什么问题答:有我想问一下贵公司开发模型,我是指watefall, scrum, agile之类的面试官作答。 问:我还想问一下公司开发工具都是哪些,例如使用什么IDE,用什么做versioncontrol之类的。面试官作答,完。 ...查看更多
2 年前 发布
2
匿名用户
Java
确定通过感觉靠谱
注重算法,数据库,高并发,分布式之类的,要做好准备。甲去面试问: 1. 问得都是底层的,spring循环依赖~MySQL的分库分表; 2. dubbo和zookeeper:会往底层问,很细; 3. spring MVC中autwired和asourse区别; 4. 聚集索引和非聚集索引,复合索引这些东西; 5. 线程池,连接池; 乙去面试问: 1.aop,redis,mybatis标签,zookeeper,dubbo底层原理; 丁去面试问: 1.多线程、并发、安全性,问了一些框架,数据库,mysql,spring; 戊去面试问: 1.springmvc原理; 2.spring的事物有几种隔离级别; 3.hashmap原理,concurrenthashmap原理; 4.介绍下之前的项目; 5.mysql索引类型,底层原理; 6.mysql中的聚合函数有哪些,group  by    having用法; 7.jvm有了解吗,简单介绍一下,有系统调优的经验吗; 8.springmvc  struts2的区别; 9.了解rpc,springcloud,double吗; 10.ararylist和linkedlist的区别以及原理实现; 11.java 的cas操作了解吗; 12.你们项目中的服务之间是如何通信的; 13.使用过mysql集群吗。简单介绍一下; 14.了解redis吗,项目中的缓存怎么做的; 15.说下Object中有哪些方法; 16.spring的依赖注入怎么实现的,以及依赖注入的原理; 己去面试问: 1、springmvc运行原理 ; 2、写了个sql; 3、单例模式; 4、单例模式的应用; 5、collection和collections的区别; 6、synchorized的用法和threadlocal的区别。 ...查看更多
2 年前 发布
1

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网暖游天下/盛意金融暖游天下/盛意金融面试经验暖游天下/盛意金融面试经验:领导NICE 面试也不难