更新时间:2019-04-11 15:21:27 来源:极悦 浏览2370次
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
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习