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、字符串匹配,判定一个字符串是另一个的子串

写了挺多,整体来看体验还是不错的,面试官电话最后还跟我开玩笑,
加油鸭!