java构造函数和初始化】的更多相关文章

1.如果构造函数的第一条语句是一条普通的语句.也就是说,不是对this()或super()的调用,那么java会插入一个隐式的super()调用,从而调用超类的默认构造函数.从该调用返回时,Java将对当前类的实例变量初始化,并继续执行当前构造函数的语句. 2.如果构造函数的第一条语句是通过super()对一个超类构造函数的调用,那么Java则会调用所选定的超类构造函数.在其返回时,Java将对当前类的实例变量初始化,并继续执行当前构造函数的语句. 3.如果构造函数法的第一条语句是通过This对…
本人小白一枚,看java类的初始化的时候好晕的说,我觉着书上尽管说的对.但总认为有些信息没说出来,没说清楚,看了好多文章博客的,如今有些感悟,来小写下总结,也算是为以后再次复习种个好果子. 先摘一下书上写的: 载入:将类的class文件读入内存,并为之创建一个java.lang.class对象. 连接:把类的二进制数据合并到JRE中,检查被载入的类是否有正确的内部结构,并和其它类协调一致.为类的静态FIELD分配内存,设置默认值,将类的二进制数据中的符号引用替换成直接引用. 初始化:主要对静态F…
建议35: 避免在构造函数中初始化其他类 构造函数是一个类初始化必须执行的代码,它决定着类的初始化效率,如果构造函数比较复杂,而且还关联了其他类,则可能产生意想不到的问题,我们来看如下代码: public class Client { public static void main(String[] args) { Son s = new Son(); s.doSomething(); } } // 父类 class Father { Father() { new Other(); } }//…
静态的属于全局静态区,这个部分独立存在,不管是成员还是块,都是静态的,大家地位相等,先到先得. 然后是成员初始化,这个部分在类的构造函数前初始化,因为编译器(或者设计者)可能认为构造函数调用了这个成员变量,所以在其前初始化了.或者说是成员自己有自己的能力来初始化自己,不用构造函数来管,这部分属于能力比较强的,虽然没有静态的地位高,但是,还是能自给自足的一部分团体. 最后才构造函数,这个时候就开始动工来建立这个类的实例了.这个步骤相当于建大楼,终于开始建立了,前面的准备工作已经准备完了,下面就开始…
JAVA字段的初始化规律 1.类的构造方法 (1)“构造方法”,也称为“构造函数”,当创建一个对象时,它的构造方法会被自动调用.构造方法与类名相同,没有返回值. (2)如果类没有定义构造函数,Java编译器在编译时会自动给它提供一个没有参数的“默认构造方法”.如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. 例如: public class Test{ public static void main(String[] args){ Foo obj1=new Foo();    …
转载:http://blog.csdn.net/moreevan/article/details/6968718 我们知道一个类(class)要被使用必须经过装载,连接,初始化这样的过程.下面先对这三阶段做一个简单的描述,之后会结合一个简单的例子来说明Java中类的初始化过程. 在装载阶段,类装载器(Bootstrap ClassLoader 或者用户自定义的ClassLoader) 把编译形成的class文件载入内存,创建类相关的Class对象,这个Class对象封装了我们要使用的类的类型信息…
http://tanbing1986411.blog.163.com/blog/static/7259798220103610224434/ java static final 初始化 1.static修饰(类变量)一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用. public class Test{ public static int a;//…
Java类的初始化顺序   在开发中,知道Java类的初始化顺序才能让我们更加清楚地掌握程序的执行流程.先把结论贴出来,Java里,从图里的1~6,分别按顺序执行.   以下为代码验证阶段,一共三个类:基类(Base).子类(Sub)和工具类(Log,输出日志). package com.kobe.practice.order; public class Sub extends Base { public static void main(String[] args) { Sub sub = n…
概述 在java中,一个类能够包括的元素有变量,方法,代码块.这当中变量能够分为普通变量和静态变量,代码块也有静态代码块和普通代码块.在创建一个对象的时候,这个对象是怎么初始化的呢.这里我们就開始来解说一下,由于方法仅仅有在调用的时候才会用到.因此这里不将方法的初始化.而主要讲的是变量.代码块以及构造函数的初始化顺序 单个类的初始化 当一个类中包括静态变量.静态代码块,普通变量,普通代码块,以及构造函数时:(注意这里单个类是差别于有继承关系的类来说的,之后会讲到当有继承关系的时候类的初始化顺序)…
博客分类: 面向对象设计的原则 与 概念   1. Java 的构造函数 与初始化块: a. 抽象类的构造函数 若果在父类中(也就是抽象类)中显示的写了有参数的构造函数,在子类是就必须写一个构造函数来调用父类的构造函数 abstract class Person {   //定义一个抽象类,必须被继承 Person(int i) { } } public class Student extends Person { Student() { super(int i)://必须显示的调用父类构造方法…