java类中被static修饰的属性_Java基础篇final 、static修饰属性时使用区别总结

前言

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

不加修饰符的实例属性

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

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

ff90307f632d81b30d6353b944e51474.png

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

final修饰

一旦赋值,不可修改

使用:

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

2、 构造函数赋值

2e9082cf4bee557fed695244e5727d9e.png

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

static修饰类属性

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

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

fa1df4f73eca8ec94d72b10dbfbcf355.png

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

4、 在构造函数中赋值

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

static final变量修饰

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

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

ceecc25b080d7383e56bd0a5b0fab347.png

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

ad260a4bfe76cce54d7acbd23667e551.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值