`
42087743
  • 浏览: 237830 次
  • 性别: Icon_minigender_1
  • 来自: 合肥&上海
社区版块
存档分类
最新评论

java的存储区

阅读更多
概括而言,java有6个地方可以存储数据:

  • 寄存器:存储最快的地方
  • 堆heap:一般new个对象的时候,将对象的数据存储在堆栈中,包括数组的new
  • 栈stack:速度比堆快,声明的变量存储在栈中,不过有区别,变量会把数值也存储在一起,但对象就会再在堆栈中划个区域保存数据,即栈中的对象引用堆中的数值
  • 静态存储:static标识的数据,不包括对象
  • 常量存储:存储常量
  • 硬盘存储:常见的2个例子是流对象和持久化对象

了解以上后,会对java的开发有很大帮助,特别是传值的操作,"call by value"和"call by referrence".

例子:
public class Test {
	private int a;//get(),set()省略
	private int b;//get(),set()省略
	
	public Test(){
		a = 20; 
		b = 30;
	}
	
	public void change(int i){
		i = 10;
	}
	
	public void changeTest(Test test){
		test = new Test();
	}
	
	public void changeTestValue(Test test){
		test.setA(6);
		test.setB(7);
	}

	public static void main(String[] args) {
		int c = 1;//测试变量传值
		Test test = new Test();//无意思,只是让它调用方法
		Test test1 = new Test();//测试对象传值
		test1.setA(1);
		test1.setB(2);
		Test test2 = new Test();//测试对象传值
		test.change(c);
		test.changeTest(test1);
		test.changeTestValue(test2);
		System.out.println(c);//result: 1
		System.out.println(test1.getA() + "," + test1.getB());//result: 1,2
		System.out.println(test2.getA() + "," + test2.getB());//result: 6,7
	}
}
分享到:
评论

相关推荐

    深入Java对象及元素的存储区域

    为此作为Java程序开发人员需要了解各个存储区域的特点以及对性能的影响。然后再根据需要来调整应用程序的区域分配。总的来说,在操作系统中有五个地方可以用来保存应用程序运行中的数据。这类区域的特点以及对性能的...

    实战 Java 存储过程的编写及在 DB2 上的部署.docx

    1. **使用DB2控制中心或命令行工具**:通过图形界面或SQL命令,可以将编译好的Java类加载到DB2的Java存储区,然后创建存储过程的SQL定义。 2. **利用DB2的API和JDBC**:通过编写Java代码,使用DB2的JDBC驱动直接在...

    Oracle数据库应用试验指导书.pdf

    Oracle 数据库常用命令和概念 一、 系统全局区(SGA) 系统全局区(System Global Area)为一组由Oracle分配的共享的内存结构,可包含一个...SGA总容量=共享池+缓冲区高速缓存+大型存储区+Java存储区+日志缓冲区

    Java 存储压缩

    Java存储压缩技术主要涉及到文件操作、流处理以及数据压缩算法的应用。在Java中,我们可以使用内置的`java.util.zip`包来实现文件和文件夹的压缩与解压。这个包提供了多个类,如`ZipOutputStream`和`ZipInputStream`...

    Java存储数据机制

    4. 静态变量属于类级别,它们存储在方法区(Method Area),这是JVM的另一个重要部分,与堆内存和栈内存并行存在。 理解Java的数据存储机制对于优化代码性能至关重要。例如,通过合理地使用栈和堆,可以减少垃圾...

    JAVA_API1.6文档(中文)

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    java源码包---java 源码 大量 实例

    Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色...

    七牛云存储Java sdk

    七牛云存储Java SDK是专为Java开发者设计的一套接口库,用于方便地与七牛云的对象存储服务进行交互。七牛云是中国领先的云存储提供商,提供高效、稳定且安全的数据存储解决方案。Java SDK允许开发者在Java应用程序中...

    java db 省市区编码表

    在Java DB中,省市区编码表是一个用于存储中国省级、市级和区县级行政区域编码的数据结构,常用于地理信息系统、地址管理或者与地理位置相关的应用程序。这个表通常包含四个字段:`id`、`areaid`、`area` 和 `...

    Java技术与Java虚拟机

    方法区存储类信息,堆存放对象,每个线程有自己的Java栈和程序计数器,本地方法栈处理本地方法调用。 JVM执行指令的方式非常直接,通过内层循环取出并执行一个操作符字节,指令集设计简洁,有助于提高执行效率。...

    Java数据存储

    1. **寄存器(Register)**:位于处理器内部,是最快的存储区,但由于数量有限,由编译器自动管理,程序员无法直接控制。 2. **堆栈(Stack)**:已详细讨论。 3. **堆(Heap)**:已详细讨论。 4. **静态存储...

    利用缓冲区提高Java应用程序的IO性能

    ### 利用缓冲区提高Java应用程序的IO性能 #### 摘要与背景介绍 Java作为一门具有跨平台特性的编程语言,在多个领域都获得了广泛的应用。随着Java应用的不断扩展,其性能问题逐渐成为人们关注的重点,尤其是输入...

    中国省市区数据源_java解析

    对于省市区数据源,开发者可以使用Java来读取、处理和存储这些数据,使其能够适应不同的业务需求。例如,将数据转换为数据库表结构,或者构建API供其他系统调用。 在Java解析省市区数据源时,常见的步骤如下: 1. ...

    Java分布式文件对象存储Minio框架并发上传、下载、合并、删除等操作示例Demo完整版

    总之,Minio作为Java分布式文件对象存储的解决方案,提供了强大且灵活的功能。通过Java SDK,开发者可以轻松地实现各种文件操作,满足不同的业务需求。在使用过程中,确保遵循最佳实践,如适当管理资源、处理错误和...

    JAVA的存储空间类型.doc

    5. **常量存储区**:包含`final static`声明的常量以及String对象,它们在程序加载时即被创建,并且存储在常量池中,这部分内存通常在内存的只读部分,以确保常量的不可变性。 6. **非RAM存储空间**:这包括硬盘、...

    java:Java 存储库

    Java存储库通常指的是一个集合,其中包含了各种Java项目、源代码、类库或者框架,用于开发者在编程过程中方便地获取和使用。Java作为一门广泛应用于企业级应用开发、Web服务、移动应用(尤其是Android)等领域的编程...

    Java三级级联,省份,市区,地区

    在这个项目中,"Java三级级联,省份,市区,地区"意味着开发者正在创建一个系统,允许用户按照省、市、区的顺序逐级选择,每个级别都是基于前一级的选择动态加载的。这种功能常用于地址填写、订单配送等场景,确保...

    省市区三级联动Java版

    标题中的“省市区三级联动Java版”指的是在Java开发中实现的一种常见的用户界面交互功能,通常用于地址选择。这个功能允许用户在三个下拉菜单中分别选择省份、城市和区县,形成一个完整的地址。这样的设计可以有效地...

    java开发技术大全

    - **存储区**:存放编译后的字节码及其他信息。 - **垃圾回收区**:自动管理内存,释放不再使用的对象,减少程序员手动管理内存的负担。 #### 2. Java的开发环境 要开始Java开发之旅,首先需要一个合适的开发环境...

Global site tag (gtag.js) - Google Analytics