A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这篇侧重于具体的笔试、面试的问题,至于是哪个公司的就不去追究了,但一定是经常问到的,而且我嵌入式系统工程师和移动开发工程师都参与了,问题要区别看待,那么自然就少了很多对C++问题的考察。

    笔试

      有一个教训是,题目让你编程实现的,不要罗列一大堆思想方法,编程么,就是把你的代码写上去,比如写个非递归的中序遍历二叉树,都知道用个栈就好了,但是还是要写的。

      嵌入式中最常考的就是
   (1)运算符优先级,实在记不下来,每次去前看一遍(没办法,人家非要考)
   (2)用变量a给出下面的定义(《程序员面试宝典》,后面很多题都是其中的),注意a)一个指向有10个整型数数组的指针 b)一个指向函数的指针,该函数有一个整型参数并返回一个整型数 c)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
   (3)结构体占用内存空间大小的计算,然后优化;考察内存对齐(为什么要对齐?),其实不同编译器,不同平台都是有差别的,但既然要考,把基本的弄清楚。
   (4)剩下的对const的理解,#define和inline的区别,typedef、volatile的理解使用以及值传递、地址传递,内存空间分配(堆栈)等宝典上都有。
   (5)这里加两个代码的:a)CPU大小端的判断(要理解)

[cpp]



    int check_endian(){
  •     union w{  
            int a;
  •         char b;  
        }
  •     c.a = 1;  
        return (c.b == 1)
  • }


    b)求二进制数中1的个数(《编程之美》),这个很常用,是一些问题的基础,其中a是要求1个数的数

[cpp]



    int num = 0;
  • while(a){  
        a &= (a-1);
  •     num++;  
    }
  • return num;


   (6)Java中主要涉及接口、抽象类的理解,异常处理机制

   (7)对内存回收时机的考察(恰当时候,不是一定回收),finalize的执行,顺带的可以和final、finally的理解一起出现,而且注意finally即使在return后面,也照样执行;有些公司考到内存的分代回收,可以了解下。

   (8)字符串常量池的理解,题目的话就是结合new创建对象和==、equal,问你创建了几个对象,判断两个对象是否相同,一般记住new肯定创建新的引用,而是否指向同一个字符串用==无法判断,而单独声明String对象,那么就没有新创建对象。

   (9)String类的+操作,StringBuild的优化和StringBuffer的区别,相类似的对各种容器的区别理解(List,Set,Map),而且会说到线程安全SynchronizedMap和ConcurrentHashMap的区别;至于真的考察Java中I/O类的联合使用,那就靠自己的经验了。

   (10)内部类、泛型、反射好好看看《Java编程思想》,基本应该能搞定。而且你还会看到是否有sizeof,线程之间的协作问题等等。

    面试

       不管答案怎样,面试的心态和表达技巧一定要多学习,不要仅仅回答是或否,要有条理的展开,否则一个小时左右的面试会有各种各样的问题,总有你答的不好的;面试是个人和人交流的过程,但是简单基础的问题千万别错,否则后面一点机会没有。

   (1)必问:进程间通信、写个擅长的排序或者网络公司问个TCP、UDP区别,其实可以从问你DNS、HTTP、Ping等属于哪一层,底层是基于传输层的什么来考察你的;还有就是各种权限相关的,序列化相关,C++的虚函数实现,Java的内存回收机制,强调的是要用自己的话说出来,尽量不要去背。嵌入式的基本nand nor Flash的区别以及笔试中的大小端、宏定义、断言等问题也常在面试中出现。

   (2)常问在《编程之美》上的如摸石头的游戏3篇, 求二进制数中1的个数 ,寻找最大的K个数,斐波那契(Fibonacci)数列,数组相关的如 求数组的子数组之和的最大值,求数组中最长递增子序列 以及 桶中取黑白球等,很多是原题,也有就是以此为基础来做的; 比如百万级数量的IP段,一个区段对应一个地方(比如北京,西安之类),给一个IP查找确定是哪个地方

   (3)设计模式 23个常用的要了解一下,单例模式要会实现,看看我推荐的书应该问题也不大的。

   (4)Android相关的也是些框架的理解,进程间通信,四大组件的理解使用,从这些问题上看看你到底用到、学习到一个什么样程度,对错估计不是特别在意的。

   (5)非技术性的就是些项目难点,收获,感受,你的优势,证明你的能力之类,还有就是你期望的工作环境、氛围,职业规划,理想;有时会遇到压力的优缺点,把一个MP3推销给聋子等问题。补充一下的是,有时候会从你做的项目中问你对产品的思考,包括UI、功能实现,性能优化等等。面试还是针对公司的特点,多看以往的面经比较好。

       最后要说的是不管你大二、大三,研一、研二,其实对于找实习都是个非常好的锻炼机会,早早的了解自己的优势和需要弥补的地方,同时也能证明你是个用心,早做准备之人,机会是留给有准备的人的,祝你好运!后面会再写一篇关于工作,关于人生道路的选择的。
[url=http://www.cn-java.com/www1/?action-tag-tagname-%C3%E6%CA%D4%BC%BC%C7%C9][/url]

6 个回复

倒序浏览
看到题目我惊呆了...
回复 使用道具 举报
To 金牌黑马 2013-10-12 11:12:41
藤椅

看到题目我惊呆了...
回复 使用道具 举报
黄兴旺 发表于 2013-10-12 09:58
看到题目我惊呆了...

:lolhiahia!
吓屎你!
回复 使用道具 举报
仇邓强 发表于 2013-10-12 11:12
看到题目我惊呆了...

:D小强乖哈
回复 使用道具 举报
提前来看看,嘿嘿
回复 使用道具 举报
看到这么多问题我也惊呆了。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马