java面試題之final、finalize和finally的區別
finally:finally是一個關鍵字,與try和catch一起用於異常的處理,finally塊一定會執行,無論在try快中是否有發生異常。
finalize:finalize方法是在物件被回收之前呼叫的方法,給物件自己最後一個復活的機會,但是什麼時候呼叫finalize沒有保證。
final是最重要的,以下重點介紹以下:
1、可以修飾類,不可以被繼承;
2、可以修飾方法,不可以被重寫;JVM會嘗試將其內聯,以提高執行效率
3、可以修飾變數,不可以被改變。如果修飾引用,那麼表示引用不可變,引用指向的內容不可變。
4、可以修飾常量,在編譯階段會存入常量池中;
5、編譯器對final域要遵守的兩個重排序規則:
a、在建構函式內對一個final域的寫入,與隨後把這個被建構函式物件的引用賦值給一個引用變數,這兩個操作之間不能重排序;
b、初次讀一個包含final域的物件的引用,與隨後初次讀這個final域,這兩個操作之間不能重排序。
相關推薦
java面試題之final、finalize和finally的區別
finally:finally是一個關鍵字,與try和catch一起用於異常的處理,finally塊一定會執行,無論在try快中是否有發生異常。 finalize:finalize方法是在物件被回收之前呼叫的方法,給物件自己最後一個復活的機會,但是什麼時候呼叫finalize沒有保證。
java面試題19--final、finally、finalize的區別
final: 最終的意思,可以修飾類、變數、成員方法 修飾類:該類不能被繼承 修飾變數:該變數是常量 修飾方法:該方法不能被重寫 finally: 是異常處理的一部分,常用於釋放資源
java面試題之Thread的run()和start()方法有什麼區別
run()方法: 是在主執行緒中執行方法,和呼叫普通方法一樣;(按順序執行,同步執行) start()方法: 是建立了新的執行緒,在新的執行緒中執行;(非同步執行) public class App { public static void main( Stri
java面試題之wait(),notify()和suspend(),resume()之間的區別
wait()方法和notify()方法的區別: 這兩個方法都是屬於Object類中的,也是配套使用的,當呼叫這兩個方法阻塞時要釋放佔用的鎖,而鎖是任何物件都具有的,呼叫任意物件的wait()方法導致執行緒阻塞,並且該物件上的鎖被釋放; 而呼叫任意物件的notify()方法則導致從呼叫該物件的wait()方
java面試題之什麼是死鎖、活鎖、餓死和競態條件?
死鎖:是指兩個或兩個以上的程序(或執行緒)在執行過程中,因爭奪資源而造成的一種相互等待的現象,若無外力作用,他們將無法推進下去; 活鎖:是指兩個執行緒優先順序相同,都禮讓不走,就這樣一直僵持下去; 餓死:在單執行緒情況下,A、B兩個執行緒,A先執行;A在執行過程中
面試題之final,finally和finalize的區別以及如果catch裡面有return語句,請問finally裡面的程式碼還會執行嗎?
/* * 面試題: * 1:final,finally和finalize的區別 * final:最終的意思,可以修飾類,成員變數,成員方法 * 修飾類,類不能被繼承 * 修飾變數,變數是常量 * 修飾方法,方法不能
java面試題之int和Integer的區別
4條 試題 als 自動 數據類型 類型 fort spec 新建 int和Integer的區別 1、Integer是int的包裝類,int則是java的一種基本數據類型 2、Integer變量必須實例化後才能使用,而int變量不需要 3、Integer實際是對象的引用,
java面試題之sleep()和wait()方法的區別
sleep方法: 屬於Thread類中的方法;會導致程式暫停執行指定的時間,讓出cpu該其他執行緒,但是他的監控狀態依然保持著,當指定時間到了之後,又會自動恢復執行狀態;在呼叫sleep方法的過程中,執行緒不會釋放物件鎖。 wait方法: 屬於Object類中的方法;在呼叫wait方法的時候,執
java面試題之synchronized和lock有什麽區別
作用範圍 out inter mutex 虛擬 add moni 私有 p s synchronized和lock的區別: 類別 synchronized lock 存在層次 java的關鍵字,在jvm層面上 是一個類 鎖的釋放
java面試題之==和equlas的區別
面試失敗第一次 ==和equals的區別 java中的資料型別,可分為兩類: 1.基本資料型別 也稱原始資料型別。byte,short,char,int,long,float,double,boolean 原始資料型別之間的比較,應該用雙等號“==”,比較的是他
java面試題之氣泡排序(由大到小和由小到大)
public class MaoPaoTest { public static void main(String[] args) { smallToLarge(); System.out.println(---------------------------);
一道Java面試題之實現複製、刪除、剪下檔案(資料夾的實現)的snippet
Java面試題是叫寫出檔案複製、刪除和剪下的,所以昨天晚上就花了大概一個小時寫出這個完整的snippet(當然如果只要思路的話就好辦了)。 這個snippet中的刪除檔案(資料夾)部分有點意思,一般在Windows下目錄過長的話,目錄就刪除不了。而這個程式可以解決這個因
Java面試題之在多線程情況下,單例模式中懶漢和餓漢會有什麽問題呢?
餓漢模式 問題 之間 static 代碼 clas ava public 餓漢 懶漢模式和餓漢模式: public class Demo { //private static Single single = new Single();//餓漢模式
Java面試題之Java基礎
formate spa 多重繼承 輸出 不能 類名 gre collect extend 1、作用域public,private,protected,以及不寫時的區別 答:區別如下: 作用域 當前類 同一package 子孫類
java面試題之----HashMap常見面試題總結
使用 這一 hashtable 此刻 獲取 重要性 microsoft ria 取值 “你用過HashMap嗎?” “什麽是HashMap?你為什麽用到它?” 幾乎每個人都會回答“是的”,然後回答HashMap的一些特性,譬如HashMap可以接受null鍵值和值,而Has
java面試題之----mysql表優化方案
mysql 引擎 它的 易維 range 概述 .com 設置 常用 本文轉載自segmentfault,原文鏈接:https://segmentfault.com/a/1190000006158186。 當MySQL單表記錄數過大時,增刪改查性能都會急劇下降,可以參考以
java面試題之----jdbc中使用的設計模式(橋接模式)
connect @override 操作 tro orb his order ng- return 1.JDBC(JavaDatabase Connectivity) JDBC是以統一方式訪問數據庫的API. 它提供了獨立於平臺的數據庫訪問,也就是說,有了JDB
Java容器深入淺出之PriorityQueue、ArrayDeque和LinkedList
Queue用於模擬一種FIFO(first in first out)的佇列結構。一般來說,典型的佇列結構不允許隨機訪問佇列中的元素。佇列包含的方法為: 1. 入隊 void add(Object o): 指定元素加入佇列尾部 boolean offer(Object o):同上,在有限容量佇列中,此方
那些java面試題之資料庫常問的!你會了多少!
資料庫裡面的索引和約束是什麼 用SQL語句實現oracle分頁查詢。 小編是一個有著5年工作經驗的java程式設計師,對於java,自己有做資料的整合,一個完整學習java的路線,學習資料和工具,相信這裡有很多學習java的小夥伴,我創立了一個20
《java面試題02》--值傳遞和引用傳遞
值傳遞和引用傳遞,近期介面開發中處理結果集等資料的時候常用到,二者主要區別在於所傳的引數型別: public static void main(String[] args) { test(); } public static void test(){ Str