本篇內(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)