有關API更改的完整列表,可在Github上得到。html
這裏列出的是除了java.net.http和jdk.jfr模塊以外的全部新方法。沒有列出java.security模塊中的新方法和類,它們特定於JEP 324和JEP 329的更改(有六個新類和八個新方法)。java
java.io.ByteArrayOutputStreamgit
void writeBytes(byte[]): 將參數的全部字節寫入輸出流github
java.io.FileReadershell
兩個容許指定Charset的新構造函數。api
java.io.FileWriter數組
四個容許指定Charset的新構造函數。函數
java.io.InputStream測試
io.InputStream nullInputStream(): 返回不讀取任何字節的InputStream。當你第一次看到這個方法(以及OutputStream,Reader和Writer中的方法)時,你會想知道它們有什麼用處。您能夠將它們視爲/dev/null,以丟棄您不須要的輸出或提供始終返回零字節的輸入。ui
java.io.OutputStream
io.OutputStream nullOutputStream()
java.io.Reader
io.Reader nullReader()
java.io.Writer
io.Writer nullWriter()
java.lang.Character
String toString(int): 這是現有方法的重載形式,可是使用int而不是char。int是Unicode代碼點。
java.lang.CharSequence
int compare(CharSequence, CharSequence): 按字典順序比較兩個CharSequence實例。若是第一個序列按字典順序小於,等於或大於第二個序列,則返回負值,零或正值。
java.lang.ref.Reference
lang.Object clone(): Reference類不實現Cloneable接口,而且此方法將始終拋出CloneNotSupportedException。必須有一個理由將其包含在內,大概是爲了未來的某些東西。
java.lang.Runtime java.lang.System
這裏沒有新方法,但值得一提的是,如今已從這兩個類中刪除了runFinalizersOnExit()方法(這多是兼容性問題)
java.lang.String
我認爲這是JDK 11中新API的亮點之一。這裏有幾個有用的新方法。
您可能會看看strip()並詢問這與現有的trim()方法有何不一樣?答案是如何定義空白在二者之間有所不一樣。
java.lang.StringBuffer java.lang.StringBuilder
這兩個類都有一個新的compareTo()方法,它接受一個StringBuffer/StringBuilder 並返回一個int。比較方法與CharSequence的新compareTo()方法相同。
java.lang.Thread
沒有其餘方法,但已刪除destroy()和stop(Throwable) 方法。不帶參數的stop()方法仍然存在。這可能會出現兼容性問題。
java.nio.ByteBuffer java.nio.CharBuffer java.nio.DoubleBuffer java.nio.FloatBuffer java.nio.LongBuffer java.nio.ShortBuffer
全部這些類如今都有一個mismatch()方法,它找到並返回此緩衝區與給定緩衝區之間第一個不匹配的相對索引。
java.nio.channels.SelectionKey
java.nio.channels.Selector
java.nio.file.Files
java.nio.file.Path
java.util.Collection
Object[] toArray(java.util.function.IntFunction): 使用提供的生成器函數返回包含此集合中全部元素的數組,以分配返回的數組。
java.util.concurrent.PriorityBlockingQueue java.util.PriorityQueue
java.util.concurrent.TimeUnit
long convert(java.time.Duration):將給定的持續時間轉換爲此單位。
java.util.function.Predicate
返回一個Predicate,Predicate是對所提供Predicate的否認。:
lines.stream()
.filter(s -> !s.isBlank())
複製代碼
同等於
lines.stream()
.filter(Predicate.not(String::isBlank))
複製代碼
若是咱們使用靜態導入,它將變爲:
lines.stream()
.filter(not(String::isBlank))
複製代碼
就我的而言,我認爲這個版本更易讀,更容易理解。
java.util.Optional java.util.OptionalInt java.util.OptionalDouble java.util.OptionalLong
boolean isEmpty():若是某個值不存在,則返回true,不然返回false。
java.util.regex.Pattern
Predicate asMatchPredicate():我認爲這多是新JDK 11 API中隱藏的內容。建立一個Predicate,測試此模式是否與給定的輸入字符串匹配。
java.util.zip.Deflater
java.util.zip.Inflater
javax.print.attribute.standard.DialogOwner
這是JDK 11中的一個新類,它是一個屬性類,用於支持請求打印或頁面設置對話框保持顯示在全部窗口或某個特定窗口的頂部。
javax.swing.DefaultComboBoxModel javax.swing.DefaultListModel
javax.swing.ListSelectionModel
jdk.jshell.EvalException
jshell.JShellException getCause():返回此EvalException表示的執行客戶端中throwable的包裝緣由,若是緣由不存在或未知,則返回null。