java第三章动手动脑

动手动脑

1.

(1)int value=100;

(2)MyClass obj = new MyClass();

这两种定义方式一样吗?

答:定义方式相同,其中(1)是(2)的简化写法。

2.

结果为false,原因:比较对象是否相同时,比较的是对象指向的内存地址,如果要比较对象是否相同,应对对象的各个变量进行比较。

3.

请总结一下,这个方法有哪些“与众不同之处:

不同之处:

这个方法是一个构造方法,所以没有返回值,而且其方法名与类名相同。

当创建一个对象时,它的构造方法会被自动调用。

如果类没有定义构造函数,Java编译器在编译时会自动给它提供一个没有参数的“默认构造方法”。

 4.

以下代码为何无法通过编译?哪儿出错了?

答:当你自己定义含参构造函数时,系统将不会自动生成无参构造函数,就会报错。

 5.

如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算?

在创建对象时,不进行赋值,则按照构造方法赋值;当进行赋值时,则按照赋值后的值来计算。

 6.

静态初始化块的执行顺序:

(1)先执行静态初始化块,再执行普通方法。

(2)创建子类型的对象时,也会导致父类型的静态初始化块的执行。

7.

如何在静态方法中访问类的实例成员?

答:利用参数进行传参,调用实例。

8.

答:Integer类装包实在-2^8-1~2^8之间,也就是说在-127~128之间,如果进行比较,则可以返回真值,如果数值超出范围,这无法比较。

 

posted @ 2017-10-19 20:02  牛头怪  阅读(92)  评论(0编辑  收藏  举报