Java基礎的總結問題(第一篇)

  1. JDK和JRE的區別?

    1. JRE是Java運行環境(Java Runtime Environment),包含了JVM和Java核心類庫
    2. JDK是Java開發工具包(Java Developer's? Kit),包含了JRE和Java常見的開發工具
  2. ?==與equals的區別?

    1. ==可以用來比較基本數據類型,也可以用來比較引用數據類型
      1. 當==用來比較基本數據類型時比較的是數值的大小
      2. 當==用來比較引用數據類型時比較的是地址
    2. equals只能用來比較引用數據類型:因為equals是Object的一個方法,要調用方法必須通過對象調用,而對象就是引用數據類型
      1. 默認的時候比較的是對象的地址值
      2. 可以通過重寫Object類中的equals方法,來實現比較對象的屬性
  3. 如果兩個對象的hashCode值一樣的時,用equals方法比較的時候也是true嗎?

    不是

    hashCode和equals都是Object類中的兩個獨立的方法,這兩個方法都可以通過子類重寫,來實現子類自定義的邏輯

  4. final的作用

    1. 修飾變量上---叫常量,該常量必須初始化,且初始化后不能被修改
    2. 修飾方法上---該方法不能被重寫
    3. 修飾類上---該類不能被繼承?
  5. ?String是基本數據類型嗎?

    1. String是引用數據類型
    2. 基本數據類型有8種:int, short,byte,long, float, double,boolean, char
  6. ?對字符串操作的有哪些類,有什么區別?

    1. 對字符串操作的有String,StringBuffer, StringBuilder
    2. 區別:
      1. String不可變,StringBuffer和StringBuilder可變
      2. StringBuffer線程安全,效率低StringBuilder線程不安全,效率高
  7. ?String str="abc"與 String str = new String("abc")的 定義方法一樣嗎?

    1. 不一樣?
    2. String str="abc"是創建一個字符串對象到常量池里。
    3. String str = new String("abc")是創建了兩個對象,"abc"字符串在常量池里,new String("")又創建一個對象
  8. ?普通for和增強for的區別

    1. 作用與應用場景
      1. 普通for:可以用在所有需要重復執行的某些語句的場景
      2. 增強型for:只能用在數組和Collection集合
    2. 使用區別
      1. 如果使用普通for循環,需要用下標,可以修改數組的元素。
      2. 如果使用增強型for,不需要使用下標,但是不能修改數組的元素
      3. 另外,增強for循環只是一種語法糖,增強for循環遍歷數組時編譯器仍然會將對應代碼轉換為普通 for循環;增強for循環遍歷Collection集合時編譯器會將對應代碼轉換為Iterator迭代器遍歷集合的代 碼。
  9. 方法的重載(Overload)與重寫(Override)的區別

    1. 方法的位置 :
      1. 重載:在同一個類中,或者在父子類中
      2. 重寫:在子類中---->只有子類才能實現重寫
    2. 權限修飾符
      1. 重載:跟權限修飾符無關
      2. 重寫:
        1. private修飾的方法不能重寫。
        2. 重寫的權限修飾符要>=被重寫方法的權限修飾符
    3. 其他修飾符
      1. 重載:無關
      2. 重寫:final和static修飾的方法也不能被重寫
    4. 返回值類型
      1. 重載:無關
      2. 重寫:
        1. 基本數據類型和void必須相同
        2. 引用數據類型:重寫的方法的返回值類型<=被重寫的方法的返回值類型
      3. 方法名:
        1. 重載:必須相同
        2. 重寫:必須相同
      4. 形參列表
        1. 重載:必須不同
        2. 重寫:必須相同
      5. throws異常列表
        1. 重載:無關
        2. 重寫:
          1. 被重寫的方法如果沒有throws異常,重寫的方法也不能throws異常
          2. 如果被重寫的方法throws異常,重寫的方法throws異常類型必須<=被重寫的方法
      6. 什么時候確認調用哪個方法
        1. 重載:在編譯時期根據形參的不同確定調用的是哪一個方法
        2. 重寫:在運行時期確定調用哪一個方法,這依賴于對象的實際類型
  10. 抽象類和接口的區別?

    1. 抽象類:
      1. 繼承限制:單繼承
      2. 成員限制:
        1. 抽象類可以有多種類型的成員變量,包括靜態變量和實例變量
        2. 抽象類中可以有構造方法,這有助于子類的初始化
        3. 抽象類可以包含代碼塊(靜態代碼塊/非靜態代碼塊)
        4. 抽象類可以包含抽象方法和普通方法
    2. 接口:
      1. 多實現:一個類可以實現多個接口
      2. 成員:
        1. 接口的成員變量默認是public,static,final的即常量
        2. 接口不允許有構造方法和代碼塊
        3. 接口的方法默認是public的。jdk9之后運行有private的方法
        4. jdk8之前接口的方法都默認是抽象的,jdk8之后可以包含默認方法和靜態方法
  11. ?談談你對面向對象三大特性的理解

    1. 面向對象的三大特性分別是:封裝,繼承和多態
      封裝:
      將對象的屬性和行為隱藏到類的內部只能通過方法的調用來訪問屬性。提高了代碼的安全性和穩定性同時也提高了代碼的可維護性
      繼承:
      子類繼承父類可以復用父類的屬性和方法,也可以之際擴展父類的行為。減少了代碼的重復。
      多態:
    2. 同一個對象以不同的角度(類型)展現不同的行為方法。使用父類或接口類型的引用指向子類對象,然后調用方法時,會根據對象的實際類型來決定調用哪個方法的實現。這樣可以編寫出更加靈活和可擴展的代碼。

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

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

相關文章

[智能算法]MOEA/D算法的Python實現

一、初始化不同于NSGA-II&#xff0c;MOEA/D在進行迭代之前需要先進行初始化&#xff0c;初始化的主要內容是計算個體向量權重之間的歐氏距離&#xff0c;并得出其鄰域集合。# 計算T個鄰居 def cpt_W_Bi_T(moead):# 設置的鄰居個數錯誤(自己不能是自己的鄰居)if moead.T_size &…

Java設計模式之-組合模式

什么是組合模式&#xff1f; 組合模式允許你將對象組合成樹形結構來表示"部分-整體"的層次結構。它讓客戶端能夠以統一的方式處理單個對象和對象組合。 簡單來說&#xff0c;就像公司的組織結構&#xff1a; 公司有部門部門有小組小組有員工但無論是對公司、部門還是…

2021-10-29 C++與反轉數的和

緣由輸入一個三位數 與它倒過來的數相加&#xff0c;輸出和-編程語言-CSDN問答 直接寫 int n0,nn0,nnn0; cin>>n;nnn; while(nn)nnn*10,nnnnn%10,nn/10; cout<<nnnn<<endl; 緣由https://ask.csdn.net/questions/7552128 int 反轉數(int n) { int nn 0…

論安全架構設計(威脅與措施)

安全架構威脅與措施摘要2021年4月&#xff0c;我有幸參與了某保險公司的“優車險”項目的建設開發工作&#xff0c;該系統以車險報價、車險投保和報案理賠為核心功能&#xff0c;同時實現了年檢代辦、道路救援、一鍵挪車等增值服務功能。在本項目中&#xff0c;我被安排擔任架構…

022_提示緩存與性能優化

提示緩存與性能優化 目錄 緩存技術概述緩存工作原理實現方法詳解成本優化策略性能優化實踐高級應用場景最佳實踐指南 緩存技術概述 什么是提示緩存 提示緩存是Claude API的一項優化功能&#xff0c;允許緩存提示的特定部分以便重復使用&#xff0c;從而顯著減少處理時間和…

【AI交叉】地理:人工智能如何推動地理科學的智能轉型?

隨著人工智能&#xff08;AI&#xff09;技術的快速發展&#xff0c;越來越多的傳統學科開始與之融合&#xff0c;催生出一系列跨學科的新研究方向和應用場景。地理科學作為研究地球表層自然與人文現象的綜合性學科&#xff0c;也在這一浪潮中迎來轉型契機。 AI與地理學的交叉正…

iOS高級開發工程師面試——關于網絡

iOS高級開發工程師面試——關于網絡 一、談談對 HTTP、HTTPS 的理解1. HTTP協議:2. HTTPS 協議二、TCP、UDP 和 SocketTCPUDPTCP 和 UDP 的區別?Socket一、談談對 HTTP、HTTPS 的理解 1. HTTP協議: 超文本傳輸協議,他是基于TCP應用層協議。 是無連接 無狀態 的,需要通過…

跟著Nature正刊學作圖:回歸曲線+散點圖

&#x1f4cb;文章目錄復現目標圖片繪圖前期準備繪制左側回歸線圖繪制右側散點圖組合拼圖 (關鍵步驟&#xff01;)跟著「Nature」正刊學作圖&#xff0c;今天挑戰復現Nature文章中的一張組合圖–左邊為 回歸曲線、右邊為 散點圖。這種組合圖在展示相關性和分組效應時非常清晰有…

LVS集群調度器

目錄 集群和分布式 LVS運行原理 LVS概念 LVS的集群類型 實驗配置 安裝LVS ipvsadm命令參數 1.管理集群服務中的增刪改 2.管理集群服務中的RS增刪改 3.lvs調度策略的備份與恢復 4.lvs調度策略的開機啟動 LVS-NAT模式 LVS-DR模式 集群和分布式 集群&#xff08;Clu…

【React Natve】NetworkError 和 TouchableOpacity 組件

NetworkError公共組件 import SimpleLineIcons from "expo/vector-icons/SimpleLineIcons"; import { StyleSheet, Text, View } from "react-native";export default function NetworkError() {return (<View style{styles.container}><SimpleL…

Linux 驅動中 Timer / Tasklet / Workqueue 的作用與對比

Linux 驅動中 Timer / Tasklet / Workqueue 的作用與對比 &#x1f9e9; 1. 使用場景概覽&#xff08;對比表&#xff09;機制執行上下文是否可睡眠使用場景常用接口Timer中斷上下文? 不可睡眠延遲執行&#xff08;如防抖、超時處理&#xff09;add_timer() 等Tasklet軟中斷上…

JavaScript中關于proxy的作用以及和Object.defineProperty的區別

之前寫了一篇介紹 Object.defineProperty的&#xff0c;提到proxy&#xff0c;二者有一些共性&#xff0c;也都是前端框架Vue的核心機制&#xff0c;所以再寫一篇介紹一下proxy的基礎原理和使用。 在 JavaScript 中&#xff0c;Proxy 是 ES6 引入的一個元編程特性&#xff0c;用…

HTTP性能優化實戰技術

HTTP性能優化實戰技術文章大綱 理解HTTP性能優化的核心指標 關鍵指標&#xff1a;延遲、吞吐量、TTFB&#xff08;Time To First Byte&#xff09;、頁面加載時間影響性能的因素&#xff1a;網絡延遲、服務器響應時間、資源大小、協議效率 減少HTTP請求數量 合并資源文件&#…

ubuntu(22.04)系統上安裝 MuJoCo

在 Linux 系統上安裝 MuJoCo 的完整步驟如下&#xff1a; ??1. 下載 MuJoCo?? 訪問 MuJoCo 官方 GitHub下載最新 Linux 版本&#xff08;如 mujoco-3.3.4-linux-x86_64.tar.gz&#xff09;獲取對應的 SHA256 校驗值&#xff08;在發布頁面可以找到,&#xff0c;文件名后面…

理解大模型的對話和檢索能力

RAG和聯網搜索均通過“檢索生成”模式擴展模型能力&#xff0c;但RAG基于內部知識庫&#xff08;如企業文檔&#xff09;&#xff0c;適合專業領域問答&#xff1b;聯網搜索實時檢索互聯網&#xff0c;解決時效性問題&#xff08;如新聞、股價&#xff09;。RAG響應快且可控&am…

跟著Carl學算法--回溯【2】

IP復原&#xff08;難&#xff09; 力扣鏈接&#xff1a;IP復原 題目&#xff1a;有效 IP 地址 正好由四個整數&#xff08;每個整數位于 0 到 255 之間組成&#xff0c;且不能含有前導 0&#xff09;&#xff0c;整數之間用 . 分隔。 例如&#xff1a;"0.1.2.201"…

PyTorch生成式人工智能(17)——變分自編碼器詳解與實現

PyTorch生成式人工智能(17)——變分自編碼器詳解與實現 0. 前言1. 潛空間運算2. 變分自編碼器2.1 自編碼器與變分自編碼器對比2.2 模型訓練流程3. 構建變分自編碼器3.1 模型構建3.2 模型訓練3.3 生成圖像4. 向量運算小結系列鏈接0. 前言 雖然自編碼器 (AutoEncoder, AE) 在重…

SpringMVC2

一、接口聲明的穩定性- 接口聲明不能輕易變&#xff1a;接口是前后端、服務間通信的約定。要是接口的 URL、請求方法、參數、返回值變了&#xff0c;調用方&#xff08;比如前端、其他服務&#xff09;就得跟著改&#xff0c;容易出問題。所以設計接口要謹慎&#xff0c;別老變…

LVS集群實踐

一、LVS概念VS: Virtual Sever &#xff08;調度器&#xff09;RS: Real Sever &#xff08;資源主機&#xff09;CIP: Client IP &#xff08;用戶IP&#xff09;VIP: Virtual sever IP &#xff08;VS外網的IP&#xff0c;客戶訪問的IP&#xff09;DIP: Director IP &#xf…

使用Django框架構建Python Web應用

前言Django個高級Python Web框架&#xff0c;遵循MTV&#xff08;Model-Template-View&#xff09;設計模式&#xff1a;模型(Model)&#xff1a;數據層&#xff0c;定義數據結構模板(Template)&#xff1a;表現層&#xff0c;處理用戶界面視圖(View)&#xff1a;業務邏輯層&am…