Heim  >  Artikel  >  Java  >  Unterschiede zwischen gewöhnlichen Codeblöcken, konstruierten Codeblöcken und statischen Codeblöcken in Java und Codebeispielen

Unterschiede zwischen gewöhnlichen Codeblöcken, konstruierten Codeblöcken und statischen Codeblöcken in Java und Codebeispielen

高洛峰
高洛峰Original
2017-01-18 15:14:111168Durchsuche

Der Unterschied zwischen gewöhnlichen Codeblöcken, konstruierten Codeblöcken, statischen Codeblöcken und Codebeispielen in Java

//Ausführungsreihenfolge: (Priorität von hoch nach niedrig.) Statischer Codeblock>mian-Methode>Konstruktionscode Blöcke >

Der statische Codeblock wird nur einmal ausgeführt. Der Konstruktionscodeblock wird jedes Mal ausgeführt, wenn ein Objekt erstellt wird.

1 Gewöhnlicher Codeblock

//普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”
public class CodeBlock01{
   public static void main(String[] args){
      
      {
       int x=3;
       System.out.println("1,普通代码块内的变量x="+x); 
      }
       
      int x=1;
      System.out.println("主方法内的变量x="+x);
       
      {
        int y=7;
        System.out.println("2,普通代码块内的变量y="+y); 
      }
     }
  }
   
  /*
  运行结果:
  1,普通代码块内的变量x=3
     主方法内的变量x=1
     2,普通代码块内的变量y=7
  */

2 Konstruierter Codeblock

//构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
 
public class CodeBlock02{
  {
   System.out.println("第一代码块"); 
  }
   
  public CodeBlock02(){
    System.out.println("构造方法");
    }
     
    {
     System.out.println("第二构造块");
    }
   public static void main(String[] args){
     new CodeBlock02();
     new CodeBlock02();
     new CodeBlock02();
       
  }
} 
 
/*
*
执行结果:
第一代码块
第二构造块
构造方法
第一代码块
第二构造块
构造方法
第一代码块
第二构造块
构造方法
*/

3 Statische Codeblöcke

//静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
//如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
//注意:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
 
 
class Code{
  {
   System.out.println("Code的构造块");
  }
   
  static{
    System.out.println("Code的静态代码块");
    }
     
  public Code(){
    System.out.println("Code的构造方法");
    }
  }
   
   
public class CodeBlock03{
   {
   System.out.println("CodeBlock03的构造块"); 
   }
    
   static{
    System.out.println("CodeBlock03的静态代码块");
    }
     
    public CodeBlock03(){
       System.out.println("CodeBlock03的构造方法");
      }
     
   public static void main(String[] args){
      System.out.println("CodeBlock03的主方法");
      new Code();
      new Code();
      new CodeBlock03();
      new CodeBlock03();
     }
  }
/*
CodeBlock03的静态代码块
CodeBlock03的主方法
Code的静态代码块
Code的构造块
Code的构造方法
Code的构造块
Code的构造方法
CodeBlock03的构造块
CodeBlock03的构造方法
CodeBlock03的构造块
CodeBlock03的构造方法
*/

Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, vielen Dank für Ihre Unterstützung Website!

Weitere Artikel zu den Unterschieden zwischen gewöhnlichen Codeblöcken, konstruierten Codeblöcken, statischen Codeblöcken und Codebeispielen in Java finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn