Java技术大纲

2019-04-01  本文已影响0人  java架构源

系统架构:

前端浏览器地址的一个 http 请求到后端整个流程

常用的设计模式,23种

哪些设计模式可以增加系统的可扩展性

如果AB两个系统互相依赖,如何解除依赖?

什么场景应该拆分系统,什么场景应该合并系统?

常用的设计模式 link

如何构建高可用系统?link

性能优化:使用单例、使用Future模式、使用线程池、选择就绪、减少上下文切换、减少锁粒度、数据压缩、结果缓存

Nginx负载均衡

分布式系列

如何设计一个高并发的分布式系统?你会引入哪些开源框架?

缓存

搭建Redis缓存高可用集群

高并发下如何正确优雅的使用缓存

设计缓存要注意什么

本地缓存用过哪些框架?Guava

分布式缓存:缓存一致性、缓存命中率、缓存冗余

分布式数据库

怎样打造一个分布式数据库?什么时候需要分布式数据库、mycat、otter、HBase

网关框架了解过哪些?能为后端服务带来哪些好处?

如何保证消息幂等 link

如何实现分布式Session

如何保证消息的一致性

CDN实现原理

微服务

zookeeper之服务注册与订阅

使用Docker部署微服务

微服务架构--分布式事务解决方案

微服务划分的粒度

微服务的高可用怎么保证的?

什么场景应该拆分系统,什么场景应该合并系统

锁相关

死锁定义;如何避免死锁 link

synchronized和 ReentrantLock 的区别?

java读写锁,读写锁设计主要解决什么问题?

乐观锁,悲观锁,使用场景?

设计一个分布式锁

常见的锁有哪些? link

不用synchronized和lock,实现线程安全的单例模式?link

框架

java

动态代理与Cglib实现的区别 link

看过哪些JDK源码

JAVA并发编程艺术

java8的新特性 link

lambda表达式、Stream API

HotSpot 即时编译器、编译优化 link

CPU缓存,L1,L2,L3和伪共享 link

Java 9,Reactive Streams link

JVM如何加载字节码文件

双亲委派,Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader

内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定

什么情况会出现young GC,什么情况会出现Full GC

怎样判断Full GC是否正常?link

内存泄露原因?如何排查?

OOM 出现的有哪些场景?

JVM 内存结构

熟悉哪些jvm 命令,jstack、jmap、jstat?

jvm调优经验

bio、nio和aio的区别、三种IO的用法与原理

线程有哪些状态? blocked 和 wait 有什么区别? link link

JDK 中有哪几个线程池?拒绝策略? linklink

如何保证线程安全问题?

JUC 常用的类 linklink

ThreadLocal 内部原理?

HashMap,为什么线程不安全link

HashMap 怎么解决碰撞问题?

Concurrenthashmap 是怎么做到线程安全的?

String、StringBuffer与StringBuilder的区别

try catch finally,try里面有return,finally还执行吗?

泛型中K T V E link

Thread 和 Runnable区别?

关键字 volatile、transient、final link

Object 的 equals方法重写了,hashCode 方法必须重写 link link

基础

集合

线程

IO

JVM

其它

spring

为什么要使用Spring,Spring的优缺点有哪些

Spring的IOC容器初始化流程

Spring Bean 的生命周期 link

Spring AOP实现原理

SpringMVC模式

Spring Boot 与 Spring 的区别link

Spring cloud了解过哪些

Spring 5 响应式编程 link

mysql

表级锁和行级锁对比link

事务特性,有哪几种事务隔离级别link

分布式事务,两阶段提交

当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施link

SQL 优化的常见方法有哪些

如何查看执行计划,如何根据执行计划进行SQL优化 link

数据库主备搭建

redis

Redis有哪些数据结构?

使用过Redis分布式锁么,代码怎么写?

假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?

Redis如何做持久化的?

Pipeline有什么好处,为什么要用pipeline?

Redis的同步机制了解么?

为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?

10个redis常见问题link

kafka

Kafka的整体架构

netty

Netty的一次请求过程

Netty核心精讲之Reactor线程模型

dubbo

底层原理

支持哪些负载算法?默认哪种?

怎么设置超时时间?

tomcat

Tomcat 调优

Servlet线程安全问题 link

HTTP 协议

OSI模型分为哪几层?

TCP

TCP 和 UDP 的区别?TCP 数据传输过程中怎么做到可靠的?

TCP 三次握手、四次挥手过程

TCP拥塞控制 link

http

Cookie和Session的区别

Http的状态码

HTTP 301 、302有啥区别

HTTP连接池实现原理

Http怎么处理长连接

OS系统

centos7 的内存分配方式和6有啥不同 link

linux

常用的linux命令 link

缓冲区溢出

分段和分页

虚拟内存与主存

Linux 库函数与系统调用的关系与区别 link

进程和线程的区别link

实战能力

有没有处理过线上问题?出现内存泄露,CPU利用率飙高,应用无响应时如何处理?

如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能

双十一电商秒杀系统性能优化实战

电商网站,如何保证一件商品不被超卖

让您做一个电商平台,您如何设置一个在买家下订单后的”第60秒“发短信通知卖家发货,您需要考虑的是 像淘宝一样的大并发量的订单link

其它

一致性Hash算法

看过哪些开源框架的源码

消息中间件是如何实现的,技术难点有哪些

工作案例。怎么提高研发效率。

HttpClient 讲下里面的具体实现,(涉及了哪些东西)

那要你设计一个高性能的 Http ,你会怎么设计?

说出一个空间换时间的场景

怎么防止订单重复提交?

ORM框架用过哪些?

hibernate 和 IBatis 的区别?

抽象能力,乐高模式,怎么提高研发效率

什么情况用接口,什么情况用消息

加密与解密:MD5,SHA1、DES、AES、RSA、DSA

上一篇下一篇

猜你喜欢

热点阅读