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.rhkb.cn/news/501344.html

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

相关文章

在Typora中实现自动编号

文章目录 在Typora中实现自动编号1. 引言2. 准备工作3. 自动编号的实现3.1 文章大纲自动编号3.2 主题目录(TOC)自动编号3.3 文章内容自动编号3.4 完整代码 4. 应用自定义CSS5. 结论 在Typora中实现自动编号 1. 引言 Typora是一款非常流行的Markdown编辑…

Oracle exp和imp命令导出导入dmp文件

目录 一. 安装 instantclient-tools 工具包二. exp 命令导出数据三. imp 命令导入数据四. expdp 和 impdp 命令 一. 安装 instantclient-tools 工具包 ⏹官方网站 https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html ⏹因为我们在…

小程序发版后,强制更新为最新版本

为什么要强制更新为最新版本? 在小程序的开发和运营过程中,强制用户更新到最新版本是一项重要的策略,能够有效提升用户体验并保障系统的稳定性与安全性。以下是一些主要原因: 1. 功能兼容 新功能或服务通常需要最新版本的支持&…

设计模式 创建型 原型模式(Prototype Pattern)与 常见技术框架应用 解析

原型模式(Prototype Pattern)是一种创建型设计模式,其核心思想在于通过复制现有的对象(原型)来创建新的对象,而非通过传统的构造函数或类实例化方式。这种方式在需要快速创建大量相似对象时尤为高效&#x…

办公 三之 Excel 数据限定录入与格式变换

开始-----条件格式------管理规则 IF($A4"永久",1,0) //如果A4包含永久&#xff0c;条件格式如下&#xff1a; OR($D5<60,$E5<60,$F5<60) 求取任意科目不及格数据 AND($D5<60,$E5<60,$F5<60) 若所有科目都不及格 显示为红色 IF($H4<EDATE…

黑马JavaWeb开发跟学(十四).SpringBootWeb原理

黑马JavaWeb开发跟学 十四.SpringBootWeb原理 SpingBoot原理1. 配置优先级2. Bean管理2.1 获取Bean2.2 Bean作用域2.3 第三方Bean 3. SpringBoot原理3.1 起步依赖3.2 自动配置3.2.1 概述3.2.2 常见方案3.2.2.1 概述3.2.2.2 方案一3.2.2.3 方案二 3.2.3 原理分析3.2.3.1 源码跟踪…

linux-26 文件管理(四)install

说一个命令&#xff0c;叫install&#xff0c;man install&#xff0c;install是什么意思&#xff1f;安装&#xff0c;install表示安装的意思&#xff0c;那你猜install是用来干什么的&#xff1f;猜一猜干什么的&#xff1f;安装软件&#xff0c;安装第三方软件&#xff0c;错…

Win11+WLS Ubuntu 鸿蒙开发环境搭建(二)

参考文章 penHarmony南向开发笔记&#xff08;一&#xff09;开发环境搭建 OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——标准系统移植指南&#xff08;一&#xff09; OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——小型系统芯片移植指南&#xff08;二&…

多文件比对

要比对多个存储目录下的文件是否存在重复文件&#xff0c;可以通过以下步骤实现 MD5 值的比对&#xff1a; 1. 提取文件路径 首先从你的目录结构中获取所有文件的路径&#xff0c;可以使用 find 命令递归列出所有文件路径&#xff1a;find /traixxxnent/zpxxxxx -type f >…

46. Three.js案例-创建颜色不断变化的立方体模型

46. Three.js案例-创建颜色不断变化的立方体模型 实现效果 知识点 Three.js基础组件 WebGLRenderer THREE.WebGLRenderer是Three.js提供的用于渲染场景的WebGL渲染器。它支持抗锯齿处理&#xff0c;可以设置渲染器的大小和背景颜色。 构造器 antialias: 是否开启抗锯齿&am…

【51单片机零基础-chapter6:LCD1602调试工具】

实验0-用显示屏LCD验证自己的猜想 如同c的cout,前端的console.log() #include <REGX52.H> #include <INTRINS.H> #include "LCD1602.h" int var0; void main() {LCD_Init();LCD_ShowNum(1,1,var211,5);while(1){;} }实验1-编写LCD1602液晶显示屏驱动函…

【GO基础学习】gin的使用

文章目录 模版使用流程参数传递路由分组数据解析和绑定gin中间件 模版使用流程 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {// 1.创建路由r : gin.Default()// 2.绑定路由规则&#xff0c;执行的函数// gin.Context&#x…

杰盛微 JSM4056 1000mA单节锂电池充电器芯片 ESOP8封装

JSM4056 1000mA单节锂电池充电器芯片 JSM4056是一款单节锂离子电池恒流/恒压线性充电器&#xff0c;简单的外部应用电路非常适合便携式设备应用&#xff0c;适合USB电源和适配器电源工作&#xff0c;内部采用防倒充电路&#xff0c;不需要外部隔离二极管。热反馈可对充电电流进…

Linux实验报告14-Linux内存管理实验

目录 一&#xff1a;实验目的 二&#xff1a;实验内容 1、编辑模块的源代码mm_viraddr.c 2、编译模块 3、编写测试程序mm_test.c 4、编译测试程序mm_test.c 5、在后台运行mm_test 6、验证mm_viraddr模块 一&#xff1a;实验目的 (1)掌握内核空间、用户空间&#xff…

供需平台信息发布付费查看小程序系统开发方案

供需平台信息发布付费查看小程序系统主要是为了满足个人及企业用户的供需信息发布与匹配需求。 一、目标用户群体 个人用户&#xff1a;寻找兼职工作、二手物品交换、本地服务&#xff08;如家政、维修&#xff09;等。 小微企业&#xff1a;推广产品和服务&#xff0c;寻找合…

overleaf写学术论文常用语法+注意事项+审阅修订

常用语法 导入常用的宏包 \usepackage{cite} \usepackage{amsmath,amssymb,amsfonts} \usepackage{algorithmic} \usepackage{algorithm} \usepackage{graphicx} \usepackage{subfigure} \usepackage{textcomp} \usepackage{xcolor} \usepackage{lettrine} \usepackage{booktab…

动态规划<八> 完全背包问题及其余背包问题

目录 例题引入---找到解决问题模版 LeetCode 经典OJ题 1.第一题 2.第二题 3.第三题 其余的一些背包问题 1.二维费用的背包问题 例题引入---找到解决问题模版 OJ 传送门 牛客 DP42 【模板】完全背包 画图分析: 使用动态规划解决(第二问与第一问的不同之处用绿色来标记) 1.…

TP8 前后端跨域访问请求API接口解决办法

报错&#xff1a;Access to XMLHttpRequest at http://www.e.com/api/v1.index/index?t1735897901267 from origin http://127.0.0.1:5500 has been blocked by CORS policy: Response to preflight request doesnt pass access control check: The value of the Access-Contr…

【前端系列】Pinia状态管理库

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、Pinia状态管理库&#xff1a;☀️☀️☀️2.1 pinia基本使用① pinia充当中转站存放token② 使用步骤 2.1 axios请求拦截器 一、前言&#x1f680;&#x1f680;&#x1f680; ☀️ 回报不在行动之后&#xff0c;…

打造三甲医院人工智能矩阵新引擎(四):医疗趋势预测大模型篇 EpiForecast与DeepHealthNet合成应用

一、引言 1.1 研究背景与意义 在当今数字化时代,医疗领域积累了海量的数据,涵盖电子病历、医学影像、基因序列、临床检验结果等多源异构信息。这些数据蕴含着疾病发生发展、治疗反应、疫情传播等规律,为医疗趋势预测提供了数据基础。准确的医疗趋势预测能辅助医疗机构提前…