JAVA代码块你了解吗

目录
  • 非静态代码块:没有static修饰的代码块
  • 静态代码块:用static修饰的代码块
  • 用处
  • 总结

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

  • 可以有输出语句
  • 可以对类的属性声明进行初始化操作
  • 可以调用静态或者非静态的变量或方法
  • 若有多个非静态的代码块,那么按照从上到下的顺序依次执行
  • 再次创建对象的时候都会执行,且先于构造函数执行

代码:

public class Per {
    {
        System.out.println("非静态代码块1");
    }
    {
        System.out.println("非静态代码块2");
    }
    {
        System.out.println("非静态代码块3");
    }
    Per()
    {
        System.out.println("per的构造函数");
    }
}

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

  • 可以有输出语句
  • 可以对类的属性声明进行初始化操作
  • 不可以对非静态的属性进行初始化。 即不可以调用非静态的属性和方法。
  • 若有多个静态的代码块,则按照从上到下的顺序依次执行。
  • 静态代码块的执行要先于非静态代码块。
  • 静态代码只执行一次。

代码:

public class Per {
    static
    {
        System.out.println("静态代码块1");
    }
    static{
        System.out.println("静态代码块2");
    }
    {
        System.out.println("非静态代码块");
    }
    Per()
    {
        System.out.println("per的构造函数");
    }
}

用处

实际开发中,静态代码块用的多一些,用来初始化类的静态属性

匿名内部类没有类名,就不能显示的new方法创建对象,如果还要在构造器中初始化属性就没有办法了,用匿名内部类代码块代替构造方法

代码:

public class MAIN
{
    public static void main(String[] args)
    {
         Per p=new Per()
         {
             //匿名内部类是继承了当前类和结构的子类
             {super.name="大忽悠";}
         };
        System.out.println(p.name);
    }
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java构造代码块,静态代码块原理与用法实例分析

    本文实例讲述了Java构造代码块,静态代码块原理与用法.分享给大家供大家参考,具体如下: 本文内容: 局部代码块 构造代码块 静态代码块 补充 首发日期:2018-03-28 局部代码块: 局部代码块用于限制变量的生命周期,如果希望某些变量在某一过程之后直接失效而不希望被后面继续操作时,可以使用局部变量来限制变量的生命周期带局部代码块中 构造代码块: 构造函数只对对应的对象进行初始化,构造代码块给类的所有对象进行初始化. 由于构造代码块给类的所有对象进行初始化,所以对于每个对象都要初始化成一样值

  • java 浅析代码块的由来及用法

    1.概述   代码块也是属于类中的成员(即是类的一部分),类似于方法,将逻辑语句封装在方法体中,通过{}包围起来.在类加载时或创建对象时隐式调用.   下面为主要代码块的格式与详细解析概述: 2.主要应用顺序: 分析应用场景:当所在的类中的需要进行一些必要的操作时,可以通过放在代码块来进行,而不用通过给每个构造器放入相同的语句,会显得比较多余. 应用顺序:无论创建对象时,都会优先调用代码块中的内容.这里当你运用代码块时,是需要将调用构造器时候会自动先调用代码块. 3.代码块的注意事项和细节议论

  • Java静态代码块作用及执行顺序解析

    一般情况下,如果有些代码必须在项目启动的时候就执行,需要使用静态代码块.这种代码是主动执行的,需要在项目启动的时候就初始化. 有些代码是在不创建对象的情况下,由其他程序来调用,需要使用静态方法.这种代码是被动执行的. 静态方法在类加载的时候就已经加载,可以用类名直接调用 比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执行的,而静态方法是被调用的时候才执行的. 区别很简单: 静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次: 非静态代码块,在创建对象的时

  • Java编程中的4种代码块详解

    在Java编程中,代码块就是指用"{}"括起来的代码.下面看一下这四种代码块. 1.普通代码块 就是指类中方法的方法体. public void xxx(){ //code } 2.构造块 下面用"{}"括起来的代码片段,构造块在创建对象时会被调用,每次创建对象时都会被调用,并且优先于类构造函数(包括有参和无参的)执行. 构造块中定义的变量是局部变量. public class Client { {//构造代码块 System.out.println("执

  • Java杂谈之类和对象 封装 构造方法以及代码块详解

    目录 1. 类和对象的初步认知 2. 类的实例化 3. 类的成员 字段(属性/成员变量) 方法 static 关键字 修饰字段 修饰方法 修饰代码块(暂不讲) 修饰类(暂不讲) 4. 封装 5. 构造方法 6. this 用法 关于引用的几个注意事项: 7. 代码块 Java当中的类和对象 1. 类和对象的初步认知 java 是一门面向对象的语言,所谓面向对象有别于面向过程,面向对象是只需对象之间的交互即可完成任务,但是面向过程的话,需要我们将每一个步骤都详细地做出来.比如,以洗衣服为例,如果是

  • java 代码块与静态代码块加载顺序

    java 代码块与静态代码块加载顺序 public abstract class ClassLoadingTest { public static void main(String[] args) { User user3 = new User(); } } public class User { public static User user= new User("wang",18); public static void userSay(){ System.out.println(

  • java代码块之简易qq登录界面及按钮颜色设置代码

    本文主要分享了关于简洁版qq登录界面及按钮颜色设置的相关代码,供参考. java代码块 公共包(初始化窗口位置) package util; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JFrame; //图形化界面的工具类 public class FrameUtil { //设置窗体出现在中间位置 public static void initFrame(JFrame frame,int wid

  • Java代码块与代码加载顺序原理详解

    这篇文章主要介绍了Java代码块与代码加载顺序原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本文首先介绍几个基本的名次,然后介绍了三种代码块的特性和使用方法. 在面试大型公司时,如果遇到大型国企或者大的互联网私企,笔试中经常遇到代码块和代码加载顺序的笔试题.这里做一个总结,也方便各位小伙伴飙车不会飘. 名词解释 代码块 由 { } 包起来的代码,称为代码块 静态代码块 由 static { } 包起来的代码,称为静态代码块. 不同类型

  • JAVA代码块你了解吗

    目录 非静态代码块:没有static修饰的代码块 静态代码块:用static修饰的代码块 用处 总结 非静态代码块:没有static修饰的代码块 可以有输出语句 可以对类的属性声明进行初始化操作 可以调用静态或者非静态的变量或方法 若有多个非静态的代码块,那么按照从上到下的顺序依次执行 再次创建对象的时候都会执行,且先于构造函数执行 代码: public class Per { { System.out.println("非静态代码块1"); } { System.out.printl

  • Java深入理解代码块的使用细节

    目录 1.基本介绍 基本语法 快速入门 2.代码块细节 类的调用顺序 实例 代码块细节2 实例 代码块细节2 实例 1.基本介绍 代码块又称为初始化块,属于类中的成员(类的一部分),类似于方法,讲逻辑语句封装在方法体中,用{}抱起来: 但和方法不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象或类显式调用. 基本语法 (修饰符)(可有可无){代码}: 注: 1.修饰符可选,要写只能写static 2.代码块可分为两类,使用static修饰的叫静态代码块,没有static修饰的叫普

  • Java浅析代码块与构造块及静态块三者之间的关系

    目录 普通代码块(本地代码块) 构造块(实例代码块) 静态块(静态代码块) 他们之间有什么关系呢 例子 分析 普通代码块(本地代码块) 定义在方法里面用{ }括起来的代码块(凡是用{ }括起来都叫代码块,只是没有细分),就是普通代码块,也叫本地代码块.(不多见,也不常用) 例如: public class Test { public static void main(String[] args){ { System.out.println("本地代码块!"); } } } 构造块(实例

  • Java简明解读代码块的应用

    目录 什么是代码块 代码块的分类 普通代码块 构造块(实例代码块) 静态代码块 代码块的一些特性 什么是代码块 java中被 {} 括起来的代码这部分被称为代码块 代码块的分类 普通代码块(本地代码块)构造块(实例代码块)静态块同步代码块 本片文章就先讲普通代码块,构造快和静态块.而同步代码块一般在多线程种用到,后面写到多线程的时候会说同步代码块,在这就不多说了.代码块还是很简答的,但是有一些要注意的点希望大家记住,接下来我会通过普通代码块,构造快和静态块一起对比来讲解. 普通代码块 普通代码块

  • java中synchronized(同步代码块和同步方法)详解及区别

     java中synchronized(同步代码块和同步方法)详解及区别 问题的由来: 看到这样一个面试题: //下列两个方法有什么区别 public synchronized void method1(){} public void method2(){ synchronized (obj){} } synchronized用于解决同步问题,当有多条线程同时访问共享数据时,如果进行同步,就会发生错误,Java提供的解决方案是:只要将操作共享数据的语句在某一时段让一个线程执行完,在执行过程中,其他

  • 举例说明Java中代码块的执行顺序

    前言     今天在看Android ContentProvider实现的时候,突然想到了Java类在new的过程中,静态域.静态块.非静态域.非静态块.构造函数的执行顺序问题.其实这是一个很经典的问题,非常考察对Java基础知识的掌握程度.很多面试过程中相信也有这样的问题,趁着周末有时间复习一下. 结论     这里先把整理好的结论抛给大家,然后我在写个程序来验证我们的结论.在Java类被new的过程中,执行顺序如下: 实现自身的静态属性和静态代码块.(根据代码出现的顺序决定谁先执行) 实现自

随机推荐