avatar
几个Java面试题 (转载)# JobHunting - 待字闺中
J*n
1
【 以下文字转载自 Java 讨论区 】
发信人: JAlan (Alan), 信区: Java
标 题: 几个Java面试题
发信站: BBS 未名空间站 (Tue Sep 27 23:34:20 2011, 美东)
1. 如果数据查找多的话,需要使用哪种数据结构?
// 我复习下来,一直认为插入修改多用LinkedList,查询多的话用ArrayList. 但是好
像都不是正解。ArrayList如果查找value的话,也需要遍历整个列表。后来想了想,查
找最快的话就是binarySearch了,但是要基于sorted list的基础上,那是不是应该使
用SortedLinkedList呢?
2. 1 million的数据 (key-value),多查找,需要使用哪种数据结构?
// TreeMap 吗?
3. 使用线程实现1 billion 整数的求和,最后返回一个数
// 我把数据分成10份,定义10个线程来分别来做求和,最后把每个线程所得数相加,
得到最后的数。不知道思路对不对?
不过我困惑的是,如果是单一任务的话,难道不是单线程要比多线程快吗?可以一口气
运行,为什么还要浪费切换的时间呢?这道题的用意是什么呢?
谢谢。
avatar
S*I
2
我得说你对Java和多线程的理解还停留在很粗浅的水平上。第一题是HashTable,第二
题是HashMap;至于第三题,你好好想一想为什么多线程快。

【在 J***n 的大作中提到】
: 【 以下文字转载自 Java 讨论区 】
: 发信人: JAlan (Alan), 信区: Java
: 标 题: 几个Java面试题
: 发信站: BBS 未名空间站 (Tue Sep 27 23:34:20 2011, 美东)
: 1. 如果数据查找多的话,需要使用哪种数据结构?
: // 我复习下来,一直认为插入修改多用LinkedList,查询多的话用ArrayList. 但是好
: 像都不是正解。ArrayList如果查找value的话,也需要遍历整个列表。后来想了想,查
: 找最快的话就是binarySearch了,但是要基于sorted list的基础上,那是不是应该使
: 用SortedLinkedList呢?
: 2. 1 million的数据 (key-value),多查找,需要使用哪种数据结构?

avatar
c*p
3
单处理器环境和多处理器环境的原因不一样吧

【在 S**I 的大作中提到】
: 我得说你对Java和多线程的理解还停留在很粗浅的水平上。第一题是HashTable,第二
: 题是HashMap;至于第三题,你好好想一想为什么多线程快。

avatar
k*n
4
尽量不要用Hashtable。

【在 S**I 的大作中提到】
: 我得说你对Java和多线程的理解还停留在很粗浅的水平上。第一题是HashTable,第二
: 题是HashMap;至于第三题,你好好想一想为什么多线程快。

avatar
J*n
5
是啊,对于多线程没有实际的经验。如果是单核的情况下的话,我的理解有问题吗?

【在 S**I 的大作中提到】
: 我得说你对Java和多线程的理解还停留在很粗浅的水平上。第一题是HashTable,第二
: 题是HashMap;至于第三题,你好好想一想为什么多线程快。

avatar
J*n
6
那到底搜索多的话用什么数据结构呢?

【在 k****n 的大作中提到】
: 尽量不要用Hashtable。
avatar
g*y
7
I don't get it either: if single CPU, how come multi-thread runs faster?

【在 S**I 的大作中提到】
: 我得说你对Java和多线程的理解还停留在很粗浅的水平上。第一题是HashTable,第二
: 题是HashMap;至于第三题,你好好想一想为什么多线程快。

avatar
B*1
8
Agree. I think for multicore cpu with hardware thread, multithread will run
faster. For single core cpu, single thread is faster.

【在 g**********y 的大作中提到】
: I don't get it either: if single CPU, how come multi-thread runs faster?
avatar
J*n
9
那回到我的那个问题,1b的数据用多线程求和,到底什么是最佳答案 ?
avatar
S*I
10
If a processor supports multi-threading, it can split itself into multiple
logical cores. In this case, multi-thread could be faster.

【在 g**********y 的大作中提到】
: I don't get it either: if single CPU, how come multi-thread runs faster?
avatar
g*y
11
no matter how many logical cores you have, how could it run faster?

【在 S**I 的大作中提到】
: If a processor supports multi-threading, it can split itself into multiple
: logical cores. In this case, multi-thread could be faster.

avatar
e*l
12
即使是单核单线程CPU,也有可能多线程快。考虑方法会阻塞的情况。
avatar
k*n
13
sounds not true

【在 S**I 的大作中提到】
: If a processor supports multi-threading, it can split itself into multiple
: logical cores. In this case, multi-thread could be faster.

avatar
c*p
14
如果线程遇到cache miss或者等待IO,会有几百个周期处于闲置,可以把其他线程唤醒
运行;cahce miss或者IO请求返回之后,再把原线程唤醒。

【在 g**********y 的大作中提到】
: I don't get it either: if single CPU, how come multi-thread runs faster?
avatar
y*g
15
HashMap

【在 J***n 的大作中提到】
: 那到底搜索多的话用什么数据结构呢?
avatar
B*1
16
Why?
Thanks

【在 k****n 的大作中提到】
: sounds not true
avatar
y*g
17
hyper threading不就是这个意思吗?
没什么问题吧
求详解

【在 k****n 的大作中提到】
: sounds not true
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。