❶ java8 官方支持到期時間
2020年12月。
Java8又稱為jdk1.8,是Java語言開發的一個主要版本。Oracle公司於2014年3月18日發布Java 8版本,它支持函數式編程,新的JavaScript引擎,新的日期API等。
Java8 新增了非常多的特性,我們主要討論以下幾個:Lambda 表達式 _ Lambda允許把函數作為一個方法的參數(函數作為參數傳遞進方法中。
方法引用 _ 方法引用提供了非常有用的語法,可以直接引用已有Java類或對象(實例)的方法或構造器。與lambda聯合使用,方法引用可以使語言的構造更緊湊簡潔,減少冗餘代碼。
默認方法 _ 默認方法就是一個在介面裡面有了一個實現的方法。
新工具 _ 新的編譯工具,如:Nashorn引擎 jjs、類依賴分析器jdeps。
Stream API _新添加的Stream API(java.util.stream) 把真正的函數式編程風格引入到Java中。
Date Time API_加強對日期與時間的處理。
Optional類_Optional類已經成為 Java 8 類庫的一部分,用來解決空指針異常。
Nashorn, JavaScript引擎 _ Java 8提供了一個新的Nashorn javascript引擎,它允許我們在JVM上運行特定的javascript應用。
❷ JVM中常量池存放在哪裡
java8之前:
java8之後:元數據區 Metaspace
由於 PermGen 內存管理的效果遠沒有達到預期,所以JCP已經著手去除PermGen的工作。在JDK7中,字元串常量已經從永局褲久代移除。現今 JDK8 中 PermGen 已經被徹底移除,取而代之的是metaspace數據區,使用native內存,申請和釋放由虛擬機負責管理。
那麼,JVM中常量池到底存放在哪裡?
Java6和6之前,常量喚臘櫻池是存放在方法和叢區(永久代)中的。
Java7,將常量池是存放到了堆中。
Java8之後,取消了整個永久代區域,取而代之的是元空間。 運行時常量池和靜態常量池存放在元空間中,而字元串常量池依然存放在堆中。
❸ 在Java8中,元數據被放到本地內存中,不再受JVM限制了。但是這樣還是會有什麼弊端嗎
你說的應該是java調用jni操作本地內存,這個其實很多時候是必要的,缺點的話:
1、主要是開發難度上的問題,網上羅列過很多,比如食用過多的本地引用而沒有告訴jvm,運行時間久一點就崩了;
2、其次是移植到其他系統就不可能了,所謂本地就是指的當前系統環境下的開發,既然本地化了就不存在跨平台優勢了。