zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    NSAttributedString用法
    xib Nib IB 可视化编程详解
    对虚函数的理解
    QSS的关键词
    Qt发布问题
    Qt使用与问题处理
    Qt术语
    Qt国际化——使用自带翻译包
    Qt 小记
    查看端口及使用进行
  • 原文地址:https://www.cnblogs.com/zxqstrong/p/5330926.html
Copyright © 2011-2022 走看看