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

几道小小的题目一起和大家更进一步的了解 Java (Ⅱ)解决思路

2012-03-07 
几道小小的题目一起和大家更进一步的了解 Java (Ⅱ)这是小小题目的系列之二系列之一:http://community.csdn

几道小小的题目一起和大家更进一步的了解 Java (Ⅱ)
这是小小题目的系列之二
系列之一:http://community.csdn.net/Expert/TopicView3.asp?id=5731833

做题规则:不允许进行上机操作,但可以查   API   DOC,JDK   版本   1.5。

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

  public   class   Test1   {
    public   static   void   main(String[]   args)   {
      int   num   =   32;
      System.out.println(num   > > =   32);
    }
  }

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

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

  public   class   Test2   {
    public   static   void   main(String[]   args)   {
      int   j   =   0;
      for   (int   i   =   0;   i   <   100;   i++)   {
        j   =   j++;
      }
      System.out.println(j);
    }
  }
  
=======   我   ==   是   ==   题   ==   目   ==   间   ==   的   ==   小   ==   分   ==   隔   ==   符   =======

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

  public   class   Test3   {
    public   static   void   main(String[]   args)   {
      boolean   b   =   true?false:true   ==   true?false:true;
      System.out.println(b);
    }
  }

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

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

  import   java.util.ArrayList;
  import   java.util.Iterator;
  import   java.util.List;

  public   class   Test4   {
    public   static   void   main(String[]   args)   {
      List <String>   list   =   new   ArrayList <String> ();
      list.add( "Happy ");
      list.add( "birthday ");
      list.add( "to ");
      list.add( "you. ");    
      for(Iterator   i   =   list.iterator();   i.hasNext();   )   {
        String   s   =   i.next();
        System.out.println(s);
      }
    }
  }

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

5.   Queue(队列)接口是   JDK   1.5   中新增加的类库,为了让大家更好地了解它,请说出以下程序的运行结果。

  import   java.util.Comparator;
  import   java.util.PriorityQueue;
  import   java.util.Queue;

  public   class   Test5   {
    public   static   void   main(String[]   args)   {
      Queue <Integer>   queue   =   new   PriorityQueue <Integer> (20,  
          new   Comparator <Integer> ()   {
            public   int   compare(Integer   i,   Integer   j)   {
              int   result   =   i   %   2   -   j   %   2;
              if   (result   ==   0)
                result   =   i   -   j;
              return   result;
            }
        });

      for   (int   i   =   0;   i   <   20;   i++)   {


        queue.offer(i);
      }

      for   (int   i   =   0;   i   <   20;   i++)   {
        System.out.println(queue.poll());
      }
    }
  }

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

6.   请在以下程序段中的空白处补上最简洁的语句,在程序运行后会输出运行时的时间。

  显示格式为:yyyy-MM-dd   HH:mm:ss

  public   class   Test6   {
    public   static   void   main(String[]   args)   {
      System.out.println(formatTime(System.currentTimeMillis()));
    }
    
    public   static   String   formatTime(long   time)   {
      return   _____________________________;
    }
  }

老规矩,需要粘帖代码运行的话,请将两个全身空格替换成一个   Tab   或者直接替换掉即可。

[解决办法]
第一题不会。第二道是99
[解决办法]
jf
[解决办法]
1.32
2.99
3.true
4.b h t y
其他的不会.
[解决办法]
第二题是0,奇怪!
[解决办法]
学习学习
[解决办法]
第三道题好象是一个下拉列表的只知道着些。希望楼主解释一下。谢了
[解决办法]
有意思,研究下。
[解决办法]
先占个位置,再慢慢研究
[解决办法]
2题:100
3题:false
本来我准备把这个答案贴上去的,发现2题和上面说的99不一样,我就运行了一下,傻眼了,居然是0.想了想,顿然醒悟,j=j++;每次j++是0,随后变为1,随后又把0赋值给j,j又成了0.真是妙啊
[解决办法]
新的还没学会.旧的就忘的差不多了.哎!真应该恶补一下.
[解决办法]
没运行,推测一下结果
1 0 右移32位
2 0 java入栈和C有点不一样,入栈后值就不变了,相当于j=j,j++(右-> 左),j=j结果还是0
3 false
4 Happy
birthday
to
you. ArrayList顺序好像不会乱
5 19
17
...
1
20
18
...
0 优先级别

6 new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss ").format(new Date(time));


[解决办法]
第一道题很奇怪:
解释下:移位操作是相对于内存的,而NUM是INT型,也就是32位,(前面27个0)10000
当移位少于32位(全长时),只需要将整个内存单元往左或往右移动指定数目
如:num > > 2 ------8 num > > 3 ------4
当移位大于32位(全长时),这时存储该数的内存单元发生了变化,会将整个数字单元移到别的内存单元中,这时取到的值会是另外内存单元的值.
如:num > > 32 (恰好移到另一个单元)-----32
num > > 33 (和num> > 1结果是一样的)----16
说的不对,有问题的地方还请高手们指教哈!!!!
[解决办法]
1. 32
2. 0
3. false
4. String s = i.next();要強轉
5. 先偶數排序,然后奇數排序
6. new Date(time).toLocaleString().replace( "/ ", "- ")
[解决办法]
楼主辛苦了~

1. int移位,低5位有效,所以压根没移位
2. 看看这里
http://community.csdn.net/Expert/topic/5759/5759250.xml?temp=.3821833
6. 楼主太善良了~格式都写好了~
------解决方案--------------------


mk
[解决办法]
第一道题很奇怪:
解释下:移位操作是相对于内存的,而NUM是INT型,也就是32位,(前面27个0)10000
当移位少于32位(全长时),只需要将整个内存单元往左或往右移动指定数目
如:num > > 2 ------8 num > > 3 ------4
当移位大于32位(全长时),这时存储该数的内存单元发生了变化,会将整个数字单元移到别的内存单元中,这时取到的值会是另外内存单元的值.
如:num > > 32 (恰好移到另一个单元)-----32
num > > 33 (和num> > 1结果是一样的)----16
说的不对,有问题的地方还请高手们指教哈!!!!

----应该是
解释下:移位操作是相对于内存的,而NUM是INT型,也就是32位,(前面26个0)100000


[解决办法]
6 难道是用String.format,如果要我选择查相应的格式,我宁愿选择熟悉的SimpleDateFormat
return String.format( "%tF %tT ", new Date(time), new Date(time));
[解决办法]
喜欢这样的学习方式,帮顶~!
[解决办法]
mk
[解决办法]
第二道题是0
因为JAVA用了中间缓存变量的机制
j=j++;可换成如下写法。
temp=j;
j=j+1;
j=temp;
所以结果为0

[解决办法]
jf
[解决办法]
都是些菜鸟
[解决办法]
昏咯,這樣也行啊。。
[解决办法]
运行下
[解决办法]
:)
[解决办法]
mk

[解决办法]
jf,题目不错
[解决办法]
呵呵,看来楼主对这些细节抓的很细,看的啥书啊,看来我也要去把基础复习一下了
[解决办法]
第3题
false
true==fale 结果是 FALSE
[解决办法]
Server Error in '/ ' Application.
--------------------------------------------

Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation= "true "/> in configuration or <%@ Page EnableEventValidation= "true " %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
=====================================================
加入我的收藏夹时出现了这段话。
那个打印boolean值b的应该是false吧。我记得三目是右结合的。
[解决办法]
mark!
[解决办法]
3. boolean b = true?false:true == true?false:true;
==> boolean b = true?false:(true == true?false:true);
当时自己写程序的时候,也这样写过,但是理解成
boolean b = (true?false:true == true)?false:true;
这样了,晕了好一阵子.后来就加括号了,好理解.
[解决办法]
mark
[解决办法]
太偏了,如果项目中有这样的代码存在会被认为可读性差
------解决方案--------------------


很有意思的题目.
[解决办法]
受益匪浅,基础为王。
[解决办法]
第2题简单,结果都是0。呵呵,上学的时候研究了一下j++和++j的区别,一个是先操作再+,一个是先+再赋值
[解决办法]
进来学习一下
[解决办法]
up
[解决办法]
值得学习
[解决办法]
这些题目都很怪.........
[解决办法]
这种题目最无聊,实际编程中那个是用的到的?楼主来说说。
[解决办法]
我虽然不懂,但是“======= 我 == 是 == 题 == 目 == 间 == 的 == 小 == 分 == 隔 == 符 =======”这个好可爱,所以来凑下热闹
[解决办法]
第一个是32
对于移位操作是这样的
int num=32;
int wei=99;
num> > wei
num> > (wei%32)
在所有移位操作中都是对32(int类型的)取余这样就保证了位移后的正确性
[解决办法]

第2题是0,
第三题是false bao110908(火龙果) 正确
第四题好像顺序发生变化
其余不会了
[解决办法]
太好的题了。。。
[解决办法]
新手.进来学习下.
[解决办法]
太有意思了

[解决办法]
这些题都是很经典的,这些东西你平时可能根本就没想过,但是有时候你写出的程序可能和你想要的结果不一样,这时候你就要想为什么会这样.
我也是遇到过这样的问题才这样说的,我遇到的是在C语言中int i = 10; i = i / i++;最后输出结果是2,我也是一直这样来理解的,但是突然有一天我无聊用java试了一下,在java中输出的是1,我一直不理解在java中为什么会是1,后来问别人才知道java和c的处理不一样,并且java的处理在语言规范中已经做了规定.而标准C对此并没有做规定,所以各个C编译器的实现就不同,还是上面的代码你拿到VC和GCC中结果又会不同.
[解决办法]
学习
[解决办法]
楼主说错了吧,第三题你的解释是错的
public static void main(String[] args) {
boolean b = ((true?false:(true == true))?false:true);
System.out.println(b);
}
运行结果是true啊
[解决办法]
学习
[解决办法]
呵呵
不错
可惜我是个菜鸟,可能连菜鸟都算不上
虽然现在已经在一家软件公司上班,但什么都不会

以为在学校就大二的时候学了点C,2\3年都忘光了.
现在自己要独立做一个项目的子模块,
压力好大好大,心里真的想退缩,去从事我专业方面的工作,去搞电子
刚给老大训了一通
现在真的不知道该怎么学
前几天刚学过SQL感觉还好点
但JAVA感觉都不知道怎么学从哪里学
在网上乱逛
看到了你的这些题目
感觉很有意思
呵呵
作为应届毕业生的我,真的很迷茫
不知道是不是自己选择错了路
[解决办法]
第4题
String s = i.next();
怎么编译通不过,我用的是jdk1.6
[解决办法]
mark
[解决办法]
4. 请问以下程序会输出什么?
String s = i.next();

能编译通过?

热点排行