武漢工貿(mào)職業(yè)學(xué)院《JavaSE課程設(shè)計(jì)專業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷_第1頁(yè)
武漢工貿(mào)職業(yè)學(xué)院《JavaSE課程設(shè)計(jì)專業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷_第2頁(yè)
武漢工貿(mào)職業(yè)學(xué)院《JavaSE課程設(shè)計(jì)專業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷_第3頁(yè)
武漢工貿(mào)職業(yè)學(xué)院《JavaSE課程設(shè)計(jì)專業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷_第4頁(yè)
武漢工貿(mào)職業(yè)學(xué)院《JavaSE課程設(shè)計(jì)專業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

學(xué)校________________班級(jí)____________姓名____________考場(chǎng)____________準(zhǔn)考證號(hào)學(xué)校________________班級(jí)____________姓名____________考場(chǎng)____________準(zhǔn)考證號(hào)…………密…………封…………線…………內(nèi)…………不…………要…………答…………題…………第1頁(yè),共3頁(yè)武漢工貿(mào)職業(yè)學(xué)院

《JavaSE課程設(shè)計(jì)專業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷題號(hào)一二三四總分得分批閱人一、單選題(本大題共35個(gè)小題,每小題1分,共35分.在每小題給出的四個(gè)選項(xiàng)中,只有一項(xiàng)是符合題目要求的.)1、關(guān)于Java的

Atomic

類,假設(shè)要進(jìn)行原子操作。以下關(guān)于

Atomic

類的描述,哪一項(xiàng)是錯(cuò)誤的?()A.

Atomic

類提供了對(duì)基本數(shù)據(jù)類型的原子操作方法B.使用

Atomic

類可以避免多線程環(huán)境下的并發(fā)問題C.

Atomic

類的操作是線程安全的,但性能較低D.

AtomicInteger

AtomicReference

Atomic

類的常見實(shí)現(xiàn)2、在Java中,異常處理機(jī)制用于處理程序運(yùn)行時(shí)可能出現(xiàn)的錯(cuò)誤情況。假設(shè)一個(gè)方法可能拋出

IOException

異常,以下關(guān)于異常處理的描述,哪一項(xiàng)是不正確的?()A.可以使用

try-catch

語(yǔ)句來捕獲和處理異常,將可能拋出異常的代碼放在

try

塊中,相應(yīng)的處理代碼放在

catch

塊中B.可以在方法聲明中使用

throws

關(guān)鍵字聲明該方法可能拋出的異常,讓調(diào)用者來處理C.一旦捕獲到異常,程序會(huì)立即終止執(zhí)行,不再繼續(xù)后續(xù)的代碼D.應(yīng)該合理地處理異常,避免捕獲過于寬泛或不處理異常導(dǎo)致程序不穩(wěn)定3、Java中的

Comparator

接口用于自定義對(duì)象的比較規(guī)則。假設(shè)我們有一個(gè)自定義的

Student

類,包含

name

age

兩個(gè)屬性,要按照年齡從小到大排序,以下哪個(gè)

Comparator

實(shí)現(xiàn)是正確的?()A.

(s1,s2)->s1.getAge()-s2.getAge()

B.

(s1,s2)->s2.getAge()-s1.getAge()

C.

(s1,s2)->s1.getName().compareTo(s2.getName())

D.

(s1,s2)->s2.getName().compareTo(s1.getName())

4、假設(shè)要在Java中實(shí)現(xiàn)一個(gè)自定義的線程池,能夠根據(jù)任務(wù)的優(yōu)先級(jí)和提交時(shí)間來調(diào)度任務(wù)的執(zhí)行。為了實(shí)現(xiàn)高效的任務(wù)調(diào)度和線程管理,以下哪種方式可能是需要考慮的?()A.使用優(yōu)先級(jí)隊(duì)列來存儲(chǔ)任務(wù)B.實(shí)現(xiàn)自定義的線程工廠C.優(yōu)化線程的創(chuàng)建和銷毀策略D.以上都是5、在Java中,內(nèi)部類(InnerClass)可以在一個(gè)類的內(nèi)部定義。假設(shè)在一個(gè)外部類

OuterClass

中有一個(gè)內(nèi)部類

InnerClass

,以下關(guān)于內(nèi)部類的描述,哪一項(xiàng)是不準(zhǔn)確的?()A.內(nèi)部類可以訪問外部類的私有成員和方法B.靜態(tài)內(nèi)部類可以不依賴外部類的實(shí)例而存在C.匿名內(nèi)部類常用于實(shí)現(xiàn)接口或繼承抽象類的簡(jiǎn)單情況D.內(nèi)部類的使用會(huì)使代碼結(jié)構(gòu)變得復(fù)雜,應(yīng)該盡量避免使用6、在Java的

String

類操作中,字符串的拼接有多種方式。假設(shè)要高效地拼接大量字符串,以下哪種方式是最優(yōu)的?()A.使用

+

運(yùn)算符B.使用

StringBuilder

類C.使用

StringBuffer

類D.以上方法效果相同7、在Java的網(wǎng)絡(luò)編程中,假設(shè)要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的客戶端與服務(wù)器之間的通信,使用

Socket

類。當(dāng)客戶端連接服務(wù)器失敗時(shí),以下哪種處理方式是合理的?()A.不斷重試連接B.拋出異常并終止程序C.等待一段時(shí)間后再重試D.忽略錯(cuò)誤,繼續(xù)執(zhí)行其他操作8、在Java的線程編程中,要實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行任務(wù),以下關(guān)于線程同步的描述,正確的是:()A.使用synchronized關(guān)鍵字可以保證多個(gè)線程對(duì)共享資源的互斥訪問,避免數(shù)據(jù)不一致的問題B.線程同步會(huì)降低程序的并發(fā)性,應(yīng)盡量避免使用C.可以通過多個(gè)線程同時(shí)修改共享數(shù)據(jù)來提高程序的執(zhí)行效率D.只要線程之間不共享數(shù)據(jù),就不需要進(jìn)行線程同步9、關(guān)于Java中的NIO(NewInput/Output),假設(shè)要處理大量的并發(fā)網(wǎng)絡(luò)連接和高吞吐量的數(shù)據(jù)傳輸。NIO提供了非阻塞的I/O操作方式。以下關(guān)于NIO的描述,哪個(gè)是正確的?()A.NIO比傳統(tǒng)的I/O操作更復(fù)雜,但性能一定更好B.NIO只適用于服務(wù)器端編程,不適用于客戶端C.可以使用

Selector

來實(shí)現(xiàn)多個(gè)通道的并發(fā)處理D.NIO不需要考慮緩沖區(qū)的管理,由系統(tǒng)自動(dòng)處理10、在Java中,關(guān)于Java中的斷言(Assertion),以下描述錯(cuò)誤的是:()A.斷言用于在開發(fā)和測(cè)試階段檢查程序的邏輯是否正確,默認(rèn)情況下斷言是啟用的B.可以使用assert關(guān)鍵字來編寫斷言語(yǔ)句,斷言表達(dá)式為假時(shí)會(huì)拋出AssertionError異常C.斷言不應(yīng)該用于處理正常的控制流,而應(yīng)該用于檢查不可恢復(fù)的錯(cuò)誤條件D.在生產(chǎn)環(huán)境中,通常會(huì)禁用斷言以提高性能11、對(duì)于Java中的模塊系統(tǒng)(ModuleSystem),以下描述正確的是:()A.模塊系統(tǒng)可以更好地組織和管理大型項(xiàng)目的代碼結(jié)構(gòu),提高代碼的可維護(hù)性和可擴(kuò)展性B.模塊之間的依賴關(guān)系是自動(dòng)處理的,不需要開發(fā)者進(jìn)行配置C.模塊系統(tǒng)會(huì)增加項(xiàng)目的復(fù)雜性,對(duì)于小型項(xiàng)目不建議使用D.一旦創(chuàng)建了模塊,就不能對(duì)其進(jìn)行修改和重新配置12、假設(shè)要開發(fā)一個(gè)Java程序來管理一個(gè)圖書館的書籍信息,包括書籍的名稱、作者、出版年份和庫(kù)存數(shù)量等。為了有效地組織和操作這些數(shù)據(jù),以下哪種數(shù)據(jù)結(jié)構(gòu)可能是最適合的?()A.數(shù)組B.鏈表C.哈希表D.二叉樹13、Java中的泛型可以提高代碼的類型安全性和可讀性。假設(shè)要實(shí)現(xiàn)一個(gè)通用的棧(Stack)數(shù)據(jù)結(jié)構(gòu),支持存儲(chǔ)不同類型的元素。以下關(guān)于泛型的應(yīng)用,哪一項(xiàng)是最正確的?()A.使用泛型類來定義棧,指定元素的類型B.不使用泛型,將棧中的元素都存儲(chǔ)為Object類型C.使用泛型方法來操作棧,而不是整個(gè)棧類是泛型的D.隨意使用泛型,不考慮類型的約束和邊界14、在Java中,以下哪個(gè)方法用于比較兩個(gè)字符串是否相等(不區(qū)分大小寫)?()A.

equalsIgnoreCase()

B.

compareToIgnoreCase()

C.

regionMatchesIgnoreCase()

D.

startsWithIgnoreCase()

15、關(guān)于Java中的序列化和反序列化,假設(shè)需要將一個(gè)對(duì)象的狀態(tài)保存到文件中,或者通過網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)程序中,然后再恢復(fù)對(duì)象的狀態(tài)。以下關(guān)于序列化的描述,哪個(gè)是正確的?()A.所有類的對(duì)象都可以直接進(jìn)行序列化B.序列化只保存對(duì)象的成員變量值,不包括方法C.序列化后的對(duì)象可以在任何Java版本中進(jìn)行反序列化D.不需要對(duì)類進(jìn)行特殊的標(biāo)記或?qū)崿F(xiàn)特定的接口就能進(jìn)行序列化16、假設(shè)要在Java中實(shí)現(xiàn)一個(gè)緩存系統(tǒng),能夠根據(jù)鍵值快速獲取緩存的數(shù)據(jù),并且支持?jǐn)?shù)據(jù)的自動(dòng)過期和更新。以下哪種數(shù)據(jù)結(jié)構(gòu)和技術(shù)組合可能是最合適的?()A.使用

HashMap

和定時(shí)任務(wù)實(shí)現(xiàn)過期和更新B.使用

GuavaCache

庫(kù)提供的功能C.自己實(shí)現(xiàn)一個(gè)基于二叉搜索樹的緩存D.使用數(shù)據(jù)庫(kù)來存儲(chǔ)緩存數(shù)據(jù)17、關(guān)于Java中的集合框架,假設(shè)需要存儲(chǔ)一組不允許重復(fù)元素,并且能夠快速查找和遍歷的對(duì)象。同時(shí),要求元素能夠按照自然順序或者自定義的比較規(guī)則進(jìn)行排序。以下哪種集合類可能是最佳選擇?()A.

ArrayList

,可以動(dòng)態(tài)增長(zhǎng)的數(shù)組列表B.

HashSet

,基于哈希表實(shí)現(xiàn)的不允許重復(fù)元素的集合C.

TreeSet

,基于紅黑樹實(shí)現(xiàn)的有序集合D.

LinkedList

,雙向鏈表實(shí)現(xiàn)的集合18、在Java的正則表達(dá)式中,假設(shè)要匹配一個(gè)以數(shù)字開頭,后面跟著若干字母的字符串,以下哪個(gè)正則表達(dá)式是正確的?()A.

^[0-9][a-zA-Z]*

B.

[0-9][a-zA-Z]+

C.

^[a-zA-Z][0-9]*

D.

[a-zA-Z][0-9]+

19、Java中的對(duì)象序列化和反序列化用于將對(duì)象轉(zhuǎn)換為字節(jié)流和從字節(jié)流恢復(fù)對(duì)象。假設(shè)要將一個(gè)自定義類的對(duì)象進(jìn)行序列化和反序列化,以下關(guān)于序列化的描述,哪一項(xiàng)是不正確的?()A.自定義類需要實(shí)現(xiàn)

Serializable

接口才能進(jìn)行序列化B.序列化后的對(duì)象可以存儲(chǔ)在文件中或通過網(wǎng)絡(luò)傳輸C.反序列化時(shí),對(duì)象的屬性值會(huì)按照序列化時(shí)的順序和類型進(jìn)行恢復(fù)D.序列化和反序列化的過程是自動(dòng)完成的,不需要開發(fā)者進(jìn)行額外的處理20、對(duì)于Java中的正則表達(dá)式,假設(shè)需要從一段復(fù)雜的文本中提取特定格式的字符串,例如電話號(hào)碼、郵箱地址等。正則表達(dá)式提供了強(qiáng)大的模式匹配能力。以下關(guān)于正則表達(dá)式的使用,哪個(gè)是正確的?()A.正則表達(dá)式的性能在所有情況下都優(yōu)于手動(dòng)字符串處理B.編寫復(fù)雜的正則表達(dá)式不需要考慮可讀性和可維護(hù)性C.可以使用

Pattern

Matcher

類來進(jìn)行正則表達(dá)式的操作D.正則表達(dá)式只能用于簡(jiǎn)單的字符串匹配,不能進(jìn)行復(fù)雜的提取和替換21、Java中的

Optional

類用于避免空指針異常。假設(shè)我們有一個(gè)可能為空的對(duì)象引用,使用

Optional

類進(jìn)行處理,以下哪個(gè)操作可以獲取對(duì)象的值,如果為空則提供一個(gè)默認(rèn)值?()A.

orElse

B.

orElseGet

C.

ifPresent

D.

get

22、在Java中,關(guān)于Java中的流(Stream)操作,以下說法正確的是:()A.Stream是Java8引入的新特性,用于對(duì)集合數(shù)據(jù)進(jìn)行高效的操作和處理B.Stream操作是一種鏈?zhǔn)讲僮?,可以連續(xù)調(diào)用多個(gè)方法進(jìn)行數(shù)據(jù)處理C.Stream操作可以分為中間操作和終端操作,中間操作會(huì)立即執(zhí)行,終端操作會(huì)觸發(fā)整個(gè)流的執(zhí)行D.Stream操作可以實(shí)現(xiàn)對(duì)集合元素的排序、過濾、映射等常見操作23、在Java中,以下哪個(gè)方法用于判斷一個(gè)字符串是否以指定的字符串開頭?()A.

startsWith()

B.

beginWith()

C.

isStartWith()

D.

hasStartWith()

24、在Java中,以下關(guān)于Java反射API的性能優(yōu)化,不正確的是:()A.盡量減少反射操作的次數(shù)B.緩存反射獲取的信息,避免重復(fù)獲取C.反射操作的性能優(yōu)化對(duì)整個(gè)程序的性能影響不大D.使用Java8引入的MethodHandle替代部分反射操作25、在Java的面向?qū)ο缶幊讨?,關(guān)于繼承和多態(tài)的概念。假設(shè)有一個(gè)父類

Animal

和一個(gè)子類

Dog

,

Animal

類中有一個(gè)方法

makeSound()

,在

Dog

類中重寫了這個(gè)方法?,F(xiàn)在有一個(gè)

Animal

類型的引用指向一個(gè)

Dog

對(duì)象,調(diào)用

makeSound()

方法時(shí),會(huì)執(zhí)行哪個(gè)類中的方法?()A.

Animal

類中的方法B.

Dog

類中的方法C.隨機(jī)執(zhí)行其中一個(gè)D.編譯錯(cuò)誤26、在Java的函數(shù)式編程中,以下關(guān)于Lambda表達(dá)式的說法,錯(cuò)誤的是()A.Lambda表達(dá)式可以簡(jiǎn)化函數(shù)式接口的實(shí)現(xiàn),使代碼更簡(jiǎn)潔B.Lambda表達(dá)式可以捕獲外部變量,但外部變量必須是final或effectivelyfinal的C.Lambda表達(dá)式可以替代匿名內(nèi)部類,提高代碼的可讀性和可維護(hù)性D.Lambda表達(dá)式只能用于函數(shù)式接口,不能用于普通接口27、假設(shè)要在Java中實(shí)現(xiàn)一個(gè)排序算法,例如快速排序,來對(duì)一個(gè)整數(shù)數(shù)組進(jìn)行排序。為了提高排序的效率和穩(wěn)定性,以下哪種優(yōu)化策略可能是需要考慮的?()A.選擇合適的基準(zhǔn)元素B.減少元素的比較次數(shù)C.優(yōu)化遞歸調(diào)用D.以上都是28、Java中的面向?qū)ο笤O(shè)計(jì)原則對(duì)于編寫高質(zhì)量的代碼非常重要。假設(shè)正在設(shè)計(jì)一個(gè)類,遵循單一職責(zé)原則,以下描述正確的是:()A.一個(gè)類應(yīng)該盡量承擔(dān)多個(gè)不同的職責(zé),以提高代碼的復(fù)用性B.一個(gè)類應(yīng)該只負(fù)責(zé)一個(gè)單一的、明確的功能或職責(zé),避免職責(zé)過多導(dǎo)致的復(fù)雜性和低內(nèi)聚C.可以根據(jù)需要隨時(shí)為一個(gè)類添加新的職責(zé),不影響其原有功能D.單一職責(zé)原則不重要,只要能實(shí)現(xiàn)功能即可29、關(guān)于Java中的線程同步工具,假設(shè)多個(gè)線程需要協(xié)作完成一個(gè)任務(wù),需要實(shí)現(xiàn)線程之間的等待和通知機(jī)制。以下哪種工具可以有效地實(shí)現(xiàn)這種線程間的通信?()A.

CountDownLatch

,用于等待一組線程完成操作B.

CyclicBarrier

,用于等待多個(gè)線程到達(dá)一個(gè)同步點(diǎn)C.

Semaphore

,用于控制同時(shí)訪問某個(gè)資源的線程數(shù)量D.

Condition

,與

ReentrantLock

配合使用,實(shí)現(xiàn)線程的等待和通知30、關(guān)于Java中的模塊系統(tǒng)(JavaModuleSystem),以下描述錯(cuò)誤的是:()A.模塊系統(tǒng)可以提高代碼的封裝性和可維護(hù)性B.模塊之間的依賴關(guān)系通過module-info.java文件來聲明C.一個(gè)模塊可以訪問其他模塊的所有公共類和方法D.模塊系統(tǒng)是在Java9中引入的新特性31、在Java的

Socket

編程中,關(guān)于服務(wù)器端的

ServerSocket

,假設(shè)設(shè)置了一個(gè)最大連接數(shù),當(dāng)連接數(shù)達(dá)到上限時(shí),新的連接請(qǐng)求會(huì)怎樣?()A.立即建立連接B.排隊(duì)等待C.拒絕連接D.以上都不對(duì)32、關(guān)于Java中的本地化(Localization)和國(guó)際化(Internationalization)支持,假設(shè)要開發(fā)一個(gè)應(yīng)用程序,使其能夠根據(jù)用戶的語(yǔ)言和地區(qū)設(shè)置顯示相應(yīng)的文本、日期、貨幣等格式。以下關(guān)于本地化和國(guó)際化的描述,哪個(gè)是正確的?()A.可以通過硬編碼的方式來處理不同語(yǔ)言和地區(qū)的差異B.Java提供了豐富的類和方法來支持本地化和國(guó)際化C.本地化和國(guó)際化只適用于Web應(yīng)用程序,不適用于桌面應(yīng)用程序D.不需要考慮字符編碼的問題,Java會(huì)自動(dòng)處理33、在Java的輸入輸出操作中,假設(shè)要從一個(gè)文本文件中讀取大量的數(shù)據(jù),并進(jìn)行復(fù)雜的處理。為了提高文件讀取的效率和性能,以下哪種方式可能是最優(yōu)的?()A.使用

BufferedReader

逐行讀取文件內(nèi)容B.使用

FileReader

直接讀取文件的字節(jié)數(shù)據(jù)C.使用

Scanner

類按特定格式讀取文件內(nèi)容D.一次性將整個(gè)文件內(nèi)容讀入內(nèi)存進(jìn)行處理34、Java中的反射機(jī)制提供了在運(yùn)行時(shí)動(dòng)態(tài)操作類和對(duì)象的能力。假設(shè)有一個(gè)類

MyClass

,以下關(guān)于反射的使用,正確的是:()A.可以通過反射獲取類的私有成員變量并直接修改其值B.反射機(jī)制會(huì)嚴(yán)重影響程序的性能,應(yīng)盡量避免使用C.可以使用反射動(dòng)態(tài)創(chuàng)建類的實(shí)例,并調(diào)用其方法D.反射只能用于獲取類的基本信息,如類名和父類35、假設(shè)在Java中有一個(gè)多線程程序,多個(gè)線程同時(shí)訪問一個(gè)共享的整數(shù)變量,以下關(guān)于線程安全的描述,正確的是:()A.可以使用volatile關(guān)鍵字來保證線程安全,避免數(shù)據(jù)不一致的問題B.只要多個(gè)線程對(duì)變量的操作是原子性的,就不需要進(jìn)行額外的線程同步C.線程安全問題只在多CPU系統(tǒng)中存在,在單CPU系統(tǒng)中可以忽略D.對(duì)于共享的整數(shù)變量,不需要考慮線程安全問題,Java會(huì)自動(dòng)處理二、判斷題(本大題共10小題,每小題2分,共20分.有多個(gè)選項(xiàng)是符合題目要求的.)1、在Java中,

Comparator

接口用于定義對(duì)象比較的規(guī)則,當(dāng)一個(gè)集合需要按照自定義的方式進(jìn)行排序時(shí),可以通過實(shí)現(xiàn)

Comparator

接口來定義比較邏輯。()2、在Java中,

String

類的

equals

方法比較的是字符串的內(nèi)容,而

==

比較的是字符串對(duì)象的引用。()3、當(dāng)使用Java進(jìn)行數(shù)據(jù)庫(kù)連接時(shí),通常需要在finally塊中關(guān)閉數(shù)據(jù)庫(kù)連接資源,以防止資源泄漏。()4、在Java中,使用Stream流可以對(duì)集合進(jìn)行高效的并行處理和函數(shù)式編程操作。()5、Java中的

BitSet

類用于高效地存儲(chǔ)和操作一組位,可以用于實(shí)現(xiàn)位向量或者布爾型數(shù)組的功能。()6、在Java中,

java.util.concurrent.CopyOnWriteArrayList

適用于讀多寫少的場(chǎng)景

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論