当前位置: 首页 > news >正文

Java中的 static

1 static 静态变量

1.1 静态变量的使用

static变量也称作静态变量,也叫做类变量

静态变量被所有的对象所共享,在内存中只有一个副本

当且仅当在类初次加载时会被初始化

静态变量属于类

通过类名就可以直接调用静态变量

也可以通过对象名.静态变量名调用

static 变量

public class Student{private String name;private static String schoolName;private static int count;public Student(String name){this.name = name;count++;}public void showStuInfo(){System.out.println("学生的姓名是" + this.name + ",学校的名字是" + Student.schoolName);}public static void main(String[] args){Student.schoolName = "实验中学";Student s1 = new Student("张三");Student s2 = new Student("李四");Student s3 = new Student("王五");s1.showStuInfo();s2.showStuInfo();s3.showStuInfo();System.out.println("学生的数量是:" + Student.count);System.out.println("学生的数量是:" + s1.count);}
}

1.2 实例变量和静态变量区别

  • 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量;

实例变量属于该类的对象,必须产生该类的对象,才能调用实例变量。

  • 静态变量随着类的加载,存在于方法区中;

实例变量随着对象的建立,存在于堆内存中。

  • 静态变量在程序开始时创建,在程序结束时销毁;

实例变量在对象创建时创建,在对象被销毁时销毁。

2 静态方法

static修饰的方法,叫静态方法,也叫做类方法

静态方法中,不能直接访问非静态成员变量和非静态成员方法

静态方法中,不能使用 this 关键字

通过类名可以直接调用静态方法

也可以通过对象名.静态方法名调用

静态方法和静态方法访问

public class Student{private String name;private int age;private int studentId;private static String classRoom;public static void showClassRoom(){//静态方法中不能使用this关键字System.out.println("教室3301");}public static void main(String[] args){Student.showClassRoom();}
}

3 静态块

3.1 静态块的使用

静态代码块在类加载时执行,并且只执行一次

静态代码块中不能有this关键字

静态块可以有多个,按照顺序执行

public class Emp{static{System.out.println("欢迎");}static{System.out.println("再次光临");}
}

3.2 静态块、匿名构造块、构造函数

执行顺序

public class Son{static{System.out.println("静态块1");}private String name;public Son(String name){this.name = name;System.out.println("构造方法");}{System.out.println("匿名构造块");}static{System.out.println("静态块3");}public static void main(String[] args){Son s1 = new Son("张三");Son s2 = new Son("李四");Son s3 = new Son("王五");}
}

输出如下:

静态块1

静态块3

匿名构造块

构造方法

匿名构造块

构造方法

匿名构造块

构造方法

执行的顺序为:静态块 --> 匿名块 --> 构造方法

4 静态引入

如果我们需要频繁引用某一个类下的方法,比如 ​​java.lang.Math​​​ 类下相关的数据计算类,或者是用于进行单元测试的 ​​org.junit.Assert​​ 类下各种用于断言的方法,就可以采用静态引用,从而可以省去对前边类名的重复书写。

import static java.lang.Math.random;
import static org.junit.Assert.assertTrue;public class test {public static void main(String[] args) {double random = random(); //Math中的方法System.out.println(random);assertTrue(random > 0.3); //Assert中的方法new test().normalMethod();}//静态引入的方法,在普通方法中同样使用public void normalMethod(){double random = random();System.out.println(random);assertTrue(random > 0.7);}
}

通过静态引入的方法,在普通方法和静态方法中,都可以使用。

相关文章:

Java中的 static

1 static 静态变量 1.1 静态变量的使用 static变量也称作静态变量,也叫做类变量 静态变量被所有的对象所共享,在内存中只有一个副本 当且仅当在类初次加载时会被初始化 静态变量属于类 通过类名就可以直接调用静态变量 也可以通过对象名.静态变量…...

基于Vision Transformer的图像去雾算法研究与实现(附源码)

基于Vision Transformer的图像去雾算法研究与实现 0. 服务器性能简单监控 \LOG_USE_CPU_MEMORY\文件夹下的use_memory.py文件可以实时输出CPU使用率以及内存使用率,配合nvidia-smi监控GPU使用率 可以了解服务器性能是否足够;运行时在哪一步使用率突然…...

服务器相关常用的命令

cshell语法 https://www.doc88.com/p-4985161471426.html domainname命令 1)查看当前系统域名 domainname2)设置并查看当前系统域名 domainname example.com3)显示主机ip地址 domainname -Iwhich命令 which 系统命令在 PATH 变量指定的…...

今天是国际数学日,既是爱因斯坦的生日又是霍金的忌日

目录 一、库函数计算 π 二、近似值计算 π 三、无穷级数计算 π 四、割圆术计算 π 五、蒙特卡罗法计算 π 六、计算800位精确值 从2020年开始,每年的3月14日又被定​为国际数学日​,是2019年11月26日​联合国教科文组织​第四十届大会上正式宣布…...

Qt Quick - StackLayout 堆布局

StackLayout 堆布局一、概述二、attached 属性三、例子1. 按钮切换 StackLayout 页面一、概述 StackLayout 其实就是说,在同一个时刻里面,只有一个页面是展示出来的,类似QStackWidget 的功能,主要就是切换界面的功能。这个类型我…...

C/C++网络编程笔记Socket

https://www.bilibili.com/video/BV11Z4y157RY/?vd_sourced0030c72c95e04a14c5614c1c0e6159b上面链接是B站的博主教程,源代码来自上面视频,侵删,这里只是做笔记,以供复习和分享。上一篇博客我记录了配置环境并且跑通了&#xff0…...

RK3568平台开发系列讲解(网络篇)什么是Socket套接字

🚀返回专栏总目录 文章目录 一、什么是socket ?二、socket 理解为电话机三、socket 的发展历史四、套接字地址格式4.1、通用套接字地址格式4.2、IPv4 套接字格式地址4.3、IPv6 套接字地址格式4.4、几种套接字地址格式比较沉淀、分享、成长,让自己和他人都能有所收获!😄 …...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题——渗透测试解析(详细)

渗透测试 任务环境说明: 服务器场景:Server9服务器场景操作系统:未知(关闭连接)系统用户名:administrator密码:123456通过本地PC中渗透测试平台Kali对靶机场景进行系统服务及版本扫描渗透测试,以xml格式向指定文件输出信息(使用工具Nmap),将以xml格式向指定文件输出…...

尚融宝03-mybatis-plus基本CRUD和常用注解

目录 一、通用Mapper 1、Create 2、Retrieve 3、Update 4、Delete 二、通用Service 1、创建Service接口 2、创建Service实现类 3、创建测试类 4、测试记录数 5、测试批量插入 三、自定义Mapper 1、接口方法定义 2、创建xml文件 3、测试条件查询 四、自定义Serv…...

vue多行显示文字展开

这几天项目里面有一个需求,多行需要进行展开文字,类似实现这种效果 难点就在于页面布局 一开始就跟无头苍蝇似的,到处百度 ,后面发现网上的都不适合自己,最终想到了解决方案 下面是思路: 需求是超过3行&a…...

SpringBoot:SpringBoot 的底层运行原理解析

声明原文出处:狂神说 文章目录1. pom.xml1 . 父依赖2 . 启动器 spring-boot-starter2. 主启动类的注解1. 默认的主启动类2. SpringBootApplication3. ComponentScan4. SpringBootConfiguration5. SpringBootApplication 注解6. spring.factories7. 结论8. 简单图解3…...

哪些场景会产生OOM?怎么解决?

文章目录 堆内存溢出方法区(运行时常量池)和元空间溢出直接内存溢出栈内存溢出什么时候会抛出OutOfMemery异常呢?初看好像挺简单的,其实深究起来考察的是对整个JVM的了解,而这个问题从网上可以翻到一些乱七八糟的答案,其实在总结下来基本上4个场景可以概括下来。 堆内存溢出…...

金三银四、金九银十 面试宝典 Spring、MyBatis、SpringMVC面试题 超级无敌全的面试题汇总(超万字的面试题,让你的SSM框架无可挑剔)

Spring、MyBatis、SpringMVC 框架 - 面试宝典 又到了 金三银四、金九银十 的时候了,是时候收藏一波面试题了,面试题可以不学,但不能没有!🥁🥁🥁 一个合格的 计算机打工人 ,收藏夹里…...

JAVA开发(Spring框架详解)

javaweb项目几乎已经离不开spring框架了,spring 是一个典型的分层架构框架,它包含一系列的功能并被分为多个功能模块,springboot对spring框架又做了一层封装,以至于很多人对原来的spring框架越来越不了解。 要谈Spring的历史&…...

自学大数据第八天~HDFS命令(二)

嗨喽,好久不见,最近抽空复习了一下hadoop,书读百遍,其意自现这句话还真是; 继续学习HDFS常用命令 改变文件 拥有者~chown hdfs dfs -chown -R hadoop /user/hadoop使用 -R 将使改变在目录结构下递归进行。命令的使用者必须是超级用户。 改变文件所属组-chgrp hdfs dfs -chgr…...

贪心算法(几种常规样例)

贪心算法(几种常规样例) 贪心算法,指在对问题进行求解的时候,总是做出当前看来是最好的选择。也就是说不从整体上最优上考虑,算法得到的结果是某种意义上的局部最优解 文章目录贪心算法(几种常规样例&…...

【数据结构】基础知识总结

系列综述: 💞目的:本系列是个人整理为了数据结构复习用的,由于牛客刷题发现数据结构方面和王道数据结构的题目非常像,甚至很多都是王道中的,所以将基础知识进行了整理,后续会将牛客刷题的错题一…...

宣布推出 .NET 社区工具包 8.1!

我们很高兴地宣布 .NET Community Toolkit 8.1 版正式发布!这个新版本包括呼声很高的新功能、bug 修复和对 MVVM 工具包源代码生成器的大量性能改进,使开发人员在使用它们时的用户体验比以往更好! 就像在我们之前的版本中一样,我…...

ChatGPT解开了我一直以来对自动化测试的疑惑

目录 前言 与ChatGPT的对话 什么是自动化测试,我该如何做到自动化测试,或者说需要借助什么工具可以做到自动化测试? 自动化测试如何确保数据的准确性 自动化测试是怎么去验证数据的 如何通过断言验证数据 自动化测试有哪些验证工具可以验证数据 总结 前言…...

十大经典排序算法(上)

目录 1.1冒泡排序 1. 算法步骤 3.什么时候最快 4. 什么时候最慢 5.代码实现 1.2选择排序 1. 算法步骤 2. 动图演示 3.代码实现 1.3 插入排序 1. 算法步骤 2. 动图演示 3. 算法实现 1.4 希尔排序 1. 算法步骤 2. 动图演示 3.代码实现 1.5 归并排序 1. 算法步骤 2…...

如何从 MySQL 读取 100w 数据进行处理

文章目录 场景常规查询流式查询MyBatis 流式查询接口非流式查询和流式查询区别游标查询场景 大数据量操作的场景大致如下: 1、 数据迁移; 2、 数据导出; 3、 批量处理数据; 在实际工作中当指定查询数据过大时,我们一般使用分页查询的方式一页一页的将数据放到内存处理。…...

【数据降维-第2篇】核主成分分析(KPCA)快速理解,及MATLAB实现

一篇介绍了PCA算法的快速理解和应用,本章讲一下KPCA。KPCA方法与PCA方法一样,是有着扎实的理论基础的,相关理论在论文上以及网络上可以找到大量的材料,所以这篇文章还是聚焦在方法的快速理解以及应用上,此外还会对同学…...

Python+ChatGPT实战之进行游戏运营数据分析

文章目录一、数据二、目标三、解决方案1. DAU2. 用户等级分布3. 付费率4. 收入情况5. 付费用户的ARPU最近ChatGPT蛮火的,今天试着让ta写了一篇数据分析实战案例,大家来评价一下!一、数据 您的团队已经为您提供了一些游戏数据,包括…...

Java每日一练(20230313)

目录 1. 字符串统计 ★ 2. 单词反转 ★★ 3. 俄罗斯套娃信封问题 ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 专栏 Java 每日一练 专栏 1. 字符串统计 编写一个程序,对于输入的一段英语文本,可以统计&#…...

国内ChatGPT日趋成熟后,可以优先解决的几个日常小问题

现在ChatGPT的发展可谓如日中天,国内很多大的公司例如百度、京东等也开始拥抱新技术,推出自己的应用场景,但可以想象到的是,他们必定利用这个新技术在巩固自己的现有应用场景,比如某些客服,你都不用想&…...

业内人士真心话,软件测试是没有前途的,我慌了......

我在测试行业爬模滚打7年,从点点点的功能测试到现在成为高级测试,工资也翻了几倍。个人觉得,测试的前景并不差,只要自己肯努力。 我刚出来的时候是在鹅厂做外包的功能测试,天天点点点,很悠闲,点…...

哈佛与冯诺依曼结构

1. 下图是典型的冯诺依曼结构 2. CPU分为三部分:ALU运算单元,CU控制单元,寄存器组。 3. 分析51单片机为何能使用汇编进行编程 51指令集(Instruction Set)是单片机CPU能够执行的所有指令的集合。在编写51单片机程序时&a…...

传输安全HTTPS

为什么要有 HTTPS 为什么要有 HTTPS?简单的回答是:“因为 HTTP 不安全”。HTTP 怎么不安全呢? 通信的消息会被窃取,无法保证机密性(保密性):由于 HTTP 是 “明文” 传输,整个通信过…...

Docker--(六)--Docker资源限制

前言系统压力测试Cpu资源限制Mem资源限制IO 资源限制【扩展】 1.前言 在使用 Docker 运行容器时,一台主机上可能会运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU、内存和磁盘资源。如果不对容器使用的资源进行限制&#x…...

消息队列总结及案例

文章目录python内置队列先进先出的队列Queue分布式队列rabbitmqrocketmqredis list 队列python内置队列 标准库queue提供Queue队列、LifoQueue栈、PriorityQueue优先级队列用于单机的生产者、消费者缓冲队列; 生产者,生产消息的进程或线程&#xff1b…...

做推广能提高网站权重么/深圳seo优化

在上一篇文章里面我们编译了在X86体系的最简单的Linux下的入门驱动Hello,现在我们开始开发在ARM板上的最简单的Hello的驱动: 开发环境:虚拟机上的Linux(Fedora)ARM(11)友善之臂的光盘带的linux内核linux-2.6.36 开发步骤: 1.先安装…...

电商网站成功的营销策略/品牌推广的方式有哪些

PPT是大家广泛使用的一个幻灯片制作工具。作为微软office办公套件的其中一个重要组件,PPT一直在不断的版本更新。从XP、2003、2007、2010、2010、2016版本到去年发布的2019版本,每次版本的更新都给我们带来了许多的惊喜。作为最新版的PPT2019又给我们带来…...

帮别人做诈骗网站技术/网站seo运营培训机构

目录HarmonyOS实战前言7日天气的布局卡片的事件定义获取基础的天气数据解析Json数据卡片初始化刷新天气功能实现卡片界面的样式网络请求定义权限HarmonyOS实战 前言 对于日常的天气类App来说,我们用户应该很少与其进行交互,毕竟都是一些简单的数据&…...

成人高考考试时间/seo优化网站教程百度

使用merge merge into 表名t1using (select 数据数据 字段1,数据数据 字段2 from dual) t2on(t1.字段1 t2.字段1)when matched thenupdate set t1.字段2t2.字段2when not matched theninsert values (t2.字段1, t2.字段2) 转载于:https://www.cnblogs.com/pangkang/p/8342258.…...

专业做网站排名的人/新乡网站推广

总结:实例。。 这里不加super("aaa",32); 运行:父类和子类的姓名,年龄是一样的。那这个super为什么没效果呢? 显示:class:Ji姓名是 小红年龄是:20课程编号是:1我叫:浪浪,年…...

优质做网站价格/线上培训

Java基础语法 今日内容介绍 u 方法 第1章 方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。 如:小明同学在路边准备坐车来学校学习。这就面临着一件事情(坐车到学校这件事情)需要…...