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

final, finally, finalize 的區別?

final:修飾符(關鍵字)有三種用法:如果一個類被聲明為 final,意味著它不能再派生出新的子類,即不能被繼承,因此它和 abstract 是反義詞。將變量聲明為 final,可以保證它們在使用中不被改變,被聲明為 final 的變量必須在聲明時給定初值,而在以后的引用中只能讀取不可修改。被聲明為 final 的方法也同樣只能使用,不能在子類中被重寫。

finally:通常放在 try…catch 的后面構造總是執行代碼塊,這就意味著程序無論正常執行還是發生異常,這里的代碼只要 JVM 不關閉都能執行,可以將釋放外部資源的代碼寫在 finally 塊中。finalize:Object 類中定義的方法,Java 中允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在銷毀對象時調用的,通過重寫 finalize() 方法可以整理系統資源或者執行其他清理工作。

什么是反射?

在Java運行時環境中,對于任意一個類,能否知道這個類有哪些屬性和方法?對于任意一個對象,能否調用它的任意一個方法

Java反射機制主要提供了以下功能:

  • 在運行時判斷任意一個對象所屬的類。

  • 在運行時構造任意一個類的對象。

  • 在運行時判斷任意一個類所具有的成員變量和方法。

  • 在運行時調用任意一個對象的方法。

反射機制的優缺點

  • 優點:

    • 能夠運行時動態獲取類的實例,提高靈活性;

    • 與動態編譯結合Class.forName('com.mysql.jdbc.Driver.class');//加載MySQL的驅動類

  • 缺點:

    • 使用反射性能較低,需要解析字節碼,將內存中的對象進行解析。

    • 其解決方案是:通過setAccessible(true)關閉JDK的安全檢查來提升反射速度;多次創建一個類的實例時,有緩存會快很多;ReflflectASM工具類,通過字節碼生成的方式加快反射速度

Java反射API有幾類?

反射 API 用來生成 JVM 中的類、接口或則對象的信息。

  • Class 類:反射的核心類,可以獲取類的屬性,方法等信息。

  • Field 類:Java.lang.reflec 包中的類,表示類的成員變量,可以用來獲取和設置類之中的屬性值。

  • Method 類:Java.lang.reflec 包中的類,表示類的方法,它可以用來獲取類中的方法信息或者執行方法。

  • Constructor 類:Java.lang.reflec 包中的類,表示類的構造方法。

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

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

相關文章

動手學DL——MLP多層感知機【深度學習】【PyTorch】

文章目錄 4、多層感知機( MLP)4.1、多層感知機4.1.1、隱層4.1.2、激活函數 σ 4.2、從零實現多層感知機4.3、簡單實現多層感知機4.4、模型選擇、欠擬合、過擬合4.5、權重衰退4.6、丟失法|暫退法(Dropout)4.6.1、dropout 函數實現4…

大數據--難點--地圖的制作

地圖一直是亮點也是難點,剛剛進公司的時候也很難懂~~做出來的也很難看 純CSS3使用vw和vh視口單位實現h5頁面自適應,gulp自動監聽sass改動并保存到css中 當修改了sass里面的代碼后,gulp會自動監聽修改內容并同名保存到css文件夾中&#xff0…

C#字符串占位符替換

using System;namespace myprog {class test{static void Main(string[] args){string str1 string.Format("{0}今年{1}歲,身高{2}cm,月收入{3}元;", "小李", 23, 177, 5000);Console.WriteLine(str1);Console.ReadKey(…

02-C++數據類型-高級

數據類型-高級 4、復合類型 4.4、結構簡介 struct inflatable {char name[20];float vol;double price; };inflatable vincent; //C struct inflatable goose; //C例子 // structur.cpp -- a simple structure #include <iostream> struct inflatable // structu…

B057-spring增強 依賴注入 AOP 代理模式 創建Bean

目錄 AOP概念代理模式引出AOP實現方式xml方式實現注解方式實現 AOP 概念 事務管理&#xff1a;比如可以抽取try catch的重復代碼 日志監控&#xff1a;比如業務邏輯前后打印關于當前訂單數量的日志&#xff0c;了解業務做了什么 性能監控&#xff1a;比如業務前后打印時間&…

浪潮信息趙帥:多元算力時代 開源開放的OpenBMC成為服務器管理優先解

“多元算力時代下&#xff0c;大規模的異構服務器設備面臨多種處理器架構、多種設備協議、不同管理芯片兼容的系統化設計挑戰&#xff0c;管理固件也迎來新的變革。開源開放的OpenBMC&#xff0c;以創新的分層解耦軟件架構&#xff0c;兼容不同處理器架構、算力平臺和管理芯片&…

人流目標跟蹤pyqt界面_v5_deepsort

直接上效果圖 代碼倉庫和視頻演示b站視頻006期&#xff1a; 到此一游7758258的個人空間-到此一游7758258個人主頁-嗶哩嗶哩視頻 代碼展示&#xff1a; YOLOv5 DeepSORT介紹 YOLOv5 DeepSORT是一個結合了YOLOv5和DeepSORT算法的目標檢測與多目標跟蹤系統。讓我為您詳細解釋一…

【字典學習+稀疏編碼Sparse Encoding】簡單介紹與sklearn的實現方式

文章目錄 1、字典學習與稀疏編碼2、sklearn的實現3、示例 1、字典學習與稀疏編碼 簡單來說&#xff0c;稀疏編碼就是把輸入向量&#xff08;信號&#xff09;/ 矩陣&#xff08;圖像&#xff09;表示為稀疏的系數向量和一組超完備基向量&#xff08;字典&#xff09;的線性組合…

vim打開文件中文是亂碼

vim打開文件中文是亂碼 問題&#xff1a;在Linux系統下&#xff0c;使用cat查看含有中文的文本文件正常&#xff0c;但是使用vim打開卻是亂碼 解決方法&#xff1a; 方法一&#xff1a; 在文件中設定 在vim的退出模式下 :set encodingutf8 方法二&#xff1a; 直接寫入/etc/…

ASP.NET WEB API通過SugarSql連接MySQL數據庫

注意&#xff1a;VS2022企業版可以&#xff0c;社區版可能存在問題。實體名稱和字段和數據庫中的要一致。 1、創建項目&#xff0c;安裝SqlSugarCore、Pomelo.EntityFrameworkCore.MySql插件 2、文件結構 2、appsettings.json { “Logging”: { “LogLevel”: { “Default”: …

Ubuntu 軟件依賴出錯處理

現象&#xff1a; apt-get install vim 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關系樹 正在讀取狀態信息... 完成 您可能需要運行“apt-get -f install”來糾正下列錯誤&#xff1a; 下列軟件包有未滿足的依賴關系&#xff1a; cuttlefish-base : 依賴: f2fs-tools…

DG故障切換及DG Broker失效配置清理

DG故障切換及DG Broker失效配置清理 DG故障強制切主DG Broker原有配置清理 DG故障強制切主 主庫發生故障無法在短時間內恢復時&#xff0c;需要執行主備切換。此時由于DG Broker無法連接到主庫&#xff0c;故不能通過Broker切換&#xff0c;只能手動在備庫進行切主。 --斷開備…

Neo4j之MERGE基礎

在 Neo4j 中&#xff0c;MERGE 語句用于根據指定的模式進行創建或匹配節點和關系。它可以在節點或關系不存在時創建它們&#xff0c;并在已存在時進行匹配。 創建或匹配節點&#xff1a; MERGE (p:Person {name: John});這個查詢會檢查是否已經存在一個具有 "Person&quo…

搭建WebDAV服務手機ES文件瀏覽器遠程訪問

文章目錄 1. 安裝啟用WebDAV2. 安裝cpolar3. 配置公網訪問地址4. 公網測試連接5. 固定連接公網地址6. 使用固定地址測試連接 有時候我們想通過移動設備訪問群暉NAS 中的文件,以滿足特殊需求,我們在群輝中開啟WebDav服務,結合cpolar內網工具生成的公網地址,通過移動客戶端ES文件…

【LeetCode 算法】Find And Replace in String 字符串中的查找與替換-排序模擬

文章目錄 Find And Replace in String 字符串中的查找與替換問題描述&#xff1a;分析代碼排序模擬 Tag Find And Replace in String 字符串中的查找與替換 問題描述&#xff1a; 你會得到一個字符串 s (索引從 0 開始)&#xff0c;你必須對它執行 k 個替換操作。替換操作以三…

docker通用鏡像方法,程序更新時不用重新構建鏡像

docker通用鏡像方法&#xff0c;程序更新時不用重新構建鏡像。更新可執行文件后&#xff0c;重新啟動容器就可運行。 功能 1、在demo目錄下添加腳本文件start.sh&#xff0c;里面執行demo.jar文件。 2、將demo目錄映射到鏡像下的 /workspace目錄。 3、Dockerfile文件中默認…

如何在Linux中強制關閉卡住的PyCharm

在使用PyCharm進行Python開發時&#xff0c;有時可能會遇到卡頓或無響應的情況。當PyCharm卡住時&#xff0c;我們需要強制關閉它以恢復正常操作。今天&#xff0c;我們將介紹在Linux系統中如何強制關閉PyCharm的幾種方法。 1. 使用鍵盤快捷鍵 在PyCharm所在的窗口中&#xf…

臺灣shopee:蝦皮電商平臺選品方法與市場機遇

臺灣Shopee蝦皮電商平臺為臺灣本土賣家和消費者提供了一個線上交易平臺。對于想要在臺灣市場做蝦皮電商的賣家來說&#xff0c;選擇合適的產品是非常重要的。本文介紹一些做蝦皮電商的選品方法和策略。 首先&#xff0c;了解市場需求是選品的基礎。在進入臺灣Shopee市場之前&a…

【Spring專題】Spring之Bean的生命周期源碼解析——階段二(IOC之實例化)

目錄 前言閱讀準備閱讀指引閱讀建議 課程內容一、SpringIOC之實例化1.1 簡單回顧1.2 概念回顧1.3 核心方法講解 二、方法講解2.1 AbstractBeanFactory#getMergedLocalBeanDefinition&#xff1a;合并BeanDefinition2.2 AbstractAutowireCapableBeanFactory#createBean&#xff…

oracle修改臨時表出現已使用的事務正在處理臨時表問題

錯誤提示&#xff1a; ORA-14450:試圖訪問已經在使用的事務處理臨時表 解決方法&#xff1a; 通過第一句sql來查找臨時表的object_id &#xff0c;然后代入第二局sql來生成第三句sql語句。 最后再執行第三句sql語句即可kill session&#xff0c;執行修改表的操作。 SELECT * F…