Java面试题大全系列之Java基础类库(二)


                            


Java面试题(6)设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序

public class TestThread
{
private int j;
public synchronized void inc()
{
j++;
System.out.println(Thread.currentThread().getName() + "-inc:" + j);
}
public synchronized void dec()
{
j--;
System.out.println(Thread.currentThread().getName() + "-dec:" + j);
}
public static void main(String[] args)
{
TestThread t=new TestThread();
for (int i = 0; i < 2; i++)
{
Thread inc=new Thread(new Inc(t));
Thread dec=new Thread(new Dec(t));
inc.start();
dec.start();
}
}
}
class Inc implements Runnable
{
private TestThread obj;
public Inc(TestThread obj)
{
this.obj=obj;
}
public void run()
{
// for (int i = 0; i < 100; i++)
// {
this.obj.inc();
// }
}
}
class Dec implements Runnable
{
private TestThread obj;
public Dec(TestThread obj)
{
this.obj=obj;
}
public void run()
{
// for (int i = 0; i < 100; i++)
// {
this.obj.dec();
// }
}
}


 

Java面试题(7)同步和异步有和异同,在什么情况下分别使用他们?举例说明。


同步:上一段代码没的完成,下一段必须等到上一段代码完成后才可以执行。如买票排队

异步:上一段代码没的完成,下一段不必等到上一段代码完成就可以执行。如手机发送短信。

 

 

Java面试题(8)sleep() 和 wait() 有什么区别?

Sleep 是指休眠给定的时间,当这个时间达到之后,线程会再次醒来。

Wait 是等待状态,多长时间不清楚,由另一个线程将其唤醒。

 

 

Java面试题(9)当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?

如只其它方法是同步方法,不可以进入。如果不是可以进入。

 

Java面试题(10)输入输出流的理解:


java 使用流的机制进行数据的传送,从文件到内存是输入流,从内存到文件是输出流,输入流可以通过 read 读取,输出流以 write 或 print 写入,对于流可以是分为高层流和低层流,低层以一个字节或字符为单位进行处理,高层流以一批数据为单位进行处理。

FileInputStream(System.in)至 InputSteamReader 至 BufferReader
OutputSteam(System.out)至 printStream
FileReader 至 BufferedReader
FileWriter 至 PrintWriter 或 bufferWriter
分类:
字节(二进制)
FileInputStream(低层输入流)
FileOutputStream(低层输出流)
PrintStream(高层流) System.out.println()
字符(一个 char)
FileReader
FileWriter


 


上一篇:培训机构毕业的学员找不到工作?
下一篇:大学计算机毕业生和IT培训毕业生有什么区别?

开班信息