final一般用于修饰常量 那加了final关键字的变量有代表这什么呢
static final 修饰常量又代表这什么意思呢 
static final 常量中的static仅仅是指静态吗
希望高人指点 

解决方案 »

  1.   

    final了还可以变,那就不用final了。。
      

  2.   

    哥们,你理解错了,final加在变量前,变量就被定义为常量了,表示该变量的值使用时将不可被动态改变。
    static则表示某个变量或常量为静态,保存在内存中希望能对你有所帮助,如再有问题,欢迎给我邮件,乐意帮助同行解决问题,大家相互提高!

    ------------------------------------------------------
    final一般用于修饰常量 那加了final关键字的变量有代表这什么呢 
    static final 修饰常量又代表这什么意思呢  
    static final 常量中的static仅仅是指静态吗 
    希望高人指点 
      

  3.   


    final一般用于修饰常量 那加了final关键字的变量有代表这什么呢 
    表示引用对象不变
      

  4.   

    static的意义是所有的对象都共用一个static的变量对象当然常量也可以了...
      

  5.   

    static修饰后的变量保存在内存中,那程序结束后该段内存空间能够被释放吗?还是需要回收变量?
      

  6.   

    final修饰符放在变量和方法前表示,表示这个变量和方法不能被子类继承,和常量是两个概念
    static定义的常量,是保存在内存的data段定义一个值,可以用“class.常量”来访问,所有的实例对象都访问同一个值
      

  7.   

    当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值
      

  8.   

    static表示此值常驻内存,所有对象都只用这一个。(静态->不动态创建)
    final表示不可改变。(常量->不可再去赋值)
      

  9.   

    静<->动
    常<->恒估计楼主是在这理解出问题了吧
      

  10.   

    final定义的变量与普通常量的差别就是前者还有机会在构造方法或及静态块中被改变一次,后者需要直接在程序中写死static就是静态的意思了,Java中还没发现其它情况的用法
      

  11.   


    STATIC can be make a code block, init as the class onload
      

  12.   

    final表示变量的值或引用不变
      

  13.   

    static final即表示静态常量
      

  14.   


    static变量在程序开始运行就一直存在,程序结束后就被回收了。
      

  15.   

    final 变量=常量,在以后的程序中不可更改。也不能再赋值。
    static final 变量=静态常量,这个常量程序一开始运行就存储在内存中了。直到程序退出
      

  16.   

    final int a; //变量
    a = 1;  只能进行一次赋值final int a=1;直接指定
      

  17.   

    都final了,还怎么变啊?
    ……
      

  18.   

    static 指静态的static final 指向内存地址固定的,不可变的
    就是这样个意思
      

  19.   

    同意10楼的观点,补充一点
    如果在变量前加static final修饰,只可以在定义的时候进行初使化.
      

  20.   


    答:以上回答都不全面。至少在打上红色的地方,都不全面。
    如:
    1)代码:
      
    class TestA{
       final int  j;//没有初始化
         {j=2;}//仍没有写在构造器中,但可以初始化(当然:对象初始化块中代码最后编译器全挪到所有构造器中)
       
       public void f(final int x)//这个变量x干脆就不写初始化值
         {...}
         }
    2)static final也不是必须定义的同时就一定初始化。
    如:class TestB
    {
      static final int i;//没有初始化
      static
      {
        i=2;//此处再初始化。所以static final 不一定非要在定义的同时初始化
      }
    }
     
      

  21.   

    楼上的何必这样呢?31楼已经说得很不错了。
    实例初始化而罢了
    要是我来挑你的刺也可以挑到
    class Test {
    private final int a;
    {
    a=1;
    }
    }
    这不就是三个地方了么?怎么你说这两个地方只能选其一?我是故意开玩笑说的,其实这些东西不用说大家都知道
      

  22.   

    static  表示静态,下我一跳,以为 final 能修饰变量呢。
      

  23.   

    我认啊...final定义成员变量..是这个成员变量就不可以改变了啊...而static final 是定义常量的默认是public static final
      

  24.   

    finally是代表总执行
    final定义变量不可改变
          定义类不能被实例化(定义抽象类不能被实现)
         定义方法不能被重写
      

  25.   

    final修饰的变量,初始化后就不可变
      

  26.   

    final 修饰表示的是 常量。但是这个常量的生命周期和他所在的类一起。static final 修饰表示 静态常量,它还有个更容易理解的名字 : 全局常量以为在java这样纯面向对象的语言中,什么都写在类里,所以没有像c里const int i = 1;
    int main(){
    }
    这样的写法,所以引入的static final恰好解决了这个问题,一个public static final修饰的常量,被所有对象共享。…………………………………………
    自己理解而已。
      

  27.   


    final的用法:
    final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。
    将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载
      

  28.   

    static 表示在内存中只有一份拷贝......
      

  29.   

    final 修饰的属性不可被改变.
    所以被成为常量.
    static 修饰的属性表示类属性,只和类相关。
      

  30.   

    被final修饰的成员或者变量
    在初始化以后,值就不能再改变!
      

  31.   

    我也回帖支持下,大概懂了
    不过是否真的十分懂,其实我觉得也不是,我自己的总结1、JAVA中没有CONST,CONST只为保留字,但没用,所以:FINAL=CONST
    2、FINAL了的东西不能被继承或在任何时候改变,只能赋值一次
    3、STATIC为全局变量关健字,final static代表全局常量,普通的static就代表类里面自己的全局变量
    4、FINAL常量在类初始化的时候才会占用内存,而static在程序一运行的时候就占用内存
    5、假设以下代码package com.bean;public class finalstatic {
        public final static String sthello = "hello world";
        public static String sthi = "hi world";
        public final String hello = "hello world";
        public String hi = "hi world";    public finalstatic() {
            //构造函数里面没东东
        }
    }
    我们先试试直接赋值
    com.bean.finalstatic.sthello = "hello world";   //出错
    com.bean.finalstatic.sthi = "hi world";         //正常
    com.bean.finalstatic.hello = "hello world";     //出错
    com.bean.finalstatic.hi = "hi world";           //出错第一句出划,因为有final不能赋值
    第二句正确,因为有static的是全局变量,并且没有final可以直接赋值,不用创建对像实例
    第三、四两句,是因为没有static修饰,只能是在finalstatic myfinalstatic = new finalstatic ()之后能能用myfinalstatic.hi或finalstatic.hello赋值从上面的代码,应该可以看得出来final和static的区别,当然了,static既然可以不new对像实例就赋值,当然也可以取值了,例如:
    System.out.print(com.bean.finalstatic.sthi);
      

  32.   

    楼主的意思是 空白final?