锁定老帖子 主题:今天下午接到阿里的电话面试
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-17
爪哇夜未眠 写道 humiao8 写道 楼主不会是NCS 的吧
? 弱弱地问一句,NCS是什么东西 新电呗 |
|
返回顶楼 | |
发表时间:2011-11-17
哈哈,支持一下大鸟
|
|
返回顶楼 | |
发表时间:2011-11-17
wcg2008er 写道 爪哇夜未眠 写道 humiao8 写道 楼主不会是NCS 的吧
? 弱弱地问一句,NCS是什么东西 新电呗 新店是神马呢。。 |
|
返回顶楼 | |
发表时间:2011-11-17
尝试回忆下哦
1.hashmap的内部实现机制,hash是怎样实现的,什么时候rehash 这个问题,haspmap是通过继承dictionary类实现的,使用了两个Vector,一个指向值,一个指键 hash是通过散列表和散列码实现的,就是Object的hashcode(). 应该在每次对hashmap操作后,都rehasp,这个不确定。 2.java的内存管理 基本都是程序管理,所有对象都在heap堆里面。一些基本类型变量在stack里面 3.分布式缓存的内存管理,如何管理和释放不断膨胀的session,memcache是否熟悉 不太会,session应该是使用对象序列化存储管理,不了 4.oralce的底层管理(怎样让查询快,插入慢) 建一个查询索引就可以查询快,插入慢。。哈哈,具体不知道 5.java底层是怎样对文件操作的 太多了。。 6.研究了哪些框架的源码 。。 7.并发问题,锁,怎么处理死锁,脏数据处理 这个可以好好侃呀,每次面,都在这个问题侃半天 8.性能问题 。。。。好深的坑 9.equals和hashcode这些方法怎么使用的 equals和hashcode都是Object的类的继承,都可以override equals方法很多,可以按照内容或者是对象地址对应 hashcode也是 10.java的NIO nio 是 java New IO 的简称,在 jdk1.4 里提供的新 api 。。。。。 后面也一啪啦长 |
|
返回顶楼 | |
发表时间:2011-11-17
think in java哥也看了好几遍,怎么没有上面的题目啊
扯淡 |
|
返回顶楼 | |
发表时间:2011-11-17
neaudiy 写道 fancyboy2050 写道 把think in java认真看一遍能应付上面的一半的问题
瞎掰 确实不是瞎掰 |
|
返回顶楼 | |
发表时间:2011-11-17
NCS V5啊,楼主你们NCS现在还招人吗?小弟向往。
|
|
返回顶楼 | |
发表时间:2011-11-17
santiagow 写道 neaudiy 写道 fancyboy2050 写道 把think in java认真看一遍能应付上面的一半的问题
瞎掰 确实不是瞎掰 确实是瞎掰。 当初《think in java》的目录无法吸引我,我选择看《深入java虚拟机》。 |
|
返回顶楼 | |
发表时间:2011-11-17
原来你家的hashmap是这么做的啊!!
thebig 写道 尝试回忆下哦
1.hashmap的内部实现机制,hash是怎样实现的,什么时候rehash 这个问题,haspmap是通过继承dictionary类实现的,使用了两个Vector,一个指向值,一个指键 hash是通过散列表和散列码实现的,就是Object的hashcode(). 应该在每次对hashmap操作后,都rehasp,这个不确定。 2.java的内存管理 基本都是程序管理,所有对象都在heap堆里面。一些基本类型变量在stack里面 3.分布式缓存的内存管理,如何管理和释放不断膨胀的session,memcache是否熟悉 不太会,session应该是使用对象序列化存储管理,不了 4.oralce的底层管理(怎样让查询快,插入慢) 建一个查询索引就可以查询快,插入慢。。哈哈,具体不知道 5.java底层是怎样对文件操作的 太多了。。 6.研究了哪些框架的源码 。。 7.并发问题,锁,怎么处理死锁,脏数据处理 这个可以好好侃呀,每次面,都在这个问题侃半天 8.性能问题 。。。。好深的坑 9.equals和hashcode这些方法怎么使用的 equals和hashcode都是Object的类的继承,都可以override equals方法很多,可以按照内容或者是对象地址对应 hashcode也是 10.java的NIO nio 是 java New IO 的简称,在 jdk1.4 里提供的新 api 。。。。。 后面也一啪啦长 |
|
返回顶楼 | |
发表时间:2011-11-17
1.hashmap的内部实现机制,hash是怎样实现的,什么时候rehash
这个问题大致回答好像是:HashMap的内部数据结构是一个叫做entry的数组 transient Entry[] table;这个是代码。这个数据的索引是使用了哈希算法处理之后的。具体算发是通过key这个对象的Hashcode,然后 h & (length-1); 这个H就是hashcode。然后当成它的index。他的value就是传入的value对象。如果从数组拿对象的话直接传入算完之后的key直接返回就行了。具体的Hash算法是这样的 h ^= (h >>> 20) ^ (h >>> 12);h ^ (h >>> 7) ^ (h >>> 4); 什么时候rehash这个问题,JDK文档里面是这么说的。An instance of HashMap has two parameters that affect its performance: initial capacity and load factor. The capacity is the number of buckets in the hash table, and the initial capacity is simply the capacity at the time the hash table is created. The load factor is a measure of how full the hash table is allowed to get before its capacity is automatically increased. When the number of entries in the hash table exceeds the product of the load factor and the current capacity, the capacity is roughly doubled by calling the rehash method. |
|
返回顶楼 | |