CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

几个面试的题目,求各位兄弟解答。谢谢!

楼主minsky()2005-04-05 09:00:15 在 Java / J2SE / 基础类 提问

先是两个口头回答的问题:  
  1.用最高效的方法算出2乘以8等於几?  
  2.HashMap和Hashtable的区别。  
  我的回答是这样的:  
  1.我想应该是8<<1   或者   1<<8   给的回答是8<<1  
  2.HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),Hashtale的方法是同步的,而hashmap不是,由于非线程安全,效率上可能高于Hashtable.  
  --------------------------------------------  
  接下来是一个机试题,不使用任何ide,用记事本编写一段程序  
  把随机输入的一句话比如:It's   only   a   test!存放在一个char[]的数组中,统计char[]中的单词个数和标点符号的个数。  
   
  当时我没有做出来,回家后用ide,还是没有做出来。  
  ----------------------------------------------------------------------------------------  
  关于机试题,请高手多指教!谢谢!!  
   
  问题点数:100、回复次数:27Top

1 楼wanghongtaoleifeng(小声点)回复于 2005-04-05 09:25:54 得分 5

1   没学过C吗?2的三次方啊   2<<3  
  2说的多了好  
  3一时写不出来啊   不过用JS到是能啊  
  Top

2 楼matianyi(黑灵)回复于 2005-04-05 09:33:15 得分 5

3   先用   String.split("   ");  
      在得到的String数组中又没有标点Top

3 楼bwsabc(javavaj)回复于 2005-04-05 09:34:15 得分 5

3,看看Ascii码.Top

4 楼topil(认认真真学习,塌塌实实工作)回复于 2005-04-05 09:35:24 得分 5

1.   2<<3     位运算的效率最高  
  2.   看书上的就ok了。  
  3.   等会做出来再帖上来Top

5 楼watcher_shen(吉吾)回复于 2005-04-05 09:40:44 得分 5

char   f[]   =   {'I','t'};  
          String   s   =   new   String(f);  
          int   length   =   s.length();Top

6 楼watcher_shen(吉吾)回复于 2005-04-05 09:41:31 得分 0

楼主需要对java的类有变通的认识。Top

7 楼topil(认认真真学习,塌塌实实工作)回复于 2005-04-05 09:51:18 得分 5

编程题,就是定义一个输入流,每次读取一个字符,根据空格、标点符号作为一个单词结束的标志,然后把这几个字符进行合并,组成一个完整的单词,保存起来,可以用Arraylist作为保存单词的容器。Top

8 楼watcher_shen(吉吾)回复于 2005-04-05 09:55:37 得分 0

好像是我理解错了……  
   
  我再看看。Top

9 楼bhjsj(南南)回复于 2005-04-05 10:03:05 得分 5

import   java.io.*;  
  public   class   Test{  
  public   static   void   main(String[]   args)   throws   Exception{  
  BufferedReader   br   =   new   BufferedReader(new   InputStreamReader(System.in));  
  String   str   =   br.readLine();  
  if(str   ==   null)   throw   new   Exception("");  
  char[]   c   =   str.toCharArray();  
  int   words   =   0;  
  int   ip   =   0;  
  boolean   wordflag   =   false;  
  for(int   i=0;i<c.length;i++){  
  if((c[i]>='a'   &&   c[i]   <=   'z')   ||   (c[i]   >=   'A'   &&   c[i]   <=   'Z')){  
  if(wordflag)   {  
  continue;  
  }else{  
  words++;  
  }  
  wordflag   =   true;  
  }else{  
  wordflag   =   false;  
  if(c[i]   !=   '   ')  
  ip++;  
  }  
  }  
  System.out.println("words="   +   words);  
  System.out.println("ip="   +   ip);  
   
  }  
  }Top

10 楼007remember(绿原)回复于 2005-04-05 10:08:48 得分 5

路过  
  学习ing  
  帮您顶Top

11 楼ABCatai(ABCatai)回复于 2005-04-05 10:23:48 得分 5

wo   dingTop

12 楼lemontree1010(小宝)回复于 2005-04-05 11:07:49 得分 5

有意思,我也顶一下Top

13 楼minsky()回复于 2005-04-05 11:36:32 得分 0

我是楼主,贴出这几个题目的本来用意也是希望大家能多指点兄弟一下。对于java语言本身我不是很熟悉,在此对楼上的各位表示感谢。  
   
  第一个问题,我的考虑应该是   8>>1或者1>>4,我不是很能理解2>>3这样的操作。8的右移一位操作一次可以得到16,1右移4位操作四次也是16,当然还有2>>3.为什么解释为2>>3是最高效的算法呢?从操作次数上它不是最少,存储空间分配不明白,底层的操作也不懂,高手解答一下疑惑。  
  第二个问题,书上看的比较多了。  
   
  --------------------------------  
  第三个问题的原题目是这样的:  
  编写一个函数,传入一个变量char[],在char[]中,从数组开头或者空格符之后认为是一个表达式的开始,表达式后接空格或者数组结束或者标点符号认为表达式结束,若表达式全为英文字符则判定为单词,统计char[]标点符号数目,单词数目和有效单词的字符总数。  
  此题目也期望能得到各位的指点Top

14 楼bhjsj(南南)回复于 2005-04-05 11:54:00 得分 5

题目三表述还是有些问题呀,那It's   算几个单词啊?   s   既不是数组开头,也不是空格符之后.  
  private   void   count(char[]   c){  
  int   words   =   0;  
  int   ip   =   0;  
  int   character   =   0;  
  boolean   wordflag   =   false;  
  for(int   i=0;i<c.length;i++){  
  if((c[i]>='a'   &&   c[i]   <=   'z')   ||   (c[i]   >=   'A'   &&   c[i]   <=   'Z')){  
  character++;  
  if(wordflag)   {  
  continue;  
  }else{  
  words++;  
  wordflag   =   true;  
  }  
  }else{  
  wordflag   =   false;  
  if(c[i]   !=   '   ')  
  ip++;  
  }  
  }  
  System.out.println("words="   +   words);  
  System.out.println("ip="   +   ip);  
  System.out.println("character="   +   character);  
  }Top

15 楼hongyan2004(spring+hibernate)回复于 2005-04-05 13:17:38 得分 5

第二问题:  
      hashtable   ->dictionary   class,是线程不安全,增长为原来的一半  
      hashmap是map接口,是线程安全的,   增长时增长为原来的一倍Top

16 楼lasthope(学生)回复于 2005-04-05 13:56:57 得分 5

1.放入string中  
  2.String.split("   ")求出单词数  
  3.用replace函数,将26个字母,\r,\n,'   ',分别替换为'',即空串  
  4.此时求string的长度,即是标点数Top

17 楼minsky()回复于 2005-04-05 14:22:50 得分 0

to   bhjsj(南南)  
  程序中,若碰到非标点符号的特殊符号应予以处理。此表达式不能算做单词,比如bee$%ble.  
  凭我的理解,$%这一类的特殊符号不应该算标点。Top

18 楼minsky()回复于 2005-04-05 14:25:39 得分 0

to     lasthope(学生)  
  原题目要求在char[]中进行操作,所有对String对象的方法属性都不能使用。  
  再者,String的长度怎么都不是标点数。Top

19 楼bhjsj(南南)回复于 2005-04-05 15:23:19 得分 5

这样的面试我感觉确实有些为难人呵.是不是得对ASCII码得特别熟啊,哪些算标点符号,哪些是特殊符号,在ASCII码中是什么位置得清楚吧,  
  等待高人.Top

20 楼minsky()回复于 2005-04-05 23:19:16 得分 0

是的,转换之后虽然可以得到ascii码的值,不过又有谁能记得具体的每个字符编码?  
  印象中好像是65->A,97->a,空格好像是32,其他都不记得了。  
  Top

21 楼kualer(散落的烟灰)回复于 2005-04-06 00:55:10 得分 5

不是很懂~Top

22 楼liuzhx(钟情java)回复于 2005-04-06 01:14:50 得分 5

HashMap和Hashtable的区别。    
  都属于Map接口的类,实现了将惟一键映射到特定的值上。    
  HashMap   类没有分类或者排序。它允许一个   null   键和多个   null   值。    
  Hashtable   类似于   HashMap,但是不允许   null   键和   null   值。它也比   HashMap   慢,因为它是同步的。    
  用最有效率的方法算出2乘以8等於几?      
  有C背景的程序员特别喜欢问这种问题。      
  2   <<   3      
  Top

23 楼mnbvc874(Java EE)回复于 2005-04-06 13:46:06 得分 5

学习Top

24 楼zyyhero2001(风之传说)回复于 2005-04-06 16:32:50 得分 5

2<<3,为什么效率是最高的,斑竹可不可以解释解释!!Top

25 楼donbing(神意)回复于 2005-04-06 16:41:00 得分 5

好像没必要去管什么ASCII码吧?直接比较字符就行了...上面已经给出程序了.Top

26 楼pp918(pp)回复于 2005-04-06 18:15:44 得分 5

偶编译差点没及格。。。。。  
  还的学啊Top

27 楼minsky()回复于 2005-04-06 21:55:44 得分 0

呵,楼上兄弟给的程序考虑一下一些边界的条件看看会是什么?  
  比如连续的两个空格,或者bbb@#aaa这样的表达式,此式应该判断为非法单词而且不应计算有效字符。Top

相关问题

  • 面试题目,高人和牛人来解答一下好吗?
  • 关于面试的一些题目,不会做,求助高手解答疑问
  • 面试题目……
  • 面试题目
  • 面试题目
  • 面试题目
  • 昨天有两道面试题没答出来,水源的兄弟们帮忙解答解答!
  • 解答个题目~
  • 一些面试题目没做出来,求解答,小女子先谢谢各位了~~~
  • 一面试题目

关键词

  • 字符
  • ascii码
  • null
  • 表达式
  • 题目
  • 单词
  • 标点符号
  • 特殊符号
  • 数组
  • 标点

得分解答快速导航

  • 帖主:minsky
  • wanghongtaoleifeng
  • matianyi
  • bwsabc
  • topil
  • watcher_shen
  • topil
  • bhjsj
  • 007remember
  • ABCatai
  • lemontree1010
  • bhjsj
  • hongyan2004
  • lasthope
  • bhjsj
  • kualer
  • liuzhx
  • mnbvc874
  • zyyhero2001
  • donbing
  • pp918

相关链接

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

广告也精彩

反馈

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