鹅厂面试题,你能说出来几个?

Intboy 2016-04-01 02:01:55
加精
说几个自己遇到的面试题:
1:如果让你实现一个Spring的IOC容器,你会怎么实现?注意哪些问题?
2:你系统现在支持秒级1000并发,如果用户量更大的时候,你会怎么做?
3:nginx做在前端做反向代理的时候,后端的服务器集群应该怎么划分?
4:如果你的系统瓶颈在数据库IO上的时候,你会如何优化?
5:当发现某个java线程占CPU或内存非常高的时候,你如何定位?
...全文
8538 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 48 楼 大峡谷国家公园的回复:
第5个问题,使用命令top-p,shift-h可以看到进程下的所有Java线程,把占用最高的线程id转为16进制,用jstack命令生成线程堆栈信息,id一比对就可以知道是谁在吃CPU了,当然给线程起个有意义名字最好。我是这么搞的。。
或者是用jvisual vm之类的,不过需要开启jmx
  • 打赏
  • 举报
回复
第5个问题,使用命令top-p,shift-h可以看到进程下的所有Java线程,把占用最高的线程id转为16进制,用jstack命令生成线程堆栈信息,id一比对就可以知道是谁在吃CPU了,当然给线程起个有意义名字最好。我是这么搞的。。
xieshengjun2009 2016-08-03
  • 打赏
  • 举报
回复
好长时间没来了,看着火龙果大神回复的帖子进来的, 鹅厂的问题,基本都是探索性的,是需要具备一定的功力才能回答的 ,题目的主观性非常强,考验 考察个人技术功底、综合分析能力,这些问题当然,我觉得只要回答相关的技术相关点,及对应的 处理机制,简述原理即可。 不错的帖子!赞
  • 打赏
  • 举报
回复
5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? 1. top -H 查到线程占用 CPU 高的那个线程编号 2. jstack -l <pid> 导出 java 进程的线程栈信息,把第 1 步的编号转为 16 进制在这个结果中查找 3. 一般都能找到,找到的话通过线程堆栈找到问题所在
ArayChou 2016-05-16
  • 打赏
  • 举报
回复
5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? jstack吧(sun的jvm有,其它厂商的不是很清楚),这应该是查找java虚拟机cpu开销大的最佳工具了。很清晰的看是那些线程在执行,call stack是什么。 可以每个几秒重复执行几次,将结果输出到文件,对比几次更能说明问题。
oh_Maxy 2016-05-11
  • 打赏
  • 举报
回复
引用 42 楼 qq_24026899 的回复:
[quote=引用 22 楼 oh_Maxy 的回复:] 5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? 面试官希望得到的答案是,kill -3 杀进程,分析javacore文件。
引用 23 楼 ch1240249252 的回复:
1:如果让你实现一个Spring的IOC容器,你会怎么实现?注意哪些问题? 注解... ...小心点用 2:你系统现在支持秒级1000并发,如果用户量更大的时候,你会怎么做? 系统繁忙 3:nginx做在前端做反向代理的时候,后端的服务器集群应该怎么划分? 一点也不了解 4:如果你的系统瓶颈在数据库IO上的时候,你会如何优化? 存储过程,缓存机制 5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? ps -ef 找到它 kill -9干掉
引用 26 楼 shijing266 的回复:
楼主说说你自己的理解~
我觉得 第五个问题可以打开任务管理器 然后点击进程。然后 点击CPU 吧最上面的那个结束进程就好了 [/quote] 大部分应用服务器都不在Windows上部署的,应该考的是Linux命令。
奄灬苟且偷生 2016-05-10
  • 打赏
  • 举报
回复
引用 42 楼 qq_24026899 的回复:
我觉得 第五个问题可以打开任务管理器 然后点击进程。然后 点击CPU 吧最上面的那个结束进程就好了
我觉的 你好像是 新手,服务器不是windows的几率太大了
qq_24026899 2016-05-09
  • 打赏
  • 举报
回复
引用 22 楼 oh_Maxy 的回复:
5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? 面试官希望得到的答案是,kill -3 杀进程,分析javacore文件。
引用 23 楼 ch1240249252 的回复:
1:如果让你实现一个Spring的IOC容器,你会怎么实现?注意哪些问题? 注解... ...小心点用 2:你系统现在支持秒级1000并发,如果用户量更大的时候,你会怎么做? 系统繁忙 3:nginx做在前端做反向代理的时候,后端的服务器集群应该怎么划分? 一点也不了解 4:如果你的系统瓶颈在数据库IO上的时候,你会如何优化? 存储过程,缓存机制 5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? ps -ef 找到它 kill -9干掉
引用 26 楼 shijing266 的回复:
楼主说说你自己的理解~
我觉得 第五个问题可以打开任务管理器 然后点击进程。然后 点击CPU 吧最上面的那个结束进程就好了
GWLCGL520 2016-04-19
  • 打赏
  • 举报
回复
引用 40 楼 GB1412 的回复:
[quote=引用 9 楼 GWLCGL520 的回复:] 请恕我孤陋寡闻,鹅厂是哪里哈?
百度:熊厂、狼厂、蓝厂 腾讯:鹅厂 阿里巴巴:猫厂、东厂、西厂 新浪:渣浪 网易:猪厂(本人好像没听过这种叫法,但是确实也有人这样叫过) 搜狐:狐厂 京东:狗厂 小米:杂粮、粗粮、粮厂 去哪儿:驼厂 迅雷:鸟厂、蜂厂 豆瓣:豆厂 UC:松鼠厂 携程:海豚厂 途牛:牛厂[/quote]我应该想到的,腾讯的小企鹅太深入人心了。。
GB1412 2016-04-18
  • 打赏
  • 举报
回复
引用 9 楼 GWLCGL520 的回复:
请恕我孤陋寡闻,鹅厂是哪里哈?
百度:熊厂、狼厂、蓝厂 腾讯:鹅厂 阿里巴巴:猫厂、东厂、西厂 新浪:渣浪 网易:猪厂(本人好像没听过这种叫法,但是确实也有人这样叫过) 搜狐:狐厂 京东:狗厂 小米:杂粮、粗粮、粮厂 去哪儿:驼厂 迅雷:鸟厂、蜂厂 豆瓣:豆厂 UC:松鼠厂 携程:海豚厂 途牛:牛厂
Intboy 2016-04-15
  • 打赏
  • 举报
回复
引用 37 楼 PALadinWIC 的回复:
楼主先交待下你这个头像的图片是从哪里弄的吧。
不能说的秘密
PALadinWIC 2016-04-13
  • 打赏
  • 举报
回复
楼主先交待下你这个头像的图片是从哪里弄的吧。
Cx_轩 2016-04-13
  • 打赏
  • 举报
回复
6666 学习了!
aierda 2016-04-12
  • 打赏
  • 举报
回复
不错,谢谢分享
qq_30730485 2016-04-12
  • 打赏
  • 举报
回复
大写懵逼....
benluobo 2016-04-12
  • 打赏
  • 举报
回复
1:如果让你实现一个Spring的IOC容器,你会怎么实现?注意哪些问题? 针对IOC,应该会采用Map的方式的,其实Spring底层也是通过这种方式实现的,最主要是需要注意单例和多例,还有循环依赖的问题,这都是Spring经过细致处理的问题点。 2:你系统现在支持秒级1000并发,如果用户量更大的时候,你会怎么做? 这个很简单,普通做法就是做应用服务器集群 3:nginx做在前端做反向代理的时候,后端的服务器集群应该怎么划分? 怎么划分?不太明白,一致性Hash的分布式算法+KeepAlive? 4:如果你的系统瓶颈在数据库IO上的时候,你会如何优化? 数据库IO,当然是缓存 考虑分布式数据库,读写分离+分库分表 5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? CPU: JSTACK能看出的来线程HANG在哪一行的 内存:JMAP导出core文件,用工具查看对象分布
oh_Maxy 2016-04-12
  • 打赏
  • 举报
回复
引用 31 楼 okkk 的回复:
[quote=引用 22 楼 oh_Maxy 的回复:] 5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? 面试官希望得到的答案是,kill -3 杀进程,分析javacore文件。
这个办法可以在生产环境用用。 但调试程序,一般都应该考虑在开发环境。 如果说开发环境没法重现,那么要修改成功,始终靠的是猜测和运气。我这边做项目的一般原则是: 生产环境不允许安装调试工具。如果有无法重现的问题,那么准备好重写系统或回滚版本吧。 [/quote] 你说的对。 面试题一般都是比较理想的场景。如果面试官想加注,可以再追问一些复杂情形。
okkk 2016-04-11
  • 打赏
  • 举报
回复
引用 22 楼 oh_Maxy 的回复:
5:当发现某个java线程占CPU或内存非常高的时候,你如何定位? 面试官希望得到的答案是,kill -3 杀进程,分析javacore文件。
这个办法可以在生产环境用用。 但调试程序,一般都应该考虑在开发环境。 如果说开发环境没法重现,那么要修改成功,始终靠的是猜测和运气。我这边做项目的一般原则是: 生产环境不允许安装调试工具。如果有无法重现的问题,那么准备好重写系统或回滚版本吧。
wangsufu77 2016-04-11
  • 打赏
  • 举报
回复
DreamLife. 2016-04-08
  • 打赏
  • 举报
回复
完全懵逼了,都不知道是什么,看来我是太菜了
加载更多回复(28)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧