JAVA基础----java中final和static关键字的理解 博客分类: JAVA基础 javastaticfinal关键字
程序员文章站
2024-03-12 10:47:50
...
1、final最终的,由final修饰的变量,只能被初始化一次,可以在声明时初始化,也可以之后初始化,但只能初始化一次,所以由final修饰的变量是常量,不能再变了,注意如果类成员变量用final修饰,一种是声明时初始化,一种是在构造方法中初始化
注意:常量一般都用大写来表示如:PI,IP,SOCKET_NAME,MAX_SPEED
例如:
2、static静态的,类级拥有的,由static修饰的成员变量(或者叫属性),在内存中只有一份,这个类所产生的所有实例,都公用这个一份,所以说一般,类的所有实例共同维护的属性,可以用static修饰,类名.static修饰的变量名,就可以来操作这个属性,而且内存中只维护一份,高效,省空间
例子:
其他例子:
3、静态常量:
用static final同时修饰的变量,是静态常量,同时有final和static的特性,一般用来声明系统中只维护一份(static修饰)的不变的量(final修饰)
例子:
用法:
直接通过---类名.变量名,来用
如:Dict.YES
注意:常量一般都用大写来表示如:PI,IP,SOCKET_NAME,MAX_SPEED
例如:
public class Test{ public static void main(String []args) { A a = new A(); //a.a = 2;//这个报错,只能初始化一次 A b = new A(); //b.a = 2;//这个也报错 } } class A { public final int a = 2; }
2、static静态的,类级拥有的,由static修饰的成员变量(或者叫属性),在内存中只有一份,这个类所产生的所有实例,都公用这个一份,所以说一般,类的所有实例共同维护的属性,可以用static修饰,类名.static修饰的变量名,就可以来操作这个属性,而且内存中只维护一份,高效,省空间
例子:
public class Test{ public static void main(String []args) { Stu s1 = new Stu(); s1.s = 1;System.out.println(s1.s); //输出1 s1.s = 2;System.out.println(s1.s); //输出2 Stu s2 = new Stu(); s2.s = 3; System.out.println(s2.s); //输出3 System.out.println(s1.s); //输出3 因为内存中所有的实例共同维护这一份,变量 System.out.println(Stu.s); //输出3 一般来说都直接通过类名来引用类中的静态变量 } } class Stu { public static int s; }
其他例子:
public class Test { public static void main(String[] args) { final int num = 3; num = 4; //final修饰的是常量,最终变量,不能再赋值,必须在初始化的同时就赋值 } }
3、静态常量:
用static final同时修饰的变量,是静态常量,同时有final和static的特性,一般用来声明系统中只维护一份(static修饰)的不变的量(final修饰)
例子:
public interface Dict { public static final int YES = 1; }
用法:
直接通过---类名.变量名,来用
如:Dict.YES
推荐阅读
-
JAVA基础----java中final和static关键字的理解 博客分类: JAVA基础 javastaticfinal关键字
-
详解Java编程中static关键字和final关键字的使用
-
详解Java编程中static关键字和final关键字的使用
-
浅析对Java关键字final和static的理解
-
浅析对Java关键字final和static的理解
-
java 中的static关键字和final关键字的不同之处
-
java 中的static关键字和final关键字的不同之处
-
java学习笔记(基础篇)—关键字static和final
-
【java基础】面试常见问题:类和对象,封装继承多态,final关键字,static关键字,类加载过程,双亲委派模型
-
Java基础学习-关键字的概述和特点以及常量的概述和分类