final和static的区别

一.static的做用:(静态方法只能访问静态变量,静态变量通常使用类名访问,静态语句块先于程序运行)html

      static的的做用从三个方面来谈,分别是静态变量、静态方法、静态类。this

   1.静态变量:htm

        声明为static的静态变量实质上就是全局变量,当声明一个对象时,并不产生static变量的拷贝,而是该类全部实例变量共用同一个static变量。也就是说这个静态变量只加载一次,只分配一块储存空间。对象

   2.静态方法:blog

       声明为static的静态方法有如下几个特色:继承

       (1)静态方法只能调用静态方法;变量

       (2)静态方法只能访问静态数据;引用

       (3)静态方法不能以任何方式引用this或super;程序

   3.静态类:方法

        一般一个普通类不容许声明为静态,只有一个内部类才能够(main方法就是一个典型),这时这个声明的静态类能够直接做为一个普通类来使用,而不须要实例一个外部类。

二.final的做用:(常量,只能访问,不能修改,通常使用全大写)

   一样,final的做用从变量、方法、类三个方面来理解、

      final修饰的变量的值不能被修改,是一个常量;

      final修饰的方法不能被重写;

      final修饰的类不能被继承;(太监类!)

三.final 和static 一块用表示什么?

    static和final一块修饰的成员变量和成员方法,简单来讲能够理解为全局常量!

   对于变量,一旦给定值,就不能够修改,而且经过类名能够访问。

   对于方法,表示不可覆盖,而且能够经过类名直接访问


以上内容引用自http://www.cnblogs.com/fenyangyang/p/6838461.html