java动态代码块 java 静态代码块一般用来做什么

Java常见代码块的作用与区别

1. 局部代码块

目前成都创新互联已为1000+的企业提供了网站建设、域名、虚拟空间、网站运营、企业网站设计、西湖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

作用在方法当中,作用是控制变量的生命周期:

public void show(){

{

System.out.println("局部代码块运行!");

}

}123456

在程序中当我们定义完成一个局部变量x之后,并且在接下来的代码中,不想再用到它时,那么就没必要让x在内存中继续占用空间。因此就有了局部代码块。

2. 构造代码块

作用在类的定义Body中,作用是给类的部分字段统一初始化:

public class Apple {

private String size;

//构造代码块

{

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

size = "E";

}

}

12345678910

构造代码块与构造函数的区别是:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化,因为构造函数是可以多个的,运行哪个构造函数就会建立什么样的对象,但无论建立哪个对象,都会先执行相同的构造代码块。也就是说,构造代码块中定义的是不同对象共性的初始化内容。所以理所当然的,构造代码块在构造函数之前执行。

3. 静态代码块

作用有两个:

(1)给类的静态变量赋值;

(2)声明静态变量;

作用在类的Body中,对类中的静态变量初始化:

public class APP {

static int x, y; // 静态变量

static {

x = 5; // 给静态变量x赋值

}

public static void myMethod() {

y = x++ + ++x; // x++ 先使用x的值再加1;++x先加1再使用x的值

}

public static void main(String[] args) {

x--;

myMethod();

System.out.println(x + y + ++x);

}

}

输出:23

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

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

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

如何在Java中动态创建一个类

package demo;

//使用反射

//Class.forName(className)).newInstance()

class Reflect {

static {

System.out.println("动态创建Reflect类,这是静态代码块");

}

public void speak() {

System.out.println("动态创建Reflect类");

}

}

public class ReflectDemo {

public static void main(String[] args) throws Exception {

Class? Demo = Class.forName("demo.Reflect");

Reflect test = (Reflect) Demo.newInstance();

test.speak();

}

}

测试结果:

动态创建Reflect类,这是静态代码块

动态创建Reflect类

java中空final静态常量为什么不能在动态语句块中赋值

静态常量是属于类的属性,只有有了类,就有了这儿常量,不能变动的,所以就不能再动态语句里赋值使用了,只能在初始化赋初值,静态块中执行,而动态语句基本都是方法,是在堆中的,地址、内容属于可变化的,两者属性不一致


本文标题:java动态代码块 java 静态代码块一般用来做什么
分享网址:http://bzwzjz.com/article/doddpdh.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 重庆企业网站建设 定制级高端网站建设 定制网站建设 专业网站建设 手机网站制作 网站建设推广 成都网站建设 成都响应式网站建设 成都网站制作 四川成都网站设计 成都企业网站制作 达州网站设计 成都网站建设公司 成都网站建设 网站建设 阿坝网站设计 重庆网站建设 高端网站设计 成都网站设计 自适应网站设计 成都网站设计 网站制作公司