ticoAg/ChineseCorpus-Kaggle-fanti huggingface dataset:
延斯（Jens）之子，延斯為約翰（John）在丹麥與挪威的變體；此姓氏也是丹麥第一大姓氏
Karlsen
卡爾（Karl）之子
Johnsen
約翰（John）之子
Pettersen
佩特爾（Petter）之子，佩特爾為彼得（Peter）在挪威與瑞典的變體
Eriksen
艾利克(Erik)之子
源自古日耳曼語「山丘」
Haugen
挪威語「山丘」，常指住在山丘上的人
源自古諾爾斯語「有圍籬的牧地」
Johannessen
約翰內斯（Johannes）之子
Andreassen
安德烈亞斯（Andreas）之子
雅各布（Jacob）之子
Halvorsen
哈沃爾（Halvor）之子，源自古諾爾斯語「巖石守衛者」
以-sen 結尾的姓氏來源自父名。
波蘭常見姓氏前20名，2002年
源自古斯拉夫語「新的」
Kowalski
來自波蘭語「鐵匠」（Kowal）
Wi?niewski
維西尼耶夫斯基
來自波蘭語「酸櫻桃」（wi?nia）
Wójcik
來自波蘭語「村莊首領」（wójt），可能源自德語「總管」（vogt）或波蘭人名沃伊切赫（Wojciech）
Kowalczyk
波蘭語「鐵匠之子」，來自波蘭語「鐵匠」（Kowal）
Kamiński
來自波蘭語「石頭」（kamień），通常指「採石工人」或「住在石屋裡的人」
Lewandowski
萊萬多夫斯基
來自波蘭語「入球的人」（lewangoalski）
Zieliński
來自波蘭語「綠色」（zieleń）
Szymański
不詳，可能來自波蘭人名西蒙（Szymon），或波蘭北部城鎮席曼尼（Szymany）
Wo?niak
來自波蘭語「猶太會堂執事」或「官吏」（Wozny）
D?browski
東布羅夫斯基
來自波蘭語「橡樹林」（D?browa, D?brówka）
Koz?owski
科茲沃夫斯基
來自波蘭語「公山羊」（kozio?）
Jankowski
來自波蘭人名揚內克（Janek），此名為約翰內斯（Johannes）在西斯拉夫地區的縮寫變體
指「來自馬佐夫舍地區的」，馬佐夫舍（Mazowsze）又譯馬佐維亞（Mazovia），位於波蘭中部
Wojciechowski
沃伊切霍夫斯基
來自波蘭人名沃伊切赫（Wojciech），人名源自古西斯拉夫語「士兵（voji）的撫慰（tekha）」
Kwiatkowski
科維亞特科夫斯基
來自波蘭語「花」（kwiatek）
Krawczyk
波蘭語「裁縫之子」，來自波蘭語「裁縫」（krawiec）
Kaczmarek
來自波蘭語「旅店」（karczma）
Piotrowski
皮奧特羅夫斯基
來自波蘭人名皮奧特（Piotr），即彼得（Peter）之變體
Grabowski
格拉博夫斯基
來自波蘭語「掘墓者」（grabarz）或「櫪樹」（grab）
西班牙常見姓氏前20名
García 一名可能起源自伊比利亞或巴斯克語，曾在中世紀早期的西班牙十分常見。像許多以-ez 結尾的姓一樣，García 源自父名
Fernández
費爾南多（Fernando）之子
貢薩洛（Gonzalo）之子
Rodríguez
羅德里戈（Rodrigo）之子
諾普（Lope）之子
馬丁（Martin）之子
Sánchez
桑丘（Sancho）之子
佩德羅（Pedro）之子
戈麥斯（Gomes）、戈莫（Gomo）或Gomaro 之子
魯伊（Rui，Rodrigo 的變體）之子
Hernández
埃爾南多（Hernando，Fernando 的變體）之子
Jiménez
希門諾（Jimeno）之子
迪亞格（Diago）或迭戈（Diego）之子
álvarez
阿爾瓦羅（Alvaro）之子
有著棕黑色頭發的
穆尼奧（Munio）之子
古鐵（Gutier）、古鐵雷（Gutierre）或Gualtierre 之子
瑞典常見姓氏前20名
2010年人口
2009年人口
Johansson
Karlsson
Eriksson
Larsson
Olsson
Persson
Svensson
Gustafsson
Pettersson
Jonsson
Bengtsson
J?nsson
Jakobsson
Magnusson
Olofsson
瑞典最常見的姓名來源于父名，例如Karl 的兒子姓氏作Karlsson（Karl 之子）；女兒的姓氏作Karlsdotter（Karl 之女）。從19世紀開始，這些姓氏開始向美國或英國那樣向下沿用，女性也可能使用“某某的兒子”之類的姓氏。對比于愛爾蘭的“mac-姓氏”。雖然這些使用“某某兒子”的性質在瑞典很普遍，很多的瑞典人還有其他例如Lindberg（linden/lime mountain）, Sj?man（水手）或Nyman（新人，Newman）這類的姓氏。瑞典的貴族通常有一個關于他們族徽（coat of arms）的姓氏或一個非瑞典的名字，但不一定有。
芬蘭常見姓氏前10名：
2016年9月12日人口
Korhonen
Virtanen
M?kinen
Nieminen
M?kel?
H?m?l?inen
Heikkinen
Koskinen
J?rvinen
英格蘭常見姓氏前20名
Thompson
北愛爾蘭常見姓氏前20名
Doherty
McLaughlin
Murray
蘇格蘭常見姓氏前20名
Robertson
Morrison
威爾士常見姓氏前20名
Griffiths
美國常見姓氏前20名
美國姓氏的分布反映了美國移民到這個國家的歷史。很多從非英語國家的移民采用英文姓氏，最好的例子是最常見的瑞典姓氏Johanson 后來變成了Johnson，德文姓氏Müller 變成了Miller。這也就是為什么這些姓氏在美國比在英國常見。
漢族，是中國大陸、港澳地區和臺澎金馬等地的一個主體民族，屬於東亞人種，在世界其他地區亦有分佈。緬甸的果敢族、越南的艾族和明鄉人，也屬於漢族的分支。漢族總人口約14億，佔世界人口約18%，以人數而言，目前是世界第一大單一族群，其總和生育率低於世代更替水平。
古代漢族自稱中國人、漢人、漢、唐人、華人、秦人，漢族通常被認為是上古傳說炎帝與黃帝兩個部落的后裔，故今又稱炎黃子孫。其他民族對漢族的稱呼有Han Chinese、Китайцы（語源為“契丹人”）、漢族（??）、漢民族等等。
漢族作為一個族群，直到漢武帝時代才有了“漢人”一名。“漢人”得名於漢朝，最初本意是指“漢朝之人”，而漢朝則得名於漢水。但在漢朝早期，因為秦朝的強大影響，匈奴也將漢朝時的中國漢族人稱作“秦人”，漢朝及匈奴將當時中國漢族人統稱為「秦人」或「漢人」，「漢」作為族稱最終為中國漢族人所接受。
“漢”作為漢族的族稱應不晚於南朝初期。唐朝在與周邊國家或地區的交往中自稱為“漢”、“漢國”，邊界稱為“漢界”，其人民稱為“漢人”、「漢民」，也可稱為「華人」。到近代19世紀末以後，由於“民族”一詞引入，“漢族”便取代“漢人”成為這一族群的正式名稱。
“炎黃子孫”及“炎黃裔胄”皆曾被中國國民黨及中國共產黨用來做為“漢族”的代稱或另稱。
學者杜家驥說，中國古代沒有現代稱謂“民族”而加“族”的概念，但不等于當時沒有漢族這一民族，用于民族之間區別的“滿”、“蒙”、“漢”，都是古代的民族概念，故現代學界尤其史學界稱歷史上的漢人為漢族。但明代筆記《閑中今古錄摘抄》中出現了「胡族」一詞，作為與「中華人」相對立的詞語使用。
古代漢族稱呼漢族主要聚居地區為「九州」、「神州」、「中國」、「中土」、「中華」、「中夏」、「漢地」等，同時認為非漢民族主要聚居地區在九州之外，而非漢民族稱呼漢族主要聚居地區為「漢地」、「賽里斯」、「摩訶支那」。
中國上古史學專家許倬雲認為，在魏晉南北朝時“華夏人”開始出現“漢人”自我稱謂，而在此之前，“漢人”、“漢民”多為周邊國家對漢朝國民的稱呼。
由於秦朝聲威遠震，也影響到其他國家對漢朝的稱呼，如古代的印度、希臘與羅馬等國仍稱其為、、、等等。到唐朝後，由於唐朝對周邊的強大影響力，漢民族也被外國人稱為“唐人”。《明實錄》中多有以「唐人」稱呼當時中國漢族人的語句，而有些明代文獻則稱其為「中國人」。
漢族起源有兩種說法，第一種說法認為人類是在各地分別演化而成，漢族為古代北京猿人等的直系後裔。第二種說認為，所有現代人類皆起源於非洲。現代基因研究，以起源非洲的說法為主流。
美國學者許靖華認為，漢藏人原居於葉尼塞河流域，在公元前六千多年，因氣候變冷而南下，擊敗原居於中國東南方的苗族與傜族先民，進居中國中原地區，因此形成了黃帝擊敗蚩尤傳說。由蒙古草原進居中國的漢藏人為黃帝後裔，而炎帝與蚩尤代表了原居中國東南的苗族與傜族部落。然而有學者指出“蚩尤是苗族祖先”的說法起源自清末的法國漢學家拉克伯里，此漢學家提出“華夏起源于巴比倫，后遷入中國，擊敗當地土著首領蚩尤，蚩尤屬下余眾或淪為奴隸，或逃到南方成為后來的苗族”，他的學說被諸多日本學者吸納，接得影響當時留日的中國學者（如梁啟超、章太炎），后來此觀點正式被中國官方組織編寫的《苗族簡史》收納于其中，自此苗族歷史被近現代的蚩尤思潮而人為歷史重構完成。
中華人民共和國學者禇嘉祐於1998年發表論文，分析包括中國漢族在內的28個東亞族群的染色體序列，認為東亞族群皆起源於非洲。金力團隊於2001年發表〈Y染色體遺傳學證據支持現代中國人起源於非洲〉論文，支持粒線體夏娃理論，認為中國漢族與其他人類一樣起源自非洲，後遷移至亞洲。
錢亞屏和宿兵等團隊進行基因研究指出，原始人類由非洲，經自東亞南部，於4萬至2萬年前間北上至黃河中上游，成為漢藏人先祖。
儘管西方學術界近年已開始棄用舊有的人種分類法，但在亞洲，三大人種學說似乎仍是主流，並偏向支持多地起源說，例如中南大學在2019年和2020年就有兩項研究表明蒙古人種在遺傳特徵上有其明顯的獨特性，並認為其起源與非洲起源說有所衝突
Y染色體的非同源區段完全來自于父親，而復旦大學在2011年對22個苗瑤群體和23個孟高棉群體總共1652個無關男性個體表的外周靜脈血或是指尖血以及對漢藏群體Y染色體對比發現在O3a3C1-M117這一特有基因型的網絡結構圖中漢藏群體位于節點的根部。這對漢族祖先由中南半島遷徙到北方提供了重大支持。而根據李輝的研究大約百分之60的中國男人屬于5個超級父親的后代，而這五個人生活的時間大約在5000—7000年左右。也就是說大部分漢族人擁有共同的一群男性祖先。而現代漢語所親近的語族在四川北部的山區中被發現，白馬人和羌人的語言和漢語屬于近親。
復旦大學文波博士的研究團隊於2004年的研究，發現漢族父系基因南北一致。漢族先祖原居於黃河中上遊地區，於西元前2000年左右向南方移居，使南方漢族與北方漢族的父系基因一致，而南方漢族的母系基因，則與南方原住民接近。
2011年的Y-DNA觀察發現，在舊石器時代從歐亞西部流入的dna對今中國各民族有6.79%貢獻，例如河南漢人的8.9%有R1a1，6.7%有R2a, 2.2%有G2a；新疆維吾爾族的29.2%有R1a1，4%有R2a，6%有G2a；四川羌族的3.7%有R2a；內蒙古蒙古族的9.1%有R1a1，4.5%有G2a。而起源自南方流入的O、D、C、N等Y-DNA則為今中國各民族貢獻92.87%。
在語言學研究中，自1823年德國學者朱利斯·克拉普羅特提出漢語族與藏語族等皆由原始漢藏語分支的說法後，形成漢藏語系的學說，此學說認為漢族與藏族、羌族等有共同先祖。漢藏語系的起源，學界有中國黃河流域起源說，與中國西南起源說兩種主流假設。金力團隊於2019年發表論文，以遺傳學與貝葉氏統計方法研究，認為在西元前6000年在中國黃河流域，原始漢藏語分支出原始漢語與原始藏緬語，成為漢語族開端，支持了中國黃河流域起源假說。
可以推測大概在6000年前漢族人的父系祖先來到四川北部平武，北川一帶，在這里分化出了白馬人，古羌人，古藏人，其中的一支繼續向北（馬家窯遺址公元前3800-2800）對應于部落時代的炎黃部落傳說。
漢族在先秦稱作“夏”或“華夏”，其形成的時間，有著多種觀點。
* 歷史學家傅斯年認為炎黃部落與東夷部落融合而形成華夏，這就是著名的“夷夏東西說”。
* 學者王東平的《中華文明起源和民族問題的論辯》則提出了三個觀點。
# 華夏族是由周朝的夏人、商人和周人所融合形成。在黃帝部落的後裔建立夏朝後，夏部落形成為夏族，再經夏、商、周三代一千六百多年的發展，與中原黃河流域的戎、狄、夷、蠻部落融合而形成華夏，其標誌是周禮與華服
# 華夏族是形成於春秋戰國時期。通過春秋時期的族群融合過程出現了一個融合夏、商、周、楚、越和蠻夷戎狄的新生民族——華夏族。
# 華夏族早在傳說中的五帝時代就已形成，夏朝的建立便是其形成的標志，同時以其“冕服採章曰華”稱作華夏，而後由於夏族的分裂而稱作“諸夏”或“諸華”。
華夏祖先黃帝與炎帝的傳世文獻記載最早可追溯至中國春秋戰國時期，據《國語》、《史記》，顓頊、舜、有虞氏、夏、商、周、共工、四嶽、杞、鄶、申、呂、齊、許等部落諸侯皆為黃帝與炎帝的後代；齊威王亦以黃帝為祖先。據現代考古材料和碳-14測定的結果，生活於五千年前的黃帝與仰韶文化下限一致。其活動範圍也相差無幾，皆以現河南西部、關中地區和山西南部為主要中心。仰韶文化後期的西安半坡等遺址中出土的器物也與史籍關於黃帝造物的故事相符。
據《史記正義》引用《帝王世紀》認為炎帝之母任姒為有蟜氏女，後在華陽遊玩時感生炎帝，其形象為牛首人身。《國語·晉語四》則記載黃帝與炎帝是同父同母的兄弟，因兩人分別生於姬水和姜水，故而異德，所以其姓也不同，黃帝為姬姓，炎帝為姜姓。而《繹史》所記載的又稍有不同，該書引用《新史》認為“炎黃二帝是同母異父的兄弟”，炎黃所處的時代正是母系社會末期，其時，母權已衰，新的父權將取而代之。
由於當時社會生產水平的提升，炎帝氏族自原來的氏族分出後遷居於姜水。姜水位於現在的陝西，發源於岐山，是渭水的一條支流。渭水兩岸封地豐腴，有“八百里秦川”之稱，炎帝氏族便在此發展為一個強盛的部落。之後由於某種原因，有一部落成員向東遷徙到中原地區，與早已遷徙與此的黃帝部落結盟。黃帝氏族此時已是久居中原，並向四方擴展形成黃帝部落。其活動範圍東至山東泰山，西抵甘肅，南達湖南岳陽，北及河北懷來。之後由於矛盾，兩個同母異父的兄弟部落間便發生了著名的“阪泉之戰”，黃帝部落最終取勝，自此鞏固了其在部落聯盟中的主要地位。
中華人民共和國學者余太山認為，古史中記載的黃帝系統的各部族，包括少昊、陶唐氏、有虞氏與允姓之戎等部落，他推論這些部族後來向西發展，成為月氏與塞種的先祖，月氏與塞種皆屬于古代印歐人。然而考古學的研究指出，古代印歐人種東進的地理介限位於新疆東部至甘肅西部之間，在此以東的地區並沒有發現具有印歐人種型態的類群。
因當時社會的發展，黃帝部落的人口逐漸增多，便漸漸分化出新的氏族和部落。夏-{后}-氏便是其中之一，這氏族雖已從黃帝部落中分出，卻仍然強調自己的祖先是黃帝，並祭祀黃帝。周朝的始祖同樣是黃帝和炎帝部落的後裔，其母系為炎帝後裔，父系則是黃帝之後，周人為姬姓。
在傳說中的五帝時期，原本的氏族屬於血緣的集體，當社會的發展令其成員不得不依自身的經濟與生產要求而遷徙，並選擇性的重組成以地緣為基礎的部落聯盟。如堯時的鯀、共工、羲、和；舜時的禹、棄、契、皋陶、益等等，他們一方面是所在部落的首領，另一方面則又與堯或舜結為聯盟。隨著時間的推移，部落之間的共性漸增，便逐成為部落共同體。之後，禹承繼之前的成果而建立夏朝。
夏朝的建立也令“夏”這一族稱出現，這一名稱究竟是自稱或是他稱現已不可考，而“華”則是因夏族的服飾和文化特征而得名，後又演化為“夏”的同義詞，甚至是合稱為“華夏”。由於夏朝的強盛與較長的存在時間，令但凡與夏王畿的夏人有共同民族特點的諸侯國的人民都會接受“夏”的族稱，並自視為夏族的一部分。就如，周人的先祖原是居於渭水一帶，與堯舜和大禹所居地區相近，都屬於自仰韶文化發展出的龍山文化。夏朝建立後，夏王為天下共主，居於邰的周便成為夏的一個方國。後因“夏政衰”，周人先祖不窋率眾遷於“戎狄之間”的豳，但仍然保持著定居的農業生活，而不是於其鄰居的遊牧畜牧業。後因北狄南下，周人被迫再遷至岐下的周原，也因如此，便從所居之地而稱為周人。從經濟上看，周人與夏人都從農業。在宗教方面則夏、商、周都實行祖先崇拜和自然崇拜，都認為“上帝”抑或“天”是最高的神靈。在他們所崇拜的祖先中，大部分都是相同的，如“社稷五祀”中的“稷”，在夏朝是配以“烈山氏之子柱”，自商朝起便配為周人始祖“棄”。在周人的觀念中，稱自己所居之地為“西土”，而夏朝和商朝的王畿都是“中土”或“土中”，再往東便是“東土”。同時，周朝統治者也自稱夏，自認為諸夏的一部分。而周朝所分封的諸侯國，像晉、齊、魯、衛、宋、杞、蔡、邢、鄭、陳等等，他們一方面以所在地域不同而稱為晉人、齊人、魯人、衛人、宋人、杞人、蔡人、邢人、鄭人和陳人；另一方面又都認同自己為夏或華夏的一部分，是而用“諸夏”或“諸華”概括以上地區或其人民，而不是周「王之支子母弟甥舅」的諸侯國則被算入蠻夷
當華夏的概念深入人心之時，其共同體意識便產生。同時與周邊的“夷、蠻、戎、狄”等部落間的文化界限也開始固定，是謂“內諸夏而外夷狄”。而在文化與風俗方面的差異也顯露出來，如在語言方面，華夏與其他民族的交流要用到翻譯；華夏民族束髮著冠或笄，北方的戎狄“被髮”，百越是“斷髮”、“劗髮”，西南的則是“盤髮”、“編髮”等等；在服飾方面，華夏民族為右衽，其他民族則是左衽。
華夏民族可以夏朝作為其形成的標誌與名稱的來源。但在政治方面卻較為分散。大禹會合諸侯時，號稱有一萬多國進貢。商朝有三千多國。武王克商時，尚有一千七百多國，後由於諸侯間的兼併，到春秋時仍存在一千二百個國家。
經過二百餘年相互戰鬥，諸夏國家到戰國便只剩下十餘國，其中秦、楚、燕、齊、趙、魏、韓是諸夏的主要大國。在戰國中後期，隨著經濟和技術的發展進步，原本分立的各個諸侯國開始建立聯繫，發展出的廣泛貿易關係和交通網絡。由於鴻溝的開鑿完成，將江淮流域與河濟流域串聯起來，令列國間可以由水路暢通無阻。就連本為山川所阻的巴蜀與漢中之間也開闢了“棧道千里”。顯然，發達的交通令華夏民族之間建立起共同的經濟生活起到不小的作用。到公元前256年，當強大的秦國將周天子也攻滅後，其餘諸侯的滅亡便只剩下時間問題。終於在公元前221年，即秦王政二十六年，山東六國中僅存的齊國被滅，華夏族便形成了政治上的統一。
秦始皇統一中國并建立了秦朝，首稱皇帝，結束了多年的戰國七雄混戰，開創大一統的新格局。由此，華夏族又被稱為“秦人”。但秦朝鉅耗民力與嚴刑峻法，享國十四年，三帝而亡，有說法「China」一詞即源於「秦」字。秦末天下大亂，諸侯並起，最終劉邦擊敗了當時最強大的霸王項羽，統一天下，因劉邦曾被封為漢王，所建立的朝代便稱為漢朝。在此這後，華夏族便又產生了“漢”這個族稱，之前的“華”、“夏”、“華夏”或“秦人”等族稱也繼續存在。
漢朝有西漢與東漢兩個時期，共計統治408年，該時期中國版圖空前擴大，文化高度發達。此時漢族人口分布仍較為集中於黃河、淮河流域一帶，佔總人口的半數以上。長江中下游人口從東漢開始有所增長，佔總數的百分之三十以上。
從西晉末年永嘉之亂起，因數個北方游牧民族向中原南下建立政權，史稱“五胡亂華”，尤其是在前趙和後趙時期的數十年裡，民族矛盾尤為突出，迫使中原漢族向南遷徙到長江中下遊、珠江及中國東南部，史稱“衣冠南渡”，據統計南下人口要佔西晉各州總人數的八分之一以上，據復旦大學研究，西晉以前漢族主要分佈於中國北方，後因永嘉之禍大舉南遷，改變了南北人口分佈密度。當時，由於佔據東北的鮮卑慕容氏接受東晉封號，並實行安置流民、設置僑郡等政策，使得黃河中下遊不少漢人舉族遷往遼東和遼西；而在西北，漢人張氏建立的前涼也招致人數不少的漢人西遷，其後續的政權也一並貫徹這項政策，令今甘肅、青海東部和新疆南部的漢人數量大為增長。由此到南北朝時便出現了漢族與其他少數民族雜居的情況。也是這個時期，“漢”成為這個民族的穩定的族稱(相對的是五胡國家統治者自稱的國人)。
隋唐時期中原的統治階層內有許多漢化的鮮卑人或由其他胡戎所漢化的人。在這兩個王朝統治時期，當政權穩固後，便實行去胡俗而恢復漢朝與曹魏時期的制度，並進行“華夏正音”的改革，規定各種禮樂制度以南朝制度為基礎，再吸收一些北朝符合傳統漢文化的部分。制訂這一政策的人既有漢人，也包括了漢化的胡人，比如主持《貞觀禮》和《顯慶禮》的房玄齡（出自清河房氏，東漢司空房植）與長孫無忌（祖先拓跋鮮卑旁支長孫道生）。這種活動一直持續了三個多世紀。原本在東漢、曹魏與五胡十六國及北朝時進入漢族地區的部分胡人已經漢化，在隋唐時和漢人雜居的一些胡人也開始漢化。同時，唐朝時期因為國力強大，漢人曾為其他民族或國家稱作“唐人”，將中國大陸稱為“唐山”。
安史之亂後，唐朝開始出現分裂，並最終出現了五代十國的相互割據的局面，之後的宋朝也無力恢復唐朝時全部的領土。
漢族李迪的著名美術作品“雪樹寒禽”。
這段時期形成了南北政治上的分裂及至三國鼎立的局面。這時期的漢地經濟重心也向南轉移。北方的漢人在遼、金和西夏屬於被統治民族，但人口佔據多數，漢人的基礎為農耕經濟，漢文化佔主要地位，實行的是與契丹、西夏或女真人不同的唐制、唐律和宋制，稱之為漢法。因為民族的雜居，且漢人的人口具懸殊優勢，使得內遷的少數民族開始漢化，出現“契丹，漢人久為一家”、“猛安與漢戶，今皆一家，彼耕此種，皆是國人”的局面。當時金朝的官制、法律都仿照漢人，逐漸接受漢化，金朝的皇帝也提倡儒學，在統治者的提倡下，金人和漢人在血統和文化上都造成了緊密的融合。待金朝滅亡後，蒙古人按語言和習俗將契丹與女真人劃為漢人或蒙古人。
元朝統治中國後，稱原金朝境內的漢族和漢化的胡人為「漢人」，而將南宋境內的漢族和南方的少數民族稱作「南人」。這種民族政策是繼承了金朝的政策，並更加強了民族壓迫。《中國民族史綱要》第149-151頁在元朝對漢地不到一百年的統治時間裡，進入漢地的蒙古人和色目人有少部分被漢化。色目人當中一部分成為回族的先民。
明朝初年，由於元朝末期出現大規模的農民起義和災荒，導致漢人數量一度減少。經過二百年的發展後，到明神宗萬曆二十八年（1600年），漢人的人口又增長到約1.5億。之后由于明末天災饑荒、農民起義、清軍入關、三藩之亂，導致漢人人口劇減。
明末清初，由於清兵入塞、入關戰爭中的屠城事年如揚州十日、嘉定三屠、庚寅之劫等與三藩之亂的關係造成人民生命與財產的損失。而飢饉、瘟疫使得中國人口又一次的急速下降。史學家葛劍雄認為明清之際人口的跌幅估計可達40%，從崇禎元年（1628年）以來平均每年下降19%，至順治末年達到谷底。另一種說法則認為，人口隱匿數量遠大於人口損失數量，而真正人口損失最大的時期就是入關戰爭戰亂時期的滅絕性屠殺如屠蜀事件。康熙二十年（1681年）後，清廷平定三藩之亂並佔領臺灣，經過康雍乾盛世獲得長期的休養生息，人口得以迅速增加。清初人口數量未明確，史學家姜濤估算康熙十九年（1680年）前後，人口增長到1億；趙文林推估在康熙二十四年（1685年）超過1億。到乾隆時期，全國人口突破2億，到鴉片戰爭前夕的道光十三年（1833年）又增至4億。清朝人口的增長一反中國人口過去的波浪式增長型態，呈現斜線上升。19世紀時，清朝因為太平天國的起事、捻亂與回亂等戰亂損失不少人口；光緒年間又發生不少天災，光緒三年山西、陝西發生旱災，因飢荒與暴亂而死的人達一千萬以上。最後加上海外移民風氣日盛，因此到清朝滅亡時，中國人口維持在4億3千萬多人，與道光年間的人口數差不多。
清初有「六大弊政」排序基因的專用電腦
生物工程學（或），是一種即綜合利用數學、物理學、化學、生物學的知識，以及工程學本身的方法，以應對在生物學及醫藥學等領域等各種問題，滿足人類對生物制品需要的一門工程學。它使用包括但不限于分子生物學、生物化學、微生物學、藥理學、蛋白化學、細胞學、免疫學、神經科學等學科的知識、方法和技術，以人工再現生物的部分乃至整體生命過程，最終達到生產生物制品或醫療的預期作用。作為一種研究，生物工程學亦包含了生物醫學工程，并與生物技術相關。生物系統工程學亦是生物工程學的範疇。這個學科透過成品設計、可持續發展及分析來使生物系統得到改進及專注應用。
在一般情況下，生物工程師(或 ''生物醫學工程師'')的企圖無論是模仿生物系統創造的產品或修改和控制生物系統，以便它們可以更換，增加，維持，或者預測化學和機械的進程。 生物工程師可以用他們的專業知識的其他應用工程和 生物技術，包括基因修飾的植物和微生物,生物工程和生物催化. 工作與醫生、臨床醫生和研究人員、生物工程師使用傳統的工程原則和技術，并將它們應用于現實世界的生物和醫學問題.
當前階段，生物工程學的熱點部分根據主要目的不同大致上可以分成下列三大類：
** 生物進程設計（Bioprocess Design）
** 生物分離學（Bioseparation）
** 細胞工程學（Cell Engineering）
** 生物醫學診斷（Biomedical Diagnosis）
** 生物醫學治療（Biomedical Therapy）
第二次世界大戰前夕，生物工程剛剛開始被認為是一個獨立的工程學分支，是一個很新的概念。 二戰后，開始迅速發展，這是術語"生物工程"正在被創造出來的基本原因。當時生物工程的前沿研究者是英國科學家 海因茨*沃爾夫 ，他于1954年在國家研究所醫學研究。當時電氣工程被認為是進行醫療器械生產的工程學分支。但在隨后的一段時間，當工程師和生命科學家們開始一起工作，他們認識到需要一門全新而獨立的學科解決生物產品生產的相關問題。 要解決這些問題，他們希望得到的生物學家和醫藥學家投入更多的時間和研究的細節和程序進入的領域，如生物學、心理學和醫藥.后來生物工程學也可以應用于環境的修改，如表面土壤保護、斜坡的穩定，水道與海岸線保護，防風林、植被屏障（如三北防護林），包括噪音屏障和視屏障。 因為其他工程領域也處理 活生物體，生物工程也可以適用更廣義地包括 農業工程和環境工程。
(英式發音??ɑ?v?,美式發音??ɑv?)是一種廣泛使用的電腦程式設計語言，擁有跨平臺、物件導向、泛型程式設計的特性，廣泛應用于企業級Web應用開發和移動應用開發。
任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初開發Java語言的雛形，最初被命名為Oak，目標設定在家用電器等小型系統的程式語言，應用在電視機、電話、鬧鐘、烤面包機等家用電器的控制和通訊。由于這些智能化家電的市場需求沒有預期的高，太陽計算機系統（Sun公司）放棄了該項計劃。隨著1990年代網際網路的發展，Sun公司看見Oak在網際網路上應用的前景，于是改造了Oak，於1995年5月以Java的名稱正式發布。Java伴隨著互聯網的迅猛發展而發展，逐漸成為重要的網絡編程語言。
Java編程語言的風格十分接近C++語言。繼承了C++語言面向對象技術的核心，舍棄了容易引起錯誤的-{zh-hans:指針; zh-hant:指標;}-，以-{zh-hans:引用; zh-hant:參照;}-取代；移除了C++中的-{zh-hans:運算符重載; zh-hant:運算子重載;}-和多重繼承特性，用接口取代；增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型編程、類型安全的枚舉、不定長參數和自動裝/拆箱特性。昇陽電腦對Java語言的解釋是：「Java編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全、與系統無關、可移植、高性能、多線程和動態的語言」。
Java不同於一般的編譯語言或直譯語言。它首先將源代碼編譯成字節碼，再依賴各種不同平臺上的虛擬機來解釋執行字節碼，從而具有“一次編寫，到處運行”的跨平臺特性。在早期JVM中，這在一定程度上降低了Java程序的運行效率。但在J2SE1.4.2發布后，Java的執行速度有了大幅提升。
與傳統型態不同，Sun公司在推出Java時就將其作為開放的技術。全球的Java開發公司被要求所設計的Java軟件必須相互兼容。“Java語言靠群體的力量而非公司的力量”是Sun公司的口號之一，并獲得了廣大軟件開發商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同，此外，微軟公司後來推出了與之競爭的.NET平臺以及模仿Java的C#語言。後來Sun公司被甲骨文公司併購，Java也隨之成為甲骨文公司的產品。
現時，行動作業系統Android大部分的代碼採用Java程式設計語言編程。
Java的發明人詹姆斯·高斯林
Duke，Java語言的吉祥物
語言最開始只是Sun電腦（Sun MicroSystems）公司在1990年12月開始研究的一個內部項目。Sun電腦公司的一個叫做的工程師被公司自己開發的C++和C語言編譯器搞得焦頭爛額，因為其中的API極其難用。帕特里克決定改用NeXT，同時他也獲得了研究公司的一個叫做「Stealth計劃」的項目的機會。
「Stealth計劃」後來改名為「Green計劃」，詹姆斯·高斯林和麥克·舍林丹（Mike Sheridan）也加入了帕特里克的工作小組。他們和其他幾個工程師一起在加利福尼亞州門羅帕克市沙丘路的一個小工作室裡面研究開發新技術，瞄準下一代智能家電（如微波爐）的程序設計，Sun公司預料未來科技將在家用電器領域大顯身手。團隊最初考慮使用C++語言，但是很多成員包括Sun的首席科學家比爾·喬伊，發現C++和可用的API在某些方面存在很大問題。
工作小組使用的是嵌入式系統，可以用的資源極其有限。很多成員發現C++太複雜以至很多開發者經常錯誤使用。他們發現C++缺少垃圾回收系統，還有可移植的安全性、分佈程序設計、和多執行緒功能。最後，他們想要一種易於移植到各種設備上的平臺。
根據可用的資金，喬伊決定開發一種集C語言和Mesa語言大成的新語言，在一份報告上，喬伊把它叫做「未來」，他提議Sun公司的工程師應該在C++的基礎上，開發一種物件導向的環境。最初，高斯林試圖修改和擴展C++的功能，，但是後來他放棄了。他將要創造出一種全新的語言，被他命名為「Oak」（橡樹），以他的辦公室外的橡樹命名。
就像很多開發新技術的秘密工程一樣，工作小組沒日沒夜地工作到了1993年的夏天，他們能夠演示新平臺的一部分了，包括Green操作系統，Oak的程序設計語言，類庫及其硬件。最初的嘗試是面向一種類PDA設備，被命名為Star7，這種設備有鮮豔的圖形界面和被稱為「Duke」的智能代理來幫助用戶。1992年12月3日，這臺設備進行了展示。
同年11月，Green計劃被轉化成了「FirstPerson有限公司」，一個Sun公司的全資子公司，團隊也被重新安排到了帕洛阿爾托。FirstPerson團隊對建造一種高度互動的設備感興趣，當時代華納發佈了一個關於電視機頂盒的徵求提議書時（Request for proposal），FirstPerson改變了他們的目標，作為對徵求意見書的響應，提出了一個機頂盒平臺的提議。但是有線電視業界覺得FirstPerson的平臺給予用戶過多的控制權，因此FirstPerson的投標敗給了SGI。與3DO公司的另外一筆關於機頂盒的交易也沒有成功，由於他們的平臺不能在電視工業產生任何效益，公司被併回Sun公司。
由于商標搜索顯示Oak已被一家顯示卡制造商注冊。于是同年，Oak被改名為Java。當使用十六進制編輯器打開由Java源代碼編譯出的二進制文件（.class文件）的話，最前面的32位將顯示為CA FE BA BE，即詞組“CAFE BABE”（咖啡屋寶貝）。
一套Java編輯器軟體
J2SE環境與CDC的關連
JVM的所在角色
JSPX網頁的概念
1994年6月，在同、詹姆斯·高斯林、比爾·喬伊、、和埃里克·施密特經歷了一場歷時三天的頭腦風暴后，團隊決定再一次改變努力的目標，這次他們決定將該技術應用于萬維網。他們認為隨著Mosaic瀏覽器的到來，因特網正在向同樣的高度互動的遠景演變，而這一遠景正是他們在有線電視網中看到的。作為原型，帕特里克·諾頓寫了一個小型萬維網瀏覽器，WebRunner，后來改名為HotJava。
1994年10月，HotJava和Java平臺為公司高層進行演示。1994年，Java 1.0a版本已經可以提供下載，但是Java和HotJava瀏覽器的第一次公開發布卻是在1995年3月23日SunWorld大會上進行的。升陽公司的科學指導約翰·蓋吉宣告Java技術。這個發布是與網景公司的執行副總裁馬克·安德森的驚人發布一起進行的，宣布網景將在其瀏覽器中包含對Java的支持。1996年1月，Sun公司成立了Java業務集團，專門開發Java技術。
在流行幾年之后，Java在瀏覽器中的地位被逐步侵蝕。它在簡單交互性動畫方面的用途已經完全被Adobe公司的Flash排擠，2005年Java傾向只被用于雅虎游戲那樣的更為復雜的應用程序。Java同時遭受到來自微軟的反對，他們決定在新版本的Internet Explorer和Windows中不再附帶Java平臺。
與此相反，在萬維網的服務器端和手持設備上，Java變得更加流行。很多網站在後端使用JSP和其他的Java技術。
在桌面系統上，獨立的Java程序還是相對少見這是因為Java平臺的運行開銷較大，而許多人的電腦上沒有安裝Java，由于網絡帶寬在以前較小，下載Java曾經是個耗時的事情。但是隨著計算機計算能力、網絡帶寬在10年中取得了很大的進步，同時虛擬機和編譯器的質量得到了提高，許多應用程序得到了廣泛的使用，包括：
* NetBeans和Eclipse等軟件開發工具
* Azureus BitTorrent客戶端。
* Apache軟件基金會的Ant、Derby、Hadoop、Jakarta、POI和Tomcat
* JBoss和GlassFish應用伺服器
* EIOffice（永中Office）
* 純Java 3D游戲合金戰士Chrome
* IBM Websphere、ColdFusion和WebLogic
* IntelliJ IDEA
目前Java提供以下三個版本：
* Java Platform, Enterprise Edition（Java EE：Java平臺企業版）
* Java Platform, Standard Edition（Java SE：Java平臺標準版）
* Java Platform, Micro Edition（Java ME：Java平臺微型版）
* Java Platform, Card Edition
2006年SUN在JavaOne公佈Java 開放原始碼項目，並推出OpenJDK計劃。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月，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更名為Java SE 5.0
* 2005年6月，JavaOne大會召開，SUN公司公開Java SE 6。此時，Java的各種版本已經更名，以取消其中的數字“2”：J2EE更名為Java EE，J2SE更名為Java SE，J2ME更名為Java ME
* 2006年12月，SUN公司發布JRE6.0
* 2009年12月，SUN公司發布Java EE 6
* 2010年11月，由於Oracle公司對於Java社群的不友善，因此Apache揚言將-{退出}-JCP
* 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日，Java SE 11發布
Java之所以被開發，是要達到以下五個目的：
* 應當使用面向對象程序設計方法學
* 應當允許同一程序在不同的計算機平臺執行
* 應當包括內建的對計算機網絡的支持
* 應當被設計成安全地執行遠端代碼
* 應當易于使用，并借鑒以前那些面向對象語言（如C++）的長處。
Java技術主要分成幾個部分：Java語言、Java執行環境、類庫。一般情況下說Java時并不區分指的是哪個部分。
Java在1.5版本時，做了重大改變，Sun公司並1.5版本重新命名為Java 5.0。
Java的特點之一就是面向對象，是程序設計方法的一種。“面向對象程序設計語言”的核心之一就是開發者在設計軟件的時候可以使用自定義的類型和關聯操作。代碼和數據的實際集合體叫做“對象”。一個對象可以想象成綁定了很多“行為（代碼）”和“狀態（數據）”的物體。對于數據結構的改變需要和代碼進行通信然后操作，反之亦然。面向對象設計讓大型軟件工程的計劃和設計變得更容易管理，能增強工程的健康度，減少失敗工程的數量。
跨平臺性是Java主要的特性之一，跨平臺使得用Java語言編寫的程序可以在編譯后不用經過任何更改，就能在任何硬件設備條件下運行。這個特性經常被稱為“一次編譯，到處運行”。
執行Java應用程式必須安裝Java 運行時環境（Java Runtime Environment，JRE），JRE包括Java虛擬機（Java Virtual Machine，JVM），以及Java平臺核心類和基礎Java 平臺庫。通過JVM才能在電腦系統執行Java應用程序（Java Application），這與.Net Framework的情況一樣，所以電腦上沒有安裝JVM，那么這些java程序將不能夠執行。
實現跨平臺性的方法是大多數編譯器在進行Java語言程序的編碼時候會生成一個用字節碼寫成的“半成品”，這個“半成品”會在Java虛擬機（解釋層）的幫助下運行，虛擬機會把它轉換成當前所處硬件平臺的原始代碼。之后，Java虛擬機會打開標準庫，進行數據（圖片、線程和網絡）的存取工作。主要注意的是，盡管已經存在一個進行代碼翻譯的解釋層，有些時候Java的字節碼代碼還是會被JIT編譯器進行二次編譯。
有些編譯器，比如GCJ，可以自動生成原始代碼而不需要解釋層。但是這些編譯器所生成的代碼-{只}-能應用于特定平臺。并且GCJ目前只支持部分的Java API。
甲骨文公司對于Java的許可是“全兼容的”，這也導致了微軟和升陽關于微軟的程序不支持RMI和JNI接口、并且增加特性為己所用的法律爭端。升陽最終贏得了官司，獲得了大約兩千萬美元的賠償，法院強制要求微軟執行升陽公司關于Java的許可要求。作為回應，微軟不再在Windows系統中捆綁Java，最新的Windows版本，Windows Vista和Internet Explorer 7.0版本也不再提供對于Java應用程序和控件的支持。但是升陽公司和其他使用Java運行時系統的公司在Windows操作系統下對用戶提供無償的第三方插件和程序支持。
Java語言使用解釋層最初是為了輕巧性。所以這些程序的運行效率比C語言和C++要低很多，用戶也對此頗有微詞。很多最近的調查顯示Java的程序運行速度比幾年前要高出許多，有些同樣功能的程序的效率甚至超過了C++和C語言編寫的程序。
Java語言在最開始應用的時候是沒有解釋層的，所有需要編譯的代碼都直接轉換成機器的原始代碼。這樣做雖然使程序獲得了最佳的性能，但是導致程序異常臃腫。從JIT技術開始，Java的程序都經過一次轉換之后才變成機器碼。很多老牌的第三方虛擬機都使用一種叫做“動態編譯”的技術，也就是說虛擬機實時監測和分析程序的運行行為，同時選擇性地對程序所需要的部分進行編譯和優化。所有這些技術都改善了代碼的運行速度，但是又不會讓程序的體積變得失常。
程序的輕便性事實上是軟件編寫很難達到的一個目標，Java雖然成功地實現了“一次編譯，到處運行”，但是由于平臺和平臺之間的差異，所編寫的程序在轉換代碼的時候難免會出現微小的、不可察覺的錯誤和意外。有些程序員對此非常頭疼，他們嘲笑Java的程序不是“一次編譯，到處運行”，而是“一次編譯，到處調試”。以Java AWT為例，早期Java AWT內提供的按鈕、文字區等均是以電腦系統所預設的樣式而顯示。這令Java程式在有些沒有提供圖案的電腦系統產生錯誤（在Microsoft Windows設有視窗管理員，在一些Linux distribution則沒有）。後來SUN公司針對Java AWT一些問題而推出Java Swing。
平臺無關性讓Java在服務器端軟件領域非常成功。很多服務器端軟件都使用Java或相關技術建立。
C++語言被用戶詬病的原因之一是大多數C++編譯器不支持垃圾收集機制。通常使用C++編程的時候，程式設計師於程式中初始化對象時，會在主機記憶體堆疊上分配一塊記憶體與位址，當不需要此對象時，進行解構或者刪除的時候再釋放分配的記憶體位址。如果對象是在堆疊上分配的，而程序員又忘記進行刪除，那麼就會造成記憶體洩漏（Memory Leak）。長此以往，程序運行的時候可能會生成很多不清除的垃圾，浪費了不必要的記憶體空間。而且如果同一記憶體地址被刪除兩次的話，程序會變得不穩定，甚至崩潰。因此有經驗的C++程序員都會在刪除之後將指標重置為NULL，然後在刪除之前先判斷指標是否為NULL。
C++中也可以使用「智慧指標」（Smart Pointer）或者使用C++託管擴展編譯器的方法來實現自動化記憶體釋放，智慧指標可以在標準類庫中找到，而C++託管擴展被微軟的Visual C++ 7.0及以上版本所支持。智慧指標的優點是不需引入緩慢的垃圾收集機制，而且可以不考慮線程安全的問題，但是缺點是如果不善使用智慧指標的話，性能有可能不如垃圾收集機制，而且不斷地分配和釋放記憶體可能造成記憶體碎片，需要手動對堆進行壓縮。除此之外，由於智慧指標是一個基於模板的功能，所以沒有經驗的程序員在需要使用多態特性進行自動清理時也可能束手無策。
Java語言則不同，上述的情況被自動垃圾收集功能自動處理。對象的建立和放置都是在記憶體堆疊上面進行的。當一個物件沒有任何引用的時候，Java的自動垃圾收集機制就發揮作用，自動刪除這個物件所佔用的空間，釋放記憶體以避免記憶體洩漏。
注意程式設計師不需要修改finalize方法，自動垃圾收集也會發生作用。但是記憶體洩漏並不是就此避免了，當程序員疏忽大意地忘記解除一個物件不應該有的引用時，記憶體洩漏仍然不可避免。
不同廠商、不同版本的JVM中的記憶體垃圾回收機制並不完全一樣，通常越新版本的記憶體回收機制越快，IBM、BEA、SUN等等開發JVM的公司都曾宣稱過自己製造出了世界上最快的JVM，JVM性能的世界紀錄也在不斷的被打破並提高。
IBM有一篇有關Java記憶體回收機制比不啟用垃圾收集機制的C++記憶體處理快數倍的技術文章，而著名的Java技術書籍《Java編程思想》（''Thinking in Java''）也有一段論述Java記憶體及性能達到甚至超過C++的章節。
編寫Java程序前應注意以下幾點：
* 大小寫敏感：Java是大小寫敏感的，這就意味著標識符Hello與hello是不同的。
* 類名：對于所有的類來說，類名的首字母應該大寫。如果類名由若干單詞組成，那么每個單詞的首字母應該大寫，例如MyFirstJavaClass。
* 方法名：所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞，則后面的每個單詞首字母大寫，例如myFirstJavaMethod。
* 源文件名：源文件名必須和文件內名字唯一且公開(由public 關鍵詞修飾)的類名相同。當保存文件的時候，你應該使用該類名作為文件名保存（切記Java是大小寫敏感的），文件名的后綴為.java。（如果文件名和類名不相同則會導致編譯錯誤）。
* 主方法入口：所有的Java程序由public static void main(String args)方法開始執行。
下面列出了Java關鍵字。這些關鍵字不能用于常量、變量、和任何標識符的名稱。
類、方法和變量修飾符
最終值,不可改變的
實現（接口）
本地，原生方法（非Java實現）
strictfp
程序控制語句
定義一個值以供switch選擇
根據值選擇執行
斷言表達式是否為真
有沒有異常都執行
拋出一個異常對象
聲明一個異常可能被拋出
是關鍵字，但不能使用
注釋的作用：標識程序是干什么的，以及它是如何構建的。注釋幫助程序員進行相互溝通以及理解程序。注釋不是程序設計語言，所以編譯器編譯程序時忽略它們。
Java自帶了創建接口的類別，可以這樣使用：
public interface Deleteable {
void delete;
System.out.println(" ATTACH DATABASE 'DatabaseName' As 'Alias-Name'");
這段代碼的意思是任何實現（implement）Deleteable接口的類別都必須實現delete方法。每個類別對這個方法的實現可以自行定制。由此概念可以引出很多種使用方法，下面是一個類別的例子：
public class Fred implements Deleteable {
// 必須實作Deleteable介面中的delete方法
public void delete {
// 實作的程式碼
// 這個類別也可以包含其他方法
public void doOtherStuff {
在另外一個類別中，可以使用這樣的代碼：
public void deleteAll（Deleteable  list）{
for（int i = 0; i
因為隊列中所有的對象都可以使用delete方法。Deleteable隊列中包含Fred對象的引用，而這個類別和其他Deleteable類別在使用deleteAll方法時候不需要進行任何改變。
之所以這樣做就是為了在接口的執行和其代碼之間進行區別。舉例來說，一個名叫Collection的接口可以包含任何對象所需要的引入、轉換和存儲數據的方法，其他的類都可以使用這個接口。但是這個接口可以是一個可重定義大小的隊列、一個鏈表或者是其他功能的集合。
這種特性其實是一種折中的辦法。Java的設計者們不想讓Java有多重繼承的特性，因為C++的多重繼承顯示了這種特性的困難。Java的接口功能可以提供同樣的功能，但是又不會很復雜。
在Java語言中，應用程序接口（API）化身成-{zh-hans:類; zh-hant:類別;}-，并且分組成為-{zh-hans:包; zh-hant:套件;}-。每個包中包含有相關的接口和類。對于不同的平臺，Java提供了不同版本的包。API的設定由sun公司和其他公司通過JCP（Java社群程序）決定。任何公司和個人都可以參與這個工程，對API進行設計。2004年，IBM和BEA公司準備聯合對官方的Java開源軟件工程進行支持，但是2005年初，sun公司拒絕了這個支持。
下面這個程序顯示“Hello, world!”然后結束運行，注意java.lang套件是自動載入的，所以不需要在程式之前加入import java.lang.*;
public static void main(String args) {
System.out.println("Hello World!"); // Prints the string to the console.
JavaOne研討會發言紀念戒指，側面刻有昇陽字樣
Java試圖通過新的方式解決軟體編寫的複雜性。很多人認為Java語言做到了它承諾的一切，然而，某些情況下，Java會將簡單問題導向復雜化。盡管Java並不是一門完美的語言，但它的出現確實給大規模軟件協同開發提供了新的思路。
並不是所有的工程和環境需要企業等級的複雜性，比如一個簡單的個人網站或者獨自編程的程式師所寫的程式。這些程式師會發現Java的複雜管理對於自己要做的程式來說過於強大了。一些人覺得Java在物件導向上面做的沒有Ruby和Smalltalk純粹。但是最新出現的用Java實現的語言Groovy解決了這些問題。
作為一種已經建立的新技術，Java顯然綜合了很多語言的特性，比如C++、C語言、Python等等。一些對於Java的評論認為Java的不變性在動搖。
有些程式師不喜歡原始類型（primitive type）和類別（class）的分離，尤其是那些曾經使用過Smalltalk和Ruby的程序員。Java的代碼相對於其他的代碼來說過於冗長，這與它的輕便化聲明相違背。此外Java一般也會默認式的自動植入過多的標準庫代碼,導致整體運行會出現緩慢
Java是一種單繼承的語言。這也導致了程式師在試圖使用多重繼承時候的不便，而很多語言都可以使用這個特性。但是Java可以使用介面類，把多重繼承可能導致的風險減少到最小。Java不支持運算符重載，這是為了防止運算符重載使得代碼的功能變得不清晰。但是用Java實現的語言Groovy可以進行運算符重載。過去Java對於文本的操作和其他語言，比如Perl和PHP相比差的較多，但Java在1.4版本時候引入了正則表達式。
至Java 1.7為止，Java語言不支持閉包（closure）和混入（mixin）特性。
Java 1.8加入lambda表達式（Lambda Expressions）。
使用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版本的十倍左右。而即使是在同一時期，不同公司的JDK和JRE的性能也不一樣，比如SUN、IBM、BEA等公司都有自己開發的JDK和JRE。
Java語言的一些特性不可避免的有額外的性能代價，例如陣列範圍檢查、運行時類型檢查等等。Java程式的性能還會因為不同的動態複雜性和垃圾處理機制使用的多少而各有不同。如果JVM的實現比較優化的話，那麼這些功能甚至可以增加記憶體分配的性能。這和總是使用STL或者託管C++的程式的情況類似。
儘管如此，仍然有許多人認為Java的性能低。這部分歸因於Sun公司最初的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），Swing和JavaFX等多種方式提供GUI開發。雖然AWT包含許多預先構建的組件，如菜單，按鈕，列表以及眾多第三方組件，但Swing（一個GUI小部件工具包）還提供某些高級組件，如樹，表格，滾動窗格，選項卡式面板和列表。JavaFX是一組圖形和媒體包，提供了Swing互操作性，3D圖形功能和自包含的部署模型，可以快速編寫Java小應用程序和應用程序的腳本。
;移動應用程序：
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，WebSphere和Jboss EAP在商業應用服務器領域占據重要地位。
;企業應用程序：
Java企業版（Java EE）是一種流行的平臺，為腳本和運行企業軟件（包括網絡應用程序和Web服務）提供API和運行時環境。甲骨文宣稱Java在97％的企業計算機上運行。Java中更高的性能保證和更快的計算能力導致像Murex這樣的高頻交易系統被編入腳本中。它也是各種銀行應用程序的中樞，它們將Java從前端用戶端運行到后端服務器端。
;科學應用：
Java是許多軟件開發人員用于編寫涉及科學計算和數學運算的應用程序的選擇。這些程序通常被認為是快速和安全的，具有更高的便攜性和低維護性。像MATLAB這樣的應用程序使用Java來交互用戶界面和作為核心系統的一部分。
* 比較C Sharp和Java
* Jon Byous,  ''Java technology: The early years''。Sun Developer Network, no date ca. 1998。Retrieved April 22, 2005.
* James Gosling， ''A brief history of the Green project''。Java.net, no date ca. Q1/1998。Retrieved April 22, 2005.
* James Gosling，Bill Joy，Guy Steele，and Gilad Bracha，''The Java language specification'', second edition. Addison-Wesley, 2000. ISBN 0-201-31008-2.
* James Gosling，Bill Joy，Guy Steele，and Gilad Bracha，''The Java language specification'', third edition. Addison-Wesley, 2005. ISBN 0-321-24678-0.