码迷,mamicode.com
首页 > 其他好文 > 详细

2,对象与内存控制

时间:2015-10-12 12:58:43      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

由于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
 

 

2,对象与内存控制

标签:

原文地址:http://my.oschina.net/u/2480757/blog/515707

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!