当前位置: 首页 > news >正文

成员变量、静态成员变量、局部变量、常量的内存区域

一、Java中没有全局变量的概念,变量分为类的成员变量、静态成员变量和方法中的局部变量

1、局部变量,基本类型的局部变量变量名和值都存放在虚拟机栈中,引用类型的局部变量变量名存放在栈中,而变量指向的对象存放在堆中。记也很好记,因为局部变量属于方法里面的,而方法都是在栈里面。

2、成员变量:不论基本类型还是引用类型,变量名和值都随着类的实例(对象)而创建,所以存放在堆中。记也很好记,成员变量一定要有类的实例对象,类的实例对象肯定是在堆里面。

3、类的静态变量,它比较特殊,是属于类的变量,在jdk7及之前的版本,随类存放在方法区中。在jdk8之后,由于虚拟机内存结构的变化,静态变量和常量池一起被迁移到了堆中。因为静态变量是随着类加载一起加载,因为类是在方法区加载的,所以1.7是存在方法区。

二、常量有三种类型:静态常量、成员常量和局部常量
其实也就是被Final修饰的变量,分为常量名,常量值

1、局部常量:
2、成员常量:常量存放在常量池中,而常量池在堆内存中(1.7方法区,1.8堆)
3、静态成员常量:存放在全局数据区内存中-堆中

三、基本类型、引用类型、包装类型

Java提供了两个类型系统,基本类型与引用类型 (包装类是一种引用类型,而基本数据类型是一种值类型),使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类。

Java中每一种基本类型都会对应一个唯一的包装类,基本类型与其包装类都可以通过包装类中的方法进行转换。每种基本类型及其包装类的对应关系如下,值得注意的是,所有的包装类都是final修饰的,也就是它们都是无法被继承和重写的。

写的非常不错的文章

http://www.lryc.cn/news/205935.html

相关文章:

  • 网络协议--IGMP:Internet组管理协议
  • 网络安全https
  • xcode Simulator 手动安装
  • Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀
  • Monaco Editor编辑器
  • ARM | 传感器必要总线IIC
  • Mybatis中Resources和ClassLoaderWrapper
  • Linux多线程服务端编程:使用muduo C++网络库 学习笔记 第三章 多线程服务器的适用场合与常用编程模型
  • windows下使用FFmpeg开源库进行视频编解码完整步聚
  • 如何更改eclipse的JDK版本
  • HarmonyOS第一课运行Hello World
  • 解决el-tooltip滚动时悬浮框相对位置发生变化
  • Java精品项目源码第61期汽车零件销售商城系统(代号V063)
  • Python OpenCV剪裁图片并修改对应的Labelme标注文件
  • 【JAVA学习笔记】44 - 注解,元注解
  • Android 安卓Kotlin-协程
  • SSO 系统设计_token 生成
  • 电表安数大小和省电有关吗?
  • 树上形态改变统计贡献:1025T4
  • 如何处理与智能床相关的医疗建议和医疗器械证明?
  • 云原生之深入解析如何合并多个kubeconfig文件
  • Netty实战-实现自己的通讯框架
  • S4.2.4.3 Electrical Idle Sequence(EIOS)
  • MySQL的优化利器:索引条件下推,千万数据下性能提升273%
  • 回归预测 | MATLAB实现BO-BiLSTM贝叶斯优化双向长短期神经网络多输入单输出回归预测
  • SOCKS5代理在全球电商、游戏及网络爬虫领域的技术创新
  • Flutter extended_image库设置内存缓存区大小与缓存图片数
  • 第2篇 机器学习基础 —(1)机器学习概念和方式
  • LiveGBS流媒体平台GB/T28181常见问题-海康大华宇视硬件NVR摄像头通道0未获取到视频通道如何排查如何抓包分析
  • 在项目中同时使用SpringCloud和Dubbo,注册中心选用Eureka?