黑马程序员技术交流社区
标题:
分享阿里巴巴2014招聘笔试题!
[打印本页]
作者:
lovecx24
时间:
2013-11-29 23:42
标题:
分享阿里巴巴2014招聘笔试题!
本帖最后由 lovecx24 于 2013-11-30 00:05 编辑
分享两道阿里巴巴2014招聘笔试题第一题:问下面哪个方法计算速度更快?
public class FFFtest {
public static void main(String[] args) {
int[] a=new int[1000];
int[] b=new int[10000000];
long start = System.currentTimeMillis();
//method 1
for(int i=0;i<1000;i++){
for(int j=0;j<10000000;j++){
a[i]++;
}
}
long end = System.currentTimeMillis();
System.out.println(end-start);
start=System.currentTimeMillis();
//method 2
for(int i=0 ;i<10000000;i++){
for(int j=0;j<1000;j++){
b[i]++;
}
}
end = System.currentTimeMillis();
System.out.println(end-start);
}
}
复制代码
第二题:求出一下每个线程的输出结果(不用关心线程顺序,只需写出输出的结果集即可)
public class TestThread{
public static void main(String[] args){
//test1
Thread t1 = new Thread();{
@Override
public void run(){
try{
int i=0;
while(i++<100000000){
//nothing
}
System.out.println("A1");
}catch(IOException e){
System.out.println("B1");
}
}
};
t1.start();
t1.interrupt();
//test2
Thread t2 = new Thread(){
public void run(){
try{
Thread.sleep(50000);
System.out.println("A2");
}catch(IOException e){
System.out.println("B2");
}
}
};
t2.start();
t2.start();
//test3
Thread t3 = new Thread(){
public static void run(){
try{
Thread.sleep(50000);
System.out.println("A3");
}catch(IOException e){
System.out.println("B3");
}
}
};
t3.start();
t3.interrupt();
//t4
Thread t4 = new Thread(){
public void run(){
try{
Thread.sleep(50000);
System.out.println("A4");
}catch(IOException e){
System.out.println("B4");
}
}
};
t4.start();
t4.start();
//test5
try{
t4.start();
System.out.println("A5");
} catch(IOException e){
System.out.println("B5");
}
}
}
复制代码
作者:
石头6004
时间:
2013-11-30 00:19
第二题,我看的时候,你还没排版,乱的啊!!!
B5 B2 B4 B3 A1
都快绕晕了
开始程序执行,t1中断,t2 sleep(5000)中断,t3 sleep(50000)中断,t4(50000)中断,捕捉到t4.start异常,输出B5; t1循环未结束,继续异常中断,t2输出B2,t3,继续sleep 中断,t4因为输出B5时是扑捉t4.start的异常,所以sleep结束,输出B4;t1循环还未结束,继续异常中断,t3,sleep结束,输出B3,t1循环结束,没有捕捉到异常,输出A1
作者:
石头6004
时间:
2013-11-30 00:27
第一题:个人觉得,是Method1的快些;
两种方法,循环次数一致,但是Method2需要开辟10000000个空间来存储数据
Method1只需要开辟1000个空间
作者:
鲍海峰
时间:
2013-12-4 00:39
顶,阿里一直是我想进的公司,虽然以我现在的水平还不知道
作者:
QQ被盗
时间:
2013-12-4 09:38
第一题是method2快些,我运行了两次,都是method2快些,哈哈
其实个人觉得是第二个,因为开辟空间实在记时之前就开辟空间了,所以开辟空间不会影响后面的记时,而是method1和method2两个的循环次数相同,但是他们在内循环中相加的次数却不同,method1每次都加10000000,而method2每次都加1000
哈哈,这是个人意见啊,不要打击我哦
Image.png
(1.74 KB, 下载次数: 35)
下载附件
2013-12-4 09:34 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2