成为不那么差的java程序员
2019-04-30 18:14:35 0 举报
AI智能生成
成为一个不那么差的程序员
作者其他创作
大纲/内容
分布式技术
CAP定理
微服务相关定义、来源以及对比
Martin Folwer--MicroServices
分布式框架的使用以及原理
Spring Cloud
Dubbo
分布式带来的问题
分布式锁
分布式限流
分布式缓存
分布式ID
消息中间件
负载算法
权重
Hash
一致性Hash
联机
轮询
故障转移
LRU
懂点架构
掌握分布式系统
做好适合现有团队的架构选型
《亿级流量网站架构核心技术》
如何学习
视频
看书
知识付费
打造个人品牌
博客
重点是名片
GitHub
开发自己的开源项目
开发过程中的小痛点
精心整理的知识点
遵守GitHub社交礼仪
尽量用英文
尽量少Push与代码工作无关的内容
别去刷Star
英语挺重要
面向Google和Stack Overflow编程
坚持提高英语
所有的手机电脑系统换成英语
订阅一些英语周刊
湾区日报
定时阅读国外社区有影响力的文章
https://medium.com/
计算机基础
计算机网络
网络分层
OSI&&TCP/IP
TCP/UDP
二者区别
TCP三次握手四次挥手
HTTP
Get和Post区别
无状态协议的理解
Cookie和Session的区别
请求报文和响应报文格式
HTTP优化和缺点
操作系统
linux命令
数据结构与算法
二叉树、栈、队列、红黑树、哈希表
查找、排序算法,时间复杂度
java基础
字符串
String
常量
String Builder
线程不安全
String Buffer
线程安全
基本容器
HashMap
HashSet
ArrayList
LinkList
IO/NIO
区别和应用场景
OOA&&OOD
设计模式
六大原则
单一职责
开闭
里式替换
依赖倒置
接口隔离
迪米特
常用的模式
代理
工厂
构建者
回调
观察者
...
多线程基础
进程和线程的区别
线程创建方式
线程的生命周期
线程的优先级
wait yield sleep suspend join notify notify all
threadlocal
反射机制基础
反射机制
class对象的使用
测试
接口测试
Swagger
单元测试
代码覆盖率
Emma
Jacoco
单元测试框架
Junit4
测试代码功能
Mock
Stub
良好的编程习惯
阿里巴巴Java编程规范
多线程
带来的问题
上下文切换(耗时)
无锁并发编程(:Hash算法取模分段)
CAS算法(:Atomic 包)
使用最少线程(:避免创建不必要的线程)
使用协程(:单线程多任务调度)
共享资源
并发编程特性
原子性(操作无法拆分)
可见性(共享资源主从同步一致)
有序性(按代码顺序执行,指令重排序改变执行顺序)
并行&&并发
核心掌握
原子类
Atomic+基本类型的包装类
AtomicReference
...
队列
阻塞
并发
并发工具
ConcurrentHashMap
CountDownLatch
CyclicBarrier
BlockQueue
Semaphore
线程池
ThreadPoolExecutor
使用场景和好处
锁
Synchronized
ReentrantLock
ReentrantReadWriteLock
StampedLock(并发量大且读远大于写)
乐观锁&&悲观锁
避免死锁
避免一个线程获取多个锁
避免一个线程在锁内占用多个资源
尝试使用定时锁,Lock.tryLock(timeout)替代内部锁机制
对于数据加锁,加锁解锁必须要同一个数据库连接内
数据库
索引的数据结构与原理
针对于一个慢sql的优化
数据库水平垂直的拆分方案
MyCAT
Shareding-phere
事物、隔离级别、传播特性
内存管理
JVM内存划分
内存、栈溢出的解决方案
垃圾回收机制
线上问题定位及解决
类的加载、创建对象、垃圾回收、类卸载
深拷贝&&浅拷贝
收藏
收藏
0 条评论
下一页