22问答网
所有问题
当前搜索:
java中的堆内存和栈内存
在程序运行过程中,
堆和栈
的作用是什么
答:
当本次函数调用结束后,局部变量先出栈,然后是参数,最后
栈
顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。堆:一般是在堆的头部用一个字节存放堆的大小。
堆中的
具体内容有程序员安排。全文见百科 http://baike.baidu.com/view/93201.htm ...
Java
编程中 常见的异常有哪几种
答:
StackOverflowError:
栈内存
满了,当应用程序递归太深而发生
堆栈
溢出时,抛出该错误。OutofMemoryError:
堆内存
满了,因为内存溢出或没有可用的内存提供给垃圾回收器时,
Java
虚拟机无法分配一个对象,这时抛出该异常。以上是一些常见的错误,在Error类中还有一些别的错误(参照文件Java.lang.Throwable.Error)....
java中
String a=new String("1"+"2")创建了几个对象
答:
2个:a值和a引用地址,也叫引用对象。引用变量和对象,对象一般通过new在
堆
中创建,s只是一个引用变量。所有的字符串都是String对象,由于字符串文字的大量使用,
java中
为了节省时间,在编译阶段,会把字符串文字放在文字池中,文字池的一个好处就是可以把相同的字符串合并,占用一个空间,我们可以用==...
在长度为n的顺序表的第i个位置上
答:
2、堆内存 堆内存用来存放由new运算符创建的对象和数组,在堆中分配的内存,由
java
虚拟机的自动垃圾回收器来管理。在堆中创建了一个数组或对象后,同时还在栈内存中定义一个特殊的变量。让
栈内存中的
这个变量的取值等于数组或者对象在
堆内存中的
首地址,栈中的这个变量就成了数组或对象的引用变量,引用...
栈
的空间能申请多大
答:
申请
堆内存
的效率可能不比
栈内存
低多少,但释放堆内存的时候,释放的内存可能需要和旁边的未使用内存重新连成一个整体,以供下一次分配,因此释放堆内存的效率可能会较低,这是为了下一次申请时更快而必须付出的代价。操作系统对栈的限制这我不了解,我只知道在编译器设置里可以限定栈的最大大小,例如VS...
JAVA中
方法区是不是堆的一部分
答:
静态变量 + 常量 + 类信息(构造方法/接口定义) + 运行时常量池存 在方法区中 。但是, 实例变量 存在
堆内存
中,和方法区无关。以上,只是逻辑上的定义。在HotSpot中,方法区仅仅只是逻辑上的独立,实际上还是包含在
Java堆
中,也是就说,方式区在物理上属于Java堆区中的一部分,而永久区(...
Java
数组的问题
答:
看我图片吧。a和b是引用,本身存储的紧紧是一个地址,他指向
内存
中“真实”数组所在的位置。所以当b = a;执行之后,b实际上已经和a指向同一个地址了。所以你改变b也会改变a。
启动
JAVA
程序时,参数-Xms及Xmx有什么用
答:
那样你的机器会受不了的,到时候就死翘翘了。Xms是另一个设置内存的参数,用它来设置程序初始化的时候
内存栈
的大小,增加这个值的话你的程序的启动性能会得到提高。不过同样有前面的限制,以及受到xmx的限制。另外,一个操作系统通常都只使用jvm,这就是你说的“运行在同一个JVM中的程序”,不同的虚拟...
java中
string是干什么
答:
java中
String[][] 表示二维数组String,string[]表示一维数组string。数组是在java中用来存放多个数据或者字符串的,是用于储存多个相同类型数据的集合。数组在java中常常用来
堆内存
或者
栈内存
。格式为数据类型+数组名称+n[](表示n维数组)举例:int a[10]; 说明整型数组a,有10个元素。若要表示第10个...
java
静态函数是在
栈内存
执行 还是在方法区执行 看清楚 是静态函数...
答:
无论是类方法还是静态方法,都是在
栈
区调用和执行的
棣栭〉
<涓婁竴椤
3
4
5
6
8
7
9
10
11
12
涓嬩竴椤
灏鹃〉
其他人还搜