CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

昨天一外企的面试题目

楼主jspren(人民老百姓)2006-03-20 11:46:43 在 Java / J2SE / 基础类 提问

1。有几种方法计算运行一个方法所需的时间。  
  2。怎样调用一个类的私有方法。 问题点数:20、回复次数:40Top

1 楼dewdrop(白露)回复于 2006-03-20 12:08:10 得分 10

1。1种方法是在函数调用前new一个Date,返回后再new一个Date,相减可得,当然也可以在函数内部的首句和末句new   Date计算(感觉比较傻)  
  2。可以将此类的private   function封装在一个public   function中,再调用公用方法  
   
  PS:感觉自己想的太简单,还是听高手正解~~Top

2 楼gary_jojo(英雄!哗,大英雄!)回复于 2006-03-20 12:25:50 得分 10

感觉和楼上的一样呀.  
  计算方法运行的时间应该还可以写一个Thread类型的计时器,进入方法体的时候开启这个线程,结束的时候停止.这样就可以算出运行了多长时间了.  
   
  调用一个类的PRIVATE方法的话,继承了那个类也算可以调用它的PRIVATE方法吧.Top

3 楼Paripatetic(逍遥)回复于 2006-03-20 12:26:56 得分 0

1.在调用发前new两个Date,调用后new一个Date,分别为date1,date2,date3  
  则方法运行时间为:(date3-date2)-(date2-date1)  
  因为new一个Date也需要时间  
   
  2.如果非要在类外部直接通过对对象发消息传递是不可能的,他破坏了面向对象程序的封装性Top

4 楼hamlet3145(蛤蟆乐天)回复于 2006-03-20 12:30:15 得分 0

反射  
   
  是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。Top

5 楼ibiswang(神鸟)回复于 2006-03-20 12:37:04 得分 0

1.   方法如下:  
      (1).通过在方法首先与结束处加上Date来相减;     ---上面已提  
      (2).通过在首行与结束加对另外一个线程来实现;   ---上面已提  
      (3).通过Proxy的方式,即调用时通过proxy来调用,在proxy中加入时间运行算;  
        (4).   如果你支持AspectJ的话,就更好办了。  
   
  2.   调用private方法,我想的到只有一种,就是"反射"。Top

6 楼treeroot(旗鲁特)回复于 2006-03-20 12:48:38 得分 0

真无聊的题目  
  第一个最简单的方法就是:  
  执行方法前看一下表,执行完后再看一下表,减一下不就完了!  
   
  不是问怎么调用,要问你想怎么调用Top

7 楼believefym(feng)回复于 2006-03-20 13:14:56 得分 0

怎么没人用System.currentTimeMillis(),而要new一个DateTop

8 楼jspren(人民老百姓)回复于 2006-03-20 13:54:28 得分 0

两个问题都有好几种办法,我只能说一种Top

9 楼pigo()回复于 2006-03-20 14:33:44 得分 0

 
  没搞懂计算时间差值为什么不用long,却要用Date???  
   
  System.currentTimeMillis();  
  System.nanoTime();   //jdk1.5  
   
  Top

10 楼Albert_1030()回复于 2006-03-20 15:01:59 得分 0

markTop

11 楼lbfhappy(千里冰封)回复于 2006-03-20 15:11:40 得分 0

System.currentTimeMillis();  
  System.nanoTime();  
  前面是得出毫秒,后面是得出纳秒,更精确啊,  
  因为有些代码的执行就在一毫秒之内做完的,那怎么去测它的长度啊  
  所以用后面那个方法更准确一些。Top

12 楼asd_(CSDN旷代灌水VIP)回复于 2006-03-20 15:14:19 得分 0

a1:   //initialize   paramter  
          long   a   =   System.cur....();  
          //invoke   this   method  
          a   =   System.curr...()   -   a;  
          System.out.println(a);  
   
  a2:  
        cannot。Top

13 楼Nowish(看我能忍耐多久)回复于 2006-03-20 15:19:26 得分 0

Mark~Top

14 楼scjpsz1860(友情UP友情接分)(快乐升星!预祝明天更好!:)回复于 2006-03-20 15:45:11 得分 0

Mark2Top

15 楼rickyelf(elf)回复于 2006-03-20 17:14:37 得分 0

2。怎样调用一个类的私有方法。  
   
  在自己的CLASS里调调看Top

16 楼chyx413332087()回复于 2006-03-20 17:28:21 得分 0

用System.currentTimeMillis();  
  好像你多几次执行,出现的结果不是一样的啊Top

17 楼qixiang77(纳兰康)回复于 2006-03-20 18:08:56 得分 0

1)System.currentTimeMillis();最常用的测时间方法,也是优化程序的工具。  
  2)要想直接调用一个类的私有方法,最好的办法就是用内部类Top

18 楼liyan010(我是大坏蛋)回复于 2006-03-20 19:19:33 得分 0

 
  1)System.currentTimeMillis();最常用的测时间方法,也是优化程序的工具。  
  2)要想直接调用一个类的私有方法,最好的办法就是用内部类  
   
   
  感觉是好方法:)Top

19 楼fenglibing(流星)回复于 2006-03-20 20:28:26 得分 0

執行的時間不一樣,那是根據當前系統的情況一樣  
  Arrays.sort();這個排序的性能真的很好  
  排10000個數和10數所費的時間基本上是一樣的  
  各位可以試試  
  差不多都是60nsTop

20 楼humanity(城市边缘的狼)回复于 2006-03-20 20:45:12 得分 0

这两个问题可以找到共同点,那就是   “反射”,  
   
  第一个问题用   AOP,  
  第二个问题可以这样。  
   
  import   java.lang.reflect.Method;  
   
  class   A   {  
          private   int   count;  
   
          private   int   getCount()   {  
                  return   count;  
          }  
   
          private   void   setCount(int   count)   {  
                  this.count   =   count;  
          }  
   
          public   String   toString()   {  
                  return   "Count   :"   +   count;  
          }  
  }  
  /**  
    *   @author   Daniel   Young  
    */  
   
  public   class   B   {  
   
          public   static   void   main(String[]   args)   {  
                  A   a   =   new   A();  
   
                  Class   clazz   =   a.getClass();  
   
                  try   {  
                          Method   method   =   clazz.getDeclaredMethod("setCount",  
                                          new   Class[]   {   int.class   });  
   
                          method.setAccessible(true);  
   
                          method.invoke(a,   new   Object[]   {   new   Integer(5)   });  
   
                          System.out.println("Created   &   initialized   instance   :"   +   a);  
   
                  }   catch   (Exception   e)   {  
                          e.printStackTrace();  
                  }  
          }  
  }Top

21 楼mail25(■游荡在北四环■)回复于 2006-03-21 08:40:26 得分 0

楼上的方法比较好Top

22 楼mysohu( 21世纪最重要的就是我!:))回复于 2006-03-21 08:58:34 得分 0

反射.....Top

23 楼cbrooks(陈小)回复于 2006-03-21 10:46:18 得分 0

都是牛人啊!!!Top

24 楼bluelily22(丁丁)回复于 2006-03-21 10:48:00 得分 0

调用某类的私有方法  
  实例化此类不就可以了,至于那么复杂吗?  
  Top

25 楼chenhaoqiang(难得糊涂)回复于 2006-03-21 11:42:03 得分 0

问题解决了怎么没人给分阿?Top

26 楼deepass(渴望突破)回复于 2006-03-21 14:13:53 得分 0

java才看了一点点,学习学习Top

27 楼jordan1(班君)回复于 2006-03-21 14:21:09 得分 0

死循环好厉害!Top

28 楼wolaiye3(魔幻之光)回复于 2006-03-21 17:24:31 得分 0

做个记号,回去看  
  Top

29 楼qingyuan18(zealot_tang)回复于 2006-03-21 20:28:24 得分 0

to:humanity(怪事:WebSphere   5.1进入dump   javacore_xx.txt死循环)  
   
  Method   method   =   clazz.getDeclaredMethod("setCount",  
                                          new   Class[]   {   int.class   });  
   
  这个方法会抛出异常吧,反射类的私有方法必须要先获得安全注册吧,否则类的封装性岂不被破坏了?Top

30 楼Nowish(看我能忍耐多久)回复于 2006-03-21 21:24:05 得分 0

AOP什么意思啊。。。。。。。。Top

31 楼yuzl32(有酒醉)回复于 2006-03-21 21:27:11 得分 0

treeroot(旗鲁特)   (   )   信誉:106     2006-3-20   12:48:39     得分:   0      
     
  ...   ..  
   
  执行方法前看一下表,执行完后再看一下表,减一下不就完了!  
  ...   ...  
   
  ----------------  
                              呵呵,牛!  
   
   
       
     
  Top

32 楼54powerman(彗星撞地球)回复于 2006-03-21 22:02:22 得分 0

汗,胡言乱语。Top

33 楼cecoo(小风)回复于 2006-03-22 00:28:13 得分 0

受益非浅Top

34 楼roypayne(工作时候一心工作,学习时候一心学习,玩的时候好好玩!)回复于 2006-03-22 09:44:56 得分 0

@!@#$%!@#$%Top

35 楼lgh2008(ar_guang)回复于 2006-03-22 11:04:08 得分 0

高手真很多Top

36 楼sssss342072(乘凉的狙击手(~@ @~))回复于 2006-03-22 13:07:13 得分 0

学习Top

37 楼upcmill()回复于 2006-03-22 14:45:15 得分 0

第一个,System.currentTimeMillis();  
  第二个,反射Top

38 楼joe403121(世界任我闯)回复于 2006-03-22 14:58:16 得分 0

晕,这都不会.  
  1.反射  
  2.DATA-DATA  
  3.买块表自己看  
  4.请能力强一点同事吃饭,请他帮自己搞定  
  5.以自己感觉估计  
  6.回道:不知道  
  .  
  .  
  .  
  .  
  .  
  .N种...Top

39 楼joe403121(世界任我闯)回复于 2006-03-22 15:03:43 得分 0

至于调用类中的私用方法,可以用BEAN中SET,GET那样的方法来调用Top

40 楼discolt(枫)回复于 2006-03-22 15:13:48 得分 0

第一个,System.currentTimeMillis();  
  第二个,反射  
   
   
  正解Top

相关问题

  • 昨天的2个面试题目
  • 面试题目……
  • 面试题目
  • 面试题目
  • 面试题目
  • 一家外企的面试题目,欢迎讨论,来者有份
  • 那个外企面试题目的答案(因为是我出的题目)其实很简单的!
  • 一面试题目
  • 面试的题目
  • VC面试题目??

关键词

  • 执行
  • date
  • 学习
  • 调用
  • 方法
  • 私有
  • 反射
  • currenttimemillis
  • 封装
  • 看一下表

得分解答快速导航

  • 帖主:jspren
  • dewdrop
  • gary_jojo

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo