58同城Java社招面经分享

1、项目背景还有项目流程
2、从抓包开始到最终显示的时间是多少?
3、有没有调研?每天某个时段的数据流量?
4、如果我在这边频繁刷流量,大约多长时间可以发现异常??
5、redis作为高速缓存和数据库的数据一致性的问题,如果数据更新的话是先更新数据库还是先更新缓存?若果先更新数据库再更新缓存会涉及什么问题
6、hashMap底层?为什么jdk1.8要用红黑树实现?什么时候会出现线程不安全?怎么解决线程不安全?默认初始容量是16,如果我改成7,容量会变成7么?为什么?
7、数组和链表的区别是什么?如果一个数组大小超过堆中剩下的内存大小,还会为这个数组分配内存么?
8、常见的线程池有哪些?线程池中一个线程死了,就没有线程了么?如果在线程池中new了一个线程,这个线程是存在还是不存在?线程池中的一些参数有哪些?newCachedPool最大可开启的线程数是多少?
(1)创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
(2)创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。FixedThreadPool是一个典型且优秀的线程池,它具有线程池提高程序效率和节省创建线程时所耗的开销的优点。但是,在线程池空闲时,即线程池中没有可运行任务时,它不会释放工作线程,还会占用一定的系统资源。
(3)创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。如果这个线程异常结束,会有另一个取代它,保证顺序执行。单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。
(4)创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行。

9、如何实现其他线程和主线程的同步?
10、volatile关键字的特性有哪些?
11、10个线程,如何实现和主线程的同步?场景是:10个人在山下聚齐之后才可以一起爬山,怎么实现?不用synchronized关键字、volatile等同步的关键字。
12、平时建mysql表的时候会考虑一些什么?
13、写sql语句的时候where会考虑什么?


#58集团##Java工程师##社招##面经#
全部评论
你哪天面试的?
点赞 回复
分享
发布于 2020-05-24 23:12

相关推荐

1 17 评论
分享
牛客网
牛客企业服务