前言: 楼主毕业三年,从大学时期就开始一直从事java web方面的开发。我在去年的今天有一篇帖子:两年java面试经验。经历了一年的上班,成长了很多。今年因为某些原因辞职了。从2月底辞职,到3月初,大概花了半个月的时间,面试了很多家公司,其中包括:阿里、京东、去哪儿、美团、携程等互联网公司,在此分享一下面试的经验,整理一下三年的java web的开发面试经验,希望能给广大的网友朋友一些参考,大家共同进步:

1:手写一个单例模式(双重检查锁机制)

2:volatile是如何实现变量可见的?用到了哪些指令?工作内存和主内存解决了什么问题?以及他们之间的交互过程

3:jvm如何调优?写几个参数出来?尝试设计一个自己的JVM,你会如何设计?

4:dubbo的group怎么用?超时时间设置的作用域有哪些?优先级是什么?

5:ThreadLocal底层如何实现?map中的key是什么?vlaue是什么?需要解决什么问题?哪个方法可以防止内存泄露

6:讲一下currentHashMap的get方法过程,如何链表转红黑树?

7:有一个表t1,列为ABC,索引为AC,现在select xx from table where c=xx a =xx有没有用到索引?

8:cas是什么?给你笔画一下具体的实现过程?cas什么时候结束?

9:java的锁存储在哪?占几个比特位?锁是如何升级的?

10:redis的缓存淘汰策略有哪些?LRU和LFU区别,手写一个LRU

11:写出线程池的核心参数,并解释,然后说明线程池是有哪些放弃策略?

12:http属于什么层协议?与https的区别是什么?Tcp协议属于那一层?OSI七层网络模型有哪些?三次握手和四次挥手的过程?为什么握手要三次,挥手要四次?

13:线上cpu占用率高怎么办?如何排查这个问题,用哪些命令

14:spring使用了哪些设计模式?BeanFactory和Factory的区别是什么?

15:策略模式的使用场景?说一下它的优点和缺点?

16:给你一个秒杀场景,如何应对短时间的高峰请求问题?数据库如何防止并发问题?秒杀如何实现不同的客户端的时间一致性?

17:redis的基本数据类型有哪些?hash的使用场景?如何通过redis实现一个阻塞队列?

18:画出dubbo的调用关系图?并举例说明调用链

19:cas是什么?解释一下cas的原理。并用笔画出来,aba问题怎么解决?

20:你们的线程池是如何配比的?默认的线程数是多少?写出线程池的几个参数,并结合你们的项目解释一下是如何调优的?

21:sring的事务用过吗?简述一下如何使用?当方法A使用了事务,方法B也使用了事务,他们的事务策略都是:如果没有新的事务就开启一个事务,问调用过程中事务是如何传播的?

22:给你一串连续的数字,1到10000,随机除去两个数,怎样快速找到这两个数?

23:tomcat的IO框架经历了怎样的变化?谈谈你对NIO流的理解?

24:redis的缓存策略有哪些?手动写一下LRU的实现方法,并介绍一下LFU

25:redis的集群是如何找到具体的key的?你们的集群采用哪种持久化策略?为什么?集群搭建模式是什么?

26:一串有负数和正数的数字,用算法实现连续的数字加起来的和最大的一串数字?

27:hashmap为什么是线程不安全的?线程安全的有哪些集合?讲一下集合框架,包括map和list

28:秒杀场景下如何实现分布式锁?redis搭建的集群会存在并发问题吗?怎么解决?

29:目前jdk用的垃圾回收器是什么?讲一讲垃圾回收的内存划分?引用链可达是从哪里开始回收的?扩展:职责链模式

30:java有哪些加载器?Java的类加载机制是什么?双亲委派机制是什么?有什么好处?我如果想自定义一个名为Object的类,如何加载它?

31:你知道哪些设计模式?在项目中用到了哪些设计模式?讲一讲具体的应用场景和实现方式

32:redis集群是把数据存储在所有节点吗?如果是存储一个节点?它怎么知道存储到哪个节点?当master节点挂了,缓存是不是就删除了?增加一个节点或者删除一个节点,集群会怎么处理?

33:方法前如果不声明private、public,那么是什么?它的级别是什么?

34:有没有线上调优JVM的经验?如何打印gc细节?

35:把你知道的GC算法都说一下,虚拟机经历了怎样的变化才发展到今天?

36:你做了什么项目?有哪些功能?有什么优势?解决了什么问题?你认为还有那些优化的点?

37:什么是可重入锁?假如我一个线程申请了可重入锁,那么子线程可以再次用到可重入锁吗?

38、jvm的内存结构是什么样的?请画出来并且是哪些是线程共享的?哪些是线程私有的?

39、双向升序链表的插入和删除(笔试)

40、二维数组的遍历和赋值(笔试)

42、算法:一个公司找猎头拿简历 1000份,每个猎头需要的佣金一样,但每个猎头拥有的简历数不相同(可能重复) ,问公司如何能雇佣最少的猎头找到更多的简历

42、 接口限流策略有哪些

43、微服务雪崩后怎么处理的?

44、多线程环境,线程如何同步?

45、用多线程统计1到1000000之间有多少个素数,并输出素数(假设cpu有四核)(机试)

46、用java实现各订单生成器,需要考虑可读、并发、不可重复(机试)

47、归并排序(机试)

48、rabbitmq消息重复和丢失如何处理?

49、一个部分有序的数组,如何找到一个指定的数字?要求时间复杂度不能超过log(n)

50: hystrix如何实现服务降级、治理、熔断,讲一讲微服务中服务熔断的过程?你们都是怎么处理的?

51:mysql的limit查询如何进行优化?索引遵循什么原则?

52:ElasticSearch了解吗?ElasticsSearch如何计算评分?评分公式写出来,有哪些查询命令?

53:微服务的事务你们用什么解决?事务的传播机制,方法A调用方法B,方法A有事务,问调用方法B还会有事务吗?

总结: 看一下两年的面试和三年的面试,有一个很明显的变化是:目前市场对三年的要求不仅重视深度,并且重视广度。大公司对于的算法的重视程度基本是首位的。现在的面试都不仅仅让你回答,更是让你用笔写出来,给面试官解释清楚问题。所以如果是很模糊的话,就基本没戏了。也包括一些机试题,三年的技术总结更加重视于高并发的处理,包括不限于消息队列、锁、redis、mysql、jvm、事务、微服务的考察都是互联网公司必面试的,所以不仅要临时抱好佛脚,更要重视平时在工作中的积累。2019年是个行情很差的年份,很多人出去找工作好几个月最终都无功而返。但我不唱衰行业,任何时候都是优胜略汰制,就业环境差了,但是作为一名开发,技术才是考量你的第一因素(当然我的意思不是唯技术论,情商和素质、与同事相处也同等重要),路漫漫其修远兮,大家共勉加油吧。

再次送上福利:加java技术群:618626589 ,群资料里有,随时可下载(群内无任何广告和推销培训,博主是自学过来的,推荐自学的朋友一起交流技术)ps:为什么我要建自己的群:博主也加了很多群,大部分都是在闲扯,斗图,无聊的话题,我选择自己创建一个纯技术交流群,旨在创建一个干净的交流环境,欢迎各位高手或者新手加入!

三年java面试题的更多相关文章

  1. Java面试题汇总

    第一阶段:三年我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本 上的内容迈向真正的企业级开发.我们知道如何团队 ...

  2. Java面试题汇总---升级版(附答案)

    前几天写了Java面试题汇总---基础版,总结了面试中常见的问题及答案,那我今天基于昨天的话题做一次升级,也就是说,求职者除了要学习了解哪些常见的基础面试题之外,还得准备些什么呢? 对有工作经验的求职 ...

  3. 2021最新Java面试题全集-20210326版

    在手撕了数千道网络流传的面试题,外加十多个不眠之夜, 终于从里面精心挑选出约500道题目, 做为大家求职.跳槽前复习准备面试使用. 一:挑选题目的原则: 常考的.常被面试问到的 题目有一定的深度和难度 ...

  4. java面试题及答案(转载)

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  5. 115个Java面试题和答案——终极列表(下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

  6. Java面试题(全)

    JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以 ...

  7. Java面试题大全(四)

    JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...

  8. 大公司的Java面试题集

    找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...

  9. 收集了50道基础的java面试题

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

随机推荐

  1. appium自动化环境搭建

    1.java开发环境JDK 2.android SDK(platform/platform tools/tools/build tools) 3.python下载安装(pip) 4.appium下载安 ...

  2. 英特尔近日发布最新版实感™ SDK R5 (v7)

    英特尔开发人员专区 原文地址 英特尔® 实感™ SDK 的 7.0.23.8048 版本(也称为 R5)现已推出.您将看到的主要变化包括: 支持英特尔® 实感™ SR300 摄像头:应于 2016 年 ...

  3. 在进行分布式框架搭建的过程中,出现问题advised by org.springframework.transaction.interceptor.TransactionInterceptor.invoke(org.aopalliance.intercept.MethodInvocation)?

    今天在进行宜立方商城,进行文件配置的时间,遇到如下的问题,问题是:advised by org.springframework.transaction.interceptor.TransactionI ...

  4. 使用Idea工具创建Maven WebApp项目

    (1)New Project,选择模板,配置SDK (2)配置项目名及项目组名 GroupID是项目组织唯一的标识符, 比如我的项目叫test001 那么GroupID应该是 com.lixiaomi ...

  5. 【Linux 运维】 date的使用

    date的使用 一.常用时间格式 #年.月.日 四位年大写,其余小写 [root@localhost ~]# date +%Y #长格式显示四位数年 [root@localhost ~]# date ...

  6. Linux环境下Java应用性能分析定位-CPU使用篇

    1     CPU热点分析定位背景 CPU资源还是很昂贵的,为了深刻感受到这种昂贵,间下图当前CPU的资源售价: 所以对于程序猿们来说,需要让程序合理高效的使用CPU资源.利用有限的CPU资源来解决完 ...

  7. 1.airflow的安装

    1.环境准备1.1 安装环境1.2 创建用户2.安装airflow2.1 安装python2.2 安装pip2.3 安装数据库2.4 安装airflow2.4.1 安装主模块2.4.2 安装数据库模块 ...

  8. Java中的多态,引用类型的转换

    1.多态分为引用多态和方法多态,见测试类 package com.wangcf; //父类 public class Animal { public void eat(){ System.out.pr ...

  9. CS小分队第二阶段冲刺站立会议(5月27日)

    昨天成果:昨日有些小意外,导致没有按照原定计划工作.昨天为扫雷游戏增加了新的失败特效,只要玩家点到地雷,所有的地雷都会依次出现两帧的爆炸效果,并伴随声音. 今日计划:排除一些现有程序的bug.. 遇到 ...

  10. ERROR----java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

    2013-4-28 13:17:57 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filte ...