JAVA--- 关键字static

之前我们学习了JAVA 面向对象的一些基本知识,今天来进阶一下!!!

static关键字

static表示静态,是JAVA中的一个修饰符,可以修饰成员方法,成员变量,可用于修饰类的成员(变量、方法、代码块)和嵌套类。

静态变量

静态变量属于类,并非类的某个实例。

无论创建多少个类的对象,静态变量只有一份存储在内存中。

静态变量可通过类名直接访问,也能通过对象实例访问。

class Student {static int totalStudents; // 静态变量,记录学生总数//被所有 Student 对象共享。每创建一个 Student 对象,totalStudents 的值就会加 1。String name;public Student(String name) {this.name = name;totalStudents++; // 每创建一个学生对象,总数加 1}
}public class StaticVariableExample {public static void main(String[] args) {Student s1 = new Student("Alice");  //new关键字,堆内存Student s2 = new Student("Bob");System.out.println("Total students: " + Student.totalStudents); // 通过类名访问静态变量System.out.println("Total students (via s1): " + s1.totalStudents); // 通过对象实例访问静态变量}
}

静态方法

静态方法属于类,而非类的某个实例;

可以通过类名直接调用静态方法,无需创建类的对象;

静态方法只能访问静态成员(静态变量和静态方法),不能访问实例成员(实例变量和实例方法),因为静态方法在类加载时就已存在,此时可能还没有创建对象。

class MathUtils {static int add(int a, int b) { // 静态方法return a + b;}
}public class StaticMethodExample {public static void main(String[] args) {int result = MathUtils.add(3, 5); // 通过类名调用静态方法System.out.println("3 + 5 = " + result);}
}

拓展:工具类

工具类是帮我们做一些事情的,但是不描述任何事物的类!

JavaBean类

用来描述一类事物的类

e.g. Student,Teacher,Dog,Cat 等

测试类用来检查其他类是否书写正确,带有main方法的类,使程序的入口
工具类帮我们做一些事情的,但是不描述任何事物的类
 工具类书写规则:

1.类名见名知意

2.私有化构造方法                      

public class ArrUtil{private ArrUtil(){}
}

3.方法定义为静态     

   

静态代码块

静态代码块在类加载时执行,且仅执行一次。它通常用于对静态变量进行初始化操作。

class MyClass {static int value;static {// 静态代码块value = 10;   //对value静态变量进行初始化System.out.println("Static block executed.");}
}public class StaticBlockExample {public static void main(String[] args) {System.out.println("Value: " + MyClass.value);}
}

静态嵌套类

静态嵌套类是定义在另一个类内部的静态类。它可以直接访问外部类的静态成员,但不能直接访问外部类的实例成员。

class OuterClass {static int outerStaticVar = 10;int outerInstanceVar = 20;static class StaticNestedClass {void display() {System.out.println("Outer static variable: " + outerStaticVar);// 不能访问 outerInstanceVar,因为它是实例变量// System.out.println("Outer instance variable: " + outerInstanceVar); }}
}public class StaticNestedClassExample {public static void main(String[] args) {OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass();nested.display();}
}

StaticNestedClass 是静态嵌套类,可直接访问外部类的静态变量 outerStaticVar

static的注意事项

1.静态方法只能访问静态变量和静态方法;

2.非静态方法可以访问静态变量或者静态方法,也可以访问非静态成员的成员变量和非静态的成员方法;

3.静态方法中是没有this关键字的。

        

重新认识main方法

public class HelloWorld{public static void main(String[] args){System.out.println("HelloWorld");}
}
public被JVM调用,访问权限足够大
static

被JVM调用,不用创建对象,直接类名访问

因为main方法是静态的,所以测试类中的其他方法也需要是静态的

void被JVM调用,不需要给JVM返回值
main一个通用的名称,虽然不是关键字,但是被JVM识别

 

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

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

相关文章

4.27比赛总结

文章目录 T1T2法一:倍增求 LCA法二:Dijkstra 求最短路法三:dfs 求深度 T3T4总结 T1 一道非常简单的题,结果我因为一句话没写挂了 80pts…… 题目中没写 a a a 数组要按照 b b b 数组的顺序,所以对于最大方案&#x…

数据一致性巡检总结:基于分桶采样的设计与实现

数据一致性巡检总结:基于分桶采样的设计与实现 背景 在分布式系统中,缓存(如 Redis)与数据库(如 MySQL)之间的数据一致性问题是一个常见的挑战。由于缓存的引入,数据在缓存和数据库之间可能存…

SpringBoot与Druid整合,实现主从数据库同步

通过引入主从数据库同步系统,可以显著提升平台的性能和稳定性,同时保证数据的一致性和安全性。Druid连接池也提供了强大的监控和安全防护功能,使得整个系统更加健壮和可靠。 我们为什么选择Druid? 高效的连接管理:Dru…

在Linux系统中安装MySQL,二进制包版

1、检查是否已安装数据库(rpm软件包管理器) rpm -qa | grep mysql rpm -qa | grep mariadb #centOS7自带mariadb与mysql数据库冲突2、删除已有数据库 rpm -e –nodeps 软件名称 3、官网下载MySQL包 4、上传 # 使用FinalShell或Xshell工具上传&#…

【含文档+PPT+源码】基于SpringBoot电脑DIY装机教程网站的设计与实现

项目介绍 本课程演示的是一款 基于SpringBoot电脑DIY装机教程网站的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套…

Spring Boot 缓存机制:从原理到实践

文章目录 一、引言二、Spring Boot 缓存机制原理2.1 缓存抽象层2.2 缓存注解2.3 缓存管理器 三、入门使用3.1 引入依赖3.2 配置缓存3.3 启用缓存3.4 使用缓存注解3.5 实体类 四、踩坑记录4.1 缓存键生成问题4.2 缓存过期与更新问题4.3 事务与缓存的一致性问题 五、心得体会5.1 …

Spark读取Apollo配置

--conf spark.driver.extraJavaOptions-Dapp.idapollo的app.id -Denvfat -Dapollo.clusterfat -Dfat_metaapollo的meta地址 --conf spark.executor.extraJavaOptions-Dapp.idapollo的app.id -Denvfat -Dapollo.clusterfat -Dfat_metaapollo的meta地址 在spark的提交命令中&…

[逆向工程]如何理解小端序?逆向工程中的字节序陷阱与实战解析

[逆向工程]如何理解小端序?逆向工程中的字节序陷阱与实战解析 关键词:逆向工程、小端序、字节序、二进制分析、数据解析 引言:为什么字节序是逆向工程师的必修课? 在逆向工程中,分析二进制数据是最基础的任务之一。…

项目三 - 任务2:创建笔记本电脑类(一爹多叔)

在本次实战中,我们通过Java的单根继承和多接口实现特性,设计了一个笔记本电脑类。首先创建了Computer抽象类,提供计算的抽象方法,模拟电脑的基本功能。接着定义了NetCard和USB两个接口,分别包含连接网络和USB设备的抽象…

ElasticSearch深入解析(六):集群核心配置

1.开发模式和生产模式 Elasticsearch默认运行在开发模式下,此模式允许节点在配置存在错误时照常启动,仅将警告信息写入日志文件。而生产模式则更为严格,一旦检测到配置错误,节点将无法启动,这是一种保障系统稳定性的安…

【Prometheus-MySQL Exporter安装配置指南,开机自启】

目录 1. 创建 MySQL 监控用户2. 配置 MySQL 认证文件3. 安装 mysqld_exporter4. 配置 Systemd 服务5. 启动并验证服务6. 修改Prometheus配置常见错误排查错误现象排查步骤 6. 验证监控数据关键注意事项 7. Grafana看板 1. 创建 MySQL 监控用户 mysql -uroot -p123456 # 登录M…

redis未授权访问漏洞学习

一、Redis常见用途 1. Redis介绍 全称与起源: Redis全称Remote Dictionary Service(远程字典服务),最初由antirez在2009年开发,用于解决网站访问记录统计的性能问题。发展历程: 从最初仅支持列表功能的内存数据库,经过十余年发展已支持多种…

4.27搭建用户界面

更新 router下面的index.js添加新的children 先区分一下views文件夹下的不同vue文件: Home.vue是绘制home页面的所有的表格。 Main.vue是架构头部和左侧目录的框架的。 研究一下这个routes对象,就可以发现重定向redirect的奥妙所在,我们先把…

【MySQL】(8) 联合查询

一、联合查询的作用 由于范式的规则,数据分到多个表中,想要查询完整的信息,就需要联合查询多张表。比如查询学生的学生信息和所在班级的信息,就需要联合查询学生表和班级表。 二、联合查询过程 案例:查询学生姓名为孙…

图漾官网Sample_V1版本C++语言完整参考例子---单相机版本

文章目录 1.参考例子 主要梳理了图漾官网Sample_V1版本的例子 1.参考例子 主要增加了从storage区域读取相机参数的设置,使用图漾PercipioViewer软件,如何将相机参数保存到srorage区,可参考链接:保存相机参数操作 保存参数设置 注…

关于本地端口启动问题

如何启动一个本地端口 1. Node.js (使用Express框架) 使用node.js的方法 注意:下列bash命令最好在管理员权限运行的cmd窗口中进行,否则可能会有权限错误 首先,确保您已经安装了Node.js和npm。然后,创建一个新的Node.js项目并安…

产销协同的作用是什么?又如何对各部门发挥作用?

目录 一、产销协同的对象有哪些? 1. 客户需求 2. 市场趋势 3. 供应链伙伴 4. 企业战略目标 二、产销协同的作用是什么? 1. 提高客户满意度 2. 降低企业成本 3. 增强市场竞争力 4. 优化资源配置 三、产销协同对各部门怎么发挥作用?…

React Router v7 从入门到精通指南

一、设计思想与核心原理 1. 设计哲学 组件即路由&#xff1a;路由以 <Route> 组件形式声明&#xff0c;与 React 组件树深度集成声明式导航&#xff1a;通过 <Link> 和 useNavigate 实现无刷新路由跳转动态匹配机制&#xff1a;路径参数、通配符、优先级匹配规则…

Python爬虫实战:获取网yi新闻网财经信息并做数据分析,以供选股做参考

一、引言 在财经领域,股市信息对投资者意义重大。网yi新闻作为知名新闻资讯平台,其股市板块蕴含丰富的最新股市热点信息。然而,依靠传统人工方式从海量网页数据中获取并分析这些信息,效率低下且难以全面覆盖。因此,利用爬虫技术自动化抓取相关信息,并结合数据分析和机器…

Spring Boot Actuator - 应用监控与管理

一、 Spring Boot Actuator 概述 Spring Boot Actuator是Spring Boot 提供的生产级监控与管理工具集&#xff0c;用于实时监控和运维管理应用。Actuator 通过HTTP 端点&#xff08;或 JMX 端点&#xff09;暴露应用的健康状态、性能指标、日志信息、环境配置等关键数据&#x…