2019.3.15晚9点,人生中第一次电话面试
录音了,感觉答得虽不说滔滔不绝,但也是振振有词(滑稽)
做一个记录,记录了所有的问题,有些问题简单写了当时的思路,有些问题回答就是瞎扯的,就不写回答了
项目系列
一开始先讲项目,没有标准答案,自由发挥,吐字清晰即可
ps:光这个就聊了30分钟……
1、讲一讲你做的最大的项目?
a:我说的是安卓的租车APP
2、从中你学到了哪些东西?
3、安卓那么多界面,你如何适配的?
4、你的项目有出现无法按时完成的情况吗?怎么解决的?
a:我说提前完成……
5、那你们提前完成的原因是什么?
a:5个人分工合作
6、设计数据库的时候你们基于什么去考虑的?
7、你刚刚提到数据表多次修改,那你们是如何在现有数据表表基础上做优化的?
8、假设需要对系统里面租车的用户做潜在风险防控,如何设计规则去惩罚或奖励用户?
9、你刚刚提到jdbc连接数据库,具体是怎么做的?
10、你们只用jdbc连接数据,假如有10万人用,你觉得jdbc能够完成吗?如何改进
11 、听说过数据库连接池吗?
12、数据库连接池会带来什么问题?
java基础
1.java里面有哪些基础类型
胡乱说了一些,面试官直接一句:从小到大说
我说了7个 byte,char,int ,最后一个boolean怎么也没想到
2.基本类型和包装类型有什么区别?
基本类型是传值,在栈中生成,包装类型本质上是对象,在堆中产生,需要new
3.String有哪些常用方法?
length,reverse,equals只答了3个……
4.String类型比较为什么用equals,而不是==
equals比值,而 ==比的是引用
5.为什么equals能够比值?
答不出来
6.java中对象的公共方法有哪些?
我说我经常用toString,没了…… 他说toString是最不重要的方法~
7.一个类被final修饰了,那么他里面的变量能不能修改?
我说可以,就像深复制和浅复制一样,他说这两个没关系
然后我说final修饰的是类的引用,里面的属性是不收约束的,所以可以改
8.throw和throws有什么区别?
throw是方法内手动抛出,throws是方法声明的时候自动抛出
9.java的异常体系是什么?
受检查异常和不受检查异常
受检查异常也分很多种,如IO异常,空指针异常等
10.什么情况下出现gc(垃圾回收)?
对象占满内存的时候,讲了新生代,元空间的一些概念
11.如何尽可能少的出现full gc?
1.new更少的对象
2.手动system.gc
12.如果每天运行10亿次,如何自动gc?
我发明了对象池的概念……
13.线程的状态变化?生成线程的方式?
新建,就绪,运行,阻塞,终止
Thread,Runnable,callable,以及线程池
……我还提到了线程同步
14.violate是什么?能保证线程安全吗?
以前看过,忘了……
15.block和wait的区别?
从翻译名字上来讲……wait主动等,block被动停……编不下去了
16.他两如何恢复?
不会……
17ArrayList和LinkedList有什么区别?
一个是数组队列,一个是链表队列,本质上是数组和链表的区别……
18 HashMap的实现原理
String->获得hashcode->进入数组,如果发生冲突,用链表连接,超过8用红黑数排列
19.HashMap如何扩容?
新建数组,扩容一般,然后将老数组内容复制到新数组
其他
1.做项目的时候出现了哪些分歧?怎么解决的?
扯了一个地图功能,在我的坚持下,加进去了
2.假如项目进度赶不上了,你还会加这个功能吗?
3.我看你简历想做python数据挖掘,你对数据挖掘怎么理解?
4.你对支付宝有什么看法?
我每次支付都会返0.1元,怎么做到的,不会亏吗?商业机密……
蚂蚁森林很棒!
我提出了一个问题,支付宝在18线城市基本没有市场,完全被微信打败,因为哪里的人一定会用微信,顺便用微信支付,所以没有必要用支付宝
5.你还有什么问题吗?
讲了一个自己的问题
总结 :总体来说,答得还可以,只有一两道完全不了解,其他都能说几句,用时56分33秒
在线笔试
之后他给我发了一个阿里伯乐的在线评测,有5道题,任选3道
其中有两道是写代码的,他居然不让在IDE里面写,只能在上面写,那个评测系统除了代码会高亮之外和记事本就没啥区别……
写了也不知道对不对
我写的3题是
1、如何解决发送方和接收方的信息处理不同步的问题
2、写一个搜索算法
3、字符串匹配,判定一个字符串是另一个的子串
写了挺多,整体来看体验还是不错的,面试官电话最后还跟我开玩笑,
加油鸭!