『壹』 為什麼選擇 java 8
速度更快
可以取悅老闆、滿足業務或運營人員的一大賣點是:Java8 運行應用時速度更快。通常,升級至 Java8 的應用都能得到速度上的提升,即便沒有做任何改變或調優。對於為了迎合特定 JVM 而做出調整的應用,這或許並不適用。但 Java8 性能更優的理由還有很多:
常見數據結構的性能提升:對廣受歡迎的 HashMap 進行的基準測試表明,它們在 Java8 中的性能更好。這種提升非常吸引人——你無需學習新的 Streams API 或 Lambda 語法,甚至不需要改變現有的代碼,就能提升應用的性能。
垃圾回收器提升:通常,Java 應用性能取決於垃圾回收的效率。的確,糟糕的垃圾回收會很大程度上影響應用性能。Java8 對垃圾回收做了很多改變,能有效提升性能並簡化調優。最為人熟知的改變是 PermGen 的移除與 Metaspace的引入。
Fork/Join 速度提升:fork/join 框架是在 Java7 中首次引入的,目的是簡化使用 JVM 的並發程序。Java8 中投入了很多努力進一步提升該框架。現在,fork/join 在 Streams API 中用於並發操作。
此外,Java8 中還包含諸多改進以支持並發。Oracle 在 JDK 8 中總結了這些性能提升。
『貳』 有沒有哪個Java 8妙用Nashorn引擎的好例子
使用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代現有的Nashorn Java腳本引擎。提供2至10倍更好的性能,因為它直接編譯代碼在存儲器,並傳遞到位元組碼JVM.Nashorn使用invokedynamics函數,在Java7引入以提高性能。
jjs
對於Nashorn引擎,JAVA8引入了一個新的命令行工具,JJS到控制台執行Java腳本代碼。
解讀js文件
創建並保存sample.js在 C:> JAVA 文件夾。
sample.jsprint('Hello World!');
打開控制台並使用下面的命令。
C:\JAVA>jjs sample.js
看到結果
Hello World!
JJS在交互模式
打開控制台並使用下面的命令
C:\JAVA>jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>
傳遞參數
打開控制台並使用下面的命令。
C:\JAVA> jjs -- a b c
jjs> print('letters: ' +arguments.join(", "))
letters: a, b, c
jjs>
在JAVA調用JavaScript
使用ScriptEngineManager,JavaScript代碼用Java編寫可以被調用。
示例
選擇使用任何編輯器創建以下java程序在 C:/> JAVA
Java8Tester.javaimport javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class Java8Tester {
public static void main(String args[]){
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
String name = "Mahesh";
Integer result = null;
try {
nashorn.eval("print('" + name + "')");
result = (Integer) nashorn.eval("10 + 2");
}catch(ScriptException e){
System.out.println("Error executing script: "+ e.getMessage());
}
System.out.println(result.toString());
}
}
驗證結果
使用javac編譯器編譯如下類
C:\JAVA>javac Java8Tester.java
現在運行Java8Tester看到的結果
C:\JAVA>java Java8Tester
看到結果
Mahesh
12
從JavaScript調用Java
下面的例子將展示如何導入和使用Java類的Java腳本。
創建並保存 sample.js 在 c: > JAVA 文件夾.
sample.jsvar BigDecimal = Java.type('java.math.BigDecimal');
function calculate(amount, percentage) {
var result = new BigDecimal(amount).multiply(
new BigDecimal(percentage)).divide(
new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
return result.toPlainString();
}
var result = calculate(568000000000000000023,13.9);
print(result);
打開控制台並使用下面的命令。
C:\JAVA>jjs sample.js
看到結果
78952000000000000003.20
『叄』 64位的java 8是什麼
一、ava8是java的全新升級包,java8包含新功能、增強功能和 bug 修復,可以提高開發和運行 Java 程序的效內率。新版的發布容,給我們帶來的新的驚喜,其對於程序的支持讓用戶設計開發更加效率。
二、 java8新特性介紹:Lambda 表達式和虛擬擴展方法,Java SE 8 的突出顯示功能是適用於 Java 編程語言和平台的 Lambda 表達式和支持功能的實現。
三、日期和時間 API;此新的 API 將允許開發人員以一種更自然、更清晰、更易於理解的方式處理日期和時間。
四、Nashhorn JavaScript 引擎;JavaScript 引擎的一種新的高性能小型實現,它集成到 JDK 並且通過現有 API 提供給 Java 應用程序。
五、提高安全性;將現有的調用方敏感方法的人工維護列表替換為一種機制,以便准確標識此類方法並允許可靠地搜索其調用方。
軟體截圖
『肆』 java的JDK1.8有什麼新特性
jdk1.8的新特性包括如下:
一、介面的默認方法與靜態方法,也就是介面中可以有實現方法
二、Lambda 表達式
三、函數式介面與靜態導入
四、Lambda 作用域
在lambda表達式中訪問外層作用域和老版本的匿名對象中的方式很相似。你可以直接訪問標記了final的外層局部變數,或者實例的欄位以及靜態變數。
五、訪問局部變數,等等其他新特性。