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. linux 自定义程序开机自启

    实现开机自启常见的有两种方法: /etc/init.d/下编写脚本命令(有些机子会有问题,比较麻烦) 利用定时任务crontab 本文介绍crontab现实程序开机自启 编写执行脚本run.sh #! ...

  2. HTML——img标签

    在HTML中,图像由标签定义的,它可以用来加载图片到html网页中显示.网页开发过程中,有三种图片格式被广泛应用到web里,分别是 jpg.png.gif. img标签的属性: /* src属性: 指 ...

  3. 【JS】await异常捕获,这样做才完美

    缘由 JS中async/await异步调用,只能通过try-catch吗? 你想听的故事: 作为一个合格的全栈搬砖工,那必须文武双全,前后必备.遂吾日三省吾身,偶发觉前端长时间不写有些落下,便抽用了摸 ...

  4. MySQL查看实时执行的SQL语句

    MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源. 要开启这个功能,稍微配置一下,打开这个LOG记录就可以了. 1 查看LOG功能 首先,查看是否已经开启实时SQL语句记录. mys ...

  5. nonatomic 带来的线程安全问题

    一.结论 一个对象对外暴露的读写属性,如果这个属性在多个线程中访问,一定会出现crash. 因此对外暴露的属性一定要考虑线程安全问题. 二.看下面的代码 下面的代码一定会crash,除非obj是ato ...

  6. ajax兼容处理

     // ajax的兼容处理         // 1.创建ajax对象         // 标准浏览器         // const xhr = new XMLHttpRequest();    ...

  7. Java中常见的几种的溢出

    引言 在开发过程中,因为编程经验不足,经常会导致各种各样的溢出,今天本文就举例说明几种常见的溢出 堆溢出 堆溢出是最常见的一种溢出. 导致原因:堆中没有足够的空间储存新生成的实例对象 public s ...

  8. 博客更换新域名为52ecy.cn

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 博客更换新域名为52ecy.cn 日期:2017-10-2 ...

  9. 开启IPV6网络

    1.路由器开启IPV6支持 2.路由器关闭IPV6 DHCP服务 3.若外网无法访问则关闭路由器防火墙 或关闭系统防火墙 4.tomcat需设置地址为0.0.0.0

  10. InvalidOperationException Cannot modify ServiceCollection after application is built .Net6 异常

    背景 我用了一个叫Unchase.Swashbuckle.AspNetCore.Extensions的库来加强Swagger的文档,我一般写法是这样的: builder.Services.AddSwa ...