本文目錄一覽:
- 1、java7和java6的重點區別在哪?
- 2、關於java6 jdk1.6 jre6 名字之間的關係
- 3、java都到6了 有什麼不同 哦????
- 4、JAVA2和JAVA6有什麼區別,現在初學JAVA哪本好
- 5、菜鳥發現的java7和java6中一點的不同
- 6、Java5、java6指的是JDK的版本嗎?
java7和java6的重點區別在哪?
Java EE 7 擴展了 Java EE 6,利用更加透明的 JCP 和社區參與來引入新的功能,如圖 1(本圖引用自 Java 官網)所示,主要包括加強對 HTML5 動態可伸縮應用程序的支持、提高開發人員的生產力和滿足苛刻的企業需求。
1、提高開發人員的生產力
通過一個緊密集成的平台簡化了應用架構,減少樣板代碼和加強對注釋的使用來提高效率,另外藉助標準 RESTful Web 服務對客戶端的支持提高了應用程序的可移植性。
2、加強對 HTML 5 動態可伸縮應用程序的支持
基
於其可擴展的基礎架構,Java EE 7 推動了對 HTML 5 應用的構建和支持。在新的平台中,藉助具有行業標準的 JSON
簡化了數據分析和交換,並通過低延遲和雙向通信的 WebSockets 減少了響應時間。以及利用改進的 JAX-RS 2.0
更好地支持非同步的、可擴展的、高性能的 RESTful 服務,從而更好地支持多用戶的並發操作。
3、滿足苛刻的企業需求
為更好地滿足企業的需求,Java EE 7 提供了許多新功能:
細化批處理作業,形成可管理的區塊,以實現不間斷的 OLTP 性能;
簡化多線程並發任務的定義,以提高可擴展性;
以及提供具有選擇性和靈活性的事務應用程序等。
關於java6 jdk1.6 jre6 名字之間的關係
java6就是指的jdk1.6,jre6也是根據jdk1.6來的,就是java run environment的意思。
JDK就是java開發工具包,是程序員使用java語言編寫java程序所需的開發工具包,是提供給程序員使用的。JDK包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具:jconsole,jvisualvm等工具軟體,還包含了java程序編寫所需的文檔和demo例子程序。
如果需要運行java程序,只需安裝JRE就可以了。如果需要編寫java程序,需要安裝JDK。
java都到6了 有什麼不同 哦????
一:Desktop類和SystemTray類
在JDK6中 ,AWT新增加了兩個類:Desktop和SystemTray。
前者可以用來打開系統默認瀏覽器瀏覽指定的URL,打開系統默認郵件客戶端給指定的郵箱發郵件,用默認應用程序打開或編輯文件(比如,用記事本打開以txt為後綴名的文件),用系統默認的印表機列印文檔;後者可以用來在系統托盤區創建一個托盤程序.
二:使用JAXB2來實現對象與XML之間的映射
JAXB是Java Architecture for XML Binding的縮寫,可以將一個Java對象轉變成為XML格式,反之亦然。
我們把對象與關係資料庫之間的映射稱為ORM, 其實也可以把對象與XML之間的映射稱為OXM(Object XML Mapping). 原來JAXB是Java EE的一部分,在JDK6中,SUN將其放到了Java SE中,這也是SUN的一貫做法。JDK6中自帶的這個JAXB版本是2.0, 比起1.0(JSR 31)來,JAXB2(JSR 222)用JDK5的新特性Annotation來標識要作綁定的類和屬性等,這就極大簡化了開發的工作量。
實際上,在Java EE 5.0中,EJB和Web Services也通過Annotation來簡化開發工作。另外,JAXB2在底層是用StAX(JSR 173)來處理XML文檔。除了JAXB之外,我們還可以通過XMLBeans和Castor等來實現同樣的功能。
三:理解StAX
StAX(JSR 173)是JDK6.0中除了DOM和SAX之外的又一種處理XML文檔的API。
StAX 的來歷 :在JAXP1.3(JSR 206)有兩種處理XML文檔的方法:DOM(Document Object Model)和SAX(Simple API for XML).
由於JDK6.0中的JAXB2(JSR 222)和JAX-WS 2.0(JSR 224)都會用到StAX所以Sun決定把StAX加入到JAXP家族當中來,並將JAXP的版本升級到1.4(JAXP1.4是JAXP1.3的維護版本). JDK6裡面JAXP的版本就是1.4. 。
StAX是The Streaming API for XML的縮寫,一種利用拉模式解析(pull-parsing)XML文檔的API.StAX通過提供一種基於事件迭代器(Iterator)的API讓程序員去控制xml文檔解析過程,程序遍歷這個事件迭代器去處理每一個解析事件,解析事件可以看做是程序拉出來的,也就是程序促使解析器產生一個解析事件然後處理該事件,之後又促使解析器產生下一個解析事件,如此循環直到碰到文檔結束符;
SAX也是基於事件處理xml文檔,但卻是用推模式解析,解析器解析完整個xml文檔後,才產生解析事件,然後推給程序去處理這些事件;DOM採用的方式是將整個xml文檔映射到一顆內存樹,這樣就可以很容易地得到父節點和子結點以及兄弟節點的數據,但如果文檔很大,將會嚴重影響性能。
四:使用Compiler API
現在我 們可以用JDK6 的Compiler API(JSR 199)去動態編譯Java源文件,Compiler API結合反射功能就可以實現動態的產生Java代碼並編譯執行這些代碼,有點動態語言的特徵。
這個特性對於某些需要用到動態編譯的應用程序相當有用, 比如JSP Web Server,當我們手動修改JSP後,是不希望需要重啟Web Server才可以看到效果的,這時候我們就可以用Compiler API來實現動態編譯JSP文件,當然,現在的JSP Web Server也是支持JSP熱部署的,現在的JSP Web Server通過在運行期間通過Runtime.exec或ProcessBuilder來調用javac來編譯代碼,這種方式需要我們產生另一個進程去做編譯工作,不夠優雅而且容易使代碼依賴與特定的操作系統;Compiler API通過一套易用的標準的API提供了更加豐富的方式去做動態編譯,而且是跨平台的。
五:輕量級Http Server API
JDK6 提供了一個簡單的Http Server API,據此我們可以構建自己的嵌入式Http Server,它支持Http和Https協議,提供了HTTP1.1的部分實現,沒有被實現的那部分可以通過擴展已有的Http Server API來實現,程序員必須自己實現HttpHandler介面,HttpServer會調用HttpHandler實現類的回調方法來處理客戶端請求,在這裡,我們把一個Http請求和它的響應稱為一個交換,包裝成HttpExchange類,HttpServer負責將HttpExchange傳給 HttpHandler實現類的回調方法.
六:插入式註解處理API(Pluggable Annotation Processing API)
插入式註解處理API(JSR 269)提供一套標準API來處理Annotations(JSR 175)
實際上JSR 269不僅僅用來處理Annotation,我覺得更強大的功能是它建立了Java 語言本身的一個模型,它把method, package, constructor, type, variable, enum, annotation等Java語言元素映射為Types和Elements(兩者有什麼區別?), 從而將Java語言的語義映射成為對象, 我們可以在javax.lang.model包下面可以看到這些類. 所以我們可以利用JSR 269提供的API來構建一個功能豐富的元編程(metaprogramming)環境.
JSR 269用Annotation Processor在編譯期間而不是運行期間處理Annotation, Annotation Processor相當於編譯器的一個插件,所以稱為插入式註解處理.如果Annotation Processor處理Annotation時(執行process方法)產生了新的Java代碼,編譯器會再調用一次Annotation Processor,如果第二次處理還有新代碼產生,就會接著調用Annotation Processor,直到沒有新代碼產生為止.每執行一次process()方法被稱為一個”round”,這樣整個Annotation processing過程可以看作是一個round的序列.
JSR 269主要被設計成為針對Tools或者容器的API. 舉個例子,我們想建立一套基於Annotation的單元測試框架(如TestNG),在測試類裡面用Annotation來標識測試期間需要執行的測試方法。
七:用Console開發控制台程序
JDK6中提供了java.io.Console 類專用來訪問基於字元的控制台設備. 你的程序如果要與Windows下的cmd或者Linux下的Terminal交互,就可以用Console類代勞. 但我們不總是能得到可用的Console, 一個JVM是否有可用的Console依賴於底層平台和JVM如何被調用. 如果JVM是在互動式命令行(比如Windows的cmd)中啟動的,並且輸入輸出沒有重定向到另外的地方,那麼就可以得到一個可用的Console實例.
八:對腳本語言的支持如: ruby, groovy, javascript.
九:Common Annotations
Common annotations原本是Java EE 5.0(JSR 244)規範的一部分,現在SUN把它的一部分放到了Java SE 6.0中.
隨著Annotation元數據功能(JSR 175)加入到Java SE 5.0裡面,很多Java 技術(比如EJB,Web Services)都會用Annotation部分代替XML文件來配置運行參數(或者說是支持聲明式編程,如EJB的聲明式事務), 如果這些技術為通用目的都單獨定義了自己的Annotations,顯然有點重複建設, 所以,為其他相關的Java技術定義一套公共的Annotation是有價值的,可以避免重複建設的同時,也保證Java SE和Java EE 各種技術的一致性.
下面列舉出Common Annotations 1.0裡面的10個Annotations Common Annotations
Annotation Retention Target Description
Generated Source ANNOTATION_TYPE, CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE 用於標註生成的源代碼
Resource Runtime TYPE, METHOD, FIELD 用於標註所依賴的資源,容器據此注入外部資源依賴,有基於欄位的注入和基於setter方法的注入兩種方式
Resources Runtime TYPE 同時標註多個外部依賴,容器會把所有這些外部依賴注入
PostConstruct Runtime METHOD 標註當容器注入所有依賴之後運行的方法,用來進行依賴注入後的初始化工作,只有一個方法可以標註為PostConstruct
PreDestroy Runtime METHOD 當對象實例將要被從容器當中刪掉之前,要執行的回調方法要標註為PreDestroy RunAs Runtime TYPE 用於標註用什麼安全形色來執行被標註類的方法,這個安全形色必須和Container 的Security角色一致的。RolesAllowed Runtime TYPE, METHOD 用於標註允許執行被標註類或方法的安全形色,這個安全形色必須和Container 的Security角色一致的
PermitAll Runtime TYPE, METHOD 允許所有角色執行被標註的類或方法
DenyAll Runtime TYPE, METHOD 不允許任何角色執行被標註的類或方法,表明該類或方法不能在Java EE容器裡面運行
DeclareRoles Runtime TYPE 用來定義可以被應用程序檢驗的安全形色,通常用isUserInRole來檢驗安全形色
注意:
1.RolesAllowed,PermitAll,DenyAll不能同時應用到一個類或方法上
2.標註在方法上的RolesAllowed,PermitAll,DenyAll會覆蓋標註在類上的RolesAllowed,PermitAll,DenyAll
3.RunAs,RolesAllowed,PermitAll,DenyAll和DeclareRoles還沒有加到Java SE 6.0上來
4. 處理以上Annotations的工作是由Java EE容器來做, Java SE 6.0隻是包含了上面表格的前五種Annotations的定義類,並沒有包含處理這些Annotations的引擎,這個工作可以由Pluggable Annotation Processing API(JSR 269)來做
JAVA2和JAVA6有什麼區別,現在初學JAVA哪本好
java後面跟一個數字表示的是java JDK的版本,一般JDK1.2稱為java2,JDK1.6稱為JAVA6,
目前java jdk版本都已經到了1.7了,所以也稱為JAVA7.
你要學習java,肯定是安裝最新的jdk啊,所以裝jdk1.7,然後學習就好。
菜鳥發現的java7和java6中一點的不同
java7的switch後面括弧中的表達式必須產生一個非long類型的整型值、枚舉類型值或字元串。所以表達式的類型可以是char, byte, short, int, string和枚舉常量。
[java] view plain copy
span style=”font-size:14px;”class J1
{
public static void main(String[] args)
{
String s = “a”;
switch(s)
{
case “a”:
System.out.println(s);break;
case “b”:
System.out.println(s);break;
case “c”:
System.out.println(s);break;
case “d”:
System.out.println(s);break;
}
}
}/span
這段小程序在java7中編譯時不會報錯,在java6中編譯就會報錯。
Java5、java6指的是JDK的版本嗎?
1. JAVA5,6:應該指的是版本。
即指的是JDK(java開發工具的版本),java development kit 。
2.相關介紹:
JAVA5的新特性:
1、泛型 Generics:
2、枚舉類型 Enumeration:
3、自動裝箱拆箱(自動類型包裝和解包)autoboxing unboxing:
4、可變參數varargs(varargs number of arguments)
5、Annotations 它是java中的metadata
JAVA6的新特性:
1、引入了一個支持腳本引擎的新框架
2、UI的增強
3、對WebService支持的增強(JAX-WS2.0和JAXB2.0)
4、一系列新的安全相關的增強
5、JDBC4.0
6、Compiler API
7、通用的Annotations支持
現在已經有JAVA8了,有關的新特性,可以在網上查找。支持了新的語法,可作相關的了解!!!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/290939.html