本文目錄一覽:
java有java2、java5,那麼它到底有幾個版本呢?
現在java 基本可以分為java2 和java1但是,JAVA1已經基本上沒有人在用了,現在能見到的都統稱為JAVA2
你所說的JAVA5 應該是java 1.5,現在已經改名就java SE 5
這個版本是從1.1開始的,現在最新版本可以說是1.6.0.0.3,也叫java SE5
java分三個方向吧可以說:J2SE、J2EE、J2ME其中的J2SE前面已經說過了,最新為1.6,j2ee為1.5
J2SE主要為面向桌面程序的開發
J2EE為面向企業級開發
J2ME為面向手持產品、移動平台的開發
java開發的缺點有哪些?
我認為Java語言的10大問題是:\x0d\x0a1、缺少閉包(closure):我想這個不需要解釋了。函數式編程已經存在幾十年了,但最近幾年,它們獲得了越來越多的關注,最主要的原因,是它可以自然地編寫並行程序。我部分的同意Joshua Bloch強調在Java中引入閉包的問題需要再想一想(BGGA提議的方式真的很糟),至少閉包的缺失,使得在Java中做任何真正的函數式編程都是不可能的。\x0d\x0a2、缺少一等函數:這個問題與前一個有些關聯,但我認為它更糟糕。在Java里,要達到類似效果的唯一方式,是使用著名的、醜陋悲慘的單方法匿名內部類,但這看上去的確是一個拙劣的方法。甚至在C#中,也通過代理機制,提供了一個更好的實現。\x0d\x0a3、原生類型(Primitive types):如果在Java中一切皆對象,那是多麼完美啊,但他們偏偏不這樣設計。因而,這一點導致了一些問題,比如,不能把一個int放到集合(Collection)里,這個在Java5中通過自動裝箱特性得到了解決(下面會提到)。它也造成了傳值與傳引用上的困擾,原生類型數據是通過值傳給方法的(複製一份拷貝,然後傳給函數),而真正的對象是通過傳遞(譯註:其實是複製對象地址再傳遞,因此應該也是傳值方式,只是由於函數內部可通過這個對象地址訪問對象,因此效果上類似傳引用)。\x0d\x0a4、自動裝箱(Autoboxing)和自動拆箱(autounboxing):這個特性是為了解決因原生類型的存在所導致的問題,在Java5引入的。它允許靜默地轉換原生類型到相應的對象,但這常常導致其它的問題。比如Integer可以為null,但int不能,因此這時JVM只能拋出一個難以調試的空指針異常(NullPointerException)。此外,它還可能導致其它奇怪的行為,就像下面的例子,我們就很難理解,變量test為什麼是false:\x0d\x0aIntger a = new Integer(1024);\x0d\x0aIntger b = new Integer(1024);\x0d\x0aboolean test = a b;\x0d\x0a5、缺少范型具類化:范型是Java5引入的一個很酷的特徵,但是為了保持與舊版本Java的兼容性,導致缺失某些重要的特性,尤其是不能在運行時反省范型的類型。例如,你有一個方法,接受List參數,如果傳進來一個List,你卻不能知道運行里該范型的確切類型。同理,你也不能創建范型數組。這意味着,儘管下面的代碼看起來很自然,但卻不編譯不了:\x0d\x0aList[] listsOfStrings = new List[3];\x0d\x0a6、不可避免的范型警告:你有發現過自己陷入不可能去掉的關於范型的警告么?如果你像我一樣大量使用范型,我打賭你碰到過。事實上,是這個問題的規模化癥狀,讓他們認為需要引入一個特定的註解(@SuppressWarnings(“unchecked”))來處理這種情況,我覺得,范型應該可能被設計的更好。\x0d\x0a7、不能傳void給方法調用:我得承認,這種給方法傳遞void的需求,乍一看有些怪異。我喜歡DSL,當我實現自己的DSL庫(lambdaj)的一個特定特性時,我不得不需要一個方法聲明成這樣的簽名:void doSomething(Object parameter),這裡為這個方法傳進來的參數parameter,是另一個方法調用的結果,它唯一的目的,是註冊調用(的對象)自身,以可以在以後執行它。讓我吃驚的是,即使println方法返回void,看上去也並沒有一個好理由,不允許我把代碼寫成這樣,:\x0d\x0adoSomething(System.out.println(“test”));\x0d\x0a8、沒有原生的代理機制:代理是一種非常有效和應用廣泛的模式,但Java提供的代理機制,只針對接口,而不是具體類。這是為什麼象cblib這樣提供這種機制的庫,被如此多的主流框架,如Spring和Hibernate,採用的原因。此外,由於cglib通過運行時創建被代理類的子類來實現的,因此這些種方式有一個眾所周知的限制——不能代理final類,比如String。\x0d\x0a9、差勁的Switch…case語句:Java規定,switch…case只能選擇int和enum(Java5開始)。這一點如果跟更現代的語言如Scala相比,看起來簡直太弱了。\x0d\x0a10、受檢查異常(Checked exception):類似原生類型,受檢查異常也已經成為Java的一個罪孽之源。它迫使程序員必須做下面兩件極其糟糕討厭的事情中的一個:讓你的代碼里充斥大量的、糟糕難讀的、容易出錯的try…catch語句,而這樣做的最大意義,只是將捕獲的異常,包裝成運行時異常,然後再重新拋出;或者是讓大量的拋出聲明子句污染你的API,讓接口缺少靈活性和可擴展性。\x0d\x0a真正的問題是,這裡我提到的這幾大主要問題,唯一的解決辦法,是要做一個痛苦的決擇,定義一套新的語言規範,放下當前版本的向後兼容性。我猜他們永遠也不會這麼做,雖然我相信,如果編寫一個能夠自動轉換舊Java源碼的程序,讓它們與假設的新版本兼容,並不是很困難。最後,這就是我決定開始尋找一個更好的JVM兼容語言的原因。
java中5&5是多少
for(int i = 0;i255;i++){char a = (char) i;System.out.println(a+”………”+i);},這是0到254在ASCII碼中對應的字母。你可以找到你想要的所有的。
1、public static void main(String[] args) { char[] arr = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’}。
System.out.println(“運行結果如下:”)。 System.out.println(“——————————–“); for(int i=0; iarr.length; i++){ System.out.println(arr[i] + “:” + (int)arr[i]); }}/**。
2、你說的ASCII碼吧。A-Z 65-90,a-z 97-122。
3、全部的:a:97,b:98,c:99,d:100,e:101,f:102,g:103,h:104,i:105,j:106,k:107,l:108,m:109,n:110,o:111,p:112,q:113,r:114,s:115,t:116,u:117,v:11,w:119,x:120,y:121,z:122,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90 */。
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-hant/n/181567.html