一
Причина: Если класс содержит метод построения пользовательских, заставит систему больше не предоставлять конструктор по умолчанию
два
поле Java инициализируется закон: Когда оба блока инициализации, есть конструктор в классе Java также задать начальное значение поля, то значение конечной продукции должно судить, когда строительство новых объектов, новым , Его значение присваивается ему, независимо от исходного значения в блоке инициализации и полей внутри исходного конструктора класса. Если нет никакого присваивания для соответствующих переменных в функции конструктора. Тогда значение переменного размера зависит от начального значения блока инициализации и кто устанавливает поля вопроса, кто должен. Кто отстает от последнего значения, присвоенного переменной. На самом деле не писать код, вы должны стремиться к тому, что поле инициализируется только один раз.
три
静态初始化块的执行顺序: (1)静态初始化块只执行一次。
(2)创建子类型的对象时,也会导致父类型的静态初始化块的执行。
四
1 package cn.demo8; 2 3 4 public class Testtttt{ 5 int a = 2;//实例变量 6 static int b = 3;//类的静态变量 7 public static void variable()//静态方法 8 { 9 System.out.println("实例变量a = " + new Testtttt().a); 10 //在静态方法中访问类的实例变量需首先进行类的实例化 11 12 System.out.println("静态变量b = " + b); 13 //在静态方法中可直接访问类的静态变量 14 } 15 public static void main(String[] args) 16 { 17 Testtttt.variable(); 18 Testtttt test = new Testtttt(); 19 System.out.println("结果是 :实例变量 = " + test.a);//访问实例成员 20 } 21 }
五
package cn.demo8;
public class Testtttt
{
public static void main(String[] args)
{
Integer i1=100;
Integer j1=100;
System.out.println(i1==j1);
Integer i2=129;
Integer j2=129;
System.out.println(i2==j2);
}
}
nteger=100; 实际上调用的是Integer.valueOf(int i);
因为从-127到128之间的Integer数,Java在Integer中有事先缓存好的原型对象,每次返回的都是同一个Integer对象,只有不在这个范围的数才会新创建出一个Integer,最后所指都不是同一个对象,所以比较的不是同一个对象。