数据结构论坛

首页 » 分类 » 问答 » 最近被问到的的面试题,一定要看看,高频面
TUhjnbcbe - 2024/6/6 17:26:00
白癜风应该如何治疗 http://pf.39.net/bdfyy/bdfzg/140808/4443995.html

最近准备跳槽,这今天作者约了好几场面试,都为网上视频面试,今天就来和大家聊聊面试中的那些事。

根据自己的简历审视,不会的一定不要写

首先,正常的面试官上来肯定都会让你来做一个自我介绍的,不用太长,一分钟足够,介绍自己的学校,学历,专业,以及简要介绍自己的技术,然后步入正题。

第一道:介绍一下你了解的数据结构,不仅仅只局限于Java?

答:(不仅仅局限于Java看的我一脸懵逼,硬着头皮回答)常见的数据结构包括集合跟数组以及链表,其中数组是固定的,而集合是可变的,数组储存的必须是同一个数据类型,而集合则不然,常见的集合类:

Map接口和Collection接口是所有集合框架的父接口:

1.Collection接口的子接口包括:Set接口和List接口(List有序容易插入,set无序容易增加删除)

2.Map接口的实现类主要有:HashMap(JDK1.8之前HashMap由数组+链表组成的,1.8后红黑树)、TreeMap、Hashtable、ConcurrentHashMap以及Properties等

3.Set接口的实现类主要有:HashSet(无序,唯一)、TreeSet(有序,唯一)、LinkedHashSet等

4.List接口的实现类主要有:ArrayList(Object数组,优点:顺序添加,随机访问)、LinkedList(双向循环链表,优点:增加删除)、Stack以及Vector(Object数组,线程安全)等(综合来说,在需要频繁读取集合中的元素时,更推荐使用ArrayList,而在插入和删除操作较多时,更推荐使用LinkedList。)

第二道:我看你的项目中用到了多线程以及定时任务,能讲一讲是怎么使用的嘛?

答:(项目多线程是二次开发封装好的,所以并没有太深的了解)

1.由于算是自由发挥,首先创建线程的四种方式

2.线程的run()和start()有什么区别?

3.五种状态?()

4.sleep和wait的区别(sleep不释放锁,wait释放锁;wait方法被调用后,线程不会自动苏醒,需要别的线程调用notify或者notifyall方法唤醒,而sleep方法执行完后,线程会自动苏醒,或者设置超时时间自动苏醒)

5.唤醒线程的方法,以及区别(notify(唤醒一个处于等待的线程)和notifyall(唤醒所有等待的线程))

第三道:数据库优化方面的,用过那些优化?

答:对查询进行优化,要尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引

应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。

应尽量避免在where子句中使用or来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描

对于多张大数据量(这里几百条就算大了)的表JOIN,要先分页再JOIN,否则逻辑读会很高,性能很差。

第四道:介绍一下redis,你平时的使用场景?

答:简单介绍结构,以及缓存热点数据(allkeys-lru从所有数据集中挑选最近最少使用的数据淘汰;最常用的热点数据缓存策略)

其他的不会,redis用的比较少,但上网搜索了几种常见的用法,可以了解下

第五道:Springboot常用注解,以及区别SSM的不同(脑残问题耶)

第六道:linux以及docker常用命令,能说几个嘛?(自己私下了解)

第七道:平时开发中遇到过哪些异常?(正在了解)

下面就开始问项目经验了(略)

1
查看完整版本: 最近被问到的的面试题,一定要看看,高频面