java框架面试题?Java高频面试题
一、java面试的那些题目在工作中有用吗
java的面试题也分很多,针对于不同的面试目标,面试的题目自然也不同。比如刚毕业的大学生,主要问基础,如数据结构、算法等;针对于有几年工作经验的人,重点问项目经验、主流的开发技术;针对于再牛逼些的人,则会问些架构、基础原理等方面的问题。不清楚题主问这个问题的初衷是什么,我猜想可能题主是刚毕业的学生,大部分项目中数据结构、算法用的并不是很多,即使用到也都会有封装好的类库可以拿来直接使用。但这些东西肯定是有用的,当遇到更复杂更需要精益求精的需求时,就需要追本溯源,用到很多基础的理论。之前一直觉得大学学的计算机理论没什么用,但这行做的越久越发现这些东西的必要性。
二、java面试必问题你在项目中碰到过什么问题
『如果让你来做HashMap扩容,如何实现在不影响读写的情况下扩容?』我觉得逼格高,不是体现在问题多刁钻,知识点多深,而是一个非常明确,无歧义的问题,能考察出面试者多方面的能力。这个问题背后:
1.了解java中,HashMap的实现;如果一个面试者了解这一点,说明至少他关心过java提供的数据类型的实现,甚至极可能看过源码,他应该不会是一个纯粹的苦力。
2.知道『不影响读写的情况下扩容』是什么含义,说明他在工作中了解多线程的相关知识。
3.如果他能提到ConcurrentHashMap中的相关内容,说明他日常编程中有使用到concurrent包,可以继续聊聊,否则他对多线程的使用可能非常初级。
4.如果他能提出一些解决方案,即使不完整,也能看出他对类似cas等算法、分布式一致性等问题的了解程度。这问题是面试官问我的···
三、几个让人困惑的Java面试题。怎么破
1、指令平时百度查就行,装一些开源的服务器监控程序,就可以直接监控服务器的性能,访问情况。
2、对表增加相应的索引。减少使用select*这种查询方式。注意where条件的顺序,先过滤更多的记录,再过滤匹配少的记录等。
3、在路由器端做负载均衡,将访问分流到各台www服务器上。扩容有很多环节,例如web服务器扩容,数据库扩容,硬件扩容或者是软件扩容。
4、百度有很多文档了,这个靠经验。
5、session的共享主要看用什么语言来开发,如果是php,可以设置把session存到memcache上。
6、主要思路是对于秒杀的高并发进行处理,先将提交的结果存到缓存,再依次处理。
我觉得这个面试题,主要还是看你平时有没有接触过类似的工作,如果有在工作中做过这方面工作,可以根据自己的项目经验来回答。