好文档 - 专业文书写作范文服务资料分享网站

2016最新java面试题 - 详细版

天下 分享 时间: 加入收藏 我要投稿 点赞

使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。

2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。

3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。

4.HashTable使用Enumeration,HashMap使用Iterator。

String是基本数据类型吗?

不是

多线程有几种实现方式,同步有几种实现方式,stop()和suspend()方法为什么不推荐使用

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify\

反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。 调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被\挂起\的线程恢复 运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成

死锁。所以不应该使用suspend(),而应在自己的 Thread类中置入一个标志,

1.请阐述一下你对Java多线程中同步的几种使用方式,区别,以及其重要性。

同步有两种实现方式

1.同步方法 2.同步代码块

多线程的同步时为了能够保证关键数据在单位时间能只能有一个线程操作,保证数据的同步性,安全性

2.final ,finally , finalize 的区别。

Final 有最终的不可改变的意思,可以用来修饰基本数据使之成为常量,该常量只能在编译期进行修改 。

当修饰对象时,则该对象引用不能改变,但该对象本身可以做修改。 当修饰方法时,表示该方法在被继承时不能被修改,或覆盖 当修饰类时,表示该类不会别别的类继承

Finally 用于在Try-catch-finally语句中 finally 中的代码块时必须执行的

finalize 当某个对象要被当做垃圾回收时,会调用finalize()方法,该方法用于检查对象不被运行状态的对象引用或间接地引用

sleep() 和wait()有什么区别?

Sleep()是线程中的一个方法,该方法用于控制自身线程的流程,当执行sleep()方法睡眠时保持对象锁。

Wait()方法是object类中的一个方法,该方法用于让一个线程处于等待状态并释放对象锁,当该线程想要再次执行时需要调用notity方法唤醒此线程

4. abstact 的method是否可同时是static,是否可同时是native,是否可同时是synchronized ?

不可以

5当一个线程进入一个对象的Synchronized方法后,其他线程是否可进入此对象的其他方法

可以去访问非Synchronized方法。

6.当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

值传递

7.创建一个class对象有几种方法?分别是什么?

有三种:

1. Class c=Class.for(“java.lang.String”); 2. String str=new Stirng(); Class c=Str.getClass();

3.Class c=String.Class;

9.如何获取一个目录下有多少个文件?

File f=new File(“D://”); Int count=f.list().length;

10.请写出下列代码的输出结果:

public class FatherClass{ public FatherClass(){ System.out.println(“FatherClass Create”); } public static class ChildClass extends FatherClass{ public ChildClass(){ System.out.println(“ChildClass Create”); } } public static void main(){ FatherClass fc=new FatherClass(); ChildClass cc=new ChildClass(); } } FatherClass Create FatherClass Create ChildClass Create

13.当一个对象不再被使用时,如何才能从内存中消失?

将该对象引用值为空

14.请写一个整数组成的矩阵转置程序,及行变成列,列变成行?

int[][] transponse(int[][] t);

public int[][] transponse(int[][] t){

int [][] f=new int[t[0].length][t.length]; for(int i=0;i

int index=0; index++;

for(int x=0;i

f[m][index]=t[i][x]; }

}

Return f;

}

1.下列哪些语句关于内存回收的说明是正确的?( b ) A,程序员必须创建一个线程来释放内存 B,内存回收程序负责释放无用内存 C,内存回收程序允许程序员直接释放内存 D,内存回收程序可以在指定的时间释放内存对象

2016最新java面试题 - 详细版

使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。2.HashTable不允许null值(key和val
推荐度:
点击下载文档文档为doc格式
0b6ur18ptn9vfqw3dfkb
领取福利

微信扫码领取福利

微信扫码分享