❶ 求 java SE Development Kit8(jdk8)下載32/64位 8u144
軟體介紹:
jdk8的全稱為Java SE Development Kit8,是運行整個Java的核心,它內置一堆Java工具和Java基礎的類庫(rt.jar)以及Java運行環境(Java Runtime Envirnment),如果想要在電腦上運行Java程序就必須安裝ava SE Development Kit,才能保證程序的正常使用。
所需工具:點擊下載 Java SE Development Kit8(jdk8) 8u144
jdk8環境變數配置教程
1、下載軟體壓縮包文件,點擊你電腦系統向對應的程序「jdk-8u144-windows-x64.exe(64位)或者jdk-8u144-windows-i586.exe(32位)」。
2、程序會自動安裝JRE程序,選擇目錄即可
3、直到jdk8下載安裝完畢,點擊「關閉」按鈕即可,如下圖所示:
4、安裝完JDK後配置環境變數,計算機→屬性→高級系統設置→高級→環境變數
5、系統變數→新建 JAVA_HOME 變數
變數值填寫jdk的安裝目錄(本人是 C:Program FilesJavajdk1.8.0_144)
6、系統變數→尋找 Path 變數→編輯
在變數值最後輸入 %JAVA_HOME%in;%JAVA_HOME%jrein;
(注意原來Path的變數值末尾有沒有;號,如果沒有,先輸入;號再輸入上面的代碼)
8、檢驗是否配置成功 運行cmd 輸入 java -version (java 和 -version 之間有空格)若如圖所示 顯示版本信息 則說明安裝和配置成功。
功能介紹
JDK的最重要命令行工具:
1、java: 啟動JVM執行class
2、javac: Java編譯器
3、jar: Java打包工具
4、javadoc: Java文檔生成器
這些命令行必須要非常非常熟悉,對於每個參數都要很精通才行。對於這些命令的學習,JDK Documentation上有詳細的文檔。
從初學者角度來看,採用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,有利於理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java應用開發非常困難,不能進行復雜的Java軟體開發,也不利於團體協同開發。
Java語言恐怕是穩居網路應用程序語言的首選了,這都要歸功於它高度的安全性以及跨平台的特性,幾乎在目前所有的電腦平台上您都可以見得到Java的芳蹤。過去很可能會有不少人抱怨Java雖然有著相當不錯的跨平台以及安全防護等特性,但是它的執行速度遠遠不及C++等各種傳統慣用的程序語言。
jdk8新特性
一、Lambda表達式
1、Lambda表達式可以說是Java 8最大的賣點,她將函數式編程引入了Java。Lambda允許把函數作為一個方法的參數,或者把代碼看成數據。
2、一個Lambda表達式可以由用逗號分隔的參數列表、–>符號與函數體三部分表示。例如:
Arrays.asList( "p", "k", "u","f", "o", "r","k").forEach( e -> System.out.println( e ) );
3、為了使現有函數更好的支持Lambda表達式,Java 8引入了函數式介面的概念。函數式介面就是只有一個方法的普通介面。java.lang.Runnable與java.util.concurrent.Callable是函數式介面最典型的例子。為此,Java 8增加了一種特殊的註解@FunctionalInterface:
二、介面的默認方法與靜態方法
1、我們可以在介面中定義默認方法,使用default關鍵字,並提供默認的實現。所有實現這個介面的類都會接受默認方法的實現,除非子類提供的自己的實現。例如:
2、我們還可以在介面中定義靜態方法,使用static關鍵字,也可以提供實現。例如:
3、介面的默認方法和靜態方法的引入,其實可以認為引入了C++中抽象類的理念,以後我們再也不用在每個實現類中都寫重復的代碼了
三、方法引用
通常與Lambda表達式聯合使用,可以直接引用已有Java類或對象的方法。一般有四種不同的方法引用:
1、構造器引用。語法是Class::new,或者更一般的Class< T >::new,要求構造器方法是沒有參數;
2、靜態方法引用。語法是Class::static_method,要求接受一個Class類型的參數;
3、特定類的任意對象方法引用。它的語法是Class::method。要求方法是沒有參數的;
4、特定對象的方法引用,它的語法是instance::method。要求方法接受一個參數,與3不同的地方在於,3是在列表元素上分別調用方法,而4是在某個對象上調用方法,將列表元素作為參數傳入;
四、重復註解
在Java 5中使用註解有一個限制,即相同的註解在同一位置只能聲明一次。Java 8引入重復註解,這樣相同的註解在同一地方也可以聲明多次。重復註解機制本身需要用@Repeatable註解。Java 8在編譯器層做了優化,相同註解會以集合的方式保存,因此底層的原理並沒有變化。
五、擴展註解的支持
Java 8擴展了註解的上下文,幾乎可以為任何東西添加註解,包括局部變數、泛型類、父類與介面的實現,連方法的異常也能添加註解。
六、Optional
Java 8引入Optional類來防止空指針異常,Optional類最先是由Google的Guava項目引入的。Optional類實際上是個容器:它可以保存類型T的值,或者保存null。使用Optional類我們就不用顯式進行空指針檢查了。
七、Stream
Stream API是把真正的函數式編程風格引入到Java中。其實簡單來說可以把Stream理解為MapRece,當然Google的MapRece的靈感也是來自函數式編程。她其實是一連串支持連續、並行聚集操作的元素。從語法上看,也很像linux的管道、或者鏈式編程,代碼寫起來簡潔明了,非常酷帥!
八、Date/Time API (JSR 310)
Java 8新的Date-Time API (JSR 310)受Joda-Time的影響,提供了新的java.time包,可以用來替代 java.util.Date和java.util.Calendar。一般會用到Clock、LocaleDate、LocalTime、LocaleDateTime、ZonedDateTime、Duration這些類,對於時間日期的改進還是非常不錯的。
九、JavaScript引擎Nashorn
Nashorn允許在JVM上開發運行JavaScript應用,允許Java與JavaScript相互調用。
十、Base64
在Java 8中,Base64編碼成為了Java類庫的標准。Base64類同時還提供了對URL、MIME友好的編碼器與解碼器。
十一、除了這十大新特性之外,還有另外的一些新特性:
1、更好的類型推測機制:Java 8在類型推測方面有了很大的提高,這就使代碼更整潔,不需要太多的強制類型轉換了。
2、編譯器優化:Java 8將方法的參數名加入了位元組碼中,這樣在運行時通過反射就能獲取到參數名,只需要在編譯時使用-parameters參數。
3、並行(parallel)數組:支持對數組進行並行處理,主要是parallelSort()方法,它可以在多核機器上極大提高數組排序的速度。
4、並發(Concurrency):在新增Stream機制與Lambda的基礎之上,加入了一些新方法來支持聚集操作。
5、Nashorn引擎jjs:基於Nashorn引擎的命令行工具。它接受一些JavaScript源代碼為參數,並且執行這些源代碼。
6、類依賴分析器jdeps:可以顯示Java類的包級別或類級別的依賴。
7、JVM的PermGen空間被移除:取代它的是Metaspace(JEP 122)。
❷ 用java實現文件的上傳與下載
1.下載簡單,無非是把伺服器上的文件或者資料庫中的BLob(或其他二進制型),用流讀出來,然後寫到客戶端即可,要注意 ContentType。
2.上傳,可以用Apache Commons Upload等開源工具,或者自己寫:
form要用enctype="multipart/form-data"
然後伺服器端也是用IO把客戶端提交的文件流讀入,然後寫到伺服器的文件系統或者資料庫里。不同的資料庫對Lob欄位操作可能有所不同,建議用Hibernate,JPA等成熟的ORM框架,可以不考慮資料庫細節。