static int和static final int的区别

如题所述

1.static变量

按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:
  对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。

2,final变量:

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

当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。

另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用

3.static final int 一般用于常量定义
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-29
以final 修饰的变量 相当于常量,在程序中是无法修改其值的。
没有final的变量是可以修改的。本回答被提问者采纳

static int和static final int的区别
3.static final int 一般用于常量定义

final int i和static final int i
final int i表示i是一个整形常量 static final int i表示i是一个静态整形常量 二者都是不可改变的常量,区别在于后者可以通过类名.i这种方式直接访问,而前者只能通过实例化出对象来,然后对象名.i去访问,当然前者也能通过后者这种方式去访问,static修饰之后,存放的内存位置不一样了。

Java中static和final的区别
final定义的变量可以看做一个常量,不能被改变;final定义的方法不能被覆盖;final定义的类不能被继承。final static 就是再加上static的特性就可以了 static 和final是没有直接关系的 static 是在内存中分配一块区域,供整个类通用,所有的类的对象都享有它的共同的值 static 和final的区别 一、static...

C++ 中static 和final的区别是什么
1、final的成员变量不能改变。2、final的局部变量不能改变。(当是形参时:目的是当形参是引用型变量时,防止改变其引用型变量指向其他的对象)。

为什么static和final通常连用
static和final的意义是不同的,static修饰的时候代表对象是静态的,而final修饰的时候代表对象只能赋值一次,他们连用的时候是因为定义的那个对象既要它是静态的,也要求它的值不能再被修改。举例说明:static int a=1;static final b=1;这里a和b的区别在于,a在程序里可以被重新赋值为2或3或等等的...

Java中的关键字static和final的作用
private static final int D = 70; public final int E; \/\/final空白,必须在初始化对象的时候赋初值 public Test3(int x) { E = x; } \/** * @param args *\/ public static void main(String[] args) { Test3 t = new Test3(2); \/\/t.A=101; \/\/出错,final变量的值一旦给定...

java final static和 static final的区别
这俩是没有区别的,只是final static的可读性比较强些。比如:int arr[] 和 int[] arr 一样,int[] arr 的可阅读性比较强。采纳我

static final int g[][]=new int[][] 中的final是什么意思,具体有什 ...
另外有一种被称为inline的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会影响效率,所以你要...

声明局部变量时static int a;中的int可以省略吗写成static a;
int代表变量类型,一定不能省略,反而局部变量是不要使用static的!

java中static final变量存储内存哪个区?
存储在静态区的,他不能被改变是因为java存储特性决定的,java在存储数据时不只存储了数据,还存储了数据想关信息如:数据类型等,在初始化MAX的时候已经生命是final的,那么他将不能被改变

相似回答