java 中的static关键字和final关键字的不同之处

 更新时间:2013年03月27日 09:01:52   作者:  
java 中的static关键字和final关键字的不同之处,需要的朋友可以参考一下

static

1.在类中,用static修饰的属性,称为静态属性。为这个类的所有对象所共有,存放在静态存储区,所有该类的对象都可以访问且访问的都是同一变量。可以用作计数器,来统计总共创建了多少个各类的对象。

2.在类中,用static 修饰的方法为静态方法,在静态方法中不可以访问非静态的属性和方法,但在非静态方法中可以访问静态方法和属性;且static方法多态失效,不能使用this。

3.由于静态属性和方法是属于该类的所有对象的,所以可以用类名.静态属性/方法名---来访问。

4.static 还可以修饰代码块,在类加载的时候被执行1次,仅且一次。

final

(1)final标记的类不能被继承

复制代码 代码如下:

final class T{}

class TT extends T{}//出错,final类不能被继承


(2)final标记的方法不能被子类重写

复制代码 代码如下:

class T{

    public final void function(){}
}

class TT extends T{

    public void function(){}//出错,final方法不能被子类重写
}


(3)final标记的局部变量为常量        
复制代码 代码如下:

final int x=10;
x=3//出错,final标记的局部变量为常量,不能被赋值

 (4)final标记的成员变量必须在声明的同时赋值,或在该类的构造方法中显示赋值(实例变量没有默认值),然后才能使用。

如:

复制代码 代码如下:

class Test{
final int x=10;//声明并赋值

}

//或者

class Test{
    final int x;
    Test(){
     x=10;

}
 


(5)方法中定义的内置类只能访问该方法内的final类型的局部变量,用final定义的局部变量相当于一个常量,它的生命周期长于方法运行的生命周期。

(6)将一个形参定义成final也是可以的,这就限制了在方法中修改形参的值范围。

java中有许多的类为final类型:String ,Math等等。

相关文章

  • Java实现自动生成缩略图片

    Java实现自动生成缩略图片

    这篇文章主要为大家详细介绍了Java实现自动生成缩略图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • springboot+mybatis通过实体类自动生成数据库表的方法

    springboot+mybatis通过实体类自动生成数据库表的方法

    这篇文章主要介绍了springboot+mybatis通过实体类自动生成数据库表的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • SpringMVC @RequestBody 为null问题的排查及解决

    SpringMVC @RequestBody 为null问题的排查及解决

    这篇文章主要介绍了SpringMVC @RequestBody 为null问题的排查及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Spring的@Bean和@Autowired组合使用详解

    Spring的@Bean和@Autowired组合使用详解

    这篇文章主要介绍了Spring的@Bean和@Autowired组合使用详解,Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理,产生这个Bean对象的方法Spring只会调用一次随后会将这个Bean对象放在自己的IOC容器,需要的朋友可以参考下
    2024-01-01
  • java如何替换word/doc文件中的内容

    java如何替换word/doc文件中的内容

    docx格式的文件本质上是一个XML文件,只要用占位符在指定的地方标记,然后替换掉标记出的内容,这篇文章主要介绍了java替换word/doc文件中的内容,需要的朋友可以参考下
    2023-06-06
  • java实现哈夫曼文件解压缩

    java实现哈夫曼文件解压缩

    这篇文章主要为大家详细介绍了java实现哈夫曼文件解压缩,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Java中判断对象是否为空的不同方法

    Java中判断对象是否为空的不同方法

    在Java编程中,经常会遇到判断对象是否为空的情况,本篇将深入探讨Java中判断对象是否为空的不同方法,包括使用条件判断、使用Java 8的Optional类、使用Apache Commons Lang库等,通过详细的解释和举例说明,帮助读者正确处理空对象问题,需要的朋友一起看看吧
    2023-11-11
  • ArrayList和JSONArray边遍历边删除到底该如何做

    ArrayList和JSONArray边遍历边删除到底该如何做

    这篇文章主要介绍了ArrayList和JSONArray边遍历边删除到底该如何做,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • java如何读取超大文件

    java如何读取超大文件

    这篇文章主要为大家详细介绍了java如何读取超大文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Java获取Prometheus监控数据的方法实现

    Java获取Prometheus监控数据的方法实现

    本文主要介绍了Java获取Prometheus监控数据的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12

最新评论