Java中static关键字

static基础用法

  • 什么时候成员变量声明为实例变量

    • 所有对象的这个属性随对象而变化
  • 什么时候成员变量声明为静态变量

    • 所有对象都是这个属性

静态变量在类加载的时候初始化,内存在方法区中开辟。访问时不需要对象,可以直接使用 类.静态属性

关于Java中的static关键字:

  1. static翻译为:静态的
  2. static修饰的所有元素都是类级别的特征,与具体对象无关
  3. static修饰的方法是静态方法
  4. static修饰的变量是静态变量
  5. 所有static修饰的1元素都称为静态的,都可以使用 类.元素
  6. 也可以使用 引用.元素,但不建议

静态方法中无法直接访问实例变量和实例方法

静态代码块

可以使用static关键字定义区块【静态代码块】:

  • 语法

      static{
    Java语句;
    }
  • 静态代码块在类加载时执行,并且只会执行一次

  • 静态代码块在一个类中可以编写多个,且遵守自上而下的顺序执行

  • 静态代码块的作用【当然和具体需求有关】

    • 要求在类加载的时刻/时机执行代码完成日志的记录

    • 静态代码块是Java为程序员准备一个特殊的时刻,被称为【类加载时刻】

      若希望在此时刻执行一段特殊的程序,那么此段程序可以放入静态代码块

  • 通常在静态代码块当中完成预备工作,先完成数据准备工具,例如:初始化连接池,解析XMI配置文件......

补充:实例代码块【了解即可】

  • 语法:

      {
    Java语句
    }
  • 执行时刻:在构造方法执行之前执行,随后执行构造方法

  • 实例代码块对应构造方法,只会执行一次

  • 实例代码在一个类中可以编写多个,且遵守自上而下的顺序执行

对于两种语块的逻辑顺序

class Chunk {

	// 静态代码块
static{
System.out.println("静态语块");
} // 实例代码块
{
System.out.println("实例语块");
} // 构造方法
public Chunk(){
System.out.println("构造器工作");
}
}
public class Test {

    public static void main(String[] args) {

        Chunk test1 = new Chunk();
Chunk test2 = new Chunk();
}
}

执行结果:

静态语块
实例语块
构造器工作
实例语块
构造器工作

从结果中分析

  • 静态代码块在类加载时执行,并且只会执行一次,最先执行
  • 实例代码块对应实例中,只会执行一次,在实例创建之初
  • 实例代码块在构造器之前执行,随后执行构造方法【构造器】

Java面向对象



学习笔记--Java中static关键字的更多相关文章

  1. java中static关键字的作用

    java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...

  2. Java复习笔记--java中this 关键字

    Java中this关键字,this可以调用类的成员变量和成员方法,this还可以调用类中的构造方法.使用这种方式值得注意的是, 只可以在无参构造方法中的第一句使用this关键字调用有参构造方法. pu ...

  3. 详解详解Java中static关键字和final关键字的功能

    摘要:static关键字和final关键字是Java语言的核心,深入理解他们的功能非常重要. 本文分享自华为云社区<Java: static关键字与final关键字>,原文作者:唐里 . ...

  4. [java基础]java中static关键字

    1.static概念 static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序 ...

  5. java中static关键字解析

    static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...

  6. Java中static关键字的详解

    static关键字可以修饰方法和成员变量(不可以修饰局部变量,但是可以修饰内部类). static关键字方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者 ...

  7. 【转】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  8. 【java_需阅读】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  9. 关于java中Static关键字的加强理解

    static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...

  10. java中static关键字的使用

    知识点:java中,static关键字修饰类的变量.方法.代码块.内部类 场景:我们在创建类的方法和变量时,如果这个类在创建多个对象时,共用同一个属性或者方法,就可以使用static关键字修饰,因为s ...

随机推荐

  1. Maven项目中整合SSH(pom.xml文件的配置详解)

    Maven项目中整合SSH比较繁琐,需要解决版本冲突问题,博主在下面给出了pom.xml文件的配置信息,改配置文件整合的是:struts2-2.3.24.spring4.2.4.hibernate5. ...

  2. Linux运维面试总结

    1.Linux系统相关日志 /var/log/message:系统信息日志,包含错误信息 /var/log/secure:系统登录日志 /var/log/maillog:邮件日志 /var/log/c ...

  3. webview2 示例 Samples Selenium

    https://github.com/MicrosoftEdge/WebView2Samples https://learn.microsoft.com/zh-cn/microsoft-edge/we ...

  4. nginx的11个阶段

    nginx处理请求的11个阶段 阶段 模块 第一阶段 POST_READ realip 第二阶段 SERVER_REWRITE rewrite 第三阶段 FIND_CONFIG 第四阶段 REWRIT ...

  5. Linux进程间通信-FIFO(命名管道)

    本系列文章主要是学习记录Linux下进程间通信的方式. 常用的进程间通信方式:管道.FIFO.消息队列.信号量以及共享存储. 参考文档:<UNIX环境高级编程(第三版)> 参考视频:Lin ...

  6. VisionPro学习笔记(7)——FitLineTool

    如果需要了解其他图像处理的文章,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice ...

  7. Easysearch:语义搜索、知识图和向量数据库概述

    什么是语义搜索? 语义搜索是一种使用自然语言处理算法来理解单词和短语的含义和上下文以提供更准确的搜索结果的搜索技术.旨在更好地理解用户的意图和查询内容,而不仅仅是根据关键词匹配,还通过分析查询的语义和 ...

  8. k8s数据持久化

    前面的学习,我们已经基本完成了在k8s中部署一个web服务,运行pod.创建service.创建ingress对外提供域名的七层代理. 下一个环境就得去关注应用部署后的数据存储问题,容器化如何管理,k ...

  9. Scrapy框架(三)--全站数据爬取

    scrapy基于Spider类的全站数据爬取 大部分的网站展示的数据都进行了分页操作,那么将所有页码对应的页面数据进行爬取就是爬虫中的全站数据爬取.基于scrapy如何进行全站数据爬取呢?1.将每一个 ...

  10. 开源一款功能强大的 .NET 消息队列通讯模型框架 Maomi.MQ

    目录 文档说明 导读 快速开始 消息发布者 IMessagePublisher 连接池 消息过期 事务 发送方确认模式 独占模式 消费者 消费者模式 事件模式 分组 消费者模式 消费.重试和补偿 消费 ...