激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java基礎(chǔ)知識匯總

Java基礎(chǔ)知識匯總

2021-01-06 11:06李子園的夢想 Java教程

這篇文章對Java編程語言的基礎(chǔ)知識作了一個較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考。

Java基礎(chǔ)知識

1、Java語言的優(yōu)點:

1)Java是純面向?qū)ο笳Z言

2)與平臺無關(guān)性,一次編譯到處運行

3)Java提供了狠多內(nèi)置類庫

4)提供了對web應用的支持

5)具有較好的安全性(數(shù)組邊界檢測、Bytecode檢測)和健壯性(強制型機制、垃圾回收器、異常處理)

6)去除c++難以理解的一些特性(頭文件 指針 運算符重載 多重繼承)

2、java與c++的異同:

1)Java為解釋型語言,c++為編譯型語言,java會慢但是跨平臺

2)Jave為純面向?qū)ο螅琧++既面向?qū)ο笥帜苊嫦蜻^程。Jave無全局變量和全局函數(shù)

3)Java沒有指針,更安全

4)Java不支持多繼承但是有接口概念

5)Java不需人工分配管理內(nèi)存(申請 釋放),提供垃圾回收器自動回收。當堆棧或靜態(tài)存儲區(qū)沒有對這個對象的引用時,就會被回收。沒有析構(gòu)函數(shù),但是有finalize()方法。

6)Java沒有運算符重載,沒有預處理功能。

3、public static void main(String [] args)是程序的入口。

4、java可有多個main()文件,但只有與文件名相同的用public修飾的類的main()才能作為程序的入口。注:有且僅有一個類被public修飾并與文件同名。

5、靜態(tài)快在main函數(shù)之前執(zhí)行。初始化執(zhí)行順序:父靜態(tài)變量 父靜態(tài)代碼塊 子靜態(tài)代碼變量 子靜態(tài)代碼塊 父非靜態(tài)變量 父非靜態(tài)代碼塊 父類構(gòu)造函數(shù) 子非靜態(tài)變量 子非靜態(tài)代碼塊 子類構(gòu)造函數(shù)

6、構(gòu)造函數(shù):

1)與類同名,無返回值

2)可以有多個,根據(jù)參數(shù)不同

3)總是伴隨new操作一起調(diào)用

4)主要用來初始化對象

5)不能被繼承

6)可用super來顯示調(diào)用父類構(gòu)造函數(shù)

7、淺復制僅僅復制考慮的對象,不復制它引用的對象。深復制兩者都復制

8、面向?qū)ο蠛兔嫦蜻^程有什么不同:

1)面向?qū)ο笫怯梅铣R?guī)思維的方式去處理客觀世界的問題,面向過程是則重以事件為中心,模塊化。

2)面向?qū)ο笫鞘褂嬎銠C世界向客觀世界靠攏,使問題的處理更清晰。面向過程是清晰準確表達過程的模塊,把客觀世界的問題抽象成計算機可以處理的過程。

9、面向?qū)ο蟮奶卣骱蛢?yōu)點:抽象 繼承 封裝 多態(tài)有較高的開發(fā)效率,代碼可重用。較高的可維護性,代碼更清晰明了。

10、java只支持單根繼承,extends繼承是 is a 關(guān)系,組合是 has a關(guān)系。

在java語言中能用到組合的盡量不要用繼承

11、多態(tài):

重載(同個類中有多個同名方法) 水平關(guān)系

重寫(子類重寫父類,方法名和參數(shù)列表相同) 垂直關(guān)系

12、抽象類和接口的異同:

1)只要包含一個抽象方法都是抽象類,接口的方法全部是抽象方法,稱為純抽象類。

2)抽象類的子類需實現(xiàn)父類的抽象方法。

3)接口中的變量都默認為:static final 必須賦初值。

4)接口實現(xiàn)用implements。一個類可以實現(xiàn)多個接口實現(xiàn)類似多繼承的關(guān)系。

5)接口被運用于常用的功能,如:添加刪除。抽象類用于生活公共類的角色,不適用經(jīng)常對代碼修改的情況

13、this和super的區(qū)別:

This用來指向當前實例對象

Super用來訪問父類的方法和成員變量

子類繼承父類時,子類構(gòu)造函數(shù)中super()必須放第一句。

14、break continue return 的區(qū)別:

Break 用于直接強行跳出當前循環(huán),不執(zhí)行剩余代碼

Continue 用于停止當次循環(huán),回到起始處進行下次循環(huán)。

Return 跳轉(zhuǎn) 用來表示從一個方法中返回。

Break out跳出多重循環(huán)

15、static的作用:

a 為對象分配單一的存儲空間,與創(chuàng)建對象個數(shù)無關(guān)

b 實現(xiàn)某個方法或?qū)傩院皖惗皇桥c對象關(guān)聯(lián)在一起

C 變量可達到全局的效果,在內(nèi)存中只有一個復制

16、不可變類的實現(xiàn):

類中的所有成員變量被private修飾

沒有寫set方法

類定義final

17、值傳遞和引用傳遞的區(qū)別:

值傳遞:實參會把它的值傳遞給形參

引用傳遞:傳遞的是對象,形參和實參指向同個存儲單元。

18、有八種基本數(shù)據(jù)類型,類型轉(zhuǎn)換的優(yōu)先級:byte不能與booleam互換。

19、round 表示四舍五入 ceil表示向上取整 floor表示向下取整,i++表示先執(zhí)行后加

一,++i表示先加一后執(zhí)行。

20、String s1=”abc”是存放在常量區(qū)

String s2=”abc”s2應用常量區(qū)的對象,不會創(chuàng)建新的對象。

String s3=new String(“abc”)是在堆中創(chuàng)建對象,

String s4=new String(“abc”)又必須在堆中創(chuàng)建新對象。

21、“==”與“equals”

“==”用來比較兩個變量的值是否相等,如果一個變量指向餓數(shù)據(jù)是對象(引用類型),就有兩塊內(nèi)存。對象本身占用一塊內(nèi)存(堆內(nèi)存),變量也占用一塊內(nèi)存。String s4 = new String(“abc”)。變量s所對應的內(nèi)存中存儲的數(shù)值就是對象占用那塊內(nèi)存的首地址。如果想看兩個變量是否指向同一個對象,即要看他們對應內(nèi)存中的數(shù)值(首地址)是否相同。

equals比較的不是引用,而是數(shù)值內(nèi)容,即比較的是abc。

22、數(shù)組也是對象。數(shù)組提供length屬性來獲取數(shù)組的長度,而String是通過length()計算。

23、異常處理

1)try catch finally模式

2)Finally塊中的代碼一定會被執(zhí)行,除非這兩種情況:當程序在try之前就遇到異常或者在try中通過exit()強制退出。

3)jvm將錯誤表示為一個異常并拋出,通過catch來捕獲,然后進行處理。安全性和魯棒性。

4)異常分為兩大類:錯誤(error)和異常(Excetion)

異常分為:檢查異常和運行異常。

檢查異常又稱為編譯異常。

比如:IO異常、SQL異常

運行異常為:空指針異常、類型轉(zhuǎn)換異常、算術(shù)異常、數(shù)組越界異常、數(shù)組存儲異常、緩存區(qū)溢出異常。

先捕獲子類后捕獲父類,盡早拋出異常,能處理就處理,不處理就拋出,運行時異常實際不必處理,直接拋出。

24、Java IO:字節(jié)流(8位)不會用到緩存 字符流(16位)用到緩存

25、Socket稱為套接字。用來實現(xiàn)不同虛擬機或不同計算機之間的通信。

分為兩種類型:面向連接的TCP,可靠。無面向連接的UDP,不可靠。

任何一個Socket都是由一個IP地址和端口號唯一確定。

26、java平臺獨立性是指一個平臺上編寫和編譯程序,而在其他平臺上運行。有JVM和java API。

Java語言是一種動態(tài)解釋型語言,類class只有被加載到JVM上才能運行。不會一次加載全部類后執(zhí)行,而是先加載基類,其他類是需要時再加載。

27、垃圾回收GC:回收不會再使用的內(nèi)存。三個任務(wù):分配內(nèi)存;確保被引用的內(nèi)存不被錯誤地回收;回收不再被引用的對象的內(nèi)存。

28、java中內(nèi)存泄露問題:

兩種情況:

1)在堆中申請的空間沒有得到釋放

2)對象不再被使用,但是仍在內(nèi)存中保留著

原因:靜態(tài)集合類、各種連接、監(jiān)聽器、變量不合理的作用域

29、java中堆和棧的區(qū)別:

分配在棧:基本數(shù)據(jù)類型的變量、對象的引用變量

變量出了作用域就會被自動釋放

分配在堆:引用類型變量、需要通過new創(chuàng)建的變量。主要為運行時創(chuàng)建的對象

JVM是基于堆棧的虛擬機,每個java程序都運行在一個單獨的JVM實例上,所以一個java程序中的對個線程運行在,每個實例又唯一對應一個堆,所以這些線程之間會共享堆內(nèi)存。

只需要申請堆空間,不需要考慮釋放問題。

使用棧中的引用變量來訪問堆中的數(shù)組和對象。

堆只要是用來存放對象的,棧主要是用來放執(zhí)行程序的。

棧的速度快,但大小和生存期確定,缺乏靈活性。堆是動態(tài)分配內(nèi)存,靈活性強但速度慢。

30、容器:java Collections框架:list 、Queue 、set 、stack 、map
list 、Queue 、set 、stack都繼承Collection接口。

1)List是有序的Collection。按對象的進入順序保存對象,可保存重復對象。

2)Set是集合的概念,集合中不能有重復的元素。

3)map是鍵映射到值得數(shù)據(jù)結(jié)構(gòu)。值可以重復,但是鍵是唯一的,不能重復。

31、迭代器:是一個對象,一種訪問一個容器對象的各個元素,而又不必暴露該對象內(nèi)部的細節(jié)方法。

1)使用容器的iterator()方法返回一個Iterator,然后通過Iterator的next()方法返回一個元素。

2)使用Iterator的hasNext()方法判斷容器中是否還有元素,如果有可以使用next()獲取下一個元素。

3)通過remove()來刪除迭代器返回的元素。

32、collection和collections的區(qū)別:

Collection:是一個集合接口,為各個具體集合提供最大化的統(tǒng)一操作。

Collections:是針對集合類的一個包裝類。不能實例化,相當于一個工具類,服務(wù)于Collection框架。

33、多線程:

線程:執(zhí)行代碼的一個執(zhí)行單元。

進程:一個正在執(zhí)行的程序

各線程共享程序的內(nèi)存空間(代碼段、數(shù)據(jù)、堆空間)有獨立的棧空間。

線程優(yōu)點:

1)減少程序的響應時間

2)相比進程,創(chuàng)建個切換開銷小

3)多CPU和多核本身就具有多線程能力

4)簡化程序結(jié)構(gòu),便于理解和維護。

34、如何實現(xiàn)java多線程:

1)繼承Thread類,重寫run()方法

2)實現(xiàn)Runnable接口,并實現(xiàn)接口的run()方法。

3)實現(xiàn)Callable接口,重寫call()方法。

35、同步

要想實現(xiàn)同步操作,必須獲得每個線程對象的鎖,獲得它可以保證同一時刻只有一個線程能夠進入臨界區(qū),并且在這個鎖被釋放之前,其他線程就能再進入臨界區(qū),如果還有其他線程想要獲得該對象的鎖,只能進入等待隊列等待。

36、多進程同步的實現(xiàn)方法:

1)synchronized關(guān)鍵字

2)Wait()方法與notify()方法

3)Lock

37、終止線程的方法:stop()方法與suspeng()方法。

Java提供兩種線程:守護線程(服務(wù)進程)、用戶進程。

38、如何通過JDBC來訪問數(shù)據(jù)庫:

1)加載JDBC驅(qū)動器,將JDBC驅(qū)動 jar包復制到lib下

2)加載JDBC驅(qū)動

3)創(chuàng)建數(shù)據(jù)庫連接

4)建立Statement對象或是PrepareStatement對象。用于對數(shù)據(jù)庫操作

5)執(zhí)行SQL語句

6)訪問結(jié)果集ReaultSet對象

7)依次關(guān)閉ReaultSet Statement Connection。

39、Class.forName()方法的作用是把類加載到JVM中。

在使用JDBC連接數(shù)據(jù)庫之前,一般會調(diào)用Class.forName(“com.mysql.jdbc.Driver”)方法來加載驅(qū)動。
Statement用于執(zhí)行不帶參數(shù)的簡單SQL語句,并返回它所生成結(jié)果的對象。每次執(zhí)行SQL,數(shù)據(jù)庫都會編譯該SQL語句。
PrepareStatement可執(zhí)行帶參數(shù)的。效率更高,可讀性,可維護性更高,安全性更好

40、JDBC提供了getString()、getInt()、getIData()等方法從ResultSet中獲取數(shù)據(jù)。

41、在JDBC連接時連接池數(shù)目有限,所以一定要保證釋放不再使用的連接。

createStatement和prepareStatement最好放在循環(huán)外面,而且使用statement后需要及時關(guān)閉。最好是執(zhí)行一次executeQuery后馬上關(guān)閉statement。

42、Hibernate是JDBC的封裝。采用配置文件的形式將數(shù)據(jù)庫的連接參數(shù)寫到XML中,但
是最后對數(shù)據(jù)庫的訪問還是要通過JDBC來完成。

43、Hibernate是個持久層框架,它將表中的信息映射到XML中,再從XML文件映射到相應的持久化類中。

Java Web

1、瀏覽器的作用:

1)、完成與服務(wù)器端的交互。

2)、完成HTML的解析,實現(xiàn)用戶需要看的內(nèi)容以直觀的信息展示出來。

2、HTTP的請求方法有:GET POST HEAD TRACE OPTIONS

GET:是最簡單的請求方法,從服務(wù)器端獲取用戶所需的資源,并將其作為響應返回給客戶端。獲取服務(wù)器端的信息(查詢)。若需上傳數(shù)據(jù)則添加到URL后面。數(shù)據(jù)暴露安全不夠,并且數(shù)量受限制。

POST:除了能夠從服務(wù)器端獲取資源外,同時還可以向服務(wù)器上傳數(shù)據(jù)。上傳的數(shù)據(jù)不是在URL中明文顯示,可以上傳大量數(shù)據(jù),用戶不可見

3、Servlet:

采用Java語言編寫的服務(wù)器程序,運行于Web服務(wù)器中的Servlet容器中,主要功能是提供請求、響應的服務(wù)模式,可以生成動態(tài)的Web內(nèi)容。

Web服務(wù)器獲取到一個對servlet的請求時,會將其交給Tomcat容器進行處理,容器再通過調(diào)用Servlet的方法(doGet() doPost())來響應請求。

步驟:

發(fā)起servlet請求——>Web服務(wù)器交給容器處理——>容器創(chuàng)建兩個對象HttpServletResponse HttpServletRequire——>創(chuàng)建單獨線程,并將兩個對象以參數(shù)形式傳遞進入線程——>線程容器調(diào)用Servlet的service()方法中的doGet()或doPost()完成響應——>容器將響應消息以HTML形式返回給客戶。

4、Servlet的生命周期:

加載——>創(chuàng)建——> 初始化——> 處理客戶請求——> 卸載

5、JSP的優(yōu)點:

JSP:嵌入java代碼的html文件。主要解決servlet與HTML的分離。實現(xiàn)業(yè)務(wù)邏輯與視圖進行分離。

6、JSP與servlet的異同:

相同:

本質(zhì)都是Servlet文件,只要是JSP能完成的工作,使用Servlet都能完成.JSP最終都是會轉(zhuǎn)化為servlet來運行。

不同:

Servlet是處于控制層,主要是做流程控制和業(yè)務(wù)處理。JSP是處于視圖層,主要用于顯示。

Servlet沒有內(nèi)置對象,JSP中的內(nèi)置對象主要是通過HttpServletResponse 對象、HttpServletRequire對象得到。

7、MVC模型:

模型層(M):實現(xiàn)系統(tǒng)業(yè)務(wù)邏輯。JavaBean或EJB

視圖層(V):實現(xiàn)用戶的交互。JSP

控制層(C): 實現(xiàn)視圖與模型的邏輯控制。servlet

8、控制層:

控制器接收用戶的輸入并調(diào)用模型和視圖去完成。

控制器本身不輸出任何東西,也不執(zhí)行任何處理。

只是接收請求并決定使用哪個模型去處理請求,決定使用哪個視圖去顯示模型處理返回數(shù)據(jù)

9、MVC的優(yōu)點:

1)低耦合性,實現(xiàn)視圖層與邏輯層分離。

2)高重用性和可適用性

3)部署迅速

4)容易維護

10、Servlet中的forward和redirect有什么區(qū)別:

Forward是服務(wù)器內(nèi)部的重定向,服務(wù)器直接訪問目標地址的url,地址不變。

Redirect:客戶端的重定向,完全跳轉(zhuǎn),地址改變。

11、JSP的內(nèi)置對象:

1)require(請求對象)

2)Response(響應對象)

3)pageContext(頁面上下文對象)

4)Session(會話對象)

5)Application(應用程序?qū)ο螅?/p>

6)Out(輸出對象)

7)Config(配置對象)

8)Page(頁面對象)

9)Exception(異常對象)

12、request對象的方法:

1)setAttribute(String name ,Object)設(shè)置name的屬性值

2)getAttribute(String name )獲取name的屬性值

3)getParameter(String name )獲取用戶提交的數(shù)據(jù),name與表單的name對應一致

4)getSession()用來獲取與請求相關(guān)的會話

13、JSP中的動作:

1)JSP:include 用來頁面請求時引進一個文件

2)Jsp:useBean 用來實例化一個javabean

3)Jsp:setProperty 用來設(shè)置已經(jīng)實例化的bean對象的屬性

4)Jsp:getProperty 用來獲取已經(jīng)實例化的bean對象的屬性

5)Jsp:foward 用來將請求跳轉(zhuǎn)到另外一個頁面

14、JSP中include指令和include動作

指令:<% @include file =”test.jsp “%>

動作:

15、會話跟蹤技術(shù):

對同一個用戶對服務(wù)器的連續(xù)請求和接收響應進行監(jiān)視。

1)page一個頁面

2)Request一個請求

3)Session 一個用戶體驗

4)Application 整個Web應用程序

16、字符串編碼:GBK 、UTF-8

17、什么是Ajar

異步j(luò)s與XML。

結(jié)合了java技術(shù)、js技術(shù)、xml技術(shù)。 客戶端技術(shù)

功能:在不刷新頁面的情況下通過與服務(wù)器進行少量的數(shù)據(jù)交互來提高頁面的交互性,減少響應時間,改善用戶體驗

18、cookie和session的區(qū)別:

Session:指用來在客戶端與服務(wù)器端之間保持狀態(tài)的解決方案以及存儲結(jié)構(gòu)。

Cookie:由Web服務(wù)器保存在用戶瀏覽器上的小文件。

19、web服務(wù)器:接收來自于客戶端的請求,然后把對請求的處理結(jié)果反饋個客戶端

兩大web服務(wù)器:IIS Apache。

20、web容器:TomcatJBoss

負責給servlet提供http請求和響應對象,調(diào)用doGet()過doPost()方法來處理用戶請求。

21、EJB的類別:

1)session Bean(會話Bean)實現(xiàn)服務(wù)器端的業(yè)務(wù)邏輯,協(xié)調(diào)Bean之間的交互

2)Entity Bean(實體Bean)資料組件 代表數(shù)據(jù)庫中的記錄

3)Message Bean(消息驅(qū)動 Bean)處理異步消息,一般不是由用戶來調(diào)用的

22、EJB與Javabean的異同:

1)EJB:主要用于服務(wù)器端的開發(fā),Javabean主要用在客戶端的開發(fā)。

2)EJB組件可以部署在EJB容器中,不直接訪問組件,而是通過容器訪問,javabean不可部署

3)EJB是分布式對象,可以被遠程調(diào)用,javabean不是,只能在內(nèi)部被訪問

23、EJB的角色:

1)Enterprise Bean Provider(企業(yè)級組件開發(fā)者)

2)Application Assembler(應用組合者)

3)EJB Deployer(EJB部署者)

4)EJB Sever Provider(EJB服務(wù)器提供者)

5)EJB Container Provider(EJV容器提供者)

6)System Administrator(系統(tǒng)管理員)

24、數(shù)據(jù)庫連接池的工作機制:

原因:

1)建立數(shù)據(jù)庫是非常耗時的操作

2)數(shù)據(jù)庫連接個數(shù)是有限的

數(shù)據(jù)庫連接池負責分配 管理 釋放數(shù)據(jù)庫連接。當客戶需要訪問數(shù)據(jù)庫是,就可以直接從池中獲取數(shù)據(jù)庫的連接,而不用去創(chuàng)建連接,同時標志為忙狀態(tài)。

25、JAVAEE開發(fā)的調(diào)優(yōu)方法:

1)優(yōu)化設(shè)計

2)盡可能使用數(shù)據(jù)庫連接

3)使用框架

4)優(yōu)化I/O

5)優(yōu)化查詢

26、struts框架的優(yōu)點:

1)實現(xiàn)表現(xiàn)和邏輯的分離

2)提供頁面導航功能

3)提供表單驗證

4)提供數(shù)據(jù)庫連接池

5)提供了異常處理機制

6)支持國際化

27、數(shù)據(jù)驗證分為:

1)表單驗證

2)業(yè)務(wù)邏輯驗證

28、國際化:

程序在不修改內(nèi)部代碼的情況下,根據(jù)不同地區(qū)顯示相應的界面

29、什么事控制反轉(zhuǎn):

也稱依賴注入,一種降低對象之間耦合關(guān)系的設(shè)計思想。

使上層不仔依賴于下層的接口,調(diào)用者(子)決定被調(diào)用者(父)。通過注入一個實例化的對象來實現(xiàn)解耦和目的。

30、Spring框架

提供了對輕量級loc的良好支持,也提供對AOP技術(shù)的非常好的封裝。

31、Hibernate框架,持久層框架

實現(xiàn)Java對象與關(guān)系數(shù)據(jù)庫記錄的映射,簡化開發(fā)人員訪問數(shù)據(jù)庫的流程,提高軟件開發(fā)的效率

任何使用到JDBC的都可以使用Hibernata

提高性能方法:

1)延遲加載

2)緩存技術(shù)

3)優(yōu)化查詢語句

32、實現(xiàn)分頁:

1)Hibernate自帶的分頁機制

2)用SQL語句實現(xiàn),使用limit關(guān)鍵字

33、SSH:

struts實現(xiàn)視圖部分

Hibernate實現(xiàn)模型部分

Spring實現(xiàn)業(yè)務(wù)部分

采用SSH框架,不僅能實現(xiàn)視圖、控制器與模型的徹底分離,而且還能實現(xiàn)業(yè)務(wù)邏輯與數(shù)據(jù)持久層的分離

總結(jié)

以上所述就是本文關(guān)于Java編程語言的基礎(chǔ)知識匯總的全部內(nèi)容,雖不至于詳細,但還是比較全面的,希望對大家能有所幫助。

原文鏈接:https://www.2cto.com/kf/201709/682314.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成年免费视频黄网站在线观看 | 少妇的肉体k8经典 | 毛片视频网站在线观看 | 欧美中文在线 | 免费视频99| www.99tv| 日韩av片在线免费观看 | 久久精品在线免费观看 | 日韩在线播放第一页 | 久久精品一区二区三区四区五区 | 国产91精品久久久久久 | 国产毛片在线看 | 国产精品久久国产精麻豆96堂 | 国产精品av久久久久久网址 | 日本黄色一级视频 | 亚洲一区二区三区精品在线观看 | av电影在线播放 | 成人午夜免费在线视频 | 91成人免费在线视频 | 中文字幕h | 中文字幕xxx | 久久欧美亚洲另类专区91大神 | 精品一区二区三区在线播放 | 性欧美视频在线观看 | 久久蜜臀一区二区三区av | 精品国产亚洲人成在线 | 亚洲第一激情 | 欧美成年性h版影视中文字幕 | 国产精品欧美久久久久一区二区 | 色阁av | 欧美性受xxxx人人本视频 | 久久91久久久久麻豆精品 | 欧美大片一级毛片 | 成人久久久精品国产乱码一区二区 | 男女羞羞视频 | 色老师影院 | 亚洲一区二区国产 | 98色视频| 国产欧美亚洲精品 | 亚洲涩涩图 | 2019亚洲日韩新视频 |