java面試題(2022最新)

来源:https://www.cnblogs.com/am0304/archive/2022/07/15/16481471.html
-Advertisement-
Play Games

1.String是基本數據類型麽?不是基本數據類型,byte int char long flout duable boolem short 2.int 和integer區別int是基本數據類型,integer 是一個包裝類 3..JAVA中幾種集合(List、Set和Map)的區別?list 和s ...


1.String是基本數據類型麽?
不是基本數據類型,byte int char long flout duable boolem short

2.int 和integer區別
int是基本數據類型,integer 是一個包裝類


3..JAVA中幾種集合(List、Set和Map)的區別?
list 和set 都繼承了colletion 介面
lis里包含arraylist 和linklist ,
區別:arrarylist 採用數組形式保存對象的,對象在連續的位置中,缺點就是插入刪除非常麻煩,
linklist 雙鏈表,對象存在獨立的空間中,保存下一個連接的索引,但查詢非常麻煩,從第一個索引開始擦尋。

4.HashMap和Hashtable的區別?
HashMap線程不安全,效率高。可以存儲null鍵值對,鏈表中的元素超過了8個後, 會將鏈表轉換為紅黑樹
Hashtable線程安全(每個方法中都加入了synchronized),效率低,不可以存儲null鍵值


5.list中常用的方法

remove (移除)  add ,adds 添加數組

6.public,friendly,protected,private的區別?
public許可權最大

protect不同包的其他類不可用

friendly子類不能調用

(什麼都不寫的時候) private只能本類調用


7.方法重載和重寫的區別?
重載在一個類裡面方法名相同,參數不同的兩個方法
重寫是在不同類裡面的而且必須是集成關係,返回值類型和參數必須相同

8.equals方法跟==有什麼區別
equals ():用來檢測兩個對象是否相等,即兩個對象的內容是否相等。.
==:用於比較引用和比較基本數據類型時具有不同的功能


9.靜態變數和實例變數的區別
類的靜態變數在記憶體中只有一個,而實例變數取決於類的實例。
每創建一個實例,就會生成一個實例變數,而且生命周期也不同

10.final,finally,finalize,friend的區別?
friend表示在碧昂輛中沒有任何修飾符
final是一個關鍵字,定義完變數就不能改變了,
finally是處理 異常用到的,
finalize是一個垃圾回收器準備釋放記憶體方法

11.String能否被繼承?

不能被繼承,因為它是final,常量

12.Final類有什麼特點?
屬性常量 方法不可以overridding類 不可以繼承

13.異常和錯誤的區別
Error表示系統級的錯誤和程式不必處理的異常,
Exception表示需要捕捉或者需要程式進行處理的異常

14..super()與this()的區別?
this調用本類的對象,super()調用父類的對象。

15.java的核心優勢是什麼?
電腦和電腦之間通過互聯網連在了一起,但是沒個電腦的系統都不一樣,
這個時候我們需要一個語言可以在任何的系統上面跑,就出了java語言跨平臺麽,
而且java發展悠久所以java遇到的問題比較完善。

16.解釋一下線程和進程?
一個程式員需要最少需要一個進程,而一個進程最少需要一個線程,所以線程是程式執行的最小單位。


17.普通類和抽象類有哪些區別?
普通類不能包含抽象⽅法,抽象類可以包含抽象⽅法。
抽象類不能直接實例化,普通類可以直接實例化。


18.String,Stringbuffer,StringBuilder的區別
String:
String類是一個不可變的類,一旦創建就不可以修改。
String是final類,不能被繼承
String實現了equals()方法和hashCode()方法


StringBuffer:

繼承自AbstractStringBuilder,是可變類。

StringBuffer是線程安全的
可以通過append方法動態構造數據。


StringBuilder:

繼承自AbstractStringBuilder,是可變類。
StringBuilder是非線性安全的。
執行效率比StringBuffer高。

19.Java獲取反射的三種方法:
第一種,使用 Class.forName 靜態方法。
第二種,使用類的.class 方法
第三種,使用實例對象的 getClass() 方法。


20.Java 中 hash 值的含義
hash 值主要是用來在散列存儲結構中確定對象的存儲地址的,提高對象的查詢效率,如HashMap、
HashTable等;
如果兩個對象相同,那麼這兩個對象的 hash 值一定相等;
如果要重寫對象的 equals 方法,那麼儘量重寫對象的 hashCode 方法;
兩個對象的 hash 值相等,並不一定表示兩個對象相同。


21.hashmap 原理
數據結構是數組和鏈表的結合,key和value值都允許為空,key為null的鍵值對永遠放在以table【0】
為結點的鏈表中。

22.java多線程中sleep和wait的4個區別
sleep是線程中的方法,但是wait是Object中的方法,sleep方法不會釋放lock,但是wait會釋放,
而且會加入到等待隊列中。
sleep不需要被喚醒,但是wait需要


23.MVC
MVC是一種設計模式,將軟體分為三層,分別是模型層,視圖層,控制器層。其中模型層代表的是數據,
視圖層代表的是界面,
控制器層代表的是邏輯處理,是連接視圖與模型之前的橋梁。降低耦合,便於代碼的維護


24什麼是多線程?
多線程是指程式中包含多個流,即在一個程式中可以同時進行多個不同的線程來執行不同的任務

25.多線程的優劣?
​ 優點:可以提高CPU利用率, 提高了程式的效率, 單個程式可以創建多個不同的線程來完成各自的任務
​ 缺點:線程也是程式,需要占據記憶體.多線程需要協調和管理,所以需要CPU跟蹤線程

26.併發和並行的區別

併發:多個任務在同一個CPU上,按照細分的時間片段輪流交替執行.
​ 並行:單位時間內,多個處理器或者多核處理器同時處理多個任務,真正意義上的同時進行

27.創建線程的四種方式
​ 繼承Thread類
​ 實現Runnable介面
​ 實現Callable介面
​ Executors工具類創建線程池

28.run()方法和start()方法有什麼區別
​ start()方法用於啟動線程, run()方法用於執行線程的運行代碼, run()可以反覆調用, 而start() 方法只能被調用一次
​ 調用start()方法啟動線程可以使線程進入就緒狀態, 等待運行; run()方法只是thread的一個普通方法調用, 還是在主線程里執行.

29.sleep()和wait()有什麼區別
​ 相同:兩者都可以使線程進入等待狀態
​ 不同:sleep()是Thread類下的靜態方法, wait()是Object類下的方法
​ sleep()不釋放鎖, wait()釋放鎖
​ wait()常用語線程之間的通信, sleep()常用語暫停執行

30.IO流是用來處理設備之間傳輸數據,下載文件,上傳文件
輸入流:程式從輸入流中讀取數據,
輸出流:程式向輸出流寫入數據。程式將數據輸出到外界

31.SpringMVC運行原理

客戶端請求提交到DispatcherServlet
由DispatcherServlet控制器查詢HandlerMapping,找到並分發到指定的Controller中。
Controller調用業務邏輯處理後,返回ModelAndView
DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖
視圖負責將結果顯示到客戶端


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 利用spring boot多數據源功能,可以同時支持不同類型資料庫mysql,oracle,postsql,sql server等,以及相同類型資料庫不同的schema。 ...
  • 幾年前我總結過DDD戰術設計的一些可落地的經驗,現在回過頭來發現,當初對這些概念的理解還是沒有到位。比如戰術設計的各個模塊是如協作的。哪些是問題空間問題,哪些是解方案空間問題 這篇文章重新闡述下。 ...
  • 普通類型傳參 當POJO中使用簡單類型屬性時, 參數名稱與POJO類屬性名保持一致 POJO類 public class User { private String name; private Integer age; public String getName() { return name; } ...
  • 我快速入門python看過的一些資料 B站的視頻 10天自學Python,輕鬆掌握Python基礎【千鋒】 廖雪峰 - Python教程 https://www.liaoxuefeng.com/wiki/1016959663602400 C語言網 - Python教程 https://www.dot ...
  • 捕獲和拋出異常 異常處理的五大關鍵字:try,catch,finally,throw,throws 1.捕獲異常 用法: ​ try{可能會出現異常的代碼 ​ } catch(Exception e)//catch後面跟想要捕獲的異常類型 ​ {異常的處理邏輯} idea快捷鍵:ctrl+alt+t ...
  • JavaWeb 的概念 什麼是 JavaWeb? JavaWeb 是指,所有通過 Java 語言編寫可以通過瀏覽器訪問的程式的總稱,叫 JavaWeb。 JavaWeb 是基於請求和響應來開發的。 什麼是請求? 請求是指客戶端給伺服器發送數據,叫請求 Request。 什麼是響應? 響應是指伺服器給 ...
  • 前言 嗨嘍~大家好呀,這裡是魔王吶 現在,很多人不是在找工作的途中就是在找工作的路上(我的廢話文學😂) 所以我今天來採集一下招聘網站,讓我們來看看找工作主要要學會什麼? 環境使用: Python 3.8 Pycharm > 漢化插件 translation 模塊使用: requests >>> p ...
  • 控制流程 與任何程式設計語言一樣,Java使用條件語句和迴圈結構確定控制流程。 塊作用域 我們首先要瞭解塊(block)的概念。 塊是指由若幹條Java語句組成的語句,並用一對大括弧括起來。塊確定了變數的作用域。一個塊可以嵌套在另一個快中。下麵就是嵌套在main方法塊中的一個塊。 public st ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...