java 内存举例

1. java内存的主要划分

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(">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();

java 内存举例

第二部: 对student赋值

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

java 内存举例

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(">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

java 内存举例

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

java 内存举例

java 内存举例

 

应用传递

/*
    面向对象的封装性。
*/
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(">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

java 内存举例

java 内存举例

相关推荐