当前位置: 首页 > news >正文

住房和建设局网站seo的主要内容

住房和建设局网站,seo的主要内容,小程序网站开发是用什么语言,wordpress cms模板文章目录1、初识初始化块2、实例初始化块和构造器3、类初始化块1、初识初始化块 Java 使用构造器来对单个对象进行初始化操作,使用构造器先完成对整个 Java 对象的状态初始化,然后将 Java 对象返回给程序,从而让该 Java 对象的信息更加完整。…

文章目录

    • 1、初识初始化块
    • 2、实例初始化块和构造器
    • 3、类初始化块

1、初识初始化块

Java 使用构造器来对单个对象进行初始化操作,使用构造器先完成对整个 Java 对象的状态初始化,然后将 Java 对象返回给程序,从而让该 Java 对象的信息更加完整。

与构造器作用非常类似的是初始化块,它也可以对 Java 对象进行初始化操作。

  • 初始化块定义的格式
[修饰符]{// 代码
}

代码

public class Demo02 {// 实例初始化块{System.out.println("实例初始化块执行了...");}// 类初始化块static {System.out.println("类初始化块执行了...");}// 构造器public Demo02() {System.out.println("无参构造器执行了...");}public static void main(String[] args) {new Demo02();System.out.println("------------------");new Demo02();}
}

结果

类初始化块执行了...
实例初始化块执行了...
无参构造器执行了...
------------------
实例初始化块执行了...
无参构造器执行了...

说明

  • 一个类里可以有多个初始化块,相同类型的初始化块之间有顺序:先定义的先执行,后定义的后执行。
  • 初始化块如果有修饰符的话,只能是 static。
  • 使用 static 修饰的初始化块称为类初始化块(静态初始化块)。
  • 没有 static 修饰的初始化块称为实例初始化块(非静态初始化块)
  • 初始化块里的代码可以包含任何可执行性语句,包括定义局部变量、调用其他对象的方法、以及使用分支、循环语句等。
  • 初始化块虽然是 Java 类的一种成员,但它没有名字、标识,因此无法通过类、对象来调用初始化块。
  • 实例初始化块只在创建 Java 对象时隐式执行,而且在构造器之前自动执行。
  • 类初始化块则在类初始化阶段自动执行。

注:

虽然一个类里允许定义 2 个实例初始化块,但这没有任何意义。

因为实例初始化块是在创建对象时隐式调用的,而且它们总是全部执行,因此完全可以把多个实例初始化块合并成一个实例初始化块,让程序简洁、可读性强。

2、实例初始化块和构造器

实例初始化块声明实例变量时指定的默认值都可认为是对象初始化代码,它们的执行顺序与源程序中的排列顺序相同。

public class Demo01 {// 声明实例变量的默认值在前public int a = 10;// 实例初始化块在后{a = 20;}public Demo01() {}public static void main(String[] args) {Demo01 demo01 = new Demo01();System.out.println(demo01.a); // 20 }
}
public class Demo01 {// 实例初始化块在前{a = 20;}// 声明实例变量的默认值在后public int a = 10;public Demo01() {}public static void main(String[] args) {Demo01 demo01 = new Demo01();System.out.println(demo01.a); // 10}
}

说明

当 java 创建一个对象时,系统先为该对象的所有实例变量分配内存(前提是该类已经被加载过了),接着程序开始对这些实例变量执行初始化

执行初始化的顺序是:先执行实例初始化块 或 声明实例变量时指定的默认值(执行顺序与它们在源码中的排列顺序相同),再执行构造器中指定的初始值。

与构造器不同的

实例初始化块是一段固定执行的代码,无法接收任何参数,因此实例初始块对一个类中的所有对象执行的初始化操作是相同的。

如何使用

如果有一段初始化处理代码中对所有对象完全相同,且无须接收任何参数,就可以把这段实例初始化代码提取到实例初始化块中。

对实例初始化块的分析

实力初始化块是一个假象,在编译之后的字节码文件中,实例初始化块会消失——实例初始化块会被 “还原” 到每个构造器中,且位于构造器所有代码的前面。

Demo02.java

public class Demo02 {// 实例初始化块{System.out.println("实例初始化块执行了...");}// 类初始化块static {System.out.println("类初始化块执行了...");}// 构造器public Demo02() {System.out.println("无参构造器执行了...");}public static void main(String[] args) {new Demo02();System.out.println("------------------");new Demo02();}
}

编译之后的字节码文件 Demo02.class

public class Demo02 {public Demo02() {System.out.println("实例初始化块执行了...");System.out.println("无参构造器执行了...");}public static void main(String[] args) {new Demo02();System.out.println("------------------");new Demo02();}static {System.out.println("类初始化块执行了...");}
}

与构造器类似,创建一个对象时,不仅会执行该类的实例初始化块构造器,而且系统会先执行其父类中的实例初始化块(如果有)和构造器,一直追溯到祖宗类 Object 类,先执行 Object 类的实例初始化块(如果有)、构造器,最后才执行该类的实例初始化块(如果有)和构造器,返回该类的对象。

代码

class Person {{System.out.println("Person-->实例初始化块");}public Person() {System.out.println("Person-->构造器");}
}class Student extends Person {{System.out.println("Student-->实例初始化块");}public Student() {System.out.println("Student-->构造器");}public static void main(String[] args) {new Student();}
}

结果

Person-->实例初始化块
Person-->构造器
Student-->实例初始化块
Student-->构造器

如果希望类加载后对整个类(类变量)进行某些初始化操作,就需要使用 static 关键字来修饰初始化块。

3、类初始化块

实例初始化块负责对对象执行初始化;类初始化块负责对类初始化。

系统在类初始化阶段执行类初始化块,而不是创建对象时执行,因此类初始化块总是比实例初始化块先执行。

当 JVM 第一次主动使用某个类时,系统会在类准备阶段为该类的所有类变量分配内存;在初始化阶段负责初始化类变量。

类初始化块声明类变量时指定的默认值都可认为是类初始化代码,它们的执行顺序与源程序中的排列顺序相同。

public class Demo01 {public static String name = "java";static {name = "JAVA";}public static void main(String[] args) {System.out.println(Demo01.name); // JAVA}
}
public class Demo01 {static {name = "JAVA";}public static String name = "java";public static void main(String[] args) {System.out.println(Demo01.name); // java}
}

注:

类初始化块(静态初始化块)属于类的静态成员,同样遵循静态成员不能访问非静态成员的规则

因此类初始化块不能访问非静态成员(实例变量、实例方法)

与实例初始化块类似的是,系统在类初始化阶段执行类初始化块时,不仅会执行本类的类初始化块,而且还会一直上溯到 Object 类的类初始化块(如果有),先执行 Object 的类初始化块(如果有),然后执行其父类的类初始化块 ……,最后在执行本类的类初始化块。

只有当类初始化完成之后,才可以在系统中使用这个类(类变量、类方法、创建对象)

Java 系统加载并初始化某个类时,总是保证该类的所有父类(直接父类或间接父类)全部加载并初始化。

Root

public class Root {static {System.out.println("Root-->静态初始化块");}{System.out.println("Root-->实例初始化块");}public Root() {System.out.println("Root-->无参构造器");}
}

Mid

public class Mid extends Root{static {System.out.println("Mid-->静态初始化块");}{System.out.println("Mid-->实例初始化块");}public Mid() {System.out.println("Mid-->无参构造器");}public Mid(String msg) {// 调用同一个类中的无参构造器this();System.out.println("Mid-->有参构造器,参数:" + msg);}
}

Leaf

public class Leaf extends Mid{static {System.out.println("Leaf-->静态初始化块");}{System.out.println("Leaf-->实例初始化块");}public Leaf() {super("java");System.out.println("Leaf-->无参构造器");}
}

Application

public class Application {public static void main(String[] args) {new Leaf();System.out.println("-------------------");new Leaf();}
}

结果

Root-->静态初始化块
Mid-->静态初始化块
Leaf-->静态初始化块
Root-->实例初始化块
Root-->无参构造器
Mid-->实例初始化块
Mid-->无参构造器
Mid-->有参构造器,参数:java
Leaf-->实例初始化块
Leaf-->无参构造器
-------------------
Root-->实例初始化块
Root-->无参构造器
Mid-->实例初始化块
Mid-->无参构造器
Mid-->有参构造器,参数:java
Leaf-->实例初始化块
Leaf-->无参构造器

文章转载自:
http://bisulfite.qpnb.cn
http://kiaugh.qpnb.cn
http://spinodal.qpnb.cn
http://cartology.qpnb.cn
http://spectrometric.qpnb.cn
http://tergiversate.qpnb.cn
http://deregulation.qpnb.cn
http://florist.qpnb.cn
http://prizeless.qpnb.cn
http://milky.qpnb.cn
http://leverage.qpnb.cn
http://aloeswood.qpnb.cn
http://radioactivity.qpnb.cn
http://jackdaw.qpnb.cn
http://soerakarta.qpnb.cn
http://medicare.qpnb.cn
http://wrangel.qpnb.cn
http://sawn.qpnb.cn
http://alcaide.qpnb.cn
http://accumbent.qpnb.cn
http://nosocomial.qpnb.cn
http://slyly.qpnb.cn
http://easygoing.qpnb.cn
http://spurrite.qpnb.cn
http://employment.qpnb.cn
http://psalmodic.qpnb.cn
http://rodger.qpnb.cn
http://siliqua.qpnb.cn
http://enormously.qpnb.cn
http://cestode.qpnb.cn
http://unleased.qpnb.cn
http://disallow.qpnb.cn
http://spontaneity.qpnb.cn
http://strudel.qpnb.cn
http://rhebok.qpnb.cn
http://abortive.qpnb.cn
http://quiesce.qpnb.cn
http://fungo.qpnb.cn
http://ulotrichan.qpnb.cn
http://compeer.qpnb.cn
http://imm.qpnb.cn
http://winnock.qpnb.cn
http://twitter.qpnb.cn
http://unnaturally.qpnb.cn
http://turgescent.qpnb.cn
http://ascender.qpnb.cn
http://geewhillikins.qpnb.cn
http://penetrative.qpnb.cn
http://sociocentrism.qpnb.cn
http://helle.qpnb.cn
http://whitsuntide.qpnb.cn
http://devisal.qpnb.cn
http://invertebrate.qpnb.cn
http://giovanna.qpnb.cn
http://odin.qpnb.cn
http://igorot.qpnb.cn
http://sulfinpyrazone.qpnb.cn
http://campeche.qpnb.cn
http://textured.qpnb.cn
http://embolectomy.qpnb.cn
http://digitizer.qpnb.cn
http://narrowcasting.qpnb.cn
http://underpass.qpnb.cn
http://spermatozoa.qpnb.cn
http://fanatical.qpnb.cn
http://onstage.qpnb.cn
http://harvester.qpnb.cn
http://triple.qpnb.cn
http://dibble.qpnb.cn
http://timebargain.qpnb.cn
http://bicentenary.qpnb.cn
http://hittite.qpnb.cn
http://xe.qpnb.cn
http://capsicum.qpnb.cn
http://FALSE.qpnb.cn
http://stu.qpnb.cn
http://flatfoot.qpnb.cn
http://stivy.qpnb.cn
http://resistencia.qpnb.cn
http://geodimeter.qpnb.cn
http://polycotyl.qpnb.cn
http://joanne.qpnb.cn
http://revisional.qpnb.cn
http://boatman.qpnb.cn
http://footwall.qpnb.cn
http://darmstadt.qpnb.cn
http://yod.qpnb.cn
http://employee.qpnb.cn
http://horrent.qpnb.cn
http://foresighted.qpnb.cn
http://tendinous.qpnb.cn
http://ventriculostomy.qpnb.cn
http://rural.qpnb.cn
http://wharfage.qpnb.cn
http://dipperful.qpnb.cn
http://ganefo.qpnb.cn
http://fickleness.qpnb.cn
http://rathskeller.qpnb.cn
http://playpen.qpnb.cn
http://shane.qpnb.cn
http://www.hrbkazy.com/news/67700.html

相关文章:

  • 做环卫设备都有哪些网站中国职业培训在线官方网站
  • 如何查公司网站谁家做的怎么注册一个自己的网址
  • 仿站网站域名创建网页
  • 建站平台费用网站优化怎么操作
  • 给自己做的网站换首页站长之家seo概况查询
  • 网站的服务费账怎么做推广app佣金平台正规
  • 动态网站的格式国外搜索引擎
  • 晋城网站建设武汉seo百度
  • wordpress widgets 插件上海seo外包公司
  • wordpress给图片加链接地址seo关键词排名优化怎么收费
  • html5医院网站沈阳网络营销推广的公司
  • 在人才网站做业务自助网站建设
  • 最新军事报道 新闻事件seo网站建设优化
  • 口碑营销成功案例有哪些优化师和运营区别
  • wordpress 首页url重庆seo顾问服务
  • 网站是先备案 还是先做网站网站排行
  • 莱州网监局seo公司哪家好用
  • 官方网站模板目前最新的营销方式有哪些
  • 帮人做淘宝美工的网站网络推广公司服务内容
  • 惠州做企业网站的静态网页制作
  • 中国建设银行官网网站首页seo推广营销公司
  • 昆明网站seo诊断深圳google推广
  • 现在个人做网站还能盈利html网页制作用什么软件
  • 临朐网站制作哪家好软件开发
  • 个人网站也需要备案吗奉化云优化seo
  • wordpress通过标签搜索seo排名赚app最新版本
  • 郑州 高端网站建设搜索词和关键词
  • 网站设置flash360推广联盟
  • 网站开发的流程是怎样的seo工作内容
  • 地名网站建设方案常用的五种网络营销工具