标签:size 包装 返回 顺序 第一个 接收 数据类型 tran 静态方法
1.
public MyTestClass(int initValue){
Value=initValue;
}
请总结一下,这个方法有哪些“与众不同之处”,你能列出几条?
方法名与类名相同
没有void也没有返回值
2.如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值
public class InitializeBlockDemo {
public static void main(String[] args) {
InitializeBlockClass obj=new InitializeBlockClass();
System.out.println(obj.field);
obj=new InitializeBlockClass(300);
System.out.println(obj.field);
}
}
class InitializeBlockClass{
{
field=200;
}
public int field=100;
public InitializeBlockClass(int value){
this.field=value;
}
public InitializeBlockClass(){
}
}
由示例程序可知由构造函数决定
3.总结Java字段初始化的规律。
所有类的变量都默认初始化为null
数字类的原始数据类型默认初始化为0
执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
执行类的构造参数
类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。
4.静态初始化块的执行顺序
静态初始化块只执行一次。
创建子类型的对象时,也会导致父类型的静态初始化块的执行。
5.
静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?
请编写代码验证你的想法。
package lizi;
public class ceshi {
int a = 3;
static int b=4;
public static void ceshiyi()
{
System.out.println("非静态变量a=" + new ceshi().a);
System.out.println("静态变量b=" + b);
}
public static void main(String[] args)
{
ceshi.ceshiyi();
ceish i= new ceshi();
System.out.println("a=" + i.a);
}
}
由例子可知需进行类的实例化
6.Integer类的装箱和拆箱到底是怎样实现的?
装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 intValue方法实现的.
7.上述神奇代码(StrangeIntegerBehavior.java)输出诡异的结果,原因何在?
integer实现时整型范围为-128到127 第一个未超出范围所以true而第二个超出范围所以false
标签:size 包装 返回 顺序 第一个 接收 数据类型 tran 静态方法
原文地址:http://www.cnblogs.com/zhpdqs/p/7698384.html