锁定老帖子 主题:一个面试官对面试问题的分析
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-18
IcyFenix 写道 smallboby 写道 在java的实际开发中针对垃圾回收到底要注意什么,垃圾回收都是自动化,到底还需要我们做哪些工作来针对垃圾回收呢,,不明白,望赐教。
自动化的东西容易靠不住呀,遇到泄漏,OOM,或者频繁GC对性能产生和大影响时,我们都要通过dump data、gc trace这些与内存、gc打交道。 可不可以这么说,正是因为垃圾回收是我们不可控制的。所以程序在创建对象的时候应该注意点。对象能复用的就复用。比如单例模式。 另外,在工作中发现不可控制的逻辑是最头疼的。 |
|
返回顶楼 | |
发表时间:2010-07-18
JVM以及GC的知识对于高级工程师确实是必备的
基本可以回答个大概 但是面试对GC的考核只是很小很小很小的一部分而已,面试要问的问题多了。 数据机构 数据库 IO 多线程 设计模式 OO |
|
返回顶楼 | |
发表时间:2010-07-18
王者之剑 写道 主贴内容不错,学习了。
但抱怨的兄弟好像是说你招一程序员,根本用不着问JVM的东西。 我也有一个疑问:是不是招一程序员就得考虑这人是不是将来能成为更高级的人才?有没有评价好的程序员的标准? 我不知道从你们面试的人角度怎么考虑招人是不是一定要招好苗子的。 单就从我们项目组现在的情况而言,好像不行。 我刚毕业一年,现在是第一个项目时间比较久。但是看到的情况是:项目组有些工作确实不需要很高的技术水平,(比如整理移交清单,部署说明之类的。全是流程化的东西,没啥技术含量,但是必须走流程)从项目组的角度考虑,这样的人必须有一个的。工作仔细认真,有技术问题也不需要你去处理,项目组有专门的技术组。(虽然项目组只有10个人。)但是从个人的角度而言,这样的工作好像没啥发展前途。如果自己在对技术没啥兴趣,那一直做这个能有什么前途呢? 反之,如果公司招进来的全是好苗子(既然是好苗子,肯定不会,至少不会长久的做流程化的东西),那谁去做那些重复性质的劳动呢? 个人看法。小弟还比较幼稚。各位大哥大姐见谅。 |
|
返回顶楼 | |
发表时间:2010-07-18
招进公司的做那些流程化然后还留下来的肯定不是好苗子
如果事情太简单又繁琐,不管是好苗子坏苗子都会走的 |
|
返回顶楼 | |
发表时间:2010-07-18
最后修改:2010-07-18
我能理解楼主的意思
楼主其实只是单纯的举出一个GC的例子,而没有其他的意思. 不过,我想说的,和三楼的有些相像 首先,有人说们提供你的IP地址 |
|
返回顶楼 | |
发表时间:2010-07-18
不得不再重复一下自己的观点,这个问题并没有要求应届生,或者社招的应聘者,一定要回答到什么程度算过关。
面试考察的问题应该能让能力很强的人有足够深度的发挥空间,初学者也不会感觉到无从入手、无话可说,能从问题的答案区分出应聘者的潜力和最适合的工作,那就达到了我的目的。 |
|
返回顶楼 | |
发表时间:2010-07-18
最后修改:2010-07-18
IcyFenix 写道 不得不再重复一下自己的观点,这个问题并没有要求应届生,或者社招的应聘者,一定要回答到什么程度算过关。
面试考察的问题应该能让能力很强的人有足够深度的发挥空间,初学者也不会感觉到无从入手、无话可说,能从问题的答案区分出应聘者的潜力和最适合的工作,那就达到了我的目的。 向楼主请教,我思考这个问题的方式可能和楼主不太一样。 我首先会去看JVM Spec规范中规定的GC行为有哪些,具体到什么程度,有没有算法上的规约。 如果只是行为上的规范,那么典型的实现算法有哪些,发展历程是怎样的,为什么要这样发展。 楼主提到深入Java虚拟机一书,但是这是一本很老的书,第一本是97年,第二版99年,10年来JVM的优化发生了很大变化,那么GC的实现应该也有很多不同的版本,包括商业的和开源的。相对来说我觉得针对某种JVM调优更有意义,但是这种调优基本都是参数级别的,很少有应用软件公司(甚至包括大部分中间件公司)会去实现自己的JVM。 |
|
返回顶楼 | |
发表时间:2010-07-18
haoweishow 写道 王者之剑 写道 主贴内容不错,学习了。
但抱怨的兄弟好像是说你招一程序员,根本用不着问JVM的东西。 我也有一个疑问:是不是招一程序员就得考虑这人是不是将来能成为更高级的人才?有没有评价好的程序员的标准? 我不知道从你们面试的人角度怎么考虑招人是不是一定要招好苗子的。 单就从我们项目组现在的情况而言,好像不行。 我刚毕业一年,现在是第一个项目时间比较久。但是看到的情况是:项目组有些工作确实不需要很高的技术水平,(比如整理移交清单,部署说明之类的。全是流程化的东西,没啥技术含量,但是必须走流程)从项目组的角度考虑,这样的人必须有一个的。工作仔细认真,有技术问题也不需要你去处理,项目组有专门的技术组。(虽然项目组只有10个人。)但是从个人的角度而言,这样的工作好像没啥发展前途。如果自己在对技术没啥兴趣,那一直做这个能有什么前途呢? 反之,如果公司招进来的全是好苗子(既然是好苗子,肯定不会,至少不会长久的做流程化的东西),那谁去做那些重复性质的劳动呢? 个人看法。小弟还比较幼稚。各位大哥大姐见谅。 前途对大多数人来说无非就是钱途。 我也很想知道为什么公司不愿意给能够把简单重复性的劳动做得很好的人比较高的待遇。 要是我就裁掉一半的人,给另一半人工资翻一倍。 我比较烦人多。 可能自己不开公司无法理解吧。 |
|
返回顶楼 | |
发表时间:2010-07-18
yangyi 写道 IcyFenix 写道 不得不再重复一下自己的观点,这个问题并没有要求应届生,或者社招的应聘者,一定要回答到什么程度算过关。
面试考察的问题应该能让能力很强的人有足够深度的发挥空间,初学者也不会感觉到无从入手、无话可说,能从问题的答案区分出应聘者的潜力和最适合的工作,那就达到了我的目的。 向楼主请教,我思考这个问题的方式可能和楼主不太一样。 我首先会去看JVM Spec规范中规定的GC行为有哪些,具体到什么程度,有没有算法上的规约。 如果只是行为上的规范,那么典型的实现算法有哪些,发展历程是怎样的,为什么要这样发展。 楼主提到深入Java虚拟机一书,但是这是一本很老的书,第一本是97年,第二版99年,10年来JVM的优化发生了很大变化,那么GC的实现应该也有很多不同的版本,包括商业的和开源的。相对来说我觉得针对某种JVM调优更有意义,但是这种调优基本都是参数级别的,很少有应用软件公司(甚至包括大部分中间件公司)会去实现自己的JVM。 可以啊,这种问题需要有什么必然权威的答案吗?不同的观点、角度,只要有用合理就很好啊。 |
|
返回顶楼 | |
发表时间:2010-07-18
IcyFenix 写道 不得不再重复一下自己的观点,这个问题并没有要求应届生,或者社招的应聘者,一定要回答到什么程度算过关。
面试考察的问题应该能让能力很强的人有足够深度的发挥空间,初学者也不会感觉到无从入手、无话可说,能从问题的答案区分出应聘者的潜力和最适合的工作,那就达到了我的目的。 事实上,我一直企图把软件开发的非管理类人员分成两种: 程序员 和 软件工程师,我认为这两种人需要的素质是不一样的,不仅仅是知识。 当然,现在似乎也有这两类人的划分。 不同的是我认为优秀的程序员的工资应该高于一般的软件工程师的工资。(我说的是同一公司内,而不是公司之间) 现在的情况是,你要拿的钱多点儿,你不得不去从事一些非程序员的工作。 |
|
返回顶楼 | |