4.6 static修饰符

static是一个修饰符,用于修饰类的成员属性和成员方法,还可以编写static代码块来优化程序性能。

1. static修饰属性

在Java程序中使用static修饰属性,则该属性称为静态属性(也称全局属性),静态属性可以使用类名直接访问。

通常,static与final一起使用来定义类常量。

  • 常量类

public class Constants{public static String SEX_MALE = "1";               //男public static String SEX_FEMALE = "2";             //女//public static final String SEX_MALE = "1";       //男//public static final String SEX_FEMALE = "2";     //女
}
  • 测试类

public class TestStatic {@Testpublic void test(){System.out.println("男人的编码是:" + Constants.SEX_MALE);System.out.println("女人的编码是:" + Constants.SEX_FEMALE);}
}

2. static修饰方法

static修饰的方法是静态方法,类加载后可直接调用此方法,不需要一个此类的实例。

注意,静态方法只能访问静态成员(静态成员变量和静态成员方法),因为非静态成员需要先创建对象才能访问,即随着对象的创建,非静态成员才会分配内存。而静态方法在被调用时可以不创建任何对象。

  • Alarm类

public class Alarm{public static void ring(){System.out.println("闹钟响...");}
}
  • 测试类

public class TestAlarm {@Testpublic void test(){Alarm.ring();}
}

3. static修饰代码块

在Java类中,用static关键字修饰的代码块称为静态代码块。当类被加载时,静态代码块就会执行,由于类只加载一次,所以静态代码块只执行一次。

  • Alarm类

public class Alarm{{System.out.println("普通代码块");}static {System.out.println("静态代码块");}
}
  • 测试类

public class TestAlarm {@Testpublic void test(){Alarm alarm1 = new Alarm();Alarm alarm2 = new Alarm();}
}
  • 结果

静态代码块
普通代码块
普通代码块

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

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

相关文章

SQL server 代理服务启动和查看

设置重启 使用管理员权限登录到运行 SQL Server 代理服务的计算机。 打开 Windows 服务管理器。可以通过按下 Windows 键 R,然后键入 "services.msc" 并按 Enter 来打开服务管理器。 在服务列表中,找到 "SQL Server Agent" 服务&…

回归算法|长短期记忆网络LSTM及其优化实现

本期文章将介绍LSTM的原理及其优化实现 序列数据有一个特点,即“没有曾经的过去则不存在当前的现状”,这类数据以时间为纽带,将无数个历史事件串联,构成了当前状态,这种时间构筑起来的事件前后依赖关系称其为时间依赖&…

解决:谷歌浏览器访问http时,自动转https访问的问题

问题背景:某个系统网站,之前一直用https域名访问,现在改成http域名后,用http访问,谷歌浏览器会自动跳转到https。 解决方法: 在浏览器中输入网址:chrome://net-internals/#hsts -》 在“Delete…

解决git action定时任务执行失败的方法

为了测试git action定时任务是否有效,你可能选择一个最近的时间测试, 但是发现怎么也触发不了,是不是觉得很苦恼。但是同样的时间,在第二天的定时任务又能成功运行。 这是什么原因? 原因就在上图,git act…

多测师肖sir_高级金牌讲师__接口测试之tonken (5.6)

接口测试之tonken 网站:http://shop.duoceshi.com/login?redirect2Fdashboard 第一个接口:uiid接口 uiid接口url:http://manage.duoceshi.com/auth/code test中语句: var jsonData JSON.parse(responseBody); postman.setEnvi…

NewStarCTF2023week4-溯源

题目描述是冰蝎进行WebShell连接的流量包,我们需要找到攻击者获取到的服务器用户名和服务器内网IP地址。 先介绍一下常见webshell工具的流量特征: 1、中国菜刀 请求体中存在eval、base64等特征字符; 连接过程中使用base64编码对发送的指令…

深入探究深度学习、神经网络与卷积神经网络以及它们在多个领域中的应用

目录 1、什么是深度学习? 2、深度学习的思想 3、深度学习与神经网络 4、深度学习训练过程 4.1、先使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练) 4.2、后自顶向下的监督学习(就是通过带标签的数…

如何在spark中使用scikit-learn和tensorflow等第三方python包

目录 1 打包需要的python包2 修改spark配置文件 1 打包需要的python包 首先我们用conda包管理工具对我们需要的python包进行虚拟环境创建: conda create -n python37 --copy -y -q python3.7 --prefix /your/workspace/path scikit-learn tensorflow下面是对每个参…

jenkins自动化操作步骤(gitblit)

1、登陆地址: http://xxxxxxxxx.org:xxxx/ admin/xxxx 2、创建任务 选择构建一个maven项目 3、配置 最多只保留一天一个任务 选择git仓库和账号密码 选择代码对应分支 build项: 1)使用父项目的pom文件:k56-boot/pom.xml 2&…

12-MySQL性能监控与调优工具推荐

MySQL性能监控与调优工具推荐 本文将介绍一些常用的MySQL性能监控与调优工具,包括命令行工具、图形界面工具和第三方工具。通过这些工具,我们可以更好地监控MySQL的性能,找出潜在的问题并进行优化。 一、命令行工具 MySQL自带的慢查询日志…

【Qt之QtConcurrent】描述及使用

描述 QtConcurrent是一个Qt库中的模块&#xff0c;用于实现多线程并发编程。它提供了一些高级API&#xff0c;使得在多核处理器上并行执行代码变得更加容易。 示例&#xff1a; 使用的话&#xff0c; 需要在pro文件中添加&#xff1a;QT concurrent模块。 #include <QC…

Leetcode刷题详解——第 N 个泰波那契数

1. 题目链接&#xff1a;1137. 第 N 个泰波那契数 2. 题目描述&#xff1a; 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 示例 1&#xff1a; 输入&#…

从瀑布模式到水母模式:ChatGPT如何赋能软件研发全流程

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

算法随想录算法训练营第四十五天|392.判断子序列 115.不同的子序列

392.判断子序列 题目&#xff1a;给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"…

力扣第56题 合并区间 c++ 贪心

题目 56. 合并区间 中等 相关标签 数组 排序 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例…

Flutter——最详细(Scaffold)使用教程

Scaffold简介 相当于界面的主体&#xff08;类似于安卓最外层PhoneWindow&#xff09;&#xff0c;组件的展示都必须依附于它。 使用场景&#xff1a; 每一个界面都是脚手架&#xff0c;通过它来进行架构实现&#xff0c;优美的布局效果。 属性作用appBar顶部的标题栏body显示整…

Day 11 python学习笔记

模块 内置模块 random random&#xff1a;随机数模块 我们可以在解释器中看到其蕴含的方法 接下来我解释一些常用的方法&#xff1a; random.random( ) random.random( ) 返回0-1的随机数 [0,1) >>> random.random() 0.364183511476754 random.randint(n,m) r…

Java题:查找单链表中第 k 个节点元素的值

遇到过一道奇奇怪怪的Java题&#xff0c;就整理出自己的想法&#xff0c;不知道对不对&#xff0c;还望大佬们指导。 题目 给定一个单链表&#xff0c;查找单链表中第 k 个节点元素的值&#xff0c;同时要求使用时间复杂度低的算法实现。 单链表的定义如下&#xff1a; cla…

2023年Flutter教程_Flutter+Getx仿小米商城项目实战视频教程-V3版

Flutter是谷歌公司开发的一款开源、免费的UI框架&#xff0c;可以让我们快速的在Android和iOS上构建高质量App。它最大的特点就是跨平台、以及高性能。 目前 Flutter 已经支持 iOS、Android、Web、Windows、macOS、Linux 的跨平台开发。 GetX 是 Flutter 上的一个轻量且强大的解…

AI for Security:智能化安全对抗的困境

本篇文章主要结合自己的亲身经历和体会表达一下对AI for Security的看法,整体态度偏消极。 0x01 背景 本段将由大到小从国家、网上公开资料、项目三个方面说明智能化安全对抗时代的来临。 正如有时候觉得学得好不如嫁得好,在网络安全方面有时也是学得好不如运气好跟上了历史…