中科软面试题java部分(转)

转:http://hi.baidu.com/zhanglevo/blog/item/eb9c9c447c17b486b2b7dc0e.html

1、作用域public,private,protected,以及不写时的区别
答:区别如下:
作用域           当前类       同一package 子孙类       其他package
public            √              √                  √             √
protected        √              √                  √             ×
friendly          √              √                   ×            ×
private           √              ×                   ×            ×
不写时默认为friendly

注:friendly在子孙类中不能使用的原因是,当父子两个类放在不同的包下时,子类是不能访问到父类的friendly方法的。

2ArrayListVector的区别,HashMapHashtable的区别
答:ArrayListVector主要从二方面来说.
.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
HashMapHashTable主要从三方面来说。
.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMapJava 1.2引进的Map接口的一个实现
.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
.值:只有HashMap可以让你将空值作为一个表的条目的keyvalue

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

4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,waitnotify

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

6、内部类的实现方式?
答:示例代码如下:
package test;
public class OuterClass
{
private class InterClass
{
   public InterClass()
   {
    System.out.println("InterClass Create");
   }
}
public OuterClass()
{
   InterClass ic = new InterClass();
   System.out.println("OuterClass Create");
}
public static void main(String[] args)
{
   OuterClass oc = new OuterClass();
}
}
输出结果:
C:/>java test/OuterClass
InterClass Create
OuterClass Create
再一个例题:

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 declarations are

valid?(Choose two.)
A. class InnerOne{
     public static double methoda() {return d1;}
   }
B. public class InnerOne{
     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();
   }
说明如下:

.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 AB
.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。

D
.非静态内部类的非静态成员可以访问外部类的非静态变量。 C 正确
.答案为CE

你可能感兴趣的:(面试题)