广州网站开发公司,营业执照怎么注销,企业开发网站建设哪家好,济源制作网站什么是java静态java静态包括静态变量、静态方法、静态初始化块#xff0c;以下是静态的详解。(推荐教程#xff1a;java教程)1. 什么是静态变量大家都知道#xff0c;我们可以基于一个类创建多个该类的对象#xff0c;每个对象都拥有自己的成员#xff0c;互相独立。然而在…什么是java静态java静态包括静态变量、静态方法、静态初始化块以下是静态的详解。(推荐教程java教程)1. 什么是静态变量大家都知道我们可以基于一个类创建多个该类的对象每个对象都拥有自己的成员互相独立。然而在某些时候我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有而不是某个对象所有即被类的所有对象所共享。静态成员可以使用类名直接访问也可以使用对象名进行访问。当然鉴于他作用的特殊性更推荐用类名访问使用 static 可以修饰变量、方法和代码块。public class Test1 {// static修饰的变量为静态变量所有类的对象共享hobbystatic String hobby Tedu;public static void main(String[] args) {// 静态变量可以直接使用类名来访问无需创建对象System.out.println(通过类名访问hobby Test1.hobby);// 创建类的对象Test1 t1 new Test1();// 使用对象名访问静态变量System.out.println(使用对象名访hobby: t1.hobby);// 使用对象名的形式修改静态变量的值t1.hobby cjj;// 再次使用类名访问静态白变量值已经被修改System.out.println(通过类名访问hobby Test1.hobby);}}运行结果通过类名访问hobbyTedu使用对象名访hobby:Tedu通过类名访问hobbycjj注意静态成员属于整个类当系统第一次使用该类时就会为其分配内存空间直到该类被卸载才会进行资源回收2. static 使用之静态方法与静态变量一样我们也可以使用 static 修饰方法称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法public class Test01 {//使用static关键字声明静态方法public static void print() {System.out.println(欢迎你Cjj!);}public static void main(String[] args) {//直接使用类名调用静态方法Test01.print();//也可以通过对象名调用当然更推荐使用类名调用Test01 t1 new Test01();t1.print();}}复制代码欢迎你Cjj!欢迎你Cjj!注意1、 静态方法中可以直接调用同类中的静态成员但不能直接调用非静态成员。如如果希望在静态方法中调用非静态变量可以通过创建类的对象然后通过对象来访问非静态变量。如2、 在普通成员方法中则可以直接访问同类的非静态变量和静态变量如3、 静态方法中不能直接调用非静态方法需要通过对象来访问非静态方法。如public class Test01 {String name Cjj; //静态成员变量static String hobby study; //非静态成员变量//普通成员方法public void print1() {System.out.println(普通成员方法~~~);}//静态成员方法public static void print2() {System.out.println(静态成员方法~~~);}public static void main(String[] args) {//普通成员方法必须通过对象来调用Test01 t1 new Test01();t1.print1();//可以直接调用静态方法print2();}}3. static 使用之静态初始化块Java 中可以通过初始化块进行数据赋值。如public class Test02 {String name; // 定义一个成员变量//通过初始化块为成员变量赋值{name cjj;}}依次执行这些代码块。如果使用 static 修饰初始化块就称为静态初始化块。注意静态初始化块只在类加载时执行且只会执行一次同时静态初始化块只能给静态变量赋值不能初始化普通的成员变量。我们来看一段代码public class Test02 {int num1;int num2;static int num3;public Test02() {// 构造方法num1 11;System.out.println(通过构造方法为变量num1赋值);}{ // 初始化块num2 22;System.out.println(通过初始化块为变量num2赋值);}static {// 静态初始化块num3 33;System.out.println(通过静态初始化块为静态变量num3赋值);}public static void main(String[] args) {Test02 t1 new Test02(); //创建对象System.out.println(num1: t1.num1);System.out.println(num2: t1.num2);System.out.println(num3: num3);}}运行结果通过静态初始化块为静态变量num3赋值通过初始化块为变量num2赋值通过构造方法为变量num1赋值num1:11num2:22num3:33通过输出结果我们可以看到程序运行时静态初始化块最先被执行然后执行普通初始化块最后才执行构造方法。由于静态初始化块只在类加载时执行一次所以当再次创建对象 hello2 时并未执行静态初始化块。类是在第一次使用的时候才加载加载之后就不会移除。