概括而言,java有6个地方可以存储数据:
- 堆heap:一般new个对象的时候,将对象的数据存储在堆栈中,包括数组的new
- 栈stack:速度比堆快,声明的变量存储在栈中,不过有区别,变量会把数值也存储在一起,但对象就会再在堆栈中划个区域保存数据,即栈中的对象引用堆中的数值
了解以上后,会对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程序开发人员需要了解各个存储区域的特点以及对性能的影响。然后再根据需要来调整应用程序的区域分配。总的来说,在操作系统中有五个地方可以用来保存应用程序运行中的数据。这类区域的特点以及对性能的...
1. **使用DB2控制中心或命令行工具**:通过图形界面或SQL命令,可以将编译好的Java类加载到DB2的Java存储区,然后创建存储过程的SQL定义。 2. **利用DB2的API和JDBC**:通过编写Java代码,使用DB2的JDBC驱动直接在...
Oracle 数据库常用命令和概念 一、 系统全局区(SGA) 系统全局区(System Global Area)为一组由Oracle分配的共享的内存结构,可包含一个...SGA总容量=共享池+缓冲区高速缓存+大型存储区+Java存储区+日志缓冲区
Java存储压缩技术主要涉及到文件操作、流处理以及数据压缩算法的应用。在Java中,我们可以使用内置的`java.util.zip`包来实现文件和文件夹的压缩与解压。这个包提供了多个类,如`ZipOutputStream`和`ZipInputStream`...
4. 静态变量属于类级别,它们存储在方法区(Method Area),这是JVM的另一个重要部分,与堆内存和栈内存并行存在。 理解Java的数据存储机制对于优化代码性能至关重要。例如,通过合理地使用栈和堆,可以减少垃圾...
java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...
Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色...
七牛云存储Java SDK是专为Java开发者设计的一套接口库,用于方便地与七牛云的对象存储服务进行交互。七牛云是中国领先的云存储提供商,提供高效、稳定且安全的数据存储解决方案。Java SDK允许开发者在Java应用程序中...
在Java DB中,省市区编码表是一个用于存储中国省级、市级和区县级行政区域编码的数据结构,常用于地理信息系统、地址管理或者与地理位置相关的应用程序。这个表通常包含四个字段:`id`、`areaid`、`area` 和 `...
方法区存储类信息,堆存放对象,每个线程有自己的Java栈和程序计数器,本地方法栈处理本地方法调用。 JVM执行指令的方式非常直接,通过内层循环取出并执行一个操作符字节,指令集设计简洁,有助于提高执行效率。...
1. **寄存器(Register)**:位于处理器内部,是最快的存储区,但由于数量有限,由编译器自动管理,程序员无法直接控制。 2. **堆栈(Stack)**:已详细讨论。 3. **堆(Heap)**:已详细讨论。 4. **静态存储...
### 利用缓冲区提高Java应用程序的IO性能 #### 摘要与背景介绍 Java作为一门具有跨平台特性的编程语言,在多个领域都获得了广泛的应用。随着Java应用的不断扩展,其性能问题逐渐成为人们关注的重点,尤其是输入...
对于省市区数据源,开发者可以使用Java来读取、处理和存储这些数据,使其能够适应不同的业务需求。例如,将数据转换为数据库表结构,或者构建API供其他系统调用。 在Java解析省市区数据源时,常见的步骤如下: 1. ...
总之,Minio作为Java分布式文件对象存储的解决方案,提供了强大且灵活的功能。通过Java SDK,开发者可以轻松地实现各种文件操作,满足不同的业务需求。在使用过程中,确保遵循最佳实践,如适当管理资源、处理错误和...
5. **常量存储区**:包含`final static`声明的常量以及String对象,它们在程序加载时即被创建,并且存储在常量池中,这部分内存通常在内存的只读部分,以确保常量的不可变性。 6. **非RAM存储空间**:这包括硬盘、...
Java存储库通常指的是一个集合,其中包含了各种Java项目、源代码、类库或者框架,用于开发者在编程过程中方便地获取和使用。Java作为一门广泛应用于企业级应用开发、Web服务、移动应用(尤其是Android)等领域的编程...
在这个项目中,"Java三级级联,省份,市区,地区"意味着开发者正在创建一个系统,允许用户按照省、市、区的顺序逐级选择,每个级别都是基于前一级的选择动态加载的。这种功能常用于地址填写、订单配送等场景,确保...
标题中的“省市区三级联动Java版”指的是在Java开发中实现的一种常见的用户界面交互功能,通常用于地址选择。这个功能允许用户在三个下拉菜单中分别选择省份、城市和区县,形成一个完整的地址。这样的设计可以有效地...
- **存储区**:存放编译后的字节码及其他信息。 - **垃圾回收区**:自动管理内存,释放不再使用的对象,减少程序员手动管理内存的负担。 #### 2. Java的开发环境 要开始Java开发之旅,首先需要一个合适的开发环境...