【java】static关键字

news2025/1/16 1:06:03

static可以修饰的内容如下:
● 变量
● 方法
● 代码块
● 内部类

那就有一个问题,为什么static不能修饰外部类?

我们首先看一下static的作用是什么?
先看看其他人怎么解释的:
A static method can be accessed without creating an object of the class first:

The static variable can be used to refer to the common property of all objects (which is not unique for each object), for example, the company name of employees, college name of students, etc. The static variable gets memory only once in the class area at the time of class loading.

In the Java programming language, the keyword static means that the particular member belongs to a type itself, rather than to an instance of that type. This means we’ll create only one instance of that static member that’s shared across all instances of the class.

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

总结一下,我认为static作用有两个

  1. 节省空间,修饰方法或变量或内部类时可以不经过实例化直接访问
  2. 静态变量是所有实例共有的。

此时插入一下最开始的问题,为什么static不能修饰外部类?

回答:没有必要,static是为了暴露出内部的内容,使外部可以直接使用,外部类本来就可以直接使用,不需要点出来。

被static修饰的变量和方法会在类初次被加载时初始化,而不是实例被创建时。
如图:
在这里插入图片描述

那么静态方法保存在哪里呢?
答案:方法区
方法区在1.8之前的实现是永久代,1.8之后叫元空间metaspace
另外,普通方法其实也保存在方法区。

方法区还存了啥呢?
注意,方法区是《Java虚拟机规范》的规范,永久代或者元空间是对规范的实现。
《深入理解Java虚拟机》书中对方法区(Method Area)存储内容描述如下:它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等。

在这里插入图片描述在这里插入图片描述

此时考虑一个问题,所有方法都会被加载到方法区吗?
回答:不是,首先我们可以确定,所有的静态方法都被加载到了方法区,其次,所有被实例化了类中的方法也都加载到了方法区。

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

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

相关文章

RK3588平台开发系列讲解(进程篇)进程的简介

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、进程的四要素二、进程的三种状态三、task_struct数据结构四、进程优先级五、进程系统调用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍进程的相关知识。 一、进程的四要素 1、有一段程序供其…

Axure 原型适应到不同平台的方法

“老师,公司要求我做一个不同机型的原型,不想重新做,可以适配吗?” “老师,手机有那么多类型,我难道要做那么多的原型吗?” “老师,axure中怎么进行原型的适配呢?应该怎…

云服务器搭建网站(初学)

第一步:来到/var/www/目录下 第二步:在www目录下创建web1文件夹 第三步:来到root目录 第四步:在root目录上传所需要的压缩包 第五步:解压刚刚上传的压缩包到指定的目录(我们刚刚所创建的web1目录&#xff…

HTML5 文件操作

文章目录HTML5 文件操作file元素选择单个文件选择多个文件美化file元素File对象获取文件信息转化单位FileReader对象读取txt文本在线预览图片拖拽文件并读取拖拽图片并预览Blob对象创建并下载txt文件将Canvas下载为一张图片HTML5 文件操作 file元素 语法 <input type&quo…

SpringIOC流程以及Mybatis架构

1、Spring IOC 流程图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/626a8582f4b14ac3983567a85bce1d4d.png IOC 依赖注入整体流程 1、环境初始化 2、Bean工厂初始化 3、读取项目配置 4、定义解析Bean-->BeanDefintion 5、将BeanDefinition存储工厂类的Map 6、通过…

Golang 将视频按照时间维度剪切 | Golang工具

目录 前言 环境依赖 代码 总结 前言 本文提供将视频按照时间维度进行剪切的工具方法&#xff0c;一如既往的实用主义。 主要也是学习一下golang使用ffmpeg工具的方式。 环境依赖 ffmpeg环境安装&#xff0c;可以参考我的另一篇文章&#xff1a;windows ffmpeg安装部署_阿…

2022 IoTDB Summit:IoTDB PMC 乔嘉林《端边云协同:Apache IoTDB 全新单机分布式架构》...

12 月 3 日、4日&#xff0c;2022 Apache IoTDB 物联网生态大会在线上圆满落幕。大会上发布 Apache IoTDB 的分布式 1.0 版本&#xff0c;并分享 Apache IoTDB 实现的数据管理技术与物联网场景实践案例&#xff0c;深入探讨了 Apache IoTDB 与物联网企业如何共建活跃生态&#…

具有循环条件gan的实值(医疗)时间序列生成-2017

REAL-VALUED (MEDICAL) TIME SERIES GENERATION WITH RECURRENT CONDITIONAL GANS ABSTRACT 生成对抗网络(GANs)作为一种训练模型以产生逼真数据的框架已经取得了显著的成功。在这项工作中&#xff0c;我们提出了循环GAN (RGAN)和循环条件GAN (RCGAN)来生成真实的实值多维时间…

canal实战问题汇总分析

canal在实战过程经常会遇到这样或者那样的问题&#xff0c;今天我们专门用一篇文章来列举分析一下&#xff0c;比如、JDK版meta.dat 中保存的位点信息和数据库的位点信息不一致本不匹配、bin-log信息消费失败等问题&#xff0c;下面我们开始一一分析&#xff1a; 1、数据库数据…

数据可视化软件有哪些?

随着大数据概念的普及与业务数据的爆炸式增长&#xff0c;越来越多的企业已经不满足于Excel的常规操作。 因为相较于以往PPT/Word/Excel数据汇报的形式而言&#xff0c;数据可视化平台包含了丰富的图表、组件信息&#xff0c;仅用一张屏幕就能够囊括诸多讯息&#xff0c;画面色…

2022全年度休闲食品(零食)十大热门品牌销量榜单

随着经济的发展及人们消费水平的提高&#xff0c;休闲食品作为居家出游的快消品&#xff0c;逐渐成为了人们生活中必不可少的一部分&#xff0c;同时&#xff0c;消费者对于休闲食品的数量和品质的需求也正不断增长。并且&#xff0c;在休闲食品的消费群体中&#xff0c;年轻群…

Eclipse插件之Tomcat Plugin 介绍、安装与使用

Tomcat Plugin 介绍 Eclipse Tomcat 插件为开发Java Web应用程序提供了Tomcat容器的简单集成。所谓的集成其实主要是以下功能&#xff1a; 在Eclispe中启动和关闭Tomcat启动后的应用可以很容易的打断点进行调试&#xff0c; 这一点应该是该插件最大的优势。 Tomcat 插件是Ec…

MySQL性能优化一 底层数据结构与算法

一 索引 索引 MySQL官网解释&#xff1a;索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构&#xff1a; 二叉树红黑树Hash表B-Tree 案例&#xff1a;有一张两列七行的一个表t 假如我们的查找sql语句是&#xff1a; select * from t where t.col289;正常情况下…

Mysql process 问题,kill不用的process

这个一般会出现在连接池中&#xff0c;导致连接池数量不够然后连接失败&#xff0c;所以要kill 我们kill的都是sleep的&#xff0c;就是没有释放但是不用的链接 前言 sql中的show full processlist是查看线程&#xff0c;实际就是查这个表 select * from information_schema.…

16S全长测序解密转基因玉米根瘤菌群落组成

论文题目&#xff1a; Deciphering the rhizobacterial assemblages under the influence of genetically engineered maize carrying mcry genes 期刊&#xff1a; Environmental Science and Pollution Research 研究背景 玉米是我国的重要粮食作物&#xff0c;但虫害和草…

2023大厂招聘岗位数预测!明年哪些公司可以去?

winter is coming&#xff01;这一年C端要见顶、K12被团灭、阿里被监管&#xff0c;滴滴被处罚、华为都在力求在寒气中活下来&#xff0c;连大厂都深陷泥沼&#xff0c;更别说中小企业。 太多因素导致大批裁员&#xff0c;前不久&#xff0c;互联网er最后的梦乡虾皮大量裁员&am…

智能车|直流电机、编码器与驱动器

智能车|直流电机、编码器与驱动器直流电机直流电机原理减速器编码器编码器简介编码器的工作原理四倍频采集编码器采集程序实现驱动器TB6612FNG 电机驱动器TB6612FNG 的主要参数引脚说明电机整体接线直流电机 直流电机&#xff08;direct current machine&#xff09;是指能将直…

JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK18特性讲解】

JDK各个版本特性讲解-JDK18特性 一、JAVA18概述 Java 18 在 2022 年 3 月 22 日正式发布&#xff0c;Java 18 不是一个长期支持版本&#xff0c;这次更新共带来 9 个新功能。 https://openjdk.org/projects/jdk/18/ 二、具体新特性 1. 默认UTF-8字符编码 JDK 一直都是支持 UT…

SAP ABAP——SAP简介(四)【SAP GUI】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

Docker学习笔记——收藏

Docker 命令&#xff1b;Docker进程相关命令&#xff1b;Docker 镜像相关命令&#xff1b;Docker 容器数据卷&#xff1b;Docker 应用部署案例&#xff1b;Dockerfile&#xff1b;Docker 私有仓库搭建&#xff1b;笔记 目录 初始Docker 安装Docker Docker 架构 Docker 命令 …