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. 必应每日一图url(可直接使用)

    必应每日一图url 首先放出地址,后面是一堆心路历程(一堆废话),只为链接的可以不用看 https://baotangguo.cn:8081/ 最初 ​ 博客园装饰的时候(虽然是抄的),想着上面背景图 ...

  2. Android 12(S) Binder(二)

    前面一节学习了ServiceManager这个特殊service的工作过程,这一节来看看普通service的工作过程. 就用media.extractor这个service来当例子! 1.服务的注册及 ...

  3. MySQL学习笔记-函数

    MySQL-常用函数 select {函数}({参数}); select是查询用的,用来展示函数返回值. 一. 字符串函数 常用的字符串函数: 1. concat 拼接 select concat(' ...

  4. k8s——pod的资源配置文件详解(manifest)

    pod的资源配置文件(manifest) 详细介绍pod的资源配置文件(mannifest)的各个字段的含义 元数据 字段 是否必须 类型 含义 由用户提供 备注 name 必须 str pod的名称 ...

  5. yum install 出错

    ``` yum -y install ansible ``` 出错 一直在刷屏,刚开始以为在安装但是最后没有安装成功 百度发现是这是redhat7和8的yum源混用 1.先确认本机器系统信息 cat ...

  6. C# 指针简单使用

    1. 使用unsafe C# 支持 unsafe 上下文,你可在其中编写不可验证的代码. 在 unsafe 上下文中,代码可使用指针.分配和释放内存块,以及使用函数指针调用方法. C# 中的不安全代码 ...

  7. vuex做购物车功能

    先创建一个cart组件 <template> <div> <ListItem></ListItem> </div> </templat ...

  8. 程序员面试金典-面试题 16.25. LRU缓存

    题目: 设计和构建一个"最近最少使用"缓存,该缓存会删除最近最少使用的项目.缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量.当缓存被填满时,它应该 ...

  9. P9174

    problem & blog 子任务 \(1\) 和子任务 \(2\) 都比较好做.所以我们这里不讲. 状态将是数字 \(n\) (每个颜色的频率的排序数组)的所有分区,因为当我们旋转每种颜色 ...

  10. java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder

    Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder 解决方 ...