Java具有簡單性、面向對象、分佈式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點 。Java可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序等。
線程的概念
線程進程區別
在Java中如何實現線程
我們應該是使用Runnable還是Thread?
Thread類的start()和run()方法的區別
start()方法會創建新的線程並啟動該線程,所以該方法會調用其他native方法,而run()方法就是
正常的Java方法調用,即在原來的線程中執行java代碼。
Java中Runnable和Callable的區別
Runnable和Callable都代表要線程中執行的任務。Runnable是JDK1.0加入的,而Callable確實是在JDK1.5加入的。
區別:Callable的 call() 方法可以返回值和拋出異常,
而Runnable的run()方法不能返回值也不能拋出異常。
Callable是需要使用java.util.concurrent.ExecutorService.submit(Callable<T>)方法提交的,這樣就可以獲得Future對象,該對象可以裝載了Callable接口的call()方法的返回結果。
Java中CyclicBarrier和CountDownLatch的區別
簡述Java內存模型
Java內存模型包含了一系列的規則和指導原則。
Java語言是跨平臺的,Java的內存模型確保了Java在不同的操作系統、CPU、內存架構上有確定的行為,特別是在多線程的情況下,一個線程所做的變動對其他線程是否可見是很重要的,這叫做先行發生關係:
Java中的volatile變量有什麼特點
線程安全的概念,Vector是否是線程安全類?
競態條件的概念
Java停止線程的方法
線程發生異常的結果
如何在線程之間共享數據
共享對象(類的靜態變量或類的實例變量)
也可以使用阻塞隊列等併發的集合。
notify和notifyAll的區別
wait,notify和notifyAll是Object類的方法的原因
ThreadLocal變量含義(線程局部變量)
Java程序員學習交流群515675832,既有技術大佬,又有老司機開車,各位對Java感興趣的可以來交流學習一下,快樂與技術一起進步。