标签:
由于jvm的垃圾回收机制由一条后台线程完成。如果不考虑内存管理,会出现以下问题:
1,不断分配内存使得系统的内存减少,从而降低程序运行的性能,
2,大量已经分配的内存的回收使得垃圾回收负担加重,降低程序的运行的性能。
Java中的变量:
1,变量可以分为成员变量和局部变量。
局部变量分为,形参(方法签名中使用的局部变量),方法内的局部变量,代码块内的局部变量。
类体内定义的变量成为成员变量,如果由static修饰,则称之为静态变量或者类变量。如果没有修饰那么就是非静态变量或者实例变量。
同一个jvm中,每一个类只有一个class对象,但是可以创建多个java对象,因此类对象只需要创建一次,但是程序需要几个实例,那么实例变量就需要几块内存空间。
实例变量的初始化时机:程序会先执行非静态代码块然后再执行构造函数。假如非静态代码块中有对成员函数赋值的操作,那么赋值操作的结果和程序的源码的顺序有关。
public static void main(String[] args) { Cat catt=new Cat("kobe"); System.out.println(catt); } public static class Cat{ String name; double weight=2.3; public Cat(String name){ System.out.println("执行构造器"); this.name=name; } { System.out.println("非晶态代码狂"); weight=2.0; } public String toString(){ return name+weight; } }
非晶态代码狂
执行构造器
kobe2.0
public static void main(String[] args) { Cat catt=new Cat("kobe"); System.out.println(catt); } public static class Cat{ String name; public Cat(String name){ System.out.println("执行构造器"); this.name=name; } { System.out.println("非晶态代码狂"); weight=2.0; } double weight=2.3; public String toString(){ return name+weight; } }
非晶态代码狂
执行构造器
kobe2.3
标签:
原文地址:http://my.oschina.net/u/2480757/blog/515707