论坛首页 招聘求职论坛

迅雷亲历面经:笔试+上机+面试(完整JAVA面试题求解大讨论)

浏览 90203 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-06-03  
这些题真的很有水平啊!!一些题还真做不了
0 请登录后投票
   发表时间:2010-06-04  
有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC…
package com.starit.portal.hessian;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Semaphore;

public class TestOderThread {  
 
    private static Semaphore semaphore1 = new Semaphore(0);  
    private static Semaphore semaphore2 = new Semaphore(0);  
    public Thread t1;  
    public Thread t2;  
    public Thread t3;
    private static CountDownLatch latch;
 
    public TestOderThread() {  
        t1 = new Thread() {  
            public void run() {  
                try {  
                    System.out.print("A");
                    semaphore1.release();
                    latch.countDown();
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
            }  
        };  
        t2 = new Thread() {  
            public void run() { 
            try {
semaphore1.acquire();
System.out.print("B"); 
semaphore2.release();
latch.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
            }  
        };  
        t3 = new Thread() {  
            public void run() {  
                try {  
                semaphore2.acquire();
                    System.out.print("C");  
                    latch.countDown();
                } catch (InterruptedException e) {  
                    e.printStackTrace();  
                }  
            }  
        };  
 
    }  
 
    public void run() {
        t1.start();  
        t2.start();  
        t3.start();  
    }  
 
    public static void main(String args[]) throws Exception {  
        TestOderThread t = new TestOderThread();  
        for (int i = 0; i < 10; i++) {  
            t = new TestOderThread();  
            latch = new CountDownLatch(3);
            t.run();  
            latch.await();
        }  
    }  
}  
0 请登录后投票
   发表时间:2010-06-04  
aniu2008 写道
迅雷面试回来,用了整整一下午(不知道怎么说了,其中等待时间都快2小时了),自己感觉笔试和上机还可以,但技术面谈这一关答得不太好,现在再次感觉互联网公司与一般软件公司的区别了,其中一点就是互联网应用在性能上要求很高,谈了一个小时大部分题目感觉都在谈论性能问题,自己在方面一直是弱项,汗啊:(

仔细回忆了一下整个面试过程的题目,记录下来,希望大家多多给点意见讨论下啊

一、笔试题:
A)JAVA基础多项选择题,比较简单,略

B)问答:
1)ajax原理、如何实现刷新数据及优点?
2)门面模式的解释、适用场合?
3)写6个linux常用命令?
4)SQL语句题,较简单

C)编程:
1)有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC…
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

二、上机题:
Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?

三、面试题:
1、说说JVM原理?内存泄露与溢出区别,何时产生内存泄露?
2、用java怎么实现有每天有1亿条记录的DB存储?mysql上亿记录数据量的数据库如何设计?
3、mysql支持事务吗?DB存储引擎有哪些?
4、mvc原理,mvc模式的优缺点,如果让你设计你会怎么改造MVC?
5、hibernate支持集群吗?如何实现集群?
6、tomcat 最多支持并发多少用户?
7、map原理,它是如何快速查找key的?map与set区别?
8、描术算法,如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。内存只有1G???
9、在1亿条用户记录里,如何快速查询统计出看了5个电影以上的用户?
10、Spring如何实现IOC与AOP的,说出实现原理?

期待大家的探讨,共同提高,多谢


工资有多少啊?
貌似这些笔试题目都很注重基础啊.
有点难度.
0 请登录后投票
   发表时间:2010-06-05  
aniu2008 写道
diaodou 写道
C 2) 可以用这个简单方法。
上机题是一样的方法,开个256的数组,count[256],表示每个字母,数字等的出现次数。
class Remove{
 public static void main(String args[]) {
  String str="6sabcsssfsfs33;
    boolean removeChars[256] = {true};
    removeChars['a'] = false;
    removeChars['b'] = false;
    removeChars['3'] = false;
  StringBuffer sb = new StringBuffer();
    for (char ch: str) {
        if (!removeChars[ch]) sb.append(ch);
    }
    String result = sb.toString();
 }
}


高人啊,应该就是这个方法了


写成这样如何:
String str="6sabcssaafsbbfs33";
		StringBuffer sb=new StringBuffer();
		for(char ch:str.toCharArray()){
			if(ch!='a'&&ch!='b'&&ch!='3'){
				sb.append(ch);
			}
		}
		System.out.println(sb.toString());
0 请登录后投票
   发表时间:2010-06-05  
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?
	private static void m(){
		 String str = "6sab3ab3sssfab3sfs33ab3d";
		 char[] strr=str.toCharArray();
		 StringBuffer sb = new StringBuffer(); 
		 for (int i=0;i<str.length();i++) { 
			 if(strr[i]=='a'){
				 if(strr[i+1]=='b'){
					 if(strr[i+2]=='3'){
						 i=i+2;
					 }else{
						 sb.append(strr[i]);
					 } 
				 }else{
					 sb.append(strr[i]);
				 }
			 }else{
				 sb.append(strr[i]);
			 }
			 System.out.println(i);
		 } 
		 System.out.println(sb.toString());
	}
0 请登录后投票
   发表时间:2010-06-05  
egmacross 写道
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

这个不用内置的能有啥好方法吗?


我觉得这个题考查的是对JDK的熟悉程度  Jdk提供了一些方法的
0 请登录后投票
   发表时间:2010-06-06  
不知道工资有多少 个人觉得如果都很回答上来的话 起码工资能到10K+的水平
0 请登录后投票
   发表时间:2010-06-13  
egmacross 写道
2)假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)?

这个不用内置的能有啥好方法吗?

这么写可以吧。
public static void ab3(){
    String str = "6sab3csssfsab3fs33";
    String str1 = "ab3";
    String str2  = "";
   
    String[] st = str.split("ab3");
    for(int i = 0 ; i < st.length ; i ++){
    str2 = str2 + st[i];
    }
    System.out.print(str2);
    }
0 请登录后投票
   发表时间:2010-07-01  
高手过招。有些题目还是非常头疼的。
0 请登录后投票
   发表时间:2010-09-24  
支持一下,好东西不会过时。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics