更新時間:2019-04-11 15:21:27 來源:動力節點 瀏覽2644次
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天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習