JAVA基础Error

这些都是在平时的面试或者什么时候会出现的小问题陷阱,再次做下记录和大家共勉
1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package Wangyi;
class Base
{
     public void method()
     {
         System.out.println( "Base" );
    
}
class Son  extends Base
{
     public void method()
     {
         System.out.println( "Son" );
     }
     
     public void methodB()
     {
         System.out.println( "SonB" );
     }
}
public class Test01
{
     public static void main(String[] args)
     {
         Base base =  new Son();
         base.method();
         base.methodB();
     }
}

问这个程序的输出结果。


正确答案: D   你的答案: C (错误)

Base SonB
Son SonB
Base Son SonB
编译不通过		
解析:
下面这道题,我在分析的时候,已经想到了在new多态的时候,需要小心(需要注意多态是需要条件的:比如:必须extends和重写父类方法)
但是没有注意到: 父类的引用无法访问子类独有的方法


2)
有如下4条语句:()
1
2
3
4
Integer i01= 59 ;
int i02= 59 ;
Integer i03=Integer.valueOf( 59 );
Integer i04= new Integer( 59 );
以下输出结果为false的是:

正确答案: C   你的答案: D (错误)

System.out.println(i01==i02);
System.out.println(i01==i03);
System.out.println(i03==i04);
System.out.println(i02==i04);

解析:
在分析这道题的时候确实是在CD两个选项之间犹豫,当时已经忘记什么装箱拆箱之类的概念了
下面分析一下这道题目了
A:Integer i01 = 59. 直接赋值数字,java会自动装箱,自动调用Integer.valueOf(59). 
B:int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
C: 整数类型在-128~127之间时,会使用缓存,造成的效果就是,如果已经创建了一个相同的整数,使用valueOf创建第二次时,不会使用new关键字,而用已经缓存的对象。所以使用valueOf方法创建两次对象,若对应的数值相同,且数值在-128~127之间时,两个对象都指向同一个地址。


3)











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值