精华内容
下载资源
问答
  • java面试项目该怎么讲
    千次阅读
    2021-02-12 23:30:18

    自我介绍和 项目经验介绍, 感觉有真实工作经验,都好说。

    我说一下, 如何突出自己, 我自己的技巧

    个人理解 面试有一个关键的指标是 面试时长,

    有的面试30分钟就结束, 有的面试2小时甚至更久。

    面试官想挖掘你身上更多的技术亮点,你需要表达出更多的内容,深度和广度。

    那么请提前 写写 面试讲稿。 临时从脑袋里提取大量信息,加上 面试紧张感,往往只能说一些表面浅显的信息。 当然,平时对知识熟练度很高,那没什么问题。

    讲稿怎么写呢?

    写成知识链条的形式: 原理--技术--项目场景---性能优化

    这个链条, 就是把 大量相关的信息 链起来。 并提前写下来,形成稿件,面试前充分熟练。

    面试官问 项目, 可以 从项目需求 说的 技术,从技术说的原理, 再聊 优化方案。

    面试官问 原理, 可以从 原理,到技术,到场景,到性能,

    从只 面试官问一个点, 你给他回答一个 面。

    这样 给人的感觉 深度广度有啦, 至少成功概率较大。

    另外可以多看看别人的项目文档, 扩展一下自己的业务知识,

    想要文档的可以私信

    更多相关内容
  • Java面试题83:项目的分类和项目参与者.mp4 │ Java面试题84:项目流程和业务注意事项.mp4 │ 面试必问-Mysql索引背后的故事 │ ├─java面试专属 │ ├─1.面试必考之HashMap源码分析与实现 │ │ 1.面试必考之...
  • Java面试Offer直通车

    2021-06-17 06:53:01
    Java面试宝典】1、68视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司及...
  • Java面试时,如何准备亮点?

    千次阅读 2022-03-16 09:43:40
    我说个观点,对于在校生,也对于想通过社招跳槽的朋友,准备java项目的亮点不能光靠做业务,一定得通过事先定制、植入项目业务、准备说辞和准备相关问题等方式准备亮点。 先说下可能被大多数求职者写入简历并在面试...

    我说个观点,对于在校生,也对于想通过社招跳槽的朋友,准备java项目的亮点不能光靠做业务,一定得通过事先定制、植入项目业务、准备说辞和准备相关问题等方式准备亮点。

    先说下可能被大多数求职者写入简历并在面试时当亮点准备,但其实不是亮点的要素。

    1 做了很多的业务模块。其实这些都是属于增删改查的操作,可能业务细节有差别,但从框架层面来上看,其实差别不大。业务开发多了,顶多是熟练初级开发和新手初级开发的差别。

    2 同时做了前端和后端,或者前端界面很好看,或者在前端引入了多种效果和框架。其实java主要是负责后端,讲具体点就负责从(控制器层)收到请求开始处理的一系列动作。如果求职者有前端开发经验,这是个加分项,但面试官一定不会因为前端做好但后端不熟而录用这位求职者,相反哪怕求职者只熟悉后端开发,前端一点不懂,这也照样有机会应聘成功。

    3 实现了一些较为复杂的功能,比如对日期进行特殊处理的能力,或者能实现很复杂的业务逻辑。上文也说了,能处理较为复杂的业务,依然属于开发项目的能力,有这项技能,顶多能证明求职者属于熟练的初级开发。

    况且,上述要点在面试中还未必能很好地展示,比如你说你前端界面做的好看,你不大可能当场演示吧,比如你说你做的业务模块数量多,功能复杂,在面试时也未必能很好地说明,但如下给出的亮点,一方面难度不高,对初级开发也适用,另一方面准备起来也不难,面试前只要方法得当,只要花费少量时间就能达到能侃侃而谈的地步。

    亮点1,我熟悉项目开发、测试和部署等流程。

    其实这个亮点是白送的,只要是做过项目,那一定经历过这个流程,但面试中很少有人能把这当成亮点说。这块你可以说,在这个项目里,我们是用Maven管理项目,用jenkins部署项目,用git来管理代码。我在这个项目里,除了写代码外,还参与了单元测试和联调。我们代码发布时,最终会把java代码打成jar包并部署到linux服务器上。

    说实在,不少面试官也不会认为此项亮点有多值钱,但你这样会给面试官留下“有项目测试、部署和管理等方面的综合能力”的印象。而且,我知道有些求职者,尤其是在校应届生,他们在简历上的的项目可能是学习项目,但如果你在项目里加上这个亮点,那么如果面试官不细问,就会认为这是更加值钱的商业项目。

    亮点2,我有过数据性能调优方面的经验。

    如果你就说,我用过索引和redis缓存,也有数据库调优经验,那么听起来太空洞,而且面试可能会通过问相关的底层细节来确认。要知道redis和数据库底层细节太繁琐,求职者,尤其是初级开发的求职者被问倒的可能性很大,但如果你按如下的方式植入项目后再说,就能最大程度展现该亮点。

    1 我们项目在部署后,会对MySQL数据库进行监控,这块的监控软件有CAT、newrelic或Zabbix等,一旦数据库SQL语句执行时间超过5秒(或其它时间),我们就会收到告警邮件。

    对于初级开发来说,你甚至不用说监控的细节,因为这不是初级开发的职责范围,你就说这套监控是运维或项目经理搭建的。不过总是先得知道哪些SQL需要调优,才能继续往下说吧,你说出这套说辞,就能让面试官感觉你的数据库调优经验来自项目。

    2 你得把分析过程讲出来,遇到长SQL以后,我们会用执行计划(Execute Plan)分析该sql,这里大家可以去了解下执行计划的知识,比如如何运行,其中包含哪些内容。同时,我们会通过日志,去看当时做了什么业务。

    3 经过分析,通过看执行计划和看日志后,我们知道了原因,原因最常见的是索引,或者是存在多张大表关联,或者是同类sql太多,对数据库压力太大,没建Redis缓存。

    在准备亮点前,需要看下索引和Redis缓存的概念,比如索引的数据结构,哪些情况下该建索引,复合索引是什么,Redis的数据结构是什么?Spring Boot项目是怎么使用Redis缓存的。

    但这里,为了增加可信度,你更要结合项目需求说。比如你说,对此我们建了索引,这样就很笼统,但你如果说,经过看执行计划后发现,是因为在从订单明细表里根据用户名去搜索时,对用户名字段没建索引,或者说,在下订单的过程中,需要根据用户ID多次到风控表里去查数据,这块没用缓存,所以导致性能慢。 这样结合业务说,就一定能在潜移默化过程中,向面试官灌输“你调优经验来自项目”的事实。

    4 同时再讲下怎么解决的,有始有终。解决方法无非是建索引、建复合索引或引入缓存。

    5 你在说好上述整套说辞后,面试官可能会问一些细节,比如索引和Redis的概念等,这块你一定得需要刷八股文来准备。这块如果你心有余力的话,甚至可以准备些值钱技能,比如Redis缓存穿透、Redis缓存的超时时间,或者是Redis持久化技能,或者你还可以再准备,通过Redis集群或MyCAT分库分表组件来提升数据库性能。

    其实面试官对性能慢的原因以及解决方法不怎么关注,更关注一整套分析和解决数据库性能问题的步骤和思路。而且上述说辞和准备要点所涉及到的技能初级开发都能准备到位。而且,哪怕简历上的项目是学习项目,或者来自培训班(当然应当尽量让面试官确信是商业项目),照样可以套上上述数据库调优方面的说辞。

    亮点3,我有过JVM调优方面的经验。

    这里就直接展开说明了。

    1 还是先说监控,我们项目在部署后,会对JVM内存进行监控,CAT、newrelic或Zabbix等同样能监控JVM内存,一旦内存用量超过80%,且持续时间超过5分钟,我们就会收到告警邮件。

    这里额外说下,为了确保项目的高可用,一般代码是会被部署到多个linux服务器上,比如把spring boot项目打成jar包,再通过jenkins,或干脆手动复制,部署到多个linux服务器上。每台部署项目的服务器,都会部署这套监控系统。

    2 再说排查流程。收到告警邮件后,我们会看该服务器的dump文件,其中能看到当时的内存对象,同时会看业务日志,看当时是什么业务导致了内存用量大增。

    这里大家可以去看下dump文件的结构,同时可以操作下通过jmat工具打开dump文件的步骤,因为你一旦说了,面试官可能会细问。

    3 再结合业务说原因,比如可以说,在导入客户数据的过程中,我们是会从多个文件里读取数据再导入,在导入后,没有关闭IO对象,所以导致内存用量大增。

    同样能导致内存用量大增的原因还有,用好HashMap等没有不关掉,或者是缓存Redis数据时没设置超时时间,这就导致缓存对象一直占内存。如果大家要说其它原因,最好也得结合业务说。

    4 再说下怎么解决,无非是关掉文件或对象。不过这里,请大家同时要准备下Java虚拟机结构、垃圾回收流程和垃圾回收算法等细节,有可能面试官会进一步提问。

    亮点4,我有过通过看linux日志分析和解决问题的能力

    这个亮点有哪些值钱点呢?大多数初级开发是只会在windows上做业务,不知道项目是部署在linux服务器上,而且缺乏linux的操作经验。这个亮点所涉及的linux技能比较简单,初级开发也能说,但你一旦说出这个亮点,就不仅能进一步证明该项目是商业项目,而且还能说明你有linux开发经验,更不要说你还具有分析和排查问题的能力了。这方面的亮点该怎么说呢?老规矩结合项目说。

    1 先说下问题的表现形式。你可以说,在一些下订单的流程中,经常会出现500服务器错误。

    2 再说怎么排查。发现问题后,你登录到linux服务器上,用vi命令打开日志文件,再用根据错误关键字和时间,搜索找到上下文,再根据该日志的线程ID去看在该日志文件的其它 日志,如果涉及到其它业务模块,可以用traceID去找。

    3 再说下问题原因和怎么解决。原因你怎么说都行,比如价格参数不符规范,或请求类型应该是POST但发GET,往深了说可以说是因高并发导致的问题。怎么解决就一句话的事情,比如发现问题后,我们加了异常处理机制。

    4 同时再去看下项目里通过logback输出日志的方式,和linux打开文件搜索关键字等命令,以便面试官细问。

    亮点5,我有过通过看底层源码排查问题的能力

    对于初级开发,可以说个简单点的,比如在库存盘点的业务流程里,我们是要通过迭代器遍历ArrayList类型的库存信息。在遍历时,我们同时做了修改,所以就导致了“快速失效”的问题。

    快速失效的底层源码不难,网上一搜一大堆,而且解决方法也简单,就别边遍历边修改了。

    关于底层源码,哪怕是初级开发也可以准备ConcurrentHashMap的,因为其中不仅包含了红黑树等数据结构,还包含了transient和violate等关键字,还包含了线程同步等细节,而且底层源码不难,网上资料很多。

    当然面试中可以准备的亮点不止这些,还可以有分布式组件和集群等,不过上文提到的亮点,哪怕是零基础的,准备起来也不难。再啰嗦下,准备时需要注意如下的要点。

    1 别单写在简历上,更要按上文给出的思路准备说辞,面试时一定会被问。

    2 我知道,哪怕是不少正规项目,也未必能有上述亮点的实践机会,更别提学习项目了。所以在准备时,一方面需要掌握技能,另一方面更得结合项目需求和业务说。

    3 得按监控、发现、排查和解决的流程说,同时更要准备相关细节,比如数据库调优方面需要准备Redis和索引等八股文。当然,准备亮点的同时,八股文和算法这类功夫不能少。

    4 有时候面试官会质疑,或者细问,比如会问,这么简单的问题为什么你们之前的测试没发现?你或者可以说是在测试环境上发现这个问题的,或者就干脆咬定,是在生产环境上发现。至于为什么之前没测出来,你就说你不知道,毕竟你才是一个初级开发。

    或者会问,你说了通过jenkins部署,说了通过new relic监控,你说下细节。或者问些比较深的问题。这些事情其实是资深开发或架构做的,你一个初级开发能知道就不错了,你可以干脆说,这些是我们架构或项目经理做的,面试官听了也就不会再问了。

    更重要的是,你得会引导。比如你在面试中介绍项目时,你说,在这个项目里,我有过数据库性能调优的经验,有过排查内存性能的经验,有通过看linux日志解决线上问题的经验,有通过看底层源码解决实际问题的经验。这样面试官就会继续问了,你就能借机说出来。

    或者你可以在回答到相关问题后再提一句,比如你回答到JPA等数据库问题后,你就说,我除了会用JPA连数据,还解决过数据库性能调优方面的问题,然后面试官问了就再展开。

    通过上文给出的步骤,大家能发现其实Java项目的亮点不是来自业务,而是来自技术,而且你有亮点的实践经验不会说,这也没用。

    但如果你按上文给出的步骤,把这些亮点写入简历,面试前好好准备,面试时全面抛出。这时哪怕你是零项目经验的,面试官也能认为第一你的项目是商业项目,第二你有资深的项目开发经验,这就达到了你准备和抛出亮点的目的了。

    展开全文
  • 32个Java面试必考点.txt

    2021-08-13 13:01:24
    Java 面试基础考察点:从面试中经常考察的 Java 基础核心知识点起,帮你系统化梳理 Java 知识体系,练好基本功,是面试前必须要牢牢掌握的模块。 Java 应用考察点:将围绕常用工具集、常用框架、缓存、队列、...
  • 突击java面试良品,包括各种面试题: 1.面试注意点 2.java基础 3.计算机基础 4.数据库 5.常用框架(Spring+MyBatis+Kafka+Netty) 6.认证授权技术 7.优质面经 8.微服务/分布式 9.开源项目推荐。
  • 贼厉害!java面试项目中的难点

    千次阅读 2021-07-20 01:52:12
    对你来说影响最大的一个项目该面试中有关项目问题都针对该项目展开)? 为什么会想做这个项目?这个项目的ideal是谁提出来的? 项目中如何实现的大数据的传输和存储 项目中哪一部分最难攻克?如何攻克? 基础知识...

    一、 电面:

    自我介绍

    项目情况:

    • 对你来说影响最大的一个项目(该面试中有关项目问题都针对该项目展开)?
    • 为什么会想做这个项目?这个项目的ideal是谁提出来的?
    • 项目中如何实现的大数据的传输和存储
    • 项目中哪一部分最难攻克?如何攻克?

    基础知识考察:

    • 模块化的好处
    • Htttp协议
    • hashmap和concurrenthashmap区别及两者的优缺点
    • 对MySQL的了解,和oracle的区别
    • 对设计模式的看法和认知
    • 有哪些设计模式
    • 如何实现分布式缓存
    • 多线程如何避免死锁
    • Java的垃圾回收机制
    • 对Runtime的了解

    电面过程中非常注重基础知识的考察,面试前务必对基础知识内容进行复习和梳理。基础知识考察的内容一般会围绕项目内容进行展开,在前期对项目介绍进行准备时需适当换位,思考面试官的提问逻辑,避免给自己设下陷阱。

    35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

    二、 现场面:

    35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

    背景了解:

    • 为什么要选择编程这条路
    • 何时开始编程
    • 如何进行自学
    • 阅读过那些书籍
    • 项目考察
    • 项目运行过程中成员是否曾就某一点发生争执?作为Leader你是如何解决的?具体事例?
    • 项目最终实现效果
    • 项目具体部分使用的设计模式并简述选择理由
    • 项目有何需改进之处并初拟改进方案

    想问的问题

    技术面中项目占了相当一部分时间,项目中从技术到个人团队领导能力,从完成执行能力到思想灵活度,都是面试官希望得到的信息。因此,必须对自己的项目多方面展开准备,项目回顾的过程中需不断思考改进方案和具体措施。

    三、 HR面:

    • 业余爱好
    • 为什么不参加竞赛?
    • 你觉得你在项目运行过程中作为组长是否最大限度发挥了组员的优势?具体事例?
    • 如何看待阿里在大数据方面的投入?对阿里的发展有什么建议?对蚂蚁金服的发展有什么看法?
    • 职业规划,今后想发展的工作方向
    • 家乡在哪里,是否愿意长期在杭州发展?
    • 薪酬问题及入职情况

    适当藏拙很重要,因为作为面试者,我们很难判断什么不足对公司来说是无法容忍的,如果临场随性发挥,就容易出现语言漏洞,从而被作为切入点暴露自身缺陷。因此,面试前要仔细准备各种问题,对语言进行推敲,尽量将话题引向有利于自己的方向。

    蚂蚁金服面试题大总结

    蚂蚁金服Java岗一面:

    1. HashMap&ConcurrentHashMap再谈谈一致hash算法?
    2. 乐观锁&悲观锁?
    3. 可重入锁&Synchronize?事务四大特性?
    4. 事务的二段提交机制?
    5. 聚簇索引&非聚簇索引?
    6. 用自己的实践经历说一下索引的使用场景(说一个就要举一个例子)?
    7. 当前读&快照读?
    8. 类加载过程?
    9. 双亲委派机制及使用原因?
    10. 说说GC算法?
    11. Http&Https的区别Https的加密方式线程池的核心参数和基本原理线程池的调优策略你有什么职业规划

    蚂蚁金服Java岗二面(从项目入手):

    1. 说说自己参与的项目,技术难度在哪里?
    2. Collections.sort底层排序方式?
    3. 排序稳定性?
    4. 具体场景的排序策略?
    5. Http请求过程,DNS解析过程三次握手四次挥手简述线程池和并发工具的使用?
    6. 数据库索引原理频繁老年代回收怎么分析解决Spring IOC、AOP?
    7. 讲讲SpringBoot/SpringCloud的一些应用?
    8. 阻塞队列不用java提供的自己怎么实现,condition和wait不能用拥塞窗口讲一讲,为什么要用慢启动算法负载均衡的原理?
    9. Redis的数据一致性问题(分布式多节点环境 & 单机环境)?
    10. 讲讲docker容器?
    11. 如何实现何高并发下的削峰,限流?
    12. 你有什么职业规划(每个面试官都要问这个问题,三面也是)

    蚂蚁金服Java岗三面(大都聊人生):

    1. 项目中用的中间件的理解(Dubbo、MQ、Redis、kafka、zk)服务器雪崩是怎么造成的?
    2. 之前有这样的经历吗?
    3. 怎么防备?
    4. 高并发架构的设计思路以前项目中遇到的最大问题和解决策略生活中遇到的最大的挫折生活中遇到的最大的令你最有成就感的事情你有什么职业规划

    最后

    一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。

    这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。

    image

    请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析

    6717126380)]

    请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析

    资料领取方式:点击【java高分面试指南-25大专题分类】

    展开全文
  • 为什么 Java 中只有值传递? int 范围?float 范围? hashCode 与 equals,什么关系? String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的? Java 序列化中如果有些字段不想进行...

    1 基础

    • 为什么 Java 中只有值传递?

    • int 范围?float 范围?

    • hashCode 与 equals,什么关系?

    • String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?

    • Java 序列化中如果有些字段不想进行序列化 怎么办?

    • 构造器 Constructor 是否可被 override?

    • java 异常体系?RuntimeException Exception Error 的区别,举常见的例子

    • 字符型常量和字符串常量的区别?

    • 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

    2 集合

    集合这块关注一下 1.8 的实现吧,和 1.7 相比变化了很多

    • ArrayList和linkedList的区别?

    • 堆是怎么存储的,插入是在哪里?

    • HashMap和HashTable的区别?讲一下 hashMap 原理。hashMap 可以并发读么?并发写会有什么问题?

    • 集合类存放于 Java.util 包中, 主要有几种接口?

    • Array与ArrayList有什么不一样?简单介绍下 ArrayList 怎么实现,加操作、取值操作,什么时候扩容?

    • 说说ConcurrentHashMap?头插法还是尾插法?扩容怎么做?

    • 集合在迭代的过程中,插入或删除数据会怎样?

    3 并发

    • notify()和notifyAll()有什么区别?

    • volatile 是什么?可以保证有序性吗?

    • 为什么wait, notify 和 notifyAll这些方法不在thread类里面?

    • SynchronizedMap和ConcurrentHashMap有什么区别?

    • 什么是线程安全?Vector是一个线程安全类吗?

    • 线程进程和线程的区别?并行和并发的区别?了解协程么?进程间如何通信:进程 A 想读取进程 B 的主存怎么办?线程间通信?线程的生命周期有哪些状态?怎么转换?wait 和 sleep 有什么区别?什么情况下会用到 sleep?怎么停止线程?怎么控制多个线程按序执行?

    • 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗?synchronized关键字最主要的三种使用方式

    • 为什么要用 join()方法?

    • 什么是多线程中的上下文切换?

    • 死锁与活锁的区别,死锁与饥饿的区别?

    • Java 中用到的线程调度算法是什么?

    • 什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?

    • 什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者

    • 模型?

    • AQS了解 AQS 么?讲讲底层实现原理AQS 有那些实现?讲讲 AtomicInteger 的底层实现

    • 为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方

    • 法?

    • Java 中你怎样唤醒一个阻塞的线程?

    • 什么是线程组,为什么在 Java 中不推荐使用?

    4 IO

    IO 这块我不熟,没有多讲

    • 了解 NIO 么?讲讲

    • NIO 与 BIO 有什么区别?

    • 了解 Netty 原理么

    JVM

    1 内存与 GC

    • GC 是什么?为什么要有 GC?

    • jvm 内存区域分布?gc 发生在哪些部分?

    • 你能保证 GC 执行吗?

    • 怎么获取 Java 程序使用的内存?堆使用的百分比?

    • 介绍一下垃圾回收过程。

    • 垃圾回收算法的了解。现在用的什么回收算法?

    • 什么时候会触发FullGC

    • 现在使用的什么垃圾回收器?知道哪些?讲讲 G1

    • 容器的内存和 jvm 的内存有什么关系?参数怎么配置?

    2 异常与调优

    • 线上有什么 jvm 参数调整?

    • oom 问题排查思路

    • 线上问题排查,突然长时间未响应,怎么排查,oom

    • cpu 使用率特别高,怎么排查?通用方法?定位代码?cpu高的原因?

    • 频繁 GC 原因?什么时候触发 FGC?

    • 怎么获取 dump 文件?怎么分析?

    3 类加载器

    • 怎么实现自己的类加载器?

    • 类加载过程?

    • 初始化顺序?

    Spring

    • 不同版本的 Spring Framework 有哪些主要功能?

    • 讲一下 ioc、aop

    • ioc 怎么防止循环依赖

    • aop 的实现原理、动态代理过程

    • 区分 BeanFactory 和 ApplicationContext?

    • spring bean 容器的生命周期是什么样的?

    • @Autowired 注解有什么用?

    • 使用 Spring 访问 Hibernate 的方法有哪些?

    • Spring 处理请求的过程?

    Redis

    • 为什么要用 redis /为什么要用缓存(高性能、高并发)

    • redis 常见数据结构以及使用场景分析(String、Hash、List、Set、Sorted Set)

    • Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)

    • 分布式环境下常见的应用场景(分布式锁、分布式自增 ID)

    • Redis集群方案应该怎么做?都有哪些方案?

    • Redis 集群的主从复制模型是怎样的?

    • redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)

    • 如何解决 Redis 的并发竞争 Key 问题?

    • 如何保证缓存与数据库双写时的数据一致性?

    • redis 的 zset 的使用场景?底层实现?为什么要用跳表?

    MySQL

    • 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?

    • MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?

    • 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?

    • sql查询语句确定创建哪种类型的索引?如何优化查询?

    • 什么是临时表,临时表什么时候删除?

    • mysql 脏页?

    • 分库分表有哪些策略?怎么保证 id 唯一?

    • 非关系型数据库和关系型数据库区别,优势比较?

    • 数据库的读写分离、主从复制,主从复制分析的 7 个问题?

    • MySQL都有什么锁,死锁判定原理和具体场景,死锁怎么解决?

    • 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?

    • 对 uuid 的理解?知道哪些 GUID、Random 算法?

    • 主键选随机 id、uuid 还是自增 id?为什么?主键有序无序对数据库的影响?

    • 主从复制的过程?复制原理?怎么保证强一致性?

    Kafka

    • 生产者和消费者的命令行是什么?

    • Kafka 怎么保证数据可靠性?

    • 讲讲 kafka 维护消费状态跟踪的方法

    • 为什么需要消息系统,mysql 不能满足需求吗?

    • Kafka 判断一个节点是否还活着有那两个条件?

    • Kafka 与传统 MQ 消息系统之间有三个关键区别?

    • kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?

    • kafka 如何不消费重复数据?比如扣款,我们不能重复的扣

    网络

    • tcptcp 有哪些机制确保可靠性?拥塞控制怎么实现?close_wait 太多怎么处理?为什么会出现这种情况?

    • 讲讲三次握手,四次挥手?

    • keepalive 有什么用?Https 原理?知道哪些 http 状态码有哪些?http 有哪些请求方法?put、post 实现上有什么区别?

    • 前后端分离与不分离的区别?各有什么优缺点?

    • 常见 web 攻击有哪些?了解 csrf 攻击么?

    • nginx 达到上限了怎么办?怎么对 nginx 负载均衡?dns?

    • nginx 负载均衡有哪些算法?各自有什么优缺点?

    • restful 的作用?有哪些优点和缺点?

    • 什么是 cdn?header 中涉及到缓存的字段有哪些?cookie session 介绍一下html 页面,怎么与后端交互?流程是什么?涉及到哪些组件?http 协议,报文格式?

    设计模式

    • 什么是设计模式?你是否在你的代码里面使用过?

    • Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

    • 在 Java 中,什么叫观察者设计模式?

    • 举一个用 Java 实现的装饰模式(decorator design pattern) ?它是作用于对象层次还是类层次?

    • 单例对于单例,你知道哪些实现方法?实现一个懒加载单例双重校验锁为什么需要双重校验?

    • 使用工厂模式最主要的好处是什么?在哪里使用?

    分布式

    • 有哪些分布式组件是你最熟悉的,简单聊一聊。

    • cap 是指什么?mysql 满足 cap 中哪些?

    • 分布式锁有哪些方式可以实现?各有什么优缺点?

    • 什么是一致性 hash?自己实现一致性 hash,会用什么数据结构?

    微服务

    • 微服务架构有哪些优势?

    • 单片,SOA 和微服务架构有什么区别?

    • 什么是 RPC?怎么实现幂等性?

    • 什么是 REST / RESTful 以及它的用途是什么?

    • 配置中心有哪些选项?apollo 的架构?怎么无感实现已加载数据更新?

    • 讲一下熔断概念?熔断原理?令牌桶?熔断三个状态关系?

    • 熔断会影响性能么?有遇到过线上发生熔断么?不加会怎样?

    算法题

    基本都会问时间复杂度

    • 有哪些常用排序算法?

    • 手写快排,快排时间复杂度是多少?

    • 快排算法是不是稳定的?什么是稳定性?

    • 给定一个字母组成的字符串,找出不含有重复字符的最长子串的长度。

    • 9 个硬币中有一个劣币,用天平秤,最坏几次?

    • 深度优先,广度优先

    • 括号匹配,时间复杂度,空间复杂度

    • 单向链表的归并排序

    • 1g 大小文件,里面每行是最大 16k 的单词,限制内存 1m,统计单词频率最多的 100 个单词

    • 手写 100 位带小数的大数字的减法

    笔者福利

    以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。

    有了这个,面试踩雷?不存在的!

    需要这套“面试宝典”的,点击这里即可免费获取!回馈粉丝,诚意满满!!!




    大数字的减法

    笔者福利

    以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。

    有了这个,面试踩雷?不存在的!

    需要这套“面试宝典”的,点击这里即可免费获取!回馈粉丝,诚意满满!!!

    [外链图片转存中…(img-Gztx3lCo-1625831536391)]
    [外链图片转存中…(img-oB6e7yRt-1625831536394)]
    [外链图片转存中…(img-ANBMRSgl-1625831536395)]

    展开全文
  • Java面试题大全(2021版)

    万次阅读 多人点赞 2020-11-25 11:55:31
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java基础知识面试题 1、Java概述 ①. 何为编程 ...
  • 进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、 ...
  • 10万字208道Java经典面试题总结(附答案)

    万次阅读 多人点赞 2021-08-01 16:05:55
    JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
  • 从面试官的角度,聊聊java面试流程

    千次阅读 2021-12-09 12:45:17
    在这篇回答里,就以我常规的面试流程为例,说下java方面大致会问什么问题,以及如何确认候选人达到招聘要求。 先说面试前准备,可能有些面试官是拿到简历直接问,而且是在候选人自我介绍时再草草浏览简历,但我...
  • 作为一个程序员来说,简历可谓是面试的时候一个加分砝码,往往有的面试者只在意自己的技术,其实这是非常不对的。简历对于一个面试者来说非常重要,他是第一个入口,也是面试官认识你的第一个途径。不...
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ...
  • 为大家分享网易Java程序员两轮面试题,考考大家,这些问题你能答对几个?
  • 大厂Java面试过程中怎么谈项目经历呢?下面我们围绕以下几点展开回答: 怎么介绍项目? 怎么介绍项目难点与亮点? 你负责的模块? 怎么让面试官满意? 怎么介绍项目? 我在刚刚开始面试的时候,也遇到了这个问题,...
  • java面试八股文

    千次阅读 多人点赞 2022-03-01 21:58:54
    目录一、java(1)集合1.list:LinkedList、ArrayList和Vector2.set:HashSet和TreeSet3.map:HashMap、TreeMap和HashTable4.list和set的区别(2)其他1.面向对象三大特性2.Object类的常用方法3.Java中线程安全的...
  • Java 面试都只是背答案吗?

    千次阅读 多人点赞 2021-06-09 17:23:55
    由于字数太多,所以只分类给出了面试题目,每道题的答案看文末 一、32 道 MySQL 面试题 1:MySQL 的逻辑架构了解吗? 2:谈一谈 MySQL 的读写锁 3:MySQL 的锁策略有什么? 4:数据库死锁如何解决? 5:事务是什么?...
  • 2022年java开发面试题整理合集

    千次阅读 多人点赞 2022-01-12 14:17:32
    文章目录java基础知识面试题1. 面向对象的特征有哪些方面?2.什么是JDK,JDK 和 JRE 的区别是什么?3.== 和 equals()方法的区别?4.Java 有哪几种基本数据类型?5.访问修饰符 public,private,protected以及不写...
  • Java面试题总结(附答案)

    万次阅读 多人点赞 2020-08-04 23:56:28
    最近参加了一些面试,效果不是很理想,项目介绍只有大框,没有突出重点,没有项目中的具体细节,因为都是看的B站视频,实际工作中都是在做重复的CRUD工作,愁人啊。 618买的新书塑料还没拆!视频计划已经执行到第...
  • 一、面试流程是中午进行的面试,首先是做自我介绍,之后就是一下项目,然后就是回答一些问题。二、面试题1、有没有看过jdk源码?看过java源码吗?看过java集合类源码?2、看过arraylist和hashmap吗?3、hashmap的get...
  • 参加过哪些项目 并发编程三要素? 实现可见性的方法有哪些? 多线程的价值? 创建线程的三种方式的对比? 画出线程的状态流转图 常用的并发工具类有哪些? CyclicBarrier 和 CountDownLatch 的区别 CAS 的问题:1、...
  • 最新Java面试宝典pdf版

    热门讨论 2011-08-31 11:29:22
    3、存储过程与触发器必须,经常被面试到? 92 4、数据库三范式是什么? 94 5、说出一些数据库优化方面的经验? 95 6、union和union all有什么不同? 96 7.分页语句 97 8.用一条SQL语句 查询出每门课都大于80分的学生...
  • Java面试场景整理收录

    千次阅读 2021-03-13 05:09:53
    1. 面试官问你HashMap是不是有序的?你肯定回答说,不是有序的面试官就会继续问你,有没有有顺序的Map实现类?你如果这个时候说不知道的话,那这个问题就到此结束了。如果你说有TreeMap和LinkedHashMap。那么面试官...
  • Java电商项目面试--购物车模块

    万次阅读 多人点赞 2018-08-24 10:07:47
    Java电商项目面试–浮点型商业运算中丢失精度问题 三、更新商品数量 Controller层: //更新购物车 @RequestMapping ( "update.do" ) @ResponseBody public ServerResponse<CartVo> update ...
  • JAVA面试八股文

    万次阅读 多人点赞 2021-02-24 10:38:32
    目录Java基础1. String 和StringBuffer和 StringBuilder的区别?2. sleep() 区间wait()区间有什么区别?3. Object 中有哪些方法?其中clone(),怎么实现一个对象的克隆,Java如何实现深度克隆?ThreadLocal 相关4. ...
  • 史上最全Java面试题大汇总「百题附答案」

    千次阅读 多人点赞 2022-03-17 15:40:23
    前言 整理这些面试题源于在微信群和几个刚入职的小伙伴们的一次讨论,很多小伙伴谈了自己的面试经历和体会,很多人最初鄙视刷题党,觉得开发技能最重要...赢在面试Java基础篇(1) 1、一个".java"源文件中是否可以
  • 宝典有点夸张了,就我做过的校招、面试的经验,下面可以给大家说说应届生(没有多少实际项目经验)要怎么应对面试。 准备一个小系统 首先就是要弥补上应届生没有实际项目经验这块。可以自己动手做一个小项目,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,384
精华内容 34,553
关键字:

java面试项目该怎么讲