发表时间:2010-07-19
linchao198401 写道 IcyFenix 写道 mogui258 写道 最后介绍一下自己的背景,在一间不大不小的上市软件公司担任平台架构师,有3年左右的面试官经验,工作主要方向是大规模企业级应用,参与过若干个亿元级的项目的底层架构工作。
3年面试经验,多少年工作经验?? 总觉得楼主面试的这道面试题很难,10%的人能回答出都觉得很高了。 如果是10%,他们都又有多少年工作经验呢! 工作3年以下的应该很少有看 《深入jvm》 这本书的吧! 3年面试经验,多少年工作经验?? 工作经验不好说,06年本科毕业,09年在职硕士毕业,但是本科没有毕业就已在公司工作的正式员工。 总觉得楼主面试的这道面试题很难,10%的人能回答出都觉得很高了。 确实,回答道第三点的,10%都不到,回答道第四点的几乎没有。 如果是10%,他们都又有多少年工作经验呢! 能回答道第三点的,应届生到工作10年的人都有。 工作经验某种程度上只能代表实践程度,应届生可能确实只能从书本上看来的,而社招应聘者可能是工作中、调优中用到时去学习的。天份与实践经验我都看重。 工作3年以下的应该很少有看 《深入jvm》 这本书的吧! 感觉论坛上好多人都看过。 楼主确实能力不错,工作四年,有这样的成就,而且平时的时间还去读研究生,可见对自己的人生有很好的规划,前途很好啊。 我工作五年了,可惜还发展的不好。 我最近在看数据库的知识。 我能随便问你些问题,然后你在不查资料的情况下,随便说说嘛? 因为我用的比较多的是MySQL和Oracle。 请问你这两个数据库熟悉吗? 知道事务吗? 事务有哪些隔离性? 事务的并发是怎么实现的?一般有几种你知道的实现方式? 你知道数据库的锁吗,有哪些锁类型,对于MySQL不同的引擎有哪些不同的锁机制。例如什么引擎有什么样的锁? Oracle有哪些类型的锁?为什么说Oracle里面没有锁升级的概念?为什么MySQL里面需要锁升级? Oracle和MySQL都用多版本并发控制也就Multi Versioning Concurrency Control。MVCC。能知道他是怎么样的一个机制吗?有什么样的好处? 对于不同的隔离性,哪些是可以使用MVCC,哪些是不能使用? 知道Latch,也就是闩,Oracle什么时候会用到呢? 为什么说有些数据库的锁加的越多,需要升级锁,因为锁对于哪些数据库是一种宝贵的资源,而对于Oracle来说确不是这样。Oracle是怎么做到的? 跟Java里面的锁有什么相同和不同的地方? Java的Synchronized和Compare And Set有什么不同吗?什么时候会用Compare And Set,Java JDK里面有实现吗? 对于锁资源的管理来说,锁管理是怎么样的一个实现呢。是队列吗,是Hash吗?如果让你实现你会怎么实现? 我记得Java分配对象的时候也需要有某种锁,所以对于每个线程会预先提供一些内存空间,因为是线程内的,所以就不会和多线程竞争内存空间,你觉得我说的对吗?你有了解,能更清晰的解释这个机制吗? 期待你的解答。 同时我也可以多学点锁和同步并发,以及里面的实现等问题。 为以后的面试做准备。 已看到,现在下班,回家就回答一下,不GOOGLE。 公司有数据库组,所以数据库实在说不上擅长,很多题目都被问倒了@_@ ------------------------------------------ 我写完了,编译一下这楼,觉得自己回答得有点失败。 因为我用的比较多的是MySQL和Oracle。 请问你这两个数据库熟悉吗? 公司用Oracle,我自己做点小东西的时候比较乐意选择SQLite,MySQL没有用过,我只回答Oracle的吧。 知道事务吗? 呃,如果只是定义为知道而不是什么擅长、精通的话……我想应该能叫知道吧 事务有哪些隔离性? 串行、可重复读、读取已提交数据、读取未提交数据 事务的并发是怎么实现的?一般有几种你知道的实现方式? 是问乐观、悲观锁定吗? 你知道数据库的锁吗,有哪些锁类型,对于MySQL不同的引擎有哪些不同的锁机制。例如什么引擎有什么样的锁? 性质上来讲,共享和排他锁,范围上来讲,数据库级(SQLite只提供这个范围的锁)、表、行,也有称表级锁为DDL锁,行级为DML锁,Oracle里面根据性质和范围,组合成……呃TM、SX之类的几种锁,具体就不记得了。这个回答我知道不太准确@_@ Oracle有哪些类型的锁?为什么说Oracle里面没有锁升级的概念?为什么MySQL里面需要锁升级? 当锁定数据过于密集,将会将锁升级一个范围级别。譬如一张表被一个链接锁定的行太多,将可能升级为表锁,这时候大粒度的锁定反而更加有效率。Oracle为什么没有锁升级这个答不上来…… Oracle和MySQL都用多版本并发控制也就Multi Versioning Concurrency Control。MVCC。能知道他是怎么样的一个机制吗?有什么样的好处? 对于不同的隔离性,哪些是可以使用MVCC,哪些是不能使用? 回答不上来…… 知道Latch,也就是闩,Oracle什么时候会用到呢? 我只知道是比锁更小的锁钉单位,具体在数据库中的使用过程真的不了解。 为什么说有些数据库的锁加的越多,需要升级锁,因为锁对于哪些数据库是一种宝贵的资源,而对于Oracle来说确不是这样。Oracle是怎么做到的? 同上面问过的……不知道 跟Java里面的锁有什么相同和不同的地方? Java的Synchronized和Compare And Set有什么不同吗?什么时候会用Compare And Set,Java JDK里面有实现吗? 终于熬到Java了,上面数据库太打击人,我决定明天拿去数据库组给他们耍一下。 Java并发我还好曾经给在部门做过这个培训,这方面擅长一些,同步是基于临界区互斥检测的,CAS是依赖系统本身保证比较-设置这个操作的原子性。JDK5之后提供了java.util.concurrent包,里面的原子int、原子long等就是基于CAS实现。 并没有一定必须使用CAS才能完成的场景,使用CAS的最大理由是基于性能考虑,但是有很多一定需要使用Synchronized才能完成的场景,譬如最简单的你要使用object.wait/notify。 对于锁资源的管理来说,锁管理是怎么样的一个实现呢。是队列吗,是Hash吗?如果让你实现你会怎么实现? 不好意思,这个问能否描述得更清楚一些,锁资源管理是指? 我记得Java分配对象的时候也需要有某种锁,所以对于每个线程会预先提供一些内存空间,因为是线程内的,所以就不会和多线程竞争内存空间,你觉得我说的对吗?你有了解,能更清晰的解释这个机制吗? 我的观点是与你有较大差别:除非强制指定了volatile,不然多线程中各个线程对变量的操作并不会直接竞争同一块内存空间,线程有自己的工作内存作为主内存中与此线程相关对象的复制品,线程中的操作都相对于工作内存而言,数据的修改只有在工作内从中修改然后同步回主内存后,才能被各个线程共享。而Java中基于性能考虑,修改与刷新回主内存并不保证严格顺序,所以才会有单例DCL失败这样的事情,关于这个在我javaeye的博客上,去年写的单例模式有过相关的叙述:) 期待你的解答。 同时我也可以多学点锁和同步并发,以及里面的实现等问题。 为以后的面试做准备。 也谢谢你的问题,Java部分我们可以继续交流,数据库部分我真的受打击了,握手。 |
|
发表时间:2010-07-19
linchao198401 写道 IcyFenix 写道 mogui258 写道 最后介绍一下自己的背景,在一间不大不小的上市软件公司担任平台架构师,有3年左右的面试官经验,工作主要方向是大规模企业级应用,参与过若干个亿元级的项目的底层架构工作。
3年面试经验,多少年工作经验?? 总觉得楼主面试的这道面试题很难,10%的人能回答出都觉得很高了。 如果是10%,他们都又有多少年工作经验呢! 工作3年以下的应该很少有看 《深入jvm》 这本书的吧! 3年面试经验,多少年工作经验?? 工作经验不好说,06年本科毕业,09年在职硕士毕业,但是本科没有毕业就已在公司工作的正式员工。 总觉得楼主面试的这道面试题很难,10%的人能回答出都觉得很高了。 确实,回答道第三点的,10%都不到,回答道第四点的几乎没有。 如果是10%,他们都又有多少年工作经验呢! 能回答道第三点的,应届生到工作10年的人都有。 工作经验某种程度上只能代表实践程度,应届生可能确实只能从书本上看来的,而社招应聘者可能是工作中、调优中用到时去学习的。天份与实践经验我都看重。 工作3年以下的应该很少有看 《深入jvm》 这本书的吧! 感觉论坛上好多人都看过。 楼主确实能力不错,工作四年,有这样的成就,而且平时的时间还去读研究生,可见对自己的人生有很好的规划,前途很好啊。 我工作五年了,可惜还发展的不好。 我最近在看数据库的知识。 我能随便问你些问题,然后你在不查资料的情况下,随便说说嘛? 因为我用的比较多的是MySQL和Oracle。 请问你这两个数据库熟悉吗? 知道事务吗? 事务有哪些隔离性? 事务的并发是怎么实现的?一般有几种你知道的实现方式? 你知道数据库的锁吗,有哪些锁类型,对于MySQL不同的引擎有哪些不同的锁机制。例如什么引擎有什么样的锁? Oracle有哪些类型的锁?为什么说Oracle里面没有锁升级的概念?为什么MySQL里面需要锁升级? Oracle和MySQL都用多版本并发控制也就Multi Versioning Concurrency Control。MVCC。能知道他是怎么样的一个机制吗?有什么样的好处? 对于不同的隔离性,哪些是可以使用MVCC,哪些是不能使用? 知道Latch,也就是闩,Oracle什么时候会用到呢? 为什么说有些数据库的锁加的越多,需要升级锁,因为锁对于哪些数据库是一种宝贵的资源,而对于Oracle来说确不是这样。Oracle是怎么做到的? 跟Java里面的锁有什么相同和不同的地方? Java的Synchronized和Compare And Set有什么不同吗?什么时候会用Compare And Set,Java JDK里面有实现吗? 对于锁资源的管理来说,锁管理是怎么样的一个实现呢。是队列吗,是Hash吗?如果让你实现你会怎么实现? 我记得Java分配对象的时候也需要有某种锁,所以对于每个线程会预先提供一些内存空间,因为是线程内的,所以就不会和多线程竞争内存空间,你觉得我说的对吗?你有了解,能更清晰的解释这个机制吗? 期待你的解答。 同时我也可以多学点锁和同步并发,以及里面的实现等问题。 为以后的面试做准备。 DBA |
|
发表时间:2010-07-19
lz的问题其实我觉得选的不错,因为这个关于JVM的问题其实不同工作经验人回答的层次都不一样。通过这个可以充分的看出面试者理解到什么程度。也就是说如果对于工作5年以上的人还只理解到刚毕业的人那层次则有点不长进或者有假。但是面试绝非说你回答不出来就不行。
|
|
发表时间:2010-07-20
偷偷跑来学习一下。 强人真多。
|
|
发表时间:2010-07-20
上面一串数据库的问题让我彻底歇菜......
看来要走的路还很长很长啊 |
|
发表时间:2010-07-20
看了此贴,发现自己真的需要向深发展啊。 |
|
发表时间:2010-07-20
楼主也不过是在考察一个人阅读能力而已.搞java的,但凡喜欢阅读的技术书的人,对楼主提的问题应该都有印像,运气好点儿的,最近刚看还记得.运气差点儿的.早忘了.
我倒是想知道,楼主您不是开发虚拟机的.这问题您就真在工作中被用到了? |
|
发表时间:2010-07-20
nomoney 写道 楼主也不过是在考察一个人阅读能力而已.搞java的,但凡喜欢阅读的技术书的人,对楼主提的问题应该都有印像,运气好点儿的,最近刚看还记得.运气差点儿的.早忘了.
我倒是想知道,楼主您不是开发虚拟机的.这问题您就真在工作中被用到了? 我不开发虚拟机,但是这个问题的知识在实际工作中用到很奇怪吗? |
|
发表时间:2010-07-20
哎,只能感慨自己的前途是任重道远,向高手致敬!
顺便请教一下,当发现自己技术缺陷较大时,该从哪方面入手? 换句话说,哪些基本的技术或原理,是一个程序员必须掌握或了解的? 期待楼上的各位指点 |
|
发表时间:2010-07-20
likeblood 写道 回答这样的问题 没什么经验可言 都是从书本和网上获取的知识
除非求职者实现过jvm 我很久不面试了 也很久不给别人面了 所以没什么面试官经验 我的原则是根据求职者的自己写的简历 以及不同的经历问不同的问题 应届生我就问他基本的数据结构和上课学过的东西 这个考察对方是不是真的在学什么 对于有经验的 当然就问项目的事情 总之不同工作经验的人应聘不同的职位不应该问一样的问题 每个做面试官的人 相对求职者而言 多少都会有些优越感 这个时候最能考验面试官自己的素质 很欣赏lz的平和心态 毕竟也许将来模式面试官和求职者的角色关系可能会互换 其实如果你要对服务器的JVM进行性能优化调整,充分理解所使用的JVM的内存管理机制和垃圾回收方式是非常有必要的。不过这些工作一般的开发人员是不容易接触到。 |