Java面试八股之静态变量和实例变量的区别有哪些

ops/2024/10/11 13:25:44/
  1. Java静态变量和实例变量的区别有哪些

存储位置和生命周期:

静态变量:静态变量属于类级别,存储在Java的方法区(或称为类区,随JVM实现而异,现代JVM中通常在元数据区内),并且在类首次被加载时创建,其生命周期与类相同,直到程序结束才被销毁。

实例变量:实例变量属于对象级别,存储在堆内存中,每个对象都有自己的一份实例变量副本。实例变量的生命周期与所属对象相同,当对象被创建时,实例变量被初始化,对象被垃圾回收时,实例变量随之消失。

访问方式:

静态变量:可以通过类名直接访问,不需要实例化对象,如 ClassName.staticVariable。

实例变量:必须通过实例化的对象来访问,如 object.instanceVariable。

共享性:

静态变量:在类的所有实例间共享,即所有对象访问的是同一份静态变量的拷贝。修改静态变量会影响所有实例。

实例变量:每个对象拥有独立的实例变量副本,互不影响。修改一个对象的实例变量不会影响其他对象的同名实例变量。

初始化时机:

静态变量:在类加载时初始化,且只会初始化一次。

实例变量:在创建对象时通过构造器或初始化块进行初始化,每创建一个对象就初始化一次。

使用场景:

静态变量:通常用于存储不依赖于对象状态的、类级别的信息,如配置信息、工具类方法等。

实例变量:存储与对象状态相关的数据,每个对象的这些数据可以不同。

调用限制:

在静态方法中,可以直接访问静态变量,但不能直接访问实例变量,除非通过对象实例来访问。实例方法中既可以访问静态变量也可以访问实例变量。

 如果大家需要视频版本的讲解,欢迎关注我的B站:


http://www.ppmy.cn/ops/49925.html

相关文章

华为机考入门python3--(36)牛客36-字符串加密

分类:字符串 知识点: 判断一个元素是否在集合中 if char not in key_set 计算字母差 index ord(char) - ord(a) 题目来自【牛客】 # 生成加密表 def generate_cipher_table(key):key_set set()cipher_table ""# 去重for char in k…

【归并排序】| 详解归并排序核心代码之合并两个有序数组 力扣88

🎗️ 主页:小夜时雨 🎗️专栏:动态规划 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/merge-sorted-array/description/ 本道题是归并排序的…

jEasyUI 使用标记创建树形菜单

jEasyUI 使用标记创建树形菜单 jEasyUI 是一个基于 jQuery 的用户界面插件库,它提供了一系列的组件,用于快速构建网页用户界面。其中,树形菜单(Tree Menu)是 jEasyUI 提供的一个非常实用的组件,它可以帮助…

react:handleEdit={() => handleEdit(user)} 和 handleEdit={handleEdit(user)}有啥区别

handleEdit{() > handleEdit(user)} 和 handleEdit{handleEdit(user)} 之间的区别在于它们在调用函数时的行为方式不同,尤其是处理函数参数和立即调用方面: ### 1. handleEdit{() > handleEdit(user)} - **行为**: 这是一个箭头函数,…

mybatis-plus使用拦截器实现sql完整打印

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 在使用mybatis-plus(mybatis)的时候,往往需要…

自学前端第一天

HTML标签 ’HTML‘全程是‘hypertext Markup langage(超文本标记语言) HTML通过一系列的’标签(也称为元素)‘来定义文本、图像、链接。HTML标签是由尖括号包围的关键字。 标签通常成对存在,包括开始标签和结束标签(也称为双标签…

计算机行业

计算机行业环境分析 2022.01.12 计算机行业环境分析 计算机专业就业前景 随着科技的进步和信息事业的发展,尤其是计算机技术的发展与网络应用的逐渐普及。计算机已成为人们工作和生活中不可缺少的东西。IT行业迅猛发展,就业工作岗位也比比皆是。在最近…

【机器学习】机器学习重要分支——强化学习:从理论到实践

文章目录 强化学习:从理论到实践引言第一章 强化学习的基本概念1.1 什么是强化学习1.2 强化学习的基本组成部分1.3 马尔可夫决策过程 第二章 强化学习的核心算法2.1 Q学习2.2 深度Q网络(DQN)2.3 策略梯度方法 第三章 强化学习的应用实例3.1 游…