<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Java%E9%A1%9E%E5%88%A5%E8%BC%89%E5%85%A5%E5%99%A8</id>
	<title>Java類別載入器 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Java%E9%A1%9E%E5%88%A5%E8%BC%89%E5%85%A5%E5%99%A8"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Java%E9%A1%9E%E5%88%A5%E8%BC%89%E5%85%A5%E5%99%A8&amp;action=history"/>
	<updated>2026-04-13T08:19:16Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=Java%E9%A1%9E%E5%88%A5%E8%BC%89%E5%85%A5%E5%99%A8&amp;diff=373212&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Java%E9%A1%9E%E5%88%A5%E8%BC%89%E5%85%A5%E5%99%A8&amp;diff=373212&amp;oldid=prev"/>
		<updated>2025-08-22T05:02:15Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Java 類別載入器&amp;#039;&amp;#039;&amp;#039;（英語：Java Classloader）是 Java 執行的時陣環境（Java Runtime Environment）的一个部件，負責動態載入 Java 類別到 Java 虛擬機器的記憶體空間內底。類別通常是照顧載入，就是頭一擺使用這別時才載入。因為有矣類別載入器，Java 執行的時系統無需要知影檔案佮檔案系統。著學習類別載入器來講，掌握 Java 的委派概念是足重要的。&lt;br /&gt;
&lt;br /&gt;
彼每一个 Java 類別著愛由某一个類別載入器裝入去記憶體。Java 程式會當通過類別載入器來利用外部庫（即由其他作者所編寫的軟體庫）。&lt;br /&gt;
&lt;br /&gt;
JVM 中有三个預設的類別載入器：&lt;br /&gt;
&lt;br /&gt;
一 . 引導（Bootstrap）類別載入器。由原生代碼（如 C 語言）編寫，無繼承自 ` java . lang . ClassLoader `。負責載入核心 Java 庫，儉佇咧 ` &amp;lt; JAVA _ HOME &amp;gt; / jre / lib ` kha-tá-lok-guh 中。&lt;br /&gt;
二 . 擴充（Extensions）類別載入器。用來佇咧 ` &amp;lt; JAVA _ HOME &amp;gt; / jre / lib / ext ` , 抑是 ` java . ext . dirs ` 中指明的 kha-tá-lok-guh 中載入 Java 的擴充庫。Java 虛擬機器的實現會提供一个擴充庫 kha-tá-lok-guh。該類別載入器在此 kha-tá-lok-guh 內底走揣並載入去 Java 類別。該類的由 ` sun . misc . Launcher $ ExtClassLoader ` 實現。&lt;br /&gt;
三 . Apps 類別載入器（嘛講系統類別載入器）。 根據 Java 應用程式的類別路徑（` java . class . path ` 抑是 CLASSPATH 環境變數）來載入 Java 類別。一般來講，Java 應用的類別攏是由伊來完成載入的。會當通過 ClassLoader . getSystemClassLoader ( ) 來取得伊。該類的由 ` sun . misc . Launcher $ AppClassLoader ` 實現。&lt;br /&gt;
&lt;br /&gt;
逐个類別裝載器通過組合的方式包含一个父裝載器（parent class loader）。&lt;br /&gt;
&lt;br /&gt;
JDK 一爿二了的引入去「雙親委派」方式來實現類別載入器的層次呼叫，趕緊保證 JDK 的系統 API 袂去予使用者定義的類別載入器所破壞，但是一寡使用場景會拍破這个慣例來實現必要的功能。&lt;br /&gt;
&lt;br /&gt;
==自訂類別載入器==&lt;br /&gt;
&lt;br /&gt;
開發會當通過繼承 ` java . lang . ClassLoader ` 類別的方式實現家己的類別載入器，以滿足一寡特殊的需求而無需要完全了解 Java 虛擬機器的類別載入的細節。&lt;br /&gt;
&lt;br /&gt;
可用：&lt;br /&gt;
&lt;br /&gt;
* 執行的時裝載抑是解除安裝類別。這定用著：&lt;br /&gt;
* 實現手稿語言&lt;br /&gt;
* 用佇咧 bean 生成器&lt;br /&gt;
* 允准使用者定義的擴充性&lt;br /&gt;
* 允准號名的空間之間的通信。這是 CORBA / RMI 協定的基礎。&lt;br /&gt;
* 改變 Java 位元組碼的裝入，比如講：可用 Java 類別位元組碼的加密裝入。&lt;br /&gt;
* 修改已經裝入的位元組碼（weaving of aspects when using aspect-oriented programming）。&lt;br /&gt;
&lt;br /&gt;
==JEE 的類別裝載==&lt;br /&gt;
&lt;br /&gt;
Java EE（JEE）應用程式侍服器典型的所在用樹仔的一組類別裝載器對已經部署的 WAR 抑是 EAR 文件內底貯入類別。這一定愛應用程式之間彼此隔離，毋過已經部署模組。servlet container 一般被實現為濟類莫裝載器。&lt;br /&gt;
&lt;br /&gt;
==JAR 地獄==&lt;br /&gt;
&lt;br /&gt;
和 DLL 地獄仝款，一个組件的特定 JAR 存在版本差異，無仝版本的 JAR 檔案的 Class 檔案存在差異（包括講 Class 檔案的編譯版本、Class 的成員結構、Class 繼承關係等）的話，嘛會佇執行時觸發各種因為類別檔案結果衝突顛倒致使的錯誤警告。對於 Servlet 容器，猶閣存在容器所需要的 JAR 佮應用內所需要的 JAR 雙線衝突的問題。&lt;br /&gt;
&lt;br /&gt;
無仝 DLL 地獄，Java 開發者會使用一寡專案管理程式（比如講 Apache Maven）來解決 JAR 版本之間的衝突，通過組態依賴關係檔案，設定無仝組件的 JAR 版本依賴關係，由專案管理程式自動載入相應合適的 JAR，來控制 JAR 間的這个版本關係。而對 Servlet 容器，嘛會通過家己實現類別載入器拍破 JDK 的「雙親委派」方式來避免 JAR 載入衝突。&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* Chuck McManis , &amp;quot; The basics of Java class loaders &amp;quot; , 九百九十六&lt;br /&gt;
* Brandon E . Taylor , &amp;quot; Java Class Loading : The Basics &amp;quot; , 兩千空三&lt;br /&gt;
* Jeff Hanson , &amp;quot; Take Control of Class Loading in Java &amp;quot; , 二千空六鼻六鼻一&lt;br /&gt;
* Andreas Schaefer , &amp;quot; Inside Class Loaders &amp;quot; , 二千空三孵十一孵十二&lt;br /&gt;
* Sheng Liang and Gilad Bracha , &amp;quot; Dynamic class loading in the Java virtual machine &amp;quot; , In Proceedings of the 十三 th ACM Conference on Object-Oriented Programming , Systems , Languages , and Applications ( OOPSLA&amp;#039;九十八 ) , ACM SIGPLAN Notices , vol . 三十三 , no . 十 , ACM Press , 一千九百九十八 , pp .   三十六–四十四&lt;br /&gt;
* Dr . Christoph G . Jung , &amp;quot; Classloaders Revisited Hotdeploy &amp;quot; , _ Java Specialist Newsletter _ , 二千空一鋪六板七&lt;br /&gt;
* Don Schwarz , &amp;quot; Managing Component Dependencies Using ClassLoaders &amp;quot; , 二千空五五四配十三&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>