static
静态
-
随着类的加载而加载
-
优先于对象存在
-
被类的所有对象共享
-
可以通过类名调用
注意
- 在静态方法中是没有this关键字
- 静态的属性存在于方法区的静态区
静态变量和成员变量的区别
- 所属不同
- 静态变量属于类也属于对象,还有其所有的子类及子类对象,所以也称为为类变量
- 成员变量属于对象,所以也称为实例变量(对象变量)
- 内存中位置不同
- 静态变量存储于方法区的静态区
- 成员变量存储于堆内存
- 内存出现时间不同
- 静态变量随着类的加载而加载,随着类的消失而消失
- 成员变量随着对象的创建而存在,随着对象的消失而消失
- 调用不同
- 静态变量可以通过类名调用,也可以通过对象调用
- 成员变量只能通过对象名调用
静态代码块
做些初始化
工具类
javadoc命令生成说明书
final
最终的
-
final+变量(局部变量 成员属性) 变量就变成了常量
-
final+方法:该方法不能被重写
-
final 类:该类不能被继承 String类 就是一个final
基本类型,是值不能被改变
引用类型,是地址值不能被改变,对象中的属性可以改变
A:final概述
B:final修饰特点
修饰类,类不能被继承
修饰变量,变量就变成了常量,只能被赋值一次
修饰方法,方法不能被重写
C:案例演示
final修饰特点
代码块
在java中,使用{}括起来的代码被称为代码块
根据位置和声明的不同,分为4类
局部代码块
方法中局部位置,用于限制变量的生命周期
public static void main(String[] args)
{
{
int i = 1;
system.out.println(i);
}//i被释放销毁
}
构造代码块
在类中的成员位置。每次调用构造方法是都会先执行构造代码块中的代码
可以把多个构造方法的共同代码放到一起执行,每次调用构造函数之前执行
class Code{
{
system.out.println("构造代码块");
}
public Code(){
system.out.println("构造函数");
}
}
//输出
构造代码块
构造函数
静态代码块
在类中的成员位置,用static修饰
只在类加载的时候可以执行一次
class Code{
static{
system.out.println("静态代码块");
}
{
system.out.println("构造代码块");
}
public Code(){
system.out.println("构造函数");
}
}
//输出
静态代码块
构造代码块
构造函数
同步代码块
多线程内容
网友评论