zaibd/wkpdtw huggingface dataset:
伍嘉賢（1987 年 11 月 6 日 —），英文名 Jason Ng，暱稱阿禪，常用網名 Jason5Ng32，是一位知名的中文博客和公眾號作者和網際網路創業者，曾是《電腦報》等知名 IT 報刊的特約撰稿人，開辦了著名中文原創博客可能吧。



生平

伍嘉賢，廣東台山人，畢業於華北電力大學，曾任職於網易、搜狐等多家公司。2007 年 4 月創辦中文原創博客可能吧。定位於「趣味網際網路生活」，主要關注網際網路文化，網際網路產品以及熱點事件，揭露中國大陸網際網路審查，有部分文章皆表達了對中國網絡審查制度的不滿以及對信息自由的熱愛。2009 年 4 月將可能吧發展為一個多人博客。2010 年 3 月 23 日，在 Jason Ng 發表一篇題為《Google 退出中國成定局，抹黑行動開始》的博文聲援決定退出中國內地的谷歌中國搜索之後，可能吧遭到防火長城封鎖。

伍嘉賢還曾多次獲邀參加 WordCamp、中文網誌年會、PLOGit 等博客交流活動並發表演講。

2010 年初，伍嘉賢及他創辦的可能吧獲得搜狐公司頒發的 2009 年度優秀獨立博客獎。

2010 年 3 月，伍嘉賢及可能吧獲得了德國之聲頒發的最佳中文博客獎。 評委安替的評價為：「可能吧」是一個很年輕的學生與一些志同道合的人做的集體博客，它基本上是技術博客，但它談的是如何幫助網友接觸自由的網際網路信息，以及從一個新的技術 Geek，也就是技術愛好者的角度，如何解釋、評價社會問題，比如說谷歌事件。安替還認為，從「可能吧」中可以看到新一代對技術和政治的看法，「我並不是說『可能吧』就代表了真正的社會抗議，它表達的還是技術與政治這個比較單方向的態度。但是，它的確也表現了，完全新一代的 90 後、80 後，他們完全可以用自己所學的知識背景，以及自己所掌握的那些對中國的了解，開始自己對權利的爭取。而且他們是志願地幫助其他的人獲得自由信息。」

2010 年 6 月 4 日晚 10 點，伍嘉賢被公安帶走，人身自由部分受到限制。 2010 年 6 月 5 日凌晨 2 點左右，伍嘉賢回到家中。

2013 年 2 月 8 日，伍嘉賢在世界溝通論壇（ World Communication Forum ）上，被授予 Media of Future 獎項。

2010 年 6 月至 2014 年 6 月，伍嘉賢創辦一個名為 GeekPark（極客公園 ）的面向網際網路產品經理和極客的項目。

2015 年 1 月，伍嘉賢再次創業成立輕單，定位為一個讓用戶分享結構化信息的博客平台，同年 5 月，伍嘉賢在其微信公眾帳號宣布輕單網融資失敗，網站將以捐助的形式繼續運作。

2016 年 8 月，伍嘉賢受美國國務院教育部邀請，參加「國際訪問者領導計劃」前往美國進行為期一個月的交流訪問，研究課題為「社會企業」。

2016 年，在多年不更新博客後，伍嘉賢在同名的微信公眾號發布了一篇《為什麼說支付寶腦子進了屎》，在粉絲數只有 9858 人的情況下，24 小時內創下了 300 萬的閱讀量，此文還被支付寶（螞蟻金服）的法律代理公司要求刪除。此後伍嘉賢在公眾號和博客上同步更新文章。

公眾號時代，伍嘉賢發表多篇褒獎微信的文章，其中《小程序想要什麼》創下了 100 萬的閱讀量，被馬化騰和張小龍先後讚賞。隨後在 2018 年 4 月，伍嘉賢加入輕芒公司 （頁面存檔備份，存於網際網路檔案館），專注於微信小程序相關業務。



參見


* 可能吧



參考資料



外部連結


* 可能吧 （頁面存檔備份，存於網際網路檔案館）

* 阿禪日記 （頁面存檔備份，存於網際網路檔案館）

* Jason Ng 的 Twitter 帳戶

* GeekPark （頁面存檔備份，存於網際網路檔案館）

* 輕單 （頁面存檔備份，存於網際網路檔案館）

* 伍嘉賢的網絡檔案 （頁面存檔備份，存於網際網路檔案館）
Jason Kui，香港吉他手及音樂人，23 歲登上香港紅館擔任吉他樂手。Jason Kui 過去數年在世界各地參與超過 135 場演出，曾和 RubberBand、MIRROR、容祖兒、林憶蓮、方大同、陳奕迅及保錡 @ERROR 等合作，於 2013 年亦為內地綜藝節目「我是歌手」主吉他手。Jason Kui 也是 RubberBand 其中之一位支援成員，為錄音或音樂會出演時則會坐陣。



音樂發展

專輯

2017 年＜Absence Of Words> 
2020 年 <NAKA>

製作人


* 2022 年：吳保錡 Feat. Dee《Am I Crazy?》（監製）

* 2023 年：吳保錡《Echo my Heart》（監製）



參考文獻
陳以桐（英文：Jason Chen， 1988 年 11 月 12 日 —），臺灣裔美國歌手，出生於美國麻薩諸塞州波士頓，成長於美國加利福尼亞州洛杉磯郡 Arcadia。陳以桐的綽號為節省錢，原為 Youtube 上的翻唱紅人，近年來則是推出自己的原創歌曲及專輯。截至 2018 年 6 月初，陳以桐的 Youtube 主頻道已有 174 萬人訂閱，及超過 3.8 億的總點閱數。



背景

陳以桐 1988 年出生於美國波士頓，但出生幾個月後，舉家搬往加州洛杉磯郡 Arcadia。
有一小他三歲半的弟弟 Jonathan。

高中就讀 Arcadia High School'06，大學畢業於加州大學洛杉磯分校經濟系 '10。

陳以桐雖然在美國長大，但其中文程度不錯，十分流利，能用中文在網路上與粉絲互動，他歸功於父母在他小時候有逼他學中文。

陳以桐的母親為鋼琴老師，因此自小接受音樂薰陶的陳以桐精通多項樂器，鋼琴、吉他和小提琴等 (陳以桐自 6 歲就開始學小提琴)

陳以桐直到 18 歲的時候才發現自己會唱歌，開始唱歌的契機則是為了邀請當時心儀的女孩參加學校的舞會。

陳以桐 2010 年大學畢業後曾短暫當過將近一年的會計師，但是因為熱愛音樂而辭職專職從事音樂。



音樂生涯

陳以桐 2007 年大學時期開始在 Youtube 上傳自己的翻唱影片，起初迴響不大，直到 2010 年影片開始在網路上迅速竄紅。

其後也常與其他知名的網路翻唱歌手合作如 Joseph Vincent, Tiffany Alvord, Megan Nicole,Megan Lee，在歌曲 MV 中也常有其他 Youtuber 的參與。

陳以桐後來憑藉著天賦和良好的音樂造詣加上網路上的高人氣，在 2011 年發行了首張個人原創專輯 "Gravity"，此專輯裡頭共有 11 首原創曲目，其中一首為中文。另外在 2013 年發行了兩張原創專輯分別為 "Never for Nothing" 和 "What If Acoustic"。

陳以桐也特別的在個人網站放上了翻唱中文歌曲的免費 Mixtape 以供下載，目的是為了推廣及凝聚亞裔美籍對於娛樂產業的支持及向心力。

陳以桐目前常在北美洲各大學演出，也曾到過中國大陸、台灣、馬來西亞、澳洲、新加坡、西班牙、義大利等國家和地區演出。



個人原創專輯


* "Gravity"

2011 年 12 月 20 號發行，內有 11 首歌曲，一首中文 (Best Friend)


* "Never for Nothing"

2013 年 4 月 15 號發行，內有 11 首歌曲


* "What If Acoustic"

2013 年 11 月 26 號發行，內有 9 首歌曲


* "Glass Heart"

2014 年 12 月 19 號發行，內有 12 首歌曲



參考來源



外部連結


* 官方網站

* Facebook：Jason Chen Music （頁面存檔備份，存於網際網路檔案館）

* Instagram：jasondchen （頁面存檔備份，存於網際網路檔案館）

* MusicNeverSleep （頁面存檔備份，存於網際網路檔案館） 陳以桐的 YouTube 頻道
Market Place，前稱 Jasons ‧ Food & Living，為牛奶公司旗下，屬結合美食與型格品味的概念精品超級市場。主要對象是上層階級的消費者，主要售賣全球口味的產品。其主要對手有 Gourmet、Great 及 c!ty'super 等。現時分店俱由同系超級市場改建而成。



簡介

Jasons・Food & Living 香港首間分店於 2012 年 8 月 10 日開業，位於銅鑼灣希慎廣場 B2 層，佔地超過 23,000 呎。

超市的部份提供新鮮美食、佳釀、廚房用品及生活精品，並引進不同的國際品牌，包括：TrueBlue 純天然果汁、北海道若狹家本舖（Wakasaya Honpo）零食、獲英國皇家認證的朱古力品牌 Charbonnel & Walker，以及一系列餐酒。

除了超市外，亦設有萬寧及餐飲專區，包括北海道旭川拉麵名店「梅光軒」、中與志壽司、XTC Gelato、美心旗下之星巴克及售賣歐洲麵包及甜點的 Urban Cake.Bread.Salad、法國殿堂級甜品店 FAUCHON。為增添市民購物樂趣，店內亦設有主題互動電影屏幕，以感應系統捕捉市民動作。若市民成功完成遊戲，便可利用智慧型手機掃描屏幕顯示的標籤碼，免費獲取電子優惠券。

2020 年，銅鑼灣 Jasons・Food & Living 改稱為 Market Place。同年，朗豪坊 Market Place by Jason's 分店改名為 Market Place。



口號


* 「當味覺，遇上形格品味」



分店

目前在香港設有 11 間分店：


* 銅鑼灣希慎廣場 B2 層，於 2012 年 8 月 10 日營業，佔地超過 23,000 平方呎，於 2022 年 8 月結業。

* 銅鑼灣京華中心地庫，面積約 7,000 方呎，月租 60 萬，於 2022 年 10 月 21 日開業，為首間全新店舖。

* 旺角朗豪坊 B2 層 8 號舖，於 2007 年 12 月 7 日開幕，佔地 8,000 平方呎，前身為 Market Place by Jason's，翻新後於 2020 年 6 月改為現稱。

* 中環盈置大廈地庫，前身為 Market Place by Jason's。

* 屯門香港黃金海岸商場 S1&R7 號舖，佔地 9,424 平方呎，前身為 Market Place by Jason's。

* 大嶼山愉景灣海澄湖畔路 92 號愉景北商場地下 G11 號舖，佔地超過 17,000 呎，並設有 IKEA Close to you。該店前身為惠康超級市場。

* 將軍澳唐俊街 9 號 PopCorn 2 地下 G51 號商舖，前身為 Market Place by Jason's。

* 大角咀奧海城一期地下 G02-03 號舖，於 2013 年 9 月 6 日開幕，佔地約 4,000 平方呎，前身為 Market Place by Jason's，並於 2022 年改為現稱。

* 九龍灣偉業街 33 號德福廣場一期平台 P27 號舖，前身為 Market Place by Jason's。

* 尖沙咀 K11 購物藝術館 B2，前身為 Market Place by Jason's。

* 火炭樂景街 28 號御龍山 103 舖，前身為 Market Place by Jason's。

* ~~屯門 54 區 NOVO LAND 商場 NOVO Walk，預計於 2024 年中開業~~已改為開設發展商旗下一田超市。



外部連結


* Jasons Food & Living
Jasper 單曲，為木村 KAELA 的個人第 11 張單曲， 
於 2008 年 2 月 6 日由哥倫比亞音樂發行。



曲目

1. Jasper
  
* 作詞：木村 KAELA／作曲・編曲：石野卓球
  
* 為角川電影『魔法玩具城』日本區主題曲。
  
* 為神奈川音樂節目「SakuSaku」2008 年 2 月份片尾曲。
2. Dive Into Shallow
  
* 作詞：日高央／作曲・編曲：BEAT CRUSADERS
3. Jasper（Instrumental）
4. Dive Into Shallow（Instrumental）



解説


* 初回限定盤附 DVD，收錄 2 首「No Reason Why」「Honey B〜蜜蜂之舞」的 PV，且初回盤與通常盤封面不同。

* 「Jasper」為 2008 年 2 月 16 日於日本上映的電影 『魔法玩具城』 的日本語版主題曲。

* 石野卓球（日本電音教父）製作，且為本人首度嘗試的 Techno 電子曲風。

* C/W 曲「Dive Into Shallow」是自「Snowdome」以來 2 度為 BEAT CRUSADERS 的作曲。

* 台灣於 2008 年 3 月 7 日由風雲唱片代理發行台壓（CD+DVD 版本）。
JasperReports 是一個用 Java 開發的開源的程式庫，使用戶能夠透過它，利用 Java 語言來開發具有報告功能的程式。JasperReports 的模板採用 XML 格式，從 JDBC 資料庫中擷取合適的資料，並把資料在屏幕、印表機顯示，或以 PDF、HTML、XLS、CSV 及 XML 等各種格式儲存。

JasperReports 的報告模板可以以 iReport 之類的工具來製作，只要把報告儲存成 XML 格式，就可以讓 JasperReport 閱讀，然後再編譯成為.jasper 檔。



參看


* OpenReports



外部連結


* 幫助你書寫軟體報告之 JasperReports

* JasperReports 在 SourceForge 的項目頁面 （頁面存檔備份，存於網際網路檔案館） （英文）

* JasperReports 官方主頁 （頁面存檔備份，存於網際網路檔案館） （英文）

* JasperReports: Tips and Information （英文）

* JasperReports Tutorial/Getting Started Guide （英文）

* DynamicReports（頁面存檔備份，存於網際網路檔案館） （英文）

* JasperWave Report Designer - 是一個 Eclipse 插件，用來設計 JasperReports 報表。
雅桑 - 里奧捷（法語：Jassans-Riottier，法語發音：[ʒasɑ̃ ʁjɔtje]）是法國安省的一個市鎮，位於該省西南部，屬於布雷斯地區布爾格區。該市鎮於 1795-1800 年間由雅桑（Jassans）和里奧捷（Riottier）合併而成。



地理

雅桑 - 里奧捷（45°59'8"N, 4°45'24"E）面積 4.81 平方千米，位於法國奧弗涅 - 隆 - 阿爾卑斯大區安省，該省份為法國東部省份，北起侏羅省，西北接索恩 - 羅亞爾省，西接隆河省和里昂大都會，南至伊澤爾省，東與薩瓦省、上薩瓦省和瑞士接壤。

與雅桑 - 里奧捷接壤的市鎮（或舊市鎮、城區）包括：博爾加爾、弗朗、聖貝爾納、福爾芒河畔聖迪迪耶、昂斯、索恩河畔自由城。

雅桑 - 里奧捷的時區為 UTC+01:00、UTC+02:00（夏令時）。



行政

雅桑 - 里奧捷的郵政編碼為 01480，INSEE 市鎮編碼為 01194。



政治

雅桑 - 里奧捷所屬的省級選區為特雷武縣。



人口

雅桑 - 里奧捷於 2019 年 1 月 1 日時的人口數量為 6346 人。



參見


* 安省市鎮列表



參考文獻
雅泰濟紐（葡萄牙語：Jataizinho）是巴西巴拉那州的一個市鎮。總面積 159.18 平方公里，總人口 11587 人，人口密度 72.8 人 / 平方公里。



參見


* 巴拉那州市鎮列表



參考
雅塔烏巴（葡萄牙語：Jataúba）是巴西伯南布哥州的一個市鎮。總面積 715.72 平方公里，總人口 15074 人，人口密度 21.1 人 / 平方公里。



參見


* 伯南布哥州市鎮列表



參考
雅蒂（葡萄牙語：Jati）是巴西塞阿拉州的一個市鎮。總面積 312.584 平方公里，總人口 7102 人，人口密度 22.7 人 / 平方公里。



參見


* 塞阿拉州市鎮列表



參考
雅托巴（葡萄牙語：Jatobá）是巴西馬拉尼昂州的一個市鎮。總面積 387.083 平方公里，總人口 8248 人，人口密度 21.3 人 / 平方公里。



參見


* 馬拉尼昂州市鎮列表



參考
雅楚（法語：Jatxou，法語發音：[ʒatsu]；巴斯克語：Jatsu）是法國大西洋庇里牛斯省的一個市鎮，屬於貝雲區。



地理

雅楚（43°23'19"N, 1°25'49"W）面積 13.95 平方千米，位於法國新亞奎丹大區大西洋庇里牛斯省，該省份為法國東南部省份，涵蓋了貝阿恩與北巴斯克，西臨大西洋比斯開灣，北至朗德省，東北接熱爾省，東臨上庇里牛斯省，南與西班牙接壤。

與雅楚接壤的市鎮（或舊市鎮、城區）包括：阿爾蘇、阿斯帕倫、拉勒索爾、穆蓋爾、于斯塔里茨、維勒弗朗克。

雅楚的時區為 UTC+01:00、UTC+02:00（夏令時）。



行政

雅楚的郵政編碼為 64480，INSEE 市鎮編碼為 64282。



政治

雅楚所屬的省級選區為巴伊古拉 - 蒙達蘭縣。



人口

雅楚於 2019 年 1 月 1 日時的人口數量為 1168 人。



參見


* 大西洋庇里牛斯省市鎮列表



參考文獻
黃疸（英語：Jaundice、Icterus）又稱黃膽，俗稱黃病，是指因為體內膽紅素過高，而導致皮膚及鞏膜發黃或發綠的症狀，一般會伴隨痕癢、糞便蒼白及尿液顏色偏深的情形。新生兒黃疸是出生後三天內出現的黃疸，大部份會自然痊癒，不會造成問題。不過若新生兒的膽紅素非常高或黃疸持續時間太長，可能會出現稱為腦核性黃疸的腦部損傷。

黃疸的成因眾多，有些不嚴重，有些則可能致命，正常人體血液中的膽紅素濃度會在 1.0 mg/dL（17 µmol/L），一般黃疸患者的膽紅素濃度則超過 2–3 mg/dL（34-51 µmol/L）。高膽紅素可分為兩種：非結合性（unconjugated）膽紅素過高及結合性（conjugated）膽紅素過高，若是結合性膽紅素過高，會在尿液中檢驗出膽紅素。

雖然有一些黃疸以外的原因會造成皮膚發黃，包括食用大量含胡蘿蔔素的食物而造成的胡蘿蔔素沉著，或是使用像利福平之類的藥物，但不會造成血中膽紅素過高。

非結合性膽紅素過高可能是因為溶血性貧血、血腫、像吉爾波特症候群之類的基因問題、長時間沒有進食、新生兒黃疸或是甲狀腺疾病。結合性膽紅素過高可能是因為肝硬化或是肝炎、感染、藥物或是膽管堵塞。在已開發國家，黃疸的主要原因是因為藥物或是膽管堵塞，而在開發中國家較常見的原因是因為病毒型肝炎、鉤端螺旋體病、血吸蟲病或是瘧疾等傳染病，膽管堵塞也可能是因為膽石症、癌症及胰腺炎。進行像超聲波之類的醫學影像檢查可以檢查是否有膽管堵塞的情形。

黃疸的治療與病因有關。若是有膽管堵塞，一般需進行手術，否則會進行藥物治療。藥物治療包括治療造成黃疸的傳染病，也可能會停用造成黃疸的藥物。對於新生兒則視年齡及早產程度的不同而定，若膽紅素濃度超過 4–21 mg/dL（68-360 µmol/L），會進行光照治療或是換血。發癢的症狀可以透過膽囊引流或用熊去氧膽酸來改善。黃疸的英文 jaundice 源自法文 jaunisse，意思是「黃病」。



膽紅素的代謝

當血液中的紅血球死亡，紅血球中血紅蛋白的血紅素會於肝臟的庫佛氏細胞（Kupffer cells）及脾臟被轉化為膽紅素。膽紅素經肝臟處理後，隨膽汁分泌至十二指腸，最後透過消化系統，與糞便一同排出體外。



成因

黃疸症可根據上述的血紅素代謝過程分為三類：


* 肝前性黃疸 / 溶血性黃疸：當大量紅血球被分解時出現的黃疸病症。

* 肝源性黃疸 / 肝細胞性黃疸：當肝臟無法正常處理膽紅素時出現的黃疸病症。

* 肝後性黃疸 / 阻塞性黃疸：當肝臟無法正常排除膽紅素時出現的黃疸病症。
  
* 肝內阻塞
  
* 肝外阻塞



診斷

1. 尿液檢驗會發現直接型膽紅素呈陽性
2. 抽血：GOT、GPT 升高，總膽紅素超過 3 mg/dl，鹼性磷酸酶（ALP）明顯上升
3. 腹部超音波、電腦斷層、核磁共振
4. 逆行性膽胰攝影術（ERCP）
5. 經皮穿肝膽胰攝影術（PTC）



治療



新生嬰孩的黃疸症

可能原因：


* 新生兒溶血症

* 弓形蟲

* 梅毒

* 膽總管阻塞

* 新生兒生理性黃疸



參考資料



外部連結
雅烏帕西（葡萄牙語：Jaupaci）是巴西戈亞斯州的一個市鎮。總面積 527.2 平方公里，總人口 3154 人，人口密度 6 人 / 平方公里。



參見


* 戈亞斯州市鎮列表



參考
饒魯（葡萄牙語：Jauru）是巴西馬托格羅索州的一個市鎮。總面積 1217.48 平方公里，總人口 10760 人，人口密度 8.8 人 / 平方公里。



參見


* 馬托格羅索州市鎮列表



參考
喬薩・法迪拉・蘇吉亞托（印尼語：Jauza Fadhila Sugiarto，1999 年 4 月 16 日 —），印尼女子羽球運動員，為前印尼名將伊薩克・蘇吉亞托的女兒。



簡歷

2014 年 8 月，喬薩・法迪拉・蘇吉亞托與阿普里亞尼・拉哈育出戰新加坡羽球國際系列賽，在女雙準決賽以 0 比 2（18-21、20-22）不敵賽會頭號種子、泰國的帕沖攀・磋楚翁 / 參尼莎・提查沃拉信昆。

2015 年 8 月，喬薩・法迪拉・蘇吉亞托與阿普里亞尼・拉哈育出戰新加坡國際系列賽，在女雙決賽以 2 比 1（22-20、16-21、21-10）力克賽會 7 號種子、同胞的梅爾維拉・奧克拉莫納 / 麗卡・羅西塔瓦蒂，奪得其首個國際賽冠軍。

2016 年 5 月，喬薩・法迪拉・蘇吉亞托與阿普里亞尼・拉哈育出戰印度尼西亞羽球國際系列賽，在女雙決賽以 2 比 1（12-21、21-18、22-20）擊敗了賽會 3 號種子、隊友的黛安・菲特里亞尼 / 娜達婭・美拉提，贏得冠軍。

2017 年 11 月，喬薩・法迪拉・蘇吉亞托與莉布卡・蘇吉阿托出戰馬來西亞羽球國際挑戰賽，在女雙準決賽以 0 比 2（16-21、12-21）不敵泰國的基蒂帕克・杜布圖克 / 納查・盛觸。



主要比賽成績

只列出曾進入準決賽的國際賽事成績：

奧運會和世錦賽參賽紀錄
Jav 或 JAV 可以指以下內容：


* 爪哇的縮寫，可指爪哇島、爪哇語

* Java 編程的縮寫

* 日本成人影片（Japanese Adult Video）的縮寫

* 香港男主播周奕瑋的暱稱

* 格陵蘭城市伊盧利薩特的丹麥語縮寫，被用於航線代碼

* 約旦航空公司的 ICAO 航空公司代碼為 JAV
JavaBeans 是 Java 中一種特殊的類，可以將多個物件封裝到一個物件（bean）中。特點是可序列化，提供無參建構元，提供 getter 方法和 setter 方法存取物件的屬性。名稱中的「Bean」是用於 Java 的可重用軟體組件的慣用叫法。



優點


* Bean 可以控制它的屬性、事件和方法是否暴露給其他程式。

* Bean 可以接收來自其他物件的事件，也可以產生事件給其他物件。

* 有軟體可用來組態 Bean。

* Bean 的屬性可以被序列化，以供日後重用。



JavaBeans 規範

要成為 JavaBean 類別，則必需遵循關於命名、建構元、方法的特定規範。有了這些規範，才能有可以使用、復用、替代和連接 JavaBeans 的工具。

規範如下：


* 有一個 public 的無參數建構子。

* 屬性可以透過 _get_、_set_、_is_（可替代 get，用在布林型屬性上）方法或遵循特定命名規則的其他方法存取。

* 可序列化。

`TestPersonBean.java`:

`testPersonBean.jsp`;



參考文獻



外部連結


* Oracle's JavaBeans tutorials （頁面存檔備份，存於網際網路檔案館）

* JavaBeans specification （頁面存檔備份，存於網際網路檔案館）
JavaCC（Java Compiler Compiler）是一個開源的語法分析器生成器和詞法分析器生成器。JavaCC 根據輸入的文法生成由 Java 語言編寫的分析器。

和 YACC 類似，JavaCC 根據由 EBNF 格式撰寫的形式文法生成語法分析器。不同的是，JavaCC 生成的是自頂向下語法分析器，由於可以向前搜尋 k 個字符，所以可以用來分析 LL (k) 文法。同時，JavaCC 生成詞法分析器的方式和 Lex 也很像。

另外，JavaCC 還提供 JJTree 等輔助工具幫助使用者構建語法樹。



歷史

在 1996 年，Sun Microsystems 推出了一個名叫「Jack」的語法解析器生成器。後來，負責「Jack」的開發者創辦了自己的公司 ——Metamata，並將「Jack」改名為「JavaCC」。Metamata 最後成為了 WebGain 的一部分，在 WebGain 關閉後，JavaCC 才移動到了現在的主頁。



使用

使用 JavaCC 構建的軟體：


* Apache Derby

* BeanShell

* FreeMarker

* PMD

* Vaadin

* Apache Lucene

* JavaParser



另見


* ANTLR

* SableCC

* Coco/R

* parboiled



外部連結

JavaCC FAQ （頁面存檔備份，存於網際網路檔案館）



參考
JavaFX 是由甲骨文公司推出的一系列的產品和技術，該產品於 2007 年 5 月在 JavaOne 大會上首次對外公布。JavaFX 技術主要應用於建立 Rich Internet application（RIAs）。當前的 JavaFX 包括 JavaFX 指令碼和 JavaFX Mobile（一種運營於行動裝置的作業系統），今後 JavaFX 將包括更多的產品。

JavaFX 指令碼的前身是一個由 Chris Oliver 開發的一個叫做 F3 的專案。

JavaFX 期望能夠在桌面應用的開發領域與 Adobe 公司的 AIR、OpenLaszlo 以及微軟公司的 Silverlight 相競爭，它也可應用於 Blu-Ray 的互動平台 BD-J，但目前尚未宣布對 Blu-Ray 的支援計劃。



參見


* JavaFX 指令碼

* Curl 5.0 from Curl Inc.（頁面存檔備份，存於網際網路檔案館） for off-line RIA\

* 支援 JavaFX 的 Lobo Web 瀏覽器

* Microsoft Silverlight

* Rebol 程式語言作為 Java 虛擬機器的替代

* 來自 Mozilla 基金會的 XUL 和 XULRunner

* JavaFX mobile



註釋



外部連結


* Sun.com - JavaFX （頁面存檔備份，存於網際網路檔案館）

* Sun.com - Learning JavaFX Script: An Introduction for Java Programmers （頁面存檔備份，存於網際網路檔案館）

* A Digg style community site for JavaFX articles,Blogs,Videos,Books and everything else on JavaFX.

* Planet JFX is an open-source documentation wiki for the new JavaFX scripting platform. （頁面存檔備份，存於網際網路檔案館）

* James Weaver's Learn JavaFX Weblog （頁面存檔備份，存於網際網路檔案館）

* Crash Course in Next-Gen RIA: AIR, Silverlight, and JavaFX （頁面存檔備份，存於網際網路檔案館）

* CRUDFx - JavaFx/JDBC

* Samples-on-javafx.com （頁面存檔備份，存於網際網路檔案館）
JavaForge 為 JavaLobby 採用 CodeBeamer 與 Subversion 所建立的自由軟體開發專案管理網站。提供免費的開放原始碼專案協同作業與討論分享的空間。

此平台於 2005 年的 9 月開始運作，提供各專案需求、變更、缺陷、版本發佈等事項的追蹤、文件分享、Wiki 協作、建構管理資料庫、議題討論和程式碼線上瀏覽與分析功能。除了 web 介面，使用者也可以運用 IDE，如 Eclipse、NetBeans、瀏覽追蹤項目。

2009 年 5 月，CodeBeamer 的開發廠商 "INTLAND Software" 接管此自由軟體開發社群網站，並將其架構於亞馬遜雲端運算的平台上，讓開發專案管理者除了 Subversion 外，也可以選 Mercurial 或 Git 這類的 DVCS。

JavaForge 上目前沒有任何廣告，參與者只要註冊帳號，即可成立自己的專案，開始自由軟體的開發。上面也有知識分享的標籤、喜好投票機制和多種 Wiki Plugins 如標籤雲，最受注目的討論事項、個人參與的所有專案以及多種專案統計資訊等。



外部連結


* Homepage

* Eclipse Plugin for JavaForge

* CodeBeamer Eclipse Studio: Mylyn+Eclipse+Mercurial+JavaForge （頁面存檔備份，存於網際網路檔案館）
JavaOS（也稱：Java 作業系統、爪哇作業系統）是一套作業系統，是以 Java Virtual Machine（簡稱：JVM，也稱：爪哇虛擬機器）與一些基礎軟體組件所構成，由昇陽電腦所開發。Java 作業系統如同 UNIX 作業系統或類 UNIX 作業系統一樣，UNIX 作業系統、類 UNIX 作業系統的主要本體皆是用 C 語言所開發撰寫成，而 Java 作業系統的主要本體則是用 Java 程式語言所撰寫成。



微核心

JavaOS 的系統是：以硬體架構的原生（native）微核心（microkernel）為基礎的：

JavaOS 核心可以執行的平台包括：


* ARM

* PowerPC

* RISC

* SPARC

* StrongARM

* x86



虛擬機器

以微核心為基礎，JAVA 虛擬機器（Java virtual Machine，JVM）在微核心之上執行。



驅動程式

所有裝置驅動程式皆是以 Java 程式撰寫成，並在 JVM 之上執行。



視窗系統

JavaOS 中的圖形、視窗系統部分是用 AWT（Abstract Windowing Toolkit）的 API 方式來實現，也是完全用 Java 語言所撰寫成。



應用

JavaOS 是針對嵌入式系統的應用所設計，例如視訊機頂盒（Set-Top Box，STB）、網路基礎建設、自動提款機（Automatic Teller Machine，ATM）等，也用於網路電腦（Network Computer）：JavaStation 中



參見


* Java - Java 程式語言

* JNode（英文）

* Inferno - Inferno 作業系統（英文）



外部連結


* [進可契機、退可籌碼的「Java 作業系統」手機]－2006 年 6 月 19 日（中文）

* Inside the 深入 IBM 的 JavaOS 專案（英文）

* Sun 對 JavaOS 架構的解說（英文）（頁面存檔備份，存於網際網路檔案館）

* JNode （頁面存檔備份，存於網際網路檔案館） - 一個仍在持續進行發展的程式開發專案，目標是盡可能完全只用 Java 程式語言來開發撰寫出一套作業系統，以便盡可能以原生方式執行 Java 程式（英文）

* SavaJe 科技公司（頁面存檔備份，存於網際網路檔案館） - 專注於開發極近似 JavaOS 的嵌入式作業系統（英文）
JavaOne 是一個由昇陽提出的週年性（自 1996 年起）研討會，用以討論 Java 技術，與會者主要為 Java 開發人員。JavaOne 於加州舊金山的莫斯康中心舉行，時間通常在 4 至 7 月之間，一般為星期日至星期五。不同主題的技術講座會在白天舉行，晚間會在莫斯康中心與鄰近的酒店舉行 Birds of a Feather (BOF) 講座。BOF 講座讓人們可集中於 Java 技術的某一特定方面。

參與技術講座、演說、展覽會與 BOF 講座需要一個一般價值為 1795 至 1995 美元之間的研討會通行證。

1999 年的 JavaOne 舉行了一個名為 Hackathon 的活動。該活動是一個由 John Gage 設立的挑戰，參與者需以 Java 為新的 Palm V 編寫使用紅外埠與其他 Palm 使用者通訊的程式並將其登記到網際網路上。


* JavaOne 2007 - 5 月 8 至 11 日



外部連結


* JavaOne 網站 （頁面存檔備份，存於網際網路檔案館）

* 莫斯康中心網站（頁面存檔備份，存於網際網路檔案館）
JavaScriptMVC 是一套開放原始碼的多樣化網際網路應用程式框架，以 jQuery 與 OpenAJAX 為基礎。JavaScriptMVC 利用 MVC 架構與工具擴展這些函式庫，以便開發與測試。由於 JavaScriptMVC 不需要任何伺服器端的配合，因此它可以和任何的網站服務介面與程式語言整合，如 ASP.NET、Java、Perl、PHP、Python 或 Ruby。



歷史

JavaScriptMVC 的第一個版本是在 2008 年 5 月釋出。穩定版的 JavaScriptMVC 2.0 在 2009 年 6 月釋出，並以 jQuery 為基礎。主要開發目標為維持程式碼的簡短和專注在它獨特的功能上。3.0 版本在 2010 年 12 月釋出。而從 JavaScriptMVC 中所獨立出來的 MVC 架構「CanJS」則在 2012 年 4 月釋出。



控制器

控制器（Controller）是由許多函式所組成，這些函式會在適當的事件發生時被呼叫。函式名稱提供這些函式被呼叫時的描述。只要正確地命名函式，控制器就能夠辨認這些函式並在正確的時機呼叫它們。舉例來說：

在控制器中也可以處理 OpenAjax 事件，例如：



視圖

JavaScriptMVC 使用 EJS 樣板來處理控制器裡的 HTML 資料並且將它們插入 DOM 中。這些語法是借鏡自 ERuby，且與 PHP 或其他伺服器端語言的樣板引擎相似。

以「test.ejs」（data = ["Hello", "World"]）為例：

這會輸出如下的結果：



模型

模型（Model）類別提供了組織應用程式資料層級的基本功能。



測試

JavaScriptMVC 還提供了一套完整的測試外掛，支援模型的單元測試，以及需要處理事件驅動結構的功能性測試。測試工具可以在 Rhino 引擎的命令列模式執行。



參考資料



外部連結


* 官方網站 （英文）

* GitHub 專案（頁面存檔備份，存於網際網路檔案館） （英文）

* Google Code 上的舊專案頁面（頁面存檔備份，存於網際網路檔案館） （英文）
JavaScript 函式庫是指用於 Javascript 語言開發的函式庫，多應用在網頁 DOM、AJAX、CSS 的領域，可以幫助網頁開發者用更快速地撰寫網頁，例如有些 JavaScript 函式庫提供精簡化的 DOM 操作函式或解決跨瀏覽器問題等。



常見 JavaScript 函式庫列表


* Ally

* Ample SDK

* Artisan JS

* Blackbird

* Cappuccino

* Clean AJAX

* cufón

* Data-Driven Documents (D3)

* Datejs

* DHTMLX

* Dojo Toolkit

* Echo

* Ext

* Flot

* FUEL

* Glow

* Google Closure Library

* Google Web Toolkit

* Himle

* iX Framework

* Jelly (JavaScript library)

* Joose

* JWee Javascript Toolkit

* jQuery

* jQuery UI

* jsDraw2D

* Knockout

* Lively Kernel

* Microsoft AJAX Library

* Midori Javascript Framework

* Mochikit

* MooTools

* My Library

* Next.js

* Nuxt.js

* OpenLink AJAX Toolkit

* PlotKit

* PottisJS

* Processing.js

* Prototype JavaScript Framework

* PURE Javascript Templates Engine

* qooxdoo

* Raphaël

* React

* React Native

* Rialto Toolkit

* Rico

* Script.aculo.us

* seen

* SmartClient

* SoundManager

* Spark

* SproutCore

* Spry framework

* Sylvester

* SWFObject

* Taffy DB

* Three.js

* typeface.js

* Underscore.js

* Verge3D

* Vue.js

* Yahoo! UI Library

* Zeleos web toolkit

* Zreshk



相關條目


* Javascript

* ECMAScript

* 網頁瀏覽器
下面是知名 JavaScript 庫的列表。



約束編程


* Cassowary

* CHR.js



面向 DOM (操縱)


* Google Polymer

* Dojo Toolkit

* jQuery

* midori

* MooTools

* Prototype JavaScript 框架



圖形 / 視覺化 (canvas 或 SVG 有關)


* AnyChart

* D3.js

* FusionCharts

* Highcharts

* JavaScript InfoVis Toolkit

* p5.js

* Pixi.js

* Plotly

* Processing.js

* Raphaël

* SWFObject

* Teechart

* Three.js

* Velocity.js

* Verge3D

* WhitestormJS



GUI (圖形化使用者介面) 和構件有關


* Angular 出自 Google

* AngularJS 出自 Google

* Bootstrap

* Dojo Widgets

* Ext JS 出自 Sencha

* Foundation 出自 ZURB

* jQuery UI

* jQWidgets

* OpenUI5 出自 SAP

* Polymer 出自 Google

* qooxdoo

* React.js

* SmartClient

* Webix

* WinJS

不再活躍開發的


* Glow

* Lively Kernel

* Script.aculo.us

* YUI 庫



純 JavaScript/Ajax


* Google Closure Library

* Joose

* JsPHP

* Microsoft's Ajax library

* MochiKit

* PDF.js

* Rico

* Socket.IO

* Spry framework

* Underscore.js



模板系統


* Cascade Framework

* jQuery Mobile

* Mustache

* Jinja-JS

* Twig.js



單元測試


* Jasmine

* Mocha

* QUnit

* Unit.js



網頁應用有關 (MVC, MVVM)


* Angular 出自 Google

* AngularJS 出自 Google

* Backbone.js

* Cappuccino

* Chaplin.js

* Echo

* Ember.js

* Enyo

* Express.js

* Ext JS

* Google Web Toolkit

* JavaScriptMVC

* JsRender/JsViews

* Knockout

* Meteor

* Mojito

* MooTools

* Node.js

* OpenUI5 出自 SAP

* Polymer 出自 Google

* Prototype JavaScript 框架

* PureMVC

* qooxdoo

* React.js

* Rialto Toolkit

* SproutCore

* Vue.js

* Wakanda 框架



其他


* Modernizr

* Cannon.js

* MathJax



參見


* Ajax 框架

* JavaScript 框架比較



外部連結


* JSter，社群驅動的最有用的 javascript 庫的目錄。

* 隨時更新的 JavaScript 框架參考指南。 （頁面存檔備份，存於網際網路檔案館）
JavaScript 引擎是一個專門處理 JavaScript 指令碼的虛擬機器，一般會附帶在網頁瀏覽器之中。



歷史

在 2008 年到 2009 年的第二次瀏覽器大戰之前，JavaScript 引擎僅簡單地被當作能閱讀執行 JavaScript 原始碼的直譯器。


* SpiderMonkey：第一個 JavaScript 引擎，由布蘭登・艾克在網景公司開發，用於 Netscape Navigator 網頁瀏覽器中，由 C++ 實作。自 JavaScript 1.5 升級以符合 ECMA-262 版本 3。

* Rhino：由網景公司的諾里斯・博伊德（Norris Boyd）開發，由 Java 實作。像 SpiderMonkey 一樣，Rhino 符合 ECMA-262 版本 3。

* Nitro：Apple Safari 4 開始支援

* V8：Google Chrome 製作

* TraceMonkey：Mozilla Firefox 3.5 開始支援

目前為止，最通用的 JavaScript 宿主環境是網頁瀏覽器。網頁瀏覽器一般使用公共的 API 建立「宿主物件」以便於在 JavaScript 中支援 DOM。



效能演進

一個典型的瀏覽器有一個圖形引擎和一個獨立的 JavaScript 引擎。這樣 JavaScript 引擎能夠被更方便的測試、重新生成或者在另一些專案中使用。例如：Carakan 被用在 Presto 中，Nitro 被用在 WebKit 中，SpiderMonkey 被用在 Gecko 中，KJS 被用在 KHTML 中，Rhino 預設不包含任何布局引擎。但還有其他組合，例如：V8 與 WebKit 被用於 Google Chrome 中。JavaScript 引擎能為程式設計師提供部分操作瀏覽器的功能（網路、DOM、外部事件、HTML5 影片、canvas 和儲存）。

Sunspider 是一個 JavaScript 實用基準測試通過一系列關於 JavaScript 語言的指令碼測試 JavaScript 引擎的速度。Sunspider 不測試無關於 JavaScript 的特性（不使用 HTML、CSS 和無網路情況下）。

近幾年來，在瀏覽器開發者之間展開了一場開發更快的 JavaScript 引擎的競賽。2008 年，Google Chrome 因它的 JavaScript 效能而倍受稱讚，但是其它瀏覽器馬上使用了更快的 JavaScript 引擎。之後，Google Chrome 在效能上獲得領先，其長處在於它高速的效能和 JavaScript 的處理速度，這些都由許多網站在主要的瀏覽器之間的速度測試中得到驗證。隨著 WebKit 的 Squirrelfish Extreme 和 Mozilla 的 TraceMonkey JavaScript 虛擬機器出現，Chrome 的 JavaScript 執行速度就被超越了。Google 丹麥在 Chrome 2 中開發了更快速的 V8 引擎。

2008 年 6 月 2 日，WebKit 開發團隊發布了 SquirrelFish—— 一個能極大地提升 Safari 解釋指令碼速度的新的 JavaScript 引擎。該引擎是 Safari 4 其中一個新特性，在 2008 年 6 月 11 日發布給程式設計師使用；最終此 JavaScript 引擎被稱為 Nitro。2009 年 6 月 30 日，在 Firefox 3.5 發布的最新技術能「使某些情況下的速度提升 20 到 40 倍」。



著名的引擎

開發中


* Rhino，由 Mozilla 基金會管理，開放原始碼，完全以 Java 編寫。

* SpiderMonkey，第一款 JavaScript 引擎，早期用於 Netscape Navigator，現時用於 Mozilla Firefox。

* V8，開放原始碼，由 Google 丹麥開發，是 Google Chrome 的一部分。

* JavaScriptCore，開放原始碼，用於 Safari。

* Chakra (JScript 引擎)，用於 Internet Explorer。

* Chakra (JavaScript 引擎)，用於 Microsoft Edge。

* KJS，KDE 的 ECMAScript／JavaScript 引擎，最初由哈里・波頓開發，用於 KDE 專案的 Konqueror 網頁瀏覽器中。

停止開發


* Linear A，用於 Opera 4.0 至 6.1 版本。

* Linear B，用於 Opera 7.0 至 9.2 版本。

* Futhark，用於 Opera 9.5 至 10.2 版本。

* Carakan，用於 Opera 10.5 至 12.1 版本。

* Nashorn，Oracle 於 JDK 1.8 發布，內嵌於 Java 的 javascript 引擎。於 Java 11 改為棄用並於 Java 15 正式移除。

* Narcissus，開放原始碼，由布蘭登・艾克編寫（他也編寫了 SpiderMonkey）。

* Tamarin，由 Adobe Labs 編寫。



實作

JavaScript 是一種 ECMAScript 方言，在許多程式中得以實作，特別是在網頁瀏覽器。這些方言通常擴充了語言，或者標準庫和相關 API，例如 W3C 定義的 DOM。這意味著以一種方言實作的程式不相容於另一種方言的實作，除非程式使用了方言中的公共子集所具有的特性和 API。

在實作和方言中存在著一些差別。一種語言的方言有一些與語言不同的地方。實作能夠執行該語言或方言編寫的程式。



參考來源



外部連結


* Kraken JavaScript Benchmark （頁面存檔備份，存於網際網路檔案館） - 瀏覽器效能測試

* Peacekeeper （頁面存檔備份，存於網際網路檔案館） - 瀏覽器效能測試

* Speed-Battle （頁面存檔備份，存於網際網路檔案館） - 瀏覽器效能測試

* SunSpide （頁面存檔備份，存於網際網路檔案館） - 瀏覽器效能測試
下表比較在網頁瀏覽器內使用一些知名 JavaScript 引擎對標準的支援。



表格解說

完整列表可參見 ECMAScript 引擎列表。

值

這些值指示了在每個引擎中對給定專案的支援程度。預設的，預設為這個引擎的最新版本。但是，可以列出特定版本號；當這指示完全支援的時候，它是這個引擎完全支援這個專案的最初版本。



ECMAScript 版本支援

下表中的版本號為排版引擎的版本號。JavaScript 的版本號就是 JavaScript 引擎中 SpiderMonkey 的版本號，在 ECMAScript Edition 5 之後不再延續跟進。



標準庫

全域物件

Object 物件

Function 物件

Array 物件

String 物件

Boolean 物件

Number 物件

Math 物件

Date 物件

RegExp 物件

Error 物件

NativeError 物件



參照



延伸閱讀


* ECMAScript object support in Opera

* JavaScript tests & Compatibility tables （頁面存檔備份，存於網際網路檔案館）

* ECMAScript 6 compatibility table（頁面存檔備份，存於網際網路檔案館）



外部連結


* Webdevout （頁面存檔備份，存於網際網路檔案館） – mostly covers Windows browsers. Extensive bug testing.
JavaServer Faces（JSF）是一個為網路應用程式構建基於組件的使用者介面的 Java 規範，並已通過 JCP 格式化為 Java EE 的一部分。它也是一個 MVC Web 應用框架，通過在頁面中使用可重用的 UI 組件簡化了基於伺服器的應用程式的使用者介面（UI）。



版本


* JSF 2.3 (2017-03-28) — Major features: search Expressions, extensionless URLs, bean validation for complete classes, push communication using WebSocket, enhanced integration with CDI.

* JSF 2.2 (2013-04-16) — JSF 2.2 introduced new concepts like stateless views, page flow and the ability to create portable resource contracts.

* JSF 2.1 (2010-10-22) — Maintenance release of 2.0. Only very minor amount of spec changes.

* JSF 2.0 (2009-06-28) — Major release for ease of use, enhanced functionality, and performance. Coincides with Java EE 6.

* JSF 1.2 (2006-05-11) — 核心系統和 API 改進. Coincides with Java EE 5. Initial adoption into Java EE.

* JSF 1.1 (2004-05-27) — 錯誤修復，沒有更改規範.

* JSF 1.0 (2004-03-11) — 初始規範發布.



技術的主要組件

為了展現 UI 組件和管理它們的狀態；操作事件、伺服器端的確認和資料變換；定義頁面導航；支援國際化和可存取性；提供對所有特性的可延伸性的 API 為了在 JSP 中表示 UI 組件和拍發組件給伺服器端物件的兩個 JSP 自訂 tag 庫。



JavaServer Faces 技術好處

引入了基於組件和事件驅動的開發模式，使開發人員可以使用類似於處理傳統介面的方式來開發 Web 應用程式。提供了行為與表達的清晰分離。
不用特別的手稿語言或者標記式語言來連接 UI 組件和 Web 層。JSF 技術 API 被直接分層在 Servlet API 的頂端。
技術為管理組件狀態提供一個豐富的體系機構、處理組件資料、確認使用者輸入和操作事件。



JavaServer Faces 應用程式

典型的 JSF 應用程式包含下列部分：

　
: 
* 一組 JSP 頁面

* 一組後台 bean（為在一個頁面上的 UI 組件定義的屬性和函式的 JavaBean 組件）

* 應用程式組態資原始檔（定義頁面導航規則、組態 bean 和其它的自訂物件，如自訂組件）

* 部署描述檔案（web.xml）

* 一組由應用程式開發者建立的自訂物件（有可能）

* 一些可能包含自訂組件、約束、轉換器或者監聽器的物件

* 為在頁面中表現自訂物件的一組自訂 tag

包含 JSP 頁面的 JSF 應用程式也使用由為了表現 UI 組件和在頁面上的其他物件的 JSF 技術而定義的標準的 tag 庫。



JavaServer Faces 應用程式開發角色


* 頁面作者：使用 JSF 標記庫建立頁面。

* 應用程式開發者：編寫自訂轉換器、約束、監聽器和後台 bean。

* 組件作者：建立自訂 UI 組件和實施者（renderer）。

* 應用程式建造者：組態應用程式，包括定義導航規則、組態自訂物件和建立部署描述檔案。



參見


* J2EE

* Struts



參考資料



外部連結


* Brief review （頁面存檔備份，存於網際網路檔案館） on the latest changes to JSF 2.0 to be reflected in Java EE 6

* Cloud Tutorial - JavaServer Faces in a Day JSF Tutorial that embraces the use of a Cloud IDE to let you learn the fundamentals of JSF in just one day

* Core Servlets JSF Tutorials （頁面存檔備份，存於網際網路檔案館） Tutorials with Source Code

* ICEfaces （頁面存檔備份，存於網際網路檔案館） Official site of the ICEfaces Open Source Project

* James Holmes' JSF Resources （頁面存檔備份，存於網際網路檔案館） Extensive listing of JSF articles, blog entries, tutorials, and more

* Java EE 4 Tutorial （頁面存檔備份，存於網際網路檔案館） Chapter 17: JavaServer Faces Technology （頁面存檔備份，存於網際網路檔案館）

* Java EE 5 Tutorial （頁面存檔備份，存於網際網路檔案館） Chapter 10: JavaServer Faces Technology （頁面存檔備份，存於網際網路檔案館）

* Java EE 6 Tutorial （頁面存檔備份，存於網際網路檔案館） Chapter 4: JavaServer Faces Technology （頁面存檔備份，存於網際網路檔案館）

* Java EE 7 Tutorial Chapter 7: JavaServer Faces Technology （頁面存檔備份，存於網際網路檔案館）

* JSF Central （頁面存檔備份，存於網際網路檔案館） JavaServer Faces Community

* JSF Matrix listing various JSF implementations and their features

* JSF Tutorial Sitenol （頁面存檔備份，存於網際網路檔案館） JSF tutorials, examples and good email support for coding problems

* JSF Tutorials Memorynotfound JSF tutorials, Code Examples, Best Practices

* JSF Tutorials, Examples and Articles catalog

* JSR 276 （頁面存檔備份，存於網際網路檔案館） Design-Time Metadata for JavaServer Faces Components

* 官方網站 JSF 在 java.net 上的計畫頁面

* PrimeFaces （頁面存檔備份，存於網際網路檔案館） Official site PrimeFaces
JavaStation[1]是一種網路電腦（Network Computer，NC），由昇陽電腦於 1996 年－1998 年間所研發。

JavaStation 的硬體是以昇陽電腦過往的 SPARCstation 工作站為基礎而設計，SPARCstation 工作站及其架構過去在 UNIX 工作站領域中相當成功。不過，JavaStation 缺乏硬碟機、軟碟機、光碟機，同時也有許多地方與 SPARC 電腦不同，如使用標準的 IBM PS/2 週邊介面及 VGA 視訊介面。

1. ^ - 過去的中文相關報導有時翻譯成：爪哇工作站。



有關 JavaStation 的小風趣

以下有幾個關於 JavaStation 的小風趣：


* JavaStation-1 也稱為「Mr. Coffee」咖啡先生

* JavaStation-NC 也稱為「Mr. Krups」Krups 先生，Krups 是一個咖啡壺的品牌

* JavaStation-E 也稱為「Espresso」濃咖啡

* JavaEngine-1 也稱為「JE-1」（縮寫）

* The "Dover" JavaStation（Dover，英國東南部的港口）

* The Generation 3 "Super JavaStation" 第三代的「超級 JavaStation」（其實只有兩款 JavaStation，沒有到第三款、第三代過）

* The Pre-Mr. Coffee JavaStation Prototype 預咖啡先生 JavaStation 原型品（雛形品）

* The JavaStation "Fox".



作業系統

JavaStation 所採行的作業系統是 JavaOS，並以快閃記憶體的型態存放在機內，不過也可以改安裝 Linux 或 NetBSD。



外部連結


* JavaStation Linux HOWTO （頁面存檔備份，存於網際網路檔案館）
Java Card 技術主要是讓智慧卡或與智慧卡相近的裝置上，以具有安全防護性的方式來執行小型的 Java Applet，此技術也被廣泛運用在 SIM 卡、提款卡上。

第一個運用 Java Card 技術的智慧卡是在 1997 年發表，由數家公司所共同採行，包括過去 Schlumberger 公司的卡片部門（今日為 Axlto 公司）與 Gemplus 公司。Java Card 的產品皆以 Java Card Platform specifications（爪哇卡平台規格）為依循標準，此技術規格標準由昇陽電腦所研發。整體而言，Java Card 的主要特點及訴求在於移攜性與安全性。



程式移攜性

Java Card 虛擬機（Java Card Virtual Machine，也可簡稱為 Java Card VM 或 JCVM）它是原有 Java 虛擬機的子集合，負責對 Java Applet 進行程式直譯、執行及結果回應，也因此 JCVM 的空間佔量不能太大，必須能小到放入智慧卡內。此外，Java Card 的 Java Applet 也必須比一般 Java Applet 更小型，要求 JCVM 與 Java Card Applet 都更小化，對日後的進一步撰寫開發與程式移植等有幫助。

既然有容量取向的要求，那也就必須對 Java 的功效機能進行部分權衡取捨，即便可以用多種方式讓應用程式的體積佔量突破容量限制，例如將應用程式的程式碼劃分到 Package（Java 程式語言中，用來將類以性質、用途等不同取向等而集中放置的地方，即稱為 Package）內，但是每個 Package 也被限制不能超過 64KB 的容量。



防護安全性

Java Card 技術在研發初衷就是為了保護智慧卡內的私密、敏感性資料。

由於 Java Card 的應用程式是在 Java Card VM 具隔離性的環境下執行，所以程式對卡片資料的寫入、讀取、修改也受到權限機制的控制保護，無論使用何種讀卡裝置、作業系統、應用程式都不能跨越權限去存取不屬於自己的卡片內資料，等於具有小型應用程式的防火牆的功效。
Java Card 能支援絕大多數的常用加密演算法，包括橢圓曲線加密法。

無論是電信方面還是金融方面的智慧型片應用，現在都運用 Java Card 技術來防護卡內所儲存的資訊資料。



相關條目


* 爪哇卡開放平台（Java Card OpenPlatform，簡稱：JCOP），是一個以 Java Card 為基礎的作業系統，且因使用 Java Card 技術而具有安全防護性。



外部連結


* （英文）Java Card 平台規格（昇陽電腦） （頁面存檔備份，存於網際網路檔案館）
Java 類別載入器（英語：Java Classloader）是 Java 執行時環境（Java Runtime Environment）的一個部件，負責動態載入 Java 類別到 Java 虛擬機器的記憶體空間中。類別通常是按需載入，即第一次使用該類別時才載入。由於有了類別載入器，Java 執行時系統不需要知道檔案與檔案系統。對學習類別載入器而言，掌握 Java 的委派概念是很重要的。

每個 Java 類別必須由某個類別載入器裝入到記憶體。Java 程式可以通過類別載入器來利用外部庫（即由其他作者編寫的軟體庫）。

JVM 中有 3 個預設的類別載入器：

1. 引導（Bootstrap）類別載入器。由原生代碼（如 C 語言）編寫，不繼承自 `java.lang.ClassLoader`。負責載入核心 Java 庫，儲存在 `<JAVA_HOME>/jre/lib` 目錄中。
2. 擴充（Extensions）類別載入器。用來在 `<JAVA_HOME>/jre/lib/ext`, 或 `java.ext.dirs` 中指明的目錄中載入 Java 的擴充庫。Java 虛擬機器的實現會提供一個擴充庫目錄。該類別載入器在此目錄裡面尋找並載入 Java 類別。該類別由 `sun.misc.Launcher$ExtClassLoader` 實現。
3. Apps 類別載入器（也稱系統類別載入器）。根據 Java 應用程式的類別路徑（`java.class.path` 或 CLASSPATH 環境變數）來載入 Java 類別。一般來說，Java 應用的類別都是由它來完成載入的。可以通過 ClassLoader.getSystemClassLoader () 來取得它。該類別由 `sun.misc.Launcher$AppClassLoader` 實現。

每個類別裝載器通過組合的方式包含一個父裝載器（parent class loader）。

JDK 1.2 之後引入「雙親委派」方式來實現類別載入器的層次呼叫，以儘可能保證 JDK 的系統 API 不會被使用者定義的類別載入器所破壞，但一些使用場景會打破這個慣例來實現必要的功能。



自訂類別載入器

開發可以通過繼承 `java.lang.ClassLoader` 類別的方式實現自己的類別載入器，以滿足一些特殊的需求而不需要完全了解 Java 虛擬機器的類別載入的細節。

可用於：


* 執行時裝載或解除安裝類別。這常用於：
  
* 實現手稿語言
  
* 用於 bean 生成器
  
* 允許使用者定義的擴充性
  
* 允許命名空間之間的通信。這是 CORBA / RMI 協定的基礎。

* 改變 Java 位元組碼的裝入，例如：可用於 Java 類別位元組碼的加密裝入。

* 修改已裝入的位元組碼（weaving of aspects when using aspect-oriented programming）。



JEE 的類別裝載

Java EE （JEE）應用程式伺服器典型地用樹狀的一組類別裝載器從已部署的 WAR 或 EAR 文件中裝入類別。這使得應用程式之間彼此隔離，但共享已部署模組。servlet container 一般被實現為多個類別裝載器。



 JAR 地獄

和 DLL 地獄一樣，一個組件的特定 JAR 也存在版本差異，不同版本間的 JAR 檔案的 Class 檔案存在差異（包括 Class 檔案的編譯版本、Class 的成員結構、Class 繼承關係等）的話，也會在執行時觸發各種因為類別檔案結果衝突而導致的錯誤警告。對於 Servlet 容器，還存在容器所需的 JAR 與應用內所需的 JAR 雙線衝突的問題。

不同於 DLL 地獄，Java 開發者會使用一些專案管理程式（例如 Apache Maven）來解決 JAR 版本之間的衝突，通過組態依賴關係檔案，設定不同組件的 JAR 版本依賴關係，由專案管理程式自動載入相應合適的 JAR，來控制 JAR 間 的版本關係。而對於 Servlet 容器，也會通過自己實現類別載入器打破 JDK 的「雙親委派」方式來避免 JAR 載入衝突。



參考文獻



外部連結


* Chuck McManis, "The basics of Java class loaders", 1996

* Brandon E. Taylor, "Java Class Loading: The Basics （頁面存檔備份，存於網際網路檔案館）", 2003

* Jeff Hanson, "Take Control of Class Loading in Java （頁面存檔備份，存於網際網路檔案館）", 2006-06-01

* Andreas Schaefer, "Inside Class Loaders （頁面存檔備份，存於網際網路檔案館）", 2003-11-12

* Sheng Liang and Gilad Bracha, "Dynamic class loading in the Java virtual machine（頁面存檔備份，存於網際網路檔案館）", In Proceedings of the 13th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'98), ACM SIGPLAN Notices, vol. 33, no. 10, ACM Press, 1998, pp. 36–44

* Dr. Christoph G. Jung, "Classloaders Revisited Hotdeploy （頁面存檔備份，存於網際網路檔案館）", _Java Specialist Newsletter_, 2001-06-07

* Don Schwarz, "Managing Component Dependencies Using ClassLoaders （頁面存檔備份，存於網際網路檔案館）", 2005-04-13
Sun Java Desktop System（JDS）是一個用於昇陽的 Solaris 及其原來 Linux（Linux 的支援於 2006 年 5 月 30 日中斷） 的桌面環境。

JDS 目的為提供一般電腦使用者一個熟悉（意即其外觀與 Microsoft Windows 相似）以及擁有一整套如辦公軟體套裝、網頁瀏覽器、電子郵件、日程表與即時訊息等辦公室生產力軟體的系統。

其名稱反映出昇陽有意將其作為一個推動公司使用者部署為 Java 平台編寫的軟體的場所；JDS 建基於 GNOME 之上，主要採用自由軟體。



版本

JDS 3 包含在 Solaris 10 內 —— 在安裝 Solaris 時可選擇使用 CDE 或 JDS。JDS Release 2 亦可在其中一個基於 SuSE 的 Linux 分發版上使用。

JDS 第二版包括


* Java

* GNOME（使用 Blueprint 佈景主題）

* StarOffice

* Mozilla

* Evolution

* MP3 與光碟播放器

* Java Media Framework 的 Java Media Player

* Gaim 多個服務即時通訊軟體

* RealPlayer

JDS Release 3 基於 GNOME 2.6，只有 Solaris 10 平台可使用，已被甲骨文併購的昇陽先前曾在內部的 Solaris 10 桌面電腦上佈署 JDS 3。

OpenSolaris 使用的 JDS 常稱作 OpenSolaris Desktop。OpenSolaris Desktop 01（於 2005 年 10 月 28 日發佈）基於 GNOME 2.10，OpenSolaris Desktop 02（於 2005 年 12 月 23 日）基於 GNOME 2.12。

最初時昇陽為 Solaris 8 同梱了一張 GNOME 1.4 的預覽版獨立光碟。



註解



請參閱


* Project Looking Glass



外部連結


* Sun Java Desktop System

* Java.net 上的 Java Desktop 社群

* OpenSolaris 上的 Java Desktop System 社群

* OS News 的評論 （頁面存檔備份，存於網際網路檔案館）－2003 年 12 月

* eWeek 的評論－2003 年 12 月
在軟體開發中，Java 接口定義語言或 Java IDL 是 CORBA 規範的實現，可實現與異構對象的互操作性和連接性。它基本上是 JDK 提供的對象請求代理。在 Java IDL 使分布式 Web 應用程式透明地調用上使用行業標準的遠程網絡服務業務接口描述語言（IDL）和 IIOP 從對象管理組。



外部連結


* Sun Developer Network: Core Java: Java IDL

* JDK 6 Java IDL-related APIs & Developer Guides （頁面存檔備份，存於網際網路檔案館）
Java NIO，是 Java SE 1.4 版以後，針對網路傳輸效能優化的新功能。 在 Java 7 時再推出 NIO 2，針對檔案存取的效能優化。



特性

Java NIO API 提供在 java.nio 套件或其子套件中。


* 緩衝區的基本資料類型

* 字元集的編碼器和解碼器

* 基於 Perl 風格的正則表達式（在 java.util.regex ）

* 通道 (Channels)，一個新的原生抽象 I/O

* 支援鎖定 (Lock) 和記憶體映射的檔案介面，檔案 Size 最多可以存取到 Integer.MAX\_VALUE（2GB）

* 多工，非阻塞式 I/O 的可擴展性伺服器
Java 遠端方法呼叫，即 Java RMI（Java Remote Method Invocation）是 Java 程式語言里，一種用於實現遠端程序呼叫的應用程式編程介面。它使客戶機上執行的程式可以呼叫遠端伺服器上的物件。遠端方法呼叫特性使 Java 編程人員能夠在網路環境中分布操作。RMI 全部的宗旨就是儘可能簡化遠端介面物件的使用。

Java RMI 極大地依賴於介面。在需要建立一個遠端物件的時候，程式設計師通過傳遞一個介面來隱藏底層的實現細節。客戶端得到的遠端物件控制代碼正好與原生的根代碼連接，由後者負責透過網路通信。這樣一來，程式設計師只需關心如何通過自己的介面控制代碼傳送訊息。

介面的兩種常見實現方式是：最初使用 JRMP（Java Remote Message Protocol，Java 遠端訊息交換協定）實現；此外還可以用與 CORBA 相容的方法實現。RMI 一般指的是編程介面，也有時候同時包括 JRMP 和 API（應用程式編程介面），而 RMI-IIOP 則一般指 RMI 介面接管絕大部分的功能，以支援 CORBA 的實現。

最初的 RMI API 設計為通用地支援不同形式的介面實現。後來，CORBA 增加了傳值（pass by value）功能，以實現 RMI 介面。然而 RMI-IIOP 和 JRMP 實現的介面並不完全一致。

所使用 Java 包的名字是 `java.rmi`。



參見


* 序列化



外部連結


* Java RMI on Sun Developer Network （頁面存檔備份，存於網際網路檔案館）
Servlet（Server Applet），全稱 Java Servlet。是用 Java 編寫的伺服器端程式。其主要功能在於互動式地瀏覽和修改資料，生成動態 Web 內容。狹義的 Servlet 是指 Java 語言實現的一個介面，廣義的 Servlet 是指任何實現了這個 Servlet 介面的類別，一般情況下，人們將 Servlet 理解為後者。

Servlet 執行於支援 Java 的應用伺服器中。從實現上講，Servlet 可以回應任何類別型的請求，但絕大多數情況下 Servlet 只用來擴充基於 HTTP 協定的 Web 伺服器。

最早支援 Servlet 標準的是 JavaSoft 的 Java Web Server。此後，一些其它的基於 Java 的 Web 伺服器開始支援標準的 Servlet。



歷史



工作模式


* 客戶端傳送請求至伺服器

* 伺服器啟動並呼叫 Servlet，Servlet 根據客戶端請求生成回應內容並將其傳給伺服器

* 伺服器將回應返回客戶端

* 其他



通用 Servlet

一般來說，通用 Servlet 由 javax.servlet.GenericServlet 實作 Servlet 介面。程式設計人員可以通過使用或繼承這個類別來實現通用 Servlet 應用。

HttpServlet

javax.servlet.http.HttpServlet 實現了專門用於回應 HTTP 請求的 Servlet，提供了回應對應 HTTP 標準請求的 doGet ()、doPost () 等方法。



生命周期

當 servlet 被部署在應用伺服器中（應用伺服器中用於管理 Java 組件的部分被抽象成為容器）以後，由容器控制 servlet 的生命周期。除非特殊指定，否則在容器啟動的時候，servlet 是不會被載入的，servlet 只會在第一次請求的時候被載入和實例化。servlet 一旦被載入，一般不會從容器中刪除，直至應用伺服器關閉或重新啟動。但當容器做記憶體回收動作時，servlet 有可能被刪除。也正是因為這個原因，第一次存取 servlet 所用的時間要大大多於以後存取所用的時間。

servlet 在伺服器的執行生命周期為，在第一次請求（或其實體被記憶體垃圾回收後再被存取）時被載入並執行一次初始化方法，跟著執行正式執行方法，之後會被常駐並每次被請求時直接執行正式執行方法，直到伺服器關閉或被清理時執行一次銷毀方法後實體銷毀。



與 JSP 的關係

Java 伺服器頁面（JSP）是 HttpServlet 的擴充。由於 HttpServlet 大多是用來回應 HTTP 請求，並返回 Web 頁面（例如 HTML、XML），所以不可避免地，在編寫 servlet 時會涉及大量的 HTML 內容，這給 servlet 的書寫效率和可讀性帶來很大障礙，JSP 便是在這個基礎上產生的。其功能是使用 HTML 的書寫格式，在適當的地方加入 Java 代碼片段，將程式設計師從複雜的 HTML 中解放出來，更專注於 servlet 本身的內容。

JSP 在首次被存取的時候被應用伺服器轉換為 servlet，在以後的執行中，容器直接呼叫這個 servlet，而不再存取 JSP 頁面。JSP 的實質仍然是 servlet。



參見


* Java、JSP、J2EE

* Struts

* HTTP



參考文獻



外部連結


* JSR 369 （頁面存檔備份，存於網際網路檔案館） - Java servlet 4.0 documentation

* JSR 340 （頁面存檔備份，存於網際網路檔案館） - Java servlet 3.1 documentation

* JSR 315 （頁面存檔備份，存於網際網路檔案館） - Java servlet 3.0 documentation

* JSR 154 （頁面存檔備份，存於網際網路檔案館） - Java servlet 2.4 documentation

* JSR 53 （頁面存檔備份，存於網際網路檔案館） - Java servlet 2.3 documentation
Java 位元組碼（英語：Java bytecode）是 Java 虛擬機器執行的一種指令格式。大多數操作碼都是一個位元組長，而有些操作需要參數，導致了有一些多位元組的操作碼。而且並不是所有可能的 256 個操作碼都被使用；其中有 51 個操作碼被保留做將來使用。除此之外，原始 Java 平台開發商，昇陽微系統，額外保留了 3 個代碼永久不使用。



與 Java 的關係

一個 Java 程式設計師並不需要理解所有的 Java 位元組碼。但是，就像 IBM developerWorks 周刊建議的那樣：「理解位元組碼以及理解 Java 編譯器如何生成 Java 位元組碼與學習組譯知識對於 C/C++ 程式設計師有一樣的意義。」



指令

每一個位元組，有 256 個可能的代碼值（28=256），因此一個位元組的操作碼最多可能有 256 種不同的操作。其中，0x00、0xFE、0xCA、0xFF 被指定保留。例如 0xCA 作為一個 Java 除錯器的中斷指令而從未被語言使用。相似地，0xFE 和 0xFF 也未被語言使用。

指令可以基本分為以下幾類：


* 儲存指令 （例如：aload\_0, istore）

* 算術與邏輯指令 （例如: ladd, fcmpl）

* 類型轉換指令 （例如：i2b, d2i）

* 物件建立與操作指令 （例如：new, putfield）

* 堆疊操作指令 （例如：swap, dup2）

* 控制轉移指令 （例如：ifeq, goto）

* 方法呼叫與返回指令 （例如：invokespecial, areturn)

除此之外，還有一些更特殊的指令，作為異常丟擲或同步等作用。

大多數的指令有字首和（或）字尾來表明其運算元的類型。如下表

例如，"iadd" 指令將兩個整數相加；而 "dadd" 指令將兩個 double 浮點數相加。 此外，"const"、 "load"、 "store" 等命令還會使用 "\_n" 字尾，其中 "load" 和 "store" 命令中的 _n_ 可以為 0 到 3 之間的整數；而 "const" 命令中的 n 由類型指定。
"const" 指令把一個指定類型的值放入堆疊。例如 "iconst\_5" 指令將一個整數 5 放入堆疊；而 "dconst\_1" 將一個雙精度浮點數 1 放入堆疊。
此外還有 "aconst\_null" 指令，放入一個 null 進堆疊。而對於 "load" "store" 指令中的 n，指定了變數表中的儲存位置。"aload\_0" 指令把在變數 0 中的物件（通常是 "this" 物件）放入堆疊，"istore\_1" 指令把棧頂的一個整數放入變數 1. 對於更高的變數，字尾將被去除，而這條指令將需要運算元。



計算模型

Java 位元組碼的計算模型是堆疊導向結構電腦的。例如，一個 x86 處理器的組譯代碼如下

這段代碼將兩個數值相加，並存入另一個位址。相似的反組譯位元組碼如下

在這裡，需要相加的兩個運算元被放入堆疊，而相加操作就在棧中進行，其結果也被放入堆疊。儲存指令之後把棧頂的資料放入一個變數位址。在每條指令前面的數字僅僅是表示這條指令到方法開始處的偏移值。這種堆疊結構也可以推廣到物件導向模型上。例如，有一個 "getName" 方法如下



例子

考慮如下 Java 代碼

假設上述代碼位於一個函式中，Java 編譯器可能將代碼翻譯成下述的 Java 位元組碼。



基於 Java 位元組碼的語言

最常用的基於 Java 位元組碼的語言就是開發出 Java 位元組碼的 Java 語言。剛開始，只存在一個由昇陽微系統開發的一個編譯器 javac。而現在 Java 位元組碼規範已經可以得到，因此，第三方公司亦開發出支援 Java 位元組碼的編譯器。例如：


* Jikes，編譯 Java 原始碼到 Java 位元組碼（由 IBM 開發，用 C++ 實現）

* Espresso，編譯 Java 原始碼到 Java 位元組碼（僅支援 Java 1.0）

* GCJ，GNU Compiler for Java，編譯 Java 代碼到 Java 位元組碼；亦可以編譯到機器碼。作為 GNU Compiler Collection (GCC) 的一部分提供。

有一些專案提供 Java 組譯器以便於直接用 Java 位元組碼進行開發。主要的 Java 組譯器如下：


* Jasmin，讀取 Java 類別的文字描述；用一種簡單的使用 Java 虛擬機器指令的類組譯語法，輸出 Java 類別檔案

* Jamaica， 一種為 Java 虛擬機器編寫的宏組合語言。其中，類與介面由 Java 語法定義，而其中的方法卻由 Java 位元組碼定義。

還有其他的一些編譯器，對於其他語言生成 Java 位元組碼，使其可以執行在 Java 虛擬機器之上。


* ColdFusion

* JRuby 和 Jython， 兩種基於 Ruby 和 Python 的手稿語言

* Groovy, 一種基於 Java 的手稿語言

* Scala, 一種類型安全的通用程式語言，支援物件導向程式設計和函式語言程式設計

* JGNAT 和 AppleMagic, 編譯 Ada 語言到 Java 位元組碼

* Clojure, 一種函數式的通用程式語言，提供優秀的並行性。是一種 LISP 方言

* MIDletPascal

* JavaFX Script 由昇陽微系統公司開發的一種手稿語言，執行於 Java 虛擬機器之上



執行

當前已經有很多種 Java 虛擬機器產品，包括了自由軟體和商業軟體。
如果在 Java 虛擬機器之中執行 Java 位元組碼並不理想，則可以使用一些工具例如 GNU Compiler for Java 將 Java 代碼或 Java 位元組碼編譯成機器碼並由硬體直接執行。
而有一些處理器可以直接執行 Java 位元組碼，這種處理器名為 Java 處理器。



對動態語言的支援

Java 虛擬機器對動態型別語言提供了一定的支援。但絕大多數的 Java 虛擬機器指令集是基於靜態型別語言的。在靜態型別機制下，方法呼叫中的類型分析都是在編譯時執行的，而且缺乏一種機制在執行時確定一個類型已經確定相應的方法。

JSR292 中，在 Java 虛擬機器層次增加了一種支援動態型別的指令 `invokedynamic`，以支援在動態型別檢測中的方法呼叫。 達文西機器則是一種支援這種動態型別呼叫的虛擬機器。 而所有支援 JSE 7 的 Java 虛擬機器都應支援 invokedynamic 操作碼。



參考文獻
Java 註解又稱 Java 標註，是 Java 語言 5.0 版本開始支援加入原始碼的特殊語法元資料。

Java 語言中的類、方法、變數、參數和包等都可以被標註。和 Javadoc 不同，Java 標註可以通過反射取得標註內容。在編譯器生成類檔案時，標註可以被嵌入到位元組碼中。Java 虛擬機器可以保留標註內容，在執行時可以取得到標註內容。
當然它也支援自訂 Java 標註。



歷史

Java 平台有許多特別的註解，例如 transient 修飾詞，`@deprecated` javadoc 標籤。2002 年，文案 JSR-175 提出了通用需求的註解（或者說元註解）手段，並在 2004 年 9 月收到許多人的讚賞。從 JDK 1.5 開始，java 開始支援註解。Annotation Processing tool （或者說 apt tool） 提供了一個補充性的編譯時註解操作的介面。文件 JSR-269 將它規格化，在 JDK 1.6 寫入編譯器 javac 中。



內建的註解

Java 定義了一套註解，共有 7 個，3 個在 java.lang 中，剩下 4 個在 java.lang.annotation 中

作用在代碼的註解是


* @Override - 檢查該方法是否是重寫方法。如果發現其父類別，或者是參照的介面中並沒有該方法時，會報編譯錯誤。

* @Deprecated - 標記過時方法。如果使用該方法，會報編譯警告。

* @SuppressWarnings - 指示編譯器去忽略註解中聲明的警告。

作用在其他註解的註解（或者說 元註解）是:


* @Retention - 標識這個註解怎麼儲存，是只在代碼中，還是編入 class 檔案中，或者是在執行時可以通過反射存取。

* @Documented - 標記這些註解是否包含在使用者文件中。

* @Target - 標記這個註解應該是哪種 Java 成員。

* @Inherited - 標記這個註解是繼承於哪個註解類（預設下，註解並沒有繼承於任何子類）

從 Java 7 開始，額外添加了 3 個註解:


* @SafeVarargs - Java 7 開始支援，忽略任何使用參數為泛型變數的方法或建構函式呼叫產生的警告。

* @FunctionalInterface - Java 8 開始支援，標識一個匿名函式或函數式介面。

* @Repeatable - Java 8 開始支援，標識某註解可以在同一個聲明上使用多次。



實例

標註可以包含一個關鍵字和值的對所構成的列表：

標註聲明中可以用標註說明使用方式、時間和物件：

編譯器保留一組標註用於特定語法目的 (包括 @Deprecated, @Override 和 @SuppressWarnings 等)。

標註通常用於軟體框架為使用者定義的類和方法提供參照外部資源的情形，如 XML 設定檔、事務環境等。以下是一個標註過的 EJB 3.0 的類：

以上代碼中標註不執行任何特定行為，而是為在執行時，EJB 容器獲得足夠的資訊，生成物件到關聯式資料庫的對映。



參考參照
javac 是收錄於 JDK 中的 Java 語言編譯器。該工具可以將字尾名為.java 的原始檔編譯為字尾名為.class 的可以執行於 Java 虛擬機器的位元組碼。



使用方法

若開發者使用 IDE 編寫的源程式（副檔名為.java）必須遵從於「The Java Language Specification」，可手工編譯或 IDE 編譯。執行 javac 的實質便是命令列的呼叫：

　
: javac hello.java

即可生成對應的.class 檔案。這種檔案遵從「The Java Virtual Machine Specification」。

需要注意的是，Java 語言規範要求每個公共類所在的原始碼檔案的檔名與其類名相同，除非這個類是一個巢狀類，而 class 檔案所包含的類必須和 class 檔案的檔名相同，包括巢狀類。javac 編譯之後的 class 檔名會被自動命名為其中所包含的類的名字。



javac 的命令列參數

```
   javac [可按任意次序排列的options] [一个或多个要编译的sourcefiles] [一个或多个对源文件名进行列表的@files] 
```

javac 的具體說明文件見：



參見


* Java compiler

* Java

* Java 平臺

* OpenJDK



參考文獻



外部連結


* The Compiler Group （頁面存檔備份，存於網際網路檔案館）

* JSR 199 （頁面存檔備份，存於網際網路檔案館） Java Compiler API Java Specification Request for invoking the Java compiler from a Java program
Javadoc（最初是 JavaDoc）是由 Sun Microsystems 為 Java 語言（現在由甲骨文公司擁有）創建的文檔生成器，用於從 Java 原始碼生成 HTML 格式的 API 文檔，HTML 格式用於增加將相關文檔連結在一起的便利性。

Javadoc 使用的「doc comments」格式 是記錄 Java 類的事實上的行業標準。一些 IDE，如 IntelliJ IDEA、NetBeans 和 Eclipse，可以自動生成 Javadoc HTML。許多文件編輯器幫助用戶生成 Javadoc 原始碼並使用 Javadoc 信息作為程式設計師的內部引用。

Javadoc 還提供了用於創建 doclet 和 taglet 的 API，允許用戶分析 Java 應用程式的結構，這就是 JDiff 如何生成兩個 API 版本之間發生變化的報告。

Javadoc 不影響 Java 中的性能，因為在編譯時會刪除所有注釋。編寫注釋和 Javadoc 是為了更好地理解代碼，從而更好地維護代碼。



歷史

Javadoc 是早期的 Java 語言文檔生成器。在使用文檔生成器之前，習慣上由專業的技術編寫者編輯文檔，他們通常只編寫軟體的獨立文檔，但要使這些文檔與軟體本身保持同步要困難得多。

自第一個版本以來，Java 一直使用 Javadoc，並且通常在 Java 開發工具包的每個新版本上都會更新。



技術架構

Javadoc 注釋結構

通過標準多行注釋標記 `/*` and `*/` 從代碼中引發 Javadoc 注釋。起始標記（稱為開始 - 注釋分隔符）具有額外的星號，如 `/` 中所示。

1. 第一段是對所記錄方法的描述。
2. 在描述之後是不同數量的描述性標籤，表示：
  1. 方法的參數（`@param`）
  2. 方法返回的內容（`@return`）
  3. 方法可能拋出的任何異常（`@exception`）
  4. 其他不太常見的標籤，如 `@see` （「另見」標籤）

Javadoc 概覽

編寫文檔注釋的基本結構是將它們嵌入到 `/.` 中。Javadoc 寫在項目旁邊，沒有任何分隔換行符。請注意，任何 import 語句必須在類聲明之前。類聲明通常包括：

對於方法，有如（1）所示的簡潔的一行描述來解釋項目的作用；接下來是（2）所示的更長的描述，該描述可以跨越多個段落並且是可有可無的；最後，第（3）部分列出接受的輸入參數和方法的返回值。所有的 Javadoc 都被視為 HTML，因此多個段落部分由 "`<p>`" 段落符號分隔。

與方法類似的注釋也可以用於變量的注釋，但省略了第（3）部分，這裡只包含了對變量的簡短描述：

請注意，不建議在單個文檔注釋中定義多個變量。這是因為 Javadoc 讀取每個變量並將它們分別放置到生成的 HTML 頁面，其中包含為所有欄位複製的相同文檔注釋。

相反，建議分別聲明和注釋每個變量：

Javadoc 標籤表

一部分可用的 Javadoc 標籤列在下表中：

示例

下面是注釋一個方法的 Javadoc 示例。



參見


* 文檔生成器的比較

* .Net 的 XML 文檔注釋



參考文獻

*
Java 事務 API（Java Transaction API，簡稱 JTA ） 是一個 Java 企業版 的應用程式接口，在 Java 環境中，允許完成跨越多個 XA 資源的分布式事務。JTA 是在 Java 社區過程下制定的規範，編號 JSR 907。JTA 提供：


* 劃分事務邊界

* X/Open XA API 允許資源參與到事務中。



X/Open XA 體系結構

在 X/Open XA 的體系結構中，事務管理器或事務處理監控器 （TP monitor）協調 資源跨越多個資源，如資料庫和消息隊列的事務。每一個資源都有自己的管理器。資源管理器通常擁有自己的用於操縱資源的 API，例如關係型資料庫使用的 JDBC。 此外，資源適配器允許事務管理器協調該資源管理器和其他資源管理器之間的分布式事務。最後，與事務管理器通訊的應用程式開始，提交，或回滾事務。應用程式同樣需要使用資源自己的 API 與不同的資源通訊，修改資源。



JTA 對 X/Open XA 體系結構的實現

JTA API 包括兩個 Java 包下的類：


* `javax.transaction`

* `javax.transaction.xa`

JTA 是以 X/Open XA 體系結構為基礎設計的，但他定義了兩種不同的事務邊界劃分的 API。應用伺服器，如 EJB 伺服器，與應用組件區別對待。JTA 提供了一個接口，`javax.transaction.TransactionManager`，這是供應用伺服器自己進行開始，提交或回滾事務使用悳，同時還提供了另外一個接口 `javax.transaction.UserTransaction`，這是供一般客戶代碼，如 Java Servlet 或是 EJB 管理事務使用的。

為了通過事務管理器管理，JTA 架構要求每一個資源管理器必須實現 `javax.transaction.xa.XAResource` 接口，如前面所述，每一個資源會有一個自己的特定的 API，例如：


* 關係型資料庫使用 JDBC

* 消息服務使用 JMS

* 一般的企業信息系統（EIS）的資源使用 J2EE 連接器架構。



Java 事務 API

Java 事務 API 由三個部分組成：


* UserTransaction - 高層的應用事務劃分接口，供客戶程序使用

* TransactionManager - 高層的事務管理器接口，供應用伺服器使用

* XAResource，X/Open XA 協議的標準 Java 映射，供事務性資源管理器使用。

UserTransaction 接口

javax.transaction.UserTransaction 接口給應用程式提供了編程控制事務邊界的能力。該接口可以供 Java 客戶端程序或 EJB 使用。

UserTransaction 的 begin 方法開始一個全局事務，並將該事務與調用執行緒關聯。事務到執行緒的管理是由事務管理器完成的，對應用程式透明的。

對嵌套事務的支持不是必須的。如果調用執行緒的上下文已經與事務關聯，並且事務管理器的實現並不支持嵌套的事務，UserTransaction 的 begin 方法調用時將拋出 NotSupportedException。

底層的事務管理器的實現負責提供不同應用程式間事務上下文的傳播，事務管理器位於客戶端和伺服器計算機上。
傳播的事務上下文的格式由客戶端和伺服器計算機協商確定。例如，如果事務管理器是 JTS 規範的實現，將使用 CORBA OTS 1.1 規範中描述的事務上下文傳播格式。事務上下文的傳播對於應用程式來說是透明的。



EJB 伺服器對 UserTransaction 的支持

，EJB 伺服器需要支持 UserTransaction 接口，以供 Bean 管理事務的 EJB 使用。通過 EJBContext 的 getUserTransaction 方法，EJB 構件可以獲取到 UserTransaction 接口。這樣，EJB 應用程式不需要與事務管理器直接交互，就可以劃分事務邊界。取而代之的是 EJB 依賴於 EJB 伺服器提供 EJB 規範中定義的所有事務處理。（EJB 伺服器和事務管理器之間的交互對於應用是透明。實現事務管理的責任是在 EJB 容器和服務的提供商。）

下面的例子說明了 Bean 管理事務的會話 Bean 如何使用 UserTransaction：



從 JNDI 獲取 UserTransaction

如果環境中安裝了 JTA 的實現，應可以從 `java:comp/UserTransaction` 獲取 UserTransaction。



Java 標準版對 UserTransaction 的支持

要使用 JTA 或 UserTransaction 提供的功能，應用伺服器並不是必需的。 現存在獨立的 JTA 實現，這樣，在普通的 Java 應用程式中都可以利用 JTA/XA 帶來的可靠性。特別是在與類似 Spring 工具一同使用的時候，這為開發可靠的 Java 應用程式提供了不同的範式。



開源的 JTA 實現

到 2010 年 4 月為止，JTA 的開源實現有：


* Bittronix Transaction Manager

* Atomikos Transactions Essentials （頁面存檔備份，存於網際網路檔案館）

* JBossTM （頁面存檔備份，存於網際網路檔案館） （以前稱作 Arjuna）

以上所有事務管理器可以在 J2SE 環境中使用。



參見


* Java 事務服務



參考文獻



外部連結


* JTA specifications （頁面存檔備份，存於網際網路檔案館）

* JSR 907

* Atomikos open source JTA implementation - for JTA in J2SE （頁面存檔備份，存於網際網路檔案館）
Java 事務服務（Java Transaction Service，簡稱 JTS）是構建事務管理器的規範，將事務管理器映射到對象管理組織 (OMG) 的基於 CORBA 體系架構的對象事務服務（OTS）上， 它使用 IIOP 在在多個 JTS 事務管理器之間傳播事務。



參見


* Java

* Java 事務 API

* 對象事務服務



延伸閱讀


* 參見 Sun 公司的 JTS 描述。
Java 的泛型是在 Java 程式語言中符合泛型編程範式的特性工具，於 2004 年在 J2SE 5.0 版本中被加入。泛型特性旨在擴展 Java 的類型系統，以允許「一種類型或方法對各種類型的對象進行操作的同時保障編譯時類型安全」。然而這一點並未完全實現，在 2016 年泛型特性被證明並不能在所有情況下保證編譯時類型安全。 

Java 集合框架支持泛型來指定存儲在集合實例中的對象的類型。

1998 年， 吉拉德・布拉查 (Gilad Bracha) 、 馬丁・奧德斯基 (Martin Odersky)、大衛・斯塔德邁爾 (David Stoutamire) 和菲利普・瓦德勒創建了 Generic Java，它是支持泛型類型的一個 Java 語言擴展。 Generic Java 通過添加通配符被包含到 Java 語言中。



層次結構和分類
Java 類別檔案是一個包含 Java 位元組碼的可由 Java 虛擬機器執行的檔案（副檔名為.class）。Java 類別檔案是由 Java 編譯器編譯包含 Java 類別的用 Java 語言編寫的原始檔（.java 檔案）後產生的。如果一個原始檔有多個 Java 類別，每個 Java 類別都會被編譯成一個單獨的 Java 類別檔案。Java 虛擬機器可用於許多系統平台，在一個系統平台上編譯產生的 Java 類別檔案可以由另一個系統平台上的 Java 虛擬機器上執行。這就使得 Java 應用程式可以跨平臺運行。



歷史

2006 年 12 月 11 日，有關各方根據 Java Specification Request (JSR) 202 對 Java 類別檔案格式進行了修改。



參考文獻
Java 編譯器是 Java 程式語言的編譯器。Java 編譯器最常見的生成檔案是包含 Java 位元組碼的 Java 類別檔案。Java 虛擬機器載入 Java 類別檔案，並解釋或即時編譯 Java 位元組碼為機器碼。

```
class secondmax {
     public static void main (String args[]) {
               int n,temp,fmax=0,smax=0;
               Scanner sc=new Scanner(System.in);
               System.out.println("Enter how many numbers will you enter:");
               n=sc.nextInt();
               for(int i=0; i<n; i++) {
                    temp=sc.nextInt();
                    if(i == 0) {
                       fmax=temp;
                    } else if(temp > fmax) {
                       fmax=temp;
                    }
               }
            
            System.out.println("First max: " + fmax);  
            System.out.println("Second max: " + smax);  
     }           
}
```



外部連結


* Sun's OpenJDK javac page （頁面存檔備份，存於網際網路檔案館）

* JSR 199 （頁面存檔備份，存於網際網路檔案館） Java Compiler API Java Specification Request for invoking the Java compiler from a Java program

* Stephan Diehl, "A Formal Introduction to the Compilation of Java" （頁面存檔備份，存於網際網路檔案館）, _Software - Practice and Experience_, Vol. 28(3), pages 297-327, March 1998.
Java 集合框架（Java collections framework）是一個包含一系列實作可重複使用集合的資料結構的類別和介面集合。雖然稱為「框架」，其使用方式卻像個函式庫。集合框架提供了定義各式各樣集合的介面和實作上述集合的類別。



與陣列的不同處

集合和陣列在兩者保持物件參考核可被視作為一個團體上有著功能上的相似處。集合和陣列其中一點不同的是，集合在宣告時不需要指定固定的容量。集合可以在新增或移除內容時自動地增加或縮減其容量。
另外，集合無法收納基本資料型態，像是整數（int）、長整數（long）或者雙精度浮點數（double）。取而代之的是，集合可以收納上述基本資料型態的包裹類別（Integer、Long、Double）。



歷史

集合介面在 JDK 1.2 先行版版本時納入，並包含少數簡單的資料結構類別，但當時並未包含完整的集合框架。
原本在 Java 典型集中物件的方法是使用陣列（array）、向量（Vector）或者雜湊表（Hashtable）類別來處理。但上述的類別並不容易擴展，而且並沒有一個標準的介面。
當時若想使用可重用集合資料結構，也是有數種第三方框架可供選擇。最廣為使用的例如道格・利亞的_集合包_（Collections package）的_集合包_

集合框架主要由約書亞・布洛克設計且開發，並於 JDK 1.2 中匯入。它重新使用了不少來自道格・利亞的集合包的概念和類別，並在最後使後者過時。 
道格・利亞後來投入發展並行性 Java 包，並在其使用了和集合框架有關的類別。而後來並行性工具在 JDK 5.0 以 JSR 166 匯入。



架構

在 Java，幾乎全部的集合都衍生自 java.util.Collection。集合介面定義了所有集合的基本部件。介面中定義了加入（add）和移除（remove）兩種方法來增加或移除該集合內的元素。另一個必要的方法例如轉成陣列（toArray），用於把該集合的所有轉換成基本陣列。最後，一個名為_含有_（contains）的方法用來檢查某元素是否在該集合內。集合這個介面是 java.lang.Iterable 的子介面，故此集合可被用於 For-each 函式的查詢目標。（Iterable 介面包含方法疊代器（iterator）來讓 For-each 函式使用）。所有的集合都具有一個疊代器來遍詢集合內的所有元素。另外，集合也是一個 Java 的泛型。任何集合皆須要寫成能接受任何類別。例如：集合 <字串>可以用來存放字串，而且在其中的所有元素提出來都被視作字串，而不需要另外轉型。使用時，角括號裡面填入該集合應該存放哪種類別。

三種集合

集合可分為三種：有序列表（ordered lists）、對映表（maps）和集（sets）。有序列表容許程式設計師依序地加入元素，並以同樣的順序取回元素，例如等候列表。在有序列表介面底下有兩個子介面，分別為列表（Lists）和佇列（Queue）。對映表使用索引來參考物件並取回其值。在對映表介面底下有一個子介面對映表（Map）。集是一種可供遍巡的無序集合，但當中不允許重複的物件存在。在其中有個子介面集（Set）。

列表介面

列表在集合框架下藉由 java.util.List 介面實作，其將列表定義為一種更靈活的陣列。元素有特定的順序，而且容許相同的元素存在。元素可被放置在特定的位置，也可以在列表中被搜尋。以下兩種舉例為實作了列表介面的具體物件:


* java.util.ArrayList: 其將列表實作為一種陣列。當操作其方法並填入類別時，該種類別會把元素存在某個所屬陣列當中。

* java.util.LinkedList: 這個類別將元素包裝成節點，而每個節點包含前一節點和後一節點的指標。這種列表藉由讀取上述的指標來在節點中巡查並操作元素。元素可以藉由操作指標來掛上和脫離節點，來簡單地實現新增或刪除。

堆疊類別

堆疊可由 java.util.Stack 建立。其提供方法來推入（push）或彈出（pop）當中的元素。堆疊會依循後進先出的原則來回傳元素。意即，最後推入的元素會最先彈出。java.util.Stack 是 Java 所提供的堆疊標準實作。其延伸了 java.util.Vector 並加入了 5 種新操作來讓向量可被看成堆疊。除提供了推入和彈出方法外，還提供了窺（Seek）方法來檢查最上方的元素、檢查堆疊是否空白的方法、還有尋找並檢查某元素離最上方有多遠的方法。當堆疊被建立時，當中不含任何元素。

佇列類別

java.util.Queue 定義了佇列資料結構，也就是將元素以其加入的順序來排序的集合。新加入的元素會放在對列的最末端，而提出物件時會先從最頂端開始提出。這實現了先進先出的模式。在這介面下有 java.util.LinkedList, java.util.ArrayDeque, 和 java.util.PriorityQueue。

集介面

Java 的 java.util.Set 定義了集。集不能包含任何重複的元素，另外集也沒有順序。也因為如此，在集內的元素無法以索引存取。在集底下實作了雜湊集（java.util.HashSet）、連結雜湊集（java.util.LinkedHashSet）和樹狀集（java.util.TreeSet）。雜湊集使用雜湊對映表（java.util.HashMap）來儲存元素和其雜湊值來防止重複。連結雜湊集藉由建立雙向連結列表來按照各個元素的加入順序進行聯繫，如此可以保持這個集的順序。樹狀集使用紅黑樹來確保沒有重複的元素。另外，如此的實作容許樹狀集能實作已排序集（java.util.SortedSet）。
跟一般的集所不同的是，已排序集會藉由元素的與之比較（compareTo）方法、或於已排序集建構式當中提供的函式，來對其中元素進行排序。如此可以輕鬆取得已排序集當中的第一和第末元素，或者由某最大和最小值為區間來取得子集。

已排序集還可藉由可導航集（java.util.NavigableSet）介面擴充。可導航集和已排序集很像，不過有著額外的新方法，像是地板（floor）、天花板（ceiling）、更低（lower）和更高（higher）。這些方法可以按照某參數來在可導航集尋找符合條件的元素。另外，可導航集也提供了一個疊代器，可用於遍詢其中的元素。

對映表介面

Java 的 java.util.Map 定義了對映表。對映表是一種以索引和元素掛鉤的簡單資料結構。如果在對映表內以雜湊值代表某元素的索引，則這個對映表實質上是一個集。如果以一個遞增號碼來做索引，則實質上為一個列表。在對映表底下實作了雜湊表（java.util.HashMap）、連結雜湊表（java.util.LinkedHashMap）、和樹狀表（java.util.TreeMap）。雜湊表會儲存索引值的雜湊值來做為比對並提出該索引連接的元素之用。連結雜湊表進一步拓展了上述架構，它增加了一個雙向連結串列來連結當中的元素，使其能儲存元素加入時的順序。樹狀表使用紅黑樹來比對索引值。

對映表介面藉由他的子介面，已排序對映表（java.util.SortedMap），得到進一步的拓展。已排序對映表會藉由索引的與之比較（compareTo）方法、或於已排序對映表建構式當中提供的函式，來對其中索引進行排序。如此可以輕鬆取得已排序對映表當中的第一和第末索引，或者由某最大和最小值為區間來取得索引與值來建立子對映表。



參見


* 容器



注釋



參考資料



外部連結
雅韋爾達（法語：Javerdat，法語發音：[ʒavɛʁda]；奧克語：Javerdac）是法國新亞奎丹大區上維埃納省的一個市鎮，位於該省西部，和夏朗德省接壤，屬於羅什舒阿爾區。



地理

雅韋爾達（45°57'15"N, 0°59'6"E）面積 25.52 平方千米，位於法國新亞奎丹大區上維埃納省，該省份為法國中西部省份，北起順時針與安德爾省、克勒茲省、科雷茲省、多爾多涅省、夏朗德省和維埃納省接壤。

與雅韋爾達接壤的市鎮（或舊市鎮、城區）包括：布里格伊、蒙特羅萊、錫約、蒙特羅勒塞納爾、格拉訥河畔奧拉杜爾、維埃納河畔聖布里斯。

雅韋爾達的時區為 UTC+01:00、UTC+02:00（夏令時）。



行政

雅韋爾達的郵政編碼為 87520，INSEE 市鎮編碼為 87078。



政治

雅韋爾達所屬的省級選區為聖瑞尼安縣。



交通

維埃納省省道 D9 線、D227 線、D228 線、D675 線和 D711 線經過境內。



人口

雅韋爾達於 2019 年 1 月 1 日時的人口數量為 695 人。



參見


* 上維埃納省市鎮列表



參考文獻
雅韋拉克和拉沙佩勒聖羅貝爾（法語：Javerlhac-et-la-Chapelle-Saint-Robert，法語發音：[ʒavɛʁlak e la ʃapɛl sɛ̃ ʁɔbɛʁ]；奧克語：Javerlhac e La Chapela Sent Robert）是法國多爾多涅省的一個市鎮，位於該省北部，屬於農特龍區。該市鎮於 1823 年由原市鎮雅韋拉克（Javerlhac）和拉沙佩勒聖羅貝爾（La Chapelle-Saint-Robert）合併而成。



地理

雅韋拉克和拉沙佩勒聖羅貝爾（45°34'11"N, 0°33'38"E）面積 29.25 平方千米，位於法國新亞奎丹大區多爾多涅省，該省份為法國西南部內陸省份，是法國本土面積第三大的省，大致對應佩里戈爾地區，北起順時針與夏朗德省、上維埃納省、科雷茲省、洛特省、洛特 - 加龍省、吉倫特省和濱海夏朗德省接壤。

與雅韋拉克和拉沙佩勒聖羅貝爾接壤的市鎮（或舊市鎮、城區）包括：曼扎克、蘇夫里尼亞克、勒布爾代、歐特費、呂薩和農特羅諾、瓦賴涅、泰雅、聖馬丹勒潘。

雅韋拉克和拉沙佩勒聖羅貝爾的時區為 UTC+01:00、UTC+02:00（夏令時）。



行政

雅韋拉克和拉沙佩勒聖羅貝爾的郵政編碼為 24300，INSEE 市鎮編碼為 24214。



政治

雅韋拉克和拉沙佩勒聖羅貝爾所屬的省級選區為農特龍綠色佩里戈爾縣。



人口

雅韋拉克和拉沙佩勒聖羅貝爾於 2019 年 1 月 1 日時的人口數量為 835 人。



參見


* 多爾多涅省市鎮列表



參考文獻