Java内存划分
来源:互联网 发布:java 前端分页代码 编辑:程序博客网 时间:2024/06/16 04:17
Java把内存划分为两种:栈内存,和堆内存。
栈内存:
在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配。
堆内存:
用来存放由new创建的对象和数组以及对象的实例变量。
package storage;public class StorageTest {public static void swap(int a,int b){int t = a;a = b;b = t;System.out.println("swap中 a:"+a+",b:"+b);}public static class DataSwap{int a;int b;public String toString(){return "a:"+a+",b:"+b;}}private static void swap(DataSwap data) {int t = data.a;data.a = data.b;data.b = t;}// 数组逆置private static void inverse(String[] array) {for(int i=0;i<array.length/2;i++){String temp = array[i];array[i] = array[array.length-i-1];array[array.length-i-1] = temp;}}public static void main(String[] args) {int a = 6,b = 9;swap(a,b);// 基本类型变量和对象的引用变量在函数中使用栈内存分配System.out.println("main中 a:"+a+",b:"+b);DataSwap data = new DataSwap();data.a = 4;data.b = 5;//swap(data); //交换成功// 堆内存用来存放new创建的对象和数组以及对象的实例变量 // System.out.println(data.toString());DataSwap p = data;swap(p);// 实际上操作的也是 dataSystem.out.println("p中:"+p.toString());System.out.println("data中:"+data.toString());String array[]={"a","b","c","d"};// 逆置 array 数组inverse(array);System.out.println(array[0]);}}输出:
data和p对象是引用变量,实际操作的是堆内存中的实例数据。
阅读全文
0 0
- java的内存划分
- Java 内存划分
- jAVA内存区域划分
- Java的内存划分
- Java内存区域划分
- Java 内存主要划分
- java内存划分
- Java 内存的划分
- Java 内存划分
- Java把内存划分
- Java内存区域划分
- 【Java】内存区域划分
- Java内存区域划分
- Java 内存区域划分
- java内存区域划分
- Java内存分配划分
- Java内存区域划分
- JAVA 内存划分
- Java 1
- codevs 1399 酗酒的狱警 模拟?解题报告
- 我的算法入门之旅
- 深入浅出mybatis学习笔记
- 【C++】内联函数
- Java内存划分
- C++模板类
- python在windows中的文件路径问题
- 作业1
- 滑动窗口的最大值
- 1元,3元和5元的硬币若干枚,如何用最少的硬币凑够11元(Java实现)
- 第2章 SQL Server安全管理
- spring学习笔记十三 前、后置通知
- Python闭包