Java高频面试之SE-08

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶

成员变量和局部变量的区别有哪些?

在 Java 中,成员变量和局部变量是两种不同类型的变量,它们在作用域、生命周期、存储位置和用途等方面有显著的区别。以下是它们的主要区别:

1. 定义位置

  • 成员变量
    • 定义在类的内部,但在任何方法、构造函数或块之外。
    • 成员变量可以是 publicprotectedprivate 以及默认访问修饰符。
class MyClass {
    int memberVariable; // 成员变量
}
  • 局部变量
    • 定义在方法、构造函数或代码块内部。
    • 只在定义它们的方法或块内有效。
void myMethod() {
    int localVariable = 10; // 局部变量
}

2. 作用域

  • 成员变量

    • 作用域是整个类,类的所有方法都可以访问它们,前提是访问权限允许。
  • 局部变量

    • 作用域仅限于定义它的代码块或方法,超出该范围后无法访问。

3. 生命周期

  • 成员变量

    • 生命周期与对象的生命周期相同。对象创建时,成员变量被初始化,对象被销毁时,成员变量也随之被销毁。
  • 局部变量

    • 生命周期仅限于方法的调用期间。当方法返回时,局部变量被销毁。

4. 默认值

  • 成员变量
    • 在没有显式初始化的情况下,成员变量会自动被赋予默认值(如数值为0,布尔值为false,对象引用为null)。
class MyClass {
    int memberVariable; // 默认值为 0
}
  • 局部变量
    • 必须显式初始化,否则编译器会报错,提示变量未被初始化。
void myMethod() {
    int localVariable; // 未初始化会导致编译错误
    // System.out.println(localVariable); // 错误
}

5. 存储位置

  • 成员变量

    • 存储在堆内存中(当其所在的对象在堆中存储时)。
  • 局部变量

    • 存储在栈内存中。

6. 使用场景

  • 成员变量

    • 用于保存对象的状态特征,通常与对象的属性或状态相关。
  • 局部变量

    • 用于存储方法内部的临时数据、计算结果或控制结构的迭代变量。

实例变量和静态变量的区别?

在 Java 中,实例变量和静态变量是两种不同的变量类型,它们在内存管理、生命周期、初始化、访问方式和使用场景等方面具有显著的区别。

1. 定义位置

  • 实例变量
    • 定义在类中,但在任何方法、构造函数或静态块之外。实例变量属于某个对象的状态。
class MyClass {
    int instanceVariable; // 实例变量
}
  • 静态变量
    • 定义在类中,使用 static 关键字修饰。静态变量属于整个类,而不是任何单个对象。
class MyClass {
    static int staticVariable; // 静态变量
}

2. 存储位置

  • 实例变量

    • 存储在堆内存中,每个实例(对象)都有自己的实例变量副本。
  • 静态变量

    • 存储在方法区(在 Java 8 以后称为元空间)中,只有一个静态变量副本,所有实例共享这个副本。

3. 生命周期

  • 实例变量

    • 生命周期与对象的生命周期相同。当创建对象时,实例变量被初始化,销毁时也随之被销毁。
  • 静态变量

    • 生命周期与类的生命周期相同。当类被加载时,静态变量被初始化,并在 JVM 关闭时才被垃圾回收。

4. 初始化

  • 实例变量
    • 如果没有显式初始化,实例变量会被默认初始化,比如数值类型为 0,布尔类型为 false,引用类型为 null。
class MyClass {
    int instanceVariable; // 默认值为 0
}
  • 静态变量
    • 也有默认值,且在类加载时被初始化。
class MyClass {
    static int staticVariable; // 默认值为 0
}

5. 访问方式

  • 实例变量
    • 必须通过对象实例来访问。每个实例都有自己的独立副本。
MyClass obj1 = new MyClass();
obj1.instanceVariable = 5; // 通过实例访问

MyClass obj2 = new MyClass();
obj2.instanceVariable = 10; // 不同的实例有自己的副本
  • 静态变量
    • 可以直接通过类名访问,也可以通过对象实例访问(但这是不推荐的做法)。
MyClass.staticVariable = 5; // 通过类名访问
MyClass obj = new MyClass();
obj.staticVariable = 10; // 通过实例访问,但不推荐

6. 使用场景

  • 实例变量

    • 用于表示对象的属性或状态,适用于需要存储与具体实例相关的信息的情况。
  • 静态变量

    • 用于表示类级别的共享属性,或需要在所有实例之间共享的状态信息,例如计数某个类创建了多少个实例(通常用静态变量实现)。

IDEA ji huo
https://pan.quark.cn/s/4216736c0427
🎬大全
https://kdocs.cn/l/cqhxNU9I2lLD
12306回家科技
https://pan.quark.cn/s/45f6bf9be1b3

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947636.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux(Centos 7.6)命令行快捷键

Linux(Centos 7.6)操作系统一般都是使用命令行进行管理,如何能高效的进行命令编辑与执行,需要我们记住一些常见的命令,也需要连接一些常见快捷键的使用,常见快捷键如下: 快捷键快捷键说明tab命令行补齐ctrlr快速查找之…

Geoserver修行记-后端调用WMS/WMTS服务无找不到图层Could not find layer

项目场景 调用geoserver地图服务WMS,找不到图层 我在进行地图服务调用的时候,总是提示我找不多图层 Could not find layer,重点是这个图层我明明是定义了,发布了,且还能够正常查看图层的wms的样式,但是在调用后端调用…

ip属地的信息准确吗?ip归属地不准确怎么办

在数字化时代,IP属地信息成为了我们日常生活中不可或缺的一部分。在各大社交媒体平台上,IP属地信息都扮演着重要的角色。然而,随着技术的不断进步和网络的复杂性增加,IP属地信息的准确性问题也日益凸显。那么,IP属地信…

nginx高可用集群搭建

本文介绍nginx高可用集群的搭建。利用keepalived实时检查nginx进程是否存活、keepalived的虚拟ip技术,达到故障转移的目的。终端用户通过访问虚拟ip,感知不到实际发生的故障。架构图如下: 0、环境 Ubuntu:22.04.2 ltsnginx: 1.…

UE5材质节点Distance

Distance可以计算两个物体间的距离,可以用来做过渡效果 当相机和物体距离3000的时候,就会渐渐从蓝过渡到红色,除以500是为了平滑过渡

CS·GO搬砖流程详细版

说简单点,就是Steam买了然后BUFF上卖,或许大家都知道这点,但就是一些操作和细节问题没那么明白。我相信,你看完这篇文章以后,至少会有新的认知。 好吧,废话少说,直接上实操! 首先准…

【Cocos TypeScript 零基础 3.1】

目录 场景跳转 场景跳转 把新建好的TS文件与场景绑定 选中 场景 或 camera 拖进右边的 属性检查器 双击T文件,进入编辑 至于用什么IDE看个位朋友高兴 我这里有 VScode ,先用这个,老师也没有推荐 (老师也用的是这个) VScode UI 也有中文包,请自行上网搜索 打开创建的TS文件后…

分析服务器 systemctl 启动gozero项目报错的解决方案

### 分析 systemctl start beisen.service 报错 在 Linux 系统中,systemctl 是管理系统和服务的主要工具。当我们尝试重启某个服务时,如果服务启动失败,systemctl 会输出错误信息,帮助我们诊断和解决问题。 本文将通过一个实际的…

pd虚拟机 Parallels Desktop 20 for Mac 安装教程【支持M芯片】

文章目录 效果图一、下载软件二、安装运行⚠️注意事项:1、前往 系统设置–> 隐私与安全性 –> 完整磁盘访问权限,中允许终端:2、安装运行【ParallelsDesktop-20.1.2-55742.dmg】,运行【安装.app】3、将【Patch】文件夹拖到…

回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测 数据准备&#x…

JAVA创建绘图板JAVA构建主窗口鼠标拖动来绘制线条

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…

CSS层叠样式表

目标 能够说出什么是CSS能够使用CSS基础选择器能够设置字体样式能够设置文本样式能够说出CSS的三种引入方式能够使用Chrome调试工具调试样式 目录 CSS简介CSS基础选择器CSS字体属性CSS文本属性CSS的引入方式综合案例Chrome调试工具 1.1 HTML的局限性 说起HTML,…

Win32汇编学习笔记03.RadAsm和补丁

Win32汇编学习笔记03.RadAsm和补丁-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 扫雷游戏啊下补丁 在扫雷游戏中,点关闭弹出一个确认框,确认之后再关闭,取消就不关闭 首先第一步就是确认关闭按钮响应的位置,一般都是 WM_CLOSE 的消息 ,消息响应一般都在过…

深入Android架构(从线程到AIDL)_08 认识Android的主线程

目录 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程​编辑 UI线程的责任: 迅速处理UI事件 举例 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程 UI线程的责任: 迅速处理UI事…

4.CSS文本属性

4.1文本颜色 div { color:red; } 属性值预定义的颜色值red、green、blue、pink十六进制#FF0000,#FF6600,#29D794RGB代码rgb(255,0,0)或rgb(100%,0%,0%) 4.2对齐文本 text-align 属性用于设置元素内文本内容的水平对齐方式。 div{ text-align:center; } 属性值解释left左对齐ri…

数据挖掘——支持向量机分类器

数据挖掘——支持向量机分类器 支持向量机最小间隔面推导基于软间隔的C-SVM非线性SVM与核变换常用核函数 支持向量机 根据统计学习理论,学习机器的实际风险由经验风险值和置信范围值两部分组成。而基于经验风险最小化准则的学习方法只强调了训练样本的经验风险最小…

慧集通iPaaS集成平台低代码培训-基础篇

训练使用素材: 1.数据源: 单号业务日期工厂仓库物料单位数量批次0100012022-5-1210031001030001kg500202304150100012022-5-1210031001030001kg122202304150100012022-5-1210031001030001kg1250202304150100012022-5-1210031001030002kg130202304110100…

深入理解计算机系统—虚拟内存(一)

一个系统中的进程是与其他进程共享 CPU 和主存资源的。然而,共享主存会形成特殊的挑战。随着对 CPU 需求的增长,进程以某种合理的平滑方式慢了下来。但是如果太多的进程需要太多的内存,那么它们中的一些就根本无法运行。 为了更加有效地管理内…

Unresolved plugin: ‘org.apache.maven.plugins:maven-site-plugin:3.12.1‘

问题 使用idea 社区办加载项目提示下面问题: Unresolved plugin: org.apache.maven.plugins:maven-site-plugin:3.12.1 问题解决 maven插件地址: https://maven.apache.org/plugins/maven-dependency-plugin/plugins.html Maven 中央仓库地址&#…

如何在 Windows 10/11 上录制带有音频的屏幕 [3 种简单方法]

无论您是在上在线课程还是参加在线会议,您都可能需要在 Windows 10/11 上录制带有音频的屏幕。互联网上提供了多种可选方法。在这里,本博客收集了 3 种最简单的方法来指导您如何在 Windows 10/11 上使用音频进行屏幕录制。请继续阅读以探索! …