4种代码块初学

本文介绍了Java中四种主要的代码块:普通代码块、同步代码块、静态代码块和构造代码块,以及Java内存的栈、堆、方法区等存储区域。详细阐述了它们的作用、执行顺序和应用场景,帮助读者深入理解Java程序的运行机制。
摘要由CSDN通过智能技术生成

        java中的所有代码都包含在代码块中,形如大括号{ },就是一个代码块,不同的代码块都是为了满足不同的应用场景,在看代码块之前,先简单了解一下java数据存储区存储的类型

目录

一、前导—简单的存储内容概述

1.栈

2.堆

3.方法区

4.其它

二、四种代码块

1.普通代码块

2.同步代码块

3.静态代码块

4.构造代码块

后记:代码块的执行顺序


一、前导—简单的存储内容概述

1.栈

        栈中存储的是基本数据类型(形如:int a = 10; ),和引用数据类型的引用 (形如Person p,引用p就被存储在了此处)       

2.堆

        存的是类的对象(形如Person p = new Person( );  其中new Person( )被存储在了堆中,栈中的p指向的就是此处的new Person( ) ),没有引用指向的对象会被自动回收。还存储了静态变量和字符串常量池

3.方法区

        存放类的信息,运行时常量,成员方法等

4.其它

        存储区还有PC寄存器和本地方法栈

二、四种代码块

1.普通代码块

        我们执行的大部分代码都被包含在普通代码块中,包括但并不仅限于if语句,while语句,方法等后面的大括号所代表的代码块

public class Test3 {
    public static void main(String[] args) {
        if (true){

        }
        while(true) {

        }

    }
    public void run(){
        
    }
}

2.同步代码块

        形如synchronized(boj){ }的代码块,一般在实现了Runnable的类的run()方法下创建,作为隐式锁来为线程加排队锁,保证线程安全,没学到线程可以不管

public class Test3 {
    public static void main(String[] args) {
        Runnable run = new MyRun();
        new Thread(run).start();
    }
}
class MyRun implements Runnable{
    Object o = new Object();
    @Override
    public void run() {
        //同步代码块******
        synchronized (o){
            System.out.println("同步代码块被执行了");
        }
        //同步代码块******
    }
}

3.静态代码块

        由static修饰,直接在类下创建,形如static{ }的代码块,此代码块随着类的加载(即第一次使用该类的时候)而执行,因为类执行一次后被放入方法区,信息供随时使用,所以静态代码块也只执行一次,不管创建多少此类的对象,都只执行一次

public class Test3 {
    //静态代码块
    static {
        
    }
}

4.构造代码块

        直接在类下创建,形如 { } 只有一对大括号,没有其它修饰的是构造代码块,构造代码块在每次创建对象时被调用一次,new一个对象就执行一次

public class Test3 {
    //构造代码块*****
    {
        
    }
    //构造代码块*****

}

后记:代码块的执行顺序

静态代码块  —> 构造代码块 —> 构造方法

                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值