java静态方法(static method)与实例方法(instance method)

expected static method 问题描述: 今天在测试代码时,把一个类中的方法修改成了static方法(系统没有重启,因为在配置文件里面设置的是实时编译),然后在其他方法中调用这个static方法时后台报错: java.lang.IncompatibleClassChangeError:expected static method GwkController.toTitle()......查看编译过后的文件,发现文件编译正常... 阅读详情

    被static修饰的方法为静态方法,之外的方法为实例方法。静态方法可直接使用类调用,实例方法必须创建实例后才能调用。java-doc

1. 示例

    @Test
    void staticMethodTest(){
        //直接调用静态方法
        Boss.work();

        //创建实例
        Boss boss = new Boss();
        //调用实例方法
        boss.programming();
    }



class Boss {
    String name;
    public void programming(){
        System.out.println("I am programming.");
    }

    public static void work(){
        System.out.println("I am working.");
    }
}

  执行结果

I am working.
I am programming.

2. 区别

   2.1 类外部调用

        静态方法可直接使用类调用,实例方法必须创建实例后才能调用。

  2.2 类内部调用

        实例方法内可以调用静态方法,但是静态方法只能调用静态方法,不能调用实例方法。

    //实例方法
    public void programming(){
        System.out.println("I am programming.");
        work(); // 静态方法
    }

    //静态方法
    public static void work(){
        System.out.println("I am working.");
        // 无法调用 programming() 实例方法
    }

    2.3 使用synchronized修饰

        被synchronized修饰时,若为静态方法,monitor则与该静态方法的所属类的Class对象相关联;若为实例方法,monitor则与调用该方法的实例对象关联。

    官方示例   



class Test {
    int count;
    synchronized void bump() {
        count++;
    }
    static int classCount;
    static synchronized void classBump() {
        classCount++;
    }
}


// 效果与下面一致

class BumpTest {
    int count;
    void bump() {
        synchronized (this) { count++; }
    }
    static int classCount;
    static void classBump() {
        try {
            synchronized (Class.forName("BumpTest")) {
                classCount++;
            }
        } catch (ClassNotFoundException e) {}
    }
}

 

【OpenVINO】OpenVINO C# API 常用 API 详解与演示 在本文中我们基于模型推理流程,演示了OpenVINO C# API使用方法,并和OpenVINO C++API进行了对比,展示了OpenVINO C# API与C++API在使用的区别,这也对使用过C++ API的开发者十分友好,上手会十分容易。在本文中我们只展示了基础的模型推理流程代码,也对各个API进行了测试,针对其他比较高级的API方法,我们后续会继续进行测试其他API方法,向各位开发者展示其用法。 阅读详情

相关推荐

Rokid眼镜高精度图像识别的五大工程破局点

图像识别是AR交互的基础能力,其核心在于将现实图像映射为可计算的数字特征,并通过几何建模解算空间姿态。在专用AR眼镜场景中,该过程面临光学畸变、传感器时序错位、低延迟跟踪与人因适配等复合挑战。尤其在工业现场,Rokid Max系列的鱼眼镜头畸变、IMU-视觉异步采样、窄FOV下快速眼动等物理约束,使传统基于AR Foundation或OpenCV的识别方案失效。本文聚焦真实部署中的关键瓶颈,涵盖实时反畸变纹理渲染、原生SDK直调优化、端侧轻量CNN模型(TinyImageNet-Rokid)、IMU-视觉紧

weixin_33681778的博客 697

实例方法(instance method)、类方法、构造方法(三)

实例方法(instance method)、类方法、构造方法(三)

m0_69234258的博客 3118

华为开发岗暑期实习笔试(2025年4月16日)

第一题怀疑测试样例不完整,贪心法不应该能够解决该题。第二题使用0-1BFS解决单源最短路径的问题,往往搭配双端队列实现。第三题是运用动态规划解决最大不重叠子区间个数的问题,难点在于满足3重判断规则,所需数据结构及相关操作较多。

csy031117的博客 3661

静态方法和实例方法

在Java中,方法分为静态方法和实例方法。静态方法是类级别的,而实例方法是对象级别的。下面列出了它们之间的一些不同点:静态方法的关键字是static。静态方法可以通过类名直接调用。

个人笔记总结 1686

手把手教你理解ARM SoC中的PPU:电源管理IP的配置与实战避坑指南

本文深入解析ARM SoC中的PPU(Power Policy Unit)电源管理IP,提供详细的配置指南与实战避坑技巧。从PPU基础架构、寄存器配置到与PCSM的协同工作,全面介绍如何优化电源管理策略,解决常见配置误区,并分享高级调试与性能优化方法,助力工程师提升低功耗SoC设计效率。

weixin_28693447的博客 479

新手必看:Infineon Memtools烧录配置全流程(附常见错误解决方案)

本文为嵌入式开发新手提供了Infineon AURIX开发环境搭建与Memtools烧录的全流程实战指南。详细解析了ADS、DAS和Memtools三大核心工具的角色与协同关系,并重点讲解了Memtools的图形界面配置步骤、烧录操作流程,以及针对“无法连接设备”、“编程失败”等常见错误的系统性排查与解决方案,帮助开发者快速上手并规避典型陷阱。

weixin_29189377的博客 634

Java静态方法

本篇文章介绍Java种静态方法定义和使用,以及方法重载和方法的递归

qq_69812634的博客 2258

2024年数字IC秋招-华为机试-数字芯片-实习笔试题

笔试题目:40个选择题A.综合时不同文件列表内的宏定义仅在本列表生效B.宏定义会覆盖,不需要单独undefC.仿真时出现宏定义冲突以最后一次值为准D.宏定义最好在各文件中随用随定义A.4/9B.4/6C.01D.0/6。

qq_42135020的博客 2891

Java基础(十):静态变量、静态方法、代码块、main方法

静态变量、静态方法、代码块、main方法

shendaiyan的博客 4312

【Python办公】剪贴板记录工具(记录文本 + 图片防重复)

本文介绍了一个用Python开发的剪贴板记录工具,能够自动记录复制过的文本和图片内容。该工具使用tkinter构建GUI界面,通过后台线程实时监控剪贴板变化,具有文本记录、图片保存(自动去重)功能。核心代码采用pyperclip访问剪贴板,PIL处理图片,hashlib计算图片哈希值实现去重。运行程序后,文本内容直接显示在界面,图片保存为PNG文件并记录路径。工具还提供清空历史记录功能,适合日常办公中需要追踪剪贴板历史的使用场景。

weixin_42636075的博客 238

ImportError: DLL load failed while importing _pydantic_core: 找不到指定的程序对应解决方案

本文主要介绍了ImportError: DLL load failed while importing _pydantic_core: 找不到指定的程序对应解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 19万+

Static and Instance Methods in JavaScript

https://abdulapopoola.com/2013/03/30/static-and-instance-methods-in-javascript/ 在阅读vue示例代码时,经常看到Vue.xx函数或者$vm.yy函数,不太清楚这两者之间有什么区别。 google以后发现实际上还是有本质的区别的。 我们知道javascript的继承模型和java,php等面向对象的编程语言有非常大...

weixin_33778778的博客 131

引以为戒:一个“看不见”的空格,导致上下文超限——从 `llama-server` 错误说起

文章摘要: 本文分享了Qwen工程团队在部署llama-server时遇到的参数失效问题:明明设置了-c 32768上下文参数,却仍报错"超出4096 tokens限制"。经排查发现,问题根源是批处理脚本中续行符^后存在两个空格,导致参数被忽略。文章详细解析了Windows批处理中^的严格语法规则(必须紧贴前字符),对比了错误与正确写法的差异,并给出4条实用建议:使用编辑器显示空白字符、调试时关闭@echo off、预检完整命令、优先单行命令。最后强调在AI系统部署中,此类"隐

刘一说的IT专栏 533

Java 8 方法引用

构造器引用:它的语法是Class::new,或者更一般的Class< T >::new实例如下: final Car car = Car.create( Car::new ); final List< Car > cars = Arrays.asList( car ); 静态方法引用:它的语法是Class::static_method,实例如下: cars.forEach( Car::collide ); 特定类的任意对象的方法引用:它的语法是Class::method实例如下: c

小汤圆 111

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java静态方法和实例方法的区别

静态方法(方法前冠以static)和实例方法(前面未冠以static)的区别 调用静态方法或说类方法时,可以使用类名做前缀,也可以使用某一个具体的对象名;通常使用类名。 static方法只能处理static域或静态方法。实例方法可以访问实例域, 静态域或静态方法, 记住都行。 class StaticTest { static int a = 4; static int b =...

qq_44639795的博客 296

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java静态方法和实例方法

静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。 下面几个例子展示了这一区别。 1、调用静态方法示例。 //-...

精神病有所好转的博客 285

在IntelliJ下使用instance method替换static method

intellij重构static method到instance method

kiwi_coder 3016

Python中的method —— static mthod, class method和instance method

python中的@staticmethod,@classmethod和普通方法

正西风落叶下长安 2827

静态方法和实例化方法的区别

这是一个经常被时时提出来的问题,很多时候我们以为理解了、懂了,但深究一下,我们却发现并不懂。方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用。。。。我们真的理解了吗?从实际项目开发说起,这里有开发项目的三种方式:开发项目中把BLL和DAL

dwzsq的专栏 4710

Instance method, Static method and Class method in Python

the most regular methods in python is instance method. something like this: class Kls(object): def __init__(self, data): self.data = data def printd(self): print(self.data) the printd method here is a instance method, because it t

Tech in Pieces 315

Java 静态方法和实例方法的区别

调用方式 静态方法: "类名.方法名","对象名.方法名";静态方法无需创建对象就可以使用; 实例方法: "对象名.方法名";实例方法必须创建对象才可以使用; 举例: public class Case {     public static void testStatic() {         System.out.println("This is static method"

每天进步一点点 时间会让你成为巨人 1580

JAVA的STATIC[ZZ]

昨天上JAVA課程.被有STATIC和沒有STATIC搞到頭暈.老實說老師的解釋偶也聽不懂..所以今天去找了相關的資料....結果...還是不太懂.PO上來大家看看.也許會對一些人有幫助....:cool:來源: http://www.oreilly.com.tw/sleepless/static.htmlStatic 的意義與實作方式「將某 class 產生出一個 instance 之後,此 c

创世纪 1056

python instance method_Python中的method —— static mthod, class method和instance method

Python中的method通常来说,Python中的类(class)可以包含三类方法:@staticmethod,@classmethod和没有任何decorator修饰的实例方法。下面我们分别讨论这几种方法之间的区别。示例代码class A(object):def func(self, x):print('executing func with %s, %s.' %(str(self), st...

weixin_39909212的博客 377

java 子类重写父类静态方法

1、子类重写父类静态方法,变为非静态方法会报错。 public class Person { public static void method(){ System.out.println("Person"); } } public class Man extends Person { public void method(){ System.out.println(...

91奔跑的蜗牛 1651

Java类方法与实例方法核心区别与应用场景

在Java面向对象编程中,方法分为类方法(静态方法)和实例方法两大类型,这是理解Java内存模型和对象导向设计的基础概念。类方法通过static关键字定义,属于类级别,在JVM方法区仅存一份拷贝,适合工具函数和工厂模式等场景;实例方法则绑定对象实例,支持多态特性,用于封装对象行为。从JVM原理看,类方法调用不涉及this指针,性能略优但需注意线程安全问题,而实例方法通过虚方法表实现运行时绑定。实际开发中,Math类的数学运算采用类方法实现重用性,而银行账户的存取款操作必须设计为实例方法以维护对象状态。合理运

weixin_30820077的博客 398

深入理解 Python 的实例方法、类方法与静态方法:从最小演示到实战工厂模式

Python 面向对象编程中,方法(method)并非只有一种形态——实例方法、类方法与静态方法在参数绑定、调用方式与适用场景上有着本质区别。本文以 `instance-class-static-methods/` 目录下配套的 [demo.py](https://link.gitcode.com/i/0f7183ba288644ffec9b79cc80c90cea) 与 [pizza.py](h

gitblog_00643的博客 388
上一篇: Java内存溢出之栈溢出-StackOverflowError
下一篇: Java虚拟机退出(Exit)的方法
小鸡炖蘑菇Plus版
博客等级 码龄10年 10粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值