java簡史
① java語言是什麼時候誕生的誰有詳細資料
JAVA語言是1995年誕生。
任職於太陽微系統(Sun Microsystems)的詹姆斯·高斯林等人於1990年代初開發Java語言的雛形,最初被命名為Oak,目標設置在家用電器等小型系統的編程語言,應用在電視機、電話、鬧鍾、烤麵包機等家用電器的控制和通信。
由於這些智能化家電的市場需求沒有預期的高,Sun公司放棄了該項計劃。隨著1990年代互聯網的發展,Sun公司看見Oak在互聯網上應用的前景,於是改造了Oak,於1995年5月以Java的名稱正式發布。Java伴隨著互聯網的迅猛發展而發展,逐漸成為重要的網路編程語言。
(1)java簡史擴展閱讀
特點
1、Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。
2、Java設計成支持在網路上應用,它是分布式語言。Java既支持各種層次的網路連接,又以Socket類支持可靠的流網路連接,所以用戶可以產生分布式的客戶機和伺服器。
3、Java編譯程序生成位元組碼(byte-code),而不是通常的機器碼。Java位元組碼提供對體系結構中性的目標文件格式,代碼設計成可有效地傳送程序到多個平台。
② 移動開發基礎教程:Android是什麼 安卓開發
Android是基於Linux內核的操作系統,是谷歌公司在2007年11月5日公布的手機操作系統,早期由谷歌開發,後由開放手持設備聯盟(Open Handset Alliance)開發。它採用了軟體堆層(software stack,又名以軟體疊層)的架構,主要分為三部分。底層Linux內核只提供基本功能;其他的應用軟體則由各公司自行開發,部分程序以Java編寫。
一、簡介
BlackBerry和iPhone都提供了受歡迎的、高容量的移動平台,但是卻分別針對兩個不同的消費群體。BlackBerry是企業業務用戶的不二選擇。但是,作為一種消費設備,它在易用性和 「新奇特性」 方面難以和iPhone抗衡。Android則是一個年輕的、有待開發的平台,它有潛力同時涵蓋行動電話的兩個不同消費群體,甚至可能縮小工作和娛樂之間的差別。
如今,很多基於網路或有網路支持的設備都運行某種Linux內核。這是一種可靠的平台:可經濟有效地進行部署和提供支持,並且可直接作為面向部署的良好的設計方法。這首攜鏈些設備的UI通常是基於HTML的,可通過PC或Mac瀏覽器查看。但並不是每個設備都需要通過一個常規的計算設備來控制。想像一下傳統的家用電器,例如電爐、微波爐或麵包機。如果您者孫的家用電器由Android控制,並且有一個彩色觸摸屏,會怎麼樣?如果電爐上有一個Android UI,那麼操控者甚至可以烹飪點什麼東西。
二、Android術語
在Eclipse環境中開發Android應用程序需要了解Eclipse環境和Android平台的知識。了解以下術語會有助於用Eclipse插件開發Android應用程序。
Open Handset Alliance
這是一個由谷歌公司主導的組織,它由許多公共和私人組織組成。
Android
這是Open Handset Alliance的主打產品。它是一種針對移動設備的開放源碼操作環境。
模擬器
模擬另一個系統的軟體工具—這常常是在個人計算機(IBM、Mac、Linux)上運行的一個環境,它模擬另一個環境,比如移動計算設備。
Linux
一種開放源碼的操作系統內核,許多計算平台都使用這種操作系統,包括伺服器、桌面計算機、網路設備和移動計算設備。Android在Linux內核上運行。
Dalvik Virtual Machine
Dalvik VM是Android產品組合中的一種操作環境,它在運行時解釋應用程序代碼。Dalvik VM與Java VM相似,但是兩者不兼容。
三、Android簡史
Android平台是Open Handset Alliance的成果,Open Handset Alliance 組織由一群共同致力於構建更好的行動電話的公司組成。這個組織由谷歌領導,包括移動運營商、手持設備製造商、零部件製造商、軟體解決方案和平台提供商以及市場營銷公司。從軟體開發的觀點看,Android正處在開源領域的中心位置。
市場上第一款支持Android的手機是由HTC製造並由T-Mobile供應的G1。這款隱山設備從設想到推出花了大約一年的時間,惟一可用的軟體開發工具是一些實行增量改進的SDK發行版。隨著G1發行日的臨近,Android團隊發布了SDK V1.0,用於這個新平台的應用程序也浮出水面。
為了鼓勵創新,谷歌舉辦了兩屆「Android Developer Challenges」,為優勝的參賽作品提供數百萬美金的獎勵。G1 問世幾個月之後,隨後就發布了Android Market,它使用戶可以瀏覽應用程序,並且可以將應用程序直接下載到他們的手機上。經過大約 18 個月,一個新的移動平台進入公眾領域。
四、Android平台
Android平台被稱為一個產品組合,因為它是一系列組件的集合,包括:
基於Linux內核的操作系統 Java編程環境 工具集,包括編譯器、資源編譯器、調試器和模擬器 用來運行應用程序的Dalvik VM
Android有豐富的功能,因此很容易與桌面操作系統混淆。Android是一個分層的環境,構建在Linux內核的基礎上,它包括豐富的功能。UI 子系統包括:
窗口 視圖 用於顯示一些常見組件(例如編輯框、列表和下拉列表)的小部件。
Android包括一個構建在WebKit基礎上的可嵌入瀏覽器,iPhone 的Mobile Safari瀏覽器同樣也是以WebKit為基礎。
Android提供多種連接選項,包括WiFi、藍牙和通過蜂窩(cellular)連接的無線數據傳輸(例如GPRS、EDGE 和3G)。Android應用程序中一項流行的技術是鏈接到谷歌地圖,以便在應用程序中顯示地址。Android軟體棧還提供對基於位置的服務(例如GPS)和加速計的支持,不過並不是所有的Android設備都配備了必需的硬體。另外還有攝像支持。
過去,移動應用程序努力向桌面應用程序看齊的兩個領域分別是圖形/媒體和數據存儲方法。Android通過提供對2D和3D圖形的內置支持,包括OpenGL 庫,解決了圖形方面的挑戰。由於Android平台包括流行的開源SQLite 資料庫,因此緩解了數據存儲的負擔。圖1顯示一個簡化的Android軟體層次結構。
五、應用程序架構
如前所述,Android運行在Linux內核上。Android應用程序是用Java編程語言編寫的,它們在一個虛擬機(VM)中運行。需要注意的是,這個VM並非您想像中的JVM,而是Dalvik Virtual Machine,這是一種開源技術。每個Android應用程序都在Dalvik VM的一個實例中運行,這個實例駐留在一個由Linux內核管理的進程中,如下圖所示。
Android應用程序由一個或多個組件組成:
活動
具有可視UI的應用程序是用活動實現的。當用戶從主屏幕或應用程序啟動器選擇一個應用程序時,就會開始一個動作。
服務
服務應該用於任何需要持續較長時間的應用程序,例如網路監視器或更新檢查應用程序。
內容提供程序
可以將內容提供程序看作資料庫伺服器。內容提供程序的任務是管理對持久數據的訪問,例如SQLite資料庫。如果應用程序非常簡單,那麼可能不需要創建內容提供程序。如果要構建一個較大的應用程序,或者構建需要為多個活動或應用程序提供數據的應用程序,那麼可以使用內容提供程序實現數據訪問。
廣播接收器
Android應用程序可用於處理一個數據元素,或者對一個事件(例如接收文本消息)做出響應。
Android應用程序是連同一個AndroidManifest.xml文件一起部署到設備的。AndroidManifest.xml包含必要的配置信息,以便將它適當地安裝到設備。它包括必需的類名和應用程序能夠處理的事件類型,以及運行應用程序所需的許可。例如,如果應用程序需要訪問網路 — 例如為了下載一個文件 — 那麼manifest文件中必須顯式地列出該許可。很多應用程序可能啟用了這個特定的許可。這種聲明式安全性有助於減少惡意應用程序損害設備的可能性。
六、所需工具
開始開發Android應用程序的最簡捷的方式是下載AndroidSDK 和EclipseIDE。Android開發可以在微軟Windows、Mac OS X 或Linux上進行。
本文假設您使用的是Eclipse IDE和用於Eclipse的Android Developer Tools插件。Android應用程序是用Java語言編寫的,但是是在Dalvik VM(非Java虛擬機)中編譯和執行的。在Eclipse中用Java語言編程非常簡單;Eclipse 提供一個豐富的Java環境,包括上下文敏感幫助和代碼提示。Java 代碼通過編譯後,Android Developer Tools 可確保適當地將它打包,包括AndroidManifest.xml 文件。
雖然沒有Eclipse和Android Developer Tools插件也可以開發Android應用程序,但是那樣就需要熟悉Android SDK。
AndroidSDK 是作為一個ZIP文件發布的,可以將該文件解壓到硬碟上的一個目錄中。由於有多個SDK更新,建議有意識地組織開發環境,以便在不同的SDK安裝之間輕松地切換。
SDK 包括:
android.jar
Java 歸檔文件,其中包含構建應用程序所需的所有的Android SDK 類。
documention.html和docs目錄
本地和網上提供的SDK文檔。這些文檔的主要形式為JavaDocs,以便於在SDK中導航大量的包。文檔還包括一個高級開發指南和Android社區的鏈接。
Samples目錄
Samples子目錄包含各種應用程序的源代碼,包括ApiDemo,該應用程序演示了很多API。這個示例應用程序可以作為Android應用程序開發的良好起點。
Tools目錄
包含所有用於構建Android應用程序的命令行工具。最常用、最有用的工具是adb實用程序(Android Debug Bridge)。
usb_driver
該目錄包含將開發環境連接到支持Android的設備(例如G1或Android Dev 1解鎖開發手機)所需的驅動程序。只有Windows平台的開發人員才需要這些文件。
Android應用程序可以在實際的設備上運行,也可以在Android SDK 附帶的Android Emulator上運行。圖 3 顯示Android Emulator 的主屏幕。
七、Android Debug Bridge
adb實用程序支持一些可選命令行參數,以提供強大的特性,例如復制文件到設備或從設備復制文件。可以使用shell命令行參數連接到手機本身,並發送基本的shell命令。圖 4 顯示在通過USB線連接到Windows筆記本電腦的一個實際設備上運行的adb shell命令。
在這個shell環境中,可以:
顯示網路配置,網路配置可顯示多個網路連接。注意這多個網路連接:
lo是本地或loopback連接。
tiwlan0是WiFi連接,該連接由本地DHCP伺服器提供一個地址。
顯示PATH環境變數的內容。
執行su命令,以成為超級用戶。
將目錄改為/data/app,其中存放用戶應用程序。
列出包含某個應用程序的目錄。Android應用程序文件實際上是歸檔文件,可通過WinZip之類的軟體查看。擴展名為apk。
發出ping命令,查看Google.com是否可用。
從相同的命令提示符環境中,還可以與SQLite 資料庫交互,啟動程序以及執行許多其他系統級任務。想像一下您正在連接到電話,因此這是非常了不起的功能。
③ JAVA語言的歷史
Java從1995誕生至今,只有10年左右了,和C,C++這些老大哥比起來年輕了很多,哲學上說任何事物的產生都是必然的,Java也不例外了,Internet的迅猛發展導致了Java的迅猛發展,那句成語是怎麼說來著,水漲船高,Java自然成為網路世界最受歡迎的語言了,當然Java的發展另一方面也是長期在微軟壓迫下的軟體世界的反抗了,McNealy,Sun的CEO、總裁兼董事長。他曾經狂傲的說:「摧毀微軟是我們每個人的任務。」這位英勇的矽谷英雄,似乎帶頭起義,試圖組織一個反微軟陣線聯盟,以對抗微軟這股龐大的托拉斯惡勢力。他時常口出驚人之語,在公開場合大肆的批評微軟,並曾經說微軟的.NET是.NOT;
1.Java的產生
Java來自於Sun公司的一個叫Green的項目, 其原先的目的是為家用消費電 子產品開發一個分布式代碼系統, 這樣我們可以把E-mail發給電冰箱、 電視機等家用電器, 對它們進行控制, 和它們進行信息交流。開始, 准備採用C++,但C++太 復雜, 安全性差, 最後基於C++開發一種新的語言Oak(Java的前身), Oak是一種用於網路的 精巧而安全的語言, Sun公司曾依此投標一個互動式電視項目, 但結果是被SGI打敗。 可憐的Oak幾乎無家可歸, 恰巧這時Mark Ardreesen開發的Mosaic和Netscape啟發了Oak項 目組成員, 他們用Java編制了HotJava瀏覽器, 得到了Sun公司首席執行官Scott McNealy的 支持, 觸發了Java進軍Internet。 Java的取名也有一些趣聞, 有一天, 幾位Java成員組的 會員正在討論給這個新的語言取什麼名字, 當時他們正在咖啡館喝著Java(爪哇)咖啡,有一 個人靈機一動說就叫Java怎樣, 得到了其他人的贊賞, 於是, Java這個名字就這樣傳開了 。
2.Java的歷史:1995年5月23日,Java語言誕生
1996年1月,第一個JDK-JDK1.0誕生
1996年4月,10個最主要的操作系統供應商申明將在其產品中嵌入JAVA技術
1996年9月,約8.3萬個網頁應用了JAVA技術來製作
1997年2月18日,JDK1.1發布
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄
1997年9月,JavaDeveloperConnection社區成員超過十萬
1998年2月,JDK1.1被下載超過2,000,000次
1998年12月8日,JAVA2企業平台J2EE發布
1999年6月,SUN公司發布Java的三個版本:標准版、企業版和微型版(J2SE、J2EE、J2ME)
2000年5月8日,JDK1.3發布
2000年5月29日,JDK1.4發布
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機
2001年9月24日,J2EE1.3發布
2002年2月26日,J2SE1.4發布,自此Java的計算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5發布,是Java語言的發展史上的又一里程碑事件。為了表示這個版本的重要性,J2SE1.5更名為J2SE5.0 題外話:1.微軟與Sun的糾紛Java誕生的1995年,正是微軟在軟體產業地位達到巔峰的時代,Windows 95發布時的風光場面給人們留下的深刻印象至今難忘。盡管如此,作為最卓越的技術領袖,比爾?蓋茨仍然敏銳地注意到Java。當他了解了Java的一些細節之後,給予了這樣的評價:「Java是很長時間以來最優秀的程序設計語言。」基於此,微軟於1996年3月申請並獲得了Java許可證。微軟對於Java的這一熱情態度在當時大大提高了人們對Java的興趣和信心,但也有不少人擔心微軟會依靠自己強大的影響力在標准之外另立標准,從而破壞Java的純潔性。
果然,從1997年發布Visual J++的第一個版本開始,微軟就開始在Java中摻入自己的私有擴展。這毫無疑問引起Sun的高度重視。1997年10月,Sun向美國加州地方法院起訴微軟公司違反兩公司就微軟使用Java技術所簽定的合同,指控微軟公司在自己的Java產品中做了「不恰當的修改」,違反了合同中承諾向用戶提供Java兼容產品的條款。這一官司曠日持久,直到2001年1月雙方達成和解,微軟將繼續提供採用Sun開發的Java技術的現有產品(包括測試版)。不過,Sun有限制地僅對包括Java 1.1.4的微軟產品提供許可。到了2001年7月,微軟公布新版的Windows XP將不再支持Sun的JVM,並且推出了.NET平台與Java分庭抗禮。
現在回過頭去看,當時的這一場官司對Java世界產生了深遠的影響。如果沒有這一場官司,也許很多Java程序員都在使用Visual J++,基於WFC開發Windows客戶端程序,同時不得不面對被兩個不同的事實標准所分裂的Java世界,/*個人評論,請勿引用個人看來微軟果然老奸巨猾,產品不怎麼樣,但是打擊對手的本領卻是一般的公司難以做到的,VJ++這一招厲害,讓原來的很多Java程序員改行用C#了,真他媽厲害,這一點上真的很佩服,比爾也不是圖有虛名的,一個字:牛!!微軟當然知道自己理虧嘛,結果肯定賠點錢了事,不過目的已經達到,賠點錢無所謂,反正有的是錢嘛,*/2003年4月2 日,Sun與微軟達成16億美元的法律和解。如果不是晚了一天,許多人會以為這是一個在4月1日愚人節開的玩笑。盡管當時所有人都像是看到「太陽從西邊出來了」那樣張大了嘴巴,但這的確是事實。
根據兩家公司達成的版權協議,雙方會為採用對方的技術而支付專利費用,微軟向Sun提前支付3.5億美元使用費,Sun則承諾,如果Sun集成微軟的某些技術,也會向微軟付款。
毫無疑問,「私下了結」的方式對雙方而言都是最好的結果。就在協議簽署的當天,在美國舊金山由Sun和微軟為「拋棄十年恩怨、攜手合作「舉行的新聞發布會上,盡管比爾.蓋茨沒有到場,但這並沒有防礙現場看起來異常輕松的氣氛。麥克尼利和鮑爾默各自穿了一件密歇根州底特律「Red Wings」曲棍球隊的運動服,並談及了一起在哈佛大學讀書的經歷,麥克尼利還說:「當時我們兩人是非常要好的朋友,當然我們也有吵架的時候。」人與人當然可能成為終生的知己,但是公司與公司之間有的只能是利益上的分分合合。 2.James Gosling
Java之父(不怎麼喜歡這樣的稱呼,老土,不過人比較猥瑣吧,呵呵,大師都比較猥瑣吧); 作為Java之父,James Gosling的名字可謂是耳熟能詳。當人們評論一種編程語言時,總喜歡捎帶著把下蛋的母雞一起帶上。Java做為中國的編程語言學習者餐桌上有限的那麼幾樣餐點中的流行款式,自然是讓James Gosling風光不已。雖然James Gosling現在已經不是領導Java發展潮流的領軍人物了,做為Sun的開發者產品組的CTO,怎麼算來也是身居高位了,俗事纏身吧,但是這並不妨礙其對於Java一如既往的愛護,表達著各式各樣鮮明的觀點,引發一場又一場的爭論。
James Gosling是很愛Java的——是啊,哪有當父母的不愛自己的孩子的呢。James Gosling也是很愛Sun的——是啊,哪有當領導的不愛自己的公司的呢。於是我們在批評.NET的安全性的隊伍前頭,在褒揚Java性能的隊伍前頭,在抨擊SWT開倒車的隊伍前頭,在給NetBeans大唱贊歌的隊伍前頭,我們都看到了James Gosling的身影。無論對錯、偏見或者固執,至少說明了Gosling的鮮明個性絲毫沒有受到年齡的影響。也許也只有這種天才而偏執的人物才能創造出Java這般偉大的語言來吧 本文來自CSDN博客,出處: http://blog.csdn.net/cpp_java_man/archive/2006/05/02/705319.aspx