# sward_java **Repository Path**: shenqihan/sward_java ## Basic Information - **Project Name**: sward_java - **Description**: 剑指 Java后端 offer - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-18 - **Last Updated**: 2022-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 目录结构 - [ ] base - [x] thread - [x] juc - [ ] io - [ ] frame - [x] spring - [x] aop - [x] ioc - [ ] middleware - [x] mysql - [x] redis - [ ] codeTest - [x] baidu - [ ] resource ## 八股文 程序 实战 #### 八股文背了吧,好像懂了,又好像不懂,还是得自己去敲敲加深印象 #### 自己动手丰衣足粮~~~ ### Day 1 - ReentrantLockMain.java - 使用ReentrantLock,感受公平锁,非公平锁 - SynchronizedMain.java - synchronized关键字使用,代码同步快的使用,感受线程的安全操作和非安全操作 - ThreadLocalMain.java - ThreadLocal使用,多线程用各自的本地变量,避免共享内存的安全问题 - ThreadPoolMain.java - 线程池的几种主流玩法,个体户模式,外包模式,国企模式 ### Day 2 - CasMain.java - 使用基于AtomicInteger实现 线程安全自增/减少 对比 i++ 线程不安全的自增/减少 - ConditionMain.java - 通过Lock的lock/unlock 和 Condition的await/signal 实现 循环打印 A B C - ReentrantReadWriteLockMain.java - 实现读锁 - JavaLockCategory.md - 11中java中的锁分类 - SynchronizedMain.java - 完善synchronized的8种场景 ### Day 3 - codeTest.baidu Main.java Main2.java Main3.java - 百度笔试3道题a了两道 - middleware.redis.Qa Qa.md - redis高频面试题 ### Day 4 今天只复习了Spring中Bean的生命周期 下午去线下面试了,路上花得时间多了,考察点如下: - Mysql,主键索引,普通索引,回表 - Mysql事务、Mysql如何回滚,命令、Mysql宕机情况 - java中的事务怎么做 - 数据库引擎 - Mybatis的执行流程 - 考察JDBC - redis使用的场景,分布式session - redis基本数据类型 - 考察项目中,mysql与mongo数据一致性问题 - 项目中,优化的思路, - 线程池中使用,如何防止线程池爆掉 ### Day 5 - middleware.mysql.Qa目录下 - md笔记,Mysql实战45讲,前8讲 - frame.spring目录下 - SpringQa.md - spring事务隔离、传播机制 - bean作用域 - Spring设计模式 ### Day 6 - leetcode5道题 - 多模态情感分析论文讨论 - middleware.mysql.Qa目录下 - md笔记,Mysql实战45讲,9-14讲 ### Day 7 - leetcode4道题 - 了解 MIT6.824课程 - 复习从面经中,摘抄出来的面试题目并填写参考答案 - epe.bytedance目录下 feishu.md ### Day 8 - leetcode两道题 - 继续完善epe.bytedance目录下 feishu.md面经 - 动手code,Spring容器的IOC、AOP原理以及简单实现,frame.spring目录下 ### Day 9 - leetcode三道题 - 第一份面经摘抄完毕 feishu.md面经 ### Day 10 - 复习八股文 - leetcode三道题 - 面经分享 - IO操作,状态切换 - 给出查询语句,如何创建索引 - 上传文件HTTP请求头信息 - session如何使用,用户信息token如何实例化的 ### Day 11 - 多模态技术调研 - leetcode2道题 ### Day 12 - RocketMQ学习,同步、异步、单项生产者模式 - 基础概念,生产者、消费者、Broker,docker搭建RocketMQ ### Day 13 - Leetcode,5道Hard(#815 公交路线,#1240 铺瓷砖,#1373 二叉搜索子树的最大键值和,#297 二叉树的序列化与反序列化,#224 基本计算器) - 创建sward_python项目, 用于后面的异构微服务 - sward_python: 编写Sql工具,用于对比检索执行效率 ### Day 14 - ConcurrentHashMap用于防止,重复请求 - AOP原理 - 通过反射实现,动态代理,静态代理 - ProxyByDynamicMain - ProxyByStaticMain - 单例模式的三种方式 SingletonMain - Nio Server 和 client - MyNioServer - MyNioClient - 导致线程关闭的两种方式,ThreadExceptionMain - 不安全的HashMap操作,UnSafePutHashMapMain