本篇內(nèi)容介紹了“java8到j(luò)ava17 api有哪些改動”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西和企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè),西和網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
先從jdk8到9的改動部分
java.applet 這個沒啥人用不用咋說了,棄用部分api
java.awt 大部分api改動,詳細(xì)方法不怎么用不貼了.
新增java.awt.desktop 一些桌面的操作,屏幕,睡眠,拖動,Ui等
一些新的ui,事件,焦點,圖片,任務(wù)欄,一些刪除等.Robot用的多點,新增個多重屏幕
Java.beans 新增了@BeanProperty@JavaBean 注釋信息之類
Java.io 這個常用點
InputStream新增了readAllBytes(),直接讀取字節(jié)不用再搞工具類了,不過太大的流還是不建議,readNBytes方法可以給定字節(jié)讀取,建議。transferTo可以直接復(fù)制輸出流 。
OutputStreamWriter新增了append方法直接追加字符串挺實用。
其他相應(yīng)子類及輸出流也有新增一些方法,不怎么常用比如過濾配置等
java.lang.annotation下加了枚舉MODULE,主要對應(yīng)模塊
java.lang.instrument Instrumentation新增了isModifiableModule模塊是否支持修改,redefineModule重新定義模塊。
java.lang.invoke包 MethodHandle和MethodHandles下新增很多方法,加的東西有點多不寫。
新增了StringConcatFactory,字符串常量池用于創(chuàng)建一些優(yōu)化字符串串聯(lián)的方法。
實用部分就是反射里很多能通過句柄搞到。新增了VarHandle,這個支持各種變量操作訪問,內(nèi)存屏障排序都很實用,寫的人挺多的自己搜不扯了。個人建議使用這個包下的api到時替代反射,到時采用aot編譯機器碼不用反射的配置了。
java.lang.management ThreadInfo新增了優(yōu)先級和守護線程標(biāo)志
java.lang.module 模塊化的包沒啥好說的,模塊化都靠它,基本上java9的類加載和8之前的是個大改動,擴展類退出舞臺主要是平臺類加載器,不談細(xì)節(jié)最實用的部分就是采用模塊化jre可以小很多內(nèi)存占用少了。
java.lang.ref 新增了Cleaner,對象清理的,使用虛引用和引用隊列在對象從最強到最弱變化時通知清理。Cleaner.Cleanable 實現(xiàn)接口里的clean方法可以取消調(diào)用清理。
java.lang.reflect 反射里AccessibleObject 新增canAccess方法可以判斷下是否可訪問對象trySetAccessible方法嘗試設(shè)置標(biāo)記。Constructor,F(xiàn)ield,Method都新增了setAccessible。
Proxy的兩個靜態(tài)方法棄用
java.lang 這個包最重要稍微詳細(xì)點。很多啟用基本上包裝類型的new都別用了,多了模塊
Deprecated注解新增了forRemoval(),since(),表示刪除和啟用版本
Byte,short 新增了compareUnsigned 比較 0x == y0x < y0x > y
Character.新增許多字符集單碼常量太多不貼了
ClassLoader 新增許多實用方法,獲取包,加載器,平臺,資源等,主要還是模塊化的更改
Class 新增了根據(jù)模塊獲取類,獲取包,獲取模塊,棄用了newInstance()建議構(gòu)造器。
Compiler jit編譯器差異太大,棄用了
Integer Long 新增了parseInt, parseUnsignedInt (CharSequence, int, int, int),long對應(yīng)long
Math 新增7個實用方法floorDiv,floorMod,fma(double和float),multiply Exact,Full,High
Module,ModuleLayer,ModuleLayer.Controller,Package 模塊相關(guān)的
ProcessBuilder 新增了DISCARD的枚舉和startPipeline 啟用流鏈接
Process 新增children()子進程 ,descendants()快照,info()信息快照,onExit()終止流程,
pid()返回進程id,supportsNormalTermination()終止的判斷 toHandle()返回句柄。挺實用。
Runtime.Version javase版本字符串。
StackWalker 新增類,線程快照堆棧打印挺方便
String 新增chars 字符內(nèi)流,codePoints 代碼內(nèi)流。char數(shù)組byet數(shù)組,細(xì)節(jié)優(yōu)化挺多,比如+這些優(yōu)化更好,主說api不說細(xì)節(jié)。
System 新增了getLogger的兩個方法。主要是日志jvm日志也納入進來了。指定下module配合java.logging可以指定slf4j,我就用他實現(xiàn)個簡單日志觀測jvm更方便。
Thread 新增個構(gòu)造方法,新增了onSpinWait()告訴cpu我是循環(huán)中,提高自選效率,實用.
java.math BigInteger,BigDecimal 四舍五入,平方根這些方法
java.net.spi java.net包內(nèi)的提供商擴展,定制些url協(xié)議之類的比較方便。
java.net 認(rèn)證,代理,tcp,udp,ip這些新增很多實用的配置參數(shù)方法,方便獲取。
java.nio 各種buffer新增重置流緩沖區(qū)標(biāo)記等等更方便了。
java.rmi.server UnicastRemoteObject新增了exportObject。直接導(dǎo)出不用jndi那么麻煩了
java.security 新增太多了。SecureRandom用的多點加了幾個實用方法。
java.security.acl Acl這些被Policy 替代了,棄用了
java.security.cert 新增URICertStoreParameters,RFC 5280定義的uri向算法實現(xiàn)提供必要參數(shù)
java.security.spec 大部分算法過期刪除,新增幾個方法。
java.sql 這個jdbc相關(guān)用的多
DriverManager 新增drivers方法獲取驅(qū)動流
ConnectionBuilder 連接的構(gòu)建
Connection 新增幾個默認(rèn)方法 請求前后的方法,設(shè)置分片驗證等
DatabaseMetaData 新增supportsSharding檢索是否支持分片。其他幾個是分片接口不寫了
java.time 對java8的日期新增幾個實用方法
java.util.concurrent.atomic 這個雖然重要新增太多了,增強了很多方法。
java.util.concurrent 這個同上方法不貼了僅說下新類。
Flow。里邊好幾個訂閱發(fā)布接口,不需要rxjava這些了。
SubmissionPublisher。異步向當(dāng)前訂閱者提交(非空)項目,直到其關(guān)閉
java.util.jar 刪除了Pack200里屬性監(jiān)聽,
JarFile新增baseVersion,getVersion,isMultiRelease,runtimeVersion 寫框架多版本java jar實用
java.util.logging 上邊簡單提了,挺多增強
java.util.regex Matcher新增replaceAll replaceFirst appendTail appendReplacement 增強
results匹配的結(jié)果流
java.util.spi 主要新增下面三個,比如開發(fā)javac,jar,jlink之類用到
ToolProvider 命令行工具的接口,以提供一種在不一定啟動新 VM 的情況下調(diào)用的方法
ResourceBundleProvider 用于加載指定模塊的資源捆綁包的提供商界面
AbstractResourceBundleProvider 基本抽象類
java.util.stream 新增多個方法,流這邊更好用了。
java.util.zip 刪除倆方法,新增CRC32C類,擴展ZipEntry的get/setTimeLocal
java.util 新增挺多方法,比如集合隊列map等支持流的函數(shù),太重要挑幾個用最多的吧
Arrays compare,compareUnsigned,equals,mismatch 各種類型增強
Objects requireNonNullElse 為空返回第二個
Properties 添加很多實用方法,主要是重寫了hashtable的相關(guān)方法。
Scanner 正則匹配這些,findAll(Pattern/string) tokens()
ServiceLoader 新增Provider findFirst()stream()load(ModuleLayer, Class) 。擴展spi比較實用
List,Map,Set 最實用的靜態(tài)方法of(),創(chuàng)建太方便了。不過注意是只讀的。
Enumeration asIterator() 這個也實用,直接返回迭代
javax.accessibility 新增了AccessibilityProvider 屏幕這些訪問
javax.annotation.processing 新增@Generated 標(biāo)記生成源碼注釋RoundEnvironment 新增倆方法
javax.crypto ExemptionMechanism刪除了finalize
javax.imageio 棄用部分方法 新增javax.imageio.plugins.tiff 處理tiff格式圖片api
javax.lang.model 新增部分接口 主要模塊部分的新增接口方法
javax.management 部分方法移除新增 新增@ConstructorParameters 運行時判斷參數(shù)名
javax.naming 一個方法刪除和棄用
javax.net.ssl 新增部分屬性和棄用
javax.sql 大部分接口增強,比如DataSource,XADataSource,日志創(chuàng)建這些
javax.swing 太多增強 不過界面用的少不扯了
javax.tools 大部分增強,比如StandardJavaFileManager根據(jù)path這些獲取很方便
javax.xml 刪除了部分api
其他nashorn增強es6(15被干掉),默認(rèn)切換g1,doc增強,aot,jsheel等太多改變,主要看實用api不扯那些
java10更改部分
java.io 方法增強ByteArrayOutputStream字符串指定編碼,
PrintStream,PrintWriter 打印到文件,實用.比如指定setOut后可以不看控制臺直接按編碼寫入文件
Reader 新增了transferTo(Writer)
java.lang.invoke
MethodType 新增了lastParameterType()返回最后類型,沒有就是void
java.lang jdk9新增的幾個類被干掉了,多處方法啟用刪除新增 大多不重要
java.net URLDecoder/Encoder 新增了對應(yīng)方法的Charset,可以少寫倆捕獲異常
java.nio Channels新增一newread/write方法 FileStore新增了getBlockSize()獲取塊大小
java.security 部分棄用及新方法
java.time 新增幾個方法
java.util.concurrent StampedLock增強4個判斷方法 FutureTask重寫了tostring
java.util.jar/spi/stream 個別類新增一兩個方法不重要
java.util 新增一些默認(rèn)方法,List/Map/set新增了copyOf,可以方法的復(fù)制了
java.management RuntimeMXBean加了pid,ThreadMXBean加了倆獲取線程信息的方法.個人擴展該模塊可以省不少jps,ps,top,jstat查了
其他大部分模塊新增個別常量方法
java11更改部分
java.io reader,write,input,out這些的相關(guān)類及子類一些9開始的方法擴展方法添加修復(fù)之類
java.lang.invoke 新增ConstantBootstraps,動態(tài)計算各種常量,實用
java.lang.ref Reference新增了clone方法 ,引用復(fù)制方便了
java.lang 這個包肯定重要還是大致寫下,部分棄用刪除如Thread的stop/destroy和runtime的
Character內(nèi)部類新增部分編碼常量,新增int的toString方法
Class getNestHost嵌套類訪問getNestMembers包含的類數(shù)組,isNestmateOf 是不是類里的一家人
StringBuffer/Builder 新增compareTo直接比較sb
String 新增isBlank/lines/repeat/strip/stripLeading/stripTrailing 實用方法看名字就知道
CharSequence 新增compare方法比較返回
java.nio.fileFiles新增readString和writeString Path新增了of 。這些太實用了
ByteBuffer等幾個基礎(chǔ)類型的buffer新增了mismatch
java.security 大部分api新增一些方法和個別棄用刪除
java.util.concurrent PriorityBlockingQueue擴展幾個方法,TimeUnit加了個convert(Duration)
java.util.function Predicate加了個not
java.util.regex Pattern新增了asMatchPredicate 創(chuàng)建謂詞
java.util.zip Deflater和Inflater新增了bytebuffer的三四個方法
java.util 幾個類新增的isEmpty等ArrayList.hashcode和equals方法重寫了,
Collection加個toArray(IntFunction)
javax.crypto.spec 新增ChaCha20ParameterSpec ChaCha20的算法javax.security.auth Policy刪了
java.corba 被刪掉了
java.desktop 挺多更改新增方法,桌面不提了
java.sql javax.transaction.xa改為java.transaction.xa
java.xml.crypto 部分增強
java.xml.ws,java.xml.bind 被刪除了,用到就從maven那里下載下吧
新增http的客戶端,支持http2這些,可以不用其他http包了
Java
Java12-17 17正式版還得4個月用11以上得人也少合并說吧,finalize方法部分大多刪除不貼了
java.io
@Serial 表示注釋字段或方法是Java 對象序列化規(guī)范定義的序列化機制的一部分,14添加
CharArrayReader 添加read(CharBuffer)
Console charset()獲取字符集
InputStreamReader 新增read(CharBuffer)
InputStream 新增skipNBytes 可跳過字節(jié)長 jdk12添加
PrintStream 新增write,writeBytes(byte[]) 寫入字節(jié)數(shù)組 14添加
java.lang.annotation ElementType新增了RECORD_COMPONENT 記錄類得
java.lang.constant 常量包不用說了.適用于字節(jié)代碼讀取和編寫 API、引導(dǎo)、字節(jié)代碼內(nèi)在 API 以及編譯時間或鏈接時間程序分析工具
java.lang.invoke 多個類和方法得增強,棄用等,主要句柄這塊兒
java.lang.ref Reference新增refersTo(Object),測試是否引用對象,jdk16新增
java.lang.reflect
RecordComponent 新增record類的反射組件
InvocationHandler 新增invokeDefault靜態(tài)方法。直接根據(jù)方法調(diào)用代理對象,實用
AnnotatedType 新增獲取注解的三個方法
java.lang.runtime 這個包對java語言提供低級別的運行時支持,jdk14新增
ObjectMethods類 Java 編譯器可以使用這些方法來實現(xiàn)比如object類下的各種方法重寫,實用
java.lang 基礎(chǔ)類型新增describeConstable()實例描述符
Character 新增許多字符集
ClassNotFoundException等很多異常的getCause()被刪除了,trycatch里得注意下
NullPointerException 更新了getMessage()和fillInStackTrace()
Class 新增了隱藏類,密封類,記錄類,內(nèi)部類,數(shù)組,等得相關(guān)方法
Math 新增absExact方法對int,long,絕對精確整數(shù)超出最大最小異常,jdk15
Record 這個不用說了Lombok可以不用了,注意可序列化readObject和writeObject被忽略
String 新增formatted格式化字符,indent 縮進 ,resolveConstantDesc,常量描述符
stripIndent 刪除頭尾空格 transform 允許把函數(shù)應(yīng)用到該字符 translateEscapes 轉(zhuǎn)義序列化
Thread 虛擬線程得方法看loom項目郵件一直在各種測試估計能趕上17.跟go的goroutine差不多
java.net
DatagramSocket 新增了joinGroup和leaveGroup加入或離開組,jdk17新增
URLDecoder里刪除了URLDecoder()
SecureCacheResponse 新增了getSSLSession jdk12
UnixDomainSocketAddress 新增的Unix域套接字。本機進程通信效率最高,只復(fù)制數(shù)據(jù)。jdk16新增,windows也支持
java.nio.channels
SelectorProvider新增openServerSocketChannel,openSocketChannel
ServerSocketChannel,SocketChannel新增open(ProtocolFamily)
java.nio.file FileSystems新增newFileSystem 根據(jù)path,F(xiàn)iles新增mismatch返回不匹配位置
java.nio 各種Buffer新增一些緩存區(qū)設(shè)置獲取共享壓縮清除等
java.security 一些證書更新棄用刪除方法等
java.text 新增CompactNumberFormat LDML的緊湊數(shù)字格式規(guī)范,其他添加獲取他的方法
java.time 日文字體等格式簡單修改
java.util.concurrent.locks LockSupport 新增setCurrentBlocker通過getBlocker當(dāng)前線程的返回對象
java.util.concurrent
ThreadLocalRandom刪除nextGaussian新增nextFloat,還有三makeDouble/int/longsSpliterator
CompletionStage新增5個默認(rèn)方法,CompletableFuture也自動繼承
ForkJoinPool 新增invokeAny(2個)和invokeAll
java.util.random 隨機數(shù)生成的通用API的類和接口.jdk17新增的重寫的包
java.util.stream 流接口新增multimap方法,跟c++的一樣,是關(guān)聯(lián)式容器,Stream還新增toList
java.util
HashSet toArray有改動
HexFormat 字節(jié),字符和十六進制編碼的字符串之間進行轉(zhuǎn)換的工具類 jdk17
Objects,Random,NoSuchElementException新增幾個方法,SplittableRandom刪除幾個新增幾個
javax.crypto Cipher重寫了tostring
javax.net.ssl HttpsURLConnection新增了getSSLSession()方法,上邊有個
javax.annotation.processing ProcessingEnvironment新增isPreviewEnabled(),是不是預(yù)覽版
javax.lang.model 各種模型更新,細(xì)節(jié)挺多每個版本必須改的東西,比如加上新版本的串
javax.tools ToolProvider的ToolProvider()方法刪除
java.util.logging LogRecord新增了getLongThreadID用于晚點替換getThreadID
java.management.rmi 挺多內(nèi)容刪除
javax.naming.ldap.spi ldapv3版本的擴展包
java.net.http HttpRequest新增了newBuilder(2個) HttpRequest.BodyPublishers新增concat
javax.xml DocumentBuilderFactory和SAXParserFactory新增了命名空間支持
awt,swing的各種更改就不說了,剔除多個如nashorn之類用的少的模塊,刪除aot,jit,macos下增強
沒啥結(jié)語,jdk16開始啟用了c++14,像 Vector API 開發(fā)人員需要了解HotSpot的自動矢量化支持及其局限性.panama項目還有對外部存儲,c/c++的api直接訪問,從8升級你怕了嗎.
“java8到j(luò)ava17 api有哪些改動”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
網(wǎng)頁名稱:java8到j(luò)ava17api有哪些改動
網(wǎng)頁路徑:http://aaarwkj.com/article6/ihpiog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、域名注冊、外貿(mào)建站、標(biāo)簽優(yōu)化、網(wǎng)站維護、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)