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关键字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaMail与Spring整合过程解析

    JavaMail与Spring整合过程解析

    这篇文章主要介绍了JavaMail与Spring整合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • java实现科研信息管理系统

    java实现科研信息管理系统

    这篇文章主要为大家详细介绍了java科研信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • mybatis原理概述入门教程

    mybatis原理概述入门教程

    这篇文章主要介绍了在今天这篇博文中,我将要介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,她有什么优缺点以及mybatis和hibernate之间存在着怎么样的关系,大家这些问题一起通过本文学习吧
    2016-09-09
  • Java正则表达式学习之分组与替换

    Java正则表达式学习之分组与替换

    这篇文章主要给大家介绍了关于Java正则表达式学习之分组与替换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • java实现图片转base64字符串 java实现base64字符串转图片

    java实现图片转base64字符串 java实现base64字符串转图片

    这篇文章主要为大家详细介绍了java实现图片转base64字符串,java实现base64字符串转图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 基于IDEA建立module操作步骤解析

    基于IDEA建立module操作步骤解析

    这篇文章主要介绍了基于IDEA建立module操作步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • MyBatis集成Spring流程详解

    MyBatis集成Spring流程详解

    在实际开发中不仅仅是要展示数据,还要构成数据模型添加数据,这篇文章主要介绍了SpringBoot集成Mybatis操作数据库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • SpringBoot+微信小程序实现文件上传与下载功能详解

    SpringBoot+微信小程序实现文件上传与下载功能详解

    这篇文章主要为大家介绍了SpringBoot整合微信小程序实现文件上传与下载功能,文中的实现步骤讲解详细,快跟随小编一起学习一下吧
    2022-03-03
  • 谈谈你可能并不了解的java枚举

    谈谈你可能并不了解的java枚举

    这篇文章主要给大家介绍了一些关于你可能并不了解的java枚举的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • springboot+VUE前后端分离实现疫情防疫平台JAVA

    springboot+VUE前后端分离实现疫情防疫平台JAVA

    本文主要使用了Java、springmvc、VUE、node.js、mybatis、mysql、tomcat、jquery、layui、bootstarp、JavaScript、html、css、jsp、log4j等一些常见的基本技术,实现一个疫情防疫小平台
    2021-08-08

最新评论