Java 问答

1,ArrayList和Vector的区别,HashMap和Hashtable的区别

答:就ArrayList和Vector主要从2方面说,

一,同步性:Vector是线程安全的,也就是同步的,而ArrayList是线程不安全的,不是同步的;

二,数据增长:当需要增长时,Vector默认增长为原来的一倍,而ArrayList为原来的一半;

 

就HashMap与HashTable主要从3方面说,

一,历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现;

二,同步性:Hashtable是线程安全的,也就是同步的,而hashMap是线程不安全的,不是同步的

三,只有HashMap可以将空值作为一个表单key或者value

 

2,public class OuterClass{

private double d1 = 1.0;

//insert code here

}

you need to insert an inner class declaration at line 3. which two inner class declartions are valid(choose two.)

A. class InnerOne{

public static double methoda(){return d1;}

}

B. public class InnerOnew{

static double methoda(){return d1;}

}

C. private class InnerOne{

double methoda(){return d1;}

}

D. static class InnerOne{

protected double methoda(){return d1;}

}

E. abstract class InnerOne{

public abstract double methoda();

}

 

说明如下:

一,静态内部类可以有静态成员,而非静态内部类不能有静态成员。故A,B错

二,静态内部类的非静态成员可以访问外部类的静态变量,而不可以访问外部类的非静态变量:return d1错。故D错

三,非静态内部类的非静态成员可以访问外部类的非静态变量。故C正确

四,答案为C,E。

 

 3,多线程有几种实现方法?都是什么?同步有几种实现方法,都是什么?

答:多线程有2种实现方法,分别是继承Thread类和实现Runnable接口

同步有2种,一个是synchronized,另一个是wait与notify。

 

4. sleep()   wait()  有什么区别
答: sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
wait
Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值