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

  • 相关阅读:
    linux 换源
    Jedis使用
    mysql 安装
    ORACLE 11g安装
    网易有道云笔记去除左下角广告
    No module named 'urllib2'
    python+Eclipse+pydev环境搭建
    python-正则表达式基础
    [转]SpringMVC Controller介绍及常用注解
    【Android自学日记】搭建Android开发环境
  • 原文地址:https://www.cnblogs.com/zxqstrong/p/5330926.html
Copyright © 2011-2022 走看看