一、Java基础

1、Arrays.sort实现原理和Collections.sort实现原理
答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort实现的。TimSort算法就是找到已经排好序数据的子序列,然后对剩余部分排序,然后合并起来.
2、foreach和while的区别(编译之后) 线程池的种类,区别和使用场景
3、分析线程池的实现原理和线程的调度过程
4、线程池如何调优
5、线程池的最大线程数目根据什么确定

6、动态代理的几种方式
7、HashMap的并发问题
8、了解LinkedHashMap的应用吗
9、反射的原理,反射创建类实例的三种方式是什么?
10、cloneable接口实现原理,浅拷贝or深拷贝

11、Java NIO使用
12、hashtable和hashmap的区别及实现原理,hashmap会问到数组索引,hash碰撞怎么解决
13、arraylist和linkedlist区别及实现原理
14、反射中,Class.forName和ClassLoader区别
15、String,Stringbuffer,StringBuilder的区别?

16、有没有可能2个不相等的对象有相同的hashcode
17、简述NIO的最佳实践,比如netty,mina
18、TreeMap的实现原理

二、JVM相关

1、类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,他们的执行顺序
2、JVM内存分代
3、Java 8的内存分代改进
4、JVM垃圾回收机制,何时触发MinorGC等操作
5、jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代,几种主要的jvm参数等

6、你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms,g1
7、新生代和老生代的内存回收策略
8、Eden和Survivor的比例分配等
9、深入分析了Classloader,双亲委派机制
10、JVM的编译优化

11、对Java内存模型的理解,以及其在并发中的应用
12、指令重排序,内存栅栏等
13、OOM错误,stackoverflow错误,permgen space错误
14、JVM常用参数
15、tomcat结构,类加载器流程

16、volatile的语义,它修饰的变量一定线程安全吗
17、g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择
18、说一说你对环境变量classpath的理解?如果一个类不在classpath下,为什么会抛出ClassNotFoundException异常,如果在不改变这个类路径的前期下,怎样才能正确加载这个类?
19、说一下强引用、软引用、弱引用、虚引用以及他们之间和gc的关系
20、常见Java面试题大综合,非常值得一看,面试必备!!!

三、JUC/并发相关


1、ThreadLocal用过么,原理是什么,用的时候要注意什么
2、Synchronized和Lock的区别
3、synchronized 的原理,什么是自旋锁,偏向锁,轻量级锁,什么叫可重入锁,什么叫公平锁和非公平锁
4、concurrenthashmap具体实现及其原理,jdk8下的改版
5、用过哪些原子类,他们的参数以及原理是什么

6、cas是什么,他会产生什么问题(ABA问题的解决,如加入修改次数、版本号)
7、如果让你实现一个并发安全的链表,你会怎么做
8、简述ConcurrentLinkedQueue和LinkedBlockingQueue的用处和不同之处
9、简述AQS的实现原理
10、countdowlatch和cyclicbarrier的用法,以及相互之间的差别?

11、concurrent包中使用过哪些类?分别说说使用在什么场景?为什么要使用?
12、LockSupport工具
13、Condition接口及其实现原理
14、Fork/Join框架的理解
15、jdk8的parallelStream的理解

16、分段锁的原理,锁力度减小的思考
17、常见Java面试题大综合,非常值得一看,面试必备!!!

四、Spring


1、Spring AOP与IOC的实现原理
2、Spring的beanFactory和factoryBean的区别
3、为什么CGlib方式可以对接口实现代理?
4、RMI与代理模式
5、Spring的事务隔离级别,实现原理

6、对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的?
7、Mybatis的底层实现原理
8、MVC框架原理,他们都是怎么做url路由的
9、spring boot特性,优势,适用场景等
10、quartz和timer对比
11、spring的controller是单例还是多例,怎么保证并发的安全

五、分布式相关


1、Dubbo的底层实现原理和机制
2、描述一个服务从发布到被消费的详细过程
3、分布式系统怎么做服务治理
4、接口的幂等性的概念
5、消息中间件如何解决消息丢失问题

6、Dubbo的服务请求失败怎么处理
7、重连机制会不会造成错误
8、对分布式事务的理解
9、如何实现负载均衡,有哪些算法可以实现?
10、Zookeeper的用途,选举的原理是什么?

11、数据的垂直拆分水平拆分。
12、zookeeper原理和适用场景
13、zookeeper watch机制
14、redis/zk节点宕机如何处理
15、分布式集群下如何做到唯一序列号

16、如何做一个分布式锁
17、用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗
18、MQ系统的数据如何保证不丢失
19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题。
20、算法&数据结构&设计模式

21、海量url去重类问题(布隆过滤器)
22、数组和链表数据结构描述,各自的时间复杂度
23、二叉树遍历
24、快速排序

六、BTree相关的操作


1、在工作中遇到过哪些设计模式,是如何应用的
2、hash算法的有哪几种,优缺点,使用场景
3、什么是一致性hash
4、paxos算法
5、在装饰器模式和代理模式之间,你如何抉择,请结合自身实际情况聊聊

6、代码重构的步骤和原因,如果理解重构到模式?
7、数据库
8、MySQL InnoDB存储的文件结构
9、索引树是如何维护的?
10、数据库自增主键可能的问题
11、MySQL的几种优化

12、mysql索引为什么使用B+树
13、数据库锁表的相关处理
14、索引失效场景
15、高并发下如何做到安全的修改同一行数据,乐观锁和悲观锁是什么,INNODB的行级锁有哪2种,解释其含义
16、数据库会死锁吗,举一个死锁的例子,mysql怎么解决死锁

七、Redis缓存相关


1、Redis的并发竞争问题如何解决了解Redis事务的CAS操作吗
2、缓存机器增删如何对系统影响最小,一致性哈希的实现
3、Redis持久化的几种方式,优缺点是什么,怎么实现的
4、Redis的缓存失效策略
5、缓存穿透的解决办法

6、redis集群,高可用,原理
7、mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
8、用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次
9、redis的数据淘汰策略

八、网络相关


1、http1.0和http1.1有什么区别
2、TCP/IP协议
3、TCP三次握手和四次挥手的流程,为什么断开连接要4次,如果握手只有两次,会出现什么
4、TIME_WAIT和CLOSE_WAIT的区别
5、说说你知道的几种HTTP响应码

6、当你用浏览器打开一个链接的时候,计算机做了哪些工作步骤
7、TCP/IP如何保证可靠性,数据包有哪些数据组成
8、长连接与短连接
9、Http请求get和post的区别以及数据包格式
10、简述tcp建立连接3次握手,和断开连接4次握手的过程;关闭连接时,出现TIMEWAIT过多是由什么原因引起,是出现在主动断开方还是被动断开方。

九、其他


1、maven解决依赖冲突,快照版和发行版的区别
2、Linux下IO模型有几种,各自的含义是什么
3、实际场景问题,海量登录日志如何排序和处理SQL操作,主要是索引和聚合函数的应用
4、实际场景问题解决,典型的TOP K问题
5、线上bug处理流程

6、如何从线上日志发现问题
7、linux利用哪些命令,查找哪里出了问题(例如io密集任务,cpu过度)
8、场景问题,有一个第三方接口,有很多个线程去调用获取数据,现在规定每秒钟最多有10个线程同时调用它,如何做到。
9、用三个线程按顺序循环打印abc三个字母,比如abcabcabc。
10、常见的缓存策略有哪些,你们项目中用到了什么缓存系统,如何设计的
11、设计一个秒杀系统,30分钟没付款就自动关闭交易(并发会很高)
12、请列出你所了解的性能测试工具
13、后台系统怎么防止请求重复提交?
14、有多个相同的接口,我想客户端同时请求,然后只需要在第一个请求返回结果的时候返回给客户端。

【面试必备】常见Java面试题大综合的更多相关文章

  1. 【转】常见Java面试题 – 第四部分:迭代(iteration)和递归(recursion)

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. Q.请写一段代码来计算给定文本内字符“A”的个数.分别用迭代和递归两种方 ...

  2. 【转】常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. 这篇文章介绍的常见面试题是关于重载(overloading)方法和重写( ...

  3. 【转】常见Java面试题 – 第二部分:equals与==

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.你可以从这里查看全部的Java面试系列. Q2.下面的代码片段的输出是什么? Object s1 = new St ...

  4. 【转】常见Java面试题 – 第一部分:非可变性(Immutability)和对象引用(Object reference)

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.请看此系列相关面试题.你可以从这里查看全部的Java面试系列. 一些比较核心的Java问题经常会用来考验面试者的J ...

  5. 拼多多、饿了么、蚂蚁金服Java面试题大集合

    自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...

  6. 金三银四季来了!Java 面试题大放送,能答对70%就去BATJTMD试试~

    摘要: 2019,相对往年我们会发现今年猎头电话少了,大部分企业年终奖缩水,加薪幅度也不如往年,选择好offer就要趁早,现在开始准备吧,刷一波Java面试题,能回答70%就去BATJTMD大胆试试~ ...

  7. 2020年春招面试必备Spring系列面试题129道(附答案解析)

    前言 关于Spring的知识总结了个思维导图分享给大家   1.不同版本的 Spring Framework 有哪些主要功能?   2.什么是 Spring Framework? Spring 是一个 ...

  8. 面试必备!Java核心技术100+面试题

    一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...

  9. 转载文章 208 个最常见 Java 面试题全解析

    最近正值春招,一直在给公司招聘 Java 程序员,我从 2015 年做 TeamLeader 开始就习惯性地收集平时遇到的 Java 技术问题或周围朋友见过的面试题,经过不断筛选,终于凝练成一套实用的 ...

随机推荐

  1. windows service 2008 R2 升级 sp1遇到的问题

    因为我的程序是以vs2015开发的,所以在在布署windows service 2008 R2 项目的时候报出 红框里的错,说明要安装.net framework4.6. 感觉so easy,下载一个 ...

  2. Autel MaxiTPMS TS601 Wireless TPMS Sensor Reset Relearn Activate Programming Tool

    Why Choose Autel TPMS TS601? MaxiTPMS TS601 is a TPMS tool with highest performance in the world. It ...

  3. 堆&栈的理解(转)

    (摘自:http://www.cnblogs.com/likwo/archive/2010/12/20/1911026.html) C++中堆和栈的理解 内存分配方面: 堆: 操作系统有一个记录空闲内 ...

  4. MySQL锁问题,事务隔离级别

    未完待续... 概述 这里专门指的是InnoDB存储引擎的锁问题和事务隔离级别. ========================================================= 锁 ...

  5. PHP中写定时任务

    1.写一个bat E:\Progra~1\wamp\php\php.exe -f "E:\service.php" 2.写接口文件 ignore_user_abort(); //即 ...

  6. S系统的不好的实践

    多个项目 多个分支放在一个SVN里边维护,导致多股力量并行开发时候的代码覆盖的风险可能性很大,,  好的实践是维护独立的SVN,彼此分离开来

  7. Java-常用工具方法

    一 Json转换 1 输出组装好的json ObjectMapper mapper = new ObjectMapper(); try { String requiredJson = mapper.w ...

  8. 修改dll的错误打开方式

    一不小心把dll类型的文件的打开方式改成了notepad,查了好多资料因为dll没有打开程序所以怎么也改不回来,只好从注册表中查,经检验修改注册表的以下项目可以改回 计算机\HKEY_CURRENT_ ...

  9. shutil模块和os模块对比

    一.shutil -- 是一种高层次的文件操作工具类似于高级API,而且主要强大之处在于其对文件的复制与删除操作更是比较支持好. 1.shutil.copy(src,dst)复制一个文件到另一个目录下 ...

  10. #实验三 敏捷开发与XP实践---实验报告

    一.实验三 敏捷开发与XP实践-1 1.实验要求 -实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成I ...