1. 程式人生 > 資料庫 >vulhub漏洞復現-Django JSONField SQL注入漏洞復現 (CVE-2019-14234)

vulhub漏洞復現-Django JSONField SQL注入漏洞復現 (CVE-2019-14234)

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修飾的常量名稱,一般都有書寫規範,所有字母均為【大寫】。