transient
volatile
native
static(方法,属性,代码块)
分布式锁(数据库,redis,zookeeper)
缓存(热数据和冷数据)(雪崩(大批量集体同一时刻失效),缓存渗透(穿透)(没在缓存中),缓存预热(启动加载,初始化),更新,缓存降级(高峰时,为保证核心业务,可以放弃其他业务的缓存))
单例模式:饿汉式与懒汉式
捕获线程异常(实现UncaughtExceptionHandler,t.setUncaughtExceptionHandler,Thread.setDefaultUncaughtExceptionHandler)
Cloudera Manager(CM), hadoop chd
ebean(orm)
elasticsearch(head插件,前端页面管理es)
springcloud(eureka,zuul,config,ribbon,hystrix)
Spotlight On Oracle
Toad for Oracle
《这就是搜索引擎:核心技术详解》
倒排索引(inverted index)全文索引
springbootservletinitializer(被springboot的启动类继承后,需要一个配置类返回EmbeddedServletContainerFactory的bean,可以tomcat=new TomcatEmbeddedServletContainerFactory(),设置tomcat.setUriEncoding(“UTF-8”);返回这个对象)
guava(HashMultimap,ArrayListMultimap)
swagger api
编码规约扫描(阿里java代码规范插件)
StringUtils.tokenizeToStringArray
jjwt
continue break lable(执行或退出到指定循环)
N+1 Selects Problem(数据库一对多关系遍历时会发送太多查询语句,使用join或in查询减小发送查询语句次数提高效率)
队列工具(解耦,异步(邮件,日志,下单与减库存分离),流量削峰(秒杀),分布式事务(最终一致性),数据分发(一产多个消费者))
缓存雪崩( 瞬间全部失效(随机设置时间))
分布式缓存一致性hash (可扩展的缓存集群,加减机器时减少缓存命中影响,自适应缓存均匀分布,缓存机器少时要加虚拟节点)
限流算法(计数器(无法处理突刺现象),漏桶(无法处理突发流量),令牌桶(guava–RateLimiter))
long,double 8字节64位,在32位机赋值需要移动两次,导致线程安全问题(商用jvm已为原子操作)
消息队列多客户端顺序消费(分布式锁)
递归synchronized死锁(递归的方法上有synchronized,多线程会在下次进入时死锁,缩小synchronized范围,放在方法内)
synchronized同一对象锁可重入(访问同一对象的其他synchronized方法,计数)
java双亲委派(Bootstrap–Extension–Application)
破坏双亲委派(父加载器请求子加载器加载,Thread.currentThread().getContextClassLoader,先设置,后获取,tomcat类加载器模型webappClassLoader不会问父类加载,自己加载class文件)
《深入理解Java虚拟机》面试题易出(破坏双亲委派)
java反射–运行时获取类的方法与变量,进而可以动态调用方法(不是硬编码,代码中的直接调用),DI
面向对象(抽象数据,思考数据怎么做,编程时考虑数据怎么处理,比如打印一个什么数据)与函数式编程(抽象行为,思考什么要做,考虑对这个数据做什么,比如对数据的操作就是打印)
柯里化(多参数函数,转化为接收一个参数的函数,这个函数【返回的函数】继续接收处理下一参数,以此类推)
aqs(AbstractQueuedSynchronizer抽象队列同步),clh队列(FIFO的队列,队列中的每个结点(线程)只要等待其前继释放锁, 类似zookeeper的可重入分布式锁),实现除cas外的多线程的同步解决
多表排序查询(多路归并排序原理,越往后越慢)
LockSupport中的park() 和 unpark()
JavaSPI(Service Provider Interface 基于接口使用配置文件的动态加载类机制,在META-INF下有接口类全面的文件,里面是其实现类,实现动态加载接口实现类)
java cas aba问题–AtomicInteger (加时间戳1A-2B-3A,AtomicStampedReference <Integer>)
Fork/Join
parallelstream线程不安全
lombok(简化javabean的代码编写,getter,setter,无参构造等等)
使用静态块初始化静态成员变量
布隆过滤器(Bloom Filter)(URL去重,垃圾邮件地址判别) 判断一个数是否在一个超大集合中,guava,BloomFilter
HyperLogLog(大数据量时,求基数,数据总数量)与布隆过滤器(大数据量,判断一个值是否存在于集合中)(不绝对精确,)
redis数据结构 String,list,hash,set,sorted set,hyperloglog,geo (使用HyperLogLog统计ip,空间小,节约内存)
斐波那契数列 (两层递归,一层递归https://www.cnblogs.com/davidwang456/p/10213337.html,非递归)
cloc代码统计
java的stw(stop the world)停顿,垃圾时,停下来从root对象开始标记可达性(reachable)
java的g1垃圾回收器
snowflake 分布式唯一id
JavaAgent 是JDK 1.5, premain before main
Java agent又叫做Java 探针,修改要被classloader加载的字节码,实现增强,监控等目的
鱼尾纹 法令纹 抬头纹 脖颈纹 表情纹 皱鼻纹 眼袋纹
cas单点登录sso(Single Sign On)
二分快速幂
MDC(Mapped Diagnostic Context), 设置后,用于区分日志(一般是包含userid,sessionid,requestid),也方便做日志统计与问题处理
前端框架(react,vue,ember)
Java三种织入切面:编译期织入(特殊的编译器)、类加载期织入(特殊的类加载器,)和运行期织入(CGLib工具或JDK动态代理)
ioc控制反转(接口注入,setter注入.构造器注入(主要))对象
余弦相似度Cosine similarity(比如两个句子,分词后,总词汇在这两个句子里的词频为向量,计算相似度),越趋近于1,越相似(1,两向量夹角为0)
协同过滤Collaborative filtering(根据相似性推荐),基于记忆memory-based(就是使用已有数据,基于相似用户user-based,相似物品 item-based),基于模型Model-based(根据数据挖掘或机器学习算法,预测物品的相似性),混合,深度学习
PAXOS算法(latex中的la,图灵机获得者)1990年提出的一种基于消息传递的一致性算法,Zookeeper选举
惊群现象(多线程等待同一资源,利用zookeeper做主从选举),当资源释放,或zk里的主节点设置的临时节点失效,引起后续其他线程或从服务器竞争同一时刻发起竞争,导致服务器不稳定。zk上是从节点只监听比他小的节点,避免惊群
NPE(NullPointerException)
mybatis-plus-boot-starter
避免es脑裂(elasticsearch avoid split brain):1.减少误判(discovery.zen.ping_timeout>3s) 2.最小master的节点数(eligible_master_number/2 + 1, 如果有三台设置2) 3. 角色分离(主节点:node.master = true node.data = false discovery.zen.minimum_master_nodes = 2数据节点或从节点:node.master = false
node.data = true)
jasypt-spring-boot-starter(springboot的配置密码加密ENC),可以在系统变量或启动参数上配key,安全
分布式链路追踪(基于google的Dapper标准) pinpoint,skywalking
Nagios与zabbi服务器监控
ProGuard(java混淆加密)
kubesphere(k8s管理)
ELK是Elasticsearch、Logstash、Kibana
EFK是Elasticsearch、Filebeat、Kibana
堡垒机jumperserver监控
codis(redis集群)
tidb,oceanbase
clickhouse
paxos raft zab区别
minio对象存储
分布式锁满足条件:
1、在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;
2、高可用、高性能的获取锁与释放锁;
3、具备可重入特性;
4、具备锁失效机制,防止死锁;
5、具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐