文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java static关键字详细解析

2024-04-02 19:55

关注

static目的

java中的static关键字主要用于内存管理。

static范围

使用范围:java static关键字可以用在变量、方法、代码块和嵌套类中。

作用范围:static关键字属于类,而不是类的实例。

静态(static)修饰

静态变量

类的成员变量可以分为以下两种:

静态变量与实例变量的区别如下:

1)静态变量

2)实例变量

静态变量在类中的作用如下:

静态方法

同成员变量,成员方法也可以分为以下两种:

静态方法与实例方法的区别:

静态方法,属于类,而不属于类的对象。

实例方法,可直接访问所属类的静态变量、静态方法、实例变量和实例方法。

静态方法与静态变量好处:

静态方法与静态变量缺点:

静态方法与静态变量适用场景:

静态代码块

定义:静态代码块,是 Java 类中的 static{ } 修饰的代码。

作用:用于类初始化时,为类的静态变量赋初始值,提升程序性能。

静态代码块的特点如下:

静态代码块,有点类似于一个方法,但不可以存在于任何方法体内。

静态代码块,可以置于类中的任何地方,类中可以有多个静态初始化块。

Java 虚拟机在加载类时执行,将只需要进行一次初始化的操作放在 static 代码块。

类中含多个静态代码块,Java虚拟机将按它们在类中出现的顺序依次执行,且都执行一次。

同静态代码块与静态,不能直接访问类的实例变量和实例方法,需通过类的对象访问。

静态类

java中一个类要被声明为static的,只有一种情况,就是静态内部类(内嵌类)。如在外部类声明为static的,程序会编译都不会通过。

可用于实现单例模式。

public class StaticSingleton {
    
    private static class SingletonHolder {  // 通过静态内部类持有实例
        private static final StaticSingleton INSTANCE = new StaticSingleton();
    }

    private StaticSingleton() { }   // 用private隐藏构造方法

    public static StaticSingleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}

static变量存储在方法区(Method Area)

方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法,如构造函数,接口代码也在此定义,简单说,所有定义的方法的信息都保存在该区域,此区域属于共享区间。

静态变量(static)、常量(final)、类信息(构造方法、接口定义)(Class)、运行时的常量池存在方法区中,但是实例变量存在堆内存中,和方法区无关。

到此这篇关于Java static关键字详细解析的文章就介绍到这了,更多相关Java static关键 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯