代码块含义:使用{ }括起来的代码

代码块类型:

1.局部代码块:定义在方法体中。

2.构造代码块:也叫初始化代码块,定义在类中方法体之外。

3.静态代码块:定义在类中方法体之外,被static修饰符所修饰,

随着类加载而执行。

4.同步代码块:在Java的多线程中,为解决并发操作可能造成的异常,

而引入同步监视器,使用同步监视器的通用方法就是同步代码块。

构造代码块VS构造方法:

在Java程序中构造代码块先执行,然后才是构造方法。

静态代码块:用static修饰的代码块

1.可以有输出语句。

2.可以对类的属性、类的声明进行初始化操作。

3.不可以对非静态的属性初始化。即不可以调用非静态的属性和方法。

4.若有多个静态的代码块,那么按照从上到下的顺序依次执行。

5.静态代码块的执行要先于非静态代码块。

6.静态代码块随着类的加载而加载,且只执行一次。

非静态代码块:没有static修饰的代码块

1.可以有输出语句。

2.可以对类的属性、类的声明进行初始化操作。

3.除了调用非静态的结构外,还可以调用静态的变量或方法。

4.若有多个非静态的代码块,那么按照从上到下的顺序依次执行。

5.每次创建对象的时候,都会执行一次。且先于构造器执行。

构造代码块VS静态代码块:

1.静态代码块,最多执行一次。

2.构造代码块,每次创建对象都会执行。

 public class CodeBlockDemo {
   public static void main(String[] args) {
     CodeBlockClass codeBlockClass = new CodeBlockClass();
     System.out.println(codeBlockClass.i);
     System.out.println(CodeBlockClass.name);

     //测试构造代码块和静态代码的执行特征:
     CodeBlockClass codeBlockClass1 = new CodeBlockClass();
     CodeBlockClass codeBlockClass2 = new CodeBlockClass();
   }
 }

 class CodeBlockClass {
   int i;
   static String name;

   public CodeBlockClass() {
     System.out.println("contructor method");
   }

   //构造代码块
   {
     i = 10;
     System.out.println("constructor block: " + i);
   }

   //静态代码块
   static {
     System.out.println("static block");
   }

   public void localCodeBlock () {

     //定义局部代码块
     {
       int i = 10;
       System.out.println(i);
     }
   }
 }

Java类成员之代码块的更多相关文章

  1. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

  2. 2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块

    1.java和c#静态成员调用的不同之处 static 表示静态的,也就是共享资源,它是在类加载的时候就创建了 java中   可以通过实例来调用,也可以通过类名.成员名来调用,但是一般最好使用类名. ...

  3. java中的静态代码块、构造代码块、构造方法

    运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...

  4. Java 类成员的初始化顺序

    Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究.   1  无继承情况下的Jav ...

  5. java学习(一)静态代码块 构造代码块 构造方法的执行顺序及注意问题

    今天我总结了一下java中静态代码块 构造代码块 构造方法的执行顺序及其注意问题 首先要知道静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建而加载 当时做了这么一个小案例(想必 ...

  6. Java面试题 静态代码块 构造代码块 构造方法 的执行顺序

    JAVA中的静态代码块 构造代码块 构造方法执行顺序: 静态代码块(类加载时执行)>>构造代码块>>构造方法 下面展示一个简单的例子,推荐大家动手运行一遍: public cl ...

  7. Java之static静态代码块

    Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public cl ...

  8. java类成员变量与代码块初始化

    首先根据下面的这个一段代码:引入关于java初始化顺序的问题public class InitationTest extends Person { public InitationTest() { S ...

  9. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

随机推荐

  1. Element-ui学习笔记2

    1.Button按钮 <el-button> type属性可以修改按钮主题 type='text'时为文字按钮 plain,round,circle可以修改按钮样式,plain为朴素按钮, ...

  2. 如何在SpringMVC项目中部署WebService服务并打包生成客户端

    场景 某SpringMVC项目原本为一个HTTP的WEB服务项目,之后想在该项目中添加WebService支持,使该项目同时提供HTTP服务和WebService服务.其中WebService服务通过 ...

  3. 在vuex的mutations中使用vue的小技巧

    问题: 在vuex组件中的mutations属性中的定义的函数,有时会要用到vue这个对象.正常在其他的地方使用是通过this这个变量来获取,但是在mutations定义的函数中this指定的是Vue ...

  4. JS中数组声明

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Linux创建用户、设置密码、修改用户、删除用户命令

    与大家分享下Linux系统中创建用户.设置密码.修改用户.删除用户的命令,希望对你有所帮助. useradd testuser  创建用户testuserpasswd testuser  给已创建的用 ...

  6. python基础五之字典

    python数据的可变性 通过数据的可变性,可将数据分为可变数据类型和不可变数据类型. 可变数据类型:list,dict (不可哈希) 不可变数据类型:元祖,bool,int,str (可哈希) py ...

  7. H5 拖拽元素

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 2018-8-10-C#-局部函数与事件

    title author date CreateTime categories C# 局部函数与事件 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 17:23 ...

  9. Codevs 四子连棋 (迭代加深搜索)

    题目描述 Description 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋一步,黑白双 ...

  10. es6笔记 day2---解构赋值

    解构赋值 这个知识点非常有用,特别是在做数据交互的时候(Ajax).那么它是怎么使用的呢? 它就是这么使用的↓ let [a,b,c] = [12,5,6];  这就是解构赋值 注意:左右两边,结构格 ...