final和static、static final的區別
1.final可修飾變數,方法,類:
修飾變數,系統會將該變數放到常量池中,並且不可被程式修改;
修飾方法,該方法不可被繼承重寫;
修飾類,該類不能被繼承。
2.static可修飾變數,方法,類:
修飾變數,該變數會變成靜態變數,jvm會把它放在記憶體堆上,所有的程式對他的引用都會指向這個地址,不會分配新的記憶體,它屬於所在的類,不能被所在類的物件的引用,共享此變數。
修飾方法,該方法可以直接被所在的類呼叫,一般用於系統初始化。
修飾類,此類只能是內部類,這樣外部類就可以直接呼叫類而不用新建物件。
3.static final 也可修飾變數,方法內部類:
修飾變數,屬於類的變數只能賦值一次。
修飾方法,屬於類的方法不可以被重寫。
修飾內部類,該類不能被繼承,但可以直接外部類呼叫,不用new物件。
相關推薦
final和static、static final的區別
1.final可修飾變數,方法,類: 修飾變數,系統會將該變數放到常量池中,並且不可被程式修改; 修飾方法,該方法不可被繼承重寫; 修飾類,該類不能被繼承。 2.static可修飾變數,方法,類: 修
Java——final、static、static final修飾的欄位賦值的區別
static修飾的欄位在類載入過程中的準備階段被初始化為0或null等預設值,而後在初始化階段(觸發類構造器<clinit>)才會被賦予程式碼中設定的值,如果沒有設定值,那麼它的值就為預設值。 final修飾的欄位在執行時被初始化(可以直接賦值,也可以在例項構造
final、static、static final區別
final、static、static final修飾的欄位賦值的區別 static static修飾的欄位: 在類載入過程中的準備階段被初始化為0或null等預設值,而後在初始化階段(觸發類構造器<clinit>)才會被賦予程式碼中設定的值,如果沒有設定
final、static、static final修飾引用型別時的區別
總結: final修飾的引用型別:是在堆記憶體new出來的;(如物件)可以被賦值一次,引用地址不可變,但物件裡面的內容(如屬性值)可以變。 static修飾的引用型別:是在載入類的時候,load到方法區的;是這個類的例項共有的類方法or屬性;引用的地址可以變,裡面具體的內容
PHP常見概念混淆(七)之self、static、parent的區別
sta parent tst 執行 pub call 例子 turn function 前言 首先,這個 static 符號跟 static(靜態)關鍵字不是一個東西。這三個符號在PHP對象中共有兩種用法: 在類內部,可以使用 new self、 new static、
C++中類中常規變數、const、static、static const(const static)成員變數的宣告和初始化
C++類有幾種型別的資料成員:普通型別、常量(const)、靜態(static)、靜態常量(static const)。這裡分別探討以下他們在C++11之前和之後的初始化方式。 c++11之前版本的初始化 在C++11之前常規的資料成員變數只能在建構函式
PHP 中 parent、self、static、$this 的區別 & 後期靜態繫結詳解
開發十年,就只剩下這套架構體系了! >>>
ArrayList和Vector、LinkeList的區別
簡單 查找 應該 線性表 n) 長度 數組元素 哈希表 util Arraylist和Vector是采用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加插入元素,都允許直接序號索引元素,但是插入數據要涉及到數組元素移動等內存操作,所以插入數據慢,查找有下標,所以查詢
String和StringBuilder、StringBuffer的區別?
stringbu 其中 線程 沒有 平臺 zed 對象 修飾 java平臺 Java平臺提供了兩種類型的字符串:String和StringBuffer/StringBuilder,它們可以儲存和操作字符串。其中String是只讀字符串,也就意味著String引
ES6模塊和CommonJS、AMD本質區別思考
命名 運行時加載 這也 全局 編譯 soft span 對象 -s CommonJS和AMD本質上是用一個全局變量定義了一個命名空間 以sea.js為例,各個模塊輸出一個對象,然後這個對象掛載在seajs.cache屬性下,各個模塊作為一個對象存在。 而ES6模塊則不是,模
break和continue、return的區別
title type 停止 ons 循環 ctype for循環 bre 如果 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>
String 和StringBuilder、StringBuffer 的區別?
答:Java 平臺提供了兩種型別的字串:String 和StringBuffer / StringBuilder,它們可以儲存和操作字元 串。其中 String 是隻讀字串,也就意味著 String 引用的字串內容是不能被改變的。而 StringBuffer 和 Stri ngBuilder
[轉帖]select提高併發,select和poll、epoll的區別(雜)
同步IO和非同步IO,阻塞IO和非阻塞IO分別是什麼,到底有什麼區別?不同的人在不同的上下文下給出的答案是不同的。所以先限定一下本文的上下文。 https://www.2cto.com/kf/201611/561895.html 一 概念說明 在進行解釋之前,首先要說明幾個概念:- 使用者空間和核心空間
exports、module.exports和export、export default區別
在 Node 環境中,一個.js檔案就稱之為一個模組(module),每個檔案就是一個模組,有自己的作用域,在一個檔案裡面定義的變數、函式、類,都是私有的,對其他檔案不可見,而 Node 應用由模組組成,採用 CommonJS 模組規範
c++ const、static、static const修飾的類資料成員變數如何初始化
const資料成員變數: const資料成員為整個類所共有,一旦初始化,不允許修改。其初始化方式一:建構函式初始化列表方式(C++98) 示例: //------------main.cpp #include <iostream> #include <string>
java中HashMap、CurrentHashMap 工作原理&&和HashTable、HashSet的區別
HashMap和HashTable的區別 HashMap儲存的是鍵值對(接受null鍵值對),不支援synchronized,速度很快; HashTable不接受null鍵值對,可同步(Synchronized) 雖然HashMap是非Synchronized,但collection
Vector和ArrayList、LinkedList的區別
List介面一共有三個實現類,分別是ArrayList、Vector和LinkedList。List用於存放多個元素,能夠維護元素的次序,並且允許元素的重複。 區別 (1).ArrayList是最常用的List實現類,內部通過陣列實現的,它允許對元素進行隨機訪問。陣列的缺點是每個元素
String和stringbuffer、stringbuilder的區別
從執行速度與執行緒安全兩個方面看: String型別的變數是作為字元常量儲存,後兩者是作為字元變數儲存。也就是String物件是不可變的。 所以,當字串不進行大量操作的時候String物件的執行速度是最快的。 當需要對字串進行修改操作的時候,Sting是最慢的。 總體
聽我給你普及師父、師傅和講師、老師的區別
引言 今天買東西時候和一名來自河南的女僧閒聊起來,我向她求問道:“師父和師傅的區別”。 她卻給我講解了西楚霸王項羽首席謀臣,沒錯,就是范增。 項梁反秦起義時,范增曾勸項梁立楚懷王后裔為王,一直在項羽身邊任參謀,被其尊稱“亞父”,極受尊祟。 當我聽到她給我說到“天
指標和引用、陣列的區別
指標和引用的區別 指標儲存的是所指物件的地址,引用是所指物件的別名,指標需要通過解決引用間接訪問,而引用是直接訪問; 指標可以改變地址,從而改變所指的物件,而引用必須從一而終; 引用在定義的時候必須初始化,而指標不需要; 指標有指向常量的指標和指標常量,而引用沒