`
清泉风影
  • 浏览: 106348 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

上海华为的一次面试经历

阅读更多

从接到华为面试电话那天起就在想,到底要不要走。去了是不是浪费自己的时间,在大脑反复的琢磨。直到今天早上起床的时候都在犹豫。发到我的邮箱的内容如下:

华为招聘:请于本周六8:30到浦东峨山路91弄98号陆家嘴软件园餐厅二楼参加工具开发部的技术面试,接待人张小姐,请带学位证、毕业证、英语四六级证、身份证以上四证的原件及复印件,简历,笔。若无法参加面试,请反馈给13661609375张先生。交通:地铁四号线到蓝村路下,219、东川线、871、隧道9线、970、619、819、610等到峨山路的车。
怎么是早上8:30呀!那我还不要6:30就要起床,因为要坐共交还要座地铁,真是够折磨人的。真的去了面试的地方太知道自己错,错在自己太守时了。实际上用不着去那么的早的。因为他有很多的场次,这场赶不上就下场,反正就一天的时间。听说是四面,到底是几面后面再说。接着往后说,我拿了一份应聘登记表,一五一十的填写个人相关的信息,具体什么内容,只要参加过相关面试的人都知道。接着就是上交应聘登记表,等待相应的面试官,在这过程中有两面,都是技术方面的面试。第一、问问相关的工作经历什么的。第二、就是做Java方面的面试题。不是我说,那Java面试超级的简单,都是我博客里的相关题目,这里我就说下最后那个编程题吧。
 
java 代码
  1. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。   
  2. 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。   
  3. public class ThreadTest1{   
  4. private int j;   
  5. public static void main(String args[]){   
  6. ThreadTest1 tt=new ThreadTest1();   
  7. Inc inc=tt.new Inc();   
  8. Dec dec=tt.new Dec();   
  9. for(int i=0;i<2>   
  10. Thread t=new Thread(inc);   
  11. t.start();   
  12. t=new Thread(dec);   
  13. t.start();   
  14. }   
  15. }   
  16. private synchronized void inc(){   
  17. j++;   
  18. System.out.println(Thread.currentThread().getName()+"-inc:"+j);   
  19. }   
  20. private synchronized void dec(){   
  21. j--;   
  22. System.out.println(Thread.currentThread().getName()+"-dec:"+j);   
  23. }   
  24. class Inc implements Runnable{   
  25. public void run(){   
  26. for(int i=0;i<100>   
  27. inc();   
  28. }   
  29. }   
  30. }   
  31. class Dec implements Runnable{   
  32. public void run(){   
  33. for(int i=0;i<100>   
  34. dec();   
  35. }   
  36. }   
  37. }   
  38. }   

 

java 代码
  1. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。    
  2.   
  3.   答:代码如下:   
  4.   
  5. package test;    
  6.   
  7. class  SplitString {   
  8.  String SplitStr;   
  9.  int SplitByte;   
  10.  public SplitString(String str,int bytes) {   
  11.   SplitStr=str;   
  12.   SplitByte=bytes;   
  13.   System.out.println("The String is:'"+SplitStr+"';SplitBytes="+SplitByte);   
  14.  }   
  15.   
  16.  public void SplitIt() {   
  17.   int loopCount;   
  18.   loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/SplitByte+1);   
  19.   System.out.println("Will Split into "+loopCount);   
  20.   for (int i=1;i<=loopCount ;i++ ) {   
  21.    if (i==loopCount){   
  22.     System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));   
  23.    } else {   
  24.     System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));   
  25.    }   
  26.   }   
  27.  }   
  28.   
  29.  public static void main(String[] args) {   
  30.   SplitString ss = new SplitString("test中dd文dsaf中男大3443n中国43中国人0ewldfls=103",4);   
  31.   ss.SplitIt();   
  32.  }   
  33. }    
  34.   

 

这个我做的很不错已经给了面试官一个不错了印象,然后就让我做数据结构相关的题目。拿起试题就感觉到有点不对劲了,以前很熟悉的链表,遍历等等现在脑子里一点概念都没有了。随便做了下,结果很不理想。所以说想去华为面试之前一定要把数据结构的东西再回味一下。可能因为Java面试做得不错的原因吧,第一面就这样过了。等了一会,第二面开始了,先也是很谈谈工作经历什么的,接着就是让我做一份与操作系统相关的题目,然后就提了几个问题,就这样我的二面就过了,可能这就是他们一惯面试流程。面试官说你到下午1:30再进行三面吧。整个二面完是10:30左右。这就是说我的技术面试都面完了。

听说中午可以免费在华为的食堂吃饭,这个都是蛮不错的,还没有一个公司面试还提供免费午餐的。等到吃饭的时间去领了张饭票,上面的标价是9元。我随便先了二、三个就11元,只好自己再补二元。哈哈。。感觉不错,比我们以前公司里的食堂的饭菜强多了。中午休息的时候找到了个打乒乓球的地方,不过要收费(场地费6元,租用球拍2无,乒乓球2元,时间一个小时),好几年都没有打乒乓球,比较的爽。

反正等了很久再到三面。我们正式三面时候是5:00左右的样子,进去之后就来个自我介绍,由于我是坐在第一个坐子,因此从我第一个开始自我介绍。我一开始说了太多,被面试官打断了说你说简单点,就说说你的优点、缺点、个人爱好就可以了。由于我是第一个说的,不是很理想。每个人介绍完后面试官就发话了,你随便的说说在所有的自我介绍中谁给你的影响最深。然后一个一个接着发言,竟然有人说我对他留下的影响最深,说我是第一个发言的,还能随机应变,我那个时候真的很爽。。哈哈。我猜可能是因为我们有共同的爱好足球,所以才给他留下的影响最深。不管怎样还是很谢谢他。接下来就是相关活动的游戏测试。具体如下:接这次三面的人分成二组A,B,共同去完成这样的一件事。假如我们在月球上的飞船碰到了相应的故障,放在飞船上的物资要做相关的处理,下列的15种物资(水、氧气、食物、指南针、地图、PM、信号弹、急救箱、火柴、50米的绳子等等)中你会怎样排选,把你认识最不可少的列在第一位,如此类推。我就是在这个环节中被淘汰的。

今天刚刚面试完,回来就把全部的相见相闻都写了下来。不管怎样,有这样的一次面试机会真的是收获不小。因为在此之前我从来没有见过样的面试场面,大概有1000号人左右吧。下次有机会一定还要去华为面试。

 

分享到:
评论
71 楼 windedge 2008-02-24  
limx 写道
celine 写道
所以面试的时候要讲真话,才能发现你和公司是否相互合适,否则是浪费双方的时间
你上当了?公司也上当了啊

limx 写道
没经历过集体面试

我的3面是和HR单独谈的
用早就背好了的所谓追求人生价值的理论相互忽悠了一番

4面和一位女性领导(3级部门经理)聊了聊职业规划(中间问她一些关于公司培训和工作岗位职责的问题),谈了薪水,感觉她对我比较满意......=.=!

2周后接到录取通知,文化培训后来部门报道,然后发现上当了......


现在回想起来,也许太多去HW的人都和我一样抱着不正确的心态说了假话,进了HW,然后又在一段有收获或没收获的、开心或不开心的不长的时间后离开了HW.......

叹...
70 楼 szhnet 2008-02-22  
package test;

class  SplitString {    
	private String SplitStr;    
	private int SplitByte;    
	public SplitString(String str, int bytes) {    
		SplitStr = str;    
		SplitByte = bytes;    
		System.out.println("The String is:'" + SplitStr + "';SplitBytes=" + SplitByte);    
	}    
	   
	public void SplitIt() {    
		int splitedByte = 0;
		String splitedStr = "";
		if (SplitStr == null) {
			System.out.println("null");
			return;
		}
		char tempChars[] = SplitStr.toCharArray();
	 	for (int i = 0; i < tempChars.length; i++) {
	 		String tempStr = String.valueOf(tempChars[i]);
	 		splitedByte += tempStr.getBytes().length;
	 		if (splitedByte <= SplitByte)
	 			splitedStr += tempChars[i];
	 		else
	 			break;
	 	}
	 	System.out.println(splitedStr);
	}    
	   
	public static void main(String[] args) {    
		SplitString ss = new SplitString("我ABC汉DEF",6);    
		ss.SplitIt();    
	}    
}     

字符串那道题,应该这样才对吧
69 楼 alph0618 2008-02-22  
srdrm 写道
截字符串那题,楼主应该是没做对的


原题:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”

去看下LZ是怎么写的,是按字符个数来截的而是字节个数
68 楼 srdrm 2008-02-22  
截字符串那题,楼主应该是没做对的
67 楼 alph0618 2008-02-20  
贴个图片吧,好看点:
66 楼 alph0618 2008-02-20  
我来贴出我的:

package com.zhangmon.zzb.thread;

class SplitString
{
private String splitStr;

private int splitByte;

public SplitString(String str, int bytes)
{
splitStr = str;
splitByte = bytes;
}

public void splitString()
{
// 字符长度
int strLength = splitStr.length();

// 一个字符的位置
int strPos = 0;

while(strPos < strLength)
{
// 别截取字符串的长度
int outByteLen = 0;

// 存放截取的一个个字符
StringBuffer bs = new StringBuffer();

while(outByteLen < splitByte)
{
// 截取一个字符
String charStr = splitStr.substring(strPos, strPos + 1);

// 获取截取字符的字节长度
int charLength = charStr.getBytes().length;

outByteLen = outByteLen + charLength;

// 如果截取的字符串长度大于需要的长度则字符位置向后退一位,并调出本次循环
if(outByteLen > splitByte)
{
strPos--;
System.out.println("strPos--:" + strPos);
break;
}
else
{
strPos++;
System.out.println("strPos++:" + strPos);
bs.append(charStr);
}
}

System.out.println("split string:" + bs.toString());
}
}

public static void main(String[] args)
{
SplitString ss = new SplitString(
"test中dd文dsaf中男大3443n中国43中国人0ewldfls=103", 4);
ss.splitString();
}
}

结果:
strPos++:1
strPos++:2
strPos++:3
strPos++:4
split string:test
strPos++:5
strPos++:6
strPos++:7
split string:中dd
strPos++:8
strPos++:9
strPos++:10
split string:文ds
strPos++:11
strPos++:12
strPos++:13
split string:af中
strPos++:14
strPos++:15
split string:男大
strPos++:16
strPos++:17
strPos++:18
strPos++:19
split string:3443
strPos++:20
strPos++:21
strPos--:20
split string:n中
strPos++:21
strPos++:22
split string:中国
strPos++:23
strPos++:24
strPos++:25
split string:43中
strPos++:26
strPos++:27
split string:国人
strPos++:28
strPos++:29
strPos++:30
strPos++:31
split string:0ewl
strPos++:32
strPos++:33
strPos++:34
strPos++:35
split string:dfls
strPos++:36
strPos++:37
strPos++:38
strPos++:39
split string:=103
65 楼 alph0618 2008-02-20  
LZ,不好意思,你两道题都做错啦
64 楼 coreymylife 2008-02-19  
楼主java基础不敢恭维,还在洋洋得意
63 楼 zhuangwenbo 2008-01-04  
我也来贴一下第二题的答案,欢迎指正:

public String subStringByByte(String str,int byteLenth){
      if(str == null || "".equals(str))
      return str;
      if(byteLenth <= 0)
      return str;
      byte [] bs = str.getBytes();
      if(bs.length >= byteLenth)
      return str;
    int templengh = 0;
        for(int i = 0;i<str.length();i++){
        char aChar = str.charAt(i);
        templengh +=String.valueOf(aChar).getBytes().length;
        if(templengh == byteLenth)
        break;
        else if(templengh > byteLenth ){
        templengh -= String.valueOf(aChar).getBytes().length;
        break;
        }
        }
      
        return new String(str.getBytes(),0,templengh);
      }
62 楼 metaphy 2008-01-03  
编码问题确实非常头疼
61 楼 limx 2007-12-17  
celine 写道
所以面试的时候要讲真话,才能发现你和公司是否相互合适,否则是浪费双方的时间
你上当了?公司也上当了啊

limx 写道
没经历过集体面试

我的3面是和HR单独谈的
用早就背好了的所谓追求人生价值的理论相互忽悠了一番

4面和一位女性领导(3级部门经理)聊了聊职业规划(中间问她一些关于公司培训和工作岗位职责的问题),谈了薪水,感觉她对我比较满意......=.=!

2周后接到录取通知,文化培训后来部门报道,然后发现上当了......


现在回想起来,也许太多去HW的人都和我一样抱着不正确的心态说了假话,进了HW,然后又在一段有收获或没收获的、开心或不开心的不长的时间后离开了HW.......
60 楼 celine 2007-12-07  
所以面试的时候要讲真话,才能发现你和公司是否相互合适,否则是浪费双方的时间
你上当了?公司也上当了啊

limx 写道
没经历过集体面试

我的3面是和HR单独谈的
用早就背好了的所谓追求人生价值的理论相互忽悠了一番

4面和一位女性领导(3级部门经理)聊了聊职业规划(中间问她一些关于公司培训和工作岗位职责的问题),谈了薪水,感觉她对我比较满意......=.=!

2周后接到录取通知,文化培训后来部门报道,然后发现上当了......
59 楼 limx 2007-12-07  
没经历过集体面试

我的3面是和HR单独谈的
用早就背好了的所谓追求人生价值的理论相互忽悠了一番

4面和一位女性领导(3级部门经理)聊了聊职业规划(中间问她一些关于公司培训和工作岗位职责的问题),谈了薪水,感觉她对我比较满意......=.=!

2周后接到录取通知,文化培训后来部门报道,然后发现上当了......
58 楼 cheerfull 2007-12-05  
汗,上海和南京的华为都去面试过,笔试题都很简单。

上海那回,就那个截取中文的程序没写起来,中午拿了10块钱饭票,贴了5

毛,两回都栽在集体面试上,总感觉很不适应这样的方式,看来还要再积累

经验才行,大公司还是必须适应大公司的那套东西!
57 楼 huxp 2007-11-14  
	public static String splitString(String str, int k) {
		if (str == null || "".equals(str) || k < 1) {
			return "";
		}
		byte[] temp = str.getBytes();
		int pos = temp.length < k ? temp.length : k;
		try {
			String t = new String(temp, 0, pos, "GBK");
			if (str.startsWith(t) == true) {
				return t;
			} else {
				return new String(temp, 0, pos - 1, "GBK");
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return "";
	}
56 楼 tianya 2007-11-14  
第2题lz的理解有误吧?从lz的程序中没有看出根据字节作的处理。另外题目出得也有问题,应该说明字符串是什么编码,才能按字节截取。不同编码会导致不同的答案,比如gbk编码下识别汉字就会根据gbk编码的特点来判别。实际上,要求完成的函数参数使用String并不合适,容易使人误解,应该使用byte[]题意更明确些,并告知使用何种编码。java中的String采用unicode,每个字符都占用2个字节,不分中文英文,所以题意肯定不是指unicode编码,而应该指gbk之类的ansi编码。
55 楼 wlqswp 2007-11-13  
能显示中文就是GBK吧,答案要那么复杂吗。给一个简单的
public static String spitString(String str,int num)
{
if(num>str.getBytes().length)
{
return null;
}

else if(num==str.getBytes().length)
{
return str;
}
else
{
String s=new String(str.getBytes(),0,num-1);
String s1=new String(str.getBytes(),0,num);
String s2=new String(str.getBytes(),0,num+1);

if(s1.length()==s2.length())
{
return s;
}
return s1;
}
54 楼 killerll 2007-11-12  
我也贴贴.我的代码
	public static void splitString(String string,int bytes){
		//获得总长度
                int length=string.getBytes().length;
		
                if(bytes<=length){
                        //声明一个byte数组
			byte[] b=new byte[bytes];

                        //获得string的byte数组
			byte[] b1=string.getBytes();

                        //用一个数表示汉字的byte出现了几次
			int count=0;
			for(int i=0;i<bytes;i++){
				b[i]=b1[i];
				if(b[i]<0)
					count++;
			}
                        //如果出现的不是双数,说明多了半个汉字没有截取。就将byte长度。减少
			if(count%2!=0)
			{
				bytes--;
			}
			byte result[]=new byte[bytes];
			for(int j=0;j<bytes;j++)
				result[j]=b[j];
				       
			try{
				System.out.println(new String(result));
			}catch(Exception e){	
			}
		}else{
			System.out.println("大于了总长度");
		}
	}
	
	public static void main(String args[]){
		String str=new String("我晕abc");
		splitString(str,5);
	}


不知道各位达人。。觉得我的代码是否正确。
可以test

另外如果我在linux采用eclipse用utf-8的编码。
这个问题就会非常复杂。。
汉字是3个byte的话,这个题的难度就增加了。
不过用我这个算法。只需要将%2改成%3,并相应更改一些。其他的。
不知道我说的对不对
53 楼 dishuian943 2007-11-11  
受益非浅!有这份经历真羡慕!
52 楼 firefox_1983 2007-10-29  
public static String cut(String str, int len) {
String resultStr = "";
for (int i = 0; i < str.length(); i++) {
if (resultStr.getBytes().length
+ str.substring(i, i + 1).getBytes().length > len) {
break;
} else if (resultStr.getBytes().length
+ str.substring(i, i + 1).getBytes().length <= len) {
resultStr = resultStr + str.substring(i, i + 1);
}
}
return resultStr;
}

相关推荐

Global site tag (gtag.js) - Google Analytics