<div id="palb5"><fieldset id="palb5"><strike id="palb5"></strike></fieldset></div>
      <center id="palb5"></center>
        <ruby id="palb5"><menuitem id="palb5"></menuitem></ruby>

          <em id="palb5"><ol id="palb5"></ol></em>
          太阳之歌女主角,棋王梁家辉,三毛学生意,绅士品格国语版全集,西安天空出现奇异云层,幽灵公主在线观看高清完整,蜜桃成熟时2未删减版,燃烧电视剧全集30集

          Java ClassLoader原理深入講解

          時間:2024-10-19 00:14:48 JAVA認證

          Java ClassLoader原理深入講解

            JAVA啟動后,是經(jīng)過JVM各級ClassLoader來加載各個類到內存。為了更加了解加載過程,下面為大家深入講解Java ClassLoader原理,僅供參考!

            當JVM(Java虛擬機)啟動時,會形成由三個類加載器組成的初始類加載器層次結構:

            bootstrap classloader

            |

            extension classloader

            |

            system classloader

            bootstrap classloader -引導(也稱為原始)類加載器,它負責加載Java的核心類。在Sun的JVM中,在執(zhí)行java的命令中使用-Xbootclasspath選項或使用 - D選項指定sun.boot.class.path系統(tǒng)屬性值可以指定附加的類。這個加載器的是非常特殊的,它實際上不是 java.lang.ClassLoader的子類,而是由JVM自身實現(xiàn)的。大家可以通過執(zhí)行以下代碼來獲得bootstrap classloader加載了那些核心類庫:

            URL[] urls=sun.misc.Launcher.getBootstrapClassPath().getURLs();

            for (int i = 0; i < urls.length; i++) {

            System.out.println(urls.toExternalform());

            }

            在我的計算機上的結果為:

            文件:/C:/j2sdk1.4.1_01/jre/lib/endorsed/dom.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/endorsed/sax.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xalan-2.3.1.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xercesImpl-2.0.0.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xml-apis.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xsltc.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/rt.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/i18n.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/sunrsasign.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/jsse.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/jce.jar

            文件:/C:/j2sdk1.4.1_01/jre/lib/charsets.jar

            文件:/C:/j2sdk1.4.1_01/jre/classes

            這時大家知道了為什么我們不需要在系統(tǒng)屬性CLASSPATH中指定這些類庫了吧,因為JVM在啟動的時候就自動加載它們了。

            extension classloader -擴展類加載器,它負責加載JRE的擴展目錄(JAVA_HOME/jre/lib/ext或者由java.ext.dirs系統(tǒng)屬性指定的)中JAR的 類包。這為引入除Java核心類以外的新功能提供了一個標準機制。因為默認的擴展目錄對所有從同一個JRE中啟動的JVM都是通用的,所以放入這個目錄的 JAR類包對所有的JVM和system classloader都是可見的。在這個實例上調用方法getParent()總是返回空值null,因為引導加載器bootstrap classloader不是一個真正的ClassLoader實例。所以當大家執(zhí)行以下代碼時:

            System.out.println(System.getProperty("java.ext.dirs"));

            ClassLoader extensionClassloader=ClassLoader.getSystemClassLoader().getParent();

            System.out.println("the parent of extension classloader : "+extensionClassloader.getParent());

            結果為:

            C:/j2sdk1.4.1_01/jre/lib/ext

            the parent of extension classloader : null

            extension classloader是system classloader的parent,而bootstrap classloader是extension classloader的parent,但它不是一個實際的classloader,所以為null。

            system classloader -系統(tǒng)(也稱為應用)類加載器,它負責在JVM被啟動時,加載來自在命令java中的-classpath或者java.class.path系統(tǒng)屬性或 者 CLASSPATH操作系統(tǒng)屬性所指定的JAR類包和類路徑。總能通過靜態(tài)方法ClassLoader.getSystemClassLoader()找 到該類加載器。如果沒有特別指定,則用戶自定義的任何類加載器都將該類加載器作為它的父加載器。執(zhí)行以下代碼即可獲得:

            System.out.println(System.getProperty("java.class.path"));

            輸出結果則為用戶在系統(tǒng)屬性里面設置的CLASSPATH。

            classloader 加載類用的是全盤負責委托機制。所謂全盤負責,即是當一個classloader加載一個Class的時候,這個Class所依賴的和引用的所有 Class也由這個classloader負責載入,除非是顯式的使用另外一個classloader載入;委托機制則是先讓parent(父)類加載器 (而不是super,它與parent classloader類不是繼承關系)尋找,只有在parent找不到的時候才從自己的類路徑中去尋找。此外類加載還采用了cache機制,也就是如果 cache中保存了這個Class就直接返回它,如果沒有才從文件中讀取和轉換成Class,并存入cache,這就是為什么我們修改了Class但是必 須重新啟動JVM才能生效的原因。

            每個ClassLoader加載Class的過程是:

            1.檢測此Class是否載入過(即在cache中是否有此Class),如果有到8,如果沒有到2

            2.如果parent classloader不存在(沒有parent,那parent一定是bootstrap classloader了),到4

            3.請求parent classloader載入,如果成功到8,不成功到5

            4.請求jvm從bootstrap classloader中載入,如果成功到8

            5.尋找Class文件(從與此classloader相關的類路徑中尋找)。如果找不到則到7.

            6.從文件中載入Class,到8.

            7.拋出ClassNotFoundException.

            8.返回Class.

            其中5.6步我們可以通過覆蓋ClassLoader的findClass方法來實現(xiàn)自己的載入策略。甚至覆蓋loadClass方法來實現(xiàn)自己的載入過程。

            類加載器的順序是:

            先 是bootstrap classloader,然后是extension classloader,最后才是system classloader。大家會發(fā)現(xiàn)加載的Class越是重要的越在靠前面。這樣做的原因是出于安全性的考慮,試想如果system classloader“親自”加載了一個具有破壞性的“java.lang.System”類的后果吧。這種委托機制保證了用戶即使具有一個這樣的類, 也把它加入到了類路徑中,但是它永遠不會被載入,因為這個類總是由bootstrap classloader來加載的。大家可以執(zhí)行一下以下的代碼:

            System.out.println(System.class.getClassLoader());

            將會看到結果是null,這就表明java.lang.System是由bootstrap classloader加載的,因為bootstrap classloader不是一個真正的ClassLoader實例,而是由JVM實現(xiàn)的,正如前面已經(jīng)說過的。

            下面就讓我們來看看JVM是如何來為我們來建立類加載器的結構的:

            sun.misc.Launcher,顧名思義,當你執(zhí)行java命令的時候,JVM會先使用bootstrap classloader載入并初始化一個Launcher,執(zhí)行下來代碼:

            System.out.println("the Launcher's classloader is "+sun.misc.Launcher.getLauncher().getClass().getClassLoader());

            結果為:

            the Launcher's classloader is null (因為是用bootstrap classloader加載,所以class loader為null)

            Launcher 會根據(jù)系統(tǒng)和命令設定初始化好class loader結構,JVM就用它來獲得extension classloader和system classloader,并載入所有的需要載入的Class,最后執(zhí)行java命令指定的帶有靜態(tài)的main方法的Class。extension classloader實際上是sun.misc.Launcher$ExtClassLoader類的一個實例,system classloader實際上是sun.misc.Launcher$AppClassLoader類的一個實例。并且都是 java.net.URLClassLoader的子類。

            讓我們來看看Launcher初試化的過程的部分代碼。

            Launcher的部分代碼:

            public class Launcher {

            public Launcher() {

            ExtClassLoader extclassloader;

            try {

            //初始化extension classloader

            extclassloader = ExtClassLoader.getExtClassLoader();

            } catch(IOException ioexception) {

            throw new InternalError("Could not create extension class loader");

            }

            try {

            //初始化system classloader,parent是extension classloader

            loader = AppClassLoader.getAppClassLoader(extclassloader);

            } catch(IOException ioexception1) {

            throw new InternalError("Could not create application class loader");

            }

            //將system classloader設置成當前線程的context classloader(將在后面加以介紹)

            Thread.currentThread().setContextClassLoader(loader);

            ......

            }

            public ClassLoader getClassLoader() {

            //返回system classloader

            return loader;

            }

            }

            extension classloader的部分代碼:

            static class Launcher$ExtClassLoader extends URLClassLoader {

            public static Launcher$ExtClassLoader getExtClassLoader()

            throws IOException

            {

            File afile[] = getExtDirs();

            return (Launcher$ExtClassLoader)AccessController.doPrivileged(new Launcher$1(afile));

            }

            private static File[] getExtDirs() {

            //獲得系統(tǒng)屬性“java.ext.dirs”

            String s = System.getProperty("java.ext.dirs");

            File afile[];

            if(s != null) {

            StringTokenizer stringtokenizer = new StringTokenizer(s, File.pathSeparator);

            int i = stringtokenizer.countTokens();

            afile = new File;

            for(int j = 0; j < i; j++)

            afile[j] = new File(stringtokenizer.nextToken());

            } else {

            afile = new File[0];

            }

            return afile;

            }

            }

            system classloader的部分代碼:

            static class Launcher$AppClassLoader extends URLClassLoader

            {

            public static ClassLoader getAppClassLoader(ClassLoader classloader)

            throws IOException

            {

            //獲得系統(tǒng)屬性“java.class.path”

            String s = System.getProperty("java.class.path");

            File afile[] = s != null ? Launcher.access$200(s) : new File[0];

            return (Launcher$AppClassLoader)AccessController.doPrivileged(new Launcher$2(s, afile, classloader));

            }

            }

            看 了源代碼大家就清楚了吧,extension classloader是使用系統(tǒng)屬性“java.ext.dirs”設置類搜索路徑的,并且沒有parent。system classloader是使用系統(tǒng)屬性“java.class.path”設置類搜索路徑的,并且有一個parent classloader。Launcher初始化extension classloader,system classloader,并將system classloader設置成為context classloader,但是僅僅返回system classloader給JVM。

            這里怎么又出來一個context classloader呢?它有什么用呢?我們在建立一個線程Thread的時候,可以為這個線程通過setContextClassLoader方法來 指定一個合適的classloader作為這個線程的context classloader,當此線程運行的時候,我們可以通過getContextClassLoader方法來獲得此context classloader,就可以用它來載入我們所需要的Class。默認的是system classloader。利用這個特性,我們可以“打破”classloader委托機制了,父classloader可以獲得當前線程的context classloader,而這個context classloader可以是它的子classloader或者其他的classloader,那么父classloader就可以從其獲得所需的 Class,這就打破了只能向父classloader請求的限制了。這個機制可以滿足當我們的classpath是在運行時才確定,并由定制的 classloader加載的時候,由system classloader(即在jvm classpath中)加載的class可以通過context classloader獲得定制的classloader并加載入特定的class(通常是抽象類和接口,定制的classloader中是其實現(xiàn)),例 如web應用中的servlet就是用這種機制加載的.

            好了,現(xiàn)在我們了解了classloader的結構和工作原理,那么我們 如何實現(xiàn)在運行時的動態(tài)載入和更新呢?只要我們能夠動態(tài)改變類搜索路徑和清除classloader的cache中已經(jīng)載入的Class就行了,有兩個方 案,一是我們繼承一個classloader,覆蓋loadclass方法,動態(tài)的尋找Class文件并使用defineClass方法來;另一個則非常 簡單實用,只要重新使用一個新的類搜索路徑來new一個classloader就行了,這樣即更新了類搜索路徑以便來載入新的Class,也重新生成了一 個空白的cache(當然,類搜索路徑不一定必須更改)。噢,太好了,我們幾乎不用做什么工作,java.netURLClassLoader正是一個符 合我們要求的classloader!我們可以直接使用或者繼承它就可以了!

            這是j2se1.4 API的doc中URLClassLoader的兩個構造器的描述:

            URLClassLoader(URL[] urls)

            Constructs a new URLClassLoader for the specified URLs using the default delegation parent ClassLoader.

            URLClassLoader(URL[] urls, ClassLoader parent)

            Constructs a new URLClassLoader for the given URLs.

            其中URL[] urls就是我們要設置的類搜索路徑,parent就是這個classloader的parent classloader,默認的是system classloader。

            好,現(xiàn)在我們能夠動態(tài)的載入Class了,這樣我們就可以利用newInstance方法來獲得一個Object。但我們如何將此Object造型呢?可以將此Object造型成它本身的Class嗎?

            首先讓我們來分析一下java源文件的編譯,運行吧!javac命令是調用“JAVA_HOME/lib/tools.jar”中的“com.sun.tools.javac.Main”的compile方法來編譯:

            public static int compile(String as[]);

            public static int compile(String as[], PrintWriter printwriter);

            返回0表示編譯成功,字符串數(shù)組as則是我們用javac命令編譯時的參數(shù),以空格劃分。例如:

            javac -classpath c:/foo/bar.jar;. -d c:/ c:/Some.java

            則 字符串數(shù)組as為{"-classpath","c://foo//bar.jar;.","-d","c://","c://Some.java"}, 如果帶有PrintWriter參數(shù),則會把編譯信息出到這個指定的printWriter中。默認的輸出是System.err。

            其中 Main是由JVM使用Launcher初始化的system classloader載入的,根據(jù)全盤負責原則,編譯器在解析這個java源文件時所發(fā)現(xiàn)的它所依賴和引用的所有Class也將由system classloader載入,如果system classloader不能載入某個Class時,編譯器將拋出一個“cannot resolve symbol”錯誤。

            所以首先編譯就通不過,也就是編譯器無法編譯一個引用了不在CLASSPATH中的未知Class的java源文件,而由于拼寫錯誤或者沒有把所需類庫放到CLASSPATH中,大家一定經(jīng)常看到這個“cannot resolve symbol”這個編譯錯誤吧!

            其 次,就是我們把這個Class放到編譯路徑中,成功的進行了編譯,然后在運行的時候不把它放入到CLASSPATH中而利用我們自己的 classloader來動態(tài)載入這個Class,這時候也會出現(xiàn)“java.lang.NoClassDefFoundError”的違例,為什么呢?

            我 們再來分析一下,首先調用這個造型語句的可執(zhí)行的Class一定是由JVM使用Launcher初始化的system classloader載入的,根據(jù)全盤負責原則,當我們進行造型的時候,JVM也會使用system classloader來嘗試載入這個Class來對實例進行造型,自然在system classloader尋找不到這個Class時就會拋出“java.lang.NoClassDefFoundError”的違例。

            OK, 現(xiàn)在讓我們來總結一下,java文件的編譯和Class的載入執(zhí)行,都是使用Launcher初始化的system classloader作為類載入器的,我們無法動態(tài)的改變system classloader,更無法讓JVM使用我們自己的classloader來替換system classloader,根據(jù)全盤負責原則,就限制了編譯和運行時,我們無法直接顯式的使用一個system classloader尋找不到的Class,即我們只能使用Java核心類庫,擴展類庫和CLASSPATH中的類庫中的Class。

            還 不死心!再嘗試一下這種情況,我們把這個Class也放入到CLASSPATH中,讓system classloader能夠識別和載入。然后我們通過自己的classloader來從指定的class文件中載入這個Class(不能夠委托 parent載入,因為這樣會被system classloader從CLASSPATH中將其載入),然后實例化一個Object,并造型成這個Class,這樣JVM也識別這個Class(因為 system classloader能夠定位和載入這個Class從CLASSPATH中),載入的也不是CLASSPATH中的這個Class,而是從 CLASSPATH外動態(tài)載入的,這樣總行了吧!十分不幸的是,這時會出現(xiàn)“java.lang.ClassCastException”違例。

            為 什么呢?我們也來分析一下,不錯,我們雖然從CLASSPATH外使用我們自己的classloader動態(tài)載入了這個Class,但將它的實例造型的時 候是JVM會使用system classloader來再次載入這個Class,并嘗試將使用我們的自己的classloader載入的Class的一個實例造型為system classloader載入的這個Class(另外的一個)。大家發(fā)現(xiàn)什么問題了嗎?也就是我們嘗試將從一個classloader載入的Class的一 個實例造型為另外一個classloader載入的Class,雖然這兩個Class的名字一樣,甚至是從同一個class文件中載入。但不幸的是JVM 卻認為這個兩個Class是不同的,即JVM認為不同的classloader載入的相同的名字的Class(即使是從同一個class文件中載入的)是 不同的!這樣做的原因我想大概也是主要出于安全性考慮,這樣就保證所有的核心Java類都是system classloader載入的,我們無法用自己的classloader載入的相同名字的Class的實例來替換它們的實例。

            看到這里,聰明的讀者一定想到了該如何動態(tài)載入我們的Class,實例化,造型并調用了吧!

            那 就是利用面向對象的基本特性之一的多形性。我們把我們動態(tài)載入的Class的實例造型成它的一個system classloader所能識別的父類就行了!這是為什么呢?我們還是要再來分析一次。當我們用我們自己的classloader來動態(tài)載入這我們只要把 這個Class的時候,發(fā)現(xiàn)它有一個父類Class,在載入它之前JVM先會載入這個父類Class,這個父類Class是system classloader所能識別的,根據(jù)委托機制,它將由system classloader載入,然后我們的classloader再載入這個Class,創(chuàng)建一個實例,造型為這個父類Class,注意了,造型成這個父類 Class的時候(也就是上溯)是面向對象的java語言所允許的并且JVM也支持的,JVM就使用system classloader再次載入這個父類Class,然后將此實例造型為這個父類Class。大家可以從這個過程發(fā)現(xiàn)這個父類Class都是由 system classloader載入的,也就是同一個class loader載入的同一個Class,所以造型的時候不會出現(xiàn)任何異常。而根據(jù)多形性,調用這個父類的方法時,真正執(zhí)行的是這個Class(非父類 Class)的覆蓋了父類方法的方法。這些方法中也可以引用system classloader不能識別的Class,因為根據(jù)全盤負責原則,只要載入這個Class的classloader即我們自己定義的 classloader能夠定位和載入這些Class就行了。

            這樣我們就可以事先定義好一組接口或者基類并放入CLASSPATH中,然 后在執(zhí)行的時候動態(tài)的載入實現(xiàn)或者繼承了這些接口或基類的子類。還不明白嗎?讓我們來想一想Servlet吧,web application server能夠載入任何繼承了Servlet的Class并正確的執(zhí)行它們,不管它實際的Class是什么,就是都把它們實例化成為一個Servlet Class,然后執(zhí)行Servlet的init,doPost,doGet和destroy等方法的,而不管這個Servlet是從web- inf/lib和web-inf/classes下由system classloader的子classloader(即定制的classloader)動態(tài)載入。說了這么多希望大家都明白了。在applet,ejb等 容器中,都是采用了這種機制.

            對于以上各種情況,希望大家實際編寫一些example來實驗一下。

            最后我再說點別的, classloader雖然稱為類加載器,但并不意味著只能用來加載Class,我們還可以利用它也獲得圖片,音頻文件等資源的URL,當然,這些資源必 須在CLASSPATH中的jar類庫中或目錄下。我們來看API的doc中關于ClassLoader的兩個尋找資源和Class的方法描述吧:

            public URL getResource(String name)

            用指定的名字來查找資源,一個資源是一些能夠被class代碼訪問的在某種程度上依賴于代碼位置的數(shù)據(jù)(圖片,音頻,文本等等)。

            一個資源的名字是以'/'號分隔確定資源的路徑名的。

            這個方法將先請求parent classloader搜索資源,如果沒有parent,則會在內置在虛擬機中的classloader(即bootstrap classloader)的路徑中搜索。如果失敗,這個方法將調用findResource(String)來尋找資源。

            public static URL getSystemResource(String name)

            從用來載入類的搜索路徑中查找一個指定名字的資源。這個方法使用system class loader來定位資源。即相當于ClassLoader.getSystemClassLoader().getResource(name)。

            例如:

            System.out.println(ClassLoader.getSystemResource("java/lang/String.class"));

            的結果為:

            jar:文件:/C:/j2sdk1.4.1_01/jre/lib/rt.jar!/java/lang/String.class

            表明String.class文件在rt.jar的java/lang目錄中。

            因此我們可以將圖片等資源隨同Class一同打包到jar類庫中(當然,也可單獨打包這些資源)并添加它們到class loader的搜索路徑中,我們就可以無需關心這些資源的具體位置,讓class loader來幫我們尋找了!

          【Java ClassLoader原理深入講解】相關文章:

          Java ClassLoader原理詳細分析201603-04

          2016最新java classloader詳解03-04

          小升初奧數(shù)知識講解之抽屜原理01-28

          揮桿原理03-23

          導游講解技巧04-08

          office知識講解03-18

          素描知識講解01-10

          JavaScript的課堂講解03-31

          學習Java的技巧03-05

          主站蜘蛛池模板: 冰河世纪2快播| 凹凸世界免费看| 人之怒在线观看完整免费| 3对1在线观看中文字幕| 机械女仆| 土豆粉培训| 海天盛筵haobc| 品味人生坎贝奇免费完整版| 小泽玛利亚 bt| 与老公上司偷情免费看| 封神榜朝歌风云| 某小说家的日记| 我把温柔献给你| 意大利《开放庄园》在线观看| 人猿泰山电影1995意大利| 私密肥大| 三分之一情人| 撩乱的舞曲| 百变大咖秀20121220| 《义子侵犯》寺岛志保| 妖女十八招| 星落凝成糖免费完整版| 女员工的付出5中字 | 鬼妓回忆录| 女子修道院2满天星版| 公交车在线观看电视剧| 太太度假时| 机动警察国语| 未来日记动漫| 电视剧美人心计| 杨敏思版1-5集免费观看电视剧在线观 | 女律师的堕落在线看| 高清《误杀1》电影完整版带字幕| 刘玥演的电影免费观看| 电视剧 永不回头| 驯龙高手1电影免费观看| 豪情3d种子| 滚烫的爱| 盛唐风流在线电影免费播放| 甄嬛传完整版免费观看| 爱丫爱丫影院最新电视剧免费观看 | 也曾迷茫也曾彷徨是什么歌| 李卫当官第二部高清| wwwddd| 比基尼勇士| 赛马娘巅峰之路| 美国式保罗4免费| 全职猎人11| 命悬一枪全集观看| 妻子的姐妹免费版电视剧大全| 纽约我爱你| 双人调教电影观看| 《在一起》免费观看| 第十九层电视剧| 风家七小姐| 小鸭子在线视频免费观看完整版| 睫毛膏2在线观看| 公妇借种林娇H| 糖葫芦西施| 满天星《乌托邦》2024| 圣水湖畔电视剧| 天海翼《被犯女教师》全集| 免费观看归路电视剧全集| 以家人之名免费看| 在线播放国风按摩院 春宵一克值千金 第1集 - 高清资源 - 大鸟视频 | 成为魔法少女完整版免费观看| 接档夫妻联欢的下一个动画| 电视剧闯关东免费观看全集高清 | 亲爱的x| 他为什么依然单身电视剧免费观看 | 倩女喜相逢| 美式保罗2在线观看免费| 梁以沫冷夜沉免费阅读| 义胆群英电影国语高清在线观看| 《外卖员的特殊待遇》演员| 隐形的亿万富翁电影免费| 狂飙免费观看全集| 美容室:待遇服务7在哪里看| 欲望爱人免费观看| 战狼6观看在线下载高清| 搞笑一家人国语版1| 连续剧甄嬛传| 黄金舞台| 妻子替丈夫还债给社长当秘书| 《大风杀》电影HD| 世界第一的初恋第二季| 3dmax奥特之母在线播放| 临时同居 电影| 女子飞机上光脚踩踏座椅扶手| 欢乐元帅第二部| 《爸爸种子2》英文翻译| 灭世魔帝| 女员工的付出1230| 《夕颜》动漫番剧全集| 中文字Dl幕岳 和女胥婷婷综合 | 法官李汉英| 湾仔之虎| 锦绣缘华丽冒险大结局| 晚娘罪色| 高清《检察官》全集观看| 善良的嫂子2电影| 神木丽2周年纪念完整在线观看| 灵与肉1992| 美容院的待遇5韩剧| 《灭火宝贝| 电影《需要爸爸播种美国》在线观看 | 美人吟电影未删减版免费观看| 电影我们的幸福时光| 酒店服务生在线观看完整免费高清第一集| 青春 韩国| 本乡爱,二阶堂梦| 铎字怎么读| 初体验5免费观看全部电视剧| 监狱兔第4季全集| 学生妈妈5字ID免费各种各样的| 安塔芮丝在线观看| 男人们的恋爱2| 魔法咪路迷路| 墨脱县| 高清《女巫》在线观看完整版| 移情别恋电影在线观看| 日本调教虐乳在线观看| 电视剧麻雀全集在线观看| 恐龙世界| 熊出没动漫| 被店长强侵女员工中文在线 | 蒙古国电影《销售女孩》上映时间| 情深深雨蒙蒙全集免费观看| 二阶堂梦电影在线播放免费| 法国电影女超人麦乐迪在线观看免费高清版| 魔鬼恋人第一季免费观看| 文章孙兴最新电影| 插曲的痛第60集| 日期 初恋这件小事| 男女生一起愁愁愁电视剧在线观看| 长月烬明电视剧全集| 女儿需要爸爸的播种的种子视频免费观看 | 手工制作丝网花| 铿铿锵锵在线看免费观看 | 壮志凌云满天星版在线观看| 包法利夫人完整版在线观看电影| 美丽回忆| 初恋的回忆qvod| 金大班电视剧| 厦门夜生活网| 艾回五子| 中国特警全集| 学渣学霸:高考状元全集免费| 勾魂绮梦在线观看| 二媳妇的味道| 独立日 电影| 邻家女人丈夫不在的日子| 小小影视app官网| 高清《你的婚礼》免费观看| 绝望的主妇 第6季| 妻子的秘密免费版电视剧大全| 高清我要成为超级巨星| 《裸体按摩师2》电影在线观看| 沈阳黑灯舞厅| 《牙医郝板丽1986版》电影免费观看| 青春荷尔蒙2 完整版| jizz分类| 消失的爱人| 魔形女满天星| 新还珠格格全集高清| 台剧黛比浪漫女家教1最新集数和剧情| 央视网评玄奘寺事件| 丰满大胸年轻继坶4| 新世界电影| 大凶女前辈在线观看| 扫毒风暴免费观看全集电视剧| 牵牛的夏天手机铃声| 电影斗牛剧情| 梨泰院class在线观看| 星战传说| 金瓶梅1-5集观看完整版| 我的女友是二嫂| 亚当君挣扎吧第9集在线观看| 天启免费观看完整版| 鬼影泰国版电影| 强奸快播| 无敌枪王电视剧全集| 回复术士全集免费观看完整版高清| yellow高清视频在线免费观看| 许愿神龙免费观看完整版在线观看| 《玛丽!玛丽!》满天星中文| 亲密敌人高清下载| 男按摩三级片| 女佣机器人vs男招待机器人军团| 马来西亚美女少妇三级视频。| 奈何boss要娶我2| 回复术士的真人版第9集预告片| 《花非花》电视剧| 美景之屋6版本全集在线观看| 灌篮高手特别篇| 男女愁愁愁免费观看| 名门望族粤语| 桃色胸器| 宫锁沉香 电影| 灭火宝贝2美版罗丽莎的启蒙| 罗颖黄瑞恩官宣分手| 古浪县| 澳门风云高清完整版| 孤独的美食家第五季| 商务旅行戴帽子电影| 高清《妥协》短剧免费观看| 电影读百科全书的女人在线观看| 一扑二主全集| 人猿泰山1995年真人版| 华氏247| 40岁阿姨电视剧全集观看 | 山野女人香| 《驯服小峓子2》丽卡| 欧美灭火宝贝在线观看完整版| 锵锵锵锵锵锵锵锵电视剧免费观看| 你是我的眼 毛宁| 三级片桃色凶器| 电视剧传说| 做aj的电视在线观| 林师傅在首尔百度影音| 足球宝贝满天星完整版免费| 鹰眼黑寡妇| 妻子6免费完整版高清韩剧观看| 三国95| 相逢是首歌 俞静| 鲜花盛开的山村电视剧免费观看| 电影《美人鱼》| 偷窥邻居做爰2| 聊斋之艳蛇电影| 天龙八部钟汉良版38| 陪讨厌部长去出差电影| 小妈妈电影| 维修工的艳遇 中字| 火山口的两人| 播放 - 女律师的堕落高清 - 剧情电影 - 蘑菇影视 | 战狼6妈| 爱人欲望| 男女一起愁愁愁免费观看全集电视剧| 韩剧女人心| 倩女离魂免费| 中国第一鬼城| 《家庭矛盾》3麦乐迪| 脾虚嘴唇有什么症状| 锵锵锵锵锵锵锵锵电视剧在线观看| 人民公社大食堂| 21世纪爱情指南高清免费观看| 天神地兽神兽金刚全集| 金连梅1-5普通话| 成长电视剧全集| 女超人麦乐迪无删减版在线观看 | xl司令动漫第一季无马全集在线观看完整版 | 《女友年轻的妈妈》中字头歌词| 天浴 在线观看| 狂飙免费观看全集| 花与蛇端庄夫人| 笑红颜 电视剧| 法国《荣誉守则》在线观看 | 生化魔人 扎克| 黄花女儿的意思| 寂静岭p.t| 左右不逢源第二季| 千与千寻| 年轻的姐夫电影在线观看| 北京遇上西雅图1| 凡妇俗女 第一季电视剧| 《芸汐传》全集观看| 小小水蜜桃电视剧在线看免费观看| 佳恩别哭剧情介绍| 马腾你别走电影完整版在线观看| 泰国剧泰剧大全| 死神356| 电影《韩国财阀》完整版| 坐公交车失去了第一次| 瑞士是哪个国家| 我爱甜甜圈| 猎豺狼在线观看| 任达华舞男| 寒战2粤语| 捡到千亿总裁短剧免费观看| 蜜桃成熟时1997免费观看| 黑色电话2电影| 恋慕韩剧免费观看| 一场风花雪月的事下载| 无间罪之僵尸重生| 《夏娃之春》在线观看| 担保韩国电影| 窃听风云3高清下载| 好兄弟把我给C了| 喵星人电影免费版普通话在线观看| 时光代理人第二季| 《志愿军:浴血和平》| 男女一起愁愁愁电视剧免费j苦闷苦闷看 j| 成龙电影全集粤语| 男生女生一起愁愁愁电视剧在线观看全集 | 小赫赫玩具| 公之浮手中30| 蜜桃成熟时1997百度影音| 日本混血大学生精油按摩| 韩剧电影《肚脐》原版| 电影私人航空在线观看完整免费高清原声奔跑吧 | 山村老尸| 乡村爱情16部全集电视剧| 初恋大作战| 闪耀的她1-36集免费观看| 爱与魔法| 完全饲育之爱的40天| 韩国 外卖员的特殊待遇| 男子姐姐值夜班离奇失踪多年| 维修师傅的艳遇无删减| 特殊美容室待遇5| 爱我几何电影完整版免费| 台风刮来生蚝?居民捡200斤| 特殊的外卖员| 异兽魔都| 游客借位拍照与大佛击掌 | 郑家榆电视剧| 放荡邻居尤物少妇在线观看| 加勒比海盗 4| 朝香宫鸠彦王| 坎贝奇无憾电影免费观看| 檀至白露| 爱你几何在线观看全集免费| 旭日阳刚解散| 维修人员的培训 在线| 妻子6免费完整高清电视| 加勒比海盗惊涛怪浪| 王楚钦和张本智和决赛视频| 革命军中马前卒| 电器维修工的艳遇2| 定格动画制作教程| 电影《村姑》完整版| 茶杯犬要多少钱| 柴静女儿| 少年包青天3高清| 教训美女| 《性的暴行》电影免费观看| 圣诞之吻第二季| 跟部长出差的温泉之旅在线观看 | 丁宝桢电视剧免费观看| 1995年意大利版《人猿泰山》hd| 血溅津门| 被拒绝的爱第五集大结局| 深圳838dj| 内线前传| 隐形帽子韩国电影| 国王在冬眠在线观看全集电影| jizz日| 电影我的表妹| 首付电视剧全集30| 林师傅在首| 仙武传动漫免费观看| 朋友互换麦子在线观看| 一起来看流星雨35| 《背叛老公的社长夫人》最新电影在线观看 -西瓜电影免费播放 -灵蓄影院 | 蓝精灵国语版| 没有罩子的瑜伽老师| 姐姐真漂亮4韩剧免费观看| 欢乐喜剧人 第三季| 战狼6妈| 非洲和尚| 朝国继4| 综艺免费观看| 一拳超人第二季免费观看高清| 银魂261| 贤妻良母全集| 盗墓笔记 迅雷| 磊哥4打20裕华高速在线观看| 疯狂七十二小时截了一段门徒| 少女的视频完整版观看| 扫黄先锋国语| 《水电工的艳遇》电影观看 | 麦乐迪马克斯女超人免费观看| 农奴电影| 神龙归位什么意思| 大胆女婿免费观看完整版电影| 愤怒的黄牛完整版电影中文| 北京市公安局长| 3d蒲团肉完整版电影| 男按摩师黄色电影| 飞虎出征下载| 《金牌销售》法国免费观看| 出差妻子对客户社长的招待| 《倔强的驱魔师》1-4集完整版| 以爱书写爱电视剧| 星球大战2百度影音| 军事报道历年片尾| 火线传奇第二季| 女员工的付出中字5| 爱情有烟火免费观看| 美国《无憾》坎贝奇| 梅花三弄之水云间| 巨龙复仇者| 猩疯血雨未删减| 梦在海这边电视剧| 秋瓷炫生死决断在线观看完整版| 奥特之父的哥哥| SSIS-338《最高の爱人诏》免费观看在线| 银河奥特曼免费观看高清| 天启 二战| 御龙修仙传2魔兽疆界| 我的错误在线观看高清| 《特殊的房租》中文| 只有你泰剧完整版免费观看| 内衣推销员2中字在线观看| 24小时在线观看免费播放电视剧| 某种物质国语在线观看| 樱桃嘴与大鼻子| yellow视频在线观看| 鬼吹灯之湘西密藏| 赢钱专家未删减版高清| 《越南被俘女兵》| 西野翔ed2k| 三毛从军记| 《美丽的秘密》完整版| 使徒行者1在线完整版免费观看| 陇西县| 纵情秘史| 韩国兄弟换麦子2| 回魂之夜电影| 怀集县| 新冠高烧39度怎么办| 永不磨灭的番号大结局| 巜商务旅行戴绿色帽的演员表和角色 | 断箭行动免费| 爆笑西游记全集| 破地狱粤语版| 新闻联播回放今天| 法国高压监狱伦理3| 电视剧珠光宝气| 《秘书的职责》中文| 妈祖电视剧全集刘涛| 电影《少爷与女佣》完整版| 21世纪爱情指南免费观看高清好想要| 被害空姐| 睫毛膏4美国1990| 爱情公寓免费观看完整版在线观看 | 今夜无人入睡大牛电影高清手机免费| 落花时节又逢君40集免费观看| 米酒mama最新视频| 蜡笔小新电影免费观看国语版| 樱桃魔法| 刚结婚陪部长出差的日子| 魔帝归来:三界独尊全集免费| 在线观看离婚前规则| 《高压监狱3》法国| 修真界帝尊短剧全集免费观看| 欧美黑白配在线| 星辰影院免费观看完整版电影狂飙| 非常人贩主演是谁| 空调维修工人的艳遇在线观看全集 | 《我的游泳女教练》免费漫画| 出轨的女人完整版| 郄姓氏怎么读音是什么| 《OverFlower》无码| 挡不住的风情在线观看| 新结婚时代在线观看| 插曲的痛30免费观看| 北上在线观看完整版免费高清| 杨恭如被污辱| 亲爱的你可知我有多么思念你| 漂白免费观看完整版| 双女任务高清完整版在线观看| 保安疑因停车矛盾杀害两人| 年轻母亲2中文字幕| 今天开始我爱你| 吉泽明子| 三年大片免费观看| 华丽的诱惑| 娇妻被黑人下药征服| 女儿朋友| 狙击蝴蝶电视剧免费观看完整版 | 那些年我们追过的女孩完整版免费 | 谭晶朱军| 至尊红颜电视剧| 黑白配1080p高清完整版| 我如此爱你 王凯琪| 雷速登闪电冲线第3部全集| 高压监狱2线观看完整免费高清原声满天星2019 | 迷你世界传送门有几种| 高清《为你遗憾》电影| 混血儿的摇篮曲在线观看| 那些年我们追过的女孩完整版免费 | 销售秘密2免费高清观看| 扑克王APP| 致命id百度影音| 哇嘎视频在线观看| 心动的信号第七季免费播放| 银河奥特曼s剧场版中文版| 学生的妈妈5字| 反转人生电影| 她来自胡志明市第二郡| 溜溜影视| 《菜肉馄饨》| 校花隔壁的流川枫| 水落石出3| 美国电影需要爸爸播种中文版| 西协美智子电影 电影在线观看| 娘家的故事上部| 桓台县| 法证先锋5大结局| 酒店1到100集| 深圳卫视决胜制高点| 妖怪名单动漫| 酒店1-80集全集免费观看| 姐姐的朋友网站| 伯虎为卿狂| 《初恋时间》1-6免费观看全集| 电视剧特战荣耀完整版全集免费观看| 小娘惹电视剧免费全集看剧情| 修理工的艳遇电影 | 得闲炒饭 下载| 人猿泰山1995意大利哪里能看| 娄艺潇邓家佳公布恋情| 无名川战役电影| 女版007女警满天星观看| 战神归来| 我是刑警策驰影院| 金牌销售爆火短剧| 离婚惊艳:全城羡慕短剧全集| 我的非凡父母| 暗战电影| 郭德纲 九尾狐| 乳山市| 电影捉迷藏| 复仇者联盟3神马抢先版| 爱我几何130分钟| 美国丽人剧情| 阿凡达3d版在线观看| 浴火奔腾浴火红免费观看电视连续剧 | 太子妃升职记电视剧| 金瓶梅原著电视剧1| 塔日酒店电影完整版在线观看| 蔡李佛拳下载| 远亲小姐在线观看| 《公的浮之手中字》电影 | 《卖房子的女销售》电影免费| 疯狂动物城西瓜影音| 糙汉文11H婚孕| 和部长出差的日子免费观看| 破产姐妹 第三季| 喜剧电影爆笑| 村妓K8经典网| 加勒比女海盗h成版手机在线| 我朋友的姐姐未增删翻译| 金瓶梅1| 超科学的电磁炮| 凯登克罗斯电影| 更衣服人偶坠入爱河| 红壳的潘多拉| 学生妈妈5字ID免费各种各样的| 新亮剑mp4下载| 导火线粤语| 墨西哥《瓜达卢佩玫瑰》| 田蕴章每日一题每日一字| 花朝秋月夜电视剧免费观看全集| 原千岁免费观看完整版| 生死狙击在线观看免费观看完整版 | 苦尽柑来遇见你 电视剧 | 功夫厨神| 茶啊二中第四季| 泾川县| 白石茉利奈| 爸爸的3次婚礼| xl司令全集在线观看完整版| 困惑的浪漫电影免费观看高清版| 6708杏色水蜜桃| 陈雅伦曹查理《我为卿痴狂》在哪里 | 纯白色之恋| 动感之星蓉儿| 三毛从军记| 战狼6免费观看9999| 平凡职业造就世界最强第二季| 正在播放: JUQ-101 在没有我丈夫的五天里,我被命令禁欲到第一个晚上。不想要 | 终极一班3全部| 保险女王和她的成功秘诀观看| 麦乐迪《女超人》电影| 卡贾基 豆瓣| 男子分饰两角诈骗20多名女主播| 漂亮的妈妈9| 最热门电视剧| 无名川战役电影| 律政佳人第三部全集| 拾光的秘密| 侯玉洁讲道全集免费看| 诡秘之主免费看| 蜡笔小新爱奇艺| 女邻居的滋润4| 进击的巨人第三季part 2| 广西白沙大道一大楼倒塌系谣言| 公之浮手中字40| 青春期一| 天使衣橱| 《妽妽的丰满大胸》2| 电影 赎罪| 家常菜电视剧全集在线观看| 千金与佣人电影叫什么| 空姐不雅视频| 碟中谍1未删减版资源| 电影《和部长一起去出差旅》免费观 | 大侦探拾光季在线观看免费完整版| 坎贝奇《无憾》完整版| 知否知否应是绿肥红瘦 晋江| 我在秋斩刑场当缝尸人那些 年| 做aj免费观看完整版| 他是谁电视剧免费观看全集| 遇龙电视剧完整版免费| 爱丫爱丫在线影院电视剧播放| 仙剑奇侠传三免费观看| 歌唱党的歌曲| 人猿泰山1995年真人版| 电视剧狂飙在线播放| 武城县| 和部长偷亲电影完整版| 有你真好天堂飘雪| 天下第一在线观看| 爱情公寓3预告片完整版| 电影韩国太太的告白| 巨茎挺进李淑芬视频-高清电影电影未| 猛男受被CAO哭极限扩张SM| 翁虹全部电影| 法国电影卖百科全书的女人电影免费观看完整版未删减 | 越狱兔第5季| 河流如血| 《武则天风流艳史》在线播放| 乡城县| 天道结局| 三国陈建斌版国语免费观看| 义姐是不良奶妈第一季在线观看免费| 余生免费观看| 龙虎山张天师电影免费观看| 马达加斯加3| 足球小将粤语版全集| 牙医姐妹完整版高清版| 红海行动2蛟龙行动电影在线观看| 高校风云| 绝对权力电视剧全集完整版观看| 好妈妈韩国4中字韩国电影| 四位按摩电影免费观看| 大考电视剧免费观看完整版| 秦雪梅哭灵| 人民检察官在线观看| 一年一度喜剧大赛2综艺| 阿拉善右旗| 德国战车dj| 梅森探案集| 电影《美容院的特殊待遇》| 三十而已在哪看| 美国电影网站| 《足球宝贝》满天星在线观看 | 姑娘我爱你舞蹈| 捷德奥特曼中文免费版| 金银1—5普通话国语| 电视剧长相思在线观看免费| 乔家大院连续剧免费看| 冰糖葫芦广场舞| 许我耀眼电视剧全集| 《维修工》电影免费观看| 切尔诺贝利日记qvod| 金装的维尔| 妈妈爱上儿子的同学完整版电影韩国| 梁朝伟版绝代双骄| 泰国坠崖孕妇孩子出生了吗| 韩国电影房产销售的秘密 | 水润女人刘志贤最火的几部电影作品| 更衣人偶坠入爱河番剧| 胡乱的深见君电视剧| 丁度巴拉斯肉蔻之香免费在线观看| 《家庭矛盾/分歧4》麦乐迪欧美剧 | 战狼6国语版高清下载| 怎么折滑翔纸飞机| 味道云南 纪录片| 《农场保卫战》满天星法国在线观看| 超级警车动画片全集| 甄嬛传59集| 外婆高清完整版电影在线观看 | 朝国年经继拇4免费| 国乒女团丢冠后马琳缺席颁奖仪式| 电视剧危情实录| 《激战丛林》在线观看免费| 黑狐之风影电视剧全集| 朋友的妈妈2线在线播放| 吴健版农民伯伯免费看| 听说 电影| 趣怪守护仙| xl司令第二季第八集免费观看| 人间世全集免费观看| 女子学校的男生| 白峰美羽《美人教师》电影 | 灵与肉1992| 学生的妈妈5字ID5中字| 迷茫的管家与懦弱的我| 大剑在线观看免费| 河南豫剧全场戏| 电影《活着》在线观看| 电视剧折腰免费观看在线播放| 大蛇3龙蛇之战免费完整版在线观看| 部长HD| 满目星回又思卿短剧免费观看| 蒋欣王凯宣布结婚| 公的浮手中字9| 《风流女管家》电影在线看免费版 | 杨光的快乐生活5电视剧免费观看| 妈妈的职业2hb| 冰雪奇缘1普通话版| 《妻子的闺蜜》大结局| 一起愁愁愁30免费观看完整版| 《请求救援》| 孤星剑国语| 激战丛林电影在线观看| 日本花魁| 鬼父动漫全集| 19岁大学生真人观看电视剧大全| 熊出没之重返地球免费观看完整版 | 幻体:续命游戏 电影 | 妄人妄途全集观看| 易中天品三国16| 唐朝诡事录免费全集播放| 《overflower》第一季动漫真人版| 课中坏事 韩国| 朋友的妈妈电影| 木凛凛演的电影逃亡花| 越策越开心全集| 善良的嫂子在线视频| 需要爸爸播种在线观看免费高清| 浓情蜜意| 免费电影网站在线观看完整版| 伦理《法国护士》| 火影忍者疾风传383| 年轻母亲1在线观看完| 牙医姐妹电影观看免费完整版| 陆小凤张智霖| 机动奥特曼第一季| 焦作市| 奔跑吧兄弟白鹿h5部分1–5| 电视剧红颜的岁月| 蜜桃成熟时李玉珍版| 大红灯笼高高挂在线观看| 王牌部队在线观看| 高清《贝尔法斯特天堂路》电视剧| 一愁愁愁全集免费看| 颐和园纪录片| 禁忌3年转一代中文字母| 种马3| 电竞国家集训队集体亮相| 公与3个媳HD播放| 灿烂遗产| 变成黑皮辣妹后和朋友做了未删减| 生吃电影| 插曲的痛免费观看高清版| 完美邻居| 摇滚狂花电视剧免费观看| 去有风的地方免费观看完整版最新| 朴妮唛kw7142快播| 爱的证明全集观看| 笔仙怪谈| 高清我们的错误| 白峰ミウ女教师无删减在线播放 | 农民伯伯下乡2国语版百度云在线看 | 六人行中英文字幕| 酒店1—80集免费观看电视剧下载| 赤脚小子国语在线观看完整版| 陷阱致命诱惑大叔| 《爸爸种子2》在线观看| 法国经典电影完整版免费观看| 晚春楼在线电影| 《越南暴行》免费看| 谁日过女副市长姜保红 | 海边的异邦人中文版在线观看| 那金花和她的女婿电视剧免费观看| 牙医姐妹郝板栗完整版电影 | 扫黑绝不放弃在线观看| 祷告良辰歌| 黑白配电影高清在线观看!| 风月变全集电视剧短剧免费剧情| 土耳其惊艳的MV短片| 爱情真善美下载| 义姐是不是良喂养1~2 | aj视频电视剧大全日本| 老友记第九季| 半糖动漫高清免费观看| 刘智贤主演的《水润女人》| 战火连天电视剧全集免费观看| 女神异闻录在线观看| 老师你下面太紧进不去动态图| 梅花影库在线观看最新一期预告| 影迷电影网| 电影《魔女3》超清在线观看| 秃顶半月不用洗发水长出头发| 儿媳的味道 三级片| 猛男受被CAO哭极限扩张SM| 大威虎看世界| 水手服饲育在线看视频| 电影《武状元苏乞儿》| 门第31集在线观看| 《麦乐迪·:女超人》在线观看| 新一剪梅片尾曲| 《爱的方程式》动漫免费观看| 为了谁伴奏| 偷妻三级片| 千王之王重出江湖| 婆婆来了全集| 一个人的朝圣电影免费观看| 爱我就别想太多免费全集电视剧全| 女友的妈妈韩字的ID是谁| 忽而今夏1| 《战争之暴行女囚》电影在线观看纳 | 《包青天之开封奇案》| 青柠在线观看免费高清电视剧下载| 黑白配国语高清在线| 菅谷梨沙子快播| 暴劫柔情在线观看免费| 上海电视台节目预告| 老同学5普通话| 小伙爱上兄弟妈妈原版| 海上孟府电视剧全集| 扑克 电影| 盛唐风流国语版免费播放| 电视剧樱桃正红| 高清《巴勒斯坦36》电影| 莉莉库拉格《女版满天星》| 漂亮姐姐在线播放| 妻子的谎言电视剧全集| 安徽民间小调憨子| 特殊外卖员| 女超人第一季| 天地传说之宝莲灯2001林志颖| 千金郝板栗无删减版观看| 波多野结衣加嘞比在线观看| 偷尝禁果在线观看| 因为想你泰剧在线观看完整版免费| 男人和女人一愁愁愁电视剧在线观看| 男按摩师做乳房按摩电影中文| 狄仁杰4| 斗罗大陆免费观看在线| 我欲为人第二季| 男生女生一愁愁愁在线观看大片 | 大胸年轻继坶2韩伦影院| 漂亮的妈妈7中字开头6个字| 《亦舞之城》电视剧| 慈禧秘密生活高清完整电影星辰| 《好好的时光》| 酒店1-75集| 隐形帽| 巾帼枭雄之悬崖 电视剧免费观看 难忘之夜在线观看免费完整版 | 《关系》韩国电影完整版| 新金银屏1—5美国普通话| 暴躁少女第十三集| 要过好日子下载| 重影电视剧免费观看全集完整版 | 调值公式法| 都市狂少:纵横都市无人敌全集免费 |