static的用法和静态代码块

从打印攻击到视频重放:手把手用OULU-NPU训练你的第一个活体检测模型 本文详细介绍了如何使用OULU-NPU数据集训练活体检测模型,以应对打印攻击和视频重放等安全威胁。通过PyTorch框架,从环境准备、数据加载、预处理到模型架构设计,手把手教你构建一个高效的双流网络,结合CNN和LSTM技术,提升模型在多种攻击场景下的检测准确率。 阅读详情

静态:static。
用法:是一个修饰符,用于修饰成员(成员变量,成员函数).
当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,
还可以直接被类名调用。类名.静态成员。

static特点:
1,随着类的加载而加载。
   也就说:静态会随着类的消失而消失。说明它的生命周期最长。


2,优先于的对象存在
明确一点:静态是先存在。对象是后存在的。
3,被所有对象所共享
4,可以直接被类名所调用。


实例变量和类变量的区别:
1,存放位置。
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2,生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。



静态使用注意事项:
1,静态方法只能访问静态成员。
非静态方法既可以访问静态也可以访问非静态。
2,静态方法中不可以定义this,super关键字。
因为静态优先于对象存在。所以静态方法中不可以出现this。
3,主函数是静态的。


静态有利有弊
利处:对对象的共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份。
可以直接被类名调用。
弊端:生命周期过长。

 访问出现局限性。(静态虽好,只能访问静态。)

class Person
{
	String name;//成员变量,实例变量。
	static String country = "CN";//静态的成员变量,类变量。
	public static void show()
	{
		System.out.println("::::");
		this.haha();
	}
	public void haha()
	{}
}

class  StaticDemo
{
	public static void main(String[] args) 
	{
		Person p = new Person();
		//p.name = "zhangsan";
		//p.show();

		//System.out.println(p.country);

		//System.out.println(Person.country);

		Person.show();
	}
}


一、什么使用静态?
要从两方面下手:因为静态修饰的内容有成员变量和函数。


二、什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰。对象中的特有数据要定义成非静态存在于堆内存中。


三、什么时候定义静态函数呢?
当功能内部没有访问到肺静态数据(对象的特有数据),那么该功能可以定义成静态的。

class Person{
	String name;//成员变量,实例变量。
	static String country = "CN";//静态的成员变量,类变量。
	public static void show(){
		System.out.println("::::");
		this.haha();
	}
	public void haha()
	{}
}

class  StaticDemo{
	public static void main(String[] args) {
		Person p = new Person();
		//p.name = "zhangsan";
		//p.show();

		//System.out.println(p.country);

		//System.out.println(Person.country);

		Person.show();
	}
}

静态代码块。
格式:
static
{
静态代码块中的执行语句。
}


特点:随着类的加载而执行,只执行一次,并优先于主函数。用于给类进行初始化的。


class StaticCode
{
	int num = 9;
	StaticCode()
	{
		System.out.println("b");
	}

	static
	{
		System.out.println("a");
	}
	{
		System.out.println("c"+this.num);
	}

	StaticCode(int x)
	{
		System.out.println("d");
	}
	public static void show()
	{
		System.out.println("show run");
	}
}

class StaticCodeDemo 
{
	static
	{
		//System.out.println("b");
	}
	public static void main(String[] args) 
	{
		new StaticCode(4);//a c d 
		//new StaticCode();
		//new StaticCode();
		//System.out.println("over");
		//StaticCode.show();
		//StaticCode s = null;
		//s = new StaticCode();

		//StaticCode.show();


	}
	static
	{
		///System.out.println("c");
	}
}

对象的初始化过程

Person p = new Person ("zhangsan",20);

这句话都做了什么事情?

1,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中。
2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。
3,在堆内存中开辟空间,分配内存地址。
4,在堆内存中建立对象的特有属性。并进行默认初始化。
5,对属性进行显示初始化。
6,对对象进行构造代码块初始化。
7,对对象进行对应的构造函数初始化。
8,将内存地址付给栈内存中的p变量。





2026华为OD机试(JavaScript)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ 华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,JavaScript实现。 阅读详情

相关推荐

Ubuntu下安装Hive3.1.2教程(附MySQL安装方法及安装包)

文章目录前言一、安装Hive1. 下载压缩包并解压2. 安装Hive3. 配置环境变量4. 修改配置文件二、MySQL安装与配置1. 安装MySQL2. 安装MySQL jdbc包3. 为Hive创建MySQL账号三、验证Hive安装及错误处理1. 启动Hadoop2. 启动hive3. 运行Hive实例总结 前言 Hive 的安装需要建立在 Hadoop 的之上(类似于Hbase),关于 Hadoop 的单机安装以及伪分布式安装可以参考作者的另两篇博客: Ubuntu下单机安装Hadoop详细教程(附

程序必须为人类阅读而编写,并且仅仅碰巧可以让机器执行 1万+

static应用知识:代码块

static应用知识:代码块

南辞的博客 5215

CCD 技术介绍(基于innovus引擎CCOpt)

CCD:全称是,并行优化clock和data path。CCOpt:全称是Clock的timing分为两种模式,和。preCTS并没有clock,因此需要建立一个,从clock端口到寄存器CK端的来自sdc中的设置;postCTSupdateIO latency,clock就会自动的转换成propagatedclock,这时就是实际时钟互连线网络的delay。在实际设计中,clock起始于ideal。

m0_61003348的博客 8978

静态代码块

是在类被加载时执行的一段代码,它在类的生命周期中只会执行一次。静态代码块使用关键字 "static" 声明,并被包含在类的声明中。静态代码块常用于在类加载时进行一些初始化操作,例如初始化静态变量或执行静态方法。它们的执行顺序是在类被加载时自上而下执行。静态代码块在类加载时首先被执行,然后才是主方法。这意味着静态代码块可以在类加载之前进行一些必要的初始化工作。静态代码块只会执行一次,即使类被实例化多次,静态代码块也只会在类加载时执行一次。

a402498234的博客 3273

YOLO11实战 第001期-基于yolo11的CrowdHuman密集行人目标检测实战文档(yolo格式数据免费获取)

1.数据阶段在拥挤/遮挡场景下,使用crowdhuman数据集重训练后的yolo11,效果表现较好。crowdhuman数据集标签如下,有Head BBox、Visible BBox、Full BBox。如下图显示:数据集介绍CrowdHuman数据集是旷世发布的用于行人检测的数据集,图片数据大多来自于google搜索。CrowdHuman数据集数据量比较大,15000张,5000张,验证集4370张。训练集和验证集中共有470K个实例,约每张图片包含23个人,同时存在各种各样的遮挡。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 2162

STM32平台下FreeModbus TCP协议栈集成指南

深入讲解在STM32平台如何移植和配置freemodbus协议栈,实现TCP通信功能。结合嵌入式开发细节,帮助开发者快速掌握freemodbus的应用与调试技巧。

weixin_36001279的博客 1144

【Java|基础篇】详解static关键字和代码块

本文主要讲解static关键字以及代码块的执行顺序以及各部分代码块的作用.static关键字可以用来定义类级别的变量、方法和代码块,通过类名直接访问静态成员变量和静态成员方法. 而代码块的执行顺序以及各部分代码块的作用也很重要.希望这篇文章能帮到你!专栏:《从零开始的Java学习之旅》在不断更新中,欢迎订阅!“愿与君共勉,携手共进!

云泽野の编程日记 2191

基于Simulink的光伏-储能-柴油机混合微网仿真

摘要:本文基于Simulink平台构建光伏-储能-柴油机混合微网仿真模型,实现可再生能源与备用电源的协同控制。通过光伏优先、储能调节、柴油机兜底的规则控制策略,在24小时仿真中验证了系统在晴天、阴天和夜间三种典型工况下的运行性能。模型采用PVArray模块模拟光伏发电,Simscape电气库构建储能系统,自定义MATLAB函数实现柴油机启停逻辑和能量管理。仿真结果显示系统功率平衡误差<5%,储能SOC维持在20%-80%,柴油机日均运行时间<4小时,满足设计指标。文章详细说明了建模步骤、参数设置

xiaoheshang_123的博客 69

static静态代码块

static静态代码块

qq_51302219的博客 2148

双重机器学习模型中解释变量是连续变量的代码,看到好多都是0/1变量,如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!    📌 特别说明: 文中部分技术问题来源于真实生产环境及网络公开案例,均经过精挑细选与系统化整理,并结合多位一线资深架构师和工程师多年实战经验沉淀,提

**My Coding Family** 854

实时数字人SoulX-FlashHead 音视频不对齐解决

【代码】实时数字人SoulX-FlashHead 音视频不对齐解决。

jacke121的专栏 201

代码块(static代码块)

(1)代码块 又称为 初始化块,属于类中的成员(是类的一部分),类似于方法,将逻辑语句封装在方法体中,通过 {} 包围起来。(2)但和方法不同,没有方法名、返回、参数,只有方法体。而且不用通过对象或类 显式调用,而是在加载类时,或创建对象时 隐式调用。

m0_75013084的博客 538

【C#学习记录】如何让界面控件实现自适应布局(Winform)

小伙伴们大家好,我是雷工!在软件界面设计中,客户常常要求设计的界面可以随意缩放,缩放过程中,界面中的按钮等控件也会随着窗体变大缩小自动调整显示位置和尺寸大小。在C#的Winform窗体中如何实现这个效果,下面我们一起学习下。

做有价值的事,积累有价值的笔记! 1万+

java中静态代码块的用法 static用法详解和static静态导入

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行...

dawei5565的博客 166

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java中静态代码块的用法和static用法详解

(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执

BeautyOfJava的专栏 879

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java中静态代码块的用法和static用法(转)

(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块...

diaosu3231的博客 104

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

static的用法(二):静态代码块和非静态代码块

静态代码块在Java虚拟机加载类的时候就会执行,而且仅执行一次。 非静态代码块,在创建对象的时候(即new一个对象的时候)执行,每次创建对象都会执行一次。 静态代码块和非静态代码块的异同点: (1)相同点: 都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值。 (2)不同点:  静态代码块只在虚拟机加载类的时候执行一次,...

mmayanshuo的博客 416

Java中static关键字的基本含义和相关用法、内存图及静态代码块

基本含义和相关用法 用static修饰的内容,在类当中只保存一份,所有本类对象共享同一份。一旦使用了static关键字,那么该内容不再属于对象自己,而是属于类的,所以但凡是本类的对象,都共享同一份。 /** * @author : sunkepeng E-mail:sunkepengouc@163.com * @date : 2020/7/21 9:14 */ public class Student { private int id; private String nam

kepengs的博客 273

java静态代码块和静态方法的区别和调用顺序、static用法

今天突然有疑问Java类中静态方法和static代码块哪个先执行,所以查了下资料,以下是网上看到的比较详细的一篇博文,感谢博主。 原文链接:http://blog.sina.com.cn/s/blog_afddb8ff0101aqs9.html 原文如下: 静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性

天地为炉 1375

java基础--java静态代码块和静态方法的区别、static用法

转载自: http://blog.sina.com.cn/s/blog_afddb8ff0101aqs9.html 静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化) 静态方法:需要在项目启动的时候就初始化,在不创建对象的情况下,这种代码是被动执行的(静态方法在类加载的时候 就已经

zjliwhf的博客 371

Zynq入门实战:从PS/PL架构到DDR4配置一次讲透

在嵌入式开发中,异构计算平台正在成为高性能与灵活性兼顾的关键选择。Zynq作为ARM处理器与FPGA可编程逻辑深度融合的代表,将PS(处理系统)与PL(可编程逻辑)集成于同一芯片,通过AXI总线实现高带宽、低延迟的数据交互。理解这种硬件架构,是掌握Vivado工具链、Block Design设计流程以及最小系统搭建的基础。工程实践中,PS侧运行软件生态,PL侧承担并行数据处理,两者的协同能高效覆盖视频图像、软件无线电与实时工业控制等典型场景。而DDR4参数配置作为系统稳定运行的关键环节,直接关系到内存带宽与

weixin_34054866的博客 531

java静态方法的区别_java基础--java静态代码块和静态方法的区别、static用法

静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化)静态方法:需要在项目启动的时候就初始化,在不创建对象的情况下,这种代码是被动执行的(静态方法在类加载的时候 就已经加载 可以用类名直接调用)两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.使用类的静态方法时,注意:a、在静态方...

weixin_39747399的博客 157

Java面试-static 关键字详解:静态变量、方法、代码块

static成员是类级别的,所有实例共享同一份数据或行为。场景推荐使用 static原因工具类方法✅无需实例化,直接调用全局配置、常量✅共享,节省内存计数器、ID生成器✅所有实例共享状态单例模式✅用静态变量保存唯一实例内部类不依赖外部类✅用静态内部类多线程共享数据⚠️需配合同步机制保存大量数据的缓存❌有内存泄漏风险与对象状态相关的字段❌应为实例变量工具用 static,配置用 static,计数用 static,但别滥用,小心内存和线程安全!

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

java static int a_java中static作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任...

weixin_32365089的博客 3259

Java进阶之static修饰变量/方法/代码块:用法实例(五十四)

本篇目的:Java进阶之static修饰变量/方法/代码块:用法实例基本概念static修饰符用于声明静态变量、静态方法和静态代码块。静态变量和方法属于类本身,而不是类的某个对象。功能静态变量:属于类,所有对象共享。静态方法:可以直接通过类名调用,无需创建对象。静态代码块:用于类的初始化,执行一次。使用限制静态变量和方法不能直接访问非静态成员。静态代码块在类加载时执行,不能包含参数。性能特性静态变量和方法节省内存,因为它们不依赖于对象实例。静态代码块用于初始化类,确保类的正确加载。

Android系统攻城狮 737
上一篇: private 与构造函数
下一篇: public static void main(String[] args)
Li_Pine
博客等级 码龄12年 17粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值