java8到j(luò)ava17api有哪些改動(dòng)

本篇內(nèi)容介紹了“java8到j(luò)ava17 api有哪些改動(dòng)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站長(zhǎng)期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西和企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè),西和網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

先從jdk8到9的改動(dòng)部分

java.applet 這個(gè)沒(méi)啥人用不用咋說(shuō)了,棄用部分api

java.awt 大部分api改動(dòng),詳細(xì)方法不怎么用不貼了.

新增java.awt.desktop 一些桌面的操作,屏幕,睡眠,拖動(dòng),Ui等

一些新的ui,事件,焦點(diǎn),圖片,任務(wù)欄,一些刪除等.Robot用的多點(diǎn),新增個(gè)多重屏幕

Java.beans 新增了@BeanProperty@JavaBean 注釋信息之類(lèi)

Java.io 這個(gè)常用點(diǎn)

InputStream新增了readAllBytes(),直接讀取字節(jié)不用再搞工具類(lèi)了,不過(guò)太大的流還是不建議,readNBytes方法可以給定字節(jié)讀取,建議。transferTo可以直接復(fù)制輸出流 。

OutputStreamWriter新增了append方法直接追加字符串挺實(shí)用。

其他相應(yīng)子類(lèi)及輸出流也有新增一些方法,不怎么常用比如過(guò)濾配置等

java.lang.annotation下加了枚舉MODULE,主要對(duì)應(yīng)模塊

java.lang.instrument Instrumentation新增了isModifiableModule模塊是否支持修改,redefineModule重新定義模塊。

java.lang.invoke包 MethodHandle和MethodHandles下新增很多方法,加的東西有點(diǎn)多不寫(xiě)。

新增了StringConcatFactory,字符串常量池用于創(chuàng)建一些優(yōu)化字符串串聯(lián)的方法。

實(shí)用部分就是反射里很多能通過(guò)句柄搞到。新增了VarHandle,這個(gè)支持各種變量操作訪問(wèn),內(nèi)存屏障排序都很實(shí)用,寫(xiě)的人挺多的自己搜不扯了。個(gè)人建議使用這個(gè)包下的api到時(shí)替代反射,到時(shí)采用aot編譯機(jī)器碼不用反射的配置了。

java.lang.management  ThreadInfo新增了優(yōu)先級(jí)和守護(hù)線程標(biāo)志

java.lang.module 模塊化的包沒(méi)啥好說(shuō)的,模塊化都靠它,基本上java9的類(lèi)加載和8之前的是個(gè)大改動(dòng),擴(kuò)展類(lèi)退出舞臺(tái)主要是平臺(tái)類(lèi)加載器,不談細(xì)節(jié)最實(shí)用的部分就是采用模塊化jre可以小很多內(nèi)存占用少了。

java.lang.ref 新增了Cleaner,對(duì)象清理的,使用虛引用和引用隊(duì)列在對(duì)象從最強(qiáng)到最弱變化時(shí)通知清理。Cleaner.Cleanable 實(shí)現(xiàn)接口里的clean方法可以取消調(diào)用清理。

java.lang.reflect 反射里AccessibleObject 新增canAccess方法可以判斷下是否可訪問(wèn)對(duì)象trySetAccessible方法嘗試設(shè)置標(biāo)記。Constructor,F(xiàn)ield,Method都新增了setAccessible。

Proxy的兩個(gè)靜態(tài)方法棄用

java.lang 這個(gè)包最重要稍微詳細(xì)點(diǎn)。很多啟用基本上包裝類(lèi)型的new都別用了,多了模塊

Deprecated注解新增了forRemoval(),since(),表示刪除和啟用版本

Byte,short 新增了compareUnsigned 比較  0x == y0x < y0x > y

Character.新增許多字符集單碼常量太多不貼了

ClassLoader 新增許多實(shí)用方法,獲取包,加載器,平臺(tái),資源等,主要還是模塊化的更改

Class 新增了根據(jù)模塊獲取類(lèi),獲取包,獲取模塊,棄用了newInstance()建議構(gòu)造器。

Compiler jit編譯器差異太大,棄用了

Integer Long 新增了parseInt, parseUnsignedInt (CharSequence, int, int, int),long對(duì)應(yīng)long

Math 新增7個(gè)實(shí)用方法floorDiv,floorMod,fma(double和float),multiply Exact,Full,High

Module,ModuleLayer,ModuleLayer.Controller,Package 模塊相關(guān)的

ProcessBuilder 新增了DISCARD的枚舉和startPipeline 啟用流鏈接

Process 新增children()子進(jìn)程 ,descendants()快照,info()信息快照,onExit()終止流程,

pid()返回進(jìn)程id,supportsNormalTermination()終止的判斷 toHandle()返回句柄。挺實(shí)用。

Runtime.Version javase版本字符串。

StackWalker 新增類(lèi),線程快照堆棧打印挺方便

String 新增chars 字符內(nèi)流,codePoints 代碼內(nèi)流。char數(shù)組byet數(shù)組,細(xì)節(jié)優(yōu)化挺多,比如+這些優(yōu)化更好,主說(shuō)api不說(shuō)細(xì)節(jié)。

System 新增了getLogger的兩個(gè)方法。主要是日志jvm日志也納入進(jìn)來(lái)了。指定下module配合java.logging可以指定slf4j,我就用他實(shí)現(xiàn)個(gè)簡(jiǎn)單日志觀測(cè)jvm更方便。

Thread 新增個(gè)構(gòu)造方法,新增了onSpinWait()告訴cpu我是循環(huán)中,提高自選效率,實(shí)用.

java.math BigInteger,BigDecimal 四舍五入,平方根這些方法

java.net.spi  java.net包內(nèi)的提供商擴(kuò)展,定制些url協(xié)議之類(lèi)的比較方便。

java.net  認(rèn)證,代理,tcp,udp,ip這些新增很多實(shí)用的配置參數(shù)方法,方便獲取。

java.nio 各種buffer新增重置流緩沖區(qū)標(biāo)記等等更方便了。

java.rmi.server UnicastRemoteObject新增了exportObject。直接導(dǎo)出不用jndi那么麻煩了

java.security 新增太多了。SecureRandom用的多點(diǎn)加了幾個(gè)實(shí)用方法。

java.security.acl  Acl這些被Policy 替代了,棄用了

java.security.cert 新增URICertStoreParameters,RFC 5280定義的uri向算法實(shí)現(xiàn)提供必要參數(shù)

java.security.spec 大部分算法過(guò)期刪除,新增幾個(gè)方法。

java.sql 這個(gè)jdbc相關(guān)用的多

DriverManager 新增drivers方法獲取驅(qū)動(dòng)流

ConnectionBuilder 連接的構(gòu)建

Connection 新增幾個(gè)默認(rèn)方法 請(qǐng)求前后的方法,設(shè)置分片驗(yàn)證等

DatabaseMetaData 新增supportsSharding檢索是否支持分片。其他幾個(gè)是分片接口不寫(xiě)了

java.time 對(duì)java8的日期新增幾個(gè)實(shí)用方法

java.util.concurrent.atomic 這個(gè)雖然重要新增太多了,增強(qiáng)了很多方法。

java.util.concurrent 這個(gè)同上方法不貼了僅說(shuō)下新類(lèi)。

Flow。里邊好幾個(gè)訂閱發(fā)布接口,不需要rxjava這些了。

SubmissionPublisher。異步向當(dāng)前訂閱者提交(非空)項(xiàng)目,直到其關(guān)閉

java.util.jar 刪除了Pack200里屬性監(jiān)聽(tīng),

JarFile新增baseVersion,getVersion,isMultiRelease,runtimeVersion 寫(xiě)框架多版本java jar實(shí)用

java.util.logging 上邊簡(jiǎn)單提了,挺多增強(qiáng)

java.util.regex Matcher新增replaceAll  replaceFirst appendTail appendReplacement 增強(qiáng)

results匹配的結(jié)果流

java.util.spi 主要新增下面三個(gè),比如開(kāi)發(fā)javac,jar,jlink之類(lèi)用到

ToolProvider 命令行工具的接口,以提供一種在不一定啟動(dòng)新 VM 的情況下調(diào)用的方法

ResourceBundleProvider 用于加載指定模塊的資源捆綁包的提供商界面

AbstractResourceBundleProvider 基本抽象類(lèi)

java.util.stream 新增多個(gè)方法,流這邊更好用了。

java.util.zip 刪除倆方法,新增CRC32C類(lèi),擴(kuò)展ZipEntry的get/setTimeLocal

java.util 新增挺多方法,比如集合隊(duì)列map等支持流的函數(shù),太重要挑幾個(gè)用最多的吧

Arrays compare,compareUnsigned,equals,mismatch 各種類(lèi)型增強(qiáng)

Objects requireNonNullElse 為空返回第二個(gè)

Properties 添加很多實(shí)用方法,主要是重寫(xiě)了hashtable的相關(guān)方法。

Scanner 正則匹配這些,findAll(Pattern/string) tokens()

ServiceLoader 新增Provider findFirst()stream()load(ModuleLayer, Class) 。擴(kuò)展spi比較實(shí)用

List,Map,Set 最實(shí)用的靜態(tài)方法of(),創(chuàng)建太方便了。不過(guò)注意是只讀的。

Enumeration asIterator() 這個(gè)也實(shí)用,直接返回迭代

javax.accessibility 新增了AccessibilityProvider 屏幕這些訪問(wèn)

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 運(yùn)行時(shí)判斷參數(shù)名

javax.naming 一個(gè)方法刪除和棄用

javax.net.ssl 新增部分屬性和棄用

javax.sql 大部分接口增強(qiáng),比如DataSource,XADataSource,日志創(chuàng)建這些

javax.swing 太多增強(qiáng) 不過(guò)界面用的少不扯了

javax.tools 大部分增強(qiáng),比如StandardJavaFileManager根據(jù)path這些獲取很方便

javax.xml 刪除了部分api

其他nashorn增強(qiáng)es6(15被干掉),默認(rèn)切換g1,doc增強(qiáng),aot,jsheel等太多改變,主要看實(shí)用api不扯那些

java10更改部分

java.io 方法增強(qiáng)ByteArrayOutputStream字符串指定編碼,

PrintStream,PrintWriter 打印到文件,實(shí)用.比如指定setOut后可以不看控制臺(tái)直接按編碼寫(xiě)入文件

Reader 新增了transferTo(Writer)

java.lang.invoke

MethodType 新增了lastParameterType()返回最后類(lèi)型,沒(méi)有就是void

java.lang  jdk9新增的幾個(gè)類(lèi)被干掉了,多處方法啟用刪除新增 大多不重要

java.net URLDecoder/Encoder 新增了對(duì)應(yīng)方法的Charset,可以少寫(xiě)倆捕獲異常

java.nio Channels新增一newread/write方法 FileStore新增了getBlockSize()獲取塊大小

java.security 部分棄用及新方法

java.time 新增幾個(gè)方法

java.util.concurrent StampedLock增強(qiáng)4個(gè)判斷方法 FutureTask重寫(xiě)了tostring

java.util.jar/spi/stream 個(gè)別類(lèi)新增一兩個(gè)方法不重要

java.util 新增一些默認(rèn)方法,List/Map/set新增了copyOf,可以方法的復(fù)制了

java.management RuntimeMXBean加了pid,ThreadMXBean加了倆獲取線程信息的方法.個(gè)人擴(kuò)展該模塊可以省不少jps,ps,top,jstat查了

其他大部分模塊新增個(gè)別常量方法

java11更改部分

java.io reader,write,input,out這些的相關(guān)類(lèi)及子類(lèi)一些9開(kāi)始的方法擴(kuò)展方法添加修復(fù)之類(lèi)

java.lang.invoke 新增ConstantBootstraps,動(dòng)態(tài)計(jì)算各種常量,實(shí)用

java.lang.ref Reference新增了clone方法 ,引用復(fù)制方便了

java.lang 這個(gè)包肯定重要還是大致寫(xiě)下,部分棄用刪除如Thread的stop/destroy和runtime的

Character內(nèi)部類(lèi)新增部分編碼常量,新增int的toString方法

Class getNestHost嵌套類(lèi)訪問(wèn)getNestMembers包含的類(lèi)數(shù)組,isNestmateOf 是不是類(lèi)里的一家人

StringBuffer/Builder 新增compareTo直接比較sb

String 新增isBlank/lines/repeat/strip/stripLeading/stripTrailing 實(shí)用方法看名字就知道

CharSequence 新增compare方法比較返回

java.nio.fileFiles新增readString和writeString Path新增了of 。這些太實(shí)用了

ByteBuffer等幾個(gè)基礎(chǔ)類(lèi)型的buffer新增了mismatch

java.security 大部分api新增一些方法和個(gè)別棄用刪除

java.util.concurrent PriorityBlockingQueue擴(kuò)展幾個(gè)方法,TimeUnit加了個(gè)convert(Duration)

java.util.function Predicate加了個(gè)not

java.util.regex Pattern新增了asMatchPredicate 創(chuàng)建謂詞

java.util.zip Deflater和Inflater新增了bytebuffer的三四個(gè)方法

java.util 幾個(gè)類(lèi)新增的isEmpty等ArrayList.hashcode和equals方法重寫(xiě)了,

Collection加個(gè)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 部分增強(qiáng)

java.xml.ws,java.xml.bind 被刪除了,用到就從maven那里下載下吧

新增http的客戶端,支持http2這些,可以不用其他http包了

Java

Java12-17 17正式版還得4個(gè)月用11以上得人也少合并說(shuō)吧,finalize方法部分大多刪除不貼了

java.io

@Serial  表示注釋字段或方法是Java 對(duì)象序列化規(guī)范定義的序列化機(jī)制的一部分,14添加

CharArrayReader 添加read(CharBuffer)

Console charset()獲取字符集

InputStreamReader 新增read(CharBuffer)

InputStream 新增skipNBytes 可跳過(guò)字節(jié)長(zhǎng) jdk12添加

PrintStream 新增write,writeBytes(byte[]) 寫(xiě)入字節(jié)數(shù)組 14添加

java.lang.annotation ElementType新增了RECORD_COMPONENT 記錄類(lèi)得

java.lang.constant 常量包不用說(shuō)了.適用于字節(jié)代碼讀取和編寫(xiě) API、引導(dǎo)、字節(jié)代碼內(nèi)在 API 以及編譯時(shí)間或鏈接時(shí)間程序分析工具

java.lang.invoke 多個(gè)類(lèi)和方法得增強(qiáng),棄用等,主要句柄這塊兒

java.lang.ref Reference新增refersTo(Object),測(cè)試是否引用對(duì)象,jdk16新增

java.lang.reflect

RecordComponent 新增record類(lèi)的反射組件

InvocationHandler 新增invokeDefault靜態(tài)方法。直接根據(jù)方法調(diào)用代理對(duì)象,實(shí)用

AnnotatedType 新增獲取注解的三個(gè)方法

java.lang.runtime 這個(gè)包對(duì)java語(yǔ)言提供低級(jí)別的運(yùn)行時(shí)支持,jdk14新增

ObjectMethods類(lèi) Java 編譯器可以使用這些方法來(lái)實(shí)現(xiàn)比如object類(lèi)下的各種方法重寫(xiě),實(shí)用

java.lang 基礎(chǔ)類(lèi)型新增describeConstable()實(shí)例描述符

Character 新增許多字符集

ClassNotFoundException等很多異常的getCause()被刪除了,trycatch里得注意下

NullPointerException 更新了getMessage()和fillInStackTrace()

Class 新增了隱藏類(lèi),密封類(lèi),記錄類(lèi),內(nèi)部類(lèi),數(shù)組,等得相關(guān)方法

Math 新增absExact方法對(duì)int,long,絕對(duì)精確整數(shù)超出最大最小異常,jdk15

Record 這個(gè)不用說(shuō)了Lombok可以不用了,注意可序列化readObject和writeObject被忽略

String 新增formatted格式化字符,indent 縮進(jìn) ,resolveConstantDesc,常量描述符

stripIndent 刪除頭尾空格 transform 允許把函數(shù)應(yīng)用到該字符 translateEscapes 轉(zhuǎn)義序列化

Thread 虛擬線程得方法看loom項(xiàng)目郵件一直在各種測(cè)試估計(jì)能趕上17.跟go的goroutine差不多

java.net

DatagramSocket 新增了joinGroup和leaveGroup加入或離開(kāi)組,jdk17新增

URLDecoder里刪除了URLDecoder()

SecureCacheResponse 新增了getSSLSession jdk12

UnixDomainSocketAddress 新增的Unix域套接字。本機(jī)進(jìn)程通信效率最高,只復(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 一些證書(shū)更新棄用刪除方法等

java.text 新增CompactNumberFormat LDML的緊湊數(shù)字格式規(guī)范,其他添加獲取他的方法

java.time 日文字體等格式簡(jiǎn)單修改

java.util.concurrent.locks LockSupport 新增setCurrentBlocker通過(guò)getBlocker當(dāng)前線程的返回對(duì)象

java.util.concurrent

ThreadLocalRandom刪除nextGaussian新增nextFloat,還有三makeDouble/int/longsSpliterator

CompletionStage新增5個(gè)默認(rèn)方法,CompletableFuture也自動(dòng)繼承

ForkJoinPool 新增invokeAny(2個(gè))和invokeAll

java.util.random 隨機(jī)數(shù)生成的通用API的類(lèi)和接口.jdk17新增的重寫(xiě)的包

java.util.stream 流接口新增multimap方法,跟c++的一樣,是關(guān)聯(lián)式容器,Stream還新增toList

java.util

HashSet toArray有改動(dòng)

HexFormat 字節(jié),字符和十六進(jìn)制編碼的字符串之間進(jìn)行轉(zhuǎn)換的工具類(lèi) jdk17

Objects,Random,NoSuchElementException新增幾個(gè)方法,SplittableRandom刪除幾個(gè)新增幾個(gè)

javax.crypto Cipher重寫(xiě)了tostring

javax.net.ssl HttpsURLConnection新增了getSSLSession()方法,上邊有個(gè)

javax.annotation.processing ProcessingEnvironment新增isPreviewEnabled(),是不是預(yù)覽版

javax.lang.model 各種模型更新,細(xì)節(jié)挺多每個(gè)版本必須改的東西,比如加上新版本的串

javax.tools ToolProvider的ToolProvider()方法刪除

java.util.logging LogRecord新增了getLongThreadID用于晚點(diǎn)替換getThreadID

java.management.rmi 挺多內(nèi)容刪除

javax.naming.ldap.spi  ldapv3版本的擴(kuò)展包

java.net.http HttpRequest新增了newBuilder(2個(gè)) HttpRequest.BodyPublishers新增concat

javax.xml DocumentBuilderFactory和SAXParserFactory新增了命名空間支持

awt,swing的各種更改就不說(shuō)了,剔除多個(gè)如nashorn之類(lèi)用的少的模塊,刪除aot,jit,macos下增強(qiáng)

沒(méi)啥結(jié)語(yǔ),jdk16開(kāi)始啟用了c++14,像 Vector API 開(kāi)發(fā)人員需要了解HotSpot的自動(dòng)矢量化支持及其局限性.panama項(xiàng)目還有對(duì)外部存儲(chǔ),c/c++的api直接訪問(wèn),從8升級(jí)你怕了嗎.

“java8到j(luò)ava17 api有哪些改動(dòng)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁(yè)名稱(chēng):java8到j(luò)ava17api有哪些改動(dòng)
網(wǎng)頁(yè)路徑:http://www.muchs.cn/article6/ihpiog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、域名注冊(cè)、外貿(mào)建站、標(biāo)簽優(yōu)化、網(wǎng)站維護(hù)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)