`
byandby
  • 浏览: 1688348 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java中静态代码块 静态方法 static

阅读更多
java 静态代码块 静态方法区别
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用
比如main方法就必须是静态的 这是程序入口
两者的区别就是:静态代码块是自动执行的;
静态方法是被调用的时候才执行的.

静态方法
(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法。要实现这样的效果,只需要在类中定义的方法前加上static关键字。例如:public static int maximum(int n1,int n2)
使用类的静态方法时,注意:
       a在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。
b 静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前不用创建任何实例对象,当静态方法调用时,this所引用的对象根本没有产生。
     (2)静态变量是属于整个类的变量而不是属于某个对象的。注意不能把任何方法体内的变量声明为静态,例如:
fun()
{
   static int i=0;//非法。
}
     (3)一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且之被执行一次,静态块常用来执行类属性的初始化。例如:
static
{
}
类装载步骤
   在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备和解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下:
装载:查找和导入类或接口的二进制数据;
链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;
校验:检查导入类或接口的二进制数据的正确性;
准备:给类的静态变量分配并初始化存储空间;
解析:将符号引用转成直接引用;
初始化:激活类的静态变量的初始化Java代码和静态Java代码块。
初始化类中属性是静态代码块的常用用途,但只能使用一次。
分享到:
评论

相关推荐

    有关static block静态代码块和单态设计模式

    静态代码块(static block ),不包含在任何方法体中当类被载入时,自动执行静态代码块,且只被执行一次经常用于类属性的初始化。 这是网上通行的关于静态代码块的定义。 在Java中,类装载器把一个类装入Java虚拟机...

    Java中的静态变量、静态方法与静态代码块

     其中静态代码在类的初始化阶段被初始化。而非静态代码则在类的使用阶段(也是实例化一个类的时候)才会被初始化。  静态变量  可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象...

    java 代码块与静态代码块加载顺序

    主要介绍了java 代码块与静态代码块加载顺序的相关资料,需要的朋友可以参考下

    Java中的static静态代码块的使用详解

    本篇文章介绍了,Java中的static静态代码块的使用详解。需要的朋友参考下

    Java static静态初始快

    Java static修饰初始块。初级代码,仅供参考学习。

    static静态变量使用@Value注入方式.md

    MarkDown文档,大家应该都知道,@Value注解可以给类中的非静态变量注入值,但是给静态变量注入值则会有警告,结果是失败的,本文档说明了如何使用@Value注解给类的静态变量赋值

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    java中static作用

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念……

    Java零基础-static关键字.md

    建议通过阅读相关的Java教材或搜索资料,进一步扩展学习与static关键字相关的高级主题,如静态代码块、静态内部类和静态导入等内容。 如有疑问,可以参考Java官方文档或向技术论坛寻求帮助,进一步加深对static...

    java中static的作用

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块

    Java基础之代码块.docx

    块{} : 是一个作用域 {}写在方法中:普通语句块|局部代码块 执行时机:方法调用时候 {}写在类中方法外:构造块 执行时机:创建对象时 static{}写在类中方法外:静态块 执行时机:类加载

    Java静态初始化块和对象初始化块

    NULL 博文链接:https://yuu1987.iteye.com/blog/1113142

    java代码-日常练习33,代码块### 静态代码块 static{代码内容;} 随着类的加载就执行一次 构造器代码块 {代码内容;} 每创建对象就执行一次 局部代码块 {代码内容;} 方法执行一次执行一次

    java代码-日常练习33,代码块### 静态代码块 static{代码内容;} 随着类的加载就执行一次 构造器代码块 {代码内容;} 每创建对象就执行一次 局部代码块 {代码内容;} 方法执行一次执行一次

    Java中static变量作用和用法步骤

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。  被static修饰的成员变量和成员方法独立于该类的任何对象。也是说,它不...

    Java之static关键字

    一、模板类,里面包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数、静态内部类(包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数)。

    static关键字简介

    关键字 static 可应用于变量 方法 甚至不属于方法的一段代码块 声明静态类的对象 时 不会生成静态变量的副本 类的所有实例都共享同一些静态变量 因为静态变量没有副 本 可以通过类名称来调用静态变量 也可以通过对类...

    JAVA 面向对象程序设计第2章 面向对象进阶.pptx

    第2章 面向对象进阶;回顾;2.1 成员变量;2.1 成员变量;2.1.1 成员变量与局部变量的区别;2.1.2 成员变量的使用;2.1.2 成员变量的使用;2.1.3 学生实践练习;...2.4.3 静态代码块;2.4.3 静态代码块;2.4.3 静态代码块;

    Java之static用法

    Java之static用法 在Java语言中,static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块

    Java中的代码块

    目录代码块的概念普通代码块构造代码块静态代码块优先级的顺序在主函数前输出hello world 代码块的概念 代码块本身并不是一个很难理解的概念。 所谓的代码块是指使用“{}”括起来的一段代码, 根据位置不同,代码块...

    Java开发技术大全(500个源代码).

    invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名问题示例 onlyTest.java 对象传值示例 otherClass.java 从类的外部访问对象的成员 ...

Global site tag (gtag.js) - Google Analytics