曾梦垚

导航

Java基础方面

1、作用域public,private,protected,以及不写时的区别
答:区别如下:

作用域        当前类     同一package       子孙类     其他package
public        √           √                      √            √
protected   √           √                      √            ×
friendly      √           √                      ×            ×
private       √           ×                      ×            ×
不写时默认为friendly

2、ArrayList和Vector的区别,HashMap和Hashtable的区别 

答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList线程是不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap线程是不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

3、char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占2个字节,所以放一个中文是没问题的

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

一、多线程实现方法有两种 :

一种是实现Runnable 接口  一种是继承Thread类。

 二、实现同步也有两种 :

一种是用同步方法,一种是用同步块。

同步方法就是在方法返回类型后面加上synchronized, 比如:public void * synchronized add(){...}。

同步块就是直接写:synchronized (这里写需要同步的对象){...}

 

三、wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

  sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法, * 调用此方法要捕捉InterruptedException异常 * 。

  notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程 ,而是由JVM确定唤醒哪个线程,而且不是按优先级  。 

  Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争

5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
答:父类:
package test;
public class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果:
C:\>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create

子类继承父类会先初始化父类,调用父类的构造函数

 

posted on 2017-02-05 20:37  曾梦垚  阅读(135)  评论(0编辑  收藏  举报