`
王佳伟
  • 浏览: 710 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java静态方法与非静态方法的区别

阅读更多
● 生命周期(Lifecycle):

静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭。

非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM 回收之后,也跟着消失。

● 在内存中存储位置

静态方法和静态变量创建后始终使用同一块内存,是连续的。

非静态方法会存在于内存的多个地方,是离散的。

● 效率

静态方法的使用效率比非静态方法的效率高。

● 线程安全

静态方法是共享代码段,静态变量是共享数据段。既然是“共享”就有并发(Concurrence)的问题。

非静态方法是针对确定的一个对象的,所以不会存在线程安全的问题。

● 使用范围

静态方法:⒈ 有静态属性的类,一般会定义静态方法。⒉ 没有属性的类,一般会定义静态方法。⒊ 如果一个方法与他所在类的实例对象无关,那么它就应该是静态的。静态方法可以被继承但是不能被覆盖。

●  总计

如果静态方法在系统中定义太多,会占用大量的资源,最后造成内存溢出,所以静态方法不能滥用。如果从线程安全、性能、兼容性上来看,选用实例化方法为宜。
分享到:
评论

相关推荐

    JAVA静态方法和非静态方法的区别和实例.doc

    JAVA静态方法和非静态方法的区别和实例 静态方法和非静态方法是 Java 编程语言中两个基本概念,它们在编程实践中扮演着重要角色。了解它们的区别和使用场景对于编写高效、可维护的代码至关重要。 什么是静态方法?...

    Java中静态方法和非静态方法的区别.docx

    Java 中静态方法和非静态方法的区别 Java 作为一种功能强大、可靠性高、跨平台的编程语言,广泛应用于企业级应用开发、移动应用开发、云计算、大数据处理等领域。了解静态方法和非静态方法的区别是 Java 编程的基础...

    PHP中静态方法(static)与非静态方法的使用及区别.docx

    非静态方法则需要通过类的实例来调用,它们可以直接访问类的非静态属性,因为这些属性与特定的对象实例相关联。静态方法无法访问非静态属性或方法,因为它们在没有实例的情况下被调用,无法访问与特定对象相关的信息...

    java中静态与非静态的区别

    - **非静态类**则更加灵活,既可以包含**非静态成员**和**非静态方法**,也可以包含**静态成员**和**静态方法**。 2. **实例化**: - **静态类**不可实例化。也就是说,你无法创建一个静态类的对象。这是因为它...

    静态方法同步 与 非静态方法同步

    本篇文章将深入探讨“静态方法同步”与“非静态方法同步”的差异、应用场景以及它们如何影响程序的并发性能。 首先,我们来了解什么是同步。在Java中,同步是通过`synchronized`关键字实现的,它用于确保同一时间...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    LINUX C调用JAVA的静态方法和非静态方法(实例方法)小实例

    在Linux环境中,C语言可以通过Java Native Interface (JNI) 来调用Java的静态和非静态方法,实现两者之间的交互。JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互,使得C/C++程序员可以编写...

    Java 静态方法/变量,非静态方法/变量的区别

    静态/非静态 方法/变量的写法 大家应该都明白静态方法/字段比普通方法/字段的写法要多一个static关键字,简单写下他们的写法吧,了解的可以直接略过 class Test{ // 静态变量 public static int id = 1; // 普通...

    java无法从静态上下文中引用非静态一些错误

    java初学者在编写类,在调用方法,在静态方法与动态方法使用会出现的一些错误。 学习后 能初步了解自己的错误的原因 以及遇到这种错误的改正方法 避免下次踩坑

    java中静态与非静态的变量定义与使用

    这展示了如何在没有对象的情况下使用静态变量调用非静态方法,尽管这通常不是最佳实践,因为它可能引起混淆并隐藏对象实例的依赖关系。 总结起来,Java 中的静态变量与非静态变量之间的主要区别在于它们的生命周期...

    浅析php静态方法与非静态方法的用法区别

    静态方法和非静态方法的主要用法区别体现在以下几个方面: 1. 访问限制:静态方法不能直接访问非静态的属性和方法,因为静态成员是属于类级别的,而非静态成员是属于对象实例级别的。由于静态成员的创建和调用不...

    可能是方法最全Redis静态工具类(RedisUtils.java)

    可能是最全的Redis静态工具类,拿来即用,随时随地RedisUtils.方法名()存取数据,每个方法都有对应的注释,快速上手!

    java静态代码块与非静态代码块.doc

    Java 静态代码块与非静态代码块 Java 中的静态代码块和非静态代码块是两个重要的概念,它们在 Java 中的应用非常广泛。下面我们来详细介绍这两个概念。 静态代码块 静态代码块是 Java 中的一种特殊的代码块,它是...

    java静态代码块与非静态代码块参照.pdf

    本文将通过实例代码和详细解释,阐述 Java 静态代码块与非静态代码块的区别和应用场景。 静态代码块 静态代码块是指使用静态关键字修饰的代码块,属于类级别的代码块。它的特点是:在类加载时自动执行的,且只执行...

    java静态文件处理

    在Java编程语言中,处理静态文件是一项常见的任务,特别是在构建Web应用程序时。静态文件通常指的是HTML、CSS、JavaScript、图片等非动态内容,这些文件在服务器端不需要额外的处理即可发送给客户端。本篇文章将深入...

    java-静态变量方法块

    在Java编程语言中,静态变量、静态方法、静态代码块以及非静态变量和非静态方法是核心概念,它们对于理解和编写Java程序至关重要。下面将详细解释这些概念,并通过实例程序来阐述它们的使用和内存管理。 首先,静态...

    java静态变量与方法.doc

    4. **可访问性**:静态变量可以被类的任何静态方法访问,但不能被非静态方法访问,因为静态方法不知道具体对象的存在。例如,在`staticExam2`中,静态方法`bb()`不能调用实例方法`aa()`,也不能直接访问实例变量`a`...

    java synchronized同步静态方法和同步非静态方法的异同

    本文将深入探讨`synchronized`关键字在同步静态方法和非静态方法上的异同。 首先,`synchronized`关键字有两种主要的使用方式:一是修饰方法,二是作为代码块。当`synchronized`修饰一个非静态方法时,锁住的是该...

    Java中的静态变量静态方法静态块与静态类.docx

    ### Java中的静态变量、静态方法、静态块与静态类 #### 一、静态变量 静态变量,也称为类变量,是定义在类中方法之外的,并且被`static`关键字修饰的变量。这类变量并不属于类的任何实例,而是属于类本身。这意味...

Global site tag (gtag.js) - Google Analytics