㈠ java里找变量来源
一、局部变量存储在方法栈中
在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因。在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量。
(1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈中
(2)当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的。
二、全局变量存储在堆中
在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量
(1)当声明的是基本类型的变量其变量名及其值放在堆内存中的
(2)引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的堆中
㈡ 基本数据类型与扩展数据类型区别是什么
一、基本数据类型
1.基本数据类型只有8种,可按照如下分类:
整数类型:long、int、short、byte;
浮点类型:float、double:
字符类型:char,因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节;
布尔类型:boolean。
2.引用数据类型非常多,大致包括:
类、接口、数组、枚举、注解、字符串等…
例如,String类型就是引用类型。
二、基本数据类型与引用数据类型的区别
1.基本变量类型:
在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的。
在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递的
默认值:0
2.引用类型变量:
只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址。
引用数据类型变量,调用方法时作为参数是按引用传递的,传递的是引用的副本
默认值:null
————————————————
版权声明:本文为CSDN博主“一路向前-执着”的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40228534/article/details/123950132
java
手游安卓版
精选推荐
广告
基本数据类型和引用数据类型的区别
7077阅读·0评论·8点赞
2022年6月14日
引用数据类型_Java基础数据类型和引用类型的区别
298阅读·0评论·2点赞
2020年12月4日
JavaScript中基本数据类型和引用数据类型的区别
351阅读·1评论·2点赞
2018年11月7日
基本数据类和引用数据类型
6.0W阅读·12评论·115点赞
2020年12月30日
引用数据类型
7364阅读·0评论·3点赞
2021年8月9日
JAVA中的值传递和引用传递
164阅读·0评论·0点赞
2020年3月29日
这才是我想要的播放器,你用过了么?
精选推荐
广告
int的引用类型是Integer,char的引用类型是?
1978阅读·0评论·3点赞
2019年5月5日
理解Java中的引用传递和值传递
397阅读·0评论·3点赞
2016年4月1日
基本数据类型&引用数据类型
428阅读·0评论·0点赞
2018年2月7日
Java中基本数据类型和引用数据类型的区别
259阅读·0评论·0点赞
2020年9月13日
常见数据类型(哪些是基本,哪些是引用,你知道这两种有什么区别吗)
976阅读·3评论·1点赞
2021年10月3日
Java的基本数据类型和引用类型都有哪些?
2727阅读·0评论·0点赞
2022年6月10日
基本数据类型 和 引用类型(简单概述)
2395阅读·0评论·1点赞
2020年5月5日
去首页
看看更多热门内容
㈢ java中变量方法在内存空间怎么分配的
Java的内存使用可以分为栈和堆,引用和基本变量是放在栈上,对象是放在堆上。比如用new创建一个对象会得到一个该对象的引用,这个引用存放在栈内存,指向堆中的实际位置。
㈣ 在java里一个方法内部定义的变量比如说方法的参数还有方法体内定义的变量是不是放在栈内存中
是的,在栈中。如果是类成员变量放在堆中
㈤ 每日一问(十三)栈,堆,方法区分别存放哪些变量
堆区:
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 。
栈区:
1.每个线程包含一个栈区,栈中只保存基础数据类型的值和对象以及基础数据的引用
2.每个栈中的数据(基础数据类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
方法区:
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
㈥ 在Java JVM里,如果一个变量被声明为final或者static, 那么这个变量的引用以及它的值被存放在哪
static不能用在方法里面,只能修饰类的属性或者方法。
static修饰的变量被放在方法区,因为它属于类变量,是类的一部分。
所有的方法中的普通变量都是在栈中的局部变量表中的,如果是引用类型的变量局部变量表会存放引用对象的地址,这个引用对象实际存储在堆中。如果被final修饰的话代表这个引用类型的变量指向的地址无法被改变。所以final修饰的引用的地址和final修饰的基本数据类型都会放在常量池,常量池位于方法区中。
㈦ java 基本数据类型 变量赋的值,储存在计算机的哪里啊 eg: int i=0; 0储存在哪里啊 是在栈中堆
0是在栈中的。
java中八大基本类型都是值传递的,比如
public class Test1 {
public static void main(String[] args) {
int i=1;
add(i);
System.out.println(i);
}
public static void add(int i){
i++;
}
}
运行结果为1
值传递确实是将值复制给方法中的局部变量
比起这个以后肯定会碰到String的值传递,因为String类型一旦创建就无法改变,是final类,所以虽然String是引用类型,但传值规律是和基本类型一样的。
㈧ Java中,main方法中的变量是局部变量,还是静态变量。
局部变量在方法中或者方法内,main方法也是方法只不过他是一个程序的入口而已
成员变量在方法外
静态变量是由static修饰的
㈨ java中的变量有哪几种
成员变量:就是声明为类的属性的变量。
静态变量(也叫做类变量):就是声明为静态属性的变量。
局部变量:就是方法里面声明的变量。
volatile变量:和多线程相关,用于简化同步的变量
transient变量:用于使该变量不会被持久化
final变量:基本上就是常量
还有
8中 基本变量
整型变量:byte, short, int, long
实型变量:float, double
字符变量 char
布尔型变量 boolean
㈩ java非静态成员变量中的基本变量到底存在哪里
其实我觉得书上就想说:基本数据类型创建的值存在栈内存中,引用数据类型的值存在堆内存中,
配合上图详解:基本数据类型 int i=3;就是在栈内存中开个房子给 i,名字叫 i , 里面住着 3 。而 引用数据类型 String str="abc" 就是栈内存给它开后院,叫 str 去 堆内存地址为 0x2253的地方去住,所以引用类型的值存在 堆内存中,而栈内存中存的是它住的房号,也就是值所在的堆内存地址。
这样说不知道你能不能理解。但我想说:图自己画的,文字自己敲的,如果有错,请尊重回答者。