面试官比较有个性,直接说从这几个方面考察:java(10道题=5高级概念+5普通概念),Android(5道题)数据结构和算法。

Java部分:

1、静态引入和非静态的区别

2、临时变量 是什么

3、注解,如何实现,常见的有哪些, 哪些能去那些不能去

4、序列化及反序列化,应用场景及为什么要采用这种方式

5、同步 面的较浅,锁对象与锁类本身

6、对c++开发人员(或未接触过GC的人)来说,介绍Java的垃圾回收机制

7、final   这个问题比较逗比,说final是不是只能修饰常量

8、反射,原理及使用场景、c++中每没有反射,是如何实现类似反射功能的

其余的忘了

Android部分:

1、UI模块

view、listview、Message

2、数据库模块

跟初始化数据库相关的类,及每个类的职责

3、jni模块 

基本概念及如何使用+system.load(“lib”);库文件存放位置,如何互相调用

4、网络:

七层模型及对应协议、HTTP协议、及与urlconnection优缺点

5、反编译及bug解决

未提问

选择一个你最擅长的部分,其余部分简单体味

数据结构和算法:

因前面答得不好,这一部分知识简单的手写了两个代码:你认为最好的单例模式快速排序


总结:基础知识上,基础不够扎实,编程思想没有完整看完一遍;

技巧上:面试官给你说的每句话要发现其潜在意图,面试主要考察两方面的能力:一是你已经获得/习得的能力(相关技术你早晚都会学会,只不过你现在不会而已,一些问题没答上来不要灰心);二是你的潜力,你解决问题的能力和沟通能力。举个例子就是你觉得你项目中有没有遇到挑战性问题以及你是如何解决的,争取往好处夸,虽然在他看来可能这个问题很简单,但是重点是,他考察你解决问题的能力。

题主吃了第二点的大亏,切记切记!!!!!