9.12 美团二面,细问java八股文,给我问懵了,项目问题一点没有,白看了好久的场景题🤡自我介绍问点Java集合类,arraylist和hashmap简单介绍一下(底层数据结构,扩容机制,查询的时间复杂度)提到了hashmap的查询效率是O(1),为什么呢?(数组在内存中是连续内存,所以查询时间复杂度是O(1))hashmap遇到冲突是怎么解决的?(链地址法,rehash法,开放寻址法,(公共溢出区等))刚才说hashmap的查询时间复杂度是O(1),但是遇到hash冲突hashmap会转变为链表或者树的形式,这样的查询时间复杂度好像不是O(1),为什么最终结论是hashmap的查询时间复杂度为O(1)呢?(当时说不知道,(应该是在数据量小的时候,是O(1),在数据量大的时候是链表的O(n)或者是树的O(logn),理想情况下是O(1)的)刚刚说arraylist是什么时候扩容来着? (1.5 倍扩容,当当前数据量达到最大数据量的0.75的时候会扩容)那hashmap是什么时候扩容?(先说了hashmap的链表转红黑树的时机,再说了当当前数据量大于等于数组长度*loadFactor(16 * 0.75)的时候进行扩容)为什么hashmap是0.75呢?是1行吗?是2行吗?(当时答是妥协的因素,设为1和2是可以的,避免了hashmap在大量插入数据的情况下的扩容问题,扩容影响性能。为什么是0.75:泊松分布 ,看来还是考察的还是hashmap的源码,orz忙着看项目了,没背java基础,给跪了)扩容因子为0.75的好处:如果扩展因子过小,HashMap 将会频繁地扩展容量,导致较多的内存开销和较慢的查询速度;如果扩展因子过大,HashMap 将较少地扩展容量,导致冲突的可能性增加,查询速度可能会变慢。为什么arraylist也有一个0.75呢?(底层arraylist在扩容时,会调用System.copy()方法,它会先生成一个新数组进行拷贝,所以扩容会消耗一定的内存资源)jdk还看过什么源码?(线程池)java里面线程有几种状态?(就绪,运行,等待,等待一段时间,终止)阻塞和等待有什么区别?(没答好,查了一下,阻塞会持有临界资源并等待,等待会释放临界资源,不过概念还是比较模糊)线程调用sleep方法,sleep(10s),结束后,调用sleep的线程处于什么状态?(在sleep的时间内,线程不会释放临界资源,在sleep结束之后,线程正常运行,sleep一般是模拟一些业务,之后unlock就释放了临界资源,比如锁)然后就被套路了。。。 orz那还是那个问题,sleep 10s 后线程就会立马被唤醒起来执行吗?(答的不会立马执行,sleep之后接notify/notifyAll才能唤醒。应该是会立即执行,自己脑子被绕进入了,orz)线程池源码的一段话。。。 讲的是线程池创建线程,执行任务的过程。。。问了创建了一个corePoolSize=maxPoolSize=5的线程池,不放任务,线程池中有多少个线程? (0个)放了一个任务,线程池中有多少个线程?(1个)任务结束了,线程池中有多少个线程?(1个)放了10个任务,线程池中有多少个线程?(5个,还有5个任务在阻塞队列)算法题,金字塔型数组,寻找从上到下的最小和,dfs秒了,问还有更优的吗,dpmysql判断题: select * from table where a=x and b=y and c=z,a,b,c 各有一个索引(总索引数为3),问,mysql执行这个sql语句走什么索引? (高版本mysql走联合索引,减少回表,但是面试官好像不太认可这个答案,orz)sql题:问table表中有日期date和订单号order_id,写sql语句求出在2023-01-01之后的重复订单select  order_id from  (select       order_id,      count(order_id)      from table      where date >= '2023-01-01'      group by order_id      having count(order_id) > 1) t问 select * from table where a=5 for update 加了什么锁?        答:行锁,是表锁行锁的行锁(面试官不太满意),当前读+临建锁,不过好像也不太对,orz        应该是锁了a这个索引吧,具体细节没怎么问最近看什么书?你跟前端起冲突了怎么解决?反问:在哪方面需要提升?多关注基础知识,不要只提升广度,更要提升知识的深度。要不断的保持学习和知识的注入,多看东西部门做什么业务本次面试的结果多久通知?听hr统一的安排本次面试,您更在乎的是基础,业务方面对应届生有多高的要求呢?社招和校招不一样,社招需要你带来一些经验。公司会耐心的去逐步培养同学,所以校招更侧重专业能力,学习能力,好奇心和解决问题的能力等等。因此更加注重基础一些。
点赞 24
评论 8
全部评论

相关推荐

05-28 23:26
河南大学 Java
双非本,刚学完Redis,项目只有外卖和点评,八股没准备,算法只有lqb省一,感觉敲的项目也是一言难尽没怎么吸收。怎么你们都有实习了
大牛之途:27急个锤子,你投日常实习最好的时间就是9,10月份,那时候暑期实习都结束了,正是缺人的时候。这份日常又能给你的暑期实习增加竞争力,暑期找的好了秋招也不怕了,都是环环相扣的
点赞 评论 收藏
分享
关于我大学本科四年,想了很多,但还是不知道该怎么动笔 “大学四年,是我从懵懂少年走向职场青年的转折期。这一路跌跌撞撞,有迷茫,有遗憾,也有成长和决心。” 大一刚进来时仍然有高中那股学习劲,经常一个人去图书馆学高等数学,但后面劲头一过便开始在宿舍开启躺平生活(现在想想那段时间真的很爽,无忧无虑)。由于大一担任班干部,所以经常要跟其他班的班干部交流,在此期间认识了隔壁班的一位女生,短发而很可爱,因为很多团建还有比赛都是我们两班一起参加的,而且我和她都是负责人,所以交集很多,后面慢慢地彼此对产生了好感,所以在大一刚开学的2个月后,我们在一起了,彼此之前都是初恋。但当时我真的是太太太直男了,对感情的想...
真烦好烦真烦:骗哥们可以,别把你自己也骗到了就行。哥们被你骗了真无所谓的,打个哈哈就过了。但希望你打完这段话后擦一下眼角,别让眼泪掉在手机屏幕上了就行。你说的这些话,哥们信一下也是没什么的。还能让你有个心里安慰,但这种话说出来骗骗兄弟就差不多得了,哥们信你一下也不会少块肉,但是你别搞得自己也当真了就行。哥们被你骗一下是真无所谓的,兄弟笑笑也就过去了。真不是哥们想要破你防,你擦擦眼泪好好想想,除了兄弟谁还会信你这些话?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务