实用的Java面试题有哪些(java,web开发)

时间:2024-04-20 06:06:09 作者 : 石家庄SEO 分类 : web开发
  • TAG :

    %E5%AE%9E%E7%94%A8%E7%9A%84Java%E9%9D%A2%E8%AF%95%E9%A2%98%E6%9C%89%E5%93%AA%E4%BA%9B

自我介绍这块是面试的一个开场白,这块没什么好说的,不过建议大家可以将自己想表述的内容以文字的形式写下来,然后熟练的背诵下来,这样不管是在电话面试,视频面试还是现场面试都能够流畅的有条理的表述出来。

这个问题给大家一个忠告!千万别说自己不会的领域,不然整个面试还没开始就已经结束了,千万别为了表现,说自己什么领域都擅长,这样在被面试官问了几个问题都答不上来的话,那基本上就判了死刑了,而且整个印象都不会好,以后再想面试都很难了。所以这里我们实事求是就好,熟悉什么就说什么,不熟悉的就不说。

Redis 常用的五大数据类型,String,Hash,List,Set,Sorted Set。然后不要说完这几个类型就不说了,可以再扩展下,顺便可以说下每种数据类型在自己的项目里面是否有用到,具体使用在什么地方,为什么选用这种类型。面试的过程中虽然说是一问一答,但是也要适当的扩展一下,把自己知道的东西稍微多说一点,让面试官知道你是真正的了解。问你数据类型有哪些你就回答有这五个,这样的面试就比较枯燥,很难继续进展下去,给面试官的印象就不好。

关于 Redis 的持久化,我们公众号之前有篇文章专门写了,大家可以看下面试官:请说下 Redis 是如何保证在宕机后数据不丢失的

关于 Redis 的集群模式不管自己有没有搭建过,都可以把自己知道的说出来,主从模式,哨兵模式,集群模式,以及三种模式的区别。

Redis 的主从数据同步跟上面的集群模式这两点都可以单独成一篇文章了,后期阿粉单独分享。

Redis 作为目前主流的缓存数据库,使用的场景有很多,用户 token 的存储,热点数据的存储,当成队列使用,分布式锁,计数器,布隆过滤器等等,结合自己项目中使用的场景可以跟面试官多聊一下。

Redis 官文号称最高 QPS 可以达到十万,那么问什么 Redis 可以有这么高的并发呢?主要是 Redis 采用多路复用 IO 模型,在处理命令的时候是采用单线程去处理的,同时 Redis 的底层采用 C 语言编写,数据结构也相对简单,所以才能如此快速。

MySQL 常用的存储引擎主要有 InnoDB 和 MyISAM 以及 Memory,其中关于 InnoDB 和 MyISAM 的区别公众号前面有文章详细说过,感兴趣的小伙伴可以看一下面试必问的 MySQL 知识点,你还有哪些没准备好,赶紧收藏脑图!

事务的内容在上面的文章里面也有详细说到,可以进去看下。

关于 SQL 优化也是一个老生常谈的话题,在面试中也经常会被问到,关于 SQL 优化,有一篇文章很不错,推荐给大家,里面讲到了很多优化的点,认真记下来对我们很有帮助52条SQL语句性能优化策略,建议收藏

MySQL 的索引也是一个面试中逃避不了的一个问题,详细的内容可以参考公号前面的文章为什么Mysql的常用引擎都默认使用B+树作为索引?

Java 中的线程池有默认的实现,但是日常工作的时候我们一般都会手动创建线程池,具体的内容可以看文章面试官因为线程池,让我出门左拐!,聊聊面试中的 Java 线程池

这两个关键词在 Java 中的重要性已经不言而喻了,不用阿粉在多说什么了,那对于这两个关键词小伙伴都理解了吗?同样的,我们前面也有写过,诡异的并发之可见性

啥也不说了,直接看文章 JVM 是如何加载 Java 类的?,相信看完你就懂了。

看完上面 15 个面试题,很容易发现一个问题,那就是真正面试的时候很多东西我们公众号之前都有写过,只要好好的把这些东西消化了,再加上面试的时候好好发挥,不说一定能拿到 offer,至少前几面都能很完美的过。看到这样是不是觉得这篇文章值得收藏呢?收藏起来,以后在面试前或者面试别人的时候都可以拿出来用一用。

上面提到的是一些技术细节,其实还有很多很多东西,毕竟 Java 的领域涉及到很多地方,像这种面试题简直可以无休止的问下去。聊完了技术细节,后面一般都是针对项目开始询问,每个人的项目不一样,涉及的领域也不一样,不具有参考性,但是一些通用的问题还是要准备下的,比如

项目运用到了哪些技术,整个的框架是什么样子的?

你在这个项目中主要负责哪些内容,你是怎么设计的?

在做这个项目的时候有没有遇到什么技术难点,你是怎么解决的?

项目上线后的 QPS 是多少,用户量有多少,有没有出现过 Fullgc 或者线上 OOM 的情况,你是如何处理的?

模块与模块之前是怎样调用的?HTTP 还是 RPC?RPC 框架用的是什么?了解其实现原理吗?

做这个项目的目的是什么?你对项目所涉及的行业有了解吗?

上面这几个都是日常做项目的时候需要知道和思考的,技术上面涉及到的东西肯定要知道,在最后一个问题上面往往很多小伙伴会忽略,认为不就是一个项目吗?关行业什么事情?其实不是这样的,了解了一个项目的背景和价值可以更好的帮忙我们理解业务需求,从而做到更好的实现,而且对于一些想在某个方向长期发展的朋友,那就更有必要了。

你们项目是分布式的吗?怎么部署的?

如何在不增加机器的情况下提升 QPS?

如何降低各个服务或者机房之间网络通信耗时?

如果机房突然出现故障如何保证数据不丢失?

当下游服务出现问题时如何做熔断限流保证自己的服务不受影响?

本文:实用的Java面试题有哪些的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:如何使用Python面向对象做个小游戏下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18