java基础技能清单

一、java基础

1、java集合框架学习,数据基本类型学习,Integer缓存等问题,常见面试题。对ArrayList和Collecttion.binarySerch()源码进行学习、DelayQueue阻塞延时队列

2、HashMap源码分析,扩容机制、1.8后数据结构的变化,链表转树的时机、散列的原理,为什么选择哪个奇怪的数,有没有什么改进措施和优化空间

大量数据能不能用hashMap做缓存,hashMap的不合理利用出现的内存泄漏问题,有没有死锁问题

3、IO这块,IO、NIO的原理,多路复用模型,多个文件多个线程读取如何保持线程安全,1.8后的一些新特性,DerectBuffer这块详细阅读和查看,直接内核态操作,不用来回切换

4、序列化的几种方式,各种序列化的对比,fastjson为什么那么快,protobuf协议

5、网络专题:这块主要对socket编程、tcp/ip长链接,点对点数据传输、htttp三次握手和鉴权进行分析,Linux环境的epoll模型,失败重试,timeout等关键知识进行学习,网络七层架构以及每个网络层面的问题查看,操作系统如何命令行如何查看网络,带宽的概念,元组的概念,令牌算法、计数法流控

6、并发专题:ThreadLocal学习、sychronized关键字(jvm层面)、读写锁、线程池的分类,线程的状态以及怎么查看状态,并发包下面的几个关键类,Feature,countDown等等、死锁的定义,自旋锁、CAS原理(超时了怎么办)、各个java版本对锁这块的优化操作是什么。wait()、sleep的用法,interrupt等等,线程如何优雅停止及其远离,线程交替打印,如何查看某个线程的状态

生产上有没有遇到并发问题(死锁)、怎么解决的

7、其他基础:位运算、内存对齐、操作系统原理、计算机网络

二、中间件

1、spring生态

IOC的源码学习以及执行过程、AOP源码学习(java动态代理、cglib动态代理技术的学习和适用场景),循环依赖的问题解决。BeanFactory、FactorBean的区别和原理

有spring了为什么还要springboot,springClound生态的掌握情况,springSecrity

spring事务的管理,如何整合mybatis

自定义注解、依赖注入的原理

2、mysql

数据库sql优化心得、explain执行计划、innodb和myisarm的区别,索引为什么是b+树

数据库事务,默认什么级别的,每种情况怎么解决

MVCC的原理

数据库架构

常用的Sql:分组、排序、提取、笛卡尔集、并集,JDBC驱动的原理

mysql的缓存策略,几种不同的链接池

informix和oracle等其他数据库的对比

mybatis框架研究,精简版

间隙锁、死锁问题、binlog、redolog等等

3、缓存

redis的数据结构,常用的一种讲解一下,string做了哪些优化,多路复用模型,几种不同的IO模型画出来

redis是单线程的为什么快,最大多少,redis淘汰策略(LRU缓存。默认什么级别)

怎么场景:分布式锁、幂等性

缓存击穿、缓存雪崩、缓存穿透的场景以及应对策略

集群搭建,哨兵模式和集群模式的区别,源码阅读

redis AOF日志 RDB机制

GuavaCache

和memcache的区别

应用场景:排行榜

4、消息中间件

rocketmq 架构、生产者和消费者模型,jmx消息技术,消息引擎,阅读刷盘机制,如果没有消费成功怎么办,怎么查看消息消费轨迹和状态

没有数据库的情况下是怎么存储对象的

和其他消息中间件的对比,比如kafka,你是怎么用,为什么可以实现高吞吐

事物消息

5、zookeeper

选举机制,源码阅读,如何实现注册中心,常用的一些查看命令

6、docker

docker虚拟化技术,如何实现网络层面的隔离的,沙箱机制

公司里的C++的加解密进行使用,以及对公司的测试环境进行最大化的利用,比如混合部署,达到降低成本的目的

本身可以混合部署,只是大家怕麻烦,可以再虚拟化一层,然后使用k8s进行动态扩容,达到降本的最大目的

6、分布式RPC和gRPC

dubbo的实现原理,服务列表注册和维护,分布式路由,流量分发策略和原理,一些序列化的知识

7、分布式所和分布式事务、CAP理论

5、jvm相关

常见的一些配置参数,比别人多说一些,volatitle关键字的原理

运行时数据区的内存模型

几种不同的垃圾回收算法,CMS等等,新生代和老年代怎么使用的

虚引用、弱引用、软引用、强引用

并发管理,锁的底层机制

类加载机制和双亲委派机制,new Object()时候做了什么

5、其他

设计模式:模版模式、责任链模式、适配器模式、装饰模式
Linux: awak、wait等shell脚本,常用命令(过滤端口、查看进程、进程句柄、日志备份、提取关键词、统计关键词、VI、ppastecopy等等)
前端技术:vue、antDesign
架构设计:事件驱动、领域模型、其他技能:C++、python、GNSS算法基础、卡尔曼滤波、最小二乘

6、架构设计

如何设计一个秒杀系统(详细架构图、测试方案)

高并发、高吞吐支付系统方案设计和落地

状态机、红包算法

架构设计:事件驱动、领域模型、

7、项目经历

加密算法、非对称和对称加密算法、对账慢的问题

8、排障技术:
1、GDB调试、jvm oom问题、 频繁ygc full gc 
2、CPU飙升或过高,IO瓶颈、网络流量过大
3、内存dump,jprofle分析调用链路
4、数据库死锁问题分析,那种情况会有死锁,explain执行计划

5、CPU几个技术指标的理解、mysql几个指标的含义

6、接口慢,没响应等问题排查
性能优化总结:
1、缓存的使用:LRU缓存技术、LoadCache
2、数据库:一、二级缓存

10、算法

1、数组

冒泡排序、快排、桶排序、堆排序、希尔排序、归并排序、二分查找

这里是否可以考虑直接用位运算来解决一切排序

2、单向链表、双向链表

判断是否有环

3、树

非递归遍历二叉树

如何判断一个二叉树是一个有序二叉树

前序遍历、中序遍历、后序遍历

红黑树

各种应用场景

4、动态规划

爬楼梯、递归算法

5、堆、栈空间实现

括号检验

6、广度优先、深度优先算法

其他

面向对象、设计模式、jdk 1.8新特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值