A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刺客015 中级黑马   /  2016-1-25 09:50  /  7712 人查看  /  33 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
静态代码块优先于主函数吗     他的存在有什么作用??静态代码块需要返回值吗

33 个回复

倒序浏览
静态代码块的格式:

static
{
        静态代码块中的执行语句。
}

静态代码块的特点:随着类的加载而执行,只执行一次,并优先于主函数执行。

静态代码块的作用:一般用于给类进行初始化。

静态代码块中执行语句不需要返回值。

以下代码用于验证静态代码块的执行优先级高于主函数:

  1. public class StaticTest {
  2.         //静态代码块
  3.         static{
  4.                 System.out.println("b");
  5.         }
  6.         //主函数
  7.         public static void main(String[] args) {
  8.                 StaticDemo sd = new StaticDemo();
  9.                 System.out.println("d");
  10.         }
  11.         //静态代码块
  12.         static{
  13.                 System.out.println("c");
  14.         }
  15. }
  16. class StaticDemo{
  17.         //静态代码块
  18.         static{
  19.                 System.out.println("a");
  20.         }
  21. }
复制代码
回复 使用道具 举报
静态代码块的作用:一般用于给类进行初始化。

静态代码块中执行语句不需要返回值
回复 使用道具 举报
静态代码块,随着类的加载而执行。仅仅执行一次,并优先于主函数。主要是为了给类进行初始化操作。
回复 使用道具 举报
一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如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 { }
回复 使用道具 举报
一楼说的好像就是答案
回复 使用道具 举报
朋友,我是来要黑马币的
回复 使用道具 举报
是的,静态代码块简单说就是加上static的构造代码块.存在与类中方法外,例如
class  Test{
    static{
        System.out.println("我是静态代码块");
    }
          System.out.println("我是代码块");
    {
      
    }
    public static void main(String[] args){
       System.out.println("我是主方法");
     }
}

上面的顺序可以打乱.执行顺序是 静态代码块>代码块>主方法
静态代码块只在类加载的时候执行一次,一般用于加载配置文件,构造代码块是一般用来初始化数据的,每次new一个类的对象就会执行一次.纯手打,不明白的可以继续问我
回复 使用道具 举报
static{         静态代码块中的执行语句。 } 特点:随着累的加载而执行,只执行一次,并优先于主函数。用于给类进行初始化的。
回复 使用道具 举报
静态代码块用来给类中的静态成员变量初始化用的.
回复 使用道具 举报
静态代码块优先于主函数,他的作用是初始化,静态代码不需要返回值。
回复 使用道具 举报
sydsyd 来自手机 中级黑马 2016-1-28 23:27:56
12#
静态代码块优先于类存在,是给类进行初始化。类加载后如果有main会先执行main,然后执行构造代码块,构造代码块给所有的对象进行初始化。如果有创建实例对象,则会执行构造函数,构造函数是给对应的对象进行实例初始化。
回复 使用道具 举报
我的理解是:静态代码块只是主函数的一部分,主函数刚调动时就运行静态代码块,他的作用是对主函数进行初始化,静态代码块不需要返回值
回复 使用道具 举报
一般用于初始化,优先级最高,我还没见过 有人返回值
回复 使用道具 举报
静态代码块优先于主函数吗 优先
他的存在有什么作用??   用来加载需要随着类加载的资源,例如玩游戏的开场动画,你以打开游戏就是可以.
静态代码块需要返回值吗   不是说需要不需要,静态代码块没有返回值,,如果你些了,就会报错,例如
public class Demo {
public static void main(String[] args) {

        }
static{
        int b=1;
        return b;
}
}
是报错的,
回复 使用道具 举报
111111111111111111111111
回复 使用道具 举报
静态代码块在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。在开发中 一般用于加载驱动,例如游戏启动时,需要先加载一些驱动。
回复 使用道具 举报
1.静态代码块 随着类的加载而执行,只执行一次,并优先于主函数,也优先于构造代码块。2.类加载的时候就会去执行静态代码块的内容。比如说:写连接数据库的那些内容时,经常有classforName("XXX"),用于加载一些东西,这些东西就可以写在静态代码块中。还有一些,你想让类加载时就执行的程序也可以放在里面。3.静态方法和返回值没有关系呀?如果一个方法没有访问对象的特有数据就可以定义为静态的,这样就可以通过类名直接调用,而没有必要通过创建对象来调用,这就是静态方法
回复 使用道具 举报
优先主函数 一班情况下是用来加载驱动和 初始化一些与类相关的属性的
回复 使用道具 举报
class Demo{
        {        // 直接在类中编写代码块,称为构造块
                System.out.println("1、构造块。") ;
        }
        static{        // 使用static,称为静态代码块
                System.out.println("0、静态代码块") ;
        }
        public Demo(){        // 定义构造方法
                System.out.println("2、构造方法。") ;
        }
};
public class CodeDemo03{
        static{                // 在主方法所在的类中定义静态块
                System.out.println("在主方法所在类中定义的代码块") ;
        }
        public static void main(String args[]){
                new Demo() ;                // 实例化对象
                new Demo() ;                // 实例化对象
                new Demo() ;                // 实例化对象
        }
};
静态代码块优先于主方法执行,不管有多少个对象产生,静态代码块只执行一次,没有返回值。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马