2012/11/11 vmware 笔试题目


今天在上海交大闵行校区,笔试了vmware。写一篇日志,记录下笔试的题目。

试题形式:90分钟。20道不定项选择题,占60%分数;2个写程序的题目,占40%分数。全英文。

从后往前写吧,因为后边的题目记得清楚些。题目后边的 ref 是我搜索到一些相关技术文章,供我写完这篇随笔后慢慢学习使用。

 

一. 写程序题目:

1. 给定一个 int 类型的数,在一个已经排序好的数列 int[] 中查找该数出现了多少次。例如 [1 1 2 2 2 4 6 7 7 8 9 10], f(7) = 2。设计一个你认为最理想的算法。描述算法,并给出时间复杂度。

  我是用 java 写的,算法是构建一个 Hashtable<Integer, Integer>, key 和 value 分别是数字和该数字出现的次数。然后在这个Hashtable 中查找给定数字出现的次数。构建 Hashtable 的时间复杂度是 O(n),n 是数列长度,查找给定数字的时间复杂度是 O(1)。

2. (第二个题目描述很复杂,而且我做到这道题的时候,已经不到10分钟了,我按照我记得的复述一下,不一定正确)分配存储空间,有一种 aligned_malloc 方法,它每次动态分配的存储空间是2的次方,比如 16, 32, 64...,根据实际需要的 size 来确定分配的 aligned memory。实现下面两个函数:

  1) void * aligned_malloc(int size, int alignment)

  2) void * aligned_free(void * memory)

  ref: http://msdn.microsoft.com/zh-cn/library/vstudio/8z34s9c6.aspx

 

二. 选择题目

  每一道题目都需要一定的时间,所以这部分我记得的比较乱,而且我记住的许多是我不会或者拿不准的题目,毕竟比较困难的题目在脑海中会盘桓的比较久一点。我随便写下我记得的吧,下面的标号不是实际的题号。

 

1. 这是第一题,给定一个数组和数组的排序过程,然后问是那种排序,我选的是堆排序。不过选项中有个 shell sort,我忘了是它是怎么实现的了...

 

2. GET 和 POST 的区别,当然,题目本身不是这么问的,每个选项都很细节,我不确定。记得有 GET是不是比 post 更安全, post是不是能传输更多的信息, post 的传输数据量是不是无限的。

  ref: http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

    http://zhidao.baidu.com/question/7984230.html

    http://youngsin2009.cnblogs.com/

 

3. Etag 标签和 http 协议中什么选择相关联,我选择了 if-modified-since,回来之后,百度了下,还应该选 if-matched/if-none-match

  ref: http://en.wikipedia.org/wiki/HTTP_ETag

    http://baike.baidu.com/view/3039264.htm

 

4. 数据库有连个选择题,一个是 pattern expression 的,选取某 column 中以字符串 abcd 开头的项,答案是 A,表达式部分是 LIKE 'abcd%'  ; 另一道数据库的题目是 database index 是用哪些数据结构实现的,选项有 b tree, b+ tree, b- tree, AVL tree 还有一个忘了,我只选了 b+ b-树,应该是漏选了。

  ref: http://en.wikipedia.org/wiki/Database_index

    http://blog.csdn.net/hguisu/article/details/7786014

    http://blog.jobbole.com/24006/

 

5. 有两道虚函数表的题目,Vmware 好像很看重这个,因为我看到在2010年和2011年的笔试面试中都有这方面的题目,当然,它不是直接问你概念,而是很具体的例子和细节,所以尽管我之前看了好几篇虚函数表的文章,依然不是很确定做没做对。 

 

6. 完全二叉树,有 N 个node, 问叶子节点有多少个。

  我通过举列子试验,得出答案是:N/2 和 N/2 + 1

 

7. 死锁问题。有3个 processes,每个process 都需要4个同一类型的 resources。问如果不发生死锁,那么至少 (at least) 需要多少个 resources?

  选项有9、10、11、12 四个。 我选择的10。

 

8. toplogical sort 问题。一个单项无环图 (a directed acyclic graph),有这些边 (<1, 2> <2, 3> <3, 4> <1, 4>),问这幅图的 toplogical sort 是什么?

  选项有四个,我选了两项。(a) 1, 2, 4, 3   和 (b) 1, 4, 2, 3  

 

9. Brain teaser 题目有两三个吧。只记得一个排队买电影票的问题。题目是有10个人排队买电影票,电影票每张 5$,其中5个有 5$ 的纸币,另外5个人只有 10$ 的纸币,问有多少种排队方法,让售票员顺利卖给他们票,同时不需要准备售票员自己准备钱?

  选项有41, 42, 43... 这道题我想了会儿没想出来,就随便选了一项,继续往下做了。

 

写到这里发现大部分的题目都已经被我写出来,看来我的记忆力还可以 :-0)  但愿我能通过笔试吧 O(∩_∩)O~


为什么要学JVM1、一切JAVA代码都运行在JVM之上,只有深入理解虚拟机才能写出更强大的代码,解决更深层次的问题。2、JVM是迈向高级工程师、架构师的必备技能,也是高薪、高职位的不二选择。3、同时,JVM又是各大软件公司笔试、面试的重中之重,据统计,头部的30家互利网公司,均将JVM作为笔试面试的内容之一。4、JVM内容庞大、并且复杂难学,通过视频学习是最快速的学习手段。课程介绍本课程包含11个大章节,总计102课时,无论是笔试、面试,还是日常工作,可以让您游刃有余。第1章 基础入门,从JVM是什么开始讲起,理解JDK、JRE、JVM的关系,java的编译流程和执行流程,让您轻松入门。第2章 字节码文件,深入剖析字节码文件的全部组成结构,以及javap和jbe可视化反解析工具的使用。第3章 类的加载、解释、编译,本章节带你深入理解类加载器的分类、范围、双亲委托策略,自己手写类加载器,理解字节码解释器、即时编译器、混合模式、热点代码检测、分层编译等核心知识。第4章 内存模型,本章节涵盖JVM内存模型的全部内容,程序计数器、虚拟机栈、本地方法栈、方法区、永久代、元空间等全部内容。第5章 对象模型,本章节带你深入理解对象的创建过程、内存分配的方法、让你不再稀里糊涂。第6章 GC基础,本章节是垃圾回收的入门章节,带你了解GC回收的标准是什么,什么是可达性分析、安全点、安全区,四种引用类型的使用和区别等等。第7章 GC算法与收集器,本章节是垃圾回收的重点,掌握各种垃圾回收算法,分代收集策略,7种垃圾回收器的原理和使用,垃圾回收器的组合及分代收集等。第8章 GC日志详解,各种垃圾回收器的日志都是不同的,怎么样读懂各种垃圾回收日志就是本章节的内容。第9章 性能监控与故障排除,本章节实战学习jcmd、jmx、jconsul、jvisualvm、JMC、jps、jstatd、jmap、jstack、jinfo、jprofile、jhat总计12种性能监控和故障排查工具的使用。第10章 阿里巴巴Arthas在线诊断工具,这是一个特别小惊喜,教您怎样使用当前最火热的arthas调优工具,在线诊断各种JVM问题。第11章 故障排除,本章会使用实际案例讲解单点故障、高并发和垃圾回收导致的CPU过高的问题,怎样排查和解决它们。课程资料课程附带配套项源码2个159页高清PDF理论篇课件1份89页高清PDF实战篇课件1份Unsafe源码PDF课件1份class_stats字段说明PDF文件1份jcmd Thread.print解析说明文件1份JProfiler内存工具说明文件1份字节码可视化解析工具1份GC日志可视化工具1份命令行工具cmder 1份学习方法理论篇部分推荐每天学习2课时,可以在公交地铁上用手机进行学习。实战篇部分推荐对照视频,使用配套源码,一边练习一遍学习。课程内容较多,不要一次性学太多,而是要循序渐进,坚持学习。      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值