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. golang http client 长连接vs短连接基准测试

    package main import ( "io/ioutil" "net/http" "strings" "testing&q ...

  2. C#命令行参数解析库System.CommandLine介绍

    命令行参数 平常在日常的开发过程中,会经常用到命令行工具.如cmd下的各种命令. 以下为sc命令执行后的截图,可以看到,由于没有输入任何附带参数,所以程序并未执行任何操作,只是输出了描述和用法. 系统 ...

  3. k8s——deployment

    创建deployment [root@master deploy]# kubectl create deploy nginx-deploy --image=nginx:1.7.9 deployment ...

  4. OPA Gatekeeper:Kubernetes的策略和管理

    目录 一.系统环境 二.前言 三.OPA Gatekeeper简介 四.在kubernetes上安装OPA Gatekeeper 五.gatekeeper规则 5.1 使用gatekeeper禁止某些 ...

  5. shiro有哪些组件?

    a.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: b.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情,常见的 ...

  6. shiro可以完成哪些工作?

    shiro可以帮助我们完成:认证.授权.加密.会话管理.与Web集成.缓存等

  7. word文档生成视频,自动配音、背景音乐、自动字幕,另类创作工具

    简介 不同于别的视频创作工具,这个工具创作视频只需要在word文档中打字,插入图片即可.完事后就能获得一个带有配音.字幕.背景音乐.视频特效滤镜的优美作品. 这种不要门槛,没有技术难度的视频创作工具, ...

  8. idea为什么提示:Duplicated code fragment (**lines long)

    idea为什么提示:Duplicated code fragment (**lines long) 原因是有相同的代码块在类里,可以把这部分代码封装成一个方法,提高代码可读性.

  9. springboot项目编译时,使用自定义注解类找不到符号

    springboot项目编译时,使用自定义注解类找不到符号 Java项目编译时,使用自定义注解类找不到符号Spring-boot项目编辑器:idea问题:编译时找不到符号.项目中用到了自定义注解类.编 ...

  10. 如何用matlab求隐式函数的导数

    如何用matlab求隐式函数的导数 隐函数求导的例子 假设有一个圆 \(x^2+y^2=5\) , 要求在某个点上的切线的斜率. 我们可以把式\(x^2+y^2=5\)中的每一项对\(x\)求导, 可 ...