java 内存举例

1. java内存的主要划分

 

 

 

2.  OOTest02.java 的内存划分

public class OOTest02{
    public static void main(String[] args){
        Student zhangsan=new Student();
        zhangsan.id=1001;
        zhangsan.name="张三";
        zhangsan.sex=true;
        zhangsan.address="北京";
        zhangsan.age=21;
        System.out.println("id="+zhangsan.id);
        System.out.println("name"+zhangsan.name);
        System.out.println("sex="+zhangsan.sex);
        System.out.println("address="+zhangsan.address);
        System.out.println("age="+zhangsan.age);
    }
}

class Student{
    int id;
    String name;
    boolean sex;
    String address;
    int age;
}
View Code

 

第一步:执行main方法,将main方法压入栈,然后new Studentd对象

Student zhangsan=new Student();

 

第二部: 对student赋值

        zhangsan.id=1001;
        zhangsan.name="张三";
        zhangsan.sex=true;
        zhangsan.address="北京";
        zhangsan.age=21;

 

3. 不使用new关键字的问题

public class OOTest02{
    public static void main(String[] args){
        
               \\ Student zhangsan=new Student();
                Student zhangsan=null;

        zhangsan.id=1001;
        zhangsan.name="张三";
        zhangsan.sex=true;
        zhangsan.address="北京";
        zhangsan.age=21;
        System.out.println("id="+zhangsan.id);
        System.out.println("name"+zhangsan.name);
        System.out.println("sex="+zhangsan.sex);
        System.out.println("address="+zhangsan.address);
        System.out.println("age="+zhangsan.age);
    }
}

class Student{
    int id;
    String name;
    boolean sex;
    String address;
    int age;
}        
View Code

抛空指针异常,因为zhangsan没有指向任何对象,所以其地址为null,我们就使用student的属性,这样就导致了空指针异常。

Exception in thread "main" java.lang.NullPointerException

 

4. 参数传递

值传递

public class OOTest03{
    public static void main(String[] args){
        int i=10;
        method1(i);
        System.out.println(i);
    }
    public static void method1(int temp){
        temp=1;
    }
}
View Code

 

应用传递

/*
    面向对象的封装性。
*/
public class OOTest04{
    public static void main(String[] args){
        Student zhangsan=new Student();
        zhangsan.id=1001;
        zhangsan.name="张三";
        zhangsan.sex=true;
        zhangsan.address="北京";
        zhangsan.age=21;
        
        method1(student);
        
        System.out.println("id="+zhangsan.id);
        System.out.println("name"+zhangsan.name);
        System.out.println("sex="+zhangsan.sex);
        System.out.println("address="+zhangsan.address);
        System.out.println("age="+zhangsan.age);
        
        public static void method1(Student temp){
            temp.name="李四";
        }
    }
}

class Student{
    int id;
    String name;
    boolean sex;
    String address;
    int age
}
View Code

 

 

posted @ 2016-03-28 22:17  zxqstrong  阅读(319)  评论(0编辑  收藏  举报