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;
}
第一步:执行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 内存举例的更多相关文章
- JVM学习(3)——总结Java内存模型
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 为什么学习Java的内存模式 缓存一致性问题 什么是内存模型 JMM(Java Memory Model)简 ...
- Java虚拟机12:Java内存模型
什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致 ...
- java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)
概述 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又 ...
- JVM-7.Java内存模型与高效并发
更多内容参见<并发与同步>系列 一.引子 二.JMM 三.Java中的线程 四.线程安全 五.锁优化 一.引子 运算能力 摩尔定律:晶体管数量,代表的CPU的频率 Amdahl ...
- 二.GC相关之Java内存模型
根据上节描述的问题,我们知道其最终原因是GC导致的.本节我们就先详细探讨下与GC息息相关的Java内存模型. 名词解释:变量,理解为java的基本类型.对象,理解为java new出来的实例. Jav ...
- Java 多线程(六)之Java内存模型
目录 1. 并发编程的两个问题 2 CPU 缓存模型 2.1 CPU 和 主存 2.2 CPU Cache 2.3 CPU如何通过 Cache 与 主内存交互 2.4 CPU 缓存一致性问题 3 Ja ...
- Java内存管理-你真的理解Java中的数据类型吗(十)
勿在流沙筑高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 作为Java程序员,Java 的数据类型这个是一定要知道的! 但是不管是那种数据类型最 ...
- OutOfMemoryError异常java内存泄漏(Memory Leak)和内存溢出(Memory Overflow)
本篇文章理解源自于<深入理解java虚拟机>2.4章节 实战:OutOfMemoryError异常 在以下例子中,所有代码都可以抛出OutOfMemoryError异常,但是要区分到底 ...
- 知识点:Java 内存模型完全解密
Java虚拟机(JVM) 规范中定义了一种Java的内存模型,即Java Memoory Model(简称JMM),用来实现让Java程序在各个平台下都能达到一致的内存访问效果. JVM是整个虚拟机, ...
随机推荐
- ST表(查询区间最值问题)
ST表与线段树相比,这是静态的,无法改动,但是他的查询速度比线段树要快,这是牺牲空间换时间的算法. O(nlogn)预处理,O(1)查询.空间O(nlogn). ][]; ]; void rmq_in ...
- ajaxfileupload.js异步上传
转载:https://www.cnblogs.com/labimeilexin/p/6742647.html jQuery插件之ajaxFileUpload ajaxFileUpload.js ...
- sscanf()分割字符数组
sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源. 头文件: #include<stdio.h> 或者 #include < ...
- STL effectiv 条款7 复习 未完成
该条款很好的解决了 容器中存放指针释放的问题,for_each函数调用可以参考自己的前面的博客 为什么会有这个条款呢 很多时候 我们将new过的指针存放到容器中,我们有时候错误的认为 容器对象析构 ...
- maya2013无法安装卸载激活失败
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- U盘中毒问题解决
背景: 最近在学校的打印店里打印东西,结果过了一段时间再使用的时候发现,U盘中的文件夹都成了快捷方式,只有一个pdf文件是好的,无奈,其中有比较重要的东西,所以寻求解决办法,最终解决,为方便以后查阅, ...
- css悬浮右侧悬浮
<html><head><title>CSSDemo</title><style type"text/css"> .ho ...
- mongodb 用户权限控制
MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于W ...
- Win7无线路由Win8/8.1开启网络承载DOS命令笔记本电脑当无线路由器
以下废话,先吐槽几句 这个功能其实在Win7+系统都内置了,不要再用什么某豹.某大师.某Soft之类的开启无线网络,这些软件都是骗你们安装一些垃圾软件的. 另外吐槽 某度wifi.某数字wifi都是垃 ...
- git合并分支上的commit为一条commit到master
标签: git 缘由? 有一次被人问到怎么把一个分支的所有commit按一个commit合并到主分支上,当时一脸蒙B,平时开发都是直接merge,很少考虑到这种问题,于是特意搜索了相关资料. 场景 其 ...