首页 > 编程语言 >Java开发-面试题-0019-static 关键字平时用过吗,怎么用的,有什么好处,原理是什么

Java开发-面试题-0019-static 关键字平时用过吗,怎么用的,有什么好处,原理是什么

时间:2024-08-24 13:56:27浏览次数:12  
标签:面试题 Java 变量 静态 0019 class static CodeZeng1998 Example

更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

(技术)微信公众号:CodeZeng1998

(生活)微信公众号:好锅

其他平台:CodeZeng1998好锅

static 关键字平时用过吗,怎么用的,有什么好处,原理是什么

static 修饰范围

  • 变量
  • 方法
  • 代码快
  • 内部类

用法

  1. 静态变量(类变量): 用static修饰的变量属于类而不是实例,因此所有实例共享同一个变量。例如:

    public class Example {
        static int count = 0;
    }
    

    所有Example对象共享同一个count变量。

  2. 静态方法: 用static修饰的方法属于类而不是对象,因此可以在不创建实例的情况下调用。例如:

    public class Example {
        static void printHello() {
            System.out.println("Hello, World!");
        }
    }
    

    可以直接使用Example.printHello()调用方法。

  3. 静态代码块: 在类加载时运行,只执行一次,通常用于初始化静态变量。例如:

    public class Example {
        static int count;
        static {
            count = 10;
        }
    }
    
  4. 静态内部类: 静态内部类可以不依赖外部类的实例,直接通过类名访问。例如:

    public class Outer {
        static class Inner {
            void display() {
                System.out.println("Static Inner Class");
            }
        }
    }
    

    可以直接通过Outer.Inner访问内部类。

好处

  1. 节省内存: 静态成员在内存中只存储一份,适合共享的场景
  2. 简化调用: 静态方法可以直接通过类名调用,不需要创建实例。
  3. 初始化顺序: 静态代码块可以用于控制复杂初始化逻辑。

原理

static关键字影响类的加载过程。静态变量和方法在类加载时就被分配内存,存在于方法区(Method Area)中,不随对象的创建或销毁而变化。这意味着无论创建多少个对象,静态成员都只存在一份,且可以通过类名直接访问。

在这里插入图片描述

以上就是本文相关的所有内容了,如果发现有误欢迎评论指正,更多内容欢迎各位关注。

上图是由 Pic 生成的

关键词:The water lord Pok é mon in Pok é mon runs on the water surface


更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

(技术)微信公众号:CodeZeng1998

(生活)微信公众号:好锅

其他平台:CodeZeng1998好锅

标签:面试题,Java,变量,静态,0019,class,static,CodeZeng1998,Example
From: https://blog.csdn.net/weixin_43873121/article/details/141391425

相关文章

  • Java面试题--JVM大厂篇之JVM 大厂面试题及答案解析(2)
           ......
  • 基于nodejs+vueJava在线教育系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和教育理念的革新,在线教育已成为现代教育体系中的重要组成部分。特别是在编程语言学习领域,如Java,其复杂性和实用性要求学习者能够......
  • 基于nodejs+vuejava学习平台[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和在线教育市场的蓬勃兴起,传统的教育模式正经历着深刻的变革。在这个数字化时代,构建一个高效、便捷、互动性强的学习平台成为了提......
  • Java计算机毕业设计学生综合成绩测评系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在当今教育信息化快速发展的时代背景下,学生综合成绩测评系统已成为高等教育管理不可或缺的一部分。随着学生数量的增长、课程体系的复杂化以及教育评......
  • Java计算机毕业设计校园资源共享平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育规模的持续扩大,校园内资源分配不均与闲置浪费现象日益凸显。图书资料、学习用品、实验器材乃至生活物品等,在学生们手中往往难以实现高效......
  • Java计算机毕业设计校园疫情防控系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全球新冠疫情持续影响的背景下,校园作为知识传播与人才培养的重要场所,其疫情防控工作显得尤为重要。随着复学复课的逐步推进,如何科学、高效地管理校......
  • Java计算机毕业设计学术助手开发(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着信息技术的飞速发展,学术研究领域正经历着前所未有的变革。面对海量且日益增长的学术资源,科研工作者在寻找、筛选及整合相关信息时面临着巨大挑战......
  • 【Java】从零到一使用Feign与Sentinel (详细图解)
    Java系列文章目录补充内容Windows通过SSH连接Linux第一章Linux基本命令的学习与Linux历史文章目录Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1认识依赖4.1.1Feign依赖4.1.2Sentinel依赖4.1.3负载均衡依赖4.2父子项目配置4.2.1项目结......
  • Java面向对象之关键字this
    文章目录一:this关键字定义二:this关键字主要用途2.1区分成员变量和局部变量2.2在构造方法中引用其他构造方法通过this()三:总结一:this关键字定义在Java中,this是一个特殊的引用变量,它引用当前对象本身。在类的内部,可以使用this来引用对象的当前实例的变量和方法......
  • ES6解构赋值详解;全面掌握:JavaScript解构赋值的终极指南
    目录全面掌握:JavaScript解构赋值的终极指南一、数组解构赋值1、基本用法2、跳过元素3、剩余元素4、默认值二、对象解构赋值1、基本用法2、变量重命名3、默认值4、嵌套解构三、复杂的嵌套结构解构四、函数参数解构赋值1、对象解构作为函数参数2、带有默认值的函......