欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中static和static?final的區(qū)別詳解

 更新時(shí)間:2023年10月26日 08:35:13   作者:碼農(nóng)回憶錄  
這篇文章主要介紹了Java中static和static?final的區(qū)別詳解,開(kāi)發(fā)時(shí)我們經(jīng)常用到static以及static?final來(lái)修飾我們的字段變量,那么他們到底有什么區(qū)別呢?其實(shí)他們的區(qū)別可以用使用字節(jié)碼文件來(lái)解析,需要的朋友可以參考下

1. 準(zhǔn)備測(cè)試代碼

package com.hgy;

import java.util.Arrays;
import java.util.List;

public class hello {

	private static String name = "hello";
	private static final String finalName = "finalName";

	public static void main(String[] args) {
		System.out.println(name);

	}
}

2. 利用idea中的插件jclasslib查看字節(jié)碼文件

找到method下面的此方法不是我們編寫(xiě)的,而是java自動(dòng)給我們添加上的用于執(zhí)行類(lèi)加載時(shí)靜態(tài)變量以及靜態(tài)代碼塊的內(nèi)容; 這里的字節(jié)碼命令很簡(jiǎn)單,就是加載了hello然后賦值給了那么最后返回了;此處你會(huì)發(fā)現(xiàn)并沒(méi)有final修飾的字段的初始化。實(shí)際上final字段修飾的已經(jīng)在編譯期間就確定了值不需要在加載的時(shí)候賦值

在這里插入圖片描述

final字段的字節(jié)碼文件(刪除了其他干擾信息的字節(jié)碼文件)

  • 此處可以發(fā)現(xiàn)在字節(jié)碼文件中已經(jīng)寫(xiě)明了ConstantValue: String finalName, 這也就代表編譯期間就已經(jīng)有值了
  • static塊的內(nèi)容也就是上圖看到的內(nèi)容
{
  public static final java.lang.String finalName;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: String finalName

  static {};
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: ldc           #6                  // String hello
         2: putstatic     #7                  // Field name:Ljava/lang/String;
         5: return
      LineNumberTable:
        line 8: 0
}
SourceFile: "hello.java"

3.總結(jié)

static修飾的字段的值,會(huì)在類(lèi)加載階段的初始化階段進(jìn)行內(nèi)容初始化static final字段的初始化在編譯期間就已經(jīng)完成

到此這篇關(guān)于Java中static和static final的區(qū)別詳解的文章就介紹到這了,更多相關(guān)static和static final的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

到此這篇關(guān)于Java中static和static final的區(qū)別詳解的文章就介紹到這了,更多相關(guān)static和static final的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA的run maven方式啟動(dòng)步驟詳解

    IDEA的run maven方式啟動(dòng)步驟詳解

    這篇文章主要介紹了IDEA的run maven方式啟動(dòng)步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 最新評(píng)論