vulhub漏洞復現-Django JSONField SQL注入漏洞復現 (CVE-2019-14234)
阿新 • • 發佈:2020-11-30
final關鍵字
防止更改API當中的類,所以有final關健字,用於修飾不可改變的內容
3.1修飾類格式
public final class 類名{ //類資訊 } String,Math,Scanner等API類都是被final修飾的,目的是讓我們僅僅使用,而不能修改
3.2修飾方法
修飾符 final 返回值型別 方法名(引數列表){ //方法體內容.... } 不能重寫final修飾的方法,編譯無法通過
3.3修飾變數
3.31區域性變數--基本型別
基本型別的區域性變數,被final修飾後,只能賦值一次,不能被更改。
public class Demo { public static void main(String[] args){ //宣告區域性變數 final int num; //第一次賦值 num = 10; //第二次賦值 num = 20;//編譯報錯 } }
3.32區域性變數--引用型別
引用型別的區域性變數被final修飾後,只能指向一個物件,地址值不能發生改變,但是不影響物件內部的成員變數的修改。(set修改)
public class FinalDemo2 { public static void main(String[] args) { // 構建一個物件 final People p1 = new People(); p1 = new People();// 報錯,編譯無法通過 // 呼叫setName()方法 p1.setName("小王");// 可以修改 } }
3.33成員變數
成員變數涉及到【初始化】的問題,初始化方式有兩種,二選其一:
直接初始化: public class People { final String NAME = "小王"; private int age; }
構造方法初始化。 public class People { final String NAME; private int age; public People(String name) { this.name = name; } }
被final修飾的常量名稱,一般都有書寫規範,所有字母均為【大寫】。