58一面,像二面的感觉。。。
刚开始聊了一下项目,涉及到
1、项目背景还有项目流程
2、从抓包开始到最终显示的时间是多少?
3、有没有调研?每天某个时段的数据流量?
4、如果我在这边频繁刷流量,大约多长时间可以发现异常??
5、redis作为高速缓存和数据库的数据一致性的问题,如果数据更新的话是先更新数据库还是先更新缓存?若果先更新数据库再更新缓存会涉及什么问题
基础
1、hashMap底层?为什么jdk1.8要用红黑树实现?什么时候会出现线程不安全?怎么解决线程不安全?默认初始容量是16,如果我改成7,容量会变成7么??为什么?
答了使用HashTable和concurrentHashMap,又问这两个的区别是什么?我答的有它们的加锁机制不一样,后又问lock和synchronized的区别
2、数组和链表的区别是什么?如果一个数组大小超过堆中剩下的内存大小,还会为这个数组分配内存么?
3、常见的线程池有哪些?线程池中一个线程死了,就没有线程了么?如果在线程池中new了一个线程,这个线程是存在还是不存在?线程池中的一些参数有哪些?newCachedPool最大可开启的线程数是多少?
4、如何实现其他线程和主线程的同步?
5、volatile关键字的特性有哪些?
6、10个线程,如何实现和主线程的同步?场景是:10个人在山下聚齐之后才可以一起爬山,怎么实现?不用synchronized关键字、volatile等同步的关键字。我答的队列,然后问如果对应到代码里边应该怎么实现,我答得的BlockingQueue,需要再深入了解一下blockingQueue
7、平时建mysql表的时候会考虑一些什么?答了其他的还有索引,他说你了解索引的哪些???
8、写sql语句的时候where会考虑什么?
差不多就这些,问的挺细的,给出了很多场景,还有很多多线程相关的问题。。。
#面经##实习##58集团##测试工程师#