书接上回,上篇Static说明了:Static可以修饰变量,以及修饰变量的两个使用场景。
其实Static不止可以修饰变量,还可以修饰方法,修饰代码块
修饰方法的时候:Static修饰的方法可以被类名.方法名的方式直接调用,可以避免造对象,好处是
- 避免了new 对象,避免了在
堆中开辟内存,直接加载类的时候将静态方法加载进方法区。
- 设计工具类的时候多半考虑用Static关键字。
使用类方法,实例方法的注意事项

Static修饰方法及代码块
Static修饰方法应用场景-设计工具类
设计一个验证码工具类,给出一个验证码的长度,帮你自动生成一串随机的验证码,这个工具类是不需要你创造对象就可以使用的,所以可以使用Static修饰成员方法,通过类名.方法名直接调用。(避免了new对象可以节省时间资源和内存资源)。
Notice: 这个验证码方法过于简单,可以看之前的string
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| package com.xlkh.dmeo03;
import java.util.Random;
public class MyRandomCodeUtils { private MyRandomCodeUtils(){};
public static String getRandomCode(int length){ if (length <= 0){ return null; } Random r = new Random(); String data = "ABCDEFGHIJKLMNPQRSTUVWXZabcdefghijklmnopqrstuvwxyz23456789"; String res = ""; for (int i = 0; i < length; i++) { int index = r.nextInt(data.length()); res += data.charAt(index);
} return res; } }
package com.xlkh.dmeo03;
public class TestMyRandomCodeUtils { public static void main(String[] args) { String code = MyRandomCodeUtils.getRandomCode(5); System.out.println(code); } }
|
Static修饰代码块
首先,代码块是什么东西:
- 代码块是类的五大成分之一(成员变量,成员方法,构造器,代码块,匿名内部类)
静态代码块

实例代码块
实例代码块的作用和构造器的作用是一样的,用来给对象初始化值;而且每次创建对象之前都会先执行实例代码块。

Summary

CodeDemo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| package com.xlkh.dmeo03;
public class A { public A(){ super(); System.out.println("构造方法执行了...."); } { System.out.println("实例代码块执行了...."); } static { num = 123; System.out.println("静态代码块执行了...."); } static int num;
}
package com.xlkh.dmeo03;
public class TestA { public static void main(String[] args) { A a1 = new A(); A a2 = new A();
System.out.println(A.num); } }
|