日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

JVM由那些部分組成,運(yùn)行流程是什么?

來源: 責(zé)編: 時間:2023-12-05 17:10:17 245觀看
導(dǎo)讀圖片思考: JVM由那些部分組成,運(yùn)行流程是什么?1.JVM由那些部分組成,運(yùn)行流程是什么?JVM是什么好處:一次編寫,到處運(yùn)行自動內(nèi)存管理,垃圾回收機(jī)制圖片思考:JVM由哪些部分組成,運(yùn)行流程是什么?圖片從圖中可以看出 JVM 的主要組


ZZs28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ZZs28資訊網(wǎng)——每日最新資訊28at.com

思考: JVM由那些部分組成,運(yùn)行流程是什么?ZZs28資訊網(wǎng)——每日最新資訊28at.com

1.JVM由那些部分組成,運(yùn)行流程是什么?

JVM是什么

好處:ZZs28資訊網(wǎng)——每日最新資訊28at.com

一次編寫,到處運(yùn)行ZZs28資訊網(wǎng)——每日最新資訊28at.com

自動內(nèi)存管理,垃圾回收機(jī)制ZZs28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ZZs28資訊網(wǎng)——每日最新資訊28at.com

思考:JVM由哪些部分組成,運(yùn)行流程是什么?ZZs28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ZZs28資訊網(wǎng)——每日最新資訊28at.com

從圖中可以看出 JVM 的主要組成部分ZZs28資訊網(wǎng)——每日最新資訊28at.com

ClassLoader(類加載器)ZZs28資訊網(wǎng)——每日最新資訊28at.com

Runtime Data Area(運(yùn)行時數(shù)據(jù)區(qū),內(nèi)存分區(qū))ZZs28資訊網(wǎng)——每日最新資訊28at.com

Execution Engine(執(zhí)行引擎)ZZs28資訊網(wǎng)——每日最新資訊28at.com

Native Method Library(本地庫接口)ZZs28資訊網(wǎng)——每日最新資訊28at.com

運(yùn)行流程:ZZs28資訊網(wǎng)——每日最新資訊28at.com

1.類加載器(ClassLoader):把Java代碼轉(zhuǎn)換為字節(jié)碼ZZs28資訊網(wǎng)——每日最新資訊28at.com

2.運(yùn)行時數(shù)據(jù)區(qū)(Runtime Data Area):把字節(jié)碼加載到內(nèi)存中,而字節(jié)碼文件只是JVM的一套指令集規(guī)范,并不能直接交給底層系統(tǒng)去執(zhí)行,而是有執(zhí)行引擎運(yùn)行ZZs28資訊網(wǎng)——每日最新資訊28at.com

3.執(zhí)行引擎(Execution Engine):將字節(jié)碼翻譯為底層系統(tǒng)指令,再交由CPU執(zhí)行去執(zhí)行,此時需要調(diào)用其他語言的本地庫接口(Native Method Library)來實現(xiàn)整個程序的功能。ZZs28資訊網(wǎng)——每日最新資訊28at.com

2. 什么是程序計數(shù)器?

程序計數(shù)器:線程私有的,內(nèi)部保存的字節(jié)碼的行號。用于記錄正在執(zhí)行的字節(jié)碼指令的地址。ZZs28資訊網(wǎng)——每日最新資訊28at.com

javap -verbose  xx.class    打印堆棧大小,局部變量的數(shù)量和方法的參數(shù)。ZZs28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ZZs28資訊網(wǎng)——每日最新資訊28at.com

java虛擬機(jī)對于多線程是通過線程輪流切換并且分配線程執(zhí)行時間。在任何的一個時間點上,一個處理器只會處理執(zhí)行一個線程,如果當(dāng)前被執(zhí)行的這個線程它所分配的執(zhí)行時間用完了【掛起】。處理器會切換到另外的一個線程上來進(jìn)行執(zhí)行。并且這個線程的執(zhí)行時間用完了,接著處理器就會又來執(zhí)行被掛起的這個線程。ZZs28資訊網(wǎng)——每日最新資訊28at.com

那么現(xiàn)在有一個問題就是,當(dāng)前處理器如何能夠知道,對于這個被掛起的線程,它上一次執(zhí)行到了哪里?那么這時就需要從程序計數(shù)器中來回去到當(dāng)前的這個線程他上一次執(zhí)行的行號,然后接著繼續(xù)向下執(zhí)行。ZZs28資訊網(wǎng)——每日最新資訊28at.com

程序計數(shù)器是JVM規(guī)范中唯一一個沒有規(guī)定出現(xiàn)OOM的區(qū)域,所以這個空間也不會進(jìn)行GCZZs28資訊網(wǎng)——每日最新資訊28at.com

3. 你能給我詳細(xì)的介紹Java堆嗎?

Java堆是Java虛擬機(jī)(JVM)運(yùn)行時數(shù)據(jù)區(qū)的一部分,線程共享的區(qū)域:主要用來保存對象實例,數(shù)組等,當(dāng)堆中沒有內(nèi)存空間可分配給實例,也無法再擴(kuò)展時,則拋出OutOfMemoryError異常。ZZs28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ZZs28資訊網(wǎng)——每日最新資訊28at.com

Java堆的一些重要信息:ZZs28資訊網(wǎng)——每日最新資訊28at.com

年輕代: 年輕代被劃分為三部分,Eden區(qū)和兩個大小嚴(yán)格相同的Survivor區(qū),根據(jù)JVM的策略,在經(jīng)過幾次垃圾收集后,任然存活于Survivor的對象將被移動到老年代區(qū)間。ZZs28資訊網(wǎng)——每日最新資訊28at.com

老年代: 在新生代中經(jīng)歷了一些輪次的對象最終會被晉升到老年代。老年代使用不同的垃圾收集算法,通常采用"標(biāo)記-清理"或"標(biāo)記-整理"的方式進(jìn)行垃圾回收。ZZs28資訊網(wǎng)——每日最新資訊28at.com

持久代: 在Java 8之前的版本中,持久代用于存儲類信息、方法信息等。從Java 8開始,持久代被元空間(Metaspace)取代,類信息被存儲在本地內(nèi)存中。ZZs28資訊網(wǎng)——每日最新資訊28at.com

元空間: 保存的類信息、靜態(tài)變量、常量、編譯后的代碼ZZs28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ZZs28資訊網(wǎng)——每日最新資訊28at.com

為了避免方法區(qū)出現(xiàn)OOM,所以在java8中將堆上的方法區(qū)【永久代】給移動到了本地內(nèi)存上,重新開辟了一塊空間,叫做元空間。那么現(xiàn)在就可以避免掉OOM的出現(xiàn)了。ZZs28資訊網(wǎng)——每日最新資訊28at.com

元空間(MetaSpace)介紹

在 HotSpot JVM 中,永久代( ≈ 方法區(qū))中用于存放類和方法的元數(shù)據(jù)以及常量池,比如Class 和 Method。每當(dāng)一個類初次被加載的時候,它的元數(shù)據(jù)都會放到永久代中。ZZs28資訊網(wǎng)——每日最新資訊28at.com

永久代是有大小限制的,因此如果加載的類太多,很有可能導(dǎo)致永久代內(nèi)存溢出,即OutOfMemoryError,為此不得不對虛擬機(jī)做調(diào)優(yōu)。ZZs28資訊網(wǎng)——每日最新資訊28at.com

那么,Java 8 中 PermGen 為什么被移出 HotSpot JVM 了?ZZs28資訊網(wǎng)——每日最新資訊28at.com

官網(wǎng)給出了解釋:http://openjdk.java/jeps/122ZZs28資訊網(wǎng)——每日最新資訊28at.com

This is part of the JRockit and Hotspot convergence effort. JRockit customers do not need to configure the permanent generation (since JRockit does not have a permanent generation) and are accustomed to not configuring the permanent generation.移除永久代是為融合HotSpot JVM與 JRockit VM而做出的努力,因為JRockit沒有永久代,不需要配置永久代。

1)由于 PermGen 內(nèi)存經(jīng)常會溢出,引發(fā)OutOfMemoryError,因此 JVM 的開發(fā)者希望這一塊內(nèi)存可以更靈活地被管理,不要再經(jīng)常出現(xiàn)這樣的 OOM。ZZs28資訊網(wǎng)——每日最新資訊28at.com

2)移除 PermGen 可以促進(jìn) HotSpot JVM 與 JRockit VM 的融合,因為 JRockit 沒有永久代。ZZs28資訊網(wǎng)——每日最新資訊28at.com

準(zhǔn)確來說,Perm 區(qū)中的字符串常量池被移到了堆內(nèi)存中是在 Java7 之后,Java 8 時,PermGen 被元空間代替,其他內(nèi)容比如類元信息、字段、靜態(tài)屬性、方法、常量等都移動到元空間區(qū)。比如 java/lang/Object 類元信息、靜態(tài)屬性 System.out、整型常量等。ZZs28資訊網(wǎng)——每日最新資訊28at.com

元空間的本質(zhì)和永久代類似,都是對 JVM 規(guī)范中方法區(qū)的實現(xiàn)。不過元空間與永久代之間最大的區(qū)別在于:元空間并不在虛擬機(jī)中,而是使用本地內(nèi)存。因此,默認(rèn)情況下,元空間的大小僅受本地內(nèi)存限制。ZZs28資訊網(wǎng)——每日最新資訊28at.com

4. 什么是虛擬機(jī)棧?

Java Virtual machine Stacks (java 虛擬機(jī)棧)ZZs28資訊網(wǎng)——每日最新資訊28at.com

  • 每個線程運(yùn)行時所需要的內(nèi)存,稱為虛擬機(jī)棧,先進(jìn)后出
  • 每個棧由多個棧幀(frame)組成,對應(yīng)著每次方法調(diào)用時所占用的內(nèi)存
  • 每個線程只能有一個活動棧幀,對應(yīng)著當(dāng)前正在執(zhí)行的那個方法

圖片圖片ZZs28資訊網(wǎng)——每日最新資訊28at.com

1)垃圾回收是否涉及棧內(nèi)存?ZZs28資訊網(wǎng)——每日最新資訊28at.com

垃圾回收主要指就是堆內(nèi)存,當(dāng)棧幀彈棧以后,內(nèi)存就會釋放ZZs28資訊網(wǎng)——每日最新資訊28at.com

2)棧內(nèi)存分配越大越好嗎?ZZs28資訊網(wǎng)——每日最新資訊28at.com

未必,默認(rèn)的棧內(nèi)存通常為1024kZZs28資訊網(wǎng)——每日最新資訊28at.com

棧幀過大會導(dǎo)致線程數(shù)變少,例如,機(jī)器總內(nèi)存為512m,目前能活動的線程數(shù)則為512個,如果把棧內(nèi)存改為2048k,那么能活動的棧幀就會減半ZZs28資訊網(wǎng)——每日最新資訊28at.com

3)方法內(nèi)的局部變量是否線程安全?ZZs28資訊網(wǎng)——每日最新資訊28at.com

  • 如果方法內(nèi)局部變量沒有逃離方法的作用范圍,它是線程安全的
  • 如果是局部變量引用了對象,并逃離方法的作用范圍,需要考慮線程安全

棧內(nèi)存溢出情況ZZs28資訊網(wǎng)——每日最新資訊28at.com

  • 棧幀過多導(dǎo)致棧內(nèi)存溢出,典型問題:遞歸調(diào)用

總結(jié):ZZs28資訊網(wǎng)——每日最新資訊28at.com

1)堆解決的是對象實例存儲的問題,垃圾回收器管理的主要區(qū)域。ZZs28資訊網(wǎng)——每日最新資訊28at.com

2.)方法區(qū)可以認(rèn)為是堆的一部分,用于存儲已被虛擬機(jī)加載的信息,常量、靜態(tài)變量、即時編譯器編譯后的代碼。ZZs28資訊網(wǎng)——每日最新資訊28at.com

3)棧解決的是程序運(yùn)行的問題,棧里面存的是棧幀,棧幀里面存的是局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息。ZZs28資訊網(wǎng)——每日最新資訊28at.com

4)本地方法棧與棧功能相同,本地方法棧執(zhí)行的是本地方法,一個Java調(diào)用非Java代碼的接口。ZZs28資訊網(wǎng)——每日最新資訊28at.com

5)程序計數(shù)器(PC寄存器) 程序計數(shù)器中存放的是當(dāng)前線程所執(zhí)行的字節(jié)碼的行數(shù)。JVM工作時就是通過改變這個計數(shù)器的值來選取下一個需要執(zhí)行的字節(jié)碼指令。ZZs28資訊網(wǎng)——每日最新資訊28at.com

5.  JVM組成面試題

面試官:JVM由那些部分組成,運(yùn)行流程是什么?ZZs28資訊網(wǎng)——每日最新資訊28at.com

候選人:ZZs28資訊網(wǎng)——每日最新資訊28at.com

在JVM中共有四大部分,分別是ClassLoader(類加載器)、Runtime Data Area(運(yùn)行時數(shù)據(jù)區(qū),內(nèi)存分區(qū))、Execution Engine(執(zhí)行引擎)、Native Method Library(本地庫接口)ZZs28資訊網(wǎng)——每日最新資訊28at.com

它們的運(yùn)行流程是:ZZs28資訊網(wǎng)——每日最新資訊28at.com

第一,類加載器(ClassLoader)把Java代碼轉(zhuǎn)換為字節(jié)碼ZZs28資訊網(wǎng)——每日最新資訊28at.com

第二,運(yùn)行時數(shù)據(jù)區(qū)(Runtime Data Area)把字節(jié)碼加載到內(nèi)存中,而字節(jié)碼文件只是JVM的一套指令集規(guī)范,并不能直接交給底層系統(tǒng)去執(zhí)行,而是有執(zhí)行引擎運(yùn)行ZZs28資訊網(wǎng)——每日最新資訊28at.com

第三,執(zhí)行引擎(Execution Engine)將字節(jié)碼翻譯為底層系統(tǒng)指令,再交由CPU執(zhí)行去執(zhí)行,此時需要調(diào)用其他語言的本地庫接口(Native Method Library)來實現(xiàn)整個程序的功能。ZZs28資訊網(wǎng)——每日最新資訊28at.com

面試官:好的,你能詳細(xì)說一下 JVM 運(yùn)行時數(shù)據(jù)區(qū)嗎?ZZs28資訊網(wǎng)——每日最新資訊28at.com

候選人:ZZs28資訊網(wǎng)——每日最新資訊28at.com

嗯,好~ZZs28資訊網(wǎng)——每日最新資訊28at.com

運(yùn)行時數(shù)據(jù)區(qū)包含了堆、方法區(qū)、棧、本地方法棧、程序計數(shù)器這幾部分,每個功能作用不一樣。ZZs28資訊網(wǎng)——每日最新資訊28at.com

  • 堆解決的是對象實例存儲的問題,垃圾回收器管理的主要區(qū)域。
  • 方法區(qū)可以認(rèn)為是堆的一部分,用于存儲已被虛擬機(jī)加載的信息,常量、靜態(tài)變量、即時編譯器編譯后的代碼。
  • 棧解決的是程序運(yùn)行的問題,棧里面存的是棧幀,棧幀里面存的是局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息。
  • 本地方法棧與棧功能相同,本地方法棧執(zhí)行的是本地方法,一個Java調(diào)用非Java代碼的接口。
  • 程序計數(shù)器(PC寄存器)程序計數(shù)器中存放的是當(dāng)前線程所執(zhí)行的字節(jié)碼的行數(shù)。JVM工作時就是通過改變這個計數(shù)器的值來選取下一個需要執(zhí)行的字節(jié)碼指令。

面試官:好的,你再詳細(xì)介紹一下程序計數(shù)器的作用?ZZs28資訊網(wǎng)——每日最新資訊28at.com

候選人:ZZs28資訊網(wǎng)——每日最新資訊28at.com

嗯,是這樣~~ZZs28資訊網(wǎng)——每日最新資訊28at.com

java虛擬機(jī)對于多線程是通過線程輪流切換并且分配線程執(zhí)行時間。在任何的一個時間點上,一個處理器只會處理執(zhí)行一個線程,如果當(dāng)前被執(zhí)行的這個線程它所分配的執(zhí)行時間用完了【掛起】。處理器會切換到另外的一個線程上來進(jìn)行執(zhí)行。并且這個線程的執(zhí)行時間用完了,接著處理器就會又來執(zhí)行被掛起的這個線程。這時候程序計數(shù)器就起到了關(guān)鍵作用,程序計數(shù)器在來回切換的線程中記錄他上一次執(zhí)行的行號,然后接著繼續(xù)向下執(zhí)行。ZZs28資訊網(wǎng)——每日最新資訊28at.com

面試官:你能給我詳細(xì)的介紹Java堆嗎?ZZs28資訊網(wǎng)——每日最新資訊28at.com

候選人:ZZs28資訊網(wǎng)——每日最新資訊28at.com

Java中的堆術(shù)語線程共享的區(qū)域。主要用來保存對象實例,數(shù)組等,當(dāng)堆中沒有內(nèi)存空間可分配給實例,也無法再擴(kuò)展時,則拋出OutOfMemoryError異常。ZZs28資訊網(wǎng)——每日最新資訊28at.com

在JAVA8中堆內(nèi)會存在年輕代、老年代ZZs28資訊網(wǎng)——每日最新資訊28at.com

1)Young(新生代)區(qū)被劃分為三部分,Eden區(qū)和兩個大小嚴(yán)格相同的Survivor區(qū),其中,Survivor區(qū)間中,某一時刻只有其中一個是被使用的,另外一個留做垃圾收集時復(fù)制對象用。在Eden區(qū)變滿的時候, GC就會將存活的對象移到空閑的Survivor區(qū)間中,根據(jù)JVM的策略,在經(jīng)過幾次垃圾收集后,任然存活于Survivor的對象將被移動到Tenured區(qū)間。ZZs28資訊網(wǎng)——每日最新資訊28at.com

2)Tenured(老年代)區(qū)主要保存生命周期長的對象,一般是一些老的對象,當(dāng)一些對象在Young復(fù)制轉(zhuǎn)移一定的次數(shù)以后,對象就會被轉(zhuǎn)移到Tenured區(qū)。ZZs28資訊網(wǎng)——每日最新資訊28at.com

面試官:什么是虛擬機(jī)棧ZZs28資訊網(wǎng)——每日最新資訊28at.com

候選人:ZZs28資訊網(wǎng)——每日最新資訊28at.com

虛擬機(jī)棧是描述的是方法執(zhí)行時的內(nèi)存模型,是線程私有的,生命周期與線程相同,每個方法被執(zhí)行的同時會創(chuàng)建棧楨。保存執(zhí)行方法時的局部變量、動態(tài)連接信息、方法返回地址信息等等。方法開始執(zhí)行的時候會進(jìn)棧,方法執(zhí)行完會出棧【相當(dāng)于清空了數(shù)據(jù)】,所以這塊區(qū)域不需要進(jìn)行 GC。ZZs28資訊網(wǎng)——每日最新資訊28at.com

面試官:能說一下堆棧的區(qū)別是什么嗎?ZZs28資訊網(wǎng)——每日最新資訊28at.com

候選人:ZZs28資訊網(wǎng)——每日最新資訊28at.com

有這幾個區(qū)別ZZs28資訊網(wǎng)——每日最新資訊28at.com

第一,棧內(nèi)存一般會用來存儲局部變量和方法調(diào)用,但堆內(nèi)存是用來存儲Java對象和數(shù)組的的。堆會GC垃圾回收,而棧不會。ZZs28資訊網(wǎng)——每日最新資訊28at.com

第二、棧內(nèi)存是線程私有的,而堆內(nèi)存是線程共有的。ZZs28資訊網(wǎng)——每日最新資訊28at.com

第三、兩者異常錯誤不同,但如果棧內(nèi)存或者堆內(nèi)存不足都會拋出異常。ZZs28資訊網(wǎng)——每日最新資訊28at.com

棧空間不足:java.lang.StackOverFlowError。ZZs28資訊網(wǎng)——每日最新資訊28at.com

堆空間不足:java.lang.OutOfMemoryError。ZZs28資訊網(wǎng)——每日最新資訊28at.com


ZZs28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-38319-0.htmlJVM由那些部分組成,運(yùn)行流程是什么?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 五個堪稱瑰寶級的 Python 庫,建議收藏!

下一篇: 2024年新興網(wǎng)絡(luò)安全技術(shù)應(yīng)用趨勢簡析

標(biāo)簽:
  • 熱門焦點
  • 一加Ace2 Pro真機(jī)揭曉 鈦空灰配色質(zhì)感拉滿

    終于,在經(jīng)過了幾波預(yù)熱之后,一加Ace2 Pro的外觀真機(jī)圖在網(wǎng)上出現(xiàn)了。還是博主數(shù)碼閑聊站曝光的,這次的外觀設(shè)計還是延續(xù)了一加11的方案,只是細(xì)節(jié)上有了調(diào)整,例如新加入了鈦空灰
  • Mate60手機(jī)殼曝光 致敬自己的經(jīng)典設(shè)計

    8月3日消息,今天下午博主數(shù)碼閑聊站帶來了華為Mate60的第三方手機(jī)殼圖,可以讓我們在真機(jī)發(fā)布之前看看這款華為全新旗艦的大致輪廓。從曝光的圖片看,Mate 60背后攝像頭面積依然
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達(dá)到了中國第一,同時還表示小米電視的巨屏風(fēng)暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機(jī)的發(fā)布會上,vivo的最新款真無線藍(lán)牙耳機(jī)vivo TWS Air也一同發(fā)布,本次就這款耳機(jī)新品給大家?guī)硪粋€簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產(chǎn)
  • 7月安卓手機(jī)性價比榜:努比亞+紅魔兩款新機(jī)入榜

    7月登場的新機(jī)有努比亞Z50S Pro和紅魔8S Pro,除了三星之外目前唯二的兩款搭載超頻版驍龍8Gen2處理器的產(chǎn)品,而且努比亞和紅魔也一貫有著不錯的性價比,所以在本次的性價比榜單
  • 2023年,我眼中的字節(jié)跳動

    此時此刻(2023年7月),字節(jié)跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關(guān)注的互聯(lián)網(wǎng)公司之一。從2016-17年的抖音強(qiáng)勢崛起,到2018年的“頭騰
  • 微博大門常打開,迎接海外畫師漂洋東渡

    作者:互聯(lián)網(wǎng)那些事“起猛了,我能看得懂日語了”。“為什么日本人說話我能聽懂?”“中文不像中文,日語不像日語,但是我竟然看懂了”…&hell
  • 華為將推出盤古數(shù)字人大模型 可幫助用戶12小時完成數(shù)字人生成

    在今日舉行的2023年華為云數(shù)字文娛AI創(chuàng)新峰會上,華為云全球Marketing與銷售服務(wù)總裁石冀琳表示,華為云將在后續(xù)推出盤古數(shù)字人大模型,可幫助用戶12小
  • DRAM存儲器10月價格下跌,NAND閃存本月價格與上月持平

    10月30日,據(jù)韓國媒體消息,自今年年初以來一直在上漲的 DRAM 存儲器的交易價格僅在本月就下跌了近 10%,此次是全年首次降價,而NAND 閃存本月價格與上月持平。市
Top 主站蜘蛛池模板: 旬阳县| 平罗县| 滦平县| 阿克陶县| 宁武县| 腾冲县| 龙井市| 金溪县| 马山县| 南康市| 沅江市| 郓城县| 林州市| 伊春市| 海南省| 邯郸县| 香河县| 桂平市| 怀仁县| 钟山县| 得荣县| 西藏| 通道| 剑阁县| 凉城县| 太仓市| 汕头市| 都江堰市| 太仆寺旗| 房产| 高尔夫| 沽源县| 定兴县| 高淳县| 二连浩特市| 错那县| 西充县| 宜春市| 临江市| 堆龙德庆县| 武宁县|