static int和static final int的区别

static int和static final int的区别

static int和static final int的区别

文章插图
1.static变量
【static int和static final int的区别】按照是否静态的对类成员变量进行分类可分两种:一种是被s来自tatic修饰的变量 , 叫静态变量或类变量;另一种是没有被static修饰的变量 , 叫实例变量 。两者的区别是:
 对于静态变量在内存中只有一个拷贝(节省内存) , JVM只360问答为静态分配一次内存 , 在加载类的过程中完成静态变量的内存分配 , 可用类名直接访问(方便) , 当然也可以通过对象来访问(但是这是不推荐的) 。对于实例变量 , 没创建一个实例以构抗仍 , 就会为实例变量分配一次内存 , 实例变量可以在内存中有多个拷贝 , 互不影响(灵活) 。
2,final变量:
当你在类中定义变量时 , 在其前面加上final关键于川卷角扩出士办就独字 , 那便是说 , 这个变量移使代座承方一旦被初始化便不可改达数官变 , 这里不可改变的意思对基本类型来说是其值不可变 , 而对于对象变量来说其引用不可再变 。其初始化可商以在两个地方 , 一是其定义处 , 也就是说在final变量定义时直接给其赋值 , 二是在构造函数中 。这两个地方只能选其一 , 要么在定义时给值 , 要么在构造函数中给值 , 不能同时既在定义时给了值 , 又在构造函数中给另外的值 。
当函数参数为final类型时 , 非况影你可以读取使用该参数 , 但是无法改变该参数的值 。
另外方法中的内部类在用到方法中的参变量时 , 此参变也必须声明为fina历换体鲁夫运海系整l才可使用
3.staticfinalint一般用于常量定义

    推荐阅读