2014-4-15-面试腾讯实习生初始小结

昨天去参加腾讯2014校园实习生初试,岗位是移动客户端方向。

上周六参加笔试之后,受到面试的通知,时间为15号上午九点。略伤感,学校距离大学城那么远。怎么可能准时参加面试呢?舟车劳顿之后,十点钟顺利到达华工大学城中心酒店。签到,排队等虐。。。

在我面之前,前面有华工研二的师兄,都是同一个实验室的。恰好他们的导师在我们学校当校长,彭新一。。。双方各种嘘寒问暖之后,慢慢熟悉。他们都好腻害,都搞出了实际的app出来。把自己的项目秀出来就是自己能力的体现吧。

由于我迟到,被排到了最后。解释了迟到原因之后,面官说这是他们安排的失策,我微微一笑。。。

面试过程记流水账一下:

  1. 自我介绍
  2. 一开始的时候,我已经向面试官说明我是刚接触安卓开发的,于是,面官问了几个关于安卓比较基础的问题:
    1)activity的生命周期。
    2)activity在什么时候销毁。
    3)相比于前面有过项目经验的两位师兄,他给我提了一下建议,反正就是扯了一大堆。然后再对比一下他们两个人存  在的差别。接着说了一下他对技术的观点:
         a )天下程序大家抄,学生把教科书里面的内容抄到一下小项目中。面官是做关于安卓网络这一块的。
         b)他吹牛逼说,腾讯要做就做行业第一。
  3. 接下来面官要求手写代码,这是一幕很狗血的情节。。。重点我已经省略。
    1)要求:一个数组,包含了一百个整型0~99的元素,现随从机抽取元素,然后进行按照大小进行排序。
    2)要手写代码已经是我意料之中的一件事,但由于自身功底不行,没能很好搞定这个简单的问题。
    3)现在把代码补回来:
    package com.bobo.paixu;
    
    import java.util.Random;
    
    /**
     * 排序测试类
     */
    public class ArraySortTest {
    
    	/**
    	 * 初始化测试数组的方法
    	 * @return 一个初始化好的数组
    	 */
    	public int[] createArray() {
    		Random random = new Random();
    		int[] array = new int[100];
    		for (int i = 0; i < 100; i++) {
    			array[i] = random.nextInt(100) - random.nextInt(100);// 生成两个随机数相减,保证生成的数中有负数
    		}
    		System.out.println("==========原始序列==========");
    		printArray(array);
    		return array;
    	}
    	/**
    	 * 打印数组中的元素到控制台
    	 * @param source
    	 */
    	public void printArray(int[] data) {
    		for (int i : data) {
    			System.out.print(i + " ");
    		}
    		System.out.println();
    	}
    	/**
    	 * 交换数组中指定的两元素的位置
    	 * @param data
    	 * @param x
    	 * @param y
    	 */
    	private void swap(int[] data, int x, int y) {
    		int temp = data[x];
    		data[x] = data[y];
    		data[y] = temp;
    	}
    	/**
    	 * 随机生成新数组
    	 * @return 数组
    	 */
    	public int[] createNewArray(int[] arr) {
    		Random random = new Random();
    		int[] array = new int[10];
    		for (int i = 0; i < 10; i++) {
    			array[i] = arr[random.nextInt(10)] ;// 生成随机数
    		}
    		System.out.println("==========生成新的原始序列==========");
    		printArray(array);
    		return array;
    	}
    	/**
    	 * 直接选择排序法----选择排序的一种
    	 * @param data要排序的数组
    	 * @param sortType排序类型
    	 * @return
    	 */
    	public void selectSort(int[] data, String sortType) {
    		if (sortType.equals("asc")) { // 正排序,从小排到大
    			int index;
    			for (int i = 1; i < data.length; i++) {
    				index = 0;
    				for (int j = 1; j <= data.length - i; j++) {
    					if (data[j] > data[index]) {
    					index = j;
    					}
    				}
    				// 交换在位置data.length-i和index(最大值)两个数
    				swap(data, data.length - i, index);
    			}
    		} else if (sortType.equals("desc")) { // 倒排序,从大排到小
    			int index;
    			for (int i = 1; i < data.length; i++) {
    				index = 0;
    				for (int j = 1; j <= data.length - i; j++) {
    					if (data[j] < data[index]) {
    						index = j;
    					}
    				}
    				// 交换在位置data.length-i和index(最大值)两个数
    				swap(data, data.length - i, index);
    			}
    		} else {
    			System.out.println("您输入的排序类型错误!");
    		}
    		printArray(data);// 输出直接选择排序后的数组值
    	}
    	
    	/**
    	 * 主测试方法
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		ArraySortTest sortTest = new ArraySortTest();
    		int[] array = sortTest.createArray();//创建数组
    		int[] new_array = sortTest.createNewArray(array);
    		
    		System.out.println("==========排列后的数组==========");
    		sortTest.selectSort(new_array, "asc");
    		
    		
    		
    	}
    }
    
  4. 说说unicode和UTF-8的区别。
    http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
  5. 数字加密。
    http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
  6. Huffman编码
    http://coolshell.cn/articles/7459.html

看到很多人写所谓的面经中,经常会看到面官说:你的笔试成绩不错,整体上排名比较靠前。同样,昨天面官也对我说了,我只能呵呵了。

你可能感兴趣的:(2014-4-15-面试腾讯实习生初始小结)