static块的执行机制

原创 2015年07月10日 09:21:26

今天在学JDBC的时候遇到类似于“static{}”,表示很不解,在网上查了很多资料,遂将其记下。

“static{}”就是代码块的意思。它可以保证无论所属类被加载多少次,static块中的语句只被执行一次。话不多说,代码验证:

package com.jdbc;

public class staticdemo {
    
    
     public static void main(String args[]){
            try {
                Class.forName("com.jdbc.stac");
                Class.forName("com.jdbc.stac");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
}

class stac{
    
    public static int ss=1;
    
    stac(){
       system.out.println("static块被执行")
    }
    
     public static void show(){
        System.out.println("静态方法");
    }
}

从主类中我们可以知道stac类被加载了两次,但是只输出一次“static{}“中的语句。。。。


相关文章推荐

java static块执行机制

java 类运行的机制及static执行机制

java的static代码块执行时的机制

java的static块执行时机 之前一直认为static块是在class load的时候执行,今天在验证Spring初始化Context loader的时候,发现bean的stat...
  • mjytsyj
  • mjytsyj
  • 2016年05月27日 10:46
  • 106

static代码块何时执行

之前一直纠结类中static代码块什么时候执行,很多java开发者都回答在类装载时执行,也有人认为是在类第一次被使用时执行,直到看到了这篇文章: http://www.cnblogs.com/ivan...

【JAVA】static块到底什么时候执行?

个人测试: 1. Class c = staticPack.Word.class; 与 Class.forName("staticPack.Word",false,off.getClass()....
  • kenkywu
  • kenkywu
  • 2012年02月11日 17:33
  • 3475

java的static块执行时机

转载自:http://www.cnblogs.com/ivanfu/archive/2012/02/12/2347817.html 之前一直认为static块是在class load的时候执行,...
  • lkx94
  • lkx94
  • 2017年01月03日 09:33
  • 108

django static 静态文件(css,js,image)处理机制

首先Django在开发版本中并不支持

static 与 const 编译器处理机制

static:有标示位; const:直接替换掉数据(有类型检查)。 在VS2008中,调用下面语句,执行并查看反汇编。 static int m = i; 00411...
  • zcliatb
  • zcliatb
  • 2014年11月14日 10:38
  • 394

理解Java的static import静态引入机制

理解Java的static import静态引入机制

static 静态变量和静态代码块的执行顺序

众所周知 在android中static 修饰的会被称之为 静态常量, 静态变量, 静态方法 ,还有就是静态代码块,用static{ // 代码块 非static修饰的方法,变量,常量, 是不能再静态...

java类运行以及static块的执行顺序

一、java类的static块什么时候执行 如果了解JVM原理,我们可以知道,一个类的运行分为以下步骤: 1、装载;2、链接;3、初始化;4、初始化;5,实例化(创建新的实例) 实际上,stat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:static块的执行机制
举报原因:
原因补充:

(最多只允许输入30个字)