static关键字

2023-05-16

在类中,用static声明的成员变量为静态成员变量,或者叫做:类属性,类变量

  • 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显示初始化
  • 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享
  • 可以使用“对象.类属性”来调用。不过,一般都是用“类名.类属性”
  • static变量至于方法区中

用static声明的方法为静态方法

  • 不需要对象,就可以调用(类名.方法名)
  • 在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可以访问非static的成员
  • 要声明一个静态变量或定义一个静态方法,就要在这个变量或方法的声明中加上修饰符static。

例如:

static int numberOfStatic;

static int getNumberOfStatic(){}

定义原则:

  • 如果一个变量或方法不依赖于类的某个具体实例,就应该将它定义为静态变量或静态方法,Math类中所有的方法都是静态的。

静态初始化快

  • 如果希望加载后,对整个类进行默写初始化操作,可以使用static初始化快
  • 是在类初始化时执行,不是在创建对象时执行
  • 静态初始化块中不能访问非static成员

执行顺序:

先执行Object的静态初始化块,再向下执行子类的静态初始化块。

关于static的一个例子:

public class Test {

static{
int x = 5;
}
static int x,y;

public static void main(String[] args) {
x--;
myMethod();
System.out.println(x + y + ++x);
}
public static void myMethod(){
y = x++ + ++x;
}
}

输出:3

解析:

静态语句块中x为局部变量,不影响静态变量x的值。局部变量在静态块外部不能直接调用,静态块一般用在一些初始化操作

x和y为静态变量,默认初始值为0,属于当前类,其值得改变会影响整个类的运行。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

static关键字 的相关文章

  • 荔枝派 Nano 全志 F1C100s 编译运行 Linux 笔记

    首先是荔枝派的官方文档 xff0c 写的不是很细 xff0c 应当说我们必须明确几点 xff1a 出厂时 SPI Flash 自带了一个 U Boot 43 Linux Kernel xff08 出厂的时候可能烧过了 xff09 xff0c
  • Linux安装火狐并使用国内书签

    span class token function wget span qO span class token string 39 https download mozilla org product 61 firefox esr late
  • 构建 Kubernetes 文档

    访问 kubernetes io 实在是有点慢 xff0c 所以决定自行构建 span class token comment Install HUGO if not installed span span class token comm
  • 使用 vuetify

    Vuetify 是一个非常优秀的前端组件库 xff0c 天生的响应式和 Material Design 风格 2022 11 01 终于迎来了 Vuetify 3 0 xff0c 完整支持了 Vue 3 语法 对于现有使用 VueCLI 和
  • VB6.0中提示:该部件的许可证信息没有找到,在设计环境中,没有合适的许可证使用该功能”的解决办法

    用VB6 0中的某些控件时总是提示 该部件的许可证信息没有找到 xff0c 在设计环境中 xff0c 没有合适的许可证使用该功能 xff01 xff08 主要是因为VB6 0精简版 xff09 具体解决方法 xff1a 这里需要一个工具 x
  • 实现黑客帝国数字雨效果

    今日闲得慌 xff0c 折腾了一个黑客帝国数字雨效果 xff0c 还蛮不错的 操作 xff1a 新建一个文本文档 xff0c 输入 以下代码 xff0c 再将扩展名修改为 Bat xff0c 运行即可 命令提示符代码 xff1a xff08
  • Android Studio电脑不支持HAXM的解决办法

    测试APP时出现以下错误信息 xff1a Intel HAXM is required to run this AVD Your CPU does not support required features VT x or SVM Unfo
  • Relocations in generic ELF (EM: 62) 错误的解决方案

    Android studio 或者 xcode 使用第三方库时可能出现这个问题 xff0c could not read symbols File in wrong format 这是由于自己编译的 a 静态库 或 so 动态库 与目标平台
  • std::list 中 size() 的时间复杂度

    很奇怪的 xff0c 或者说是一个不应成为问题的问题 std list 的 size 方法时间复杂度是多少 xff1f 第一感觉应该是 O 1 没错吧 xff0c 多一个变量用于储存链表长度应该是很轻易的事情 于是有了下面这段代码 xff1
  • C# 调用FFmpeg 根据图片合成视频

    C 调用FFmpeg 根据图片合成视频 1 项目结构 2 代码 using System using System Collections Generic using System Diagnostics using System Web
  • TTP223使用说明

    管脚定义 xff1a 引脚号 引脚名称 I O 简单描述 1 Q O CMOS输出 2 VSS P 电源脚 3 IN I O 触摸输入 4 AHLB
  • Visual Studio 资源文件 Error RC2135 错误的解决方案

    用记事本打开 xff0c 另存为 xff0c 覆盖 xff0c 编码选择 Unicode xff08 其实是 UTF 16 LE with BOM xff09 即可 来源 xff1a https stackoverflow com ques
  • 数学基础 —— 向量运算(叉乘)

    向量的叉乘 xff0c 即求同时垂直两个向量的向量 xff0c 即c垂直于a xff0c 同时c垂直于b xff08 a与c的夹角为90 xff0c b与c的夹角为90 xff09 c 61 a b 61 xff08 a y b z b y
  • Nginx安装及简介

    一 Nginx简介 Nginx是一个高性能的服务器 xff0c 类似于Apache Tomcat Jetty IIS等都是服务器 Nginx的优势 xff1a 1 Tomcat Jetty面向Java语言 xff0c 先天就是重量级的web
  • 数据结构之数组代码实现

    数据结构之数组代码实现 package com algorithm array 64 author xff1a Vimonster 64 date xff1a 2019 12 04 22 58 13 64 slogan 任时间再怎样低头呢喃
  • Invalid VCS root mapping

    idea导入springboot项目后 报错如下 xff1a 这个错误的原因是maven路径配置不对 xff0c 解决方案 file setting 在左上角的搜索框输入maven 配置正确的maven安装目录及seetting xml位置
  • Intger和int做比较的坑

    Integer 缓存 xff08 IntegerCache xff09 是 Java 5 中引入的一个有助于节省内存 提高性能的特性 废话不多说 xff0c 看一个栗子 64 author xff1a Vimonster 64 time 2
  • Springboot打成war包部署到Tomcat

    1 在pom xml中修改打成的包名称 lt build gt lt finalName gt 你的包名称 lt finalName gt lt plugins gt lt plugin gt lt groupId gt org sprin
  • zookeeper节点详解

    一 节点类型 persistent 持久节点 persistent sequential 持久序号节点 ephemeral 临时节点 ephemeral sequential 临时序号节点 1 persistent 持久节点 默认创建的节点
  • Zookeeper客户端详解

    zk常见客户端有三种 zookeeper原生Java APIZkClientApache curator 1 原生ZookeeperAPI lt dependency gt lt groupId gt org apache zookeepe

随机推荐

  • UILabel标签文字过长时的显示方式

    lineBreakMode xff1a 设置标签文字过长时的显示方式 label lineBreakMode 61 NSLineBreakByCharWrapping 以字符为显示单位显示 xff0c 后面部分省略不显示 label lin
  • error launching idea

    报错内容如下 解决方法 xff1a 如下图 idea 右击 gt 属性 gt 兼容性 gt 设置 gt 勾选 以管理员身份运行此程序 gt 应用 gt 确定
  • idea打开vue项目卡死问题解决

    解决方案 xff1a file gt settings gt File Types gt ActionScript gt as gt 给下面添加 node modules 然后 apply gt ok
  • Linux下载并安装rabbitmq-server-3.6.5-1.noarch.rpm

    目录 1 安装rabbitmq所需要的依赖包 2 下载安装包 3 安装服务命令 4 修改配置 5 启动rabbitmq 6 rabbitmq控制台安装 7 访问你的虚拟机 ip 15627 会出现下面的页面 用户名和密码都是 guest 8
  • nacos集群: code:503 msg: server is STARTING now, please try again later!

    在搭建nacos集群的时候 xff0c 集群启动成功的前提下 启动项目报如下错误 xff1a 解决方法 xff1a 1 cd 你nacos的bin目录 2 vim startup sh 3 在 JAVA OPT 61 34 JAVA OPT
  • yum安装rabbitmq的目录

    一般我们yum安装完rabbitmq后 xff0c 不知道安装到什么地方了 xff0c 其实是安装到下面的路径 usr lib rabbitmq lib 如下图所示 xff1a
  • Linux环境安装Redis

    下载地址 xff1a http download redis io releases 安装步骤 xff1a 1 安装gcc yum install gcc 2 把下载好的redis 4 0 14 tar gz xff08 选择你自己的版本
  • Redis主从环境搭建

    首先先搭建一个Redis xff1a 搭建方法 xff1a Linux环境安装redis 1 新建一个目录 xff0c 按照上述链接中的方法再次搭建一个redis 2 搭建完后 xff0c 修改从节点的redis conf文件 2 1 修改
  • Redis集群环境搭建

    一 下载redis xff08 此处我下载的是5 0 3版本 xff09 下载地址 xff1a http download redis io releases Linux命令下载 xff1a wget http download redis
  • Jvisualvm使用及添加Visual GC组件

    只要装了jdk xff0c 就会自带这个工具 xff0c 路径位置如下 xff1a JVisualvm添加Visual GC插件 动态观察各个年代GC情况 访问地址 xff1a https visualvm github io plugin
  • Spring源码编译Java: 找不到符号 InstrumentationSavingAgent

    报错如下 xff1a 解决 xff1a 将spring context gradle文件的 下面这一行 br optional project 34 spring instrument 34 br 修改为 br compile projec
  • RabbitMQ学习(六)——消息确认机制(Confirm模式)

    在上一篇文章中我们讲解了RabbitMQ中的AMQP事务来保证消息发送到Broker端 xff0c 同时我们可以在事务之间发送多条消息 xff08 即在channel txSelect 和channel txCommit 之间发送多条消息
  • zookeeper初识

    一 节点类型 persistent 持久节点 persistent sequential 持久序号节点 ephemeral 临时节点 ephemeral sequential 临时序号节点 1 persistent 持久节点 默认创建的节点
  • xmlns:dubbo=“http://dubbo.apache.org/schema/dubbo“报错

    请先看看你有没有加dubbo的maven依赖 xff0c 官网在做这个demo的时候并没有说要加maven依赖 xff0c 所以会xml中会报红 lt beans xmlns xsi 61 34 http www w3 org 2001 X
  • tomcat 8源码环境编译

    源码下载 下载地址 xff1a https tomcat apache org download 80 cgi 配置 1 解压下载好的源码包 apache tomcat 8 5 57 src zip 2 解压好后 xff0c 在解压后的目录
  • servlet配置文件解析

    1 配置 lt servlet gt xff08 以下代码均是web xml中的 xff09 lt servlet gt lt servlet name gt FirstServlet lt servlet name gt lt servl
  • 线程基础之—线程的创建

    线程创建分三类 1 继承Thread 43 run 启动 xff1a 创建子类对象 43 对象 start 2 实现Runnable 43 run 启动 xff1a 使用静态代理 1 gt 创建真实角色 2 gt 创建代理角色 Thread
  • 死锁

    一个死锁的代码 public class Demo public static void main String args Object g 61 new Object Object m 61 new Object Goods goods
  • 多线程之任务调度

    Timer定时器类 TimerTask任务类 通过java timer timetask xff1a xff08 Spring的任务的任务调度就是通过他们实现的 xff09 在这种实现方式中 xff0c Timer类实现的是类似于闹钟的功能
  • static关键字

    在类中 xff0c 用static声明的成员变量为静态成员变量 xff0c 或者叫做 xff1a 类属性 xff0c 类变量 它为该类的公用变量 xff0c 属于类 xff0c 被该类的所有实例共享 xff0c 在类被载入时被显示初始化对于