首页 > 编程语言 >JAVA中的堆栈数据存储

JAVA中的堆栈数据存储

时间:2022-11-02 17:34:34浏览次数:43  
标签:存储 JAVA String int 类型 引用 new 堆栈 MyClass

结论

引用类型,总是储存在堆上(数组同样属于引用类型,只不过他是使用c实现的);

基础类型,在方法中的局部变量储存在栈,对象实例中的实例字段则随对象一同存储在堆上;

线程享有自己的栈空间,因此局部变量是线程安全的;

例子
点击查看代码
public class Test{
	public static void main(String[] args){
		int i = 0;                   //栈;
		MyClass c = new MyClass();   //对象包括其实例字段都储存在堆上,变量c是一个局部变量,同上存储在栈上;
										//c是一个引用,其在栈上的空间储存了实际对象的堆空间地址;
		int[] arr = new int[]{1,2,3};//arr在栈上,数组内容在堆上;
	}
}

class MyClass{
	private int i;
	private String s;				 //无论是引用s还是String对象,都存放在堆中;
}
一些细节

java提供了一些基础类型的封装类,同样的这些类也属于引用类型;

另外有一种特殊情况,String类型往往不使用new关键字,他同样是存放在堆上的,严格来说,他存放在堆里面的字符串常量池里面;

标签:存储,JAVA,String,int,类型,引用,new,堆栈,MyClass
From: https://www.cnblogs.com/arvvio/p/16851776.html

相关文章

  • JavaWeb期中考试-2021年版(一)
    终于轮到了我自己的期中考试,总体来说本次的期中考试并不难,和19年的期中考试可以说是一模一样,以下要提醒的是,程序在我的电脑上是没什么问题,但是有些配置原因可能在别的设备......
  • JavaWeb之Servlet1
    Servlet方法初始化方法,在Servlet被创建时执行,只执行一次voidinit(ServletConfigconfig)提供服务方法,每次Servlet被访问,都会调用该方法voidservice(ServletRequestr......
  • java关于加密key保存乱码问题
    当我们无论使用对称加密还是非对称加密都会涉及到key,随机生成的key一般是byte[]类型,通过String进行保存的时候就会出现无法识别问题,并且读取后无法识别问题。这个时候通过......
  • JavaWeb期中考试-2019年版总结
    关于这次2019年期中考试的练习,我想对它进行一个总结,首先,对于完全没有接触过javaweb的我来说,只是在课上听建民老师提了一下要做这个东西,因此在一开始只是先学着怎么画html......
  • JAVA++:HashMap无序?TreeMap有序?
    书上说HashMap是无序的,TreeMap是有序的(有序无序是针对key的),但是实际去敲的时候发现不是这样,有时HashMap是有序的,有时TreeMap是无序的。于是就做了以下测试来探究:......
  • java EE开发之Servlet第四课:监听器(Listener)
     1.什么是Listener监听器就像老板的秘书,那个秘书就是活的监听器,时时监听着老板,当老板发生一些事情的时候,秘书就会有相应的措施。比如老板口渴了,秘书就会去端茶;比如老板要......
  • JavaWeb期中考试-2019年版(六)
    本次是JavaWeb期中考试最后一个部分,系统更新和数据显示的代码分享首先是updateq.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncodi......
  • java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.XX
    以下为大神的经验:今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变。 一开始写的是hql语句进行统计每个月......
  • Java中List.forEach()方法使用
    一、创建集合List<String>list=newArrayList<>();list.add("a");list.add("b");list.add("c");list.add("d");//lambda表达式二、正常遍历list.forEach(item->System......
  • SQL SERVER 2008 存储过程使用记录 游标
    USE[LH]--数据库名称GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROC[dbo].[SGMRAA123]--起的存储过程名称ASDECLARE@jintDECLARE@SqlStrNVARCHAR(MAX......