0 0

java的内存机制0

一个非常简单的问题,
String a="1";
String a=new String("1");
问题如下:
两个内存机制不一样是肯定的吧,
String a=new String("1");里面a是引用,a装的是1在内存里面的地址,也就是占用了两块内存
String a="1";里面a装的直接是值,只占用一块内存????
 
2013年4月08日 15:57

4个答案 按时间排序 按投票排序

0 0

采纳的答案

String a="1"; a指向String的常量池中的“1”;
String a=new String("1"); 在内存中生成一个String的对象,同时在内存中生成一个一个指向刚才创建的String对象的一个引用,也就是a

2013年4月08日 16:47
0 0

在java 中 String类型是很特殊的,既可以是基本类型也可以是高级类型,
String a = "1";此时String表示基本类型,a是在stack声明的变量,指向串池中的字符串"1";此处有一个变量一个对象(a是变量,"1"是串池中的字符串对象)
String a = new String("1");表示高级类型,开辟一块内存,存放串池的地址,指向串池中的"1",a指向该内存。

2013年4月12日 18:31
0 0

1、字符串常量在常量池 2、栈中通过ldc压入常量池引用
可参考
http://www.iteye.com/topic/1122533#2337877

2013年4月08日 16:22
0 0

这两者的区别,不是在于a的区别,a都是一样的都是装了一个指向字符串对象的引用;而是在于生成这个字符串对象的过程的区别。


看看它们的字节码的区别就知道了:

String a="1";

ldc     #2; //String 1
astore_1


String a=new String("1");
new     #3; //class java/lang/String
dup
ldc     #2; //String 1
invokespecial   #4; //Method java/lang/String."<init>":(Ljava/lang/Strin
g;)V
astore_1

2013年4月08日 16:12

相关推荐

    java内存机制及异常处理

    Java内存机制是Java虚拟机(JVM)的关键组成部分,它管理着程序运行时的数据存储。在Java中,内存主要分为以下几个区域: 1. **Heap(堆)**:这是Java中最主要的内存区域,用于存储所有的类实例和数组。当堆空间...

    Java内存机制学习和使用

    ### Java内存机制学习和使用 #### 一、Java内存机制概览 Java内存管理是Java开发人员必须掌握的核心概念之一。良好的内存管理不仅能够提升应用性能,还能避免常见的内存泄漏问题。本文旨在深入探讨Java内存机制,...

    java内存机制与启动参数优化

    java内存机制与启动参数优化 Java 内存机制是指 Java 虚拟机(JVM)管理内存的机制。JVM 主要管理两种类型的内存:堆(Heap)和非堆(Perm)。堆是 Java 代码使用的内存,留给开发人员使用的;非堆是 JVM 留给自己...

    java 内存机制 配置 监控 整理

    ### Java内存机制、配置与监控详解 #### 一、Java内存模型 Java内存模型是Java虚拟机(JVM)管理程序运行时数据区域的核心部分,它定义了Java对象的存储方式以及线程对这些变量的访问规则。Java内存区域主要包括...

    java内存机制粗解

    粗解java内存机制

    java内存机制 堆和栈.doc

    总的来说,理解Java内存机制的堆和栈有助于编写更高效、更稳定的代码。正确地管理内存可以避免性能瓶颈和内存溢出问题,而深入理解对象创建和引用的工作方式则有助于优化程序设计,尤其是在处理大量对象或复杂数据...

    java内存机制,分析堆和栈的存储特点.pdf

    Java内存机制主要包括堆内存(Heap)和栈内存(Stack)两个主要部分,它们各自具有特定的存储特点和作用。在Java编程中,理解这两者的区别和交互方式对于优化程序性能和避免内存泄漏至关重要。 栈内存主要用于存储...

    java内存机制,分析堆和栈的存储特点资料.pdf

    Java内存机制主要包括堆内存(Heap)和栈内存(Stack)两个主要部分,它们各自具有不同的特点和作用。栈内存主要用于存储基本类型变量(如int、double等)和对象的引用,而堆内存则是用于存储由new关键字创建的对象...

    Java内存机制(不完善)

    简略的描述了Java的内存机制,但内容尚不完善,有密码,暂时请勿下载。内容补全后会再上传。

    Java的内存管理机制分析

    通过对Java内存管理机制的深入分析,我们可以了解到Java如何高效地管理和利用内存资源。理解这些机制对于优化Java应用程序的性能至关重要,特别是在处理大规模数据集或多线程环境时。此外,合理配置JVM参数和选择...

    Java内存监视器.rar

    Java内存监视是优化Java应用程序性能的关键环节,尤其是在大型企业级应用中,理解...对于标签中的“Java源码-系统相关”,意味着这个工具或示例代码是与Java系统层面的操作紧密相关的,对理解Java内存机制有直接帮助。

    java内存分配机制详解

    ### Java内存分配机制详解 #### 一、引言 Java作为一种广泛应用的编程语言,其内存管理机制对于确保程序高效稳定运行至关重要。本文旨在详细介绍Java内存分配机制中的几个关键概念:寄存器、栈、堆、静态域、常量...

    Java内存管理机制相关资料汇总

    资源名称:Java内存管理机制相关资料汇总资源目录:【】java内存回收机制及预防【】java内存管理机制【】java内存管理白皮书【】Java虚拟机内存管理_对象和引用_空指针【】深入理解java虚拟机jvm高级行与最佳实践...

    Java 内存模型

    Java内存模型是Java虚拟机规范中定义的一部分,它规定了Java程序中变量的读写行为,以及线程之间的交互规则。理解Java内存模型对于编写正确、高效的多线程程序至关重要。在Java 5之前,Java内存模型的描述比较模糊,...

    java内存泄露、溢出检查方法和工具

    总的来说,Java内存管理和诊断是一个复杂的过程,需要深入理解JVM的工作原理和垃圾收集机制。通过合理使用各种工具和技巧,开发者能够有效地识别和解决内存泄露和溢出问题,确保应用程序的稳定性和性能。

    如何解决Java内存泄漏

    Java内存回收机制 Java的内存管理主要集中在堆(Heap)区域,其中对象的创建通常是通过`new`关键字或反射方式完成,而对象的释放则由Java虚拟机(JVM)通过垃圾回收(GC)机制自动处理。对象回收的基本原则是:当一个...

Global site tag (gtag.js) - Google Analytics