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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 (15)宽带接入技术

前言 计算机网络宽带接入技术是指通过高速、大容量的通信信道或网络,实现用户与互联网或其他通信网络之间的高速连接。 一、宽带接入技术的定义与特点 定义:宽带接入技术是指能够传输大量数据的通信信道或网络,其传输速度通常较高&#xff0c…

2453.学习周刊-2024年53周

封面 不要站在问题一边打败孩子,而是站在孩子一边打败问题,多从孩子的角度思考问题,帮助孩子一起解决问题 ✍优秀博文 SQL中历史数据处理实践指南新领导上任了,老员工该如何适应?主动接纳还是我行我素? ✍…

回归预测 | MATLAB实现CNN-SVM多输入单输出回归预测

回归预测 | MATLAB实现CNN-SVM多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-SVM多输入单输出回归预测预测效果基本介绍模型架构程序设计参考资料 预测效果 基本介绍 CNN-SVM多输入单输出回归预测是一种结合卷积神经网络(CNN)和支持向量机&#…

2025寒假集训总课表

各位家长,各位同学,新年好! 过去的2024有缘认识,一起学习,算是比较成功的一年。大家跟着我们的团队进行了约一年的培训,很有收获。纵观全年: 1、寒假我们认真集训了20天,暑假40天&…

python学opencv|读取图像(二十四)使用cv2.putText()绘制文字进阶-倾斜文字

【1】引言 前述学习进程中,我们已经掌握了pythonopencv绘制文字的基本技能,相关链接为: python学opencv|读取图像(二十三)使用cv2.putText()绘制文字-CSDN博客 在这里,我们使用不同的字体、线条颜色和线…

[python SQLAlchemy数据库操作入门]-19.使用复合条件构建复杂查询

哈喽,大家好,我是木头左! 构建基本查询条件 使用 SQLAlchemy 表达式语言构建基本查询条件非常简单。例如,假设有一个名为 User 的表,并且希望查找年龄大于 30 的所有用户。可以使用以下代码来实现这一点: from sqlalchemy import create_engine, Table, Column, Intege…

HTML——29. 音频引入二

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>音频引入</title></head><body><!--audio:在网页中引入音频IE8以及之前版本不支持属性名和属性值一样&#xff0c;可以只写属性名src属性:指定音频文件…

【Unity3D】UGUI Canvas画布渲染流程

参考文档&#xff1a;画布 - Unity 手册 Canvas组件&#xff1a;画布组件是进行 UI 布局和渲染的抽象空间。所有 UI 元素都必须是附加了画布组件的游戏对象的子对象。 参数&#xff1a; Render Mode 渲染模式&#xff1a;Screen Space - Overlay、Screen Spa…

Conda清理缓存

参考&#xff1a;1、2

k8s系列--通过docker拉取的镜像导入到 containerd中

要将通过 docker pull 拉取的镜像导入到 containerd 中&#xff0c;可以按照以下步骤操作&#xff1a; 步骤 1&#xff1a;使用 docker 将镜像保存为 tar 文件 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.11.1 docker save registry.cn-ha…

热备份路由HSRP及配置案例

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网路安全入门系列 目录 一&#xff0c;HSRP的相关概念二&#xff0c;…

牛客网刷题 ——C语言初阶——JZ15 二进制中1的个数

1.题目描述 题目OJ链接 描述 输入一个整数 n &#xff0c;输出该数32位二进制表示中1的个数。其中负数用补码表示。 2.思路 求2进制中1的个数&#xff0c;可以转换为求每一位&#xff0c;1的个数&#xff0c;1&1还是1 所以判断如果该数值&1为真&#xff0c;我们就co…

机器学习笔记 - 单幅图像深度估计的最新技术

1、深度估计简述 单眼深度估计是一项计算机视觉任务,AI 模型从单个图像中预测场景的深度信息。模型估计场景中对象从一个照相机视点的距离。单目深度估计已广泛用于自动驾驶、机器人等领域。深度估计被认为是最困难的计算机视觉任务之一,因为它要求模型理解对象及其深度信息之…

Spring AOP 扫盲

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

RocketMQ面试题:基础部分

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

【VUE】使用create-vue快速创建一个vue + vite +vue-route 等其他查看的工程

create-vue 简介 GitHub:https://github.com/vuejs/create-vue 创建的选项有多个,具体的可以看下方截图,当创建完成的时候可以发现工程中是自带vite的。 下面对其中的各种内容进行简单的说明 JSX (可以选择,但是我感觉没什么必要) 全称:JavaScript XML 允许你在 Java…

pikachu靶场--目录遍历和敏感信息泄露

pikachu靶场—目录遍历和敏感信息泄露 目录遍历 概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量&#xff0c;从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时&#xff0c;便会将请求的这个文件的值(比如文件名称)传递到后台&#xff0c;后台再…

使用WebSocket 获取实时数据

回车发送数据&#xff0c;模拟服务器发送数据 效果图&#xff1a; 源码&#xff1a; <template><div><h1>WebSocket 实时数据</h1><input type"text" v-model"ipt" keyup.enter"sendMessage(ipt)"><div v-if…

Onedrive精神分裂怎么办(有变更却不同步)

Onedrive有时候会分裂&#xff0c;你在本地删除文件&#xff0c;并没有同步到云端&#xff0c;但是本地却显示同步成功。 比如删掉了一个目录&#xff0c;在本地看已经删掉&#xff0c;onedrive显示已同步&#xff0c;但是别的电脑并不会同步到这个删除操作&#xff0c;在网页版…

培训机构Day22

今天主要还是围绕着jquery讲解的&#xff0c;没有什么可说的。 知识点&#xff1a; 常用事件类型&#xff1a; 1.click&#xff1a;单击事件。鼠标&#xff0c;或键盘都可以触发。 2.dblclick&#xff1a;双击事件。 3.contextmenu&#xff1a;右键事件。 4.键盘相关事件&…