「java非静态构造代码」java非静态构造代码是什么
今天给各位分享java非静态构造代码的知识,其中也会对java非静态构造代码是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
在java中,什么叫静态,什么叫非静态
由static
关键修饰的内容
为静态
;
反之
,为非静态
静态变量
属于
类
,为所有对象共有
分静态变量
属于
对象
,
每个对象都可以有且属性值可以各异
静态变量优于非静态变量加载,故
静态代码块中不能引用非静态成员,会报错
java 中静态代码和非静态代码块的区别!
相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,
一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行(静态代码块—非静态代码块—构造方法)。
静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new
一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
例:
//普通类
public class PuTong {
public PuTong(){
System.out.print("默认构造方法!--");
}
//非静态代码块
{
System.out.print("非静态代码块!--");
}
//静态代码块
static{
System.out.print("静态代码块!--");
}
public static void test(){
{
System.out.println("普通方法中的代码块!");
}
}
}
//测试类
public class TestClass {
/**
* 区别两次new静态与非静态代码块执行情况
*/
public static void main(String[] args) {
PuTong c1 = new PuTong();
c1.test();
PuTong c2 = new PuTong();
c2.test();
}
}
/*
运行输出结果是:
静态代码块!--非静态代码块!--默认构造方法!--普通方法中的代码块!
非静态代码块!--默认构造方法!--普通方法中的代码块!
*/
java先执行静态代码,再非静态代码,main方法是程序入口。不是先执行main方
是执行main方法所在的类,
一个类的加载过程中,先执行静态代码块,然后非静态代码块,然后是构造方法,,,这个过程,是类加载的过程,比如你没有new这个类的对象,那就不会有这个过程
关于java非静态构造代码和java非静态构造代码是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-15,除非注明,否则均为
原创文章,转载请注明出处。