5个题目 做出3个即可通过package xx;import java.util.List;/**
 * 补全obtainAllPost方法
 * @author zhoufeng
 *
 */
public class Test01 {
public static void main(String[] args) {
obtainAllPostTitle("http://bbs.csdn.net/forums/Java");
} /**
 * 从指定的url中获取该url中所有的帖子标题
 * @param url
 */
private static List<String> obtainAllPostTitle(String url) {
return null ;
}

}package xx;/**
 * 
 * 从1~10中取任意个数进行组合(可重复)
 * 打印出所有的组合
 * @author zhoufeng
 *
 */
public class Test02 {
}
package xx;/**
 * 解析  src/xx/web.xml 文件 ,获取所有<servlet-name>节点的值 
 * @author zhoufeng
 *
 */
public class Test03 {}
web.xml <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
    <servlet>  
         <servlet-name>dwr-invoker</servlet-name>  
         <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>  
         <init-param>  
          <param-name>debug</param-name>  
          <param-value>true</param-value>  
         </init-param>  
         <!-- 使用polling和comet的方式 -->  
         <init-param>  
          <param-name>pollAndCometEnabled</param-name>  
          <param-value>true</param-value>  
         </init-param>  
         <load-on-startup>1</load-on-startup>        
    </servlet>  
    <servlet-mapping>     
         <servlet-name>dwr-invoker</servlet-name>  
         <url-pattern>/dwr/*</url-pattern>  
    </servlet-mapping>  
    
    <servlet>
     <servlet-name>setting</servlet-name>
     <servlet-class>com.zf.controller.Setting</servlet-class>
    </servlet>
    <servlet-mapping>
     <servlet-name>setting</servlet-name>
     <url-pattern>/setting</url-pattern>
    </servlet-mapping>
    
    <servlet>
     <servlet-name>checkIsStarted</servlet-name>
     <servlet-class>com.zf.controller.CheckIsStarted</servlet-class>
    </servlet>
    <servlet-mapping>
     <servlet-name>checkIsStarted</servlet-name>
     <url-pattern>/checkIsStarted</url-pattern>
    </servlet-mapping>
    
    
      
    
</web-app>
package xx;/**
 * 写一个生产者与消费者的实例
 * 要求:5个生产者,与5个消费者  同时向一个容量为10的容器中放入 和 取出产品
 * 当容器为空时  消费者不能再取出产品  当容器满时 生产者不能再放入产品
 * @author zhoufeng
 *
 */
public class Test04 {}package xx;/**
 * 写一个定时器 在  {5:00 , 8:00 , 12:00} 时间打印出系统当前时间 (1997-01-01)这种格式
 * @author zhoufeng
 *
 */
public class Test05 {}

解决方案 »

  1.   

    不联网让人家做的话真的不容易。
    当然,毕业生毕业前有一段实习期,这段时期如果在一家软件企业做的话应该没问题。第四个不知道你问的啥。
    dom解析的那个方法忘了,用的时候得现查,第一个昨天刚偶然间学的。
    逻辑编程的没问题。
    5道题,算是勉强会3道吧,我今天7月毕业,毕业的时候全会也差不多
      

  2.   

    是联网的  可以上网查询API 。 不管是用DOM 还是SAX或下载DOM4J 只要能做出来 都行
      

  3.   

    这种题目及时有工作经验的也只能写出个大概吧。 没联网,不非常常用的API名称是记不住的。 更何况你上面有题目还是毕业生毕业之前就很少用的。
      

  4.   

    我觉得考察的方向有点不对。
    刚毕业的大学生应该多考一些逻辑方面的题而不是技术方面的题。
    大学是怎么过的大家都清楚。
    要是我的话更在意毕业生能学多少东西,而不是已经会多少东西。
    当然这要看公司的情况,如果急着招人上项目的话,就着重技术;否则做点逻辑推理方面的笔试题和java基础就很好了。
      

  5.   

    其实还是OK了,动手强的应届生应该能打出2、4、5三题,其他两题是比较难了。要操作dom
      

  6.   

    从指定url中获得贴子标题是神马意思???是url中包含帖子名称?还是根据url得到页面的内容再解析?新手求教
      

  7.   


    还是根据url得到页面的内容再解析
      

  8.   


    根据url得到页面的内容再解析
      

  9.   

    有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现
    例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。(不要使用标准库函数) 
    不妨把0插到数组中 然后直接比较0前后2个元素的绝对最小值即可
    5文钱买一只公鸡,3文钱买一只母鸡,一文钱买三只雏鸡。现在用100文钱买一百只鸡,那么公鸡、母鸡、雏鸡各有多少只?
    for(int i=3,j=4;i+j<25;j+=4,i+=3){
                    println("小鸡的个数:"+(75+i));
                    println("母鸡的个数:"+(25-i-j));
                    println("公鸡的个数:"+j);
                }
    用我这两道题吧 搞死求职者
      

  10.   

    考思路为主的题性最好,不常用的API,那不是坑人吗?(难道隔壁还有台电脑可以上网?)
      

  11.   

    package xx;/**
     * 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,
     * 要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现
           例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。(不要使用标准库函数) 
     * @author zhoufeng
     *
     */
    public class Test06 { /**
     * 查找绝对值最小的数
     * 思路:从左向右找第一个大于0的数    然后与该数的前一个数相加    结果如果为正数   就表示当前找到的这个数的绝对值小于 前一个数的绝对值
     * 最好的情况下效率为O(1) 最差为O(n)
     * @return
     */
    static int findMinAbs(int array[]){
    int i = 0 ;
    for ( ; i < array.length; i++) {  
    if(array[i] == 0){
    return 0;
    }else if(array[i] > 0){
    if(i > 0){
    return ( array[i] + array[i - 1] )> 0 ?  array[i - 1] : array[i];
    }else{
    return array[0];
    }
    }
    }
    return array[0] ;
    }


    public static void main(String[] args) { int array[] = { -8 ,-6 , -5  , 1  , 6 ,7 ,9};

    int i = findMinAbs(array);

    System.out.println("min abs :" + i);

    }

    }还有一个百钱百鸡用3个循环可以解决。好吧 , 征用第一题
      

  12.   

     static int findMinAbs(int array[]){ 
      int i = array.length ;
      int  x = 0 ;
           if(i == 1)
               return array[0] ; 
           if(array[0] >= 0)
            return array[0] ; 
           if(array[i-1] <= 0)
            return array[i-1] ; 
          
           while (true) {
          i =  i/2 ;
          if(array[i+x] > 0 ){
          if(array[i+x-1] <= 0){
          return -array[i+x-1]>array[i+x] ? array[i+x] : array[i+x-1] ;
          }
          
          }
          if(array[i+x] < 0){
          if(array[i+x+1] >= 0){
          return -array[i+x-1]>array[i+x] ? array[i+x] : array[i+x-1] ;
          }
          x =  x+i ;
          }
    }
           
        } 来一个高效率二分算法  
      

  13.   

    重发一下 自己粗心了  检讨:拷贝出错
     static int findMinAbs(int array[]){ 
      int i = array.length ;
      int  x = 0 ;
           if(i == 1)
               return array[0] ; 
           if(array[0] >= 0)
            return array[0] ; 
           if(array[i-1] <= 0)
            return array[i-1] ; 
          
           while (true) {
          i =  i/2 ;
          if(array[i+x] > 0 ){
          if(array[i+x-1] <= 0){
          return -array[i+x-1]>array[i+x] ? array[i+x] : array[i+x-1] ;
          }
          
          }
          if(array[i+x] < 0){
          if(array[i+x+1] >= 0){
          return -array[i+x]>array[i+x+1] ? array[i+x+1] : array[i+x] ;
          }
          x =  x+i ;
          }
    }
           
        } 
      

  14.   


    做了第一题,要注意可能会有2个结果(相反数)
    最坏时间复杂度O(n)import java.util.Arrays;/**
     * 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,
     * 要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200}
     * ,绝对值最小的是-4。(不要使用标准库函数)
     * 
     * @author zyc
     * 
     */public class Test6 {
    static int arr1[] = { -20, -13, -4, 6, 77, 200 };
    static int arr2[] = { -20, -13, -4, 4, 6, 77, 200 };
    static int arr3[] = { -20, -13, -4, 0, 4, 6, 77, 200 }; public static void main(String[] args) {
    System.out.println(Arrays.toString(findAbsMin(arr1)));
    System.out.println(Arrays.toString(findAbsMin(arr2)));
    System.out.println(Arrays.toString(findAbsMin(arr3)));
    } static int[] findAbsMin(int[] arr) {
    int min = Integer.MIN_VALUE;
    for (int i : arr) {
    if(i == 0) return new int[] { i };
    if (i > 0) {
    if (min + i > 0) {
    return new int[] { min };
    } else if (min + i < 0) {
    return new int[] { i };
    } else {
    return new int[] { min, i };
    }
    }
    min = i;
    }
    return new int[] { min };
    }
    }
      

  15.   

    又看了一遍买鸡的,看明白了。你这是经过分析和计算后才编的程序,属于数学的范畴更多一些。算法是先找出最简单的一组解75个小鸡,25只母鸡。有了一组解,我们再经过分析可以得出如下结论:
    1、为了保持总的数量100不变,下一组解中,公鸡的变化数为x,小鸡的变化数为y,母鸡的变化数为z,其中x、y、z可能为正数,也可能为负数,正数说明数量增加,负数数量减少,则x+y+z=0。
    2、保持总钱数不变,钱的变化数也为0,5x+y/3+3z=0
    两个式子和在一块得出x:y=4:3。为保持总钱数是正数,小鸡的数量肯定是3的倍数,公鸡的数量就是4的倍数,所以从75开始,每次小鸡数+3,每次公鸡数+4,而母鸡数减7找寻找下一组解。
    这道题以前上中学的时候应该做过,有点印象。
      

  16.   

    关于这个定时器,有一个小问题,我是定义了三个定时器;
    代码如下:
    public static void main(String[] args) {
    new Timer().schedule(new TimerTask(){ @Override
    public void run() {
    // TODO Auto-generated method stub

    }}, getDate(5));
    new Timer().schedule(new TimerTask(){ @Override
    public void run() {
    // TODO Auto-generated method stub

    }}, getDate(8));
    new Timer().schedule(new TimerTask(){ @Override
    public void run() {


    }}, getDate(12));
    }
    public static Date getDate(int hour){
    Calendar calendar=Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, hour);
    calendar.set(Calendar.MINUTE,0);
    calendar.set(Calendar.SECOND, 0);
    return calendar.getTime();
    }
    目前就能想到这个了,至于嵌套定时器是否ok,搞了好久都没搞定;
      

  17.   

    关于第一题,真的没怎么看懂标题什么的,不过我做过一个网页爬虫,爬邮箱的,代码如下,测试结果不如人意啊
    public static void main(String[] args) {
    try {
    URL url = new URL("http://tieba.baidu.com/p/1765573603");
    URLConnection urlConnection = url.openConnection();
    BufferedReader bufr = new BufferedReader(new InputStreamReader(
    urlConnection.getInputStream()));
    String line = null;
    while ((line = bufr.readLine()) != null) {
    System.out.println(line);
    String regex = "^\\w+@\\w+(\\.\\w+){1,3}$";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(line);
    while (matcher.find()) {
    String email = matcher.group();
    System.out.println(email);
    }
    }
    } catch (MalformedURLException e) {
    throw new ExceptionInInitializerError(e);
    } catch (IOException e) {
    throw new ExceptionInInitializerError(e);
    } }
    不过思想就是那样的,你肯定懂的,我一个文科生自学Java不容易啊!!!
      

  18.   


    这和库函数有什么关系?从数组第一个元素开始找,找到0直接输出,如果没有0就找到第一个正数。
    比较找到的正数和该正数的前一个负数的和
    相同 全部输出
    >0 输出负数
    <0 输出正数随手写了个求绝对值的方法 static double abs(double d) {
    return d >= 0 ? d : -d;
    }
      

  19.   

    double my_fabs03(double dnumber){  *( ( (int *) & dnumber) + 1) &=0x7FFFFFFF;  return dnumber;}
    你还别说 我前几天还真看过了,确实和你的不一样还有你的O(N)效率,为啥不舍得提高一点呢
      

  20.   

    package xx;
     
    /**
     * 
     * 从1~10中取任意个数进行组合(可重复)
     * 打印出所有的组合
     * @author zhoufeng
     *
     */
    public class Test02 {
     
         
    }题二  求解?
      

  21.   


    1 ~ 10 的结果太多了。不方便贴出来。 改成 1 ~ 4 吧public class Test02 {

    static void compose(int array[] ){
    compose(array , 0 , new int[array.length] , 0);
    }

    static void compose(int array[] , int arrayIndex ,int tmp[] , int tmpIndex){
    if(tmpIndex == tmp.length)
    return ;
    for (int i = arrayIndex; i < array.length ; i++) {   
    tmp[tmpIndex] = array[i];
    printArray(tmp , tmpIndex + 1);
    compose(array , i , tmp , tmpIndex + 1);
    }
    }

    static void printArray(int array[] , int len){
    for (int i = 0; i < len ; i++) { 
    System.out.print(array[i] + "  ");
    }
    System.out.println();
    }

    public static void main(String[] args) {
    compose(new int[]{1 , 2 , 3 ,4 });
    }

    }
      

  22.   

    console1  
    1  1  
    1  1  1  
    1  1  1  1  
    1  1  1  2  
    1  1  1  3  
    1  1  1  4  
    1  1  2  
    1  1  2  2  
    1  1  2  3  
    1  1  2  4  
    1  1  3  
    1  1  3  3  
    1  1  3  4  
    1  1  4  
    1  1  4  4  
    1  2  
    1  2  2  
    1  2  2  2  
    1  2  2  3  
    1  2  2  4  
    1  2  3  
    1  2  3  3  
    1  2  3  4  
    1  2  4  
    1  2  4  4  
    1  3  
    1  3  3  
    1  3  3  3  
    1  3  3  4  
    1  3  4  
    1  3  4  4  
    1  4  
    1  4  4  
    1  4  4  4  
    2  
    2  2  
    2  2  2  
    2  2  2  2  
    2  2  2  3  
    2  2  2  4  
    2  2  3  
    2  2  3  3  
    2  2  3  4  
    2  2  4  
    2  2  4  4  
    2  3  
    2  3  3  
    2  3  3  3  
    2  3  3  4  
    2  3  4  
    2  3  4  4  
    2  4  
    2  4  4  
    2  4  4  4  
    3  
    3  3  
    3  3  3  
    3  3  3  3  
    3  3  3  4  
    3  3  4  
    3  3  4  4  
    3  4  
    3  4  4  
    3  4  4  4  
    4  
    4  4  
    4  4  4  
    4  4  4  4  
      

  23.   

    第二题 , 题目有些问题,没说清楚 ,改一下: * 从1~4中取n个数进行组合 (可重复) 并且 n < 4
     * 打印出所有的组合
      

  24.   

    毕业生就应该考考数据结构和算法
    具体的业务需求 没联网 我也有很多api名称不知道怎么写
      

  25.   

    时间限制多少呀?工作一年,这些题能解出来。另外这个给应届生有些不妥吧,不用考具体API的吧。
      

  26.   

    如果你就是想找java工人,这题出的还马马虎虎。如果你是想招人才,所有这些题都不合格
      

  27.   

    不知道楼主第一题PostTitle是啥东东?但是估计是网页抓取和html解析之类的,用HttpClient+JSoup就可以解决
      

  28.   

    那个消费者和生产者是做烂了的吧用BlockingQueue就可以
      

  29.   

    我的观点:
    感觉楼主的题出得很不好,要是给毕业生做,就更不好!除了第2题和第4题,其它的完全不应该出现在面试题中。
    第一个题不知道撸主是想考对网络接口的使用,还是要考对抓取内容的分析。感觉上应该是想考前者。个人觉得换成对http基础知识考察会更好。
    不知道大家怎么都不说第二题,个人觉得第二题是最难的,完全的数学能力。
    考XML的解析问题属于用过就知道,没用过稍微看一下doc也能写出来的问题,没有价值。
    第4题还可以,可以考线程使用,共享资源同步,基础但是实用的知识。
    定时器,该出现在面试题里吗?能考察什么东西呢?
      

  30.   

    第一题用Jsoup就行了,十几行代码搞定
      

  31.   

    虽然对java不怎么了解,不过几个题目的解题思路还是有些的,第一题其实就是首先获取网页内容(实际就是html性质的文件吧),然后再解析它就好了;第二题最笨的方法就是穷举了,穷举也才45个数嘛,嘿嘿;第三题也是xml文件解析的问题;第四题应该是多线程编程的考验吧;第五题的话一时之间也没想出什么思路,好像得写个类似于触发器的东西,当然啦,触发条件就是当前的系统时间嘛。不知道我的理解对不对哈,希望各位再给点思路,多学习学习
      

  32.   

    CSDN 充满了 没毕业的学生么?
      

  33.   


    少侠你看这种解法能得几分class Test02
    {
    public static void main(String[] args)
    {
    int a,b,c,d;
    for (a=1;a<5 ;a++ )
    {
    System.out.print(a);
    System.out.print(" ");
    for (b=1;b<5 ;b++ )
    {
    System.out.print(b);
    System.out.print(a);
    System.out.print(" ");
    for (c=1;c<5 ;c++ )
    {
    System.out.print(c);
    System.out.print(b);
    System.out.print(a);
    System.out.print(" ");

    for (d=1;d<5 ;d++ )
    {
    System.out.print(d);
    System.out.print(c);
    System.out.print(b);
    System.out.print(a);
    System.out.print(" ");
    }
    }
    System.out.println();
    }
    }
    }
    }
      

  34.   

    为什么我觉得都不难呢?我今年大三,我觉得稍微会点算法和OOP的都能做出来吧