Java面试题系列之Java基础类库(一)
Java程序員面試題大全系列之Java基礎類庫(一)
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 動力節點Java學院整理 ??????
?
1、java 中有幾種類型的流?JDK 為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
?
字節流,字符流。字節流繼承于 InputStream OutputStream,字符流繼承于 Reader Writer。
在 java.io 包中還有許多其他的流,低層流與調層流,高層流主要是為了提高性能和使用方便。
?
?
2、啟動一個線程是用 run()還是 start()?
啟動一個線程是調用 start()方法,啟動線程并調用 run 方法。
?
?
3、線程的基本概念、線程的基本狀態以及狀態之間的關系
?
線程是進程內的并發,沒有自已內存空間,共享進程的,線程間的通信成本較低。
Java 中的線程有四種狀態分別是:運行、就緒、掛起、結束。
?
?
4、多線程有幾種實現方法,都是什么?同步有幾種實現方法,都是什么? 用什么關鍵字修飾同步方法?
stop()和 suspend()方法為何不推薦使用?
Extends Thread
Implements Runnable
同步
Public synchronized aa()
{
}
Public void cc(object aa)
{
synchronized(aa)
{
}
}
用 synchoronized 修飾同步方法。
答:多線程有兩種實現方法,分別是繼承 Thread 類與實現 Runnable 接口
同步的實現方面有兩種,分別是 synchronized,wait 與 notify反對使用 stop(),是因為它不安全。它會解除由線程獲取的所有鎖定,而且如果對象處于一種不連貫狀態,那么其他線程能在那種狀態下檢查和修改它們。結果很難檢查出真正的問題所在。suspend()方法容易發生死鎖。調用 suspend()的時候,目標線程會停下來,但卻仍然持有在這之前獲得的鎖定。此時,其他任何線程都不能訪問鎖定的資源,除非被"掛起"的線程恢復運行。對任何線程來說,如果它們想恢復目標線程,同時又試圖使用任何一個鎖定的資源,就會造成死鎖。所以不應該使用 suspend(),而應在自己的 Thread 類中置入一個標志,指出線程應該活動還是掛起。若標志指出線程應該掛起,便用 wait()命其進入等待狀態。若標志指出線程應當恢復,則用一個 notify()重新啟動線程。
?
5、集合框架有什么?
Collection Map
List set HashMap
ArrayList linkedList HashSet TreeSet
?
原文鏈接:https://blog.csdn.net/f5465245/article/details/89182889
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 動力節點Java學院整理發布
轉載請注明出處
?
?
?
總結
以上是生活随笔為你收集整理的Java面试题系列之Java基础类库(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nacos2 Caused by: ja
- 下一篇: 设计模式- 策略模式