您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第二季学习笔记-static关键字
发布时间:2017-07-10 13:51:06编辑:雪饮阅读()
public class NewKeywordDemo
{
public static void main(String[] args){
Mistress m1=new Mistress("小白");
Mistress m2=new Mistress("小红");
m1.desc();
m2.desc();
m1.profession="程序员";
m1.desc();
m2.desc();
//静态数据不属于对象,属于类,所以直接可以通过类来调用
//静态属性都是存储于方法区的,
//而并非和对象一起存储在同一个区域。
//是每个对象所共享的,当一个对象试图对其修改则其它对象的该值也会受到影响。
System.out.println(Mistress.profession);
Mistress.promosion();
}
}
class Mistress
{
String name;
//使用static修饰属性
static String profession="情人";
public Mistress(String name){
this.name=name;
}
public void desc(){
System.out.println("我的名字是:"+name+",我的职业:"+profession);
}
//使用static修饰的一个方法
public static void promosion(){
System.out.println("转正了");
}
}
编译后的class文件在运行时将会被类加载器加载的虚拟机内存中
运行时数据区就表示的是虚拟机的内存了。
方法区存储类信息,在解释器解释完毕后会将类的一些信息,方法,属性等存储到方法区。
每个类都有一个常量池,常量池也在方法区存储。
局部变量都存储在栈内存中。引用类型的变量名也存储在栈内存中。
堆内存中存储数组,对象等。
static声明的方法中只能调用static修饰的方法和属性。
因为static属于类,对象没有实例化之前就有,所以对象并没有实例化,则无法调用属于对象的属性或方法。
而且static方法中不能使用this关键字,同样是因为对象还没有实例化。
关键字词:javase,static