首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

几道小小的题目一起和大家更进一步的了解 Java :),该如何处理

2011-12-31 
几道小小的题目一起和大家更进一步的了解 Java :)做题规则:不允许进行上机操作。1.请问以下程序会输出什么?

几道小小的题目一起和大家更进一步的了解 Java :)
做题规则:不允许进行上机操作。

1.   请问以下程序会输出什么?

  public   class   Test   {
    public   static   void   main(String[]   args)   {
      Parent   parent   =   new   Parent();
      Parent   child   =   new   Child();
      System.out.println(parent.getName());
      System.out.println(child.getName());
    }
  }

  class   Parent   {
    public   static   String   getName()   {
      return   "Parent ";
    }
  }

  class   Child   extends   Parent   {
    public   static   String   getName()   {
      return   "Child ";
    }
  }

=======   我   ==   是   ==   题   ==   目   ==   间   ==   的   ==   小   ==   分   ==   隔   ==   符   =======

2.   请问以下程序会输出什么?

  public   class   Test   {
    public   static   void   main(String[]   args)   {
      for(int   i   =   0;   i   <=   10;   i++)
        Integer   k   =   new   Integer(i);
      System.out.println( "Java   Puzzlers ");
    }
  }

=======   我   ==   是   ==   题   ==   目   ==   间   ==   的   ==   小   ==   分   ==   隔   ==   符   =======

3.   请补全   i   的声明(要求:i   不允许为   float、double、Float   和   Double   类型)让其能输出“Hello   World”。

  public   class   Test   {
    public   static   void   main(String[]   args)   {
      ________________;   //   补全   i   的声明
      if(   i   !=   i   +   0)   {
        System.out.println( "Hello   World ");
      }
    }
  }

=======   我   ==   是   ==   题   ==   目   ==   间   ==   的   ==   小   ==   分   ==   隔   ==   符   =======

4.   请问以下程序的输出结果是什么?

  import   java.math.BigInteger;

  public   class   Test   {
    public   static   void   main(String[]   args)   {
      BigInteger   one   =   new   BigInteger( "1 ");
      BigInteger   two   =   new   BigInteger( "2 ");
      BigInteger   three   =   new   BigInteger( "3 ");
      BigInteger   sum   =   new   BigInteger( "0 ");
      sum.add(one);
      sum.add(two);
      sum.add(three);
      System.out.println(sum.toString());
    }
  }

=======   我   ==   是   ==   题   ==   目   ==   间   ==   的   ==   小   ==   分   ==   隔   ==   符   =======

5.   请将下面程序中的空格补全(要求见程序中)

  //   忽略   import   语句
  public   class   Test   {
    
    public   static   void   main(String[]   args)   {    
      List <String>   list   =   new   ArrayList <String> ();
      list.add( "d ");
      list.add( "c ");
      list.add( "c ");
      list.add( "a ");
      list.add( "a ");
      list.add( "b ");


      list.add( "b ");    
      list   =   removeDuplicate(list);
      //   输出的结果应是“d   c   a   b   ”
      for(String   str   :   list)   {
        System.out.print(str   +   "   ");
      }
    }
    
    /**
       *   方法功能:移除   List   中重复的元素,并保持原有的顺序
       */
    public   static   <T>   List <T>   removeDuplicate(List <T>   list)   {
      //   把空格处完善
      return   ____________________________________;
    }
  }

以上的题目,你能答对多少呢?不管你能做对多,能从中学习到些什么,就是对我贴这些题目最大的安慰了。帖子是有分的哦(请不要出现   JF、接分之类的回复,谢谢)

=   =   =   以   =   下   =   的   =   内   =   容   =   请   =   把   =   题   =   目   =   做   =   完   =   再   =   看   =   好   =   吗   =   =   =

其他说明:以上题目均改自《Java   解惑》一书,十分推荐各位看一下,CSDN   上有下载   http://download.csdn.net/source/172506   ,资源上传者要收取下载者   1   分,不过下完后回复一下评论就不会扣分了。

ps:   绝对不是做广告,我只是想给大家推荐一本好书,希望各位能理解我的用意。

[解决办法]
支持LZ


[解决办法]
1,ParentChild
2,Java Puzzlers
3,Integer i=new Integer();
4,6
[解决办法]
都是乍一看不难的题目,但都是容易被忽略的题目,
收下了。。。。。。。。
[解决办法]
难为楼主为了让大家看清代码,还用全角空格做了缩排,鼓励一下!

不过,用普通的空格应该也可以吧?试试……

缩两个空格
缩四个空格
……
[解决办法]
心里没底。。去下书看先。。。
[解决办法]
有意思
[解决办法]
有几题还真得上机试试
[解决办法]
留名
[解决办法]
去下
[解决办法]
小頂一下
[解决办法]
学习一下
[解决办法]
1,Parent Parent
2,Java Puzzlers
3,String i= " ";
4,0
5,new ArrayList <T> (new HashSet <T> (list))

应该正确吧!!!!
[解决办法]
haha
[解决办法]
thanks
[解决办法]
貌似第二个有错
[解决办法]
哎 看来我基础知识还是不行啊。
谁说说第一个题为什么是两个parent啊
[解决办法]
1.程序重载有错,编译不通过。
2。Java Puzzlers
3。String i = " "或者任何字符串;
4. 6
5。new ArrayList <T> (new HashSet <T> (list))

靠这几个答案接点分了,谢谢。
[解决办法]
1,Parent Parent
2,Java Puzzlers


3,不懂
4,6?不懂
5,不懂
觉得自己好菜。。。。。。。。

[解决办法]
不错的题目,学习一下
[解决办法]
第二题编译不能通过。。
第一题可以的 Parent Parent

第四题 0


[解决办法]
这个不顶不是人啊,下载下来了马上去看
[解决办法]
关于第一题,我有话要说:
之前,我的答案说是编译不能通过,是基于这样的考虑,一方面是静态方法在Java中不能重写(override),这样就引发了一个问题:Java中,同名的子类方法和父类方法,除了重写(override)和重载(overload),题目中的父子同名的getName既不是重写也不是重载,那他们是什么关系?

而,子类明显的继承了父类的getName方法,在子类中有两个同名的方法,难道不会引起命名冲突?
[解决办法]
呵,刚上级验证了一下,才对了2题。
SIGH~
基础十分不过关,呵!
支持楼主。
[解决办法]
以前在图书馆也经常看到这本《java解惑》,但都没把它放在心上。
呵,马上要找工作了,看来要好好加把劲才行了!
[解决办法]
好玩!去看看
[解决办法]
to bao

当然不会出错了,因为都是静态方法。所以子类方法的 getName() 就不是方法的重写,其貌似重写的作用根本没有产生,根据对象的声明,第二句只会输出的是 Parent.getName() 方法。

不是方法的重写,但是又继承了父类的同原型的方法,难道在子类中不引起冲突?不要绕过本质的问题看程序的结果,就是子类中现在有一个父类的getName方法,又有一个子类的getName方法,这样不会引起冲突吗?
[解决办法]
bu cuo..
[解决办法]
1.parent parent 因为是静态方法,而且两个引用都是parent的,所以只会调用parent的方法。
2.编译不过,把循环体加个大括号就能通过,不过我不知道这是为啥(lz能不能解释下)
3.String都可以,+0操作变成字符串拼接了。
4.0.sum返回一个biginteger的值并不改变原来的变量,所以sum = sum.add(1)这样就是6了。
5.return new ArrayList <T> (new LinkedHashSet <T> (list)); treeset是排序和hashset散列顺序(这个我不确定,好像是),LinkedHashSet维持插入次序。
[解决办法]
第二题,这样比较好理解些.
for(int i=0;i <=10;i++);
int i=0;
Integer k = new Integer(i);

原来的循环没有循环体.变量声明跟执行体不一样吧,就象类的外边写执行语句的时候要加大括号括起来一样.不知道说的对不对.说错了请指正.

[解决办法]
就对一个,郁闷。。。
[解决办法]
学习一下
[解决办法]
第四题不太明白。
[解决办法]
支持一下
我下了那本书了,真的不错...
[解决办法]
与这道题目相识:
public class TestPuzzle {

/**
* @param args
*/
public static void main(String[] args) {
Parent parent = new Parent();
Parent child = new Child();
System.out.println(parent.name);
System.out.println(child.name);
}
}

class Parent {
public static String name= "Parent ";
}

class Child extends Parent {

public static String name= "Child ";

}
原来朋友问过我,我也没有解释清楚。
[解决办法]
1,Parent Parent
2,Java Puzzlers
3,String i= " ";
4,0
5,new ArrayList <T> (new HashSet <T> (list))
这是我的答案,不知道对不对
[解决办法]
呵呵 确实不容易注意
------解决方案--------------------


1. Parent Parent
因为多态不支持静态方法,所以声明的是Parent,不管赋的是不是自类,都调用Parent的静态方法。
2. 编译不通过
因为循环体要加大括号,或者把k的声明放到循环外。
3. String i= " ";
没什么好解释的。。
4. 0
BigInteger的add方法返回值为两个数的和(BigInteger类型),而本身值不变,查看API
5. 最后一题想不出来,没法保证顺序不变。。郁闷!
[解决办法]
1、Parent Parent
2、Java Puzzlers 我没试能不能编译通过,不过我认为这样写没有问题,循环体里声明变量没问题呀,每次进循环都应该把原变量弹栈再压栈吧?
3、String i= " ";
4、0
5、不会
[解决办法]
1 Parent Parent
3 任何的String

因为是初学者所以只能回答这样的结果~

谢谢LZ支持
[解决办法]
我的答案,编译前,除2题没解出来之外其它都做出来了:
1,Parent Parent
3,String i= " ";
4,0

2题没想到居然编译错误,后来想了一下,大概是因为没有{}包起来的时候,循环N次就成了在一个区域内重复申明N次k对象,所以会出错

5题没想到一句话的解法,到是想到了一个比较麻烦的解法,就是匿名类:
return new Object() {
public List <T> remove(List <T> list) {
Set <T> set = new HashSet <T> ();
List <T> l = new ArrayList <T> ();
for (int i = 0; i < list.size(); i++) {
T t = list.get(i);
if (!set.contains(t)) {
l.add(t);
set.add(t);
}
}
return l;
}
}.remove(list);

如果不考虑缩进的话,这些代码完全可以写在一行,return之后,不知道算不算正解呢。
[解决办法]
好象二个有错,编译不能通过
[解决办法]
1 Parent Parent
2 编译错
3 String i= "wrong "
4 0
5 hashset?
感觉是这样
[解决办法]
学习了
[解决办法]
除了第三个作对了,都不对,郁闷,而且第四题的貌似在哪见过
[解决办法]



[解决办法]
搂住,你的小题讨论到这里应该结贴了吧?出来混,都听不容易的,给点分吧。

热点排行