资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Java代码块用什么括,java中的代码块有哪些

JAVA构造代码块所在区域

一.简介

创新互联是一家集网站建设,娄星企业网站建设,娄星品牌网站建设,网站定制,娄星网站建设报价,网络营销,网络优化,娄星网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

首先说一下,Java中有哪些代码块.

普通代码块

就是在方法后面使用"{}"括起来的代码片段,不能单独执行,必须调下其方法名才可以执行.12

静态代码块

在类中使用static修饰,并使用"{}"括起来的代码片段,用于静态变量的初始化或对象创建前的环境初始化.12

同步代码块

使用synchronize关键字修饰,并使用"{}"括起来的代码片段.它表示在同一时间只能有一个线程进入到该方法快中,是一种多线程保护机制.12

构造代码块

在类中没与任何的前缀或后缀,并使用"{}"括起来的代码片段.12

简单的例子:

public class Client {

{//构造代码块

System.out.println("执行构造代码块");

} public Client() {

System.out.println("执行无参构造函数");

} public Client(String string) {

System.out.println("执行有参构造函数");

}

}12345678910111213

这是一丢按非常简单的代码,它包含了构造代码块,无参构造,有参构造.我先看一个问题,我们知道代码块不具有独立执行的能力,那么编译器是如何处理构造代码块的呢?很简单,编译器会把构造代码块插入到每个构造函数的最前端.这样 上面的代码就等同于:

public class Client { public Client() {

System.out.println("执行构造代码块");

System.out.println("执行无参构造函数");

} public Client(String string) {

System.out.println("执行构造代码块");

System.out.println("执行有参构造函数");

}

}12345678910111213

二.特性与应用

基本的理解后,我们再来看下其和构造函数的执行顺序.由于是插入到构造函数的的前面,自然在通过new关键字生成一个实例的时候会先执行构造代码块,然后在执行其他代码(注意:构造代码块不是在构造函数之前运行,而是依托于构造函数).接着我们来看一下两个主要的应用场景:

1.初始化实例变量

如果每个构造函数都需要初始化变量,即可通过构造代码块来实现.从而取代在每个构造函数调用初始化实例变量的方法.12

2.初始化实例环境

一个对象必须在适当的场景下才能存在,如果没有适当的场景,则就需要在创建对象的时候创建此场景.12

以上两个场景都是利用了构造代码块的两个特性:

1.在每个构造函数中都运行

2.在构造函数中它会首先运行123

三.构造代码块足够聪明

首先看一段代码,使用构造代码块做对象计数器.

public class Client { public static int count = 0;

{

count++;

} public Client() {

} public Client(int i) { this();

} public Client(String string) {

} public static void main(String[] args) { new Client(); new Client(1); new Client("1");

System.out.println(Client.count);

}

}123456789101112131415161718192021222324

这个代码真的达到我们预期的效果吗?你可能会对this()产生了质疑.

答案是:3.

显然Java编译器是足够聪明的.这是因为,在插入到每个构造函数中的时候,有个例外,就是如果遇到this关键字(也就是构造函数调用自身其他的构造函数时)不插入构造代码块.

那为什么编译器这么聪明呢?这是因为构造代码块的出现就是为了提取构造函数的共同量,减少各个构造函数的代码而产生的.

四.总结

灵活适当的使用构造代码块会让你的代码更加的简约和清晰.代码的质量自然很高很多,逼格也高了许多,有没有.

最后还有一点需要注意的,千万不要认为this是特殊情况,那super也会类似处理.其实不会,在构造代码块的处理上,super方法没有任何特殊的地方.编译器只是把构造代码块插入到super方法之后执行而已.

Java 逻辑代码块是什么

java逻辑代码块是指使用{}大括号内的代码片段,为了实现某种逻辑和主类区分开来的一段代码。分为静态代码块、普通代码块,示例如下:

/**

* 静态代码块先于构造器执行 普通块先于构造块  只执行一次

* 凡是静态的与对象无关,先于对象存在的; 凡是静态的都是共享的

*

*/

public class Test {

static {//静态代码块

System.out.println("static");

}

{

System.out.println("普通块2");

}

public Test() {

System.out.println("构造器");

}

java中括号是什么意思?

中括号表示代码块,一般定义类,方法或者代码块都要用到花括号

比如

class A{定义类}

void print{定义方法}

static {

定义静态代码块

}

java 方法 中 { } 括起来的代码 有什么特别?

一、普通代码块

直接在一个方法中出现的{}就称为普通代码块,例子程序如下:

public class CodeDemo01{

public static void main(String[] args){

//普通代码块

{

int x = 10;

System.out.println("x=" + x);

}

int x = 100;

System.out.println("x=" + x);

}

}

二、构造代码块

直接在类中定义的没有加static关键字的代码块{}称为构造代码块,例子程序如下:

public class CodeDemo02{

public CodeDemo02(){

System.out.println("========这是构造方法=========");

}

//这是构造代码块,而且在new对象时,构造代码块优先构造方法执行

{

System.out.println("=========这是构造块!=========");

}

public static void main(String[] args){

new CodeDemo02();

new CodeDemo02();

}

}

三、静态代码块

使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化,例子程序如下:

public class CodeDemo03

{

static{

System.out.println("这是主类中的静态代码块!");

}

public static void main(String[] args){

new Demo();

new Demo();

new Demo();

}

}

class Demo

{

static{

System.out.println("这是Demo类中的静态代码块!");

}

{

System.out.println("这是Demo类中的构造块!");

}

public Demo(){

System.out.println("这是构造方法!");

}

}

静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!

四、同步代码块

同步代码块主要出现在多线程中。

java编程,花括号怎么用,有什么规则

通常{}中间的代码是一个代码块,可以用作方法体、循环体、判断执行语句块等等,必须是成对出现的。类class的范围也用大括号包裹。

java构造方法写两个花括号有什么用?

第一对花括号是属于构造方法的,第二对花括号括出了类的动态代码块,每次构造对象时都会执行动态代码块。

另外动态代码块是在构造方法之前执行的。


分享名称:Java代码块用什么括,java中的代码块有哪些
文章链接:http://cdkjz.cn/article/hohhss.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220