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;
}

第一步:执行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;
}

抛空指针异常,因为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;
}
}

应用传递

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

java 内存举例的更多相关文章

  1. JVM学习(3)——总结Java内存模型

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 为什么学习Java的内存模式 缓存一致性问题 什么是内存模型 JMM(Java Memory Model)简 ...

  2. Java虚拟机12:Java内存模型

    什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致 ...

  3. java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)

    概述 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又 ...

  4. JVM-7.Java内存模型与高效并发

    更多内容参见<并发与同步>系列 一.引子 二.JMM 三.Java中的线程 四.线程安全 五.锁优化       一.引子 运算能力 摩尔定律:晶体管数量,代表的CPU的频率 Amdahl ...

  5. 二.GC相关之Java内存模型

    根据上节描述的问题,我们知道其最终原因是GC导致的.本节我们就先详细探讨下与GC息息相关的Java内存模型. 名词解释:变量,理解为java的基本类型.对象,理解为java new出来的实例. Jav ...

  6. Java 多线程(六)之Java内存模型

    目录 1. 并发编程的两个问题 2 CPU 缓存模型 2.1 CPU 和 主存 2.2 CPU Cache 2.3 CPU如何通过 Cache 与 主内存交互 2.4 CPU 缓存一致性问题 3 Ja ...

  7. Java内存管理-你真的理解Java中的数据类型吗(十)

    勿在流沙筑高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 作为Java程序员,Java 的数据类型这个是一定要知道的! 但是不管是那种数据类型最 ...

  8. OutOfMemoryError异常java内存泄漏(Memory Leak)和内存溢出(Memory Overflow)

    本篇文章理解源自于<深入理解java虚拟机>2.4章节 实战:OutOfMemoryError异常   在以下例子中,所有代码都可以抛出OutOfMemoryError异常,但是要区分到底 ...

  9. 知识点:Java 内存模型完全解密

    Java虚拟机(JVM) 规范中定义了一种Java的内存模型,即Java Memoory Model(简称JMM),用来实现让Java程序在各个平台下都能达到一致的内存访问效果. JVM是整个虚拟机, ...

随机推荐

  1. Codeforces-B-Divisors of Two Integers(思维技巧)

    Recently you have received two positive integer numbers xx and yy. You forgot them, but you remember ...

  2. 对称加密中的ECB模式&CBC模式

    ECB模式: CBC模式: 所有的迭代模式:

  3. windows系统打开火狐浏览器提示“无法加载你的firefox配置文件”

    win7系统自带IE浏览器,还是有部分用户使用不习惯,选择下载第三方浏览器,比如:火狐.谷歌.360浏览器等.最近有Win7系统用户在重新安装火狐浏览器后发现打不开,并提示“无法加载你的firefox ...

  4. 如何将一个Maven项目转化成一个Eclipse项目

    有时候我们需要将一个Maven项目导入到Eclipse中,直接作为一个普通的eclipse项目来导入是不行的,我们可以通过一个命令来实现:mvn eclipse:eclipse 1. 进入该Maven ...

  5. Caused by: java.net.URISyntaxException: Relative path in absolute URI

    <property> <name>hive.exec.scratchdir</name> <value>/tmp/hive</value> ...

  6. SimpleAdapter与listview,gridview的组合用法

    首先要明白SimpleAdapter构造方法的几个参数的含义: public SimpleAdapter(Context context, List<? extends Map<Strin ...

  7. Murano Weekly Meeting 2015.12.01

    Meeting time: 2015.December.1st 1:00~2:00 Chairperson:  Nikolay Starodubtsev, from Mirantis Meeting ...

  8. 如何才能够写出优美的C代码呢?

    转载自http://developer.51cto.com/art/201601/503802.htm 面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可 ...

  9. 三、oracle 表空间

    SQL> --清除屏幕信息 SQL> clear screen SQL> --查看表空间 SQL> select * from v$tablespace; SQL> -- ...

  10. dom父节点