行云集团
自我介绍
实习用到的技术栈和编程语言是什么?
(实习是学校很水的5G通信实习,压根不沾边,随便就过了)
Java是什么时候开始接触和学习的?
学习数据结构的时候,对于Map这种数据结构,它的底层是怎么实现的或者有什么特征?
(因为扯了大学学过数据结构就问了这个,但是Map没怎么接触,就扯了HashMap用了链表+红黑树,冲突少用链表,冲突多用红黑树,又扯了红黑树的基本原则和为了解决二叉查找树的平衡问题和JavaGuide里的B树B+树介绍,属于是乱答)
做这个Map的时候,你自己用过什么类型的Map?不管是C++还是Java
(还没用到过,就扯了用的比较多的是小项目里的链表啥的,顺便讲了下自己使用链表和做项目的思路)
算法这块的话,排序算法接触过哪些算法?
(讲了冒泡和快速,但是表示自己对快速的原理记得不是很清楚,含糊地说也不知道说了什么….) 他们的时间复杂度分别是多少?(冒泡n²,快速nlogn,也说了Java的一些类提供的方法应该用的比较多是快速排序)
快速排序它的消耗稳定吗?
(脑抽答了稳定,把平均和最差时间复杂度nlogn和稳定性混为一谈了,估计要g了)
有学习过网络通讯吗?
(表示还没开始学,但是了解过一点,比较含糊地讲了TCP三次握手四次挥手的基本过程原理,也是JavaGuide里的)
有接触过并发编程吗?
(表示有学过多线程的一些基本运用)
还记得吗,比如怎么创建,开始一个线程之类的?
(讲了创建线程的4种方式)
你能举例一下什么时候会出现并发的场景吗?
(不是很理解问题,乱答了一些比如要共同操作共享数据啥的,举了很低级的例子比如多个人向同一账户存款啥的可能会出现线程安全问题,感觉有点跑题了)
可能是跑题了,接着面试官问 能举一个Java编程上的例子吗?比如什么样的代码可能会出现并发的风险?
(多线程没怎么深入学,也可能是对问题有点懵,就表示现在还没有很深入的去学,又扯回刚刚的例子和线程安全问题,还扯了多线程的好处,太菜了)
数据库这块主要接触的是哪个数据库?
(还没学到,但是有过一些入门了解,说了前面的B+树是MySQL的索引数据结构)
SQL最近有写过吗?
(还没写,但是有了解过事务,讲了要么都执行要么都不执行,举了转账的例子,属于是乱答了。表示后面会深入去学)