一线互联网公司Java高级面试题总结

1、hashcode相等两个类一定相等吗?equals呢?相反呢?

2、介绍一下集合框架?

3、hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢?

4、hashmap和treemap什么区别?低层数据结构是什么?

5、线程池用过吗都有什么参数?底层如何实现的?

6、sychnized和Lock什么区别?sychnize 什么情况情况是对象锁? 什么时候是全局锁为什么?

7、ThreadLocal 是什么底层如何实现?写一个例子呗?

8、volitile的工作原理?

9、cas知道吗如何实现的?

10、请用至少四种写法写一个单例模式

JVM
1、请介绍一下JVM内存模型??用过什么垃圾回收器都说说呗

2、线上发送频繁full gc如何处理? CPU 使用率过高怎么办?

如何定位问题?如何解决说一下解决思路和处理方法

3、知道字节码吗?字节码都有哪些?Integer x =5,int y =5,比较x =y 都经过哪些步骤?

4、讲讲类加载机制呗都有哪些类加载器,这些类加载器都加载哪些文件?

手写一下类加载Demo
5、知道osgi吗? 他是如何实现的???

6、请问你做过哪些JVM优化?使用什么方法达到什么效果???

7、classforName("java.lang.String")和String classgetClassLoader() LoadClass("java.lang.String") 什么区别啊?

Spring
1、spring都有哪些机制啊AOP底层如何实现的啊IOC呢??

2、cgLib知道吗?他和jdk动态代理什么区别?手写一个jdk动态代理呗?

数据库
1、使用mysq1索引都有哪些原则? ?索引什么数据结构? 3+tree 和B tree 什么区别?

2、mysq1有哪些存储引擎啊?都有啥区别? 要详细!

3、设计高并发系统数据库层面该怎么设计??数据库锁有哪些类型?如何实现呀?

4、数据库事务有哪些?

分库分表
1、如何设计可以动态扩容缩容的分库分表方案?

2、用过哪些分库分表中间件,有啥优点和缺点?讲一下你了解的分库分表中间件的底层实现原理?

3、我现在有一个未分库分表的系统,以后系统需分库分表,如何设计,让未分库分表的系统动态切换到分库分表的系统上???TCC? 那若出现网络原因,网络连不通怎么办啊???

4、分布式事务知道吗? 你们怎么解决的?

5、为什么要分库分表啊???

6、分布式寻址方式都有哪些算法知道一致性hash吗?手写一下java实现代码??你若userId取摸分片,那我要查一段连续时间里的数据怎么办???

7、如何解决分库分表主键问题有什么实现方案??

分布式缓存
1、redis和memcheched 什么区别为什么单线程的redis比多线程的memched效率要高啊?

2、redis有什么数据类型都在哪些场景下使用啊?

3、reids的主从复制是怎么实现的redis的集群模式是如何实现的呢redis的key是如何寻址的啊?

4、使用redis如何设计分布式锁?使用zk可以吗?如何实现啊这两种哪个效率更高啊??

5、知道redis的持久化吗都有什么缺点优点啊? ?具体底层实现呢?

6、redis过期策略都有哪些LRU 写一下java版本的代码吧??

分布式服务框架
1、说一下dubbo的实现过程注册中心挂了可以继续通信吗??

2、zk原理知道吗zk都可以干什么Paxos算法知道吗?说一下原理和实现??

3、dubbo支持哪些序列化协议?hessian 说一下hessian的数据结构PB知道吗为啥PB效率是最高的啊??

4、知道netty吗‘netty可以干嘛呀NIO,BIO,AIO 都是什么啊有什么区别啊?

5、dubbo复制均衡策略和高可用策略都有哪些啊动态代理策略呢?

6、为什么要进行系统拆分啊拆分不用dubbo可以吗‘dubbo和thrift什么区别啊?

分布式消息队列
1、为什么使用消息队列啊消息队列有什么优点和缺点啊?

2、如何保证消息队列的高可用啊如何保证消息不被重复消费啊

3、kafka ,activemq,rabbitmq ,rocketmq都有什么优点,缺点啊???

4、如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路

分布式搜索引擎
1、es的工作过程实现是如何的?如何实现分布式的啊

2、es在数据量很大的情况下( 数十亿级别)如何提高查询效率啊?

3、es的查询是一个怎么的工作过程?底层的lucence介绍一下呗倒排索引知道吗?es和mongdb什么区别啊都在什么场景下使用啊?

高并发高可用架构设计
1、如何设计一个高并发高可用系统

2、如何限流?工程中怎么做的,说一下具体实现

3、缓存如何使用的缓存使用不当会造成什么后果?

4、如何熔断啊?熔断框架都有哪些?具体实现原理知道吗?

5、如何降级如何进行系统拆分,如何数据库拆分????

通信协议
1、说一下TCP ‘IP四层?

2、http的工作流程?? ?http1.0 http1.1http2.0 具体哪些区别啊?

3、TCP三次握手,四层分手的工作流程画一下流程图为什么不是四次五次或者二次啊?

4、画一下https的工作流程?具体如何实现啊?如何防止被抓包啊??

算法
1、比较简单,我一个文件,有45亿个阿拉伯数字,如何进行去重啊如何找出最大的那个数啊?

数据结构
1、二叉树和红黑树等。

源码中所用到的经典设计思想及常用设计模式


答案及面试资料获取方式:https://shimo.im/docs/TC9Jq63Tp6HvTXdg

原文地址:https://blog.51cto.com/14587687/2469027

时间: 2024-10-10 05:56:03

一线互联网公司Java高级面试题总结的相关文章

国内一线互联网公司的Java高级面试题总结

Java重点知识 多线程(线程状态.线程并发,Synchronized与Lock的区别和底层原理,常用的锁及其使用场景和原理, volatile和ThreadLocal解决了什么问题,CAS在Java中的实现 线程池原理和实现,阻塞队列和线程安全队列, 线程间通信: synchronized + wait.notify/notifyAll, Lock + Condition 的多路复用, CountDownLatch.CyclicBarrier和Semaphore的作用和用法,使用场景) JVM

Java高级面试题积累(二)

简述23种设计 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口.而无需指定它们详细的类. 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本因为接口不兼容而不能一起工作的类能够一起工作. 桥梁模式(Bridge):将抽象部分与他的实现部分分离.使他们都能够独立的变化. 建造模式(Builder):将一个复杂对象的构建与他的标表示分离,使相同的构建过程能够创建不同的表示. 责任链模式(Chain of Resp

Java高级面试题及答案

List和Set比较,各自的子类比较 对比一:Arraylist与LinkedList的比较 1.ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的). 2.因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低. 3.LinkedList基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址,对于新增和删除操作add和remove,LinedList比较占优势. 4.因为Lin

Java高级面试题:分布式Session实现方案有哪些?

目录一.面试官心理分析二.面试题剖析2.1 完全不用 session2.2 tomcat + redis2.3 spring session + redis面试官心理分析面试官问了你一堆 dubbo 是怎么玩儿的,你会玩儿 dubbo 就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是分布式事务.接口幂等性.分布式锁,还有最后一个就是分布式 session.当然了,分布式系统中的问题何止这么一点,非常之多,复杂度很高,这里只是说一下常见的几个问题,也是面试的时候

Java高级开发面试题

Java高级开发常问到的面试题: 1.项目中用到了Spring框架的哪些功能模块? 2.Spring事务及事务传播性.隔离性 3.AOP应用场景及动态代理模式底层实现方式 4.Spring MVC工作流程 5.Redis数据类型.常用命令(比如:List添加).分布式锁.持久化 6.多线程及线程池 7.liunx常用命令 8.Mysql数据库索引(有哪些索引,如何查看执行计划,如何知道索引有没有被使用?) 9.HashMap底层实现原理 原文地址:https://www.cnblogs.com/

一线大厂面试官最喜欢问的15道Java多线程面试题

前言 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分.如果你想获得更多职位,那么你应该准备很多关于多线程的问题. 他们会问面试者很多令人混淆的Java线程问题.面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面.现在引用Java5并发包关于并发工具和并发集合的问题正在增多.那些问题中ThreadLocal.Blocking Queue.Counting Semaphore和ConcurrentHashMap比较流行. Java多线程面试题及

高级java工程师面试题-随笔

最近打算要换工作,也面试了几家,因为不是自己喜欢的所以拒了一些(当然也有人家不要我的.....).在面试的过程中发现对java高级程序员的考察基本上围绕知识面,知识深度两个方面来考察.下面是在面试过程中遇到的问题: 1 如何防止重复提交2 如何跟踪web开发中的一个会话3 10万数据 如何高效查询最大值 第三个记录4 http与https的区别5 请求http://www.baidu.com 的全过程6 static 是否可以继承7 String.StringBuffer与StringBuild

java面试题——java高级(二)

四.Java高级部分 1.红黑树的实现原理和应用场景: 1.(1)每个节点或者是黑色,或者是红色. (2)根节点是黑色. (3)每个叶子节点(NIL)是黑色. [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!] (4)如果一个节点是红色的,则它的子节点必须是黑色的. (5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点. 注意: (01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点. (02) 特性(5),确保没有一条路径会比其他路径长出俩倍.因而,红

史上最全的Java&Android面试题搜集整理

最近在忙着准备面试,所以从全网搜集了一下java和android相关的面试题目,应该能够包含80%以上的试题吧~如果大家还有一些比较全面优质的题目资源,欢迎告知,我会继续补充进来,以便于更多同学可以从中获益. android性能优化系列 http://www.trinea.cn/android/performance/ 2016JAVA与Android面试题整理 http://www.nowcoder.com/discuss/3244 百度的android面试总结分析 http://blog.c