<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    http://www.tkk7.com/ebecket 返還網(wǎng)
    隨筆-140  評(píng)論-11  文章-131  trackbacks-0

    2010 .NET面試題整理之基礎(chǔ)篇

    篇語(yǔ):對(duì)于已有工作經(jīng)驗(yàn)的朋友,也許面試題已顯得不怎么重要,但是如果你應(yīng)聘的還僅僅是個(gè)普通的程序員,相信在很多的公司都還是會(huì)先拿出一套面試題,可能對(duì)整個(gè)面試影響不大,但做好面試題無(wú)疑會(huì)贏得第一個(gè)好的印象,特別對(duì)于那些缺少項(xiàng)目經(jīng)驗(yàn)的應(yīng)屆畢業(yè)生。很多時(shí)候,在看這些面試題的時(shí)候,是否有感過曾經(jīng)那些一個(gè)個(gè)不起眼的小程序題所針對(duì)的問題正是自己在項(xiàng)目中所犯的錯(cuò)誤?是否會(huì)發(fā)現(xiàn),原來(lái)還有這么多東西自己都還從未去想過?趁自己這次重新找工作之際,對(duì)常見面試題進(jìn)行進(jìn)行一次重新整理,與大家共同學(xué)習(xí)!本貼將會(huì)進(jìn)行不斷完善和繼續(xù)更新,有些答案可能并不完全正確,希望能得到大家的指正。

    接下來(lái)還將整理出:數(shù)據(jù)庫(kù)篇、算法篇、設(shè)計(jì)模式篇

     

    1、什么是面向?qū)ο?/strong>

    面向?qū)ο驩O = 面向?qū)ο蟮姆治鯫OA + 面向?qū)ο蟮脑O(shè)計(jì)OOD + 面向?qū)ο蟮木幊蘋OP;
    通俗的解釋就是萬(wàn)物皆對(duì)象,把所有的事物都看作一個(gè)個(gè)可以獨(dú)立的對(duì)象(單元),它們可以自己完成自己的功能,而不是像C那樣分成一個(gè)個(gè)函數(shù);
    現(xiàn)在純正的OO語(yǔ)言主要是java和C#,C++也支持OO,C是面向過程的。

     

    2、簡(jiǎn)述 private、 protected、 public、 internal 修飾符的訪問權(quán)限。

    private : 私有成員, 在類的內(nèi)部才可以訪問。
    protected : 保護(hù)成員,該類內(nèi)部和繼承類中可以訪問。
    public : 公共成員,完全公開,沒有訪問限制。
    internal: 當(dāng)前程序集內(nèi)可以訪問。

     

    3、ADO.NET中的五個(gè)主要對(duì)象

    Connection:主要是開啟程序和數(shù)據(jù)庫(kù)之間的連結(jié)。沒有利用連結(jié)對(duì)象將數(shù)據(jù)庫(kù)打開,是無(wú)法從數(shù)據(jù)庫(kù)中取得數(shù)據(jù)的。這個(gè)物件在ADO.NET 的最底層,我們可以自己產(chǎn)生這個(gè)對(duì)象,或是由其它的對(duì)象自動(dòng)產(chǎn)生。
    Command:主要可以用來(lái)對(duì)數(shù)據(jù)庫(kù)發(fā)出一些指令,例如可以對(duì)數(shù)據(jù)庫(kù)下達(dá)查詢、新增、修改、刪除數(shù)據(jù)等指令,以及呼叫存在數(shù)據(jù)庫(kù)中的預(yù)存程序等。這個(gè)對(duì)象是架構(gòu)在Connection 對(duì)象上,也就是Command 對(duì)象是透過連結(jié)到數(shù)據(jù)源。
    DataAdapter:主要是在數(shù)據(jù)源以及DataSet 之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ鳎梢酝高^Command 對(duì)象下達(dá)命令后,并將取得的數(shù)據(jù)放入DataSet 對(duì)象中。這個(gè)對(duì)象是架構(gòu)在Command對(duì)象上,并提供了許多配合DataSet 使用的功能。
    DataSet:這個(gè)對(duì)象可以視為一個(gè)暫存區(qū)(Cache),可以把從數(shù)據(jù)庫(kù)中所查詢到的數(shù)據(jù)保留起來(lái),甚至可以將整個(gè)數(shù)據(jù)庫(kù)顯示出來(lái)。DataSet 的能力不只是可以儲(chǔ)存多個(gè)Table 而已,還可以透過DataAdapter對(duì)象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表間的關(guān)聯(lián)。DataSet 對(duì)象可以說(shuō)是ADO.NET 中重量級(jí)的對(duì)象,這個(gè)對(duì)象架構(gòu)在DataAdapter對(duì)象上,本身不具備和數(shù)據(jù)源溝通的能力;也就是說(shuō)我們是將DataAdapter對(duì)象當(dāng)做DataSet 對(duì)象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。
    DataReader:當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時(shí),可以使用DataReader 對(duì)象。DataReader對(duì)象只是一次一筆向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),而且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。因?yàn)镈ataReader 在讀取數(shù)據(jù)的時(shí)候限制了每次只讀取一筆,而且只能只讀,所以使用起來(lái)不但節(jié)省資源而且效率很好。使用DataReader 對(duì)象除了效率較好之外,因?yàn)椴挥冒褦?shù)據(jù)全部傳回,故可以降低網(wǎng)絡(luò)的負(fù)載。
    ADO.NET 使用Connection 對(duì)象來(lái)連接數(shù)據(jù)庫(kù),使用Command 或DataAdapter對(duì)象來(lái)執(zhí)行SQL語(yǔ)句,并將執(zhí)行的結(jié)果返回給DataReader 或 DataAdapter ,然后再使用取得的DataReader 或DataAdapter 對(duì)象操作數(shù)據(jù)結(jié)果。

     

    4、列舉ASP.NET 頁(yè)面之間傳遞值的幾種方式。

    1.使用QueryString, 如....?id=1; response. Redirect()....
    2.使用Session變量
    3.使用Server.Transfer
    4.Cookie傳值
    5.Application傳值

     

    5、C#中的委托是什么?事件是不是一種委托?

    委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。
    委托可以理解為指向一個(gè)函數(shù)的引用。
    是,是一種特殊的委托。

     

    6、override與重載的區(qū)別

    重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要
    Override 是進(jìn)行基類中函數(shù)的重寫。為了適應(yīng)需要。

     

    7、描述一下C#中索引器的實(shí)現(xiàn)過程,是否只能根據(jù)數(shù)字進(jìn)行索引?

    不是。可以用任意類型。

     

    8、三層架構(gòu)通

    常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。
    區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。
    表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候的所見所得。
    業(yè)務(wù)邏輯層(BLL):針對(duì)具體問題的操作,也可以說(shuō)是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理。
    數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫(kù),針對(duì)數(shù)據(jù)的增添、刪除、修改、更新、查找等每層之間是一種垂直的關(guān)系。
    三層結(jié)構(gòu)是N層結(jié)構(gòu)的一種,一般來(lái)說(shuō),層次之間是向下依賴的,下層代碼未確定其接口(契約)前,上層代碼是無(wú)法開發(fā)的,下層代碼接口(契約)的變化將使上層的代碼一起變化。
    優(yōu)點(diǎn): 分工明確,條理清晰,易于調(diào)試,而且具有可擴(kuò)展性。
    缺點(diǎn): 增加成本。

     

    9、MVC模式

    MVC(Model View Controller)模型-視圖-控制器
    MVC是典型的平行關(guān)系,沒有說(shuō)誰(shuí)在上誰(shuí)在下的關(guān)系,模型負(fù)責(zé)業(yè)務(wù)領(lǐng)域的事情,視圖負(fù)責(zé)顯示的事情,控制器把數(shù)據(jù)讀取出來(lái)填充模型后把模型交給視圖去處理。而各種驗(yàn)證什么的應(yīng)該是在模型里處理了。它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。MVC最大的好處是將邏輯和頁(yè)面分離。

     

    10、什么是裝箱和拆箱?

    裝箱:從值類型接口轉(zhuǎn)換到引用類型。
    拆箱:從引用類型轉(zhuǎn)換到值類型。

     

    11、什么叫應(yīng)用程序域

    一種邊界,它由公共語(yǔ)言運(yùn)行庫(kù)圍繞同一應(yīng)用程序范圍內(nèi)創(chuàng)建的對(duì)象建立(即,從應(yīng)用程序入口點(diǎn)開始,沿著對(duì)象激活的序列的任何位置)。
    應(yīng)用程序域有助于將在一個(gè)應(yīng)用程序中創(chuàng)建的對(duì)象與在其他應(yīng)用程序中創(chuàng)建的對(duì)象隔離,以使運(yùn)行時(shí)行為可以預(yù)知。
    在一個(gè)單獨(dú)的進(jìn)程中可以存在多個(gè)應(yīng)用程序域。應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小。

     

    12、CTS、CLS、CLR分別作何解釋

    CTS:Common Type System 通用系統(tǒng)類型。
    CLS:Common Language Specification 通用語(yǔ)言規(guī)范。
    CLR:Common Language Runtime 公共語(yǔ)言運(yùn)行庫(kù)。

     

    13、在dotnet中類(class)與結(jié)構(gòu)(struct)的異同?

    Class可以被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的
    Struct屬于值類型,是分配在內(nèi)存的棧上的。

     

    14、堆和棧的區(qū)別?

    棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;
    堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大小。

     

    15、能用foreach遍歷訪問的對(duì)象的要求

    需要實(shí)現(xiàn)IEnumerable接口或聲明GetEnumerator方法的類型。

     

    16、GC是什么? 為什么要有GC? 

    GC是垃圾收集器。程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理。
    要請(qǐng)求垃圾收集,可以調(diào)用下面的方法之一: System.gc()  Runtime.getRuntime().gc()

     

    17、String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?

    兩個(gè)對(duì)象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對(duì)象。

     

    18、值類型和引用類型的區(qū)別?

    1.賦值方式不同:基于值類型的變量直接包含值。將一個(gè)值類型變量賦給另一個(gè)值類型變量時(shí),將復(fù)制包含的值。引用類型變量的賦值只復(fù)制對(duì)對(duì)象的引用,而不復(fù)制對(duì)象本身。
    2.值類型不可能派生出新的類型:所有的值類型均隱式派生自 System.ValueType。但與引用類型相同的是,結(jié)構(gòu)也可以實(shí)現(xiàn)接口。
    3.值類型不可能包含 null 值:然而,可空類型功能允許將 null 賦給值類型。
    4.每種值類型均有一個(gè)隱式的默認(rèn)構(gòu)造函數(shù)來(lái)初始化該類型的默認(rèn)值。 

     

    19、C#中的接口和類有什么異同。

    不同點(diǎn):
    不能直接實(shí)例化接口。
    接口不包含方法的實(shí)現(xiàn)。
    接口可以多繼承,類只能單繼承。
    類定義可在不同的源文件之間進(jìn)行拆分。
    相同點(diǎn):
    接口、類和結(jié)構(gòu)都可以從多個(gè)接口繼承。
    接口類似于抽象基類:繼承接口的任何非抽象類型都必須實(shí)現(xiàn)接口的所有成員。
    接口和類都可以包含事件、索引器、方法和屬性。

     

    20、abstract class和interface有什么區(qū)別?

    相同點(diǎn):
    都不能被直接實(shí)例化,都可以通過繼承實(shí)現(xiàn)其抽象方法。
    都是面向抽象編程的技術(shù)基礎(chǔ),實(shí)現(xiàn)了諸多的設(shè)計(jì)模式。
    不同點(diǎn):
    接口支持多繼承;抽象類不能實(shí)現(xiàn)多繼承。
    接口只能定義抽象規(guī)則;抽象類既可以定義規(guī)則,還可能提供已實(shí)現(xiàn)的成員。
    接口是一組行為規(guī)范;抽象類是一個(gè)不完全的類,著重族的概念。
    接口可以用于支持回調(diào)(CallBack);抽象類不能實(shí)現(xiàn)回調(diào),因?yàn)槔^承不支持。
    接口只包含方法(Method)、屬性(Property)、索引器(Index)、事件(Event)的簽名,但不能定義字段和包含實(shí)現(xiàn)的方法;
    抽象類可以定義字段、屬性、包含有實(shí)現(xiàn)的方法。 
    接口可以作用于值類型(Struct)和引用類型(Class);抽象類只能作用于引用類型。例如,Struct就可以繼承接口,而不能繼承類。

     

    21、sleep() 和 wait() 有什么區(qū)別?

    sleep()方法是將當(dāng)前線程掛起指定的時(shí)間。
    wait()釋放對(duì)象上的鎖并阻塞當(dāng)前線程,直到它重新獲取該鎖。

     

    22、是否可以繼承String類?

    String類是final類故不可以繼承。

     

    23、try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?

    會(huì)執(zhí)行,在return前執(zhí)行。

     

    24、new 關(guān)鍵字用法

    new 運(yùn)算符 用于創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)。
    new 修飾符 用于向基類成員隱藏繼承成員。
    new 約束 用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。
    new實(shí)現(xiàn)多態(tài)

     

    25、如何把一個(gè)Array復(fù)制到ArrayList里

    實(shí)現(xiàn)1 string[] s ={ "111", "22222" }; ArrayList list = new ArrayList(); list.AddRange(s);
    實(shí)現(xiàn)2 string[] s ={ "111", "22222" }; ArrayList list = new ArrayList(s);

     

    26、DataGrid的Datasouse可以連接什么數(shù)據(jù)源

    DataTable
    DataView
    DataSet
    DataViewManager
    任何實(shí)現(xiàn)IListSource接口的組件
    任何實(shí)現(xiàn)IList接口的組件

     

    27、描述線程與進(jìn)程的區(qū)別?

    1.線程(Thread)與進(jìn)程(Process)二者都定義了某種邊界,不同的是進(jìn)程定義的是應(yīng)用程序與應(yīng)用程序之間的邊界,不同的進(jìn)程之間不能共享代碼和數(shù)據(jù)空間,而線程定義的是代碼執(zhí)行堆棧和執(zhí)行上下文的邊界。
    2.一個(gè)進(jìn)程可以包括若干個(gè)線程,同時(shí)創(chuàng)建多個(gè)線程來(lái)完成某項(xiàng)任務(wù),便是多線程。而同一進(jìn)程中的不同線程共享代碼和數(shù)據(jù)空間。用一個(gè)比喻來(lái)說(shuō),如果一個(gè)家庭代表一個(gè)進(jìn)程,在家庭內(nèi)部,各個(gè)成員就是線程,家庭中的每個(gè)成員都有義務(wù)對(duì)家庭的財(cái)富進(jìn)行積累,同時(shí)也有權(quán)利對(duì)家庭財(cái)富進(jìn)行消費(fèi),當(dāng)面對(duì)一個(gè)任務(wù)的時(shí)候,家庭也可以派出幾個(gè)成員來(lái)協(xié)同完成,而家庭之外的人則沒有辦法直接消費(fèi)不屬于自己家庭的財(cái)產(chǎn)。

     

    28、什么是強(qiáng)類型,什么是弱類型?哪種更好些?為什么?

    強(qiáng)類型是在編譯的時(shí)候就確定類型的數(shù)據(jù),在執(zhí)行時(shí)類型不能更改,而弱類型在執(zhí)行的時(shí)候才會(huì)確定類型。
    沒有好不好,二者各有好處,強(qiáng)類型安全,因?yàn)樗孪纫呀?jīng)確定好了,而且效率高。
    一般用于編譯型編程語(yǔ)言,如c++,java,c#,pascal等,弱類型相比而言不安全,在運(yùn)行的時(shí)候容易出現(xiàn)錯(cuò)誤,但它靈活,多用于解釋型編程語(yǔ)言,如javascript,vb等

     

    29、什么是反射?

    程序集包含模塊,而模塊又包括類型,類型下有成員,反射就是管理程序集,模塊,類型的對(duì)象,它能夠動(dòng)態(tài)的創(chuàng)建類型的實(shí)例,設(shè)置現(xiàn)有對(duì)象的類型或者獲取現(xiàn)有對(duì)象的類型,能調(diào)用類型的方法和訪問類型的字段屬性。它是在運(yùn)行時(shí)創(chuàng)建和使用類型實(shí)例

     

    30、DateTime是否可以為null?

    不能,因?yàn)槠錇镾truct類型,而結(jié)構(gòu)屬于值類型,值類型不能為null,只有引用類型才能被賦值null


    31、using() 語(yǔ)法有用嗎?什么是IDisposable?它是如何實(shí)現(xiàn)確定性終結(jié)的

    有用,實(shí)現(xiàn)了IDisposiable的類在using中創(chuàng)建,using結(jié)束后會(huì)自定調(diào)用該對(duì)象的Dispose方法,釋放資源。不明白什么是確定性終結(jié)

     

    32、Assembly.Load("foo.dll"); 這句話是否正確?

    錯(cuò)誤,正確的應(yīng)該是Assembly.Load("foo"); 或者Assembly.LoadFrom("foo.dll");

     

    33、Session有什么重大BUG,微軟提出了什么方法加以解決?

    是iis中由于有進(jìn)程回收機(jī)制,系統(tǒng)繁忙的話Session會(huì)丟失,可以用Sate server或SQL Server數(shù)據(jù)庫(kù)的方式存儲(chǔ)Session,不過這種方式比較慢,而且無(wú)法捕獲Session的END事件。

     

    34、XML 與 HTML 的主要區(qū)別

    1. XML是區(qū)分大小寫字母的,HTML不區(qū)分。
    2. 在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略</p>或者</li>之類的結(jié)束 標(biāo)記。在XML中,絕對(duì)不能省略掉結(jié)束標(biāo)記。
    3. 在XML中,擁有單個(gè)標(biāo)記而沒有匹配的結(jié)束標(biāo)記的元素必須用一個(gè) / 字符作為結(jié)尾。這樣分析器就知道不用 查找結(jié)束標(biāo)記了。
    4. 在XML中,屬性值必須分裝在引號(hào)中。在HTML中,引號(hào)是可用可不用的。
    5. 在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應(yīng)的值。

     

    35、重載與覆蓋的區(qū)別?

    1.方法的覆蓋是子類和父類之間的關(guān)系,是垂直關(guān)系;方法的重載是同一個(gè)類中方法之間的關(guān)系,是水平關(guān)系
    2.覆蓋只能由一個(gè)方法,或只能由一對(duì)方法產(chǎn)生關(guān)系;方法的重載是多個(gè)方法之間的關(guān)系。
    3.覆蓋要求參數(shù)列表相同;重載要求參數(shù)列表不同。
    4.覆蓋關(guān)系中,調(diào)用那個(gè)方法體,是根據(jù)對(duì)象的類型(對(duì)像對(duì)應(yīng)存儲(chǔ)空間類型)來(lái)決定;重載關(guān)系,是根據(jù)調(diào) 用時(shí)的實(shí)參表與形參表來(lái)選擇方法體的。

     

    36、請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為string.Empty?

    foreach (System.Windows.Forms.Control control in this.Controls)
    {
        
    if (control is System.Windows.Forms.TextBox)
        {
            System.Windows.Forms.TextBox tb 
    = (System.Windows.Forms.TextBox)control;
            tb.Text 
    = String.Empty;
        }
    }

     

    37、根據(jù)線程安全的相關(guān)知識(shí),分析以下代碼,當(dāng)調(diào)用test方法時(shí)i>10時(shí)是否會(huì)引起死鎖?并說(shuō)明理由。

    public void test(int i)
    {
        
    lock (this)
        {
            
    if (i > 10)
            {
                i
    --;
                test(i);
            }
        }
    }

    不會(huì)發(fā)生死鎖,(但有一點(diǎn)int是按值傳遞的,所以每次改變的都只是一個(gè)副本,因此不會(huì)出現(xiàn)死鎖。但如果把int換做一個(gè)object,那么死鎖會(huì)發(fā)生)

     
    38、寫出程序的輸出結(jié)果

    程序代碼
      class Class1
        {
            
    private string str = "Class1.str";
            
    private int i = 0;

            
    static void StringConvert(string str)
            {
                str 
    = "string being converted.";
            }

            
    static void StringConvert(Class1 c)
            {
                c.str 
    = "string being converted.";
            }

            
    static void Add(int i)
            {
                i
    ++;
            }

            
    static void AddWithRef(ref int i)
            {
                i
    ++;
            }

            
    static void Main()
            {
                
    int i1 = 10;
                
    int i2 = 20;
                
    string str = "str";
                Class1 c 
    = new Class1();
                Add(i1);
                AddWithRef(
    ref i2);
                Add(c.i);
                StringConvert(str);
                StringConvert(c);
                Console.WriteLine(i1);
                Console.WriteLine(i2);
                Console.WriteLine(c.i);
                Console.WriteLine(str);
                Console.WriteLine(c.str);
            }
        }

      


    39
    、寫出程序的輸出結(jié)果

    程序代碼
        public abstract class A
        {
            
    public A()
            {
                Console.WriteLine(
    'A');
            }

            
    public virtual void Fun()
            {
                Console.WriteLine(
    "A.Fun()");
            }
        }

        
    public class B : A
        {
            
    public B()
            {
                Console.WriteLine(
    'B');
            }

            
    public new void Fun()
            {
                Console.WriteLine(
    "B.Fun()");
            }

            
    public static void Main()
            {
                A a 
    = new B();
                a.Fun();
            }
        }


    40、寫出程序的輸出結(jié)果

    程序代碼



    轉(zhuǎn)自 http://www.cnblogs.com/fengyao/archive/2010/03/31/1700853.html
    posted on 2010-03-31 09:19 becket_zheng 閱讀(503) 評(píng)論(0)  編輯  收藏 所屬分類: C#
    主站蜘蛛池模板: 在线看片免费人成视频播| 亚洲欧美成人av在线观看| 亚洲国产精华液网站w| 国产成人亚洲综合| 国产专区一va亚洲v天堂| 亚洲一区无码精品色| 精品国产人成亚洲区| 亚洲人成色77777| 亚洲第一AAAAA片| 91嫩草私人成人亚洲影院| 亚洲精品国产福利在线观看| 亚洲综合图片小说区热久久| 亚洲熟妇无码爱v在线观看| 亚洲人成人77777在线播放| 国产99在线|亚洲| 亚洲精品蜜夜内射| 日本特黄特色AAA大片免费| 久久高潮一级毛片免费| 无码午夜成人1000部免费视频| 亚洲精品国产免费| 69成人免费视频无码专区| 性做久久久久免费观看| 亚洲国产成人久久综合区| 国产亚洲精久久久久久无码| 在线观看亚洲一区二区| 亚洲无吗在线视频| 美女裸免费观看网站| 中文精品人人永久免费| 亚洲啪啪免费视频| 无码国模国产在线观看免费| 久久精品国产精品亚洲下载| 亚洲国产美国国产综合一区二区| 亚洲午夜精品在线| 精品亚洲福利一区二区| a毛看片免费观看视频| 国产在线jyzzjyzz免费麻豆| 日韩在线免费电影| 亚洲不卡av不卡一区二区| 亚洲喷奶水中文字幕电影| 国产成人亚洲精品播放器下载| 国产综合免费精品久久久|