问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁来给我解释下java上的栈内存和堆内存

发布网友 发布时间:2022-03-31 02:38

我来回答

4个回答

热心网友 时间:2022-03-31 04:07

你编译了,但没运行就像是你的机器上安装了一个游戏但没有运行这个游戏,你觉得这个游戏会占用你的内存吗?你编译后只生成了一个类文件,这个类文件最多就占你一点点硬盘空间并没有占用你的内存。
至于int i=1;和static int i=1;这两个,前者是在用到时才会加载内存,其作用范围在这个变量定义位置到这个变量所在匹配的右括号结束,而static int i=1;这个变量是在当这个静态变量所在的类被JVM加载时就一直存在不受这个类所定义的对象的影响,如果是int i=1;那么当这个对象不存在时那么这个变量也就不存在了,但如果是static int i=1那么这个i会到整个程序结束才消失。而且如果你把类里面的属性定义成为static那么整个类共享一个i,所有的对象访问和操作的都是同一个i,也可以通过类名.i来访问这个i。
至于final String str这里的str并不是多余的,所有字符串属于常量这句话并没有错,如同你把把一个字符a变成字符b吗?注意我说的是字符不是变量的值为a改成b。肯定不能,如果能改那计算机还不崩溃呀?这里的final并不是多余的,它不是用来修饰字符串的值而是用来修饰str的,str只不过是一个字符串的引用(在c里面叫指针),如果你的str不加final那么我是不是可以把它改变指向其它的字符呢?肯定是可以的,但如果我加上final那么就不能了,因为str是一个常量,它里面的引用值(也可以叫做指针地址)是不可以被改变的。String并不属于基本类型,它是一个较为特殊的引用类型。

热心网友 时间:2022-03-31 05:25

内存分配方式有三种:
(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。

(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

热心网友 时间:2022-03-31 07:00

编译相当于,你从A地到B地,你已经到达B地,也就是说你曾经走过这段路而已,你走完了这段路,路和你好像没有关系。在java里面编译只是将java源码转成class文件而已,分配内存那也是你运行前要做的事情( java 类名 这时候才是分配内存的时候)。

基本数据类型放在栈,引用数据类型放在堆里面。

鉴定你是初学暂时不要考虑 static 和 String 等有一定基础后再考虑吧,这两个关键字要有点基础才能完全搞明白。

final这也是java里的关键字,表示是一个常量,常量也就是说值不能改的变量,你声明的时候给他赋值多少就是多少,比如在算圆周率时∏(派) ≌3.1415926这是一个固定的值这时候就应该用final来修饰变量,常量名一般全部用大写字母表示,而一般变量首字母小写,和不同单词组合命名时其他单词首字母大写(此命名叫骆驼命名法)。

热心网友 时间:2022-03-31 08:51

java 与其他语言相比有个优点就是可以自动回收内存中不用的数据,防止浪费内存的资源。Java有特有的垃圾回收机制。常量i在栈内存中,而静态变量放在堆内存中。字符串属于基本类型之一,所有的基本类型都是常量。final是定义了字符串的值,是不可改变的。如果不没有final修饰字符串的值是可以改变的追问呵呵 看来你看的书比我还少,你这段话最少有三个错误

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
广东省人民医院科教兴医 硕果累累 珠海市香洲区人民医院荣誉成就 星辰变灵兽是怎么区分好坏?叮当虎好不好? 星辰变那些灵兽最好 星辰变,法师应该带什么样类型的灵兽 星辰变里什么灵兽比较好? 星辰变灵兽加点应该盯着一个加还是加两三个方面?懂得来 星辰变中的稀有灵兽蛮牛妖和梦魇和叮当虎哪个好? 星辰变力量型灵兽什么属性好啊 中央美院招生专业有什么特殊偏好吗?像小灰调之类的? 如何建 基金新规赎回中少于7天是7个工作曰吗 基金赎回的t+7日是多少天? 或者说7个工作日是多少... 基金中描述几千万的七个选项是什么 基金从业成绩查询一定得七个工作日吗? 基金定投组合7支是不是太多了???????? 2020年12月23日买的基金,今天够七个交易日吗? 基金转换有7个交易日的限制? 基金投资中的七不买和三不卖是什么意思? 基金验证备案7个交易日左右是什么意思? 基金七不买三不卖什么意思? 购买基金七个工作日后又补仓,未满七日赎回前面的份... 基金为什么要7个交易日手续费0.5%,有没有更短期的... 基金七不买三不卖的口诀是什么 两台电脑局域网内如何互相访问 两台电脑怎么样才能互相访问? 家里的2台电脑怎么样可以互相共享 怎么设置才能使两台电脑可以相互访问? 怎么样快速地在两台电脑之间互传数据? 怎么设置两台电脑互相访问 微信推荐文章点了好看,如何才能让朋友看不见 微信的看一看功能,是好友点了好看的文章才会显示... 关闭微信看一看功能后,别人能否看到自己的 登录抖音后不让自己微信好友看,只让不是微信好看,... 为什么微信app,把“好看”改成了“在看”按钮? 点亮好看后过几分钟取消,朋友会看见吗微信? 假如腾讯突然宣布关闭微信,对你的生活会有什么影响? 请问华为电脑爱好者,matebookE X D 13 14 15 分别... 华为13s和x+pro Laptop3和华为MateBook X比较起来,哪个要更好一点? 华为x13ma款好还是华为a7款好 华为MateBook X怎么样值不值得买 解梦:昨天梦到我给观世音菩萨神像挪位置 同样锐龙5,同内存,同硬盘的华为matebookd14和荣耀1... 华为matebook x和小新7000-13和Yoga 720-13哪个好... 梦见观音菩萨像在泥潭里,我把她移到有香火地方。... 梦见观音佛像向前晃动什么予兆? 女人梦见观音菩萨佛像不在原来的位置求解答 梦见观音菩萨 麻烦大家帮忙解梦! 贵州茅台酒的历年价格