可以修饰成员变量和成员方法
static关键字特点
- 随着类的加载而加载
- 优先于对象存在
- 类的所有对象共享:这也是我们判断是否使用静态关键字的条件
- 可以通过类名调用
static关键字注意事项
- 在静态方法中是没有this关键字的
- 静态方法只能访问静态的成员变量和静态的成员方法
静态的内容存在于方法区的静态区
静态变量和成员变量的区别
所属不同
- 静态变量属于类,所以也称为为类变量
- 成员变量属于对象,所以也称为实例变量(对象变量)
内存中位置不同
- 静态变量存储于方法区的静态区
- 成员变量存储于堆内存
内存出现时间不同
- 静态变量随着类的加载而加载,随着类的消失而消失
- 成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同
- 静态变量可以通过类名调用,也可以通过对象调用
- 成员变量只能通过对象名调用
main方法是静态的
public static void main(String[] args) {}
- Public:公共的,访问权限是最大的,由于main方法是被jvm调用,所以访问权限足够大。
- Static:静态的,不需要创建对象,通过类名就可以,方便jvm的调用,直接类名访问
- Void:方法的返回值是返回给调用者,而mian方法是被jvm调用,不需要给jvm返回值
- Main:一个通用的名称,一个常见的方法入口,虽然不是关键字,但是被jvm识别
- String[] args:以前用于接收键盘录入的数据的
例子
public class FunctionDemo {
public static void main(String[] args) {
System.out.println(args);
System.out.println(args.length);
for(int x=0; x<args.length; x++){
System.out.println(args[x]);
}
}
}
Math类
Math类概述:Math包含用于执行基本数学运算的方法
Math类特点:没有构造方法,因为成员都是静态的
Math类讲解一个方法:
获取随机数
获取1-100之间的随机数
代码块
在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。
局部代码块:在方法中出现;限定变量生命周期,及早释放,提高内存利用率
构造代码块 :在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
静态代码块 在类中方法外出现,加了static修饰:在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次。