专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Java基础篇final 、static修饰属性时使用区别总结

前言

static final这些关键字本来是Java学习中的基础部分,但时候会与其他语言混淆在一起,很多细节容易搞糊涂>︿< 基础的东西还是要掌握得牢固一些才行,所以这次来总结一下final、static、static final修饰属性使用的区别。

不加修饰符的实例属性

这种情况是最基础的,像public String property;如果在构造函数中未赋值,那么JVM会对该对象自动赋值

引用赋值 null,boolean 赋值 false, int 赋值 0,doble 赋值 0.0

54_1.png

其实之前一直不知道boolean会默认赋值为false

final修饰

一旦赋值,不可修改

使用:

1、 直接赋值 public final String property = "hello java";

2、 构造函数赋值

54_2.png

注意:static块赋值无效 ,因为不在类加载过程中被载入方法区常量池。之前一直认为只能在声明的时候赋值给final,后来验证后发现可以在构造函数中赋值。

static修饰类属性

1、 直接指定赋值 private static String firstName = “hello java”;

54_3.png2. 未赋值给定时,JVM赋初始值(就是在类加载的验证、初始化过程赋初始值),这和final修饰不同

54_4.png

3、 static块中赋值,类加载的初始化过程执行static代码块,达到给static 变量赋值的目的

    private static String firstName;

    static {
        User.firstName = "myLove";
        User.firstName = "Season"; // 可重复赋值
    }

4、 在构造函数中赋值

因为static变量已经在方法区中存在,所以执行构造函数时可以对static变量赋值

    private static String firstName;

    public User() {
        User.firstName = "sun";
    }

static final变量修饰

1、 直接指定 private static final String firstName = "hello java";

2、 static块赋值,同static修饰,但只能赋值一次

54_5.png

如果只声明不赋值,会报错,这和static不同

54_6.png

文章永久链接:https://tech.souyunku.com/29434

未经允许不得转载:搜云库技术团队 » Java基础篇final 、static修饰属性时使用区别总结

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们