java中静态代码块、静态方法、static关键字详解

六自由度机械臂运动学分析及其轨迹规划 六自由度机械臂轨迹规划 通过对比三次多项式插值法与五次多项式插值法的效果,选取后者对机械臂进行轨迹规划,将运动学解导入Matlab Robotics Toolbox仿真,得到各关节角度、速度和加速度与时间关系曲线。 三次多项式插值法 三次多项式有4个待定系数,可同时对起始点和目标点的角度和角速度给出约束条件。 数学公式 MATLAB代码 五次多项式插值法 五次多项式有6个待定系数,可同时对起始点和... 阅读详情

最近在准备面试,复习java基础知识,对java中和static关键字相关的静态方法、静态代码块、非静态代码块、静态成员变量的用法进行了详细的总结。

1. 静态成员变量

声明为static关键词修饰的变量叫做静态成员变量,也叫作全局变量。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。



2. 静态代码块

static 代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。在静态方法里面只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。因为对于非静态的方法和变量,需要先创建类的实例对象后方可使用,而静态方法在使用前不用创建任何对象。

声明方式:

static
{
       //do something
}

3. 非静态代码块

非静态代码块的执行顺序在构造方法执行之前,类每new一次都会执行。

声明方式:不加任何修饰符

{
      //do something
}

4. 静态方法

静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法 (就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为类所属的实例变量和实例方法需要对象创建之后才会存在。

声明方式:

public static void dosomething()
{
     //do something
}

接下来看看下面的例子:

package staticblock;

public class Parent
{
	//静态代码块,只在类装载的时候执行
	static
	{
		System.out.println("parent static block");
	}
	
	//非静态代码块,每new一次都会执行
	{
		System.out.println("parent non-static block");
	}
	
	public  Parent()
	{
		System.out.println("parent constractor block");
	}
}


package staticblock;

public class Child extends Parent
{
	//子类静态代码块
	static
	{
		System.out.println("child static block");
	}
	
	//子类非静态代码块
	{
		System.out.println("child non-static block");
	}
	
	//子类构造方法
	public Child()
	{
		System.out.println("child constractor block");
	}
	
	//静态方法需要在调用 的时候才执行
	public  static void get()
	{
		System.out.println("this is a static method!");
	}
	
	public static void main(String[] args)
	{
		new Child();
		System.out.println("------------------");
		new Child();
		Child.get();
	}
}

执行之后的输出结果:

parent static block
child static block
parent non-static block
parent constractor block
child non-static block
child constractor block
------------------
parent non-static block
parent constractor block
child non-static block
child constractor block
this is a static method!

我们看到静态代码块在执行中只执行了1次,而非静态代码块执行了两次,静态方法需要调用才会执行。执行顺序是先执行父类的静态代码块,然后执行子类的静态代码块;然后执行父类的非静态代码块,再执行父类的构造方法;之后再执行子类的非静态代码块,再执行子类的构造方法。静态代码块》非静态代码块》构造方法。







012、乘累加单元(MAC):NPU中最基本的计算单元 本文深入剖析了神经网络处理器(NPU)中的核心计算单元——乘累加单元(MAC)。作者通过实际调试案例揭示了MAC单元设计中的关键问题:定点数格式对齐、累加器位宽陷阱、流水线优化和多MAC同步方案。重点讨论了INT8量化中的边界条件处理、偏置项截断风险以及零值检测等实战经验,并提供了三点实用建议:建立精确的C模型、参考RISC-V P扩展指令集、仔细审查芯片规格书。文章强调硬件加速的实际瓶颈往往在于数据搬运而非计算单元本身,为NPU开发者提供了宝贵的工程实践参考。 阅读详情

相关推荐

ICC2 实战秘籍:create_workspace 命令全解析

必选项:工作区名称,这可是创建工作区的 “身份证”,必不可少。技术数据选项匹配:优先考虑用 -technology 直接加载技术文件,这是获取最新、最准确技术数据的首选路径;要是已经有合适的技术库了,那 -use_technology_lib 引用现有技术库也能快速上手。精度设置优先规则:技术文件自动配置排在第一位,能自动适配就别手动操心;要是自动配置不理想,那就显式指定 scale_factor;实在没要求,就用默认配置,但得清楚它的精度限制。

weixin_50820814的博客 1124

Java中静态代码块、实例代码块和静态方法的执行顺序详解(Main方法,构造方法)

文章示例清晰地展示了静态代码块、静态方法和实例代码块的执行顺序。在Java编程中,理解静态代码块、实例代码块和静态方法的执行顺序对于编写高效和可靠的代码至关重要。实例代码块在每次创建类的实例时执行。它们在构造方法之前执行,但在任何静态代码块之后,因为实例的创建总是在类加载之后。静态代码块在类第一次被加载到JVM时执行,仅执行一次。子类继承父类,则父类和子类中的静态代码块、实例代码块和静态方法的执行顺序。构造方法在实例代码块之后执行,每次创建类的新实例时),它将在静态代码块之后执行。

努力上进!!加油加油!! 3872

从零构建2.4G无线通信系统:MSPM0G3507与NRF24L01的深度协同设计

本文详细介绍了基于MSPM0G3507微控制器与NRF24L01射频模块构建2.4G无线通信系统的深度协同设计方案。内容涵盖系统架构、SPI通信优化、功耗管理、抗干扰机制及中断/DMA高效利用,为工业物联网应用提供高可靠、低功耗的无线传输解决方案。

rice5的博客 823

java静态代码块、静态方法、静态变量、构造代码块、普通代码块

一、静态代码块   1.在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块: public class CodeBlock{ static{ System.out.println("静态代码块"); } }   2.执行时机     静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块,就会按照书写的顺序执行。   3.静态代码块的作用:     一般情况下,

az44yao的专栏 523

HAL库移植实战:解决‘HAL_StatusTypeDef‘未定义报错的3个关键步骤

本文针对STM32开发中从标准库向HAL库移植时常见的'HAL_StatusTypeDef'未定义报错,提供了三个关键解决步骤:首先确保正确包含头文件入口,其次检查并配置模块使能宏,最后注意避免与标准库的同名结构体混用。文章通过实战案例解析了HAL库的模块化设计理念,帮助开发者高效解决混合编程中的编译问题。

book8的博客 208

静态代码块

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

a402498234的博客 3274

Unity卡牌游戏UI框架:数据驱动与模块化设计实践

在Unity游戏开发中,UI系统是连接玩家与游戏逻辑的关键桥梁,其核心在于实现数据与表现的高效同步。数据驱动设计通过分离数据模型、逻辑状态与视图表现,利用观察者模式自动响应状态变化,确保了代码的清晰与可维护性。这种架构显著提升了开发效率,尤其在需要复杂状态管理和实时反馈的交互场景中,如卡牌游戏的拖拽、布局与动画系统。基于模块化思想,开发者可以将卡牌视图、布局管理、区域控制等组件像积木一样组合,快速构建出动态的手牌弧形布局、战场区域管理等特色功能。通过集成对象池、图集优化等性能方案,还能有效管理绘制调用与网格

weixin_34262482的博客 453

static应用知识:代码块

static应用知识:代码块

南辞的博客 5215

【WRF数据准备】土地利用数据-MODIS MCD12Q1数据下载及制备

【WRF数据准备】MODIS静态地理数据下载及制备

WW、forever的博客 3413

实用指南:制作通用的INCA和CANape兼容A2L文件

A2L(ASAM MCD-2 Measurement and Calibration Data)文件是描述ECU(电子控制单元)测量和校准数据的标准文件格式。在标定工作中,A2L文件扮演着极为重要的角色,它定义了测量通道、校准参数等关键信息,为工程师提供了统一的描述方式。INCA和CANape是两种常见的汽车电子系统标定工具,分别由ETAS和Vector公司开发。它们在汽车电子系统的开发和调试过程中发挥着重要作用,提供了丰富的标定功能和用户友好的界面。

一直在水些技术小文 2924

【JavaSE专栏60】静态代码块,Java类加载过程中执行的一段代码

本文讲解了 Java 中静态代码块概念及语法,并给出了样例代码。静态代码块是 Java 类在加载过程中执行的一段代码。

Designer 小郑的技术博客 2305

orange软件:入门使用

orange做数据分析契机实验手册目录orange软件部分界面展示小试牛刀:数据导入和展示小试牛刀:散点图绘制总结 契机 今天在上大数据时代实验课,作为一名软件工程专业的大三学生,在上这节公选课之前就决定这节课做完这个学期所有的实验报告,可以说“有亿点”不屑;尤其当老师说Python很麻烦的时候,我更是震惊了,因为我接触过这么多编程语言,Python真的很友好了,很傻瓜,但是当老师打开实验手册的时候,我真香了!!!下面先来看看手册的目录: 实验手册目录 为什么会真香呢,因为目录里这些有好多机器学习算法!

weixin_45880844的博客 1万+

Java中的static关键字:静态变量,静态方法,静态代码块

static关键字:修饰符 功能: 它可以修饰变量,修饰方法,修饰代码块,修饰内部类 目录 static关键字:修饰符 功能: 1.static修饰变量:静态变量 2.static修饰方法:静态方法 3.static修饰构造代码块:静态构造代码块 4.总结 1.static修饰变量:静态变量 由static修饰的变量叫做静态变量,又可以称之为类变量,它与类同级;静态变量会随着类的加载而被加载到方法区的静态区,同时,系统会默认给静态变量赋予系统默认的初始值(不同的数...

马永斌 482

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JAVA中的static关键字:静态变量,静态方法,静态代码块和单例模式

JAVA中的static关键字:静态变量,静态方法,静态代码块和单例模式 目录 JAVA中的static关键字:静态变量,静态方法,静态代码块和单例模式 1、静态变量 2、静态方法 3、静态代码块 4、单例模式 5、完整代码 6、返回结果: 1、静态变量 有时候,我们希望某些特定数据在内存中只有一份,而且能够被一类的所有实例对象所共享。这种成员数据就称为类的静态变量(关键...

LOVE2FY的博客 1008

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

3.7 Java中Static关键字全解(静态属性、静态方法、静态代码块)

静态属性:类级别的属性,所有对象共享。静态方法:类级别的方法,可以通过类名直接调用。静态代码块:在类加载时执行的代码块,用于初始化静态属性。

Argonaut_的博客 740

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java中静态代码块、静态方法、static关键字详解

本文对java中和static关键字相关的静态方法、静态代码块、非静态代码块、静态成员变量的用法进行了详细的总结。1. 静态成员变量声明为static关键词修饰的变量叫做静态成员变量,也叫作全局变量。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们。因此,st...

玩转程序的博客 394

【Java基础教程】(十一)面向对象篇 · 第五讲:透彻讲解Java中的static关键字及代码块——静态属性、静态方法,普通代码块、构造块、静态块的使用~

本文详细介绍了Java中的static关键字以及代码块的使用。通过学习static关键字,我们了解到它可以用于定义静态属性和静态方法。静态属性是类级别的变量,在整个类中只有一份副本,并且被所有实例对象所共享。静态方法则是类级别的方法,可以通过类名直接调用,而无需创建对象实例。 同时,我们也探索了代码块的不同类型:普通代码块、构造块和静态块。普通代码块用于在方法中限定变量的作用域,构造块在创建对象时执行,用于初始化对象的特定属性,而静态块在类加载时执行,常用于初始化静态成员和执行其他预处理操作。

Technology changes the world of life 2462

【Java 基础】static 关键字彻底搞懂|静态变量、静态方法、静态代码块

本文讲解 Java 中 static 关键字的核心用法:静态变量、静态方法、静态代码块与静态内部类。static 修饰的资源属于类,所有对象共享同一份数据,在类加载阶段初始化。文章重点对比静态与实例成员的访问规则,分析常见报错原因,并给出 static 常量定义、工具类方法编写和避免内存泄漏的开发原则。

2301_79964641的博客 347

JAVA中static关键字的用法------静态变量、静态方法、静态类、静态代码块、静态导包

JAVA中static关键字的常见用法 1. 静态变量 变量: 成员变量(全局变量) 1. 独立于方法之外的变量 2. 存放在全局内存中,线程共享,静态变量存放在方法区的静态区,实例变量存放在java堆内存中 静态变量(类成员变量) 通过类名访问;随着类的加载和回收创建和释放;先于对象存在; 实例变量 局部变量 1. 在方法中声明的变量,方法内有效 2. 存放在java虚拟机栈中,线程私有 2. 静态方法 1. 在类加载的时候创建 2. 静态方法必

1004 261

Java中的static关键字---静态变量---静态方法---静态代码块

static(静态) 1.概念 关键字,修饰符—>变量、方法、代码块、内部类 2.静态变量 静态变量随着类的加载(方法区的静态常量池)而加载到方法区的静态区,与类同级也叫类变量,通过类名.形式来调用静态变量也可以通过对象来调用静态变量。存储在方法区静态区时会默认给静态变量赋予系统默认初始值。类产生的对象共享同一个静态变量。看静态变量是否需要被所有的对象来共享,如果需要共享就设置成静态变量。 方法里可以定义静态变量? 静态变量与类同级,只有方法被调用时里面的内容才能出现,前后矛盾,不能定义。 publi

weixin_46883950的博客 320

【Java 基础】static 关键字全面解析,静态变量 / 静态方法 / 静态代码块一次性搞懂

本篇围绕Java static关键字展开详解,区分静态变量、静态方法、静态代码块与静态内部类。核心阐明静态资源归属类、对象共享的特性,梳理静态与实例成员互相访问的限制,搭配代码示例梳理易错点。结合开发规范与面试考点,同时衔接上一节final知识点,帮助快速理清静态相关高频面试问题。

2301_79964641的博客 224

Java—static关键字(静态变量、静态方法、静态代码块)

一、

小美灵儿的博客 517

在Java中,static关键字可以修饰的元素有哪些?说明静态变量(类变量)的特点和访问形式,说明静态方法(类方法)的特点、访问形式、作用和使用的注意事项,什么是静态代码块,静态代码块中的代码什么执行

static可以修饰的元素 属性、方法、代码块 1)静态变量特点 所有对象共享 在类被载入时创建,只要类存在,static变量就存在 两种方式访问: 直接访问:类名.属性; 实例化后访问:对象名.属性; 2)静态方法特点: 不需要实例化,可以直接访问 两种方式访问: 直接访问:类名.方法名(); 实例化后访问:对象名.方法名(); static方法的作用: 简化方法的使用; 便于访问静态属性; 注...

小覃的博客 3537

Java中static关键字(静态变量,静态方法,静态代码块)

在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。” 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是: 方便在没有创建对象的情况下来进行调用(方法/变量)。 很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,

Rocky balboa 909

Static关键字详解(静态成员变量,静态方法,代码块,静态代码块,单例模式)

静态成员(包括静态变量和方法)属于类级别的成员,它们不是任何对象的实例的一部分,而是与类本身相关联。如果有一些逻辑需要在创建类的实例时执行,而这些逻辑又不适合放在构造器中,可以使用匿名代码块来完成。如果有一些逻辑需要在类加载时执行,而不是在创建实例时执行,可以使用静态代码块。匿名代码块通常用于初始化类的实例成员变量,它会在每次创建类的实例对象时执行。静态代码块通常用于初始化类的静态成员变量,它会在类加载时执行,且只执行一次。匿名代码块中定义的变量只在代码块内部有效,不会影响到类中的其他成员变量。

gn78666的博客 1113
上一篇: solr5.5之从数据库中导入数据并建立索引
下一篇: Java内存区域详解
jcncsdn
博客等级 码龄12年 5粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值