本帖最后由 就业高冷派 于 2016-12-14 14:22 编辑
主动出击才是王道 ------Android应聘必备技能 2016年西安的冬天异常暖和,趁着好天气,就出去参加面试,给学生们探探路摸摸水,看看西安Android市场是否真如大家所臆想的那样,诸如”年底公司不招人”,”Android岗位难找工作”,”Android被Html5所代替”等. 面试前传: 我在智联和拉勾上简单的投了不到十份的简历,过了一周时间就收到了三家公司的面试邀请.其中有一家是中软的面试邀请,因我的简历是用的艺名,中软做的是华为外包的项目,面试要刷身份证才能进华为入园区,所以未能入园见到面试官,不过大家可以看看年底面试的场面仍然很火热.(另外提醒各位学生们,因为华为对人才的要求是必须统招本科以上,所以,如果你是大专学历请自觉绕行中软的面试邀请) 小编我一怒之下直接翻开手机拉勾网,第一眼就看到一个叫小喵科技的公司就在附近位置,所以我就在他们的官网上搜索了一下,看看他们官网有没有相关人才招聘信息,或许能获取到面试电话,结果翻到他们官网的最后有两个微信号,管他三七二十一,先加了再说,于是就发了信息过去跟人家打招呼说我是来面试的.结果半天没回复我,小编我就直接杀到他们公司的那座大楼,可是拉勾上的地址没有写具体是几楼,这座大楼里的都是玻璃门,要按指纹才能进入,等半天也没人进出,这下可把小编愁死了,正在这时,微信那个号码回复了 于是,就有了参加面试的机会.以下是面试过程,前方高能,各位车友请注意,老司机要加速过关了: A:我们平时用的是HttpUtils作为网络访问框架,不知道你的编程环境有没有该第三方插件
A:哦,好吧.题目的第一问就是访问一个url,看给的形式是一个get请求,参数是键值对的形式以问号连接在url后面,首先,我需要在界面上写一个EditText控件并设置id,通过id获取到该控件的对象,就可以给该控件对象添加文字改变的监听(addTextChangedListener), 这个接口有三个回调方法,分别是文本被改变前,文本被改变,文本改变后,我们可以在文本改变后去拿到用户输入的文本并访问网络获取json数据.并对json进行解析,将数据存入到javabean对象中.然后通过ListView展示给用户,当文本被再次改变,就需要不断的刷新ListView就可以动态的显示搜索到的结果; 另外,我们可以访问第二个Url,返回数据仍然是一个json格式,根据分析大概是用户所提交的所有项目信息,其中有一个字段是language应该是该项目用到的编程语言,我们就可以把每个项目中的语言存入到Map集合中,键(key)是该语言的字符串,值(value)是该语言在遍历过程中出现的次数,通过判断集合中是否包含该key,未包含就将value设置为1,包含就将集合中的value取出加1后再put进去,然后对Map集合中的元素按照值从小到大排序,最终取出最后一个键即为该用户最擅长使用的编程语言.
Q:很好,那你按照你的思路写出代码吧,我这里有已经模拟好的数据,你来遍历一下. A:行,我看看.(就这样在面试官审视的眼神下我上手就干) 具体代码如下: 注:有一个Repo的javabean自己补全哈 public class Test {
public static void main(String[] args) {
ArrayList<Repo> repos = new ArrayList<>() ;
repos.add( new Repo( "Tom", "Java")) ;
repos.add( new Repo( "Tom", "C")) ;
repos.add( new Repo( "Tom", "JavaScript")) ;
repos.add( new Repo( "Tom", "PHP")) ;
repos.add( new Repo( "Tom", "PHP")) ;
repos.add( new Repo( "Tom", "Java")) ;
repos.add( new Repo( "Tom", "PHP")) ;
String result = countFavor(repos) ;
System. out.println(result) ;
}
private static String countFavor(ArrayList<Repo> repos) {
HashMap<String , String> map = new HashMap<>() ;
for (Repo repo : repos) {
if (map.containsKey(repo. language)) {
int count = Integer. valueOf(s) ;
map.put(repo. language, String. valueOf(++count)) ;
} else {
map.put(repo. language, "1") ;
}
}
System. out.println(map) ;
Map<String , String> sortMap = sortByValue(map) ;
System. out.println(sortMap) ;
return getLastKey(sortMap) ;
}
// 获取最后一个key
private static String getLastKey(Map<String , String> sortMap) {
int i = 0;
for (Map.Entry entry : sortMap.entrySet()) {
String key = (String) entry.getKey() ;
if (i == (sortMap.size() - 1)) {
return key ;
}
i = i + 1;
}
return null;
}
//map集合按照值从小到大排序
//参考博客:http://blog.csdn.net/wangtao6791842/article/details/12904467 没错,就是当着面试官的面上网搜索到该方法
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(
Map<K, V> map) {
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(
map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
return (o1.getValue()).compareTo(o2.getValue());
}
});
Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}
Q:恩,很不错,上次来机试的,半天集合的遍历都没写出来……最后就让他回去了.看来你的java水平很不错啊!我技术这边没啥问题,我们经理最近出差,等周一回来通知你跟我们老板具体聊.你期望薪资多少? A:哦,那好吧.我期望11k,就我的水平你们公司能给多少呢?
Q:嗯,这个你还是具体跟我们老板谈吧. A:看你们办公环境挺好,你们平时工作加班多吗?
Q:我们平时不加班,一般项目上线前会加班,但只要加班就会有加班费.你还有啥问题吗? A:呵呵,没有了.我就随便问问.我们之前公司在项目上线前也会加班,但会根据加班时间转换成调休时间.
Q:行,那你先回去,周一具体你跟老板聊.
面试后传: 周一上午大概十点多接到一个电话说是小喵科技人事,让我去参加复试,于是我傲娇的说,我找到一个12k的工作,已经上班了,不好意思!(再去面,我疯了,简历名字都是假的,被当面戳穿会不会被吊打啊!)
|