专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

python全局变量分配堆还是栈_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 22:12:23       共计:3596 浏览

python全局变量分配堆还是栈?

如果是引用数据类型的话,他们都是存在于栈内存中而指向他们各自所在的内存区域。

简单理解,就是无论他们在哪个内存区域中(堆、栈、方法区),都会在栈内存中留下一个入口。

内存:栈 1.存放局部变量 2.不可以被多个线程共享 3.空间连续,速度快

堆 1.存放对象 2.可以被多个线程共享 3.空间不连续,速度慢,但是灵活

方法区 1.存放类的信息:代码、静态变量、字符串常量等等 2.可以被多个线程共享 3.空间不连续,速度慢,但是灵活

成员变量是定义在类体中的变量, 作用范围在整个 类体中有效, 使用前可以不赋值,会有默认初始化动作, 而局部变量定义在方法中,使用前必须初始化,否则编译失败,作用范围只在该方法中有效,出了这个方法就没人认识他了,

简单点来说,成员变量在类中定义,非静态,存放在堆空间中,局部变量在方法或代码块中定义,存放在栈内存中。

栈和堆的区别:

python栈是与每一个线程关联的,python在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。栈空间随着线程的终止而释放

python中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等

实例变量存放在堆内存 类变量存放在方法区

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:Java在linux上调用shell脚本_java | ·下一条:bub文件用什么播放器_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有