Java中的static和final关键字的使用详解

 更新时间:2024年01月12日 10:51:45   作者:好奇的7号  
这篇文章主要介绍了Java中的static和final关键字的使用详解,  当方法名前有static,即为static方法,可以方便我们无需创建对象也可以调用此方法,静态方法比较拉,只可以访问 静态的 属性/变量/方法,无法访问非静态的这些属性/变量/方法,需要的朋友可以参考下

一. static

1.static静态变量

对于类中的变量,如果声明为static型:

其特点是:此变量会被这个类的所有对象所共享,这些对象都可以调用、改变它的值。

2.static静态类方法

当方法名前有static,即为static方法,可以方便我们无需创建对象也可以调用此方法。

采用:

类名.method();//来调用即可

特点:静态方法比较拉,只可以访问 静态的 属性/变量/方法,无法访问非静态的这些属性/变量/方法

相对的,非静态方法啥都能访问(静态和非静态的属性/变量/方法,都可以。

二. final

1.final的作用

final类不可被继承,final方法不可被重写(但可以被继承),final属性不可被外部更改。

(很好理解,final就是最终的意思嘛)

2.final型变量

必须!初始化

也很好理解,final变量没法更改值,要是一开始不定义好,那不就没办法获得值了。

三. final与static一起使用

我们知道,static代码块在加载类的时候就会启动,而构造器要在创建类的对象才会启动。

所以如果当final类型是static类型的变量时,只能在 定义中 或者 静态代码块中 初始化。

因为如果是在构造器中初始化,可能出现的情况是,虽然加载类的时候有了final变量,但是没有创建对象,那么就没有初始化final变量,这是不可以的。

另外:

class BBB{
    public final static int sbb = 250;
    static {
        System.out.println("static method has been activated!");//不会输出这一行
    }
}

若直接调用:

BBB.sbb;

当直接调用sbb这个final static类,不会导致类的加载,所以不会输出static代码块的内容。

到此这篇关于Java中的static和final关键字的使用详解的文章就介绍到这了,更多相关static和final关键字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Java源码ConcurrentHashMap

    浅谈Java源码ConcurrentHashMap

    最近刚入门java,觉得看源码挺有意思的,就记录一下一些常用类的源码吧,从而能够总结一些使用细节.本文对源码ConcurrentHashMap介绍的非常详细,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • Java高级面试题小结

    Java高级面试题小结

    本文主要介绍了一些在Java面试过程中的一些高级面试题,包括对部分名词的释义及代码解析,具有一定收藏价值,需要的朋友可以参考下
    2017-09-09
  • Java中如何获取当前服务器的IP地址

    Java中如何获取当前服务器的IP地址

    这篇文章主要给大家介绍了关于Java中如何获取当前服务器的IP地址的相关资料,我们可以使用Java中的InetAddress类来获取Linux服务器的IP地址,需要的朋友可以参考下
    2023-07-07
  • Java多线程循环栅栏CyclicBarrier正确使用方法

    Java多线程循环栅栏CyclicBarrier正确使用方法

    这篇文章主要介绍了Java多线程循环栅栏CyclicBarrier正确使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Spring MVC无法正确接收From表单参数的解决方案

    Spring MVC无法正确接收From表单参数的解决方案

    文章描述了在处理Spring Boot中的表单提交时遇到的JSON解析错误,并通过分析代码和HTTP请求的contentType,解释了错误的原因,主要内容包括了ajax请求中contentType的设置以及@RequestBody注解的作用,最后给出了具体的解决办法
    2025-12-12
  • Java多线程ForkJoinPool实例详解

    Java多线程ForkJoinPool实例详解

    这篇文章主要介绍了Java多线程ForkJoinPool实例详解,涉及forkjoin框架的相关内容,需要的朋友可以参考下。
    2017-09-09
  • 浅谈java多线程 join方法以及优先级方法

    浅谈java多线程 join方法以及优先级方法

    下面小编就为大家带来一篇浅谈java多线程 join方法以及优先级方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Java如何将文件格式为psd的文件转换为base64详解

    Java如何将文件格式为psd的文件转换为base64详解

    在开发中,我们经常需要将图片转换为base64格式的字符串,以便于在网络传输中使用,下面这篇文章主要介绍了Java如何将文件格式为psd的文件转换为base64的相关资料,需要的朋友可以参考下
    2025-10-10
  • JAVA实现按时间段查询数据操作

    JAVA实现按时间段查询数据操作

    这篇文章主要介绍了JAVA实现按时间段查询数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 详解Java语言中一个字符占几个字节?

    详解Java语言中一个字符占几个字节?

    这篇文章主要介绍了Java语言中一个字符占几个字节,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论