JAVA 技术面试梳理
2023-10-17 17:05:34 1 举报
根据自己个人工作经验集成
作者其他创作
大纲/内容
项目技术梳理
springboot
gateway
nacos
mybatis
nacos
redis
elasticJob
分片处理
ES
分布式的搜索引擎elasticSerach
基于restful风格的接口进行数据结构处理与同步
match
update
发送put请求,只能现在索引字段或者直接全量索引结构覆盖
multy_match
pringboot集成
elasticsearch-rest-client
提供各种API供应调用
bulk批量数据更新等
索引
索引_index,es中的类似表结构的定义
数据类型
text文本类型
keyword关键字类型,不可分词
数字类型int long double 等
boolean布尔类型
日期类型
分词器
默认分词器Standard、whitespace等,内置分词器
中文IK_SMART分词,自定义分词器
ik_max_word:穷尽各种可能的组合
ik_smart:短语分词Phase,词语分词
mq
项目
福茶电商项目
pc端
微信小程序
运营端
商户端
商户入驻与审核
电商活动促销
砸金蛋
助力活动
优惠券活动
订单处理
商品数据的ES同步以及商品查询嵌入
MQ一步同步,通过对商品的操作慢点进行异步数据同步
后台服务
moblie
app
trade
portal
operation
goods
order
job
象屿农产金融互联网平台项目
后台管理
电子签章接口对接
OA自定义表单的对接、传统的webservice报文服务
粮食银行的对接
业务流程审批:Caumda工作流的集成与业务流程设置
模型设计:基于业务场景画出具体的业务审批流程图
模型定义
模型审批对象的处理
user用户
角色role
模型发布
业务嵌入
产品中心
对接银行机构
中远主数据项目
datamaster
模型新建
模型授权
字段授权
分组授权
子模型授权等
实例管理
数据集成
open-service
数据域的主数据订阅与审核
软件谷智慧平台项目
企业端
company
职能端
indicator
JAVA基础
面向对象
继承、多态、抽象
重写:存在于继承或者接口实现中,子类重写父类的方法
重载:同一个类中,方法名相同,形参列表不同、返回值相同也可以不相同
23种设计模式
工厂模式
模板模式
策略模式
1个控制类进行算法路由,声明一个接口实现InsitSionBean和springcontextAware,接口实现定义其具体行为,以及计算方法
适配器模式
JUC并发包及锁
ConcurrentHashMap
synchronized
ReentrantLock
公平锁
非公平锁
偏向锁
轻量锁
重量锁
可重入锁
自旋锁
多线程
线程的状态
Running运行状态
terminal
interupt
stop
集合
hashMap
Arraylist、linkList
类加载器
根类加载器bootstropClassLoader
扩展类加载器ExtClassLoader
系统类加载器AppclassLoader
自定义类加载器
类加载机制
双亲委派机制:向上委托,向下查找
加载顺序
加载
链接
验证
准备
解析
初始化
引用类型
强引用
弱引用
软引用
虚引用
JVM
内存模型
方法区(1.8后卫元数据区)、heap堆区、栈(虚拟机VM栈、本地方法Native栈)、程序计数器
垃圾回收机制
垃圾回收器
串行Serail垃圾回收器
串行执行垃圾回收
并行回收器ParNew
需要停用用户线程
CMS回收器
不需要停用用户线程,回收线程和用户线程可以并行出来
G1回收器
框架
spring
IOC
控制反转,spring的核心思想,使用者以前采用主动创建对象的方式来使用对象,在spring中,对象交给sprigIOC beanfactory 进行创建和管理,调用者无需关心对象的由来。当我们使用某个对象时候,只要在类中注入该对象即可。
AOP
面向切面编程,减少对流程代码的侵入,采用切面的方式增强主业务功能,典型的有事务处理,日志处理,以及安全等等。
mybatis
一种典型常用的ORM对象关系映射框架,其中包含了传统JDBC的方式和方法,能够使我们轻易的对数据库进行操作和访问,特点是sql编写变得简单,支持多种标签的使用。
springCloud
是目前主流的一种微服务架构体系,基于springboot框架,一般采用nacos或者eurakax作为服务注册中心,使用gateway作为服务的同一路由分发处理,服务间的调用采用feign调用进行服务间通讯,可采用rebion或者hyrstrix进行负载均衡和限流处理。
nacos
一种由阿里巴巴公司开源急于java语言开发的服务注册于发现,而且可以进行统一配置管理的框架,作为服务注册中心,他支持多环境namespace服务隔离,服务权重设置等,集群处理微来进行微服务的管理和配置,支持微服务心跳检测的方式来保持临时实例可用,满足AP模式,也可以主动向微服务拉取的非临时实例来管理微服务。同时作为配置中心能够实现系统配置热更新等。
ereka
spring cloud gateway
gateway网关可以来进服务路由和负载均衡,身份验证和权限处理,还有就是可以进行接口限流等作用。路由配置他有一个断言工厂配置,来限制各种情况的请求处理策略,比如限制网段、接口请求时限、接口路由限制等。同时支持还拥有一个过滤器工厂可以来进行对接口的请求和响应做出加工处理,比如往请求里添加请求头等等。
缓存
redis
k-v结构的,基于内存的单线程的高性能高并发的缓存中间件,数据类型有String hash list set Sort Set,分布式锁等应用
IO多路复用
数据类型:支持 String{存储字符串}、list(链表)、hash(存储对象)、set(交集、并集、差集可用共同关注的好友等等)、SortSet(存储积分进行根据scode分数排名等)
使用场景
读多写少,可以考虑缓存
热点数据,减少数据库访问,可以采用缓存
可以进行简单的消息广播
分布式锁
普通的redis setNX+lua脚本实现的
急于redisson客户端实现,trylock unlocl实现
主从模式、哨兵模式、集群模式
redis.conf进行配置
消息队列
rocketMq
nameserver
消息服务注册中心
broker
消息服务
如何保证消息的有序
rocketmq有一个messageSelector消息队列选择能够选择消息进入同一个队列。
如何保证消息的事务处理
rocketmq支持事务消息,A调用B,原理是先发送一个半消息进入broker,但是不发送给B,当A事务执行完毕,再发送conmit指令给broker,入伙时commit则发送给B,否则A事务回滚。
最终一致性
比如是积分,可以下单完成后进行异步扣减都可以
数据库
mysql
索引优化
b+树
平衡的二叉树,以Page为存储单元的进行数据存储与查找,,叶子节点存储了所有数据,且叶子节点之间通过指针相互链接在一起
最左前缀原则
聚集索引
只有一个,默认主键就为聚集索引,也就是索引跟数据存储在一起的
非聚集索引
普通索引,存储了索引以及主键id
MVCC
多版本控制
事务特性
ACID
原子性、一致性、隔离性、持久性
0 条评论
下一页