面試攻略,Java 基礎面試 100 問(十三)

什么時候用 assert?

assertion(斷言)在軟件開發中是一種常用的調試方式,很多開發語言中都支持這種機制。一般來說,assertion 用于保證程序最基本、關鍵的正確性。assertion 檢查通常在開發和測試時開啟。為了提高性能,在軟件發布后, assertion 檢查通常是關閉的。在實現中,斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true;如果表達式計算為 false,那么系統會報告一個AssertionError斷言用于調試目的:

assert(a?>?0);?//?throws?an?AssertionError?if?a?<=?0

斷言可以有兩種形式:

assert Expression1;

assert Expression1 : Expression2 ;

Expression1 應該總是產生一個布爾值。

Expression2 可以是得出一個值的任意表達式;這個值用于生成顯示更多調試信息的字符串消息。

斷言在默認情況下是禁用的,要在編譯時啟用斷言,需使用 source 1.4 標記:

javac -source 1.4 Test.java要在運行時啟用斷言,可使用-enableassertions 或者-ea 標記。

要在運行時選擇禁用斷言,可使用-da 或者-disableassertions 標記。

要在系統類中啟用斷言,可使用-esa 或者-dsa 標記。還可以在包的基礎上啟用或者禁用斷言。可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數。不過,斷言不應該用于驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應該以任何方式改變程序的狀態。

Error 和 Exception 有什么區別?

Error 表示系統級的錯誤和程序不必處理的異常,是恢復不是不可能但很困難的情況下的一種嚴重問題;比如內存溢出,不可能指望程序能處理這樣的情況;Exception 表示需要捕捉或者需要程序進行處理的異常,是一種設計或實現問題;也就是說,它表示如果程序運行正常,從不會發生的情況。

try{}里有一個 return 語句,那么緊跟在這個 try 后的 finally{}里的 code會不會被執行,什么時候被執行,在 return 前還是后?

會執行,在方法返回調用者前執行。Java 允許在 finally 中改變返回值的做法是不好的,因為如果存在 finally 代碼塊,try 中的 return 語句不會立馬返回調用者,而是記錄下返回值待 finally 代碼塊執行完畢之后再向調用者返回其值,然后如果在 finally 中修改了返回值,這會對程序造成很大的困擾,C#中就從語法上規定不能做這樣的事。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36681.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36681.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36681.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

支持對接鴻蒙系統的無線模塊及其常見應用介紹

近距離的無線通信得益于萬物互聯網的快速發展&#xff0c;基于集成部近距離無線連接&#xff0c;為固定和移動設備建立通信的藍牙技術也已經廣泛應用于汽車領域、工業生產及醫療領域。為協助物聯網企業終端產品能快速接入鴻蒙生態系統&#xff0c;SKYLAB聯手國產芯片廠家研發推…

找不到mfc140u.dll怎么辦?mfc140u.dll丟失怎樣修復?簡單三招搞定

最近我遇到了一個問題&#xff0c;發現我的電腦上出現了mfc140u.dll文件丟失的錯誤提示。這個錯誤導致一些應用程序無法正常運行&#xff0c;讓我感到非常困擾。經過一番研究和嘗試&#xff0c;我終于成功修復了這個問題&#xff0c;并從中總結出了一些心得。 mfc140u.dll丟失原…

財報解讀:繼續押注Disney+,迪士尼距離盈利還有多遠?

迪士尼最新一季的“答卷”&#xff0c;透露著不小的寒氣。 近日&#xff0c;迪士尼披露了2023財年第三季度&#xff08;自然年2023年Q2&#xff09;業績報告&#xff0c;營收223.3億美元&#xff0c;同比僅增長4%&#xff0c;低于市場預期的225.1億美元&#xff1b;歸母凈虧損…

【人工智能前沿弄潮】——生成式AI系列:Diffusers應用 (2) 訓練擴散模型(無條件圖像生成)

無條件圖像生成是擴散模型的一種流行應用&#xff0c;它生成的圖像看起來像用于訓練的數據集中的圖像。與文本或圖像到圖像模型不同&#xff0c;無條件圖像生成不依賴于任何文本或圖像。它只生成與其訓練數據分布相似的圖像。通常&#xff0c;通過在特定數據集上微調預訓練模型…

OpenLayers入門,OpenLayers入門文檔,OpenLayers入門手冊,OpenLayers相比其他地圖引擎有哪些優點?

專欄目錄&#xff1a; OpenLayers入門教程匯總目錄 前言 在學習OpenLayers之前&#xff0c;總是需要了解OpenLayers&#xff0c;知道OpenLayers是什么&#xff0c;OpenLayers能夠做什么&#xff0c;OpenLayers有哪些用途和特性&#xff0c;然后OpenLayers相比其他地圖引擎又有…

數學運算1

正確答案&#xff1a;F 你的答案&#xff1a;E 參考答案&#xff1a;最大排列為100 1 99 2 98 3…51 49 50 所以和為999897…1(100-50)因為是一個圈所以&#xff0c;100和50相接&#xff0c;所以等于5000 知識點&#xff1a;數學運算

MySQL 慢查詢探究分析

目錄 背景&#xff1a; mysql 整體結構&#xff1a; SQL查詢語句執行過程是怎樣的&#xff1a; 知道了mysql的整體架構&#xff0c;那么一條查詢語句是怎么被執行的呢&#xff1a; 什么是索引&#xff1a; 建立索引越多越好嗎&#xff1a;   如何發現慢查詢&#xff1…

樹結構--介紹--二叉樹遍歷的遞歸實現

目錄 樹 樹的學術名詞 樹的種類 二叉樹的遍歷 算法實現 遍歷命名 二叉樹的中序遍歷 二叉樹的后序遍歷 二叉樹的后序遍歷迭代算法 二叉樹的前序遍歷 二叉樹的前序遍歷迭代算法 樹 樹是一種非線性的數據結構&#xff0c;它是由n(n≥0)個有限節點組成一個具有層次關系…

Docker安裝 elasticsearch-head

目錄 前言安裝elasticsearch-head步驟1&#xff1a;準備1. 安裝docker2. 搜索可以使用的鏡像。3. 也可從docker hub上搜索鏡像。4. 選擇合適的redis鏡像。 步驟2&#xff1a;拉取elasticsearch-head鏡像拉取鏡像查看已拉取的鏡像 步驟3&#xff1a;創建容器創建容器方式1&#…

SpringBoot復習:(28)【前后端不分離】自定義View

一、自定義View package cn.edu.tju.view;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Comp…

C# --- Case Study

C# --- Case Study C# — Mongo數據庫事務的應用 C# — 如何解析Json文件并注入MongoDB C# — MongoDB如何安全的替換Collection

百度翻譯API整合SpringBoot

案例背景,按照官方給的Demo,實在是太啰嗦了, 大致步驟 封裝數據>簽名>發送請求, 仔細一看劈里啪啦一大堆,最后還要手動關流關連接,難道整合到SpringBoot項目里面我還得為內存管理考慮 所以就有了如下需求 使用 RestTemplate的對象進行發送請求數據,RestTemplate由s…

Redis緩存刪除略和內存淘汰策略及LRU

1、Redis內存若在配置文件中未設置&#xff0c;內存會無限制增長&#xff0c;直到超出物理內存&#xff0c;拋出out of memory內存耗盡異常 解決方法&#xff0c;調整maxmemory參數&#xff0c;一般設置為物理內存的3/4&#xff0c;并且添加緩存刪除策略 2、Redis對于設置了過…

項目經理的會議之道:全參與還是精選參與?

引言 在項目管理中&#xff0c;會議是一個常見的工具&#xff0c;用于溝通信息、解決問題、做出決策等。然而&#xff0c;項目經理是否需要參加所有的會議呢&#xff1f;這是一個值得深思的問題。作為項目經理&#xff0c;我們需要權衡會議的重要性和我們的時間管理。我們不能…

【第一階段】kotlin的函數

函數頭 fun main() {getMethod("zhangsan",22) }//kotlin語言默認是public,kotlin更規范&#xff0c;先有輸入&#xff08; getMethod(name:String,age:Int)&#xff09;再有輸出(Int[返回值]) private fun getMethod(name:String,age:Int): Int{println("我叫…

Elasticsearch集群shard過多后導致的性能問題分析

1.問題現象 上午上班以后發現ES日志集群狀態不正確&#xff0c;集群頻繁地重新發起選主操作。對外不能正常提供數據查詢服務&#xff0c;相關日志數據入庫也產生較大延時 2.問題原因 相關日志 查看ES集群日志如下&#xff1a; 00:00:51開始集群各個節點與當時的master節點…

Playwright快速上手-1

前言 隨著近年來對UI自動化測試的要求越來越高&#xff0c;,功能強大的測試框架也不斷的涌現。本系列主講的Playwright作為一款新興的端到端測試框架,憑借其獨特優勢,正在逐漸成為測試工程師的熱門選擇。 本系列文章將著重通過示例講解 Playwright python開發環境的搭建 …

Linux Day07

一、僵死進程 1.1僵死進程產生的原因 子進程先于父進程結束, 而父進程沒有獲取子進程退出碼&#xff0c;釋放子進程占用的資源&#xff0c;此時子進程將成為一個僵死進程。 在第一個框這里時父進程子進程都沒有結束&#xff0c;顯示其pid 父進程是2349&#xff0c;子進程是235…

【Nginx】Nginx網站服務

國外主流還是使用apache&#xff1b;國內現在主流是nginx&#xff08;并發能力強&#xff0c;相對穩定&#xff09; nginx&#xff1a;高性能、輕量級的web服務軟件 特點&#xff1a; 1.穩定性高&#xff08;沒apache穩&#xff09;&#xff1b; 2.系統資源消耗比較低&#xf…

Failed to set locale, defaulting to C.UTF-8 或者中文系統語言轉英文系統語言

CentOS 8中執行命令&#xff0c;出現報錯&#xff1a;Failed to set locale, defaulting to C.UTF-8報錯原因&#xff1a; 1、沒有安裝相應的語言包。2、沒有設置正確的語言環境。 解決方法1&#xff1a;安裝語言包 設置語言環境需使用命令 localelocale -a 命令&#xff0c;查…