面试知识点
Posted raynnie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试知识点相关的知识,希望对你有一定的参考价值。
Java/web基础
Static,final关键字,抽象类,代码块,Object类的方法,==和equels
集合的继承关系及其特性,以及hashMap存取(1.7,1.8),常见IO流对象及使用
反射的知识点
常用设计模式:
多线程方面:
了解并发
创建线程
线程生命周期,
线程中的方法:
(sleep.wait,notify,join,yeild,interrupt,interrupted,isInterrupted)
synchronized用法(静态方法,非静态方法),特点和缺点等
Lock的使用;ReentrantLock,ReentrantReadWriteLock,公平锁,Condition实现等待通知机制,与synchronized的区别和比较等
volatile关键字用法,JMM内存模型,happens-before原则,使用场景等
线程池,继承关系,任务类型和区别,核心参数和工作流程策略,几种常见线程池
理解悲观锁,乐观锁,CAS优缺点等,数据库实现乐观锁,Atomic系列
JUC包下countdownlatch,seamphore,cyclicbarrier的使用
Threadlocal,conCurrenthashmap使用
常用阻塞队列及使用,区别等
cokkie和session的使用,区别等http/https,servlet,get,post请求
NIO等
代码考察:二分查找,冒泡排序,递归,死锁,单列,设计模式,集合操作
框架:
SpringMVC流程,注解,拦截器的使用,@[email protected]全局异常
Spring IOC/AOP的理解,
Bean的生命周期,作用域
自定义AOP类,JDK/cglib代理
Spring事物,隔离级别,传播机制
Spring中多线程@EnableAsync, @Async
Spring定时任务
spring事件(Application Event)
Spring中用到设计模式
自定义注解
SpringBoot:使用,理解,一些注解作用等。。。
Mybatis
Mybatis的工作流程,mybatis的拦截器机制
#{}和${}的用法和区别
mybatis一级缓存二级缓存以及二者区别,二级缓存的策略
数据库:
优化方案;
索引的基本知识
索引使用场景和索引失效场景,
索引的数据结构:
读写分离,其他。。。
JVM:
虚拟机的内存区域分类,用处,异常等信息,常见参数(xms,xmx…)
内存分配的方式以及如何选择
内存泄漏和内存溢出
对象的访问定位的两种方式(句柄和直接指针两种方式)
对象创建的步骤
判断一个对象是否存活?(或者GC对象的判定方法)
java垃圾回收机制
垃圾收集算法和常用垃圾回收器,GC回收策略(minor gc,Major GC,full gc)
类加载机制(类加载器,自定义,什么场景使用)+双亲委派
JDK 1.8之后Perm Space有哪些变动
分布式:
CAP,BASE理论
分布式事物的实现方式(2段,3段,基于最终一致性和TCC补偿)
分布式锁的实现
分布式锁的使用场景
分布式唯一ID生成方案
Redis:
数据结构,常用API,持久化,分片集群
Dubbo+zookeeper/Cloud:RPC和REST
其他:mq,quartz,linux,docker等,其他工作中的问题
数禾:
- concurrenthashmap锁机制,什么情况下加锁
- hashMao原理,怎么解决hash冲突,为什么是不安全的
- springIOC机制讲一下4.springAOP使用场景,你是怎么用的
- redis数据结构发布订阅机制,你是用于什么业务场景,为什么要采用
- mybatis的xml怎么和dao的方法名称对应起来的
6.rabbitMq,你是用来干啥的,讲讲,路由模式怎么讲消息发送到指定的queue
7.nginx反向代理和负载均衡如何配置
8dubbo超时机制
10.mysql查询的时候,如果某一列有一个字段是null,那么相对在查询结果集的前面,还是后面?为什么?
12.线程池,有哪几种,几个重要参数说一下
诺亚财富:
1.jwt往死里问。
2.hsahMap的原理、hashMap jdk1.8比jdk1.7有哪些变化,红黑树的算法时间复杂度是多少,链表的时间复杂度是多少?
3.单点登录问题,如果一个用户开启两个浏览器,怎么再第二个浏览器登录的时候,把第一个登出
4.rabbitMq 生产者怎么保证消费者一定消费了消息。
5.给我一个数字,让我在数组里以最快的速度找出一组两个数字的和等于这个数字,并且输出两个数字的下标
6.redis我都用过哪些数据结构,一般都用来放什么,连接用的是jedis。还是redisTemplate
7.分布式事务,一般都有个全局事务id,如果让你自己设计全局事务id,你怎么设计,不借用任何中间件
8jpa,我是用来连mysql的吗,我回答是,他就没问了
9. 分布式任务调度框架
10.git版本管理工具,我们是怎么管理接口的版本的
1.分布式锁不用redisson框架实现,直接用redis怎么实现
2.hashMap数组+链表的链表是怎么排序的?懂底层实现吗
3.concurrentHashMap 什么情况下加锁
4.redis数据结构zset用过吗?用来干啥的
5.悲观锁、乐观锁、乐观锁是怎么实现的,CAS、AQS、ABA是个啥玩意,我不懂
6.mysql索引算法,B+树讲一下,预编译有什么好处,除了防止sql注入还有啥好处;#和$的区别;最左原则讲一下
7.怎么做到百亿级别的数据查询,只需要几毫秒就能返回想要的结果
8.如果有个很大的文件,在并发量几百甚至上千的情况下,都去请求这个文件,你怎么做好快速响应?
9.线程池有哪几种,常用的的那几个参数讲一下,都是什么意义,你常用哪个,我说newFIxed那个,他说使用这个线程池需要注意什么,我没想起来?
10.线程有哪些状态,说一下,run和strat有什么区别
11.如果一个能支撑100并发的现在突然让支持300甚至500并发,又不给你增加机器,你怎么做?
12.kafka有什么不好的地方吗?dubbo+zookeeper有什么不好的地方吗?使用zookeeper做过分布式锁吗?
13.分布式事务用过哪些?跨库事务用过吗?
分享下今天的面试题:说下HashMap,nginx使用那些功能,线程池,ZK有那些功能,选举咋弄的,voliate关键字用法,项目结构图,数据库优化,B数b+树的区别,threadLoal的实现和问题,手写涉及模式,AOP的代理及实现,分布式事物的实现,多路复用,JVM的垃圾收集算法优缺点,五子棋怎么收子,怎么保证线程安全和又发挥多线程的快速作用,Spring Cloud hystrix中信号量和线程池的区别,ribbon的实现原理,CPU满了怎么检查,docker File命令,CAS怎么实现共享数据的分配
redis和数据库的一致性问题
zookeeper底层协议
手写rpc框架
zookeeper选举机制算法
zookpper生产者挂了,消费者怎么办
reids持久化机制
redis主从同步机制
redis如果物理内存快用完了怎么办
分库分表
怎么做两个库的表的关联查询
fullGc发生在哪里
mongo分配的副本
mysql索引会不会用在varchar列上
restful风格怎么理解
Spring中的CacheManager
以上是关于面试知识点的主要内容,如果未能解决你的问题,请参考以下文章