java JDK用的比較普遍的是jdk1.5、jdk1.6、jdk1.7,每個版本都有添加新的API,雖然現在有jdk1.8的,但我之前在大學裡面學習裝的是1.7的,現在發現公司用的是1.6的。所以你自己要學習的話,1.7的就夠了,1.8的貌似有一些新的功能,但個人表示目前還沒用過。
『貳』 jdk版本哪幾個版本比較好用
JDK5
自動裝箱與拆箱:
枚舉
靜態導入,如:import staticjava.lang.System.out
可變參數(Varargs)
內省(Introspector),主要用於操作JavaBean中的屬性,通過getXxx/setXxx。一般的做法是通過類Introspector來獲取某個對象的BeanInfo信息,然後通過BeanInfo來獲取屬性的描述器(PropertyDescriptor),通過這個屬性描述器就可以獲取某個屬性對應的getter/setter方法,然後我們就可以通過反射機制來調用這些方法。
泛型(Generic)(包括通配類型/邊界類型等)
For-Each循環
註解
協變返回類型:實際返回類型可以是要求的返回類型的一個子類型
JDK6
1.AWT新增加了兩個類:Desktop和SystemTray,其中前者用來通過系統默認程序來執行一個操作,如使用默認瀏覽器瀏覽指定的URL,用默認郵件客戶端給指定的郵箱發郵件,用默認應用程序打開或編輯文件(比如,用記事本打開以txt為後綴名的文件),用系統默認的列印機列印文檔等。後者可以用來在系統托盤區創建一個托盤程序。(開發中基本沒用過)
2.使用JAXB2來實現對象與XML之間的映射,可以將一個Java對象轉變成為XML格式,反之亦然
3.StAX,一種利用拉模式解析(pull-parsing)XML文檔的API。類似於SAX,也基於事件驅動模型。之所以將StAX加入到JAXP家族,是因為JDK6中的JAXB2和JAX-WS 2.0中都會用StAX。
4.使用Compiler API,動態編譯Java源文件,如jsP編譯引擎就是動態的,所以修改後無需重啟伺服器。(剛知道是從這里開始可以動態編譯的)
5.輕量級Http Server API,據此可以構建自己的嵌入式HttpServer,它支持春鬧Http和Https協議。
6.插入式註解處理API(PluggableAnnotation Processing API)
7.提供了Console類用以開發控制台程序,位於java.io包中。據此可方便與Windows下的cmd或Linux下的Terminal等交互。
8.對腳本語言的支持如: ruby,groovy, javascript
9.Common Annotations,原是J2EE 5.0規范的一部分,現在把它的一部分放到了J2SE 6.0中
10.嵌入式資料庫 Derby(這個也是剛知道,基本沒用過)
JDK7
1.對Java集合(Collections)的增強支持,可直接採用[]、{}的形式存入對象,採用[]的形式按照索引、鍵值來獲取集合中的對象。如:
List<String>list=[「item1」,」item2」慶桐];//存
Stringitem=list[0];//直接取
Set<String>set={「item1」,」item2」,」item3」};//存
Map<String,Integer> map={「key1」:1,」key2」:2};//存
Intvalue=map[「key1」];//取12345
2.在Switch中可用String
3.數值可加下劃線用作分隔符(編譯時自動被忽略)
4.支持二進制數字,如:int binary= 0b1001_1001;
5.簡化了可變參數方法的調用
6.調用泛型類的構造方法時,可以省去泛型參數,編譯器會自動判斷。
7.Boolean類型反轉,譽森坦空指針安全,參與位運算
8.char類型的equals方法: booleanCharacter.equalsIgnoreCase(char ch1, char ch2)
9.安全的加減乘除: Math.safeToInt(longv); Math.safeNegate(int v); Math.safeSubtract(long v1, int v2);Math.safeMultiply(int v1, int v2)……
10 .Map集合支持並發請求,注HashTable是線程安全的,Map是非線程安全的。但此處更新使得其也支持並發。另外,Map對象可這樣定義:Map map = {name:」xxx」,age:18};
JDK8
1.介面的默認方法:即介面中可以聲明一個非抽象的方法做為默認的實現,但只能聲明一個,且在方法的返回類型前要加上「default」關鍵字。
2.Lambda 表達式:是對匿名比較器的簡化,如:
Collections.sort(names,(String a, String b) -> { returnb.compareTo(a);});1
對於函數體只有一行代碼的,你可以去掉大括弧{}以及return關鍵字。如:1
Collections.sort(names,(String a, String b) -> b.compareTo(a));
或:Collections.sort(names, (a, b) -> b.compareTo(a));123
3.函數式介面:是指僅僅只包含一個抽象方法的介面,要加@FunctionalInterface註解
4.使用 :: 關鍵字來傳遞方法或者構造函數引用
5.多重註解
6.還增加了很多與函數式介面類似的介面以及與Map相關的API等……
JDK9
jdk1.9新特性
1、Java 平台級模塊系統
當啟動一個模塊化應用時, JVM 會驗證是否所有的模塊都能使用,這基於requires語句——比脆弱的類路徑邁進了一大步。模塊允許你更好地強制結構化封裝你的應用並明確依賴。
2. Linking
當你使用具有顯式依賴關系的模塊和模塊化的 JDK 時,新的可能性出現了。你的應用程序模塊現在將聲明其對其他應用程序模塊的依賴以及對其所使用的 JDK 模塊的依賴。為什麼不使用這些信息創建一個最小的運行時環境,其中只包含運行應用程序所需的那些模塊呢? 這可以通過 Java 9 中的新的 jlink 工具實現。你可以創建針對應用程序進行優化的最小運行時映像而不需要使用完全載入 JDK 安裝版本。
3.JShell : 互動式 Java REPL
許多語言已經具有互動式編程環境,Java 現在加入了這個俱樂部。您可以從控制台啟動 jshell ,並直接啟動輸入和執行 Java 代碼。 jshell 的即時反饋使它成為探索 API 和嘗試語言特性的好工具。
4.改進的 Javadoc
Javadoc 現在支持在 API 文檔中的進行搜索。另外,Javadoc 的輸出現在符合兼容 HTML5 標准。此外,你會注意到,每個 Javadoc 頁面都包含有關 JDK 模塊類或介面來源的信息。
5.集合工廠方法
通常,您希望在代碼中創建一個集合(例如,List 或 Set ),並直接用一些元素填充它。 實例化集合,幾個 「add」 調用,使得代碼重復。 Java 9,添加了幾種集合工廠方法:
Set<Integer> ints = Set.of(1,2,3);List<String> strings = List.of("first","second");123
除了更短和更好閱讀之外,這些方法也可以避免您選擇特定的集合實現。 事實上,從工廠方法返回已放入數個元素的集合實現是高度優化的。這是可能的,因為它們是不可變的:在創建後,繼續添加元素到這些集合會導致 「UnsupportedOperationException」 。
6.改進的 Stream API
長期以來,Stream API 都是 Java 標准庫最好的改進之一。通過這套 API 可以在集合上建立用於轉換的申明管道。在 Java 9 中它會變得更好。Stream 介面中添加了 4 個新的方法:dropWhile, takeWhile, ofNullable。還有個 iterate 方法的新重載方法,可以讓你提供一個 Predicate (判斷條件)來指定什麼時候結束迭代:
IntStream.iterate(1, i -> i < 100, i -> i + 1).forEach(System.out::println);1
第二個參數是一個 Lambda,它會在當前 IntStream 中的元素到達 100 的時候返回 true。因此這個簡單的示例是向控制台列印 1 到 99。
除了對 Stream 本身的擴展,Optional 和 Stream 之間的結合也得到了改進。現在可以通過 Optional 的新方法stram將一個 Optional 對象轉換為一個(可能是空的) Stream 對象:
Stream<Integer> s = Optional.of(1).stream();1
在組合復雜的 Stream 管道時,將 Optional 轉換為 Stream 非常有用。
7.私有介面方法
使用 Java 9,您可以向介面添加私有輔助方法來解決此問題:
publicinterface MyInterface {
voidnormalInterfaceMethod();
default void interfaceMethodWithDefault() { init(); }
default void anotherDefaultMethod() { init(); }This method is not part of the public API exposed by MyInterface
privatevoidinit() { System.out.println("Initializing");
}}12345678910111213
如果您使用默認方法開發 API ,那麼私有介面方法可能有助於構建其實現。
8. HTTP/2
Java 9 中有新的方式來處理 HTTP 調用。這個遲到的特性用於代替老舊的HttpURLConnectionAPI,並提供對 WebSocket 和 HTTP/2 的支持。注意:新的 HttpClient API 在 Java 9 中以所謂的孵化器模塊交付。也就是說,這套 API 不能保證 100% 完成。不過你可以在 Java 9 中開始使用這套 API:
HttpClient client = HttpClient.newHttpClient();HttpRequest req = HttpRequest.newBuilder(URI.create("http://www.google.com")).header("User-Agent","Java").GET().build();HttpResponse<String> resp = client.send(req, tpResponse.BodyHandler.asString());HttpResponse<String> resp = client.send(req,HttpResponse.BodyHandler.asString());1234
除了這個簡單的請求/響應模型之外,HttpClient 還提供了新的 API 來處理 HTTP/2 的特性,比如流和服務端推送。
9.多版本兼容 JAR
我們最後要來著重介紹的這個特性對於庫的維護者而言是個特別好的消息。當一個新版本的 Java 出現的時候,你的庫用戶要花費數年時間才會切換到這個新的版本。這就意味著庫得去向後兼容你想要支持的最老的 Java 版本 (許多情況下就是 Java 6 或者 7)。這實際上意味著未來的很長一段時間,你都不能在庫中運用 Java 9 所提供的新特性。幸運的是,多版本兼容 JAR 功能能讓你創建僅在特定版本的 Java 環境中運行庫程序時選擇使用的 class 版本:
multirelease.jar
├──
META-INF
│
└── versions
│
└── 9
│
└── multirelease
│
└── Helper.class
├──
multirelease
├──1
Helper.class
└──1
Main.class
在上述場景中, multirelease.jar 可以在 Java 9 中使用, 不過 Helper 這個類使用的不是頂層的 multirelease.Helper 這個 class, 而是處在「META-INF/versions/9」下面的這個。這是特別為 Java 9 准備的 class 版本,可以運用 Java 9 所提供的特性和庫。同時,在早期的 Java 諸版本中使用這個 JAR 也是能運行的,因為較老版本的 Java 只會看到頂層的這個 Helper 類。
『叄』 Java編程軟體去哪下載好哪個版本的好用,初學者
java編程環境就是JDK,去Oracle官網下載就可以,最新的1.7,一般都用1.6
開發工具就是eclipse,完全免費回,可以自己擴充功能答插件,可以去官網http://www.eclipse.org/downloads/下載。最新版本3.7 INDIGO
推薦使用3.6 HELIOS版,因為這個版本對大部分插件都支持,3.7個別插件無法使用。
JavaEE的收費開發工具MyEclipse,是在Eclipse的基礎上整合的MyEclipse插件集,做JavaEE開發非常方便,功能很強大,但體積較大,運行比較耗資源,而且是收費可以破。 最好從英文版做起。
『肆』 java的JDK更新到什麼版本了
Standard Edition(標准版)的最新版:jdk 14。
Early-Access(先行版)的最新版:jdk15。
LTS(長期支持版)的最新版:jdk 11.0.6。
JRE(Java Runtime Environment,Java運行時環境),包含了java虛擬機、java基礎類庫。是使用java語言編拿穗好寫的程序運行所需要的軟體環境。
它相當於操作系統部分,提供了Java程序消鉛運行時所需要的族嫌基本條件和許多Java基礎類,例如,IO類、GUI控制項類、網路類等。JRE是提供給普通用戶使用的,如果你只想運行別人開發好的Java程序,那麼,你的計算機上必須且只需安裝JRE。
JDK(Java Development Kit,Java開發工具包),它包含編譯工具、解釋工具、文檔製作工具、打包工具多種與開發相關的工具,是提供給Java開發人員使用的。JDK包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具:jconsole,jvisualvm等工具軟體,還包含了java程序編寫所需的文檔和demo例子程序。
『伍』 請問現在初學者學習java,用jdk哪個版本的,1.8適合還是1.7適合啊
建議用1.7。版本穩定一些,目前用的較多
『陸』 初學 Java, 官方網站上下載 JDK 應該選擇哪一個
i586是針對32bit的windows,比如winxp。
x64是針對64bit的windows,比如新機裝的win7
demos包是示例包,裡面都是基本的代碼,學習專可以參考,但需屬要英文基礎和耐心閱讀。
至於選Java 6還是Java7,個人覺得都可。
畢竟7和6保持了99.9%的兼容...在運行環境甚至會自動降級。
沒把握還是選6
『柒』 現在JAVA開發用哪個版本的JDK最多還有哪個版本的Eclipse
每個公司用的jdk版本都是不一樣的,要根據項目的統一決定使用dk版本以及eclipse版本
jdk是 Java 語言的軟體開發工具包,主要用於移動設備、嵌入式設備上的java應用程序。
Eclipse 是一個開放源代碼的、基於Java的可擴展開發平台。就其本身而言,它只是一個框架和一組服務,用於通過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發工具(Java Development Kit,JDK)。
『捌』 學習java需要什麼軟體java編程軟體哪個好
學習java要什麼軟體?java編程軟體哪個好?昌平北大青鳥java培訓小編為你詳細解答!
一、JDK(JavaDevelopmentKit)
JDK是整個Java的核心,包括了Java運行環境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎的類庫(rt.jar)。不論什麼Java應用伺服器實質都是內置了某個版本的JDK。因此掌握JDK是學好Java的第一步。最主流的JDK是Sun公司發布的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如IBM公司開發的JDK,BEA公司的Jrocket,還有GNU組織開發的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)運行效率要比SunJDK包含的JVM高出許多。而專門運行在x86平台的Jrocket在服務端運行效率也要比SunJDK好塌派鎮很多。但不管怎麼說,我們還是需要先把SunJDK掌握好。
1、JDK的下載和安裝
JDK又叫做J2SE(Java2SDKStandardEdition),可以從Sun的Java網站上下載到,#/j2se/downloads.html;,JDK當前最新的版本是J2SDK1.4.2,建議下載該版本的JDK,下載頁面在這里:http://#/j2se/1.4.2/download.html。
下載好的JDK是一個可執行安裝程序,默認安裝完畢後會在C:ProgramFilesJava目錄下安裝一套JRE(供瀏覽器來使用),在C:j2sdk1.4.2下安裝一套JDK(也包括一套JRE)。然後我們需要在環境變數PATH的最前面增加java的路徑C:j2sdk1.4.2in。這樣JDK就安裝好了。
2、JDK的命令工具
JDK的最重要命令行工具:
java:啟動JVM執行class
javac:Java編譯器
jar:Java打包工具
javadoc:Java文檔生成器
這些命令行必須要非常羨物非常熟悉,對於每個參數都要很精通才行。對於這些命令的學習,JDKDocumentation上有詳細的文檔。
二、JDKDocumentation
Documentation在JDK的下載頁面也有下載連接,建議同時下載Documentation。Documentation是最最重要的編程手冊,涵蓋了整個Java所有方面的內容的描述。可以這樣說,學習Java編程,大部分時間都是花在看這團粗個Documentation上面的。我是隨身攜帶的,寫Java代碼的時候,隨時查看,須臾不離手。
三、應用伺服器(AppServer)
AppServer是運行Java企業組件的平台,構成了應用軟體的主要運行環境。當前主流的AppServer是BEA公司的WeblogicServer和IBM公司的Websphere以及免費的Jboss,選擇其中一個進行學習就可以了,個人推薦Weblogic,因為它的體系結構更加干凈,開發和部署更加方便,是Java企業軟體開發人員首選的開發平台。下面簡要介紹幾種常用的AppServer:
1、Tomcat
Tomcat嚴格意義上並不是一個真正的AppServer,它只是一個可以支持運行Serlvet/JSP的Web容器,不過Tomcat也擴展了一些AppServer的功能,如JNDI,資料庫連接池,用戶事務處理等等。Tomcat被非常廣泛的應用在中小規模的JavaWeb應用中,因此本文做一點下載、安裝和配置Tomcat的介紹:
Tomcat是Apache組織下Jakarta項目下的一個子項目,它的主網站是:#/tomcat/;,Tomcat最新版本是Tomcat4.1.27,軟體下載的連接是:http://#/dist/jakarta/tomcat-4/binaries/;。
下載Tomcat既可以直接下載zip包,也可以下載exe安裝包(個人建議zip更干凈些),不管哪種情況,下載完畢安裝好以後(zip直接解壓縮就可以了)。需要設置兩個環境變數:
JAVA_HOME=C:j2sdk1.4.2
CATALINA_HOME=D: omcat4(你的Tomcat安裝目錄)
這樣就安裝好了,啟動Tomcat運行CATALINA_HOMEinstartup.bat,關閉Tomcat運行shutdown.bat腳本。Tomcat啟動以後,默認使用8080埠,因此可以用瀏覽器訪問http://localhost:8080來測試Tomcat是否正常啟動。
Tomcat提供了兩個Web界面的管理工具,URL分別是:
http://localhost:8080/admin/index.jsp;
http://localhost:8080/manager/html;
在啟用這兩個管理工具之前,先需要手工配置一下管理員用戶和口令。用一個文本工具打開CATALINA_HOMEconf omcat-users.xml這個文件,加入如下幾行:
這樣用戶「robbin」就具備了超級管理員許可權。重新啟動Tomcat以後,你就可以使用該用戶來登陸如上的兩個管理工具,通過Web方式進行Tomcat的配置和管理了。
2、BEAWeblogic
Weblogic可以到BEA的網站上免費注冊之後下載到最新的Weblogic8.1企業版,License可以免費使用1年時間,其實這已經完全足夠了。Weblogic的下載連接:#/index.jsp,Weblogic的在線文檔:http://#/;。
3、IBMWebshpere
Websphere同樣可以下載到免費的試用版本,到IBM的developerWorks網站可以看到Websphere試用產品的下載和相關的Websphere的資料,developerWorks中文網站的連接是:#/developerWorks/cn/wsdd/;,Websphere的下載連接:http://#/wsdd/downloads/WASsupport.html;。
4、Jboss
Jboss是免費開源的AppServer,可以免費的從Jboss網站下載:#/index.html,然而Jboss的文檔是不免費,需要花錢購買,所以為我們學習Jboss設置了一定的障礙。在Jdon上有幾篇不錯的Jboss配置文檔,可以用來參考:http://#/idea.html;
四、Java應用的運行環境
Java的應用可以簡單分為以下幾個方面:
1、Java的桌面應用
桌面應用一般僅僅需要JRE的支持就足夠了。
2、JavaWeb應用
Java的Web應用至少需要安裝JDK和一個web容器(例如Tomcat),以及一個多用戶資料庫,Web應用至少分為三層:
Browser層:瀏覽器顯示用戶頁面
Web層:運行Servlet/JSP
DB層:後端資料庫,向Java程序提供數據訪問服務
3、Java企業級應用
企業級應用比較復雜,可以擴展到n層,最簡單情況會分為4層:
Browser層:瀏覽器顯示用戶頁面
Client層:Java客戶端圖形程序(或者嵌入式設備的程序)直接和Web層或者EJB層交互
Web層:運行Servlet/JSP
EJB層:運行EJB,完成業務邏輯運算
DB層:後端資料庫,向Java程序提供數據訪問服務
4、Java嵌入式應用
Java嵌入式應用是一個方興未艾的領域,從事嵌入式開發,需要從Sun下載J2ME開發包,J2ME包含了嵌入式設備專用虛擬機KVM,和普通的JDK中包含的JVM有所不同。另外還需要到特定的嵌入式廠商那裡下載模擬器。
『玖』 java新手應該用什麼版本的JDK
新手應該用J2SE的JDK,這是最核心的JDK,J2EE的JDK包含一些servlet和其他一些擴展的類庫,等你學到web方面就版可以使用這個JDK了,但是我想權到那個時候你也不會再需要他了,用幾個jar包再加上J2SE的JDK就可以了
『拾』 新手自學java,JDK哪個版本比較好,7還是8
jdk
1.7的可以,比較主流
java8剛出來,一些新的特性不支持以前的版本。1.7還是挺好的,