您的位置:首页 > 编程语言 > Java开发

Java学习笔记----static关键字

2015-10-03 13:15 561 查看
静态的特点

静态的内存图

静态的注意事项

静态变量和成员变量的区别

main方法

静态的特点

1、可以修饰成员变量和成员方法

2、随着类的加载而加载

3、优先于对象存在

4、被类的所有对象共享(这是我们判断该不该使用静态的依据)

5、通过类名调用(既可以通过对象名调用,也可以通过类名调用,建议通过类名调用)

静态的内存图

静态的内容在方法区的静态区



静态的注意事项

1、在静态中没有this对象

2、静态只能访问静态

静态变量和成员变量的区别

1、所属不同

静态变量:属于类,类变量

成员变量:属于对象,对象变量,实例变量

2、内存位置不同

静态变量:方法区的静态区

成员变量:堆内存

3、生命周期不同

静态变量:静态变量是随着类的加载而加载,随着类的消失而消失

成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失

4、调用不同

静态变量:可以通过对象名调用,也可以通过类名调用

成员变量:只能通过对象名调用

main方法

public static void main(String[] args){}

1、public:公共的,访问权限是最大的,由于main方法是被jvm调用,所以访问权限足够大

2、static:静态的,不需要创建对象,通过类名就可以,方便jvm调用

3、void:方法的返回值是返回给调用者,而main方法是被jvm调用,所以返回内容给jvm没有意义

4、main:是一个常见的方法入口

5、String[] args:早期是为了接收键盘录入的数据

在工具类中使用静态方法,将其构造函数私有化,通过类直接调用方法。

class Teacher {
public int num = 10;
public static int num2 = 20;

public void show() {
System.out.println(num); //隐含的告诉你访问的是成员变量
System.out.println(this.num); //明确的告诉你访问的是成员变量
System.out.println(num2);

//function();
//function2();
}

public static void method() {
//无法从静态上下文中引用非静态 变量 num
//System.out.println(num);
System.out.println(num2);

//无法从静态上下文中引用非静态 方法 function()
//function();
function2();
}

public void function() {

}

public static void function2() {

}
}

class TeacherDemo {
public static void main(String[] args) {
//创建对象
Teacher t = new Teacher();
t.show();
System.out.println("------------");
t.method();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: