(Translated by https://www.hiragana.jp/)
Java - 维基百科,自由的百科全书 とべ转到内容ないよう

Java

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
Java
编程范型多重たじゅう范型めんこう对象类别もと)、结构指令しれいしき泛型反射はんしゃ并发计算
設計せっけいしゃ詹姆斯·だか斯林
ふとし阳计さんつくえけい
じつ作者さくしゃかぶとこつぶん公司こうし (ふとし阳计さんつくえけい)
发行时间1995ねん,​29ねんまえ​(1995[1]
とうぜん版本はんぽん
  • Java SE 21 (2023ねん9がつ20日はつか長期ちょうき支援しえん)[2]
編輯維基數據鏈接
かたたい系統けいとうせい态、安全あんぜんつよ类型标明类型えいNominal type system
許可きょかしょうGNU通用つうよう公共こうきょう许可协议JCP
ぶんけん扩展めい.java、.class、.jar
あみwww.oracle.com/java/ 編輯維基數據鏈接
主要しゅようさく產品さんぴん
OpenJDKGCJ其他
衍生ふくかたりげん
泛型JavaえいGeneric JavaPizzaえいPizza (programming language)
啟發けいはつげん
Ada 83C++C♯[註 1]CLU[5]Eiffel[6]
Generic JavaえいGenerics in Java
Lisp[5]Mesa[7]Modula-3[8]Oberon[註 2]Objective-C[註 3]Simula 67[5]Smalltalk[5]UCSD Pascal[10][11]Object Pascal[註 4]
影響えいきょうげん
Ada 2005BeanShellえいBeanShellC♯ClojureECMAScriptGroovyHack[13]HaxeJ♯JavaScriptKotlinPHPPythonScalaSeed7えいSeed7Vala

Java一種廣泛使用的電腦ほどしき設計せっけいげんようゆうまたが平台ひらだい物件ぶっけんしるべむこう泛型ほどしき設計せっけいてき特性とくせい,广泛应用于企业级Web应用开发うつり动应よう开发。

にんしょくのぼりよう電腦でんのうてき詹姆斯·だか斯林とうひと于1990年代ねんだいはつ开发Javaげんてき雛形ひながた最初さいしょ命名めいめい为Oak,目標もくひょう設定せっていざいいえよう电器ひとし小型こがた系統けいとうてきほどしき语言應用おうようざい电视つくえ电话闹钟烤面つつみつくえとういえよう电器てきひかえせいどおり訊。よし于这些智能ちのういくわ场需もとめぼつゆう预期てきだかのぼりよう電腦でんのう弃了该项计划。ずい1990年代ねんだいあみぎわもうてき发展,のぼりよう電腦でんのうOakざいあみぎわもううえ应用てき前景ぜんけい,于是改造かいぞうりょうOak,於1995ねん5がつ以Javaてき名称めいしょう正式せいしき发布。Javaともずい互联网的迅猛发展而发てん,逐渐なり重要じゅうようてき网络编程语言。

Java编程语言てき风格じゅうふん接近せっきんC++语言。继承りょうC++语言めんこう对象わざ术的核心かくしんしゃ弃了容易ようい引起错误てき指標しひょう,以參照さんしょうだいうつりじょりょうC++ちゅうてき运算じゅう多重たじゅう继承特性とくせいようせっこうだい增加ぞうか垃圾回收かいしゅうこうのうざいJava SE 1.5はん本中ほんなか引入りょう泛型编程类型安全あんぜんてきまい举、不定ふてい长参すう动装/拆箱特性とくせいのぼりよう電腦でんのう对Java语言てきかい释是:「Java编程语言个简单、めんこう对象、分布ぶんぷしきかい释性、けんたけし安全あんぜんあずかけい统无关、移植いしょく高性能こうせいのう线程动态てき语言」。

Java不同ふどう一般いっぱんてき编译げんある直譯ちょくやくげん。它首さきはたみなもとだい编译なり节码さい赖各种不どう平台ひらだいうえてききょ拟机らいかい释执ぎょう节码,从而具有ぐゆういち编写,いた处运ぎょうてきまたが平台ひらだい特性とくせいざい早期そうきJVMなか,这在一定程度上降低了Javaほどじょてき运行效率こうりつただしざいJ2SE1.4.2发布きさき,Javaてき執行しっこう速度そくどゆうりょう大幅おおはばひさげます

あずか传统がたたい不同ふどうのぼりよう電腦でんのうざい推出Java就将其作为开放てきわざ术。ぜんたまてきJava开发公司こうし要求ようきゅうしょ设计てきJava软件必须けんよう。“Java语言もたれぐんからだてき力量りきりょう而非公司こうしてき力量りきりょうのぼりよう電腦でんのうてきくちごういち,并获とくりょう广大软件开发しょうてき认同。这与ほろ公司こうししょ倡导てきちゅうじゅうせい英和えいわふう闭式てきしき完全かんぜん不同ふどう,此外,ほろ公司こうし後來こうらい推出りょうあずかこれ竞争てき.NET平台ひらだい以及仿JavaてきC#语言。後來こうらいのぼりよう電腦でんのうかぶとこつぶん公司こうし併購[14],Java也隨なりためかぶとこつぶん公司こうしてき產品さんぴん

目前もくぜん行動こうどう作業さぎょう系統けいとうAndroidだい部分ぶぶんてきだい採用さいようJavaほどしき設計せっけいげんへんほど

历史

[编辑]

早期そうきてきJava

[编辑]
Javaてき发明じん詹姆斯·だか斯林
Duke,Javaげんてき吉祥きっしょうぶつ

かたりげんさい開始かいしただこれのぼりよう電腦でんのう(Sun MicroSystems)公司こうしざい1990ねん12月開始かいし研究けんきゅうてきいち內部項目こうもくのぼりよう電腦でんのう公司こうしてきいちさけべ帕特さとかつ·だくとみえいPatrick Naughtonてき工程こうてい公司こうし自己じこ開發かいはつてきC++Cげんへんやく搞得こげあたまただれがくいんため其中てきAPIごく其難よう。帕特さとかつ決定けっていあらためようNeXT同時どうじ獲得かくとくりょう研究けんきゅう公司こうしてきいちさけべ「Stealthけい劃」てき項目こうもくてき機會きかい

「Stealthけい劃」後來こうらい改名かいめいためGreenけい」,詹姆斯·だか斯林かずむぎかつ·しゃはやしまこと(Mike Sheridan)也加入かにゅうりょう帕特さとかつてき工作こうさくしょうぐみ們和其他いく工程こうていいちおこりざいぶくあましゅうもん帕克すなおかてき一個小工作室裡面研究開發新技術,瞄準いちだい智能ちのう家電かでん(如ほろなみてきほどじょ設計せっけいのぼりよう電腦でんのうあずかりょう未來みらい科技かぎはた在家ざいけよう電器でんき領域りょういきだいあらわしゅだんたい最初さいしょ考慮こうりょ使用しようC++かたりごとただし很多成員せいいん包括ほうかつのぼりよう電腦でんのうてき首席しゅせき科學かがくなんじ·たかし發現はつげんC++かず可用かようてきAPIざいぼう方面ほうめん存在そんざい很大問題もんだい

工作こうさくしょうぐみ使用しようてき嵌入かんにゅうしき系統けいとう以用てき資源しげんごく其有げん。很多成員せいいん發現はつげんC++ふと複雜ふくざつ以至很多開發かいはつしゃ經常けいじょう錯誤さくご使用しよう發現はつげんC++かけすくな垃圾回收かいしゅう系統けいとうかえ有可ゆか移植いしょくてき安全あんぜんせいぶん佈程じょ設計せっけい執行しっこういとぐちこうのう最後さいご們想よう一種易於移植到各種設備上的平台。

根據こんきょ可用かようてき資金しきんたかし決定けってい開發かいはついちしゅしゅうCげんMesaげん大成たいせいてき新語しんごごとざいいち報告ほうこくじょうたかし它叫做「未來みらい」,提議ていぎのぼりよう電腦でんのうてき工程こうていおう該在C++てき基礎きそじょう開發かいはついちしゅ物件ぶっけんしるべむこうてき環境かんきょう最初さいしょこう斯林ためしおさむあらため擴展C++てきこうのう自己じこしょう這種新語しんごげんためC++ -- [らいみなもと請求せいきゅう]ただし後來こうらい放棄ほうきりょうしょうよう創造そうぞう一種全新的語言,命名めいめいためOak」(とちじゅ),以他てき辦公室外しつがいてきとちじゅ命名めいめい

就像很多開發かいはつしん技術ぎじゅつてき秘密ひみつ工程こうていいちよう工作こうさくしょうぐみぼつ日沒にちぼつよる工作こうさくいたりょう1993ねんてきなつたかし們能夠演しめせしん平台ひらだいてきいち部分ぶぶんりょう包括ほうかつGreen操作そうさけい,Oakてきほどじょ設計せっけいげんるい及其かたけん最初さいしょてき嘗試めんこういち種類しゅるいPDA設備せつび命名めいめいためStar7,這種設備せつびゆう鮮豔てき圖形ずけい界面かいめんしょうため「Duke」てき智能ちのう代理だいりらい幫助よう。1992ねん12月3にち,這台設備せつび進行しんこうりょう展示てんじ

同年どうねん11がつ,Greenけい劃被轉化てんかなりりょうFirstPerson有限ゆうげん公司こうし」,一個昇陽電腦的全資子公司,だんたい也被おもしんやすはいいたりょう帕洛おもねしかたく。FirstPersonだんたいたい建造けんぞう一種高度互動的設備感興趣,とう時代じだいはなおさむはつ佈了いちせきでんいただきてき徵求ちょうきゅう提議ていぎしょ(Request for proposal),FirstPerson改變かいへんりょう們的目標もくひょう作為さくいたい徵求ちょうきゅう意見いけんしょてきひびきおう提出ていしゅつりょう一個機頂盒平台的提議。ただしこれ有線ゆうせんでん業界ぎょうかいさとしとくFirstPersonてき平台ひらだいきゅうよう過多かたてきひかえせいけんいん此FirstPersonてきとうしるべはいきゅうりょうSGIあずか3DO公司こうしてき另外一筆關於機頂盒的交易也沒有成功,よし於他們的平台ひらだい不能ふのうざいでん工業こうぎょうさんせいにんなんこうえき公司こうし併回のぼりよう電腦でんのう

Java「Java」

[编辑]

よししょう搜索そうさく显示Oakやめ一家显示卡制造商注册。于是同年どうねん,Oak改名かいめいJavaとう使用しようじゅう六进制编辑器打开由Javaげんだい码编译出てき进制ぶんけん(.classぶんけんてき话,最前さいぜんめんてき32はた显示为CA FE BA BE,そく词组“CAFE BABE”(咖啡たから贝)。

Java互联网

[编辑]
いち套Java編輯へんしゅう軟體
J2SE環境かんきょうあずかCDCてき關連かんれん
JVMてき所在しょざいかくしょく
JSPXあみぺーじてき概念がいねん

1994ねん6がつざいどう约翰·盖吉えいJohn Gage詹姆斯·だか斯林尔·乔伊帕特さとかつ·诺顿えいPatrick Naughton韦恩·罗斯いんえいWayne Rosingほこりさとかつ·ほどこせみつとく经历りょう一场历时三天的头脑风暴きさき,团队决定さい一次改变努力的目标,这次们决ていしょう该技术应ようまん维网们认为随Mosaic浏览てき到来とうらいいんとく网正ざいこうどう样的高度こうど互动てき远景えんじ变,而这一远景正是他们在有线电视网中看到的。さく为原がた,帕特さとかつ·诺顿うつしりょう一个小型万维网浏览器,WebRunner,きさきらい改名かいめいHotJava[15]

1994ねん10がつ,HotJavaJava平台ひらだい公司こうしだか层进ぎょうえんじしめせ。1994ねん,Java 1.0a版本はんぽんやめ经可以提供ていきょうただしJavaHotJava浏览てきだい一次公开发布却是在1995ねん3がつ23にちSunWorld大会たいかいじょう进行てきのぼりよう電腦でんのうてき科学かがくゆび导约翰·盖吉宣告せんこくJavaわざ术。这个发布あずか网景公司こうしてき执行ふく总裁马克·やす德森とくのもりてき惊人发布いちおこり进行てき宣布せんぷ网景はたざい其浏览器ちゅう包含ほうがん对Javaてき支持しじ。1996ねん1がつのぼりよう電腦でんのう成立せいりつりょうJava业务しゅう团,专门开发Javaわざ术。

ざい流行りゅうこう几年きさき,Javaざい浏览ちゅうてき地位ちい逐步おかせ蚀。它在简单交互こうごせい动画方面ほうめんてき用途ようとやめ经完ぜんAdobe公司こうしてきFlashはい挤,2005ねんJava倾向ただようまさとらゆう样的さら为复杂的应用ほどじょ。Javaどう时遭受到来とうらいほろ软的はん对,们决ていざいしん版本はんぽんてきInternet ExplorerWindowsちゅうさい带Java平台ひらだい

あずか相反あいはんざい万维网的服务器端和手持设备上,Java变得さら流行りゅうこう。很多网站ざい後端こうたん使用しようJSPかず其他てきJavaわざ术。

ざい桌面けい统上,独立どくりつてきJavaほどじょ还是しょう对少见。这是いん为Java平台ひらだいてき运行开销较大,而许おお人的じんてき电脑じょうぼつ有安ありやすそうJava,ゆかり于网络带宽在以前いぜん较小,しも载Java曾经个耗时的事情じじょうただしずい计算つくえ计算能力のうりょく、网络带宽ざい10ねんちゅう取得しゅとくりょう很大てき进步,どう时虚拟机编译てき质量いたりょうひさげだか,许多应用ほどじょいたりょう广泛てき使用しよう包括ほうかつ

开源软件
商業しょうぎょう軟體

目前もくぜんJava提供ていきょう以下いかさん版本はんぽん

Java開放かいほう原始げんし碼項

[编辑]

2006ねんのぼりよう電腦でんのうざいJavaOneおおやけ佈Java 開放かいほう原始げんし項目こうもくなみ推出OpenJDK计划[16]Javaきょなずらえ、JavaへんやくかずJavaるい以GNU通用つうよう公共こうきょう許可きょかしょう公開こうかい

版本はんぽん历史

[编辑]
  • 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がつのぼりよう電腦でんのう发布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さらめい为Java SE 5.0
  • 2005ねん6がつJavaOne大会たいかい召开,のぼりよう電腦でんのうこう开Java SE 6。此时,Javaてきかく种版ほんやめ经更めい,以取消とりけし其中てき数字すうじ“2”:J2EEさらめい为Java EE,J2SEさらめい为Java SE,J2MEさらめい为Java ME
  • 2006ねん12月,のぼりよう電腦でんのう发布JRE6.0
  • 2009ねん12月,のぼりよう電腦でんのう发布Java EE 6
  • 2010ねん11月,ゆかり於Oracle公司こうしたい於Javaしゃぐんてきともぜんいん此Apache揚言ようげんはた退出たいしゅつJCP[17]
  • 2011ねん7がつ28にち,Oracle公司こうしはつ佈Java SE 7
  • 2014ねん3がつ18にち,Oracle公司こうし发布Java SE 8
  • 2017ねん9がつ21にち,Oracle公司こうし发布Java SE 9
  • 2018ねん3がつ21にち,Oracle公司こうし发布Java SE 10
  • 2018ねん9がつ25にち,Oracle公司こうし发布Java SE 11 (LTS)
  • 2019ねん3がつ,Oracle公司こうし发布Java SE 12
  • 2019ねん9がつ,Oracle公司こうし发布Java SE 13
  • 2020ねん3がつ,Oracle公司こうし发布Java SE 14
  • 2020ねん9がつ,Oracle公司こうし发布Java SE 15
  • 2021ねん3がつ,Oracle公司こうし发布Java SE 16
  • 2021ねん9がつ,Oracle公司こうし发布Java SE 17
  • 2022ねん3がつ,Oracle公司こうし发布Java SE 18
  • 2022ねん9がつ,Oracle公司こうし发布Java SE 19
  • 2023ねん3がつ,Oracle公司こうし发布Java SE 20
  • 2023ねん9がつ,Oracle公司こうし发布Java SE 21

语言特性とくせい

[编辑]

Java所以ゆえん开发,よう达到以下いか目的もくてき

  • 应当使用しようめんこう对象ほどじょ设计方法ほうほうがく
  • 应当まこと许同一程序在不同的计算机平台执行
  • 应当包括ほうかつないけんてき对计さんつくえ网络てき支持しじ
  • 应当设计なり安全あんぜん执行远端だい
  • 应当えき使用しよう,并借鉴以ぜん些面こう对象语言(如C++)てき长处。

Javaわざ主要しゅようぶんなり几个部分ぶぶん:Java语言、Java執行しっこう環境かんきょう、类库。一般情况下说Java时并区分くぶんゆびてき哪个部分ぶぶん

Javaざい1.5版本はんぽん,做了重大じゅうだい改變かいへんのぼりよう電腦でんのうなみ1.5版本はんぽんおもしん命名めいめいためJava 5.0

めんこう对象

[编辑]

Javaてきとくてんいち就是めんこう对象ほどじょ设计方法ほうほうてきいち种。“めんこう对象ほどじょ设计语言”てき核心かくしんいち就是开发しゃざい设计软件てき时候使用しようてい义的类型关联操作そうさだい码和すうすえてき实际集合しゅうごうたいさけべ做“对象”。一个对象可以想象成绑定了很多“くだり为(だい码)”かずじょう态(かずすえ)”てき物体ぶったい。对于すうすえ结构てきあらため变需よう和代かずよ码进ぎょう通信つうしんしかきさき操作そうさたんまたしかめんこう对象设计让大がた软件工程こうていてき计划设计变得さら容易ようい管理かんりのう增强ぞうきょう工程こうていてき健康けんこう,减少しつ工程こうていてき数量すうりょう

またが平台ひらだいせい

[编辑]

またが平台ひらだいせいJava主要しゅようてき特性とくせいいちまたが平台ひらだい使得用とくようJava语言编写てきほどじょ以在编译きさき不用ふよう经过にんなん更改こうかい,就能在任ざいにんなにかたけん设备条件下じょうけんか运行。这个特性とくせい经常しょう为“いち编译,いた处运ぎょう”。

执行Java应用ほどしき必须あんそうJava 运行时环さかい(Java Runtime Environment,JRE),JRE包括ほうかつJavaきょ拟机(Java Virtual Machine,JVM),以及Java平台ひらだい核心かくしん类和もと础Java 平台ひらだい库。[18]つう过JVM才能さいのうざい电脑けい统执ぎょうJava应用ほどじょ(Java Application),这与.Net Frameworkてきじょう况一样,所以ゆえん电脑じょうぼつ有安ありやすそうJVM,么这些javaほどじょはた不能ふのう够执ぎょう

实现跨平台ひらだいせいてき方法ほうほうだい多数たすう编译ざい进行Java语言ほどじょてき编码时候かい生成せいせいいち个用节码うつしなりてきはんなりひん”,这个“はんなりひんかいざいJavaきょ拟机(かい释层)てき帮助运行,きょ拟机かい它转换成とうまえしょ处硬けん平台ひらだいてき原始げんしだい码。これきさき,Javaきょ拟机かい开标じゅん库,进行すうすえ(图片、线程网络)てきそん工作こうさく主要しゅよう注意ちゅういてきつきかんやめ存在そんざい一个进行代码翻译的解释层,ゆう些时こうJavaてき节码だい码还かいJIT编译进行编译。

ゆう些编译器,GCJ以自动生成せいせい原始げんしだい码而需要じゅようかい释层。ただし这些编译しょ生成せいせいてきだい码只のう应用于特定とくてい平台ひらだい。并且GCJ目前もくぜんただ支持しじ部分ぶぶんてきJava API。

かぶとこつぶん公司こうし对于Javaてき许可ぜんけんようてき”,这也导致りょうほろ软和のぼりよう電腦でんのう关于ほろ软的ほどじょ支持しじRMIJNIせっこう、并且增加ぞうか特性とくせい为己所用しょようてき法律ほうりつそうはしのぼりよう電腦でんのうさい终赢とくりょうかん,获得りょうだい约两千万美元的赔偿,ほういん强制きょうせい要求ようきゅうほろ软执ぎょうのぼりよう電腦でんのう关于Javaてき许可要求ようきゅうさく为回应,ほろさいざいWindowsけい统中捆绑Java,最新さいしんてきWindows版本はんぽんWindows VistaかずInternet Explorer 7.0版本はんぽん也不さい提供ていきょう对于Java应用ほどじょひかえけんてき支持しじただしのぼりよう電腦でんのう其他使用しようJava运行时系统的公司こうしざいWindows操作そうさけい统下对用户提供ていきょう无偿てきだい三方插件和程序支持。

Java语言ざいさい开始应用てき时候ぼつゆうかい释层てき所有しょゆう需要じゅよう编译てきだい码都直接ちょくせつ转换なりつくえてき原始げんしだい码。这样做虽しか使つかいほどじょ获得りょうさいけいてき性能せいのうただし导致ほどじょ异常臃肿。从JITわざ开始,Javaてきほどじょ经过一次转换之后才变成机器码。很多ろうぱいてきだい三方虚拟机都使用一种叫做“动态编译てきわざ术,也就说虚拟机实时监测分析ぶんせきほどじょてき运行ぎょう为,どう时选择性对程じょしょ需要じゅようてき部分ぶぶん进行编译优化。所有しょゆう这些わざ术都改善かいぜんりょうだい码的运行速度そくどただしこれまたかい让程じょてきからだ积变得失とくしつつね

ほどじょてき轻便せいごと实上软件编写很难达到てきいち个目标,Java虽然成功せいこう实现りょういち编译,いた处运ぎょう”,ただしよし于平だい和平わへいだい间的异,しょ编写てきほどじょざい转换だい码的时候难免かい微小びしょうてき不可ふか察觉てき错误意外いがいゆう些程じょ员对此非常ひじょう头疼,嘲笑ちょうしょうJavaてきほどじょいち编译,いた处运ぎょう”,而是“いち编译,いた处调试”。以Java AWTためれい早期そうきJava AWT內提供ていきょうてき按鈕、文字もじとうひとし電腦でんのう系統けいとうしょあずかしつらえてき樣式ようしき顯示けんじ。這令Javaほどしきざいゆう些沒ゆう提供ていきょう圖案ずあんてき電腦でんのう系統けいとうさんせい錯誤さくございMicrosoft Windowsしつらえゆうまど管理かんりいんざいいち些Linux distributionそくぼつゆう)。後來こうらいのぼりよう電腦でんのうはりたいJava AWT一些問題而推出Java Swing。

平台ひらだい无关せい让Javaざいふく务器はし软件领域非常ひじょう成功せいこう。很多ふく务器はし软件使用しようJavaあるあい关技术建立こんりゅう

自動じどう垃圾回收かいしゅう(Garbage Collection)

[编辑]

C++かたりげんよう詬病てき原因げんいんいちだい多數たすうC++へんやく支持しじ垃圾收集しゅうしゅうせい通常つうじょう使用しようC++へんほどてき時候じこうほどしき設計せっけい於程しきちゅうはつはじめ對象たいしょうかいざいあるじ記憶きおくたいうずたかたたみうえ分配ぶんぱい一塊記憶體與位址,とう需要じゅよう對象たいしょう進行しんこうかい構或しゃ刪除てき時候じこうさい釋放しゃくほう分配ぶんぱいてき記憶きおく體位たいい。如果對象たいしょうざいうずたかたたみじょう分配ぶんぱいてき,而程じょいんまた忘記進行しんこう刪除,麼就かい造成ぞうせい記憶きおくたい(Memory Leak)。ちょう以往いおうほどじょ運行うんこうてき時候じこう可能かのうかい生成せいせい很多きよしじょてき垃圾,浪費ろうひりょう必要ひつようてき記憶きおくたい空間くうかん。而且如果どう一記憶體地址被刪除兩次的話,ほどじょかいへん穩定,甚至崩潰ほうかいよし此有經驗けいけんてきC++ほどじょいん都會とかいざい刪除これはた指標しひょうじゅうおけためNULL,しかざい刪除ぜんさき判斷はんだん指標しひょうためNULL。

C++中也ちゅうや使用しよう智慧ちえ指標しひょう」(Smart Pointer)あるもの使用しようC++たくかん擴展へんやくてき方法ほうほうらい實現じつげん自動じどう記憶きおくたい釋放しゃくほう智慧ちえ指標しひょう以在標準ひょうじゅんるいちゅう找到,而C++たくかん擴展ほろ軟的Visual C++ 7.0及以じょう版本はんぽんしょ支持しじ智慧ちえ指標しひょうてきゆうてん需引にゅう緩慢かんまんてき垃圾收集しゅうしゅうせい,而且以不考慮こうりょせんほど安全あんぜんてき問題もんだいただし缺點けってん如果不善ふぜん使用しよう智慧ちえ指標しひょうてきばなし性能せいのうゆう可能かのう如垃圾收集しゅうしゅうせい,而且不斷ふだん分配ぶんぱい釋放しゃくほう記憶きおくたい可能かのう造成ぞうせい記憶きおくたい碎片さいへん需要じゅよう手動しゅどうたいうずたか進行しんこう壓縮あっしゅくじょ此之がいゆかり智慧ちえ指標しひょう一個基於模板的功能,所以ゆえんぼつゆう經驗けいけんてきほどじょいんざい需要じゅよう使用しようたい特性とくせい進行しんこう自動じどうきよし可能かのうたばしゅ無策むさく

Javaげんそく不同ふどう上述じょうじゅつてき情況じょうきょう自動じどう垃圾收集しゅうしゅうこうのう自動じどう處理しょり對象たいしょうてき建立こんりゅう放置ほうちざい記憶きおくたいうずたかたたみ上面うわつら進行しんこうてきとう一個物件沒有任何引用的時候,Javaてき自動じどう垃圾收集しゅうしゅうせい發揮はっき作用さよう自動じどう刪除這個物件ぶっけんしょ佔用てき空間くうかん釋放しゃくほう記憶きおくたい以避めん記憶きおくたい

注意ちゅういほどしき設計せっけい需要じゅようおさむあらためfinalize方法ほうほう自動じどう垃圾收集しゅうしゅう也會發生はっせい作用さようただし記憶きおくたいなみ就此避免りょうとうほどじょいん疏忽だい意地いじ忘記解除かいじょ一個物件不應該有的引用時,記憶きおくたい仍然不可避ふかひめん

不同ふどうしょうしょう不同ふどう版本はんぽんてきJVMちゅうてき記憶きおくたい垃圾回收かいしゅうせいなみ不完全ふかんぜんいちよう通常つうじょうこししん版本はんぽんてき記憶きおくたい回收かいしゅうせいこしかい,IBM、BEA、のぼりよう電腦でんのうとうとう開發かいはつJVMてき公司こうし曾宣たたえ自己じこ製造せいぞうりょう世界せかいじょうさいかいてきJVM,JVM性能せいのうてき世界せかいろく也在不斷ふだんてき打破だはなみひさげだか

IBMゆういちへんゆうせきJava記憶きおくたい回收かいしゅうせいけいよう垃圾收集しゅうしゅうせいてきC++記憶きおくたい處理しょりかいすうばいてき技術ぎじゅつ文章ぶんしょう[19],而著めいてきJava技術ぎじゅつ書籍しょせき《Javaへんほど思想しそう》(Thinking in Java也有やゆう一段いちだん論述ろんじゅつJava記憶きおくたい性能せいのうたちいた甚至超過ちょうかC++てき章節しょうせつ[20]

基本きほん语法

[编辑]

编写Javaほどじょぜん注意ちゅうい以下いか几点:

  • 大小だいしょううつし敏感びんかん:Java大小だいしょううつし敏感びんかんてき,这就意味いみ标识Helloあずかhello不同ふどうてき
  • 类名:对于所有しょゆうてき类来说,类名てきくび字母じぼ应该だいうつし。如果类名よし若干じゃっかん单词组成,么每个单词的くび字母じぼ应该だいうつしれいMyFirstJavaClass
  • 方法ほうほうめい所有しょゆうてき方法ほうほうめい应该以小写字しゃじはは开头。如果方法ほうほうめい含有がんゆう若干じゃっかん单词,则后めんてきまい个单词首字母じぼだいうつしれいmyFirstJavaMethod
  • みなもとぶん件名けんめいみなもとぶん件名けんめい必须和文わぶんけんない名字みょうじ唯一ゆいいつ且公开(ゆかりpublic 关键词修饰)てき类名しょうどうとう保存ほぞんぶんけんてき时候,你应该使用しよう该类名作めいさく为文件名けんめい保存ほぞんきり记Java大小だいしょううつし敏感びんかんてき),ぶん件名けんめいてききさき缀为.java。(如果ぶん件名けんめい类名あいどう则会导致编译错误)。
  • しゅ方法ほうほう入口いりくち所有しょゆうてきJavaほどじょよしpublic static void main(String[] args)方法ほうほう开始执行。

Java关键

[编辑]

下面かめんれつりょうJava关键。这些关键不能ふのうようつねりょう变量かずつとむなに标识てき名称めいしょう

类别 关键 说明
访问ひかえせい private 私有しゆうてき
protected 受保护的
public 公共こうきょうてき
类、方法ほうほう变量おさむ饰符 abstract 声明せいめい抽象ちゅうしょう
class
extends 扩充,继承
final さい终值,不可ふかあらため变的
implements 实现(せっこう
interface せっこう
native 本地ほんじ原生げんせい方法ほうほうJava实现)
new しん,创建
static せい
strictfp 严格,せいじゅん
synchronized 线程,どう
transient たん
volatile えきしつ
ほどじょひかえせい语句 break とべ循环
case てい义一个值以供switch选择
continue 继续
default だま
do 运行
else いや
for 循环
if 如果
instanceof 实例
return かえしかい
switch すえ值选择执ぎょう
while 循环
错误处理 assert 断言だんげんひょう达式为真
catch 捕捉ほそく异常
finally ゆうぼつゆう异常执行
throw ほう一个异常对象
throws 声明せいめい一个异常可能被抛出
try 获异つね
つつみしょう import 引入
package つつみ
基本きほん类型 boolean ぬの尔型
byte 节型
char がた
double そう精度せいど浮点
float 精度せいど浮点
int せいがた
long 长整がた
short たんせいがた
null そら
变量引用いんよう super ちち类,ちょう
this ほん
void 无返かい
保留ほりゅう关键 goto 关键ただし不能ふのう使用しよう
const 关键ただし不能ふのう使用しよう
ちゅう

ちゅうてき作用さよう:标识ほどじょ什么てき,以及它是如何いか构建てきちゅう释帮すけほどじょ员进ぎょう相互そうご沟通以及理解りかいほどじょちゅう释不ほどじょ设计语言,所以ゆえん编译编译ほどじょ时忽りゃく它们。

せっ口和くちわ类別

[编辑]

Java带了创建せっこうてき类別,以这样使用しよう

public interface Deleteable {
    void delete();
}

这段だい码的意思いしにんなん实现(implement)Deleteableせっこうてき类別必须实现delete()方法ほうほうまい个类べつ对这个方法的ほうてき实现以自ぎょうじょうせいよし概念がいねん以引很多种使用しよう方法ほうほう下面かめんいち个类べつてきれい

public class Fred implements Deleteable {
    // 必須ひっすさくDeleteableかいめんちゅうてきdelete方法ほうほう
    @Override 
    public void delete() { 
        // さくてきほどしき
    }
        
    // 這個類別るいべつ也可以包含其方法ほうほう 
    public void doOtherStuff() {

    }
}

ざい另外いち个类べつちゅう使用しよう这样てきだい码:

public void deleteAllDeleteable [] list{
    forint i = 0; i < list.length; i++{
        list[i].delete();
    }
}

いん为队れつちゅう所有しょゆうてき对象使用しようdelete()方法ほうほうDeleteable队列ちゅう包含ほうがんFred对象てき引用いんよう,而这个类べつ其他Deleteable类別ざい使用しようdeleteAll()方法ほうほう时候需要じゅよう进行にんなんあらため变。

これ所以ゆえん这样做就为了ざいせっこうてき执行其代码之间进あるき别。举例らい说,いち个名さけべCollectionてきせっこう包含ほうがんにんなん对象しょ需要じゅようてき引入、转换そん储数すえてき方法ほうほう,其他てき类都使用しよう这个せっこうただし这个せっこう以是一个可重定义大小的队列、いち链表あるもの其他こうのうてき集合しゅうごう

这种特性とくせい其实一种折中的办法。Javaてき设计しゃ们不そう让Javaゆう多重たじゅう继承てき特性とくせいいん为C++てき多重たじゅう继承显示りょう这种特性とくせいてきこま难。Javaてきせっこうこうのう提供ていきょうどう样的こうのうただしこれまたかい很复杂。

应用ほどじょ开发せっこう

[编辑]

ざいJava语言ちゅう应用ほどじょせっこう(API)化身けしんなり类,并且ぶん组成为包。まい个包ちゅうつつみ含有がんゆうしょう关的せっ口和くちわ类。对于不同ふどうてき平台ひらだい,Java提供ていきょうりょう不同ふどう版本はんぽんてきつつみ。APIてき设定ゆかりのぼりよう電腦でんのう其他公司こうしどおりJCP(Javaしゃぐんほどじょ)决定。にんなん公司こうし个人参与さんよ这个工程こうてい,对API进行设计。2004ねんIBMBEA公司こうしじゅん备联あい对官かたてきJava开源软件工程こうてい进行支持しじただし2005年初ねんしょのぼりよう電腦でんのうこばめ绝了这个支持しじ

Hello World

[编辑]

下面かめん这个ほどじょ显示“Hello world!”しかきさき结束运行,注意ちゅういjava.lang套件自動じどういれてき所以ゆえん需要じゅようざいほどしきぜん加入かにゅうimport java.lang.*;

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello, world!");
    }
}

せき於Javaてき批評ひひょう

[编辑]
JavaOneけん討會發言はつげんねん戒指,側面そくめんこくゆうのぼりようさま

Javaためし通過つうかしんてき方式ほうしき解決かいけつ軟體へんうつしてき複雜ふくざつせい。很多じんみとめためJavaげん做到りょう承諾しょうだくてき一切いっさいしか而,ぼう些情况下,Javaかいはた简单问题导向复杂つきかんJavaなみ一門いちもんかん美的びてきげんただし它的现确实给だい规模软件协同开发提供ていきょうりょうしんてきおもえ

整體せいたいせい問題もんだい

[编辑]

なみ所有しょゆうてき工程こうてい環境かんきょう需要じゅよう企業きぎょう等級とうきゅうてき複雜ふくざつせい如一個簡單的個人網站或者獨自編程的程式師所寫的程式。這些ほどしきかい發現はつげんJavaてき複雜ふくざつ管理かんりたい自己じこよう做的ほどしきらいせつ於強だいりょう。一些人覺得Javaざい物件ぶっけんしるべ向上こうじょうめん做的ぼつゆうRubySmalltalk純粹じゅんすいただし最新さいしん出現しゅつげんてきようJava實現じつげんてきげんGroovy解決かいけつりょう這些問題もんだい

作為さくい一種已經建立的新技術,Java顯然けんぜん綜合そうごうりょう很多げんてき特性とくせい如C++、CげんPythonひとしひとしいち些對於Javaてき評論ひょうろんみとめためJavaてき不變ふへんせいざい動搖どうよう

かたりごと問題もんだい

[编辑]

ゆう些程しき原始げんし類型るいけい(primitive type)かず類別るいべつ(class)てき分離ぶんりゆう其是些曾けい使用しようSmalltalkRubyてきほどじょ员。Javaてきだい相對そうたい於其てきだい碼來せつ於冗ちょう,這與它的輕便けいべん聲明せいめいしょう違背いはい。此外Java一般也會默認式的自動植入過多的標準庫代碼,しるべ整體せいたい運行うんこうかい出現しゅつげん緩慢かんまん

Javaいちしゅたん繼承けいしょうまとげん。這也しるべ致了ほどしきざいためし使用しよう多重たじゅう繼承けいしょう時候じこうてき不便ふべん,而很げん使用しよう這個特性とくせいただしJava使用しようかいめんるい多重たじゅう繼承けいしょう可能かのうしるべ致的ふうけん減少げんしょういた最小さいしょう。Java支持しじ運算うんざんおも,這是ためりょう防止ぼうし運算うんざんおも使つかいとくだい碼的こうのうへんきよし晰。ただしようJava實現じつげんてきげんGroovy進行しんこう運算うんざんおも過去かこJavaたい於文ほんてき操作そうさ其他げんPerlPHPあいてき較多,ただしJavaざい1.4版本はんぽん時候じこう引入りょうせい则表达式

いたりJava 1.7为止,Java语言支持しじ闭包(closure)混入こんにゅう(mixin)特性とくせい

Java 1.8加入かにゅうlambdaひょう达式(Lambda Expressions)[21]

るい問題もんだい

[编辑]

使用しようSwing平臺ひらだいへんうつしてきたいゆうGUI圖形ずけいようかいめんてきほどしき其他原始げんしほどしき非常ひじょう不同ふどうせんようAWT工具こうぐつつみへんうつしほどしきてきほどしきいたてき原始げんしかいめん,而且也無ほう獲得かくとく先進せんしんてきGUIへんほど支援しえん,如果使用しようてきばなし,就要提供ていきょうごと平臺ひらだい上面うわつらしょ需的API,這將いちこう龐大てき工程こうてい。Swingそく完全かんぜんようJavaげんしょうつしてきほどしき,避免りょうかいめん元素げんそ重複じゅうふくてき問題もんだいただ使用しよう所有しょゆう平臺ひらだい支持しじてきさい基本きほんてき繪圖えずせいただし多用たよう不知ふちどう如何いかざいJavaふう格和かくわWindows風格ふうかくあいだ進行しんこう轉換てんかん結果けっか造成ぞうせいりょうJavaほどしきてきかいめんざい很多ほどしきちゅう非常ひじょう特殊とくしゅ蘋果電腦でんのうやめけい提供ていきょうりょうゆうてきJava運行うんこうほどしき包含ほうがんりょうMac OS Xてき經典きょうてんAquaかいめん風格ふうかく

ざいIBM捐赠给Eclipse基金ききんかいてきSWT界面かいめんかまちちゅうよう户会いたじゅく悉的本地ほんじ风格界面かいめんただし这又引起りょう不同ふどう喜好きよしてき开发じん员之间的そう论。

性能せいのう問題もんだい

[编辑]

よし於Javaへんやくきょなずらえてき不同ふどうたいJavaだい碼的性能せいのう影響えいきょうげん本身ほんみてき影響えいきょうだいてき所以ゆえん統一とういつ討論とうろんJavaてきほどしきてき性能せいのう經常けいじょうゆうあやましるべせいてきよりどころIBMてき資料しりょうざい同樣どうようてきかたたいじょう2001ねんてきIBM JDK版本はんぽんてき性能せいのう1996ねんてきJDK版本はんぽんてきじゅうばい左右さゆう[22]而即使ざい同一どういつ時期じき不同ふどう公司こうしてきJDKJREてき性能せいのう也不いちよう如昇電腦でんのうIBMBEAとう公司こうしゆう自己じこ開發かいはつてきJDKJRE。

Javaげんてき一些特性不可避免的有額外的性能代價,れい陣列じんれつ範圍はんいけん運行うんこう類型るいけいけんひとしひとし。Javaほどしきてき性能せいのうかえかいいんため不同ふどうてき動態どうたい複雜ふくざつせい垃圾處理しょりせい使用しようてき多少たしょう而各ゆう不同ふどう。如果JVMてき實現じつげん比較ひかくゆうてきばなし麼這些功のう甚至增加ぞうか記憶きおくたい分配ぶんぱいてき性能せいのう。這和そう使用しようSTLあるものたくかんC++てきほどしきてき情況じょうきょう類似るいじ

儘管如此,仍然ゆう許多きょたじんみとめためJavaてき性能せいのうひく。這部分ぶぶんいん於昇電腦でんのう最初さいしょてきJVM實現じつげん使用しようゆうてき解釋かいしゃくせいらい執行しっこうもとくみ碼。いち些新版本はんぽんてきJVM使用しようJust-In-Time(JITへんやくざいにゅうもとぐみ碼的時候じこうはた其編やくなりはりたい運行うんこう環境かんきょうてきほん地代じだい碼來實現じつげん一些本地編譯器的優化特性。Just-In-Timeせい和本わほんへんやくてき性能せいのう比較ひかく仍舊いちゆう爭議そうぎてき話題わだい。JITへんやく需要じゅよう很多時間じかんたい運行うんこう時間じかんながあるものだい碼很てき大型おおがたほどしきなみ適宜てきぎただしさんJITへんやく階段かいだんてきばなしほどしきてき運行うんこう性能せいのうざい很多JVMした以和本地ほんじへんやくてきほどしきいちそう短長たんちょう,甚至ざい一些計算比較密集的數值計算領域也是這樣。目前もくぜん,Javaやめけい使用しようさら先進せんしんてきHotSpot技術ぎじゅつらい代替だいたいJIT技術ぎじゅつ,Javaてき性能せいのうゆうりょう更進こうしんいちてきひさげます。另外,ざい使用しよう-serverせんこう運行うんこうJavaほどしき,也可以對Java進行しんこうさら深入ふかいりてきゆう如在運行うんこうはた調しらべよう較多てき方法ほうほう內聯(inline)いたほどしきちゅうらいひさげだか運行うんこう速度そくど,這就所謂いわゆるてき動態どうたいゆう”,而本へんやく無法むほう做到這いちてんてき;這也いち些Javaだい碼比たい應用おうようC/C++とうげんへんうつしてきほん地代じだい運行うんこうてきさらかいてき原因げんいんいちほろ軟的.NET平臺ひらだい使用しようJITへんやく所以ゆえん也有やゆう類似るいじ問題もんだい

Javaてき設計せっけい目的もくてき主要しゅよう安全あんぜんせい攜性,所以ゆえんたい於一些特せい如對かたからだ構和記憶きおく體位たいいてき直接ちょくせつ訪問ほうもんじょりょう。如果需要じゅよう間接かんせつ調ちょうよう這些そこそうこうのうてきばなし,就需よう使用しようJNI(Java本地ほんじかいめんらい調しらべようほん地代じだい碼,而間接かんせつ訪問ほうもん意味いみちょ頻繁ひんぱん調ちょうよう這些特性とくせい性能せいのう損失そんしつかい很大,ほろ軟的.NET平臺ひらだい也有やゆう這樣てき問題もんだい所以ゆえんいた目前もくぜんためどめ性能せいのう敏感びんかんてきだい碼,れい驅動くどうほどしき3D电子ゆう戏,かえだい使用しよう本地ほんじへんやく,甚至直接ちょくせつ以不直接ちょくせつ支援しえんめんこう对象てきCげんある機器きき碼編うつしただし最近さいきんやめけいゆうりょう許多きょたようじゅんJavaへんうつしてき3D遊戲ゆうぎ,其效果こうかあずかようCげんへんうつしてき相上あいあげれい如“合金ごうきん戰士せんし”(英文えいぶんめい:Chrome)。這主よういんため新版しんぱんてきJava 3D技術ぎじゅつやめけいのうぞうC++一樣調用硬體加速,也就使用しようあらわらい加速かそく無論むろんC++かえJavaげんうつしてき3D遊戲ゆうぎ使用しようあらわ卡及GPUらい處理しょりしたがえ而使とくCPU以專ちゅう於其方面ほうめんてき工作こうさく

用途ようと

[编辑]
桌面GUI应用ほどじょ

Javaどおり抽象ちゅうしょうまどこう工具こうぐつつみ(AWT),SwingJavaFXとう种方しき提供ていきょうGUI开发。虽然AWT包含ほうがん许多预先构建てき组件,如菜单,按钮,れつひょう以及众多だいさんぽう组件,ただしSwing(いち个GUI小部おべけん工具こうぐつつみ)还提供ていきょうぼう些高级组けん,如树,ひょうかく,滚动まどかく,选项卡式めんいたれつひょう。JavaFX一组图形和媒体包,提供ていきょうりょうSwing互操作性そうさせいわる,3D图形こうのう包含ほうがんてき部署ぶしょ模型もけい以快そく编写Javaしょう应用ほどじょ应用ほどじょてき脚本きゃくほん[23]

うつり动应ようほどじょ

Java Platform,Micro Edition(Java MEあるJ2ME)一个跨平台框架,よう于构けんざい所有しょゆうJava支持しじてき设备(包括ほうかつこうのうしゅつくえ智能ちのうしゅつくえじょう运行てき应用ほどじょ。此外,さい受欢むかえてきうつり操作そうさけい统之いちてきAndroid应用ほどじょ通常つうじょう使用しようAndroid软件开发工具こうぐつつみ(SDK)ある其他环境ざいJavaちゅう编写脚本きゃくほん

嵌入かんにゅうしきけい统:

从微がたしんへんいた专用计算つくえてき嵌入かんにゅうしきけい统是执行专门にん务的大型おおがたつくえ电系统的组件。诸如SIM卡,蓝光こう盘播放公用こうようごと业仪ひょう电视つくえとう种设备都使用しよう嵌入かんにゅうしきJavaわざ术。すえかぶとこつぶん公司こうしたたえ,100%てき蓝光こう盘播放1.25亿台电视设备さいようJavaわざ术。

Web应用ほどじょ

Javaどおり过Servlets,StrutsあるJSP提供ていきょう对Web应用ほどじょてき支持しじ。编程语言提供ていきょうてき简单编程さらだかてき安全あんぜんせい使とく大量たいりょう政府せいふ应用ほどじょ可用かよう于基于Javaてき健康けんこう社会しゃかい安全あんぜん教育きょういく险。Java也可以使用しようBroadleafとう开源电子しょう务平だい开发电子しょう务Web应用ほどじょ

分布ぶんぷしきけい统:

Javaさら时候よう于构けん大型おおがた分布ぶんぷしき应用, もと于Javaてき分布ぶんぷしきせい非常ひじょう丰富, かく成熟せいじゅくてきもと础组けん帮助Java开发しゃ迅速じんそく搭建おこり分布ぶんぷしきけい统. 较著めいてき分布ぶんぷしきかまちゆう: Spring Cloud, Dubbo, ZooKeeperひとし

Webふく务器应用ほどじょふく务器:

こんてんてきJavaせい态系统包含ほうがん个Java Webふく务器应用ほどじょふく务器。虽然Apache Tomcat,Simple,Jo !, Rimfaxe Webふく务器(RWS)かずProject JigsawうらないすえりょうWebふく务器そら间,ただしWebLogic,WebSphereJboss EAPざいしょう业应ようふく务器领域うらないすえ重要じゅうよう地位ちい[24]

くわだて业应ようほどじょ

Javaくわだて业版(Java EE)いち流行りゅうこうてき平台ひらだい,为脚ほん运行くわだて业软けん包括ほうかつ网络应用ほどじょWebふく务)提供ていきょうAPI运行时环さかいかぶとこつ文宣ふみのぶしょうJava以在97%てきくわだて业计さん机上きじょう运行。Javaもたれさらだかてき性能せいのう证和さらかいてき计算能力のうりょく使とくぞうMurex这样てきだか交易こうえきけい统可以被编入脚本きゃくほんちゅうどう时它也是かく种银ぎょう应用ほどじょてき中枢ちゅうすう,它们はたJava从前はしよう户端运行いたきさきはしふく务器はし

科学かがく应用:

Java许多软件开发じん员用于编うつしわたる科学かがく计算数学すうがく运算てき应用ほどじょてき选择いち。这些ほどじょ通常つうじょう认为快速かいそく安全あんぜんてき具有ぐゆうさらだかてき便びん携性てい维护せいぞうMATLAB这样てき应用ほどじょ使用しようJavaらいさく交互こうごよう户界めん和作わさく为核しんけい统的いち部分ぶぶん

まいり

[编辑]

註釋ちゅうしゃく

[编辑]
  1. ^ Java 5.0てき种新特性とくせい包括ほうかつforeach循环动装ばこ、拆箱えいObject type (object-oriented programming)#Autoboxing变参すう函数かんすう以及annotationsざい相似そうじてき競爭きょうそうたいC#更新こうしん增加ぞうかてき[3][4]
  2. ^ Niklaus Wirth stated on a number of public occasions, e.g. in a lecture at the Polytechnic Museum, Moscow in September, 2005 (several independent first-hand accounts in Russian exist, e.g. one with an audio recording: Filippova, Elena. Niklaus Wirth's lecture at the Polytechnic Museum in Moscow. 2005-09-22 [2015-12-22]. (原始げんし内容ないようそん于2020-12-01). ), that the Sun Java design team licensed the Oberon compiler sources a number of years prior to the release of Java and examined it: a(relative)compactness, type safety, garbage collection, no multiple inheritance for classes – all these key overall design features are shared by Java and Oberon.
  3. ^ Patrick Naughton cites Objective-C as a strong influence on the design of the Java programming language, stating that notable direct derivatives include Java interfaces(derived from Objective-C's protocol)and primitive wrapper classes.[9]
  4. ^ In the summer of 1996, Sun was designing the Contact Yahoo Support precursor to what is now the event model of the AWT and the JavaBeans TM component architecture. Borland contributed greatly to this process. We looked very carefully at Delphi Object Pascal and built a working prototype of bound method references in order to understand their interaction with the Java programming language and its APIs.[12]

參考さんこう文獻ぶんけん

[编辑]

引用いんよう

[编辑]
  1. ^ The History of Java Technology. [2012-10-06]. (原始げんし内容ないようそん于2012-11-06). 
  2. ^ JDK 21. 
  3. ^ Java 5 catches up with C#. www.barrycornelius.com. [2006-11-30]. (原始げんし内容ないようそん于2011-03-19). 
  4. ^ Lévénez, Éric. Computer Languages History. www.levenez.com. [2006-11-30]. (原始げんし内容ないようそん档于2006-01-07). 
  5. ^ 5.0 5.1 5.2 5.3 Barbara Liskov with John GuttagえいJohn Guttag. Program Development in Java - Abstraction, Specification, and Object-Oriented Design. USA, Addison Wesley. 2000. ISBN 9780201657685. Java is a successor to a number of languages, including Lisp, Simula67, CLU, and SmallTalk. Java is superficially similar to C and C++ because its syntax is borrowed from them. However, at a deeper level it is very different from these languages. 
  6. ^ Gosling, James; McGilton, Henry. The Java Language Environment. May 1996 [2015-12-22]. (原始げんし内容ないようそん于2014-05-06). 
  7. ^ Gosling, James; Joy, Bill; Steele, Guy; and Bracha, Gilad. The Java Language Specification, 2nd Edition. [2013-02-28]. (原始げんし内容ないようそん于2013-05-12). 
  8. ^ The A-Z of Programming Languages: Modula-3. Computerworld.com.au. [2010-06-09]. (原始げんし内容ないようそん档于2009-01-05). 
  9. ^ Java Was Strongly Influenced by Objective-C. cs.gmu.edu. [2013-02-28]. (原始げんし内容ないようそん于2011-07-13). 
  10. ^ TechMetrix Research. History of Java (PDF). Java Application Servers Report. 1999 [2015-12-22]. (原始げんし内容ないよう (PDF)そん档于2010-12-29). The project went ahead under the name "green" and the language was based on an old model of UCSD Pascal, which makes it possible to generate interpretive code 
  11. ^ A Conversation with James Gosling – ACM Queue. Queue.acm.org. 2004-08-31 [2010-06-09]. (原始げんし内容ないようそん于2015-07-16). 
  12. ^ White Paper About Microsoft's "Delegates"
  13. ^ Facebook Q&A: Hack brings static typing to PHP world. InfoWorld. 2014-03-26 [2015-01-11]. (原始げんし内容ないようそん于2015-02-13). 
  14. ^ Oracle to Buy Sun. web.archive.org. 2009-04-22 [2022-03-18]. 原始げんし内容ないようそん档于2009-04-22. 
  15. ^ Byous, Jon. Java Technology: An Early History (PDF). Sun Microsystems. 1998 [2010-11-24]. (原始げんし内容ないよう (PDF)そん档于2011-07-19). 
  16. ^ OpenJDK. [2008-09-04]. (原始げんし内容ないようそん于2009-10-25). 
  17. ^ Statement by the ASF Board on our participation in the Java Community Process. [2010-11-12]. (原始げんし内容ないようそん于2020-11-09). 
  18. ^ 什么 Java?为何需要じゅよう Java?. www.java.com. [2018-04-11]. (原始げんし内容ないようそん于2020-09-19) ちゅうぶん中国ちゅうごくだい陆)). 
  19. ^ Java理論りろんあずか實踐じっせんさいだんUrban性能せいのう傳言でんごん. [2009-01-19]. (原始げんし内容ないようそん于2007-08-18). 
  20. ^ そん副本ふくほん. [2008-08-03]. (原始げんし内容ないようそん档于2008-12-10). 
  21. ^ What's New in JDK 8. www.oracle.com. [2019-05-19]. (原始げんし内容ないようそん于2020-04-13). 
  22. ^ IBM東京とうきょう研究けんきゅういんてき資料しりょうhttp://www.is.titech.ac.jp/ppl2004/proceeding页面そん档备份そん互联网档あんs/ishizaki_slides.pdf页面そん档备份そん互联网档あん
  23. ^ Applications of Java Programming Language. [2018-04-11]. (原始げんし内容ないようそん于2020-08-04). 
  24. ^ そん副本ふくほん. [2018-04-11]. (原始げんし内容ないようそん于2020-11-11). 

らいみなもと

[编辑]

外部がいぶ链接

[编辑]

Javaかんかた网站页面そん档备份そん互联网档あん