Java中成员变量、局部变量、全局变量、静态变量存在位置及初始化

2023-11-13

根据定义变量位置的不同,可以将变量分为成员变量和局部变量。
成员变量是 定义在一个类的变量:类中方法外
局部变量是定义在一个方法内的变量:方法中

成员变量分为:
静态属性:随类的存在而存在,是在类加载的初始化
非静态属性:随实例的属性存在而存在。

局部变量:
局部变量不能加static,包括protected, private, public这些也不能加。局部变量保存在栈中。
局部编程必须在声明时初始化。

成员变量和局部变量区别:
成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。
成员变量存在于堆内存,局部变量存在于栈内存。

静态变量:类中方法外,用static修饰
生命周期:JVM第一次读到这个类并加载类时开始,类销毁不存在。
类加载过程:

  1. 加载父类(如果父类已经加载过,则不在加载)。
  2. 初始化静态属性 。
  3. 按顺序的初始化静态代码块 初始化的前提就是分配空间 。

静态变量存在于方法区即静态区(方法区包含整个程序中唯一存在的元素)

全局变量(在java中可以理解为用static final修饰):在java中全局变量也称成员变量,是创建对象的时候分配内存的。全局常量存于全局数据区。
创建对象过程为:

  1. 分配空间。
  2. 创建父类对象。
  3. 初始化成员变量。
  4. 调用构造方法创建一个对象。

方法(包括静态方法)中不能有静态变量,方法中存在的是局部变量,而不是静态变量。静态变量是定义在类中,方法体外面的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中成员变量、局部变量、全局变量、静态变量存在位置及初始化 的相关文章

  • SPNEGO 密码身份验证问题

    我已将我的应用程序配置为通过 SPNEGO 与 Websphere 使用 Kerberos 身份验证 这是详细信息 krb5 conf libdefaults default realm ABC MYCOMPANY COM default
  • 如何在 IDEA Intellij 上使用 Spring-boot 自动重新加载

    我写了一个基于Spring boot tomcat freemarker的项目 我运行成功 但是每当我修改一些模板和java类时 我必须重新启动服务器或使用Intellij上的 重新加载更改的类 菜单才能使更改生效 浪费很多时间 然后我尝试
  • 在 jTextfield 中禁用“粘贴”

    我有一个用 Swing awt 编写的应用程序 我想阻止用户将值粘贴到文本字段中 有没有办法在不使用动作监听器的情况下做到这一点 您可以使用 null 参数调用 setTransferHandler 如下所示 textComponent s
  • 对象数组的数组(二维数组)JNI

    我正在努力创建自定义对象类型 ShareStruct 的二维数组 jobjectArray ret jobjectArray ins jobjectArray outs jclass myClass env gt FindClass env
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera
  • 运行 java -jar 时出现 java.lang.ClassNotFoundException

    我正在使用 ant 来构建我的build xml文件 它编译正常 但随后得到运行时java lang NoClassDefFoundError通过 运行生成的 jar 时java jar my jar jar 似乎这个问题出现了很多 但没有
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩
  • 记录共享和映射的诊断上下文

    据我所知 其他人做了什么来解决 Commons Logging 项目 针对 NET 和 Java 不支持映射或嵌套诊断上下文这一事实 执行摘要 我们选择直接使用实现者日志框架 在我们的例子中为 log4j 长答案 您是否需要一个抽象日志框架
  • 这个等待通知线程语义的真正目的是什么?

    我刚刚遇到一些代码 它使用等待通知构造通过其其他成员方法与类中定义的线程进行通信 有趣的是 获取锁后 同步范围内的所有线程都会在同一锁上进行定时等待 请参见下面的代码片段 随后 在非同步作用域中 线程执行其关键函数 即 做一些有用的事情1
  • 在java中将字符串日期转换为美国格式

    我有下面的代码 其中日期为字符串类型 我必须将其设置为美国格式 所以下面我已经展示了它 private static final SimpleDateFormat usOutputDate new SimpleDateFormat MM d
  • 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest 标头?

    我正在尝试将授权标头添加到我的请求中 作为我们切换环境时的临时解决方法 我试图在扩展 HandlerInterceptorAdapter 的拦截器中处理它 我使用 MutableHttpServletRequest 类制作here http
  • 可访问数据的 Java 约定。 (公共访问器和 Getter/命名)

    通过 Java API 您会看到大量冲突的命名和实践 这让我感到非常困惑 例如 The String http grepcode com file repository grepcode com java root jdk openjdk
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • 当底层连接是有状态时如何使用 Apache HttpClient?

    我在谷歌上搜索了很多关于如何使用 HttpClient 进行多线程处理的信息 他们中的大多数人建议使用 ThreadSafeClientConnManager 但我的应用程序必须登录某个主机 登录表单页面 以便 HttpClient 获得底
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object
  • Java中单例的其他方式[重复]

    这个问题在这里已经有答案了 只是我在考虑编写单例类的其他方法 那么这个类是否被认为是单例类呢 public class MyClass static Myclass myclass static myclass new MyClass pr
  • java中void的作用是什么?

    返回类型 方法返回值的数据类型 如果方法不返回值 则返回 void http download oracle com javase tutorial java javaOO methods html http download oracle

随机推荐

  • Torch安装

    安装步骤参考官网http torch ch docs getting started html 安装过程中可能遇见的问题 1 执行命令 git clone https github com torch distro git torch re
  • python后端学习(九)GIL、深/浅拷贝、私有化、import、封装继承多态

    GIL面试题 描述Python GIL的概念 以及它对python多线程的影响 编写一个多线程抓取网页的程序 并阐明多线程抓取程序是否可比单线程性能有提升 并解释原因 Guido的声明 http www artima com forums
  • Android微信页面缓存清理,安卓用户如何彻底清理微信大量缓存?4招让你彻底解决内存烦恼...

    原标题 安卓用户如何彻底清理微信大量缓存 4招让你彻底解决内存烦恼 作为一个64G版的安卓用户 现在隔三差五就要对手机的内存进行清理 更不用说还在用16G的你了 如果经常出现手机的提醒你的存储容量几乎已满时 你是不老是跟小编以前一样去相册里
  • (Java) 算法题:2的N次方

    题目描述 原题链接 2的N次方 对于一个整数N 512 lt N lt 1024 计算2的N次方并在屏幕显示十进制结果 输入描述 输入一个整数N 512 lt N lt 1024 输出描述 2的N次方的十进制结果 输入例子1 512 输出例
  • 实现即时通讯的几种方式

    文章目录 1 短轮询 2 长轮询 3 SSE 4 WebSocket 总结 在 Web 应用程序中 实现即时通讯是一件常见的任务 为了实现即时通讯 我们需要使用一些特殊的技术和协议来建立一个实时连接 以便实时更新数据 在本文中 我们将介绍几
  • 本地编辑shopify主题的第一种方式

    先进入Shopify商店后台 新建应用程序 填写完无关紧要的信息后 把Theme templates and theme assets权限设置为读写访问权限并保存 然后复制密码 这表示可以通过这个密码对主题进行读写修改了 然后按照命令获取主
  • k8s-(五)最全的安装教程(使用kubeadm在Centos7上部署kubernetes1.18)以及安装异常问题记录

    k8s使用kubeadm进行安装步骤 使用kubeadm安装k8s会简单很多 一直想总结写一篇简单明了的安装教程 希望能有用 k8s在2020年初发布的第一个版本是1 18 0 目前最新版本是1 19 4 并且1 20的版本应该会在年底发布
  • Oracle PL/SQL中的循环处理(sql for循环)

    今年春节算是休了个长假 调整好心态 迎接新一年的挑战 今天来说下Oracle中的循环迭代处理 因为从自己的博客统计中看到 不少网友都搜索了关键字 SQL FOR循环 所以打算在这里说下个人的理解 PL SQL也和我们常用的编程语言一样 提供
  • 真香!用python做副业,月赚1W+,别被死工资拖累

    被压垮的打工人 你还好吗 房贷车贷 上老下小 日常开销 但你的收入有多少 所以你不敢生病 甚至不敢回家 就为了每个月那么点死工资 还得天天加班 然而忙忙忙 却变成了 穷忙族 成为了职场废人 其实很多人都想改变现状 想学点什么的 但就是不知从
  • c语言 字母消消乐,消消乐(C语言版)

    消消乐 游戏规则很简单 点击的位置颜色相连的区域抵消 实现思路 从点击位置开始深搜 递归 记录搜索的坐标并抵消 贴上关键代码 map数组保存每个点的颜色 state保存是否搜索过 判断当前点是否满足条件 并且未搜索过 int isValid
  • VS Code 快捷键(中英文对照版)

    标签 空格分隔 visual studio code 常用 General 按 Press 功能 Function Ctrl Shift P F1 显示命令面板 Show Command Palette Ctrl P 快速打开 Quick
  • 快速解决QQ自动下载腾讯视频播放器

    使用电脑QQ播放视频时 QQ总是会使用默认安装的腾讯视频播放器打开 可是他的这个播放器非常的卡 自己设置的默认不使用播放仍然不起作用 用geek观察了一下电脑 确实没发现腾讯视频 于是在播放视频的时候打开任务管理器 终于发现了腾讯视频播放器
  • 原理图以及vhdl设计一位全加器

    原理图设计以及VHDL设计 一位加法器 全加器原理 全加器真值 输出表达式 原理图设计法 VHDL设计法 代码如下 全加器是用门电路实现两个二进制数相加并求出和的组合线路 称为一位全加器 一位全加器可以处理低位进位 并输出本位加法进位 多个
  • 【目标检测】各种方法中比较难理解的地方

    1 评价指标mAP 全网最清楚的解释 强推 原文链接 http blog sina com cn s blog 9db078090102whzw html 理解的关键点在于每一次的precision和recall计算都是在top X的基础上
  • VMware虚拟机装win7教程

    VMware虚拟机装win7教程 前言 一 VMware虚拟机装win7 二 装Vmware Tools 1 初步装好win7后 要装Vmware Tools 2 搞不定的接着往下看 也是本人遇到的问题 总结 前言 昨晚想要在win10系统
  • 初识RecyclerView

    使用之前 implementation com android support recyclerview v7 26 1 0 添加v7的依赖 不然Recyclerview不给用 1 Xml布局 此处布局文件有两个 一个是整体的父布局文件 代
  • 利用Python实现几种常见排序算法

    一 排序算法概览 插入排序 直接插入排序 二分法插入排序 选择排序 直接选择排序 堆排序 交换排序 冒泡排序 快速排序 归并排序 二 代码实现 1 直接插入排序 最简单直接的一种方式 序列在排序中可分为左边已排序部分和右边未排序部分 每次从
  • 拷贝构造函数与深拷贝和浅拷贝

    拷贝构造函数是一种特殊的构造函数 函数的名称必须和类名称一致 它必须的一个参数是本类型的一个引用变量 作用就是用来复制对象 在使用这个对象的实例来初始化这个对象的一个新的实例 类中可以存在多个拷贝构造函数 拷贝构造函数的调用时机 当函数的参
  • Java中的代理(一)

    一 概念 代理 Proxy 是一种设计模式 提供了对目标对象另外的访问方式 即通过代理对象访问目标对象 这样做的好处是 可以在目标对象实现的基础上 增强额外的功能操作 即扩展目标对象的功能 重要的编程思想 不要随意去修改别人已经写好的代码或
  • Java中成员变量、局部变量、全局变量、静态变量存在位置及初始化

    根据定义变量位置的不同 可以将变量分为成员变量和局部变量 成员变量是 定义在一个类的变量 类中方法外 局部变量是定义在一个方法内的变量 方法中 成员变量分为 静态属性 随类的存在而存在 是在类加载的初始化 非静态属性 随实例的属性存在而存在