From 79b05754f0f173fdd32f14149b9ec4a304018f22 Mon Sep 17 00:00:00 2001 From: "Fant.J" <844072586@qq.com> Date: Sun, 28 Feb 2021 23:20:54 +0800 Subject: [PATCH 1/9] =?UTF-8?q?Create=20=E5=88=86=E5=B8=83=E5=BC=8F?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E5=8E=9F=E7=90=86=E7=AE=80=E4=BB=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\237\347\220\206\347\256\200\344\273\213" | 293 ++++++++++++++++++ 1 file changed, 293 insertions(+) create mode 100644 "4. \345\210\206\345\270\203\345\274\217\344\270\223\351\242\230/4.1 \345\210\206\345\270\203\345\274\217\344\272\213\345\212\241/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\345\216\237\347\220\206\347\256\200\344\273\213" diff --git "a/4. \345\210\206\345\270\203\345\274\217\344\270\223\351\242\230/4.1 \345\210\206\345\270\203\345\274\217\344\272\213\345\212\241/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\345\216\237\347\220\206\347\256\200\344\273\213" "b/4. \345\210\206\345\270\203\345\274\217\344\270\223\351\242\230/4.1 \345\210\206\345\270\203\345\274\217\344\272\213\345\212\241/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\345\216\237\347\220\206\347\256\200\344\273\213" new file mode 100644 index 0000000..44d2e34 --- /dev/null +++ "b/4. \345\210\206\345\270\203\345\274\217\344\270\223\351\242\230/4.1 \345\210\206\345\270\203\345\274\217\344\272\213\345\212\241/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\345\216\237\347\220\206\347\256\200\344\273\213" @@ -0,0 +1,293 @@ +# 1. 单数据源事务实现 + +工作上,对于只有一个数据源的操作中,我们仅仅用@Transaction 注解即可实现多个操作的事务控制。这个注解是spring提供的,与此同时,spring提供了多种事务管理器,有相应的依赖就会自动完成配置,我们使用的时候,只需要将我们想要的事务实现对象注入到 PlatformTransactionManager 里,就可以实现多种事务控制,也可以自己遵循spring的事务管理接口规范,自己写一个事务实现并注入: + +![image.png](https://upload-images.jianshu.io/upload_images/5786888-d4c40b7d02d3670e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + + +spring是如何自动识别并装配事务呢。以jdbc事务为例: +#### 扩展:jdbc事务自动配置 +``` +@Configuration +@ConditionalOnClass({ JdbcTemplate.class, PlatformTransactionManager.class }) +@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE) +@EnableConfigurationProperties(DataSourceProperties.class) +public class DataSourceTransactionManagerAutoConfiguration { + + @Configuration + @ConditionalOnSingleCandidate(DataSource.class) + static class DataSourceTransactionManagerConfiguration { + + private final DataSource dataSource; + + private final TransactionManagerCustomizers transactionManagerCustomizers; + + DataSourceTransactionManagerConfiguration(DataSource dataSource, + ObjectProvider transactionManagerCustomizers) { + this.dataSource = dataSource; + this.transactionManagerCustomizers = transactionManagerCustomizers + .getIfAvailable(); + } + + @Bean + @ConditionalOnMissingBean(PlatformTransactionManager.class) + public DataSourceTransactionManager transactionManager( + DataSourceProperties properties) { + DataSourceTransactionManager transactionManager = new DataSourceTransactionManager( + this.dataSource); + if (this.transactionManagerCustomizers != null) { + this.transactionManagerCustomizers.customize(transactionManager); + } + return transactionManager; + } + + } + +} +``` +@AutoConfigureOrder这个注解是springboot的新特性, 它修饰的类可以在容器启动的时候被spring扫描并配置注入。再加上@Conditional 家族的组合拳,使得jdbc的DataSourceTransactionManager 事务管理可以注入到IOC容器。其他的数据源也类似。 + + +#### 1.1 spring单机事务实战 + +声明式事务:@Transactional 一个注解就好了, spring通过切面来实现事务控制。 + +编程式事务: + +``` +public void transferAccount() { + Connection conn = null; + Statement stmt = null; + try{ + conn = getDataSource().getConnection(); + // 将自动提交设置为 false, + //若设置为 true 则数据库将会把每一次数据更新认定为一个事务并自动提交 + conn.setAutoCommit(false); + + stmt = conn.createStatement(); + // 将 A 账户中的金额减少 500 + stmt.execute("\ + update t_account set amount = amount - 500 where account_id = 'A'"); + // 将 B 账户中的金额增加 500 + stmt.execute("\ + update t_account set amount = amount + 500 where account_id = 'B'"); + + // 提交事务 + conn.commit(); + // 事务提交:转账的两步操作同时成功 + } catch(SQLException sqle){ + try{ + // 发生异常,回滚在本事务中的操作 + conn.rollback(); + // 事务回滚:转账的两步操作完全撤销 + stmt.close(); + conn.close(); + }catch(Exception ignore){ + + } + sqle.printStackTrace(); + } + } +``` +上面的两种方式,大家应该是再熟悉不过了,编程式事务就是声明式事务的源码。在编程式事务中可以看到,`conn = getDataSource().getConnection(); `会在执行sql前调用,这个就是用来获取jdbc链接的,思考一下如果我开多个线程去调用它内存地址会是一样的吗,大家可以在代码里面试试。那为什么会不一样呢,结合mysql事务机制仔细想一下,相信你一定题录灌顶。 + + +#### 思考:单数据源事务的关键是同一连接,spring是如何保证的 + +> 我们知道,mysql不能用两个黑框连接来实现同一个事务,假如有多个sql操作,分别操作同库中不同的表,要完成这个事务,必须要保证这些操作在同一个sql连接中,spring是如何做的呢。 + +以JDBC驱动为例,JDBC的dataSource连接是通过org.springframework.jdbc.datasource.DataSourceUtils来获取,在DataSourceUtils获取连接的时候,会将Connection和当前线程做绑定(调用TransactionSynchronizationManager的bindResource(dataSource, holderToUse);方法),在获取连接时,从ThreadLocal中拿到对应的Connection(TransactionSynchronizationManager中提供 getResource方法),然后在同一连接下继续执行事务。 + + +#### 哪些场景不应该用普通事务 + +> 当容器内存在多个数据源时,如果一个应用容器中存在多个不同的数据源,通常我们会创建多个数据源的事务管理器. + +比如一个Java应用要连数据库,同时也要连接MQ,这种情况下进行事务管理,我们就会创建一个DataSourceTransactionManager和一个JMSTransactionManager分别来对数据库事务和MQ事务进行管理. + +在一次请求服务的过程中使用到了2个数据源,那么事务的处理可能是这样的流程: + +``` +// 进行如下操作 +1. start message transaction +2. receive message +3. start database transaction +4. update database +5. commit database transaction +// 我出错了 +6. commit messaging transaction +``` + +在第5步和第6步之间如果出现了异常,那么由于第5步已经提交了,不能进行回滚操作,数据库已经插入了,但是消息还没有被消费掉,这样就无法满足事务的一致性了.所以就需要用分布式事务来保证其一致性。 + + +# 2. 分布式事务 + +> 跨数据源的事务。 + +### 2.1 XA协议简介 + +XA是由X/Open组织提出的分布式事务的架构(或者叫协议),是一种通用的规范。XA规范的基础是两阶段提交协议(2PC)。Oracle, Sybase, DB2, SQL Server等大型数据库支持XA。 + +XA协议内容是对底层事务资源的抽象,定义了分布式事务处理过程中事务管理器和资源管理器之间的协议,各事务资源提供商(如 JDBC 驱动,JMS)将提供此接口的实现。使用此接口,开发人员可以通过自己的编程实现分布式事务处理,但这些通常都是由应用服务器实现的(服务器自带实现更加高效,稳定) + +Mysql也有XA的实现,获取了一个普通的链接Connection之后,封装成了MysqlXAConnection + +#### XA常见问题 +##### XA二阶段提交 + +1. 性能问题 +XA协议遵循强一致性。在事务执行过程中,各个节点占用着数据库资源,只有当所有节点准备完毕,事务协调者才会通知提交,参与者提交后释放资源。这样的过程有着非常明显的性能问题。 + +2. 协调者单点故障问题 +事务协调者是整个XA模型的核心,一旦事务协调者节点挂掉,参与者收不到提交或是回滚通知,参与者会一直处于中间状态无法完成事务。 + +3. 丢失消息导致的不一致问题。 +在XA协议的第二个阶段,如果发生局部网络问题,一部分事务参与者收到了提交消息,另一部分事务参与者没收到提交消息,那么就导致了节点之间数据的不一致。 + +##### XA三阶段提交 +XA三阶段提交在两阶段提交的基础上增加了CanCommit阶段,并且引入了超时机制。一旦事物参与者迟迟没有接到协调者的commit请求,会自动进行本地commit。这样有效解决了协调者单点故障的问题。但是性能问题和不一致的问题仍然没有根本解决。 + +### 2.2 JTA事务介绍 + +Java 事务编程接口(JTA:Java Transaction API),是J2EE的编程接口规范,它是XA协议的JAVA实现。 + +``` +public void transferAccount() { + UserTransaction userTx = null; + try{ + // 获得 Transaction 管理对象 + userTx = (UserTransaction)getContext().lookup("\ + java:comp/UserTransaction"); + // 启动事务 + userTx.begin(); + // 将 A 账户中的金额减少 500 + stmtA.execute(sql1); + // 将 B 账户中的金额增加 500 + stmtB.execute(sql2); + // 提交事务 + userTx.commit(); + // 事务提交:转账的两步操作同时成功(数据库 A 和数据库 B 中的数据被同时更新) + } catch(SQLException sqle){ + // 发生异常,回滚在本事务中的操纵 + userTx.rollback(); + // 事务回滚:转账的两步操作完全撤销 + //( 数据库 A 和数据库 B 中的数据更新被同时撤销) + } catch(Exception ne){ + e.printStackTrace(); + } + } +``` + +面向开发人员的接口为 UserTransaction: + + +* begin() – 开始一个分布式事务,(在后台 TransactionManager 会创建一个 Transaction 事务对象并把此对象通过 ThreadLocale 关联到当前线程上 ) +* commit() – 提交事务(在后台 TransactionManager 会从当前线程下取出事务对象并把此对象所代表的事务提交) +* rollback() – 回滚事务(在后台 TransactionManager 会从当前线程下取出事务对象并把此对象所代表的事务回滚) +* getStatus() – 返回关联到当前线程的分布式事务的状态 (Status 对象里边定义了所有的事务状态,感兴趣的读者可以参考 API 文档 ) +* setRollbackOnly() – 标识关联到当前线程的分布式事务将被回滚 + + +UserTransaction是对Transaction接口的扩展,上面的这些操作最终都会落到真正的Transaction上来实现commit和rollback,这里的Transaction 操作的就是实现了XA协议的数据源。 + +不同的是,JTA的连接管理是通过TransactionManager 来实现,调用 UserTransaction.begin() 方法时 TransactionManager 会创建一个 Transaction 事务对象并把此对象通过 ThreadLocale 关联到当前线程上 + +#### 思考:如何记录同一个切面下 不同事务 属于同一个分布式事务呢? + +支持事务的数据源与普通的数据源是不同的,它实现了额外的 XADataSource 接口。 + +![image.png](https://upload-images.jianshu.io/upload_images/5786888-d2bb5fa2960a8404.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + + +Xid 类用来标识事务,可以把 Xid 想象成事务的一个标志符,每次在新事务创建是都会为事务分配一个 Xid,Xid 包含三个元素:formatID、gtrid(全局事务标识符)和 bqual(分支修饰词标识符)。 formatID 通常是零,这意味着你将使用 OSI CCR(Open Systems Interconnection Commitment, Concurrency 和 Recovery 标准)来命名;如果你要使用另外一种格式,那么 formatID 应该大于零,-1 值意味着 Xid 为无效。gtrid 和 bqual 分别包含 64 个字节二进制码来分别标识全局事务和分支事务, gtrid 和 bqual 必须是全局唯一的。 + +在事务被提交时,Transaction 对象会收集所有被当前事务包含的 XAResource 资源,然后调用资源的提交方法,如果有失败就全部rollback。 + +JTA一般和Atomikos框架配合使用 + +### 2.3 TCC事务介绍 + +> 是基于补偿型事务的AP系统的一种实现, 具有最终一致性。原理是2PC两阶段提交。 + +TCC(Try/Confirm/Cancel)事务机制相对于传统事务机制(X/Open XA),其特征在于它不依赖资源管理器(RM)对XA的支持,而是通过对(由业务系统提供的)业务逻辑的调度来实现分布式事务。 + +国内开源的TCC框架:ByteTCC、Himly、TCC-transaction + +##### TCC原理图: + +![image.png](https://upload-images.jianshu.io/upload_images/5786888-7ef17ab1538782a0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +TCC是2PC的思想在应用层面的落地实现,使用TCC实现事务,需要每个接口中都有try、Confirm、Cancel接口,并保证这三个接口的幂等性。需要开发很大量的代码,花费很高的成本,一般不会使用它。 + +##### TCC优缺点 +优点:可以让应用自己定义数据操作的粒度,使得降低锁冲突、提高吞吐量成为可能。 +缺点:对应用的侵入性非常强,业务逻辑的每个分支都需要实现try、confirm、cancel三个操作。此外,其实现难度也比较大,需要按照网络状态、系统故障等不同的失败原因实现不同的回滚策略。Confirm/Cancel业务可能会被多次调用,就需要保障其幂等性。 + +TCC故障处理:[https://blog.csdn.net/dm_vincent/article/details/92432059](https://blog.csdn.net/dm_vincent/article/details/92432059) + +### 2.4 LCN事务框架 + +> LCN分布式事务框架其本身并不创建事务,而是基于对本地事务的协调从而达到事务一致性的效果。 + +LCN有三种模式:LCN模式,TCC模式,TXC模式。TCC模式上面有说,这里介绍LCN模式。 + +##### 使用方式: +多数据源配置 + 多数据源实例注入到LCN事务管理器中,后续即可通过@LcnTransaction 注解来实现。 + +事务流程图: + +![image.png](https://upload-images.jianshu.io/upload_images/5786888-a16cb14618965f66.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + + +TxManager本身是一个Socket服务,来处理每个事务传递过来的指令。同一个事物组中都成功后会返回成功,有一个事务失败后会返回给所有的事务rollback。 + +整个事务在一个切面里面,切面里面会生成一个事务组id,将各个事务绑定,并上传各个事务的结果:commit 还是rollback。 + +##### 事务管理如何做到等待全部事务的结果呢? + +每个事务提交会附带一个锁对象,事务管理新开辟线程来锁住该对象,等本地事务状态达到终态后将锁进行释放,事务管理就会收到事务的结果。 + +LCN事务本地事务是一定要保持在同一个线程内完成,如何保证的呢?ThreadLocal,在获取dataSource连接&创建事务的时候,在threadLocal中存放一份事务对象 + +##### 优缺点 + +优点:性能优秀;对代码的嵌入性低;该模式仅限于本地存在连接对象且可通过连接对象控制事务的模块。 + +缺点:需额外部署 tx-manager 服务节点;代理的连接需要随事务发起方一共释放连接,增加了连接占用的时间; 服务超时时,会造成其他服务的资源被锁住,比如支付服务超时过程中,相关商品库存会一直无法操作; + +### seata框架(GTS开源版本) + +官网:http://seata.io/zh-cn/ +文档:http://seata.io/zh-cn/docs/overview/what-is-seata.html + +GTS文档:https://www.jianshu.com/p/65b7fd061a33 + +### 2.5 消息驱动事务 + +> 基于消息中间件的最终一致性事务方案是互联网公司在高并发场景中探索出的一种创新型应用模式。 + +消息一致性方案是通过消息中间件保证上、下游应用数据操作的一致性。基本思路是将本地操作和发送消息放在一个事务中,保证本地操作和消息发送要么两者都成功或者都失败。下游应用向消息系统订阅该消息,收到消息后执行相应操作。 + +![image.png](https://upload-images.jianshu.io/upload_images/5786888-4f13ec2482fa7ae1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +消息方案从本质上讲是将分布式事务转换为两个本地事务,然后依靠下游业务的重试机制达到最终一致性。基于消息的最终一致性方案对应用侵入性也很高,应用需要进行大量业务改造,成本较高。由于会出现网络延迟的问题,消息重复、消息顺序无法保证的情况也会出现。需要业务机制进行补偿。 + +#### 扩展:dataSource连接 Connection 接口会有commit和rollback方法,它如何实现提交和回滚操作的? + +通过sockcet和mysql进行的指令交互,真正实现靠mysql的事务管理。undo、redo日志实现。[https://www.cnblogs.com/wyc1994666/p/11367051.html](https://www.cnblogs.com/wyc1994666/p/11367051.html) + + +### 事务的适用场景 +>分布式事务,按照控制力度可以分为:不控制、部分控制和完全控制。 + +* 不控制就是不引入分布式事务。 +* 部分控制就是引入了分布式事务,但数据不是强一致性,比如TCC和消息驱动事务,它的优点是并发量和性能很好。适用于一些不要求时效性和一致性的场景。比如:交易成功发短息、推送消息等 +* 完全控制保证了数据的强一致性,比如LCN、GTS,这种事务牺牲了性能,保障了数据的一致性。适用于要求时效性和一致性的场景,比如金融支付,共享出行等。 + + +### 工作上能到用哪些 +目前我们大多数场景使用的是消息驱动的事务模型,确保数据最终一致性即可,金融、库存服务对数据强一致性要求较高,所以对事务的强一致性要求也较高,不适合用消息驱动的事务模型。这些不同的思想的学习,可以为我们后续的工作添加一份思路。 + +1. 学习spring事务管理接口定义的设计模式,在需求开发中提高功能的可扩展性。 +2. 对需要同一线程处理的资源,可以模拟TransactionSynchronizationManager 的思路,用ThreadLocal实现。使用时注意ThreadLocal的内存泄漏问题。 From c5b1441808c4e013c1d3993f30f15aaddf24a50d Mon Sep 17 00:00:00 2001 From: "Fant.J" <844072586@qq.com> Date: Sun, 28 Feb 2021 23:22:31 +0800 Subject: [PATCH 2/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54380c9..6344a90 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ 添加本人微信留言:领取福利。 ### 交流群 ->不定时会分享一些学习方法, 书籍, 企业技术, 算法等知识, 一起成长、一起进步。 +>不定时会分享一些学习方法, 书籍, 企业技术, 算法等知识, 一起成长、一起进步。 有需要阿里社招内推的同学也可以联系哈,会帮你一直跟进流程。 ![微信群加我备注进群](https://upload-images.jianshu.io/upload_images/5786888-9d87c2d1812f322e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/200) From 2a3d6106ceec1fed0e9f6512acbd5c368a0e7b9b Mon Sep 17 00:00:00 2001 From: "Fant.J" <844072586@qq.com> Date: Tue, 15 Mar 2022 11:54:11 +0800 Subject: [PATCH 3/9] =?UTF-8?q?Delete=20Dubbo-RpcException=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E8=A7=A3=E5=86=B3.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eption\346\212\245\351\224\231\350\247\243\345\206\263.md" | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 "3. \346\241\206\346\236\266\344\270\223\351\242\230/3.1 \345\256\236\346\210\230\347\257\207/Dubbo/Dubbo-RpcException\346\212\245\351\224\231\350\247\243\345\206\263.md" diff --git "a/3. \346\241\206\346\236\266\344\270\223\351\242\230/3.1 \345\256\236\346\210\230\347\257\207/Dubbo/Dubbo-RpcException\346\212\245\351\224\231\350\247\243\345\206\263.md" "b/3. \346\241\206\346\236\266\344\270\223\351\242\230/3.1 \345\256\236\346\210\230\347\257\207/Dubbo/Dubbo-RpcException\346\212\245\351\224\231\350\247\243\345\206\263.md" deleted file mode 100644 index 0550688..0000000 --- "a/3. \346\241\206\346\236\266\344\270\223\351\242\230/3.1 \345\256\236\346\210\230\347\257\207/Dubbo/Dubbo-RpcException\346\212\245\351\224\231\350\247\243\345\206\263.md" +++ /dev/null @@ -1,4 +0,0 @@ - -这个报错是因为用到的一些类没有序列化造成的,这个错误是由于我service用到了一些工具类,工具类没有实例化造成的。 - -只要是需要注册到dbbo上的每一个对象都需要做序列化。 From 37233bfe42145018c66939039dc7d4f49045ee33 Mon Sep 17 00:00:00 2001 From: fantj <844072586@qq.com> Date: Fri, 6 May 2022 00:27:44 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\345\212\250\350\214\203\345\233\264.md" | 85 +++++++++++++++++++ ...55\347\232\204\350\267\257\345\276\204.md" | 78 +++++++++++++++++ ... \345\211\252\347\273\263\345\255\220.md" | 70 +++++++++++++++ ...7\347\232\204n\344\275\215\346\225\260.md" | 34 ++++++++ ...50\347\232\204\350\212\202\347\202\271.md" | 42 +++++++++ ...6\346\225\260\345\211\215\351\235\2422.md" | 50 +++++++++++ ...45\345\217\243\347\273\223\347\202\271.md" | 64 ++++++++++++++ ...25\344\276\213\346\250\241\345\274\217.md" | 4 +- ...13\350\275\275\351\200\237\345\272\246.md" | 4 + 9 files changed, 429 insertions(+), 2 deletions(-) create mode 100644 "1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/30. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264.md" create mode 100644 "1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/31. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204.md" create mode 100644 "1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/32. \345\211\252\347\273\263\345\255\220.md" create mode 100644 "1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/33. \346\211\223\345\215\260\344\273\2161\345\210\260\346\234\200\345\244\247\347\232\204n\344\275\215\346\225\260.md" create mode 100644 "1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/34. \345\210\240\351\231\244\351\223\276\350\241\250\347\232\204\350\212\202\347\202\271.md" create mode 100644 "1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/35. \350\260\203\346\225\264\346\225\260\347\273\204\351\241\272\345\272\217\344\275\277\345\245\207\346\225\260\344\275\215\344\272\216\345\201\266\346\225\260\345\211\215\351\235\2422.md" create mode 100644 "1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/36. \351\223\276\350\241\250\344\270\255\347\216\257\347\232\204\345\205\245\345\217\243\347\273\223\347\202\271.md" diff --git "a/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/30. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264.md" "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/30. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264.md" new file mode 100644 index 0000000..0c562eb --- /dev/null +++ "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/30. \346\234\272\345\231\250\344\272\272\347\232\204\350\277\220\345\212\250\350\214\203\345\233\264.md" @@ -0,0 +1,85 @@ +### Title +地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼n−1。 + +一个机器人从坐标 (0,0) 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格。 + +但是不能进入行坐标和列坐标的数位之和大于 k 的格子。 + +请问该机器人能够达到多少个格子? + +注意: +1. 0<=m<=50 +2. 0<=n<=50 +3. 0<=k<=100 + +### Demo +``` +输入:k=18, m=40, n=40 + +输出:1484 + +解释:当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。 + 但是,它不能进入方格(35,38),因为3+5+3+8 = 19。 +``` + +### Analysis +用标记法,对已走过的路径进行标记,然后递归判断上下左右是否满足下一个字符,以此类推 + + +### Coding +```java +class Solution { + private static class Node { + int first; + int second; + + public Node(int first, int second) { + this.first = first; + this.second = second; + } + } + + private boolean[][] visited = new boolean[55][55]; + private static final int[][] nxt = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; + + public int movingCount(int threshold, int rows, int cols) { + if (rows < 1 || cols < 1) + return 0; + + Queue que = new LinkedList<>(); + visited[0][0] = true; + que.add(new Node(0, 0)); + int res = 0; + + while (!que.isEmpty()) { + Node popNode = que.poll(); + res++; + + for (int i = 0; i < nxt.length; i++) { + int fx = popNode.first + nxt[i][0], fy = popNode.second + nxt[i][1]; + if (fx >= 0 && fy >= 0 && fx < rows && fy < cols && getSum(fx, fy) <= threshold && !visited[fx][fy]) { + que.add(new Node(fx, fy)); + visited[fx][fy] = true; + } + } + } + + return res; + } + + private int getSum(int rows, int cols) { + int s = 0; + while (rows > 0) { + s += rows % 10; + rows /= 10; + } + + while (cols > 0) { + s += cols % 10; + cols /= 10; + } + + return s; + } +} +``` \ No newline at end of file diff --git "a/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/31. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204.md" "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/31. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204.md" new file mode 100644 index 0000000..2a679b5 --- /dev/null +++ "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/31. \347\237\251\351\230\265\344\270\255\347\232\204\350\267\257\345\276\204.md" @@ -0,0 +1,78 @@ +### Title +请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 + +路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。 + +如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 + +注意: + +输入的路径不为空; +所有出现的字符均为大写英文字母; +数据范围 +矩阵中元素的总个数 [0,900]。 +路径字符串的总长度 [0,900]。 + +### Demo +``` +matrix= +[ + ["A","B","C","E"], + ["S","F","C","S"], + ["A","D","E","E"] +] + + +str="BCCE" , return "true" + +str="ASAE" , return "false" +``` + + +### Analysis +用标记法,对已走过的路径进行标记,然后递归判断上下左右是否满足下一个字符,以此类推 + +### Coding +```java +class Solution { + public boolean hasPath(char[][] matrix, String str) { + if(matrix == null || str == "" || matrix.length == 0){ + return false; + } + int rows = matrix.length; + int cols = matrix[0].length; + boolean [][] visited = new boolean[rows][cols]; + int length = 0; + for(int i = 0; i< rows; i++){ + for(int j = 0; j < cols; j++){ + if(dfs(matrix, visited, str, rows, cols, i, j, length)){ + return true; + } + } + } + return false; + } + + public boolean dfs(char[][] matrix, boolean[][] visited, String str, int rows, int cols, int row, int col, int length){ + // 如果未读且 + int strLength = str.length(); + boolean flag = false; + if(row>=0 && row < rows && col >=0 && col < cols && visited[row][col] == false && str.charAt(length) == matrix[row][col]){ + length++; + visited[row][col] = true; + if(length == strLength){ + return true; + } + flag = dfs(matrix, visited, str, rows, cols, row+1, col, length)|| + dfs(matrix, visited, str, rows, cols, row, col-1, length)|| + dfs(matrix, visited, str, rows, cols, row, col+1, length)|| + dfs(matrix, visited, str, rows, cols, row-1, col, length); + if(!flag){ + length--; + visited[row][col] = false; + } + } + return flag; + } +} +``` \ No newline at end of file diff --git "a/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/32. \345\211\252\347\273\263\345\255\220.md" "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/32. \345\211\252\347\273\263\345\255\220.md" new file mode 100644 index 0000000..e63a107 --- /dev/null +++ "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/32. \345\211\252\347\273\263\345\255\220.md" @@ -0,0 +1,70 @@ +### Title +给你一根长度为 n 绳子,请把绳子剪成 m 段(m、n 都是整数,2≤n≤58 并且 m≥2)。 + +每段的绳子的长度记为 k[1]、k[2]、……、k[m]。 + +k[1]k[2]…k[m] 可能的最大乘积是多少? + +例如当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到最大的乘积 18。 +### Demo +``` +输入:8 + +输出:18 +``` + + +### Analysis + +```aidl +2: 1x1 +3: 1x2 +4: 2x2 +5: 2x3 +6: 2x2x2 +7: 2x2x3 +``` +根据上面来看,拆分成2和3肯定是乘积最大. +可以网上查一下数学推导,也可以用动态规划 + +### Coding +```java +class Solution { + public int maxProductAfterCutting(int length) + { + + if(length <= 3){ + return 1*(length-1); + } + int result = 1; + if(length % 3 == 1){ + result = 4; + length -= 4; + }else if(length % 3 == 2){ + result = 2; + length -= 2; + } + + while(length != 0){ + result *= 3; + length -= 3; + } + + return result; + } +} +``` + +动态规划: +``` +public int maxProductAfterCutting(int target) { + int[] dp = new int[target + 1]; + dp[1] = 1; + for (int i = 2; i <= target; i++) { + for (int j = 1; j < i; j++) { + dp[i] = Math.max(dp[i], (Math.max(j, dp[j])) * (Math.max(i - j, dp[i - j]))); + } + } + return dp[target]; + } +``` \ No newline at end of file diff --git "a/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/33. \346\211\223\345\215\260\344\273\2161\345\210\260\346\234\200\345\244\247\347\232\204n\344\275\215\346\225\260.md" "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/33. \346\211\223\345\215\260\344\273\2161\345\210\260\346\234\200\345\244\247\347\232\204n\344\275\215\346\225\260.md" new file mode 100644 index 0000000..c5baf4f --- /dev/null +++ "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/33. \346\211\223\345\215\260\344\273\2161\345\210\260\346\234\200\345\244\247\347\232\204n\344\275\215\346\225\260.md" @@ -0,0 +1,34 @@ +### Title +输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 +1. 用返回一个整数列表来代替打印 +2. n 为正整数,0 < n <= 5 +### Demo +```aidl +输入:1 +返回值:[1,2,3,4,5,6,7,8,9] +``` + + + +### Analysis + + + +### Coding +```java +class Solution { + public int[] printNumbers (int n) { + // write code here + int high = 1; + while(n>0){ + high*=10; + n--; + } + int res[] = new int[high-1]; + for(int i=1;i 1 -> 9 +``` + + + +### Analysis + + + +### Coding +```java +class Solution { + public int[] printNumbers (int n) { + // write code here + int high = 1; + while(n>0){ + high*=10; + n--; + } + int res[] = new int[high-1]; + for(int i=1;ij){ + //这区间整体向后移动一位 + array[k] = array[k-1]; + k--; + } + //移位之后将对应的值赋值 + array[k] = temp; + j++; + } + } + //返回结果数数组 + return array; + } +} +``` diff --git "a/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/36. \351\223\276\350\241\250\344\270\255\347\216\257\347\232\204\345\205\245\345\217\243\347\273\223\347\202\271.md" "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/36. \351\223\276\350\241\250\344\270\255\347\216\257\347\232\204\345\205\245\345\217\243\347\273\223\347\202\271.md" new file mode 100644 index 0000000..b1f679e --- /dev/null +++ "b/1. \347\256\227\346\263\225\345\237\272\347\241\200/1.2 \345\211\221\346\214\207offer/36. \351\223\276\350\241\250\344\270\255\347\216\257\347\232\204\345\205\245\345\217\243\347\273\223\347\202\271.md" @@ -0,0 +1,64 @@ +### Title +给定一个链表,若其中包含环,则输出环的入口节点。 + +若其中不包含环,则输出null。 + +数据范围 +节点 val 值取值范围 [1,1000]。 +链表长度 [0,500]。 + + +### Demo +``` +[1, 2, 3, 4, 5, 6] +2 +注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。 + +则输出环的入口节点3. +``` + +### Analysis +假设快指针在环中走了nnn圈,慢指针在环中走了mmm圈,它们才相遇,而进入环之前的距离为xxx,环入口到相遇点的距离为yyy,相遇点到环入口的距离为zzz。快指针一共走了x+n(y+z)+yx+n(y+z)+yx+n(y+z)+y步,慢指针一共走了x+m(y+z)+yx+m(y+z)+yx+m(y+z)+y,这个时候快指针走的倍数是慢指针的两倍,则x+n(y+z)+y=2(x+m(y+z)+y)x+n(y+z)+y=2(x+m(y+z)+y)x+n(y+z)+y=2(x+m(y+z)+y),这时候x+y=(n−2m)(y+z)x+y=(n-2m)(y+z)x+y=(n−2m)(y+z),因为环的大小是y+zy+zy+z,说明从链表头经过环入口到达相遇地方经过的距离等于整数倍环的大小:那我们从头开始遍历到相遇位置,和从相遇位置开始在环中遍历,会使用相同的步数,而双方最后都会经过入口到相遇位置这yyy个节点,那说明这yyy个节点它们就是重叠遍历的,那它们从入口位置就相遇了 + +### Code + +```java +class Solution { + //判断有没有环,返回相遇的地方 + public ListNode hasCycle(ListNode head) { + //先判断链表为空的情况 + if(head == null) + return null; + //快慢双指针 + ListNode fast = head; + ListNode slow = head; + //如果没环快指针会先到链表尾 + while(fast != null && fast.next != null){ + //快指针移动两步 + fast = fast.next.next; + //慢指针移动一步 + slow = slow.next; + //相遇则有环,返回相遇的位置 + if(fast == slow) + return slow; + } + //到末尾说明没有环,返回null + return null; + } + + public ListNode EntryNodeOfLoop(ListNode pHead) { + ListNode slow = hasCycle(pHead); + //没有环 + if(slow == null) + return null; + //快指针回到表头 + ListNode fast = pHead; + //再次相遇即是环入口 + while(fast != slow){ + fast = fast.next; + slow = slow.next; + } + return slow; + } +} +``` diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/3. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\215\225\344\276\213\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/3. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\215\225\344\276\213\346\250\241\345\274\217.md" index cc5a801..69e0e4e 100644 --- "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/3. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\215\225\344\276\213\346\250\241\345\274\217.md" +++ "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/3. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\215\225\344\276\213\346\250\241\345\274\217.md" @@ -42,8 +42,8 @@ public class Singleton { ``` 可以在多线程环境下使用,但是效率太低。 -**优点:**一个对象初始化一次,节省内存。 -**缺点:**必须用synchronized来维持单例,没效率。 +**优点**:一个对象初始化一次,节省内存。 +**缺点**:必须用synchronized来维持单例,没效率。 ### 实现方式三:饿汉式(线程安全) ``` diff --git "a/7. Linux\344\270\223\351\242\230/7.2 \345\270\270\347\224\250\346\234\215\345\212\241\346\220\255\345\273\272/\347\224\250mwget\345\267\245\345\205\267\346\235\245\346\217\220\345\215\207wget\344\270\213\350\275\275\351\200\237\345\272\246.md" "b/7. Linux\344\270\223\351\242\230/7.2 \345\270\270\347\224\250\346\234\215\345\212\241\346\220\255\345\273\272/\347\224\250mwget\345\267\245\345\205\267\346\235\245\346\217\220\345\215\207wget\344\270\213\350\275\275\351\200\237\345\272\246.md" index 46ddf23..1de4c32 100644 --- "a/7. Linux\344\270\223\351\242\230/7.2 \345\270\270\347\224\250\346\234\215\345\212\241\346\220\255\345\273\272/\347\224\250mwget\345\267\245\345\205\267\346\235\245\346\217\220\345\215\207wget\344\270\213\350\275\275\351\200\237\345\272\246.md" +++ "b/7. Linux\344\270\223\351\242\230/7.2 \345\270\270\347\224\250\346\234\215\345\212\241\346\220\255\345\273\272/\347\224\250mwget\345\267\245\345\205\267\346\235\245\346\217\220\345\215\207wget\344\270\213\350\275\275\351\200\237\345\272\246.md" @@ -25,3 +25,7 @@ make&make install ### 3. 效果 ![image.png](https://upload-images.jianshu.io/upload_images/5786888-8647b6cce0a1b190.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) + +![欢迎关注公众号](https://user-gold-cdn.xitu.io/2020/2/22/1706c6ee573189ff?w=258&h=258&f=jpeg&s=15621) + +GitHub地址: https://github.com/fantj2016/java-reader \ No newline at end of file From af75de7e7eeb6845246965e789ff6ad46d753d90 Mon Sep 17 00:00:00 2001 From: fantj <844072586@qq.com> Date: Tue, 1 Nov 2022 19:16:50 +0800 Subject: [PATCH 5/9] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...53\344\270\216\350\201\224\347\263\273.md" | 0 ...45\345\205\267\346\246\202\350\277\260.md" | 0 ...42\345\207\272\345\244\204\347\220\206.md" | 0 ...40\350\275\275\346\234\272\345\210\266.md" | 0 ...05\345\255\230\347\256\241\347\220\206.md" | 0 ...17\350\256\241\346\225\260\345\231\250.md" | 0 ...10\345\270\247\347\273\223\346\236\204.md" | 0 ...71\346\263\225\350\260\203\347\224\250.md" | 0 ...71\350\261\241\345\210\233\345\273\272.md" | 0 ...36\346\224\266\346\234\272\345\210\266.md" | 0 ...02\347\240\201\346\214\207\344\273\244.md" | 0 .../1. JVM/JVM-ZGC.md" | 0 ...15\345\270\270\351\207\217\346\261\240.md" | 0 ...05\345\255\230\346\263\204\346\274\217.md" | 0 .../1. JVM/JVM.md" | 0 ...6\220try-catch\346\200\247\350\203\275.md" | 0 ...33\345\273\272\346\226\271\345\274\217.md" | 0 .../10. AQS.md" | 0 ...57\351\207\215\345\205\245\351\224\201.md" | 0 .../12. Condition.md" | 0 ...1-\350\257\273\345\206\231\351\224\201.md" | 0 .... \351\224\201\351\231\215\347\272\247.md" | 0 ...00\344\272\233\346\200\235\350\200\203.md" | 0 ...45\217\257\351\207\215\345\205\245Lock.md" | 0 ...11\345\205\250\351\227\256\351\242\230.md" | 0 ...20\347\240\201\345\210\206\346\236\220.md" | 0 ...20\347\240\201\345\210\206\346\236\220.md" | 0 ...77\347\224\250\345\205\245\351\227\250.md" | 0 ...71\346\263\225\345\214\272\345\210\253.md" | 0 ...10\347\272\247\350\256\276\345\256\232.md" | 0 ...le\345\205\263\351\224\256\345\255\227.md" | 0 ...50\347\232\204\345\216\237\347\220\206.md" | 0 .../6. Join\346\226\271\346\263\225.md" | 0 ...260\347\272\277\347\250\213ThreadLocal.md" | 0 ...04\346\274\217\351\227\256\351\242\230.md" | 0 .../9. Atomic\345\214\205.md" | 0 .../1. \345\211\215\350\250\200.md" | 0 .../10. \346\263\233\345\236\213.md" | 0 ...75\345\222\214\351\207\215\350\275\275.md" | 0 ...50\346\200\201\344\273\243\347\220\206.md" | 0 .../2. \345\255\227\346\256\265.md" | 0 .../3. \346\225\260\347\273\204.md" | 0 ...65\345\222\214\346\226\271\346\263\225.md" | 0 .../5. \346\226\271\346\263\225-Methods.md" | 0 ...216\267\345\217\226Getters-and-Setters.md" | 0 ...04\351\200\240\345\207\275\346\225\260.md" | 0 .../8. \346\263\250\350\247\243.md" | 0 .... \347\261\273\345\257\271\350\261\241.md" | 0 .../4. JDBC/1. \346\246\202\350\277\260.md" | 0 ...21\345\261\225\345\216\206\347\250\213.md" | 0 ...36\345\210\240\346\224\271\346\237\245.md" | 0 .../4. ResultSet-\350\257\246\350\247\243.md" | 0 ...aredStatement-\350\257\246\350\247\243.md" | 0 ...351\207\217\345\244\204\347\220\206sql.md" | 0 ...7. \344\272\213\345\212\241Transaction.md" | 0 ...07\347\250\213\350\260\203\347\224\250.md" | 0 ...23\345\205\203\346\225\260\346\215\256.md" | 0 .../1. Servlet-\350\257\246\350\247\243.md" | 0 ...ervletContext-\350\257\246\350\247\243.md" | 0 ...15\347\275\256\350\257\246\350\247\243.md" | 0 ...66\345\217\221\351\227\256\351\242\230.md" | 0 .... HttpServlet-\350\257\246\350\247\243.md" | 0 .... HttpRequest-\350\257\246\350\247\243.md" | 0 ... HttpResponse-\350\257\246\350\247\243.md" | 0 .... HttpSession-\350\257\246\350\247\243.md" | 0 ...estDispatcher-\350\257\246\350\247\243.md" | 0 ...ervlet-Cookie-\350\257\246\350\247\243.md" | 0 ...ervlet-Filter-\350\257\246\350\247\243.md" | 0 ...ervlet-Filter-\350\257\246\350\247\243.md" | 0 .../1. Java-NIO-\346\216\242\347\264\242.md" | 0 .../10. Java-NIO-ServerSocketChannel.md" | 0 .../11. Java-NIO-Non-blocking-Server.md" | 0 .../Java-NIO/12. Java-NIO-DatagramChannel.md" | 0 ...ava-NIO-Pipe(\347\256\241\351\201\223).md" | 0 ...72\346\231\257\345\210\206\346\236\220.md" | 0 ...th\347\232\204\347\224\250\346\263\225.md" | 0 .../Java-NIO/16. Java-NIO-Files.md" | 0 ...07\344\273\266\351\200\232\351\201\223.md" | 0 .../18. Java-NIO-\345\256\236\344\276\213.md" | 0 ...343\200\201AIO\345\214\272\345\210\253.md" | 0 .../2. Java-NIO-\346\246\202\345\277\265.md" | 0 .../2. Java-NIO-\347\256\200\344\273\213.md" | 0 ...a-NIO-Channel-\351\200\232\351\201\223.md" | 0 .../Java-NIO/4. Java-NIO-Buffer.md" | 0 .../Java-NIO/5. Java-NIO-Scatter---Gather.md" | 0 ...\346\215\242(\344\274\240\350\276\223).md" | 0 .../Java-NIO/7. Java-NIO-Selector.md" | 0 .../Java-NIO/8. Java-NIO-FileChannel.md" | 0 .../Java-NIO/9. Java-NIO-SocketChannel.md" | 0 .../Java8/java8-LocalDate\347\261\273.md" | 0 .../Java8/java8-lambda.md" | 0 .../Java8/java8-stream.md" | 0 .... \345\210\235\350\257\206\347\257\207.md" | 0 ...da\350\241\250\350\276\276\345\274\217.md" | 0 .../3. Stream\346\265\201.md" | 0 ...\346\200\273\347\273\223(\344\270\200).md" | 0 ...\346\200\273\347\273\223(\344\270\211).md" | 0 ...\346\200\273\347\273\223(\344\272\214).md" | 0 ...73\345\212\240\350\275\275\345\231\250.md" | 0 ...\347\275\221\347\273\234(\344\270\200).md" | 0 ...45\345\216\202\346\250\241\345\274\217.md" | 0 ...15\345\231\250\346\250\241\345\274\217.md" | 0 ...45\345\216\202\346\250\241\345\274\217.md" | 0 ...25\344\276\213\346\250\241\345\274\217.md" | 0 ...40\350\200\205\346\250\241\345\274\217.md" | 0 ...37\345\236\213\346\250\241\345\274\217.md" | 0 ...41\346\235\277\346\250\241\345\274\217.md" | 0 ...26\347\225\245\346\250\241\345\274\217.md" | 0 ...24\346\264\276\346\250\241\345\274\217.md" | 0 ...43\347\220\206\346\250\241\345\274\217.md" | 0 ...76\350\256\241\345\216\237\345\210\231.md" | 0 ...20\347\240\201\345\210\206\346\236\220.md" | 0 ...20\347\240\201\345\210\206\346\236\220.md" | 0 ...347\240\201\345\210\206\346\236\220-md.md" | 0 ...20\347\240\201\345\210\206\346\236\220.md" | 0 ...42\350\257\225\351\227\256\351\242\230.md" | 161 ------------------ README.md | 5 +- ...00\346\272\220\351\241\271\347\233\256.md" | 0 118 files changed, 2 insertions(+), 164 deletions(-) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/1. JDK\343\200\201JRE\343\200\201JVM\347\232\204\345\214\272\345\210\253\344\270\216\350\201\224\347\263\273.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/1. JDK\343\200\201JRE\343\200\201JVM\347\232\204\345\214\272\345\210\253\344\270\216\350\201\224\347\263\273.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/10. JVM-\345\210\206\346\236\220\345\267\245\345\205\267\346\246\202\350\277\260.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/10. JVM-\345\210\206\346\236\220\345\267\245\345\205\267\346\246\202\350\277\260.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/2. JVM-\347\261\273\345\212\240\350\275\275\346\234\272\345\210\266.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/2. JVM-\347\261\273\345\212\240\350\275\275\346\234\272\345\210\266.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/3. JVM-\345\206\205\345\255\230\347\256\241\347\220\206.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/3. JVM-\345\206\205\345\255\230\347\256\241\347\220\206.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/4. JVM-\347\250\213\345\272\217\350\256\241\346\225\260\345\231\250.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/4. JVM-\347\250\213\345\272\217\350\256\241\346\225\260\345\231\250.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/5. JVM-\350\277\220\350\241\214\346\227\266\346\240\210\345\270\247\347\273\223\346\236\204.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/5. JVM-\350\277\220\350\241\214\346\227\266\346\240\210\345\270\247\347\273\223\346\236\204.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/6. JVM-\346\226\271\346\263\225\350\260\203\347\224\250.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/6. JVM-\346\226\271\346\263\225\350\260\203\347\224\250.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/7. JVM-\350\247\206\350\247\222\347\234\213\345\257\271\350\261\241\345\210\233\345\273\272.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/7. JVM-\350\247\206\350\247\222\347\234\213\345\257\271\350\261\241\345\210\233\345\273\272.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/8. JVM-\345\236\203\345\234\276\345\233\236\346\224\266\346\234\272\345\210\266.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/8. JVM-\345\236\203\345\234\276\345\233\236\346\224\266\346\234\272\345\210\266.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/9. JVM-Class\346\226\207\344\273\266\347\273\223\346\236\204&\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/9. JVM-Class\346\226\207\344\273\266\347\273\223\346\236\204&\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-ZGC.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-ZGC.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-\344\270\211\347\247\215\345\270\270\351\207\217\346\261\240.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-\344\270\211\347\247\215\345\270\270\351\207\217\346\261\240.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-\345\206\205\345\255\230\346\263\204\346\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-\345\206\205\345\255\230\346\263\204\346\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/JVM\351\235\242\350\257\225.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/\344\273\216JVM\350\247\206\350\247\222\345\210\206\346\236\220try-catch\346\200\247\350\203\275.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\344\273\216JVM\350\247\206\350\247\222\345\210\206\346\236\220try-catch\346\200\247\350\203\275.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/1. Java\345\271\266\345\217\221\347\274\226\347\250\213-\347\272\277\347\250\213\347\232\204\345\220\204\347\247\215\345\210\233\345\273\272\346\226\271\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/1. \347\272\277\347\250\213\347\232\204\345\220\204\347\247\215\345\210\233\345\273\272\346\226\271\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/10. Java\345\271\266\345\217\221\347\274\226\347\250\213-AQS.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/10. AQS.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/11. Java\345\271\266\345\217\221\347\274\226\347\250\213-AQS\345\205\245\351\227\250&\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245\351\224\201.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/11. AQS\345\205\245\351\227\250&\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245\351\224\201.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/12. Java\345\271\266\345\217\221\347\274\226\347\250\213-Condition.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/12. Condition.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/13. Java\345\244\232\347\272\277\347\250\213-\344\272\222\346\226\245\351\224\201-\345\205\261\344\272\253\351\224\201-\350\257\273\345\206\231\351\224\201-\345\277\253\351\200\237\345\205\245\351\227\250.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/13. \344\272\222\346\226\245\351\224\201-\345\205\261\344\272\253\351\224\201-\350\257\273\345\206\231\351\224\201.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/14. Java\345\244\232\347\272\277\347\250\213-\351\224\201\351\231\215\347\272\247.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/14. \351\224\201\351\231\215\347\272\247.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/15. Java\345\271\266\345\217\221\347\274\226\347\250\213-\345\205\254\345\271\263\351\224\201\345\222\214\351\235\236\345\205\254\345\271\263\351\224\201\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/15. \345\205\254\345\271\263\351\224\201\345\222\214\351\235\236\345\205\254\345\271\263\351\224\201\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/16. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\211\213\345\212\250\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245Lock.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/16. \346\211\213\345\212\250\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245Lock.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/17. Java\345\271\266\345\217\221\347\274\226\347\250\213-\345\215\225\344\276\213\346\250\241\345\274\217\347\272\277\347\250\213\345\256\211\345\205\250\351\227\256\351\242\230.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/17. \345\215\225\344\276\213\346\250\241\345\274\217\347\272\277\347\250\213\345\256\211\345\205\250\351\227\256\351\242\230.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/\345\271\266\345\217\221\345\267\245\345\205\267\347\261\273CountDownLatch\343\200\201CyclicBarrier\343\200\201Semaphore\345\256\236\350\267\265\345\217\212\346\272\220\347\240\201\345\210\206\346\236\220.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/18. \345\271\266\345\217\221\345\267\245\345\205\267\347\261\273CountDownLatch\343\200\201CyclicBarrier\343\200\201Semaphore\345\256\236\350\267\265\345\217\212\346\272\220\347\240\201\345\210\206\346\236\220.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/19. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/2. Java\345\271\266\345\217\221\347\274\226\347\250\213-wait\343\200\201notify\344\275\277\347\224\250\345\205\245\351\227\250.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/2. wait\343\200\201notify\344\275\277\347\224\250\345\205\245\351\227\250.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/wait()\344\270\216sleep()\346\226\271\346\263\225\345\214\272\345\210\253.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/20. wait()\344\270\216sleep()\346\226\271\346\263\225\345\214\272\345\210\253.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/3. Java\345\271\266\345\217\221\347\274\226\347\250\213-\347\272\277\347\250\213\345\256\211\345\205\250\343\200\201\344\274\230\345\205\210\347\272\247\350\256\276\345\256\232.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/3. \347\272\277\347\250\213\345\256\211\345\205\250\343\200\201\344\274\230\345\205\210\347\272\247\350\256\276\345\256\232.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/4. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\267\261\345\205\245\345\211\226\346\236\220volatile\345\205\263\351\224\256\345\255\227.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/4. \346\267\261\345\205\245\345\211\226\346\236\220volatile\345\205\263\351\224\256\345\255\227.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/5. Java\345\271\266\345\217\221\347\274\226\347\250\213-synchronized\344\277\235\350\257\201\347\272\277\347\250\213\345\256\211\345\205\250\347\232\204\345\216\237\347\220\206.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/5. synchronized\344\277\235\350\257\201\347\272\277\347\250\213\345\256\211\345\205\250\347\232\204\345\216\237\347\220\206.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/6. Java\345\271\266\345\217\221\347\274\226\347\250\213-join\346\226\271\346\263\225.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/6. Join\346\226\271\346\263\225.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/7. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\234\254\345\234\260\347\272\277\347\250\213ThreadLocal.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/7. \346\234\254\345\234\260\347\272\277\347\250\213ThreadLocal.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/8. Java\345\271\266\345\217\221\347\274\226\347\250\213-ThreadLocal\345\206\205\345\255\230\346\263\204\346\274\217\351\227\256\351\242\230.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/8. ThreadLocal\345\206\205\345\255\230\346\263\204\346\274\217\351\227\256\351\242\230.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/9. Java\345\271\266\345\217\221\347\274\226\347\250\213-Atomic\345\214\205.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/9. Atomic\345\214\205.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/1. Java\345\217\215\345\260\204---\345\211\215\350\250\200.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/1. \345\211\215\350\250\200.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/10. Java\345\217\215\345\260\204---\346\263\233\345\236\213.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/10. \346\263\233\345\236\213.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/11. Java\345\217\215\345\260\204---\345\212\250\346\200\201\347\261\273\345\212\240\350\275\275\345\222\214\351\207\215\350\275\275.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/11. \345\212\250\346\200\201\347\261\273\345\212\240\350\275\275\345\222\214\351\207\215\350\275\275.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/12. Java\345\217\215\345\260\204---\345\212\250\346\200\201\344\273\243\347\220\206.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/12. \345\212\250\346\200\201\344\273\243\347\220\206.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/2. Java\345\217\215\345\260\204---\345\255\227\346\256\265.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/2. \345\255\227\346\256\265.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/3. Java\345\217\215\345\260\204---\346\225\260\347\273\204.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/3. \346\225\260\347\273\204.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/4. Java\345\217\215\345\260\204---\347\247\201\346\234\211\345\255\227\346\256\265\345\222\214\346\226\271\346\263\225.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/4. \347\247\201\346\234\211\345\255\227\346\256\265\345\222\214\346\226\271\346\263\225.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/5. Java\345\217\215\345\260\204---\346\226\271\346\263\225-Methods.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/5. \346\226\271\346\263\225-Methods.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/6. Java\345\217\215\345\260\204---\350\216\267\345\217\226Getters-and-Setters.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/6. \350\216\267\345\217\226Getters-and-Setters.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/7. Java\345\217\215\345\260\204---\346\236\204\351\200\240\345\207\275\346\225\260.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/7. \346\236\204\351\200\240\345\207\275\346\225\260.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/8. Java\345\217\215\345\260\204---\346\263\250\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/8. \346\263\250\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/9. Java\345\217\215\345\260\204---\347\261\273\345\257\271\350\261\241.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/9. \347\261\273\345\257\271\350\261\241.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/1. JDBC-\346\246\202\350\277\260.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/1. \346\246\202\350\277\260.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/2. JDBC-\351\251\261\345\212\250\347\250\213\345\272\217\347\261\273\345\236\213\345\217\221\345\261\225\345\216\206\347\250\213.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/2. JDBC-\351\251\261\345\212\250\347\250\213\345\272\217\347\261\273\345\236\213\345\217\221\345\261\225\345\216\206\347\250\213.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/3. JDBC-\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\345\222\214\346\225\260\346\215\256\345\242\236\345\210\240\346\224\271\346\237\245.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/3. \346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\345\222\214\346\225\260\346\215\256\345\242\236\345\210\240\346\224\271\346\237\245.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/4. JDBC-ResultSet-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/4. ResultSet-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/5. JDBC-PreparedStatement-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/5. PreparedStatement-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/6. JDBC-\346\211\271\351\207\217\345\244\204\347\220\206sql.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/6. \346\211\271\351\207\217\345\244\204\347\220\206sql.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/7. JDBC-\344\272\213\345\212\241Transaction.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/7. \344\272\213\345\212\241Transaction.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/8. JDBC-CallableStatement-\345\255\230\345\202\250\350\277\207\347\250\213\350\260\203\347\224\250.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/8. CallableStatement-\345\255\230\345\202\250\350\277\207\347\250\213\350\260\203\347\224\250.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/9. JDBC-DatabaseMetaData-\346\225\260\346\215\256\345\272\223\345\205\203\346\225\260\346\215\256.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/9. DatabaseMetaData-\346\225\260\346\215\256\345\272\223\345\205\203\346\225\260\346\215\256.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/1. Java-Servlet-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/1. Servlet-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/10. Java-ServletContext-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/10. ServletContext-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/11. Java-Servlet-web-xml-\351\205\215\347\275\256\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/11. Servlet-web-xml-\351\205\215\347\275\256\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/12. JavaEE-Servlet-\345\271\266\345\217\221\351\227\256\351\242\230.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/12. JavaEE-Servlet-\345\271\266\345\217\221\351\227\256\351\242\230.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/2. Java-HttpServlet-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/2. HttpServlet-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/3. Java-HttpRequest-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/3. HttpRequest-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/4. Java-HttpResponse-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/4. HttpResponse-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/5. Java-HttpSession-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/5. HttpSession-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/6. Java-RequestDispatcher-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/6. RequestDispatcher-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/7. Java-Servlet-Cookie-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/7. Servlet-Cookie-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/8. Java-Servlet-Filter-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/8. Servlet-Filter-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/9. Java-Servlet-GZip-Servlet-Filter-\350\257\246\350\247\243.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/9. Servlet-GZip-Servlet-Filter-\350\257\246\350\247\243.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/1. Java-NIO-\346\216\242\347\264\242.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/1. Java-NIO-\346\216\242\347\264\242.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/10. Java-NIO-ServerSocketChannel.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/10. Java-NIO-ServerSocketChannel.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/11. Java-NIO-Non-blocking-Server.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/11. Java-NIO-Non-blocking-Server.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/12. Java-NIO-DatagramChannel.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/12. Java-NIO-DatagramChannel.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/13. Java-NIO-Pipe(\347\256\241\351\201\223).md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/13. Java-NIO-Pipe(\347\256\241\351\201\223).md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/14. Java-NIO-NIO\345\222\214IO\347\232\204\345\214\272\345\210\253\345\222\214\351\200\202\347\224\250\345\234\272\346\231\257\345\210\206\346\236\220.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/14. Java-NIO-NIO\345\222\214IO\347\232\204\345\214\272\345\210\253\345\222\214\351\200\202\347\224\250\345\234\272\346\231\257\345\210\206\346\236\220.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/15. Java-NIO-Path\347\232\204\347\224\250\346\263\225.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/15. Java-NIO-Path\347\232\204\347\224\250\346\263\225.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/16. Java-NIO-Files.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/16. Java-NIO-Files.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/17. Java-NIO-AsynchronousFileChannel\345\274\202\346\255\245\346\226\207\344\273\266\351\200\232\351\201\223.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/17. Java-NIO-AsynchronousFileChannel\345\274\202\346\255\245\346\226\207\344\273\266\351\200\232\351\201\223.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/18. Java-NIO-\345\256\236\344\276\213.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/18. Java-NIO-\345\256\236\344\276\213.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/19. BIO\343\200\201NIO\343\200\201AIO\345\214\272\345\210\253.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/19. BIO\343\200\201NIO\343\200\201AIO\345\214\272\345\210\253.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/2. Java-NIO-\346\246\202\345\277\265.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/2. Java-NIO-\346\246\202\345\277\265.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/2. Java-NIO-\347\256\200\344\273\213.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/2. Java-NIO-\347\256\200\344\273\213.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/3. Java-NIO-Channel-\351\200\232\351\201\223.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/3. Java-NIO-Channel-\351\200\232\351\201\223.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/4. Java-NIO-Buffer.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/4. Java-NIO-Buffer.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/5. Java-NIO-Scatter---Gather.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/5. Java-NIO-Scatter---Gather.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/6. Java-NIO-Channel-\344\271\213\351\227\264\347\232\204\350\275\254\346\215\242(\344\274\240\350\276\223).md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/6. Java-NIO-Channel-\344\271\213\351\227\264\347\232\204\350\275\254\346\215\242(\344\274\240\350\276\223).md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/7. Java-NIO-Selector.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/7. Java-NIO-Selector.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/8. Java-NIO-FileChannel.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/8. Java-NIO-FileChannel.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/9. Java-NIO-SocketChannel.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/9. Java-NIO-SocketChannel.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-LocalDate\347\261\273.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-LocalDate\347\261\273.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-lambda.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-lambda.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-stream.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-stream.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/1. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-\345\210\235\350\257\206\347\257\207.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/1. \345\210\235\350\257\206\347\257\207.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/2. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-Lambda\350\241\250\350\276\276\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/2. Lambda\350\241\250\350\276\276\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/3. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-Stream\346\265\201.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/3. Stream\346\265\201.md" (100%) rename "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\270\200).md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\270\200).md" (100%) rename "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\270\211).md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\270\211).md" (100%) rename "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\272\214).md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\272\214).md" (100%) rename "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\347\261\273\345\212\240\350\275\275\345\231\250\351\235\242\350\257\225(\344\270\200).md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\347\261\273\345\212\240\350\275\275\345\231\250/\347\261\273\345\212\240\350\275\275\345\231\250.md" (100%) rename "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\347\275\221\347\273\234(\344\270\200).md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234/\347\275\221\347\273\234(\344\270\200).md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/1. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\267\245\345\216\202\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/1. \345\267\245\345\216\202\346\250\241\345\274\217.md" (100%) create mode 100644 "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/10. \351\200\202\351\205\215\345\231\250\346\250\241\345\274\217.md" rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/2. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\346\212\275\350\261\241\345\267\245\345\216\202\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/2. \346\212\275\350\261\241\345\267\245\345\216\202\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/3. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\215\225\344\276\213\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/3. \345\215\225\344\276\213\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/4. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\273\272\351\200\240\350\200\205\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/4. \345\273\272\351\200\240\350\200\205\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/5. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\216\237\345\236\213\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/5. \345\216\237\345\236\213\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/6. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\346\250\241\346\235\277\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/6. \346\250\241\346\235\277\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/7. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\347\255\226\347\225\245\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/7. \347\255\226\347\225\245\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/8. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\247\224\346\264\276\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/8. \345\247\224\346\264\276\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/9. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-Java\344\270\244\347\247\215\344\273\243\347\220\206\346\250\241\345\274\217.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/9. \344\273\243\347\220\206\346\250\241\345\274\217.md" (100%) rename "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\345\205\255\345\244\247\350\256\276\350\256\241\345\216\237\345\210\231.md" => "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/\345\205\255\345\244\247\350\256\276\350\256\241\345\216\237\345\210\231.md" (100%) rename "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/1. ArrayList\346\272\220\347\240\201\345\210\206\346\236\220.md" => "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/1. ArrayList\346\272\220\347\240\201\345\210\206\346\236\220.md" (100%) rename "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/2. HashMap\346\272\220\347\240\201\345\210\206\346\236\220.md" => "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/2. HashMap\346\272\220\347\240\201\345\210\206\346\236\220.md" (100%) rename "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/3. LinkedList\346\272\220\347\240\201\345\210\206\346\236\220-md.md" => "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/3. LinkedList\346\272\220\347\240\201\345\210\206\346\236\220-md.md" (100%) rename "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/4. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" => "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/4. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" (100%) delete mode 100644 "HR\351\235\242\350\257\225\346\212\200\345\267\247/HR\351\200\232\345\270\270\346\217\220\347\232\204\344\270\200\344\272\233\351\235\242\350\257\225\351\227\256\351\242\230.md" rename "\345\274\200\346\272\220\351\241\271\347\233\256/\345\274\200\346\272\220\351\241\271\347\233\256.md" => "\346\210\221\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\345\274\200\346\272\220\351\241\271\347\233\256.md" (100%) diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/1. JDK\343\200\201JRE\343\200\201JVM\347\232\204\345\214\272\345\210\253\344\270\216\350\201\224\347\263\273.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/1. JDK\343\200\201JRE\343\200\201JVM\347\232\204\345\214\272\345\210\253\344\270\216\350\201\224\347\263\273.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/1. JDK\343\200\201JRE\343\200\201JVM\347\232\204\345\214\272\345\210\253\344\270\216\350\201\224\347\263\273.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/1. JDK\343\200\201JRE\343\200\201JVM\347\232\204\345\214\272\345\210\253\344\270\216\350\201\224\347\263\273.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/10. JVM-\345\210\206\346\236\220\345\267\245\345\205\267\346\246\202\350\277\260.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/10. JVM-\345\210\206\346\236\220\345\267\245\345\205\267\346\246\202\350\277\260.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/10. JVM-\345\210\206\346\236\220\345\267\245\345\205\267\346\246\202\350\277\260.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/10. JVM-\345\210\206\346\236\220\345\267\245\345\205\267\346\246\202\350\277\260.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/2. JVM-\347\261\273\345\212\240\350\275\275\346\234\272\345\210\266.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/2. JVM-\347\261\273\345\212\240\350\275\275\346\234\272\345\210\266.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/2. JVM-\347\261\273\345\212\240\350\275\275\346\234\272\345\210\266.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/2. JVM-\347\261\273\345\212\240\350\275\275\346\234\272\345\210\266.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/3. JVM-\345\206\205\345\255\230\347\256\241\347\220\206.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/3. JVM-\345\206\205\345\255\230\347\256\241\347\220\206.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/3. JVM-\345\206\205\345\255\230\347\256\241\347\220\206.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/3. JVM-\345\206\205\345\255\230\347\256\241\347\220\206.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/4. JVM-\347\250\213\345\272\217\350\256\241\346\225\260\345\231\250.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/4. JVM-\347\250\213\345\272\217\350\256\241\346\225\260\345\231\250.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/4. JVM-\347\250\213\345\272\217\350\256\241\346\225\260\345\231\250.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/4. JVM-\347\250\213\345\272\217\350\256\241\346\225\260\345\231\250.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/5. JVM-\350\277\220\350\241\214\346\227\266\346\240\210\345\270\247\347\273\223\346\236\204.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/5. JVM-\350\277\220\350\241\214\346\227\266\346\240\210\345\270\247\347\273\223\346\236\204.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/5. JVM-\350\277\220\350\241\214\346\227\266\346\240\210\345\270\247\347\273\223\346\236\204.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/5. JVM-\350\277\220\350\241\214\346\227\266\346\240\210\345\270\247\347\273\223\346\236\204.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/6. JVM-\346\226\271\346\263\225\350\260\203\347\224\250.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/6. JVM-\346\226\271\346\263\225\350\260\203\347\224\250.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/6. JVM-\346\226\271\346\263\225\350\260\203\347\224\250.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/6. JVM-\346\226\271\346\263\225\350\260\203\347\224\250.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/7. JVM-\350\247\206\350\247\222\347\234\213\345\257\271\350\261\241\345\210\233\345\273\272.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/7. JVM-\350\247\206\350\247\222\347\234\213\345\257\271\350\261\241\345\210\233\345\273\272.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/7. JVM-\350\247\206\350\247\222\347\234\213\345\257\271\350\261\241\345\210\233\345\273\272.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/7. JVM-\350\247\206\350\247\222\347\234\213\345\257\271\350\261\241\345\210\233\345\273\272.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/8. JVM-\345\236\203\345\234\276\345\233\236\346\224\266\346\234\272\345\210\266.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/8. JVM-\345\236\203\345\234\276\345\233\236\346\224\266\346\234\272\345\210\266.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/8. JVM-\345\236\203\345\234\276\345\233\236\346\224\266\346\234\272\345\210\266.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/8. JVM-\345\236\203\345\234\276\345\233\236\346\224\266\346\234\272\345\210\266.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/9. JVM-Class\346\226\207\344\273\266\347\273\223\346\236\204&\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/9. JVM-Class\346\226\207\344\273\266\347\273\223\346\236\204&\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/9. JVM-Class\346\226\207\344\273\266\347\273\223\346\236\204&\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/9. JVM-Class\346\226\207\344\273\266\347\273\223\346\236\204&\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-ZGC.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-ZGC.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-ZGC.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-ZGC.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-\344\270\211\347\247\215\345\270\270\351\207\217\346\261\240.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-\344\270\211\347\247\215\345\270\270\351\207\217\346\261\240.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-\344\270\211\347\247\215\345\270\270\351\207\217\346\261\240.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-\344\270\211\347\247\215\345\270\270\351\207\217\346\261\240.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-\345\206\205\345\255\230\346\263\204\346\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-\345\206\205\345\255\230\346\263\204\346\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/JVM-\345\206\205\345\255\230\346\263\204\346\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM-\345\206\205\345\255\230\346\263\204\346\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/JVM\351\235\242\350\257\225.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/JVM\351\235\242\350\257\225.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/JVM.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/\344\273\216JVM\350\247\206\350\247\222\345\210\206\346\236\220try-catch\346\200\247\350\203\275.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\344\273\216JVM\350\247\206\350\247\222\345\210\206\346\236\220try-catch\346\200\247\350\203\275.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/1. JVM\347\257\207/\344\273\216JVM\350\247\206\350\247\222\345\210\206\346\236\220try-catch\346\200\247\350\203\275.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\344\273\216JVM\350\247\206\350\247\222\345\210\206\346\236\220try-catch\346\200\247\350\203\275.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/1. Java\345\271\266\345\217\221\347\274\226\347\250\213-\347\272\277\347\250\213\347\232\204\345\220\204\347\247\215\345\210\233\345\273\272\346\226\271\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/1. \347\272\277\347\250\213\347\232\204\345\220\204\347\247\215\345\210\233\345\273\272\346\226\271\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/1. Java\345\271\266\345\217\221\347\274\226\347\250\213-\347\272\277\347\250\213\347\232\204\345\220\204\347\247\215\345\210\233\345\273\272\346\226\271\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/1. \347\272\277\347\250\213\347\232\204\345\220\204\347\247\215\345\210\233\345\273\272\346\226\271\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/10. Java\345\271\266\345\217\221\347\274\226\347\250\213-AQS.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/10. AQS.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/10. Java\345\271\266\345\217\221\347\274\226\347\250\213-AQS.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/10. AQS.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/11. Java\345\271\266\345\217\221\347\274\226\347\250\213-AQS\345\205\245\351\227\250&\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245\351\224\201.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/11. AQS\345\205\245\351\227\250&\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245\351\224\201.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/11. Java\345\271\266\345\217\221\347\274\226\347\250\213-AQS\345\205\245\351\227\250&\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245\351\224\201.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/11. AQS\345\205\245\351\227\250&\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245\351\224\201.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/12. Java\345\271\266\345\217\221\347\274\226\347\250\213-Condition.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/12. Condition.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/12. Java\345\271\266\345\217\221\347\274\226\347\250\213-Condition.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/12. Condition.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/13. Java\345\244\232\347\272\277\347\250\213-\344\272\222\346\226\245\351\224\201-\345\205\261\344\272\253\351\224\201-\350\257\273\345\206\231\351\224\201-\345\277\253\351\200\237\345\205\245\351\227\250.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/13. \344\272\222\346\226\245\351\224\201-\345\205\261\344\272\253\351\224\201-\350\257\273\345\206\231\351\224\201.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/13. Java\345\244\232\347\272\277\347\250\213-\344\272\222\346\226\245\351\224\201-\345\205\261\344\272\253\351\224\201-\350\257\273\345\206\231\351\224\201-\345\277\253\351\200\237\345\205\245\351\227\250.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/13. \344\272\222\346\226\245\351\224\201-\345\205\261\344\272\253\351\224\201-\350\257\273\345\206\231\351\224\201.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/14. Java\345\244\232\347\272\277\347\250\213-\351\224\201\351\231\215\347\272\247.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/14. \351\224\201\351\231\215\347\272\247.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/14. Java\345\244\232\347\272\277\347\250\213-\351\224\201\351\231\215\347\272\247.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/14. \351\224\201\351\231\215\347\272\247.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/15. Java\345\271\266\345\217\221\347\274\226\347\250\213-\345\205\254\345\271\263\351\224\201\345\222\214\351\235\236\345\205\254\345\271\263\351\224\201\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/15. \345\205\254\345\271\263\351\224\201\345\222\214\351\235\236\345\205\254\345\271\263\351\224\201\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/15. Java\345\271\266\345\217\221\347\274\226\347\250\213-\345\205\254\345\271\263\351\224\201\345\222\214\351\235\236\345\205\254\345\271\263\351\224\201\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/15. \345\205\254\345\271\263\351\224\201\345\222\214\351\235\236\345\205\254\345\271\263\351\224\201\347\232\204\344\270\200\344\272\233\346\200\235\350\200\203.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/16. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\211\213\345\212\250\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245Lock.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/16. \346\211\213\345\212\250\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245Lock.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/16. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\211\213\345\212\250\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245Lock.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/16. \346\211\213\345\212\250\345\256\236\347\216\260\345\217\257\351\207\215\345\205\245Lock.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/17. Java\345\271\266\345\217\221\347\274\226\347\250\213-\345\215\225\344\276\213\346\250\241\345\274\217\347\272\277\347\250\213\345\256\211\345\205\250\351\227\256\351\242\230.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/17. \345\215\225\344\276\213\346\250\241\345\274\217\347\272\277\347\250\213\345\256\211\345\205\250\351\227\256\351\242\230.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/17. Java\345\271\266\345\217\221\347\274\226\347\250\213-\345\215\225\344\276\213\346\250\241\345\274\217\347\272\277\347\250\213\345\256\211\345\205\250\351\227\256\351\242\230.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/17. \345\215\225\344\276\213\346\250\241\345\274\217\347\272\277\347\250\213\345\256\211\345\205\250\351\227\256\351\242\230.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/\345\271\266\345\217\221\345\267\245\345\205\267\347\261\273CountDownLatch\343\200\201CyclicBarrier\343\200\201Semaphore\345\256\236\350\267\265\345\217\212\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/18. \345\271\266\345\217\221\345\267\245\345\205\267\347\261\273CountDownLatch\343\200\201CyclicBarrier\343\200\201Semaphore\345\256\236\350\267\265\345\217\212\346\272\220\347\240\201\345\210\206\346\236\220.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/\345\271\266\345\217\221\345\267\245\345\205\267\347\261\273CountDownLatch\343\200\201CyclicBarrier\343\200\201Semaphore\345\256\236\350\267\265\345\217\212\346\272\220\347\240\201\345\210\206\346\236\220.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/18. \345\271\266\345\217\221\345\267\245\345\205\267\347\261\273CountDownLatch\343\200\201CyclicBarrier\343\200\201Semaphore\345\256\236\350\267\265\345\217\212\346\272\220\347\240\201\345\210\206\346\236\220.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/19. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/19. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/2. Java\345\271\266\345\217\221\347\274\226\347\250\213-wait\343\200\201notify\344\275\277\347\224\250\345\205\245\351\227\250.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/2. wait\343\200\201notify\344\275\277\347\224\250\345\205\245\351\227\250.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/2. Java\345\271\266\345\217\221\347\274\226\347\250\213-wait\343\200\201notify\344\275\277\347\224\250\345\205\245\351\227\250.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/2. wait\343\200\201notify\344\275\277\347\224\250\345\205\245\351\227\250.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/wait()\344\270\216sleep()\346\226\271\346\263\225\345\214\272\345\210\253.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/20. wait()\344\270\216sleep()\346\226\271\346\263\225\345\214\272\345\210\253.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/wait()\344\270\216sleep()\346\226\271\346\263\225\345\214\272\345\210\253.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/20. wait()\344\270\216sleep()\346\226\271\346\263\225\345\214\272\345\210\253.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/3. Java\345\271\266\345\217\221\347\274\226\347\250\213-\347\272\277\347\250\213\345\256\211\345\205\250\343\200\201\344\274\230\345\205\210\347\272\247\350\256\276\345\256\232.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/3. \347\272\277\347\250\213\345\256\211\345\205\250\343\200\201\344\274\230\345\205\210\347\272\247\350\256\276\345\256\232.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/3. Java\345\271\266\345\217\221\347\274\226\347\250\213-\347\272\277\347\250\213\345\256\211\345\205\250\343\200\201\344\274\230\345\205\210\347\272\247\350\256\276\345\256\232.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/3. \347\272\277\347\250\213\345\256\211\345\205\250\343\200\201\344\274\230\345\205\210\347\272\247\350\256\276\345\256\232.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/4. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\267\261\345\205\245\345\211\226\346\236\220volatile\345\205\263\351\224\256\345\255\227.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/4. \346\267\261\345\205\245\345\211\226\346\236\220volatile\345\205\263\351\224\256\345\255\227.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/4. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\267\261\345\205\245\345\211\226\346\236\220volatile\345\205\263\351\224\256\345\255\227.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/4. \346\267\261\345\205\245\345\211\226\346\236\220volatile\345\205\263\351\224\256\345\255\227.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/5. Java\345\271\266\345\217\221\347\274\226\347\250\213-synchronized\344\277\235\350\257\201\347\272\277\347\250\213\345\256\211\345\205\250\347\232\204\345\216\237\347\220\206.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/5. synchronized\344\277\235\350\257\201\347\272\277\347\250\213\345\256\211\345\205\250\347\232\204\345\216\237\347\220\206.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/5. Java\345\271\266\345\217\221\347\274\226\347\250\213-synchronized\344\277\235\350\257\201\347\272\277\347\250\213\345\256\211\345\205\250\347\232\204\345\216\237\347\220\206.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/5. synchronized\344\277\235\350\257\201\347\272\277\347\250\213\345\256\211\345\205\250\347\232\204\345\216\237\347\220\206.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/6. Java\345\271\266\345\217\221\347\274\226\347\250\213-join\346\226\271\346\263\225.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/6. Join\346\226\271\346\263\225.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/6. Java\345\271\266\345\217\221\347\274\226\347\250\213-join\346\226\271\346\263\225.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/6. Join\346\226\271\346\263\225.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/7. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\234\254\345\234\260\347\272\277\347\250\213ThreadLocal.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/7. \346\234\254\345\234\260\347\272\277\347\250\213ThreadLocal.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/7. Java\345\271\266\345\217\221\347\274\226\347\250\213-\346\234\254\345\234\260\347\272\277\347\250\213ThreadLocal.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/7. \346\234\254\345\234\260\347\272\277\347\250\213ThreadLocal.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/8. Java\345\271\266\345\217\221\347\274\226\347\250\213-ThreadLocal\345\206\205\345\255\230\346\263\204\346\274\217\351\227\256\351\242\230.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/8. ThreadLocal\345\206\205\345\255\230\346\263\204\346\274\217\351\227\256\351\242\230.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/8. Java\345\271\266\345\217\221\347\274\226\347\250\213-ThreadLocal\345\206\205\345\255\230\346\263\204\346\274\217\351\227\256\351\242\230.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/8. ThreadLocal\345\206\205\345\255\230\346\263\204\346\274\217\351\227\256\351\242\230.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/9. Java\345\271\266\345\217\221\347\274\226\347\250\213-Atomic\345\214\205.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/9. Atomic\345\214\205.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/2. \345\271\266\345\217\221\347\274\226\347\250\213\347\257\207/9. Java\345\271\266\345\217\221\347\274\226\347\250\213-Atomic\345\214\205.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/2. \345\271\266\345\217\221\347\274\226\347\250\213/9. Atomic\345\214\205.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/1. Java\345\217\215\345\260\204---\345\211\215\350\250\200.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/1. \345\211\215\350\250\200.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/1. Java\345\217\215\345\260\204---\345\211\215\350\250\200.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/1. \345\211\215\350\250\200.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/10. Java\345\217\215\345\260\204---\346\263\233\345\236\213.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/10. \346\263\233\345\236\213.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/10. Java\345\217\215\345\260\204---\346\263\233\345\236\213.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/10. \346\263\233\345\236\213.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/11. Java\345\217\215\345\260\204---\345\212\250\346\200\201\347\261\273\345\212\240\350\275\275\345\222\214\351\207\215\350\275\275.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/11. \345\212\250\346\200\201\347\261\273\345\212\240\350\275\275\345\222\214\351\207\215\350\275\275.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/11. Java\345\217\215\345\260\204---\345\212\250\346\200\201\347\261\273\345\212\240\350\275\275\345\222\214\351\207\215\350\275\275.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/11. \345\212\250\346\200\201\347\261\273\345\212\240\350\275\275\345\222\214\351\207\215\350\275\275.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/12. Java\345\217\215\345\260\204---\345\212\250\346\200\201\344\273\243\347\220\206.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/12. \345\212\250\346\200\201\344\273\243\347\220\206.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/12. Java\345\217\215\345\260\204---\345\212\250\346\200\201\344\273\243\347\220\206.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/12. \345\212\250\346\200\201\344\273\243\347\220\206.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/2. Java\345\217\215\345\260\204---\345\255\227\346\256\265.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/2. \345\255\227\346\256\265.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/2. Java\345\217\215\345\260\204---\345\255\227\346\256\265.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/2. \345\255\227\346\256\265.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/3. Java\345\217\215\345\260\204---\346\225\260\347\273\204.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/3. \346\225\260\347\273\204.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/3. Java\345\217\215\345\260\204---\346\225\260\347\273\204.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/3. \346\225\260\347\273\204.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/4. Java\345\217\215\345\260\204---\347\247\201\346\234\211\345\255\227\346\256\265\345\222\214\346\226\271\346\263\225.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/4. \347\247\201\346\234\211\345\255\227\346\256\265\345\222\214\346\226\271\346\263\225.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/4. Java\345\217\215\345\260\204---\347\247\201\346\234\211\345\255\227\346\256\265\345\222\214\346\226\271\346\263\225.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/4. \347\247\201\346\234\211\345\255\227\346\256\265\345\222\214\346\226\271\346\263\225.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/5. Java\345\217\215\345\260\204---\346\226\271\346\263\225-Methods.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/5. \346\226\271\346\263\225-Methods.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/5. Java\345\217\215\345\260\204---\346\226\271\346\263\225-Methods.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/5. \346\226\271\346\263\225-Methods.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/6. Java\345\217\215\345\260\204---\350\216\267\345\217\226Getters-and-Setters.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/6. \350\216\267\345\217\226Getters-and-Setters.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/6. Java\345\217\215\345\260\204---\350\216\267\345\217\226Getters-and-Setters.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/6. \350\216\267\345\217\226Getters-and-Setters.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/7. Java\345\217\215\345\260\204---\346\236\204\351\200\240\345\207\275\346\225\260.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/7. \346\236\204\351\200\240\345\207\275\346\225\260.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/7. Java\345\217\215\345\260\204---\346\236\204\351\200\240\345\207\275\346\225\260.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/7. \346\236\204\351\200\240\345\207\275\346\225\260.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/8. Java\345\217\215\345\260\204---\346\263\250\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/8. \346\263\250\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/8. Java\345\217\215\345\260\204---\346\263\250\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/8. \346\263\250\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/9. Java\345\217\215\345\260\204---\347\261\273\345\257\271\350\261\241.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/9. \347\261\273\345\257\271\350\261\241.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/3. \345\217\215\345\260\204\347\257\207/9. Java\345\217\215\345\260\204---\347\261\273\345\257\271\350\261\241.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/3. \345\217\215\345\260\204/9. \347\261\273\345\257\271\350\261\241.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/1. JDBC-\346\246\202\350\277\260.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/1. \346\246\202\350\277\260.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/1. JDBC-\346\246\202\350\277\260.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/1. \346\246\202\350\277\260.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/2. JDBC-\351\251\261\345\212\250\347\250\213\345\272\217\347\261\273\345\236\213\345\217\221\345\261\225\345\216\206\347\250\213.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/2. JDBC-\351\251\261\345\212\250\347\250\213\345\272\217\347\261\273\345\236\213\345\217\221\345\261\225\345\216\206\347\250\213.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/2. JDBC-\351\251\261\345\212\250\347\250\213\345\272\217\347\261\273\345\236\213\345\217\221\345\261\225\345\216\206\347\250\213.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/2. JDBC-\351\251\261\345\212\250\347\250\213\345\272\217\347\261\273\345\236\213\345\217\221\345\261\225\345\216\206\347\250\213.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/3. JDBC-\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\345\222\214\346\225\260\346\215\256\345\242\236\345\210\240\346\224\271\346\237\245.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/3. \346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\345\222\214\346\225\260\346\215\256\345\242\236\345\210\240\346\224\271\346\237\245.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/3. JDBC-\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\345\222\214\346\225\260\346\215\256\345\242\236\345\210\240\346\224\271\346\237\245.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/3. \346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\345\222\214\346\225\260\346\215\256\345\242\236\345\210\240\346\224\271\346\237\245.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/4. JDBC-ResultSet-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/4. ResultSet-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/4. JDBC-ResultSet-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/4. ResultSet-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/5. JDBC-PreparedStatement-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/5. PreparedStatement-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/5. JDBC-PreparedStatement-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/5. PreparedStatement-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/6. JDBC-\346\211\271\351\207\217\345\244\204\347\220\206sql.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/6. \346\211\271\351\207\217\345\244\204\347\220\206sql.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/6. JDBC-\346\211\271\351\207\217\345\244\204\347\220\206sql.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/6. \346\211\271\351\207\217\345\244\204\347\220\206sql.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/7. JDBC-\344\272\213\345\212\241Transaction.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/7. \344\272\213\345\212\241Transaction.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/7. JDBC-\344\272\213\345\212\241Transaction.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/7. \344\272\213\345\212\241Transaction.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/8. JDBC-CallableStatement-\345\255\230\345\202\250\350\277\207\347\250\213\350\260\203\347\224\250.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/8. CallableStatement-\345\255\230\345\202\250\350\277\207\347\250\213\350\260\203\347\224\250.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/8. JDBC-CallableStatement-\345\255\230\345\202\250\350\277\207\347\250\213\350\260\203\347\224\250.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/8. CallableStatement-\345\255\230\345\202\250\350\277\207\347\250\213\350\260\203\347\224\250.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/9. JDBC-DatabaseMetaData-\346\225\260\346\215\256\345\272\223\345\205\203\346\225\260\346\215\256.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/9. DatabaseMetaData-\346\225\260\346\215\256\345\272\223\345\205\203\346\225\260\346\215\256.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/4. JDBC\347\257\207/9. JDBC-DatabaseMetaData-\346\225\260\346\215\256\345\272\223\345\205\203\346\225\260\346\215\256.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/4. JDBC/9. DatabaseMetaData-\346\225\260\346\215\256\345\272\223\345\205\203\346\225\260\346\215\256.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/1. Java-Servlet-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/1. Servlet-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/1. Java-Servlet-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/1. Servlet-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/10. Java-ServletContext-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/10. ServletContext-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/10. Java-ServletContext-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/10. ServletContext-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/11. Java-Servlet-web-xml-\351\205\215\347\275\256\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/11. Servlet-web-xml-\351\205\215\347\275\256\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/11. Java-Servlet-web-xml-\351\205\215\347\275\256\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/11. Servlet-web-xml-\351\205\215\347\275\256\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/12. JavaEE-Servlet-\345\271\266\345\217\221\351\227\256\351\242\230.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/12. JavaEE-Servlet-\345\271\266\345\217\221\351\227\256\351\242\230.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/12. JavaEE-Servlet-\345\271\266\345\217\221\351\227\256\351\242\230.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/12. JavaEE-Servlet-\345\271\266\345\217\221\351\227\256\351\242\230.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/2. Java-HttpServlet-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/2. HttpServlet-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/2. Java-HttpServlet-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/2. HttpServlet-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/3. Java-HttpRequest-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/3. HttpRequest-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/3. Java-HttpRequest-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/3. HttpRequest-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/4. Java-HttpResponse-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/4. HttpResponse-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/4. Java-HttpResponse-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/4. HttpResponse-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/5. Java-HttpSession-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/5. HttpSession-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/5. Java-HttpSession-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/5. HttpSession-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/6. Java-RequestDispatcher-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/6. RequestDispatcher-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/6. Java-RequestDispatcher-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/6. RequestDispatcher-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/7. Java-Servlet-Cookie-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/7. Servlet-Cookie-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/7. Java-Servlet-Cookie-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/7. Servlet-Cookie-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/8. Java-Servlet-Filter-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/8. Servlet-Filter-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/8. Java-Servlet-Filter-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/8. Servlet-Filter-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/9. Java-Servlet-GZip-Servlet-Filter-\350\257\246\350\247\243.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/9. Servlet-GZip-Servlet-Filter-\350\257\246\350\247\243.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/5. Servlet\347\257\207/9. Java-Servlet-GZip-Servlet-Filter-\350\257\246\350\247\243.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/5. Servlet/9. Servlet-GZip-Servlet-Filter-\350\257\246\350\247\243.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/1. Java-NIO-\346\216\242\347\264\242.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/1. Java-NIO-\346\216\242\347\264\242.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/1. Java-NIO-\346\216\242\347\264\242.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/1. Java-NIO-\346\216\242\347\264\242.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/10. Java-NIO-ServerSocketChannel.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/10. Java-NIO-ServerSocketChannel.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/10. Java-NIO-ServerSocketChannel.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/10. Java-NIO-ServerSocketChannel.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/11. Java-NIO-Non-blocking-Server.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/11. Java-NIO-Non-blocking-Server.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/11. Java-NIO-Non-blocking-Server.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/11. Java-NIO-Non-blocking-Server.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/12. Java-NIO-DatagramChannel.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/12. Java-NIO-DatagramChannel.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/12. Java-NIO-DatagramChannel.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/12. Java-NIO-DatagramChannel.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/13. Java-NIO-Pipe(\347\256\241\351\201\223).md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/13. Java-NIO-Pipe(\347\256\241\351\201\223).md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/13. Java-NIO-Pipe(\347\256\241\351\201\223).md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/13. Java-NIO-Pipe(\347\256\241\351\201\223).md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/14. Java-NIO-NIO\345\222\214IO\347\232\204\345\214\272\345\210\253\345\222\214\351\200\202\347\224\250\345\234\272\346\231\257\345\210\206\346\236\220.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/14. Java-NIO-NIO\345\222\214IO\347\232\204\345\214\272\345\210\253\345\222\214\351\200\202\347\224\250\345\234\272\346\231\257\345\210\206\346\236\220.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/14. Java-NIO-NIO\345\222\214IO\347\232\204\345\214\272\345\210\253\345\222\214\351\200\202\347\224\250\345\234\272\346\231\257\345\210\206\346\236\220.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/14. Java-NIO-NIO\345\222\214IO\347\232\204\345\214\272\345\210\253\345\222\214\351\200\202\347\224\250\345\234\272\346\231\257\345\210\206\346\236\220.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/15. Java-NIO-Path\347\232\204\347\224\250\346\263\225.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/15. Java-NIO-Path\347\232\204\347\224\250\346\263\225.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/15. Java-NIO-Path\347\232\204\347\224\250\346\263\225.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/15. Java-NIO-Path\347\232\204\347\224\250\346\263\225.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/16. Java-NIO-Files.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/16. Java-NIO-Files.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/16. Java-NIO-Files.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/16. Java-NIO-Files.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/17. Java-NIO-AsynchronousFileChannel\345\274\202\346\255\245\346\226\207\344\273\266\351\200\232\351\201\223.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/17. Java-NIO-AsynchronousFileChannel\345\274\202\346\255\245\346\226\207\344\273\266\351\200\232\351\201\223.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/17. Java-NIO-AsynchronousFileChannel\345\274\202\346\255\245\346\226\207\344\273\266\351\200\232\351\201\223.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/17. Java-NIO-AsynchronousFileChannel\345\274\202\346\255\245\346\226\207\344\273\266\351\200\232\351\201\223.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/18. Java-NIO-\345\256\236\344\276\213.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/18. Java-NIO-\345\256\236\344\276\213.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/18. Java-NIO-\345\256\236\344\276\213.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/18. Java-NIO-\345\256\236\344\276\213.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/19. BIO\343\200\201NIO\343\200\201AIO\345\214\272\345\210\253.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/19. BIO\343\200\201NIO\343\200\201AIO\345\214\272\345\210\253.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/19. BIO\343\200\201NIO\343\200\201AIO\345\214\272\345\210\253.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/19. BIO\343\200\201NIO\343\200\201AIO\345\214\272\345\210\253.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/2. Java-NIO-\346\246\202\345\277\265.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/2. Java-NIO-\346\246\202\345\277\265.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/2. Java-NIO-\346\246\202\345\277\265.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/2. Java-NIO-\346\246\202\345\277\265.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/2. Java-NIO-\347\256\200\344\273\213.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/2. Java-NIO-\347\256\200\344\273\213.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/2. Java-NIO-\347\256\200\344\273\213.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/2. Java-NIO-\347\256\200\344\273\213.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/3. Java-NIO-Channel-\351\200\232\351\201\223.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/3. Java-NIO-Channel-\351\200\232\351\201\223.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/3. Java-NIO-Channel-\351\200\232\351\201\223.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/3. Java-NIO-Channel-\351\200\232\351\201\223.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/4. Java-NIO-Buffer.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/4. Java-NIO-Buffer.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/4. Java-NIO-Buffer.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/4. Java-NIO-Buffer.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/5. Java-NIO-Scatter---Gather.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/5. Java-NIO-Scatter---Gather.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/5. Java-NIO-Scatter---Gather.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/5. Java-NIO-Scatter---Gather.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/6. Java-NIO-Channel-\344\271\213\351\227\264\347\232\204\350\275\254\346\215\242(\344\274\240\350\276\223).md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/6. Java-NIO-Channel-\344\271\213\351\227\264\347\232\204\350\275\254\346\215\242(\344\274\240\350\276\223).md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/6. Java-NIO-Channel-\344\271\213\351\227\264\347\232\204\350\275\254\346\215\242(\344\274\240\350\276\223).md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/6. Java-NIO-Channel-\344\271\213\351\227\264\347\232\204\350\275\254\346\215\242(\344\274\240\350\276\223).md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/7. Java-NIO-Selector.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/7. Java-NIO-Selector.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/7. Java-NIO-Selector.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/7. Java-NIO-Selector.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/8. Java-NIO-FileChannel.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/8. Java-NIO-FileChannel.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/8. Java-NIO-FileChannel.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/8. Java-NIO-FileChannel.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/9. Java-NIO-SocketChannel.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/9. Java-NIO-SocketChannel.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java-NIO/9. Java-NIO-SocketChannel.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java-NIO/9. Java-NIO-SocketChannel.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-LocalDate\347\261\273.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-LocalDate\347\261\273.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-LocalDate\347\261\273.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-LocalDate\347\261\273.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-lambda.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-lambda.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-lambda.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-lambda.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-stream.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-stream.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java8/java8-stream.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java8/java8-stream.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/1. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-\345\210\235\350\257\206\347\257\207.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/1. \345\210\235\350\257\206\347\257\207.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/1. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-\345\210\235\350\257\206\347\257\207.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/1. \345\210\235\350\257\206\347\257\207.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/2. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-Lambda\350\241\250\350\276\276\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/2. Lambda\350\241\250\350\276\276\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/2. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-Lambda\350\241\250\350\276\276\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/2. Lambda\350\241\250\350\276\276\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/3. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-Stream\346\265\201.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/3. Stream\346\265\201.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/3. Java-\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213-Stream\346\265\201.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\207\275\346\225\260\345\274\217\347\274\226\347\250\213/3. Stream\346\265\201.md" diff --git "a/2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\270\200).md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\270\200).md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\270\200).md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\270\200).md" diff --git "a/2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\270\211).md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\270\211).md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\270\211).md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\270\211).md" diff --git "a/2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\272\214).md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\272\214).md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/Java\351\235\242\350\257\225\351\242\230\346\200\273\347\273\223\344\271\213Java\345\237\272\347\241\200(\344\272\214).md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/Java\345\237\272\347\241\200\346\200\273\347\273\223(\344\272\214).md" diff --git "a/2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\347\261\273\345\212\240\350\275\275\345\231\250\351\235\242\350\257\225(\344\270\200).md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\347\261\273\345\212\240\350\275\275\345\231\250/\347\261\273\345\212\240\350\275\275\345\231\250.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\347\261\273\345\212\240\350\275\275\345\231\250\351\235\242\350\257\225(\344\270\200).md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\347\261\273\345\212\240\350\275\275\345\231\250/\347\261\273\345\212\240\350\275\275\345\231\250.md" diff --git "a/2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\347\275\221\347\273\234(\344\270\200).md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234/\347\275\221\347\273\234(\344\270\200).md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\347\275\221\347\273\234(\344\270\200).md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234/\347\275\221\347\273\234(\344\270\200).md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/1. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\267\245\345\216\202\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/1. \345\267\245\345\216\202\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/1. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\267\245\345\216\202\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/1. \345\267\245\345\216\202\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/10. \351\200\202\351\205\215\345\231\250\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/10. \351\200\202\351\205\215\345\231\250\346\250\241\345\274\217.md" new file mode 100644 index 0000000..e69de29 diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/2. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\346\212\275\350\261\241\345\267\245\345\216\202\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/2. \346\212\275\350\261\241\345\267\245\345\216\202\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/2. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\346\212\275\350\261\241\345\267\245\345\216\202\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/2. \346\212\275\350\261\241\345\267\245\345\216\202\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/3. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\215\225\344\276\213\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/3. \345\215\225\344\276\213\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/3. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\215\225\344\276\213\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/3. \345\215\225\344\276\213\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/4. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\273\272\351\200\240\350\200\205\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/4. \345\273\272\351\200\240\350\200\205\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/4. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\273\272\351\200\240\350\200\205\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/4. \345\273\272\351\200\240\350\200\205\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/5. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\216\237\345\236\213\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/5. \345\216\237\345\236\213\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/5. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\216\237\345\236\213\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/5. \345\216\237\345\236\213\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/6. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\346\250\241\346\235\277\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/6. \346\250\241\346\235\277\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/6. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\346\250\241\346\235\277\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/6. \346\250\241\346\235\277\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/7. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\347\255\226\347\225\245\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/7. \347\255\226\347\225\245\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/7. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\347\255\226\347\225\245\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/7. \347\255\226\347\225\245\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/8. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\247\224\346\264\276\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/8. \345\247\224\346\264\276\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/8. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-\345\247\224\346\264\276\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/8. \345\247\224\346\264\276\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/9. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-Java\344\270\244\347\247\215\344\273\243\347\220\206\346\250\241\345\274\217.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/9. \344\273\243\347\220\206\346\250\241\345\274\217.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200\347\257\207/\350\256\276\350\256\241\346\250\241\345\274\217/9. \350\256\276\350\256\241\346\250\241\345\274\217\345\277\253\351\200\237\345\255\246\344\271\240-Java\344\270\244\347\247\215\344\273\243\347\220\206\346\250\241\345\274\217.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/9. \344\273\243\347\220\206\346\250\241\345\274\217.md" diff --git "a/2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\345\205\255\345\244\247\350\256\276\350\256\241\345\216\237\345\210\231.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/\345\205\255\345\244\247\350\256\276\350\256\241\345\216\237\345\210\231.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.3 \351\235\242\350\257\225\347\257\207/\345\205\255\345\244\247\350\256\276\350\256\241\345\216\237\345\210\231.md" rename to "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/\350\256\276\350\256\241\346\250\241\345\274\217/\345\205\255\345\244\247\350\256\276\350\256\241\345\216\237\345\210\231.md" diff --git "a/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/1. ArrayList\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/1. ArrayList\346\272\220\347\240\201\345\210\206\346\236\220.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/1. ArrayList\346\272\220\347\240\201\345\210\206\346\236\220.md" rename to "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/1. ArrayList\346\272\220\347\240\201\345\210\206\346\236\220.md" diff --git "a/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/2. HashMap\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/2. HashMap\346\272\220\347\240\201\345\210\206\346\236\220.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/2. HashMap\346\272\220\347\240\201\345\210\206\346\236\220.md" rename to "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/2. HashMap\346\272\220\347\240\201\345\210\206\346\236\220.md" diff --git "a/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/3. LinkedList\346\272\220\347\240\201\345\210\206\346\236\220-md.md" "b/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/3. LinkedList\346\272\220\347\240\201\345\210\206\346\236\220-md.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/3. LinkedList\346\272\220\347\240\201\345\210\206\346\236\220-md.md" rename to "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/3. LinkedList\346\272\220\347\240\201\345\210\206\346\236\220-md.md" diff --git "a/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/4. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/4. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" similarity index 100% rename from "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\347\257\207/4. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" rename to "2. Java\345\237\272\347\241\200/2.2 \346\272\220\347\240\201\350\247\243\346\236\220/4. ThreadPoolExector\346\272\220\347\240\201\345\210\206\346\236\220.md" diff --git "a/HR\351\235\242\350\257\225\346\212\200\345\267\247/HR\351\200\232\345\270\270\346\217\220\347\232\204\344\270\200\344\272\233\351\235\242\350\257\225\351\227\256\351\242\230.md" "b/HR\351\235\242\350\257\225\346\212\200\345\267\247/HR\351\200\232\345\270\270\346\217\220\347\232\204\344\270\200\344\272\233\351\235\242\350\257\225\351\227\256\351\242\230.md" deleted file mode 100644 index faad802..0000000 --- "a/HR\351\235\242\350\257\225\346\212\200\345\267\247/HR\351\200\232\345\270\270\346\217\220\347\232\204\344\270\200\344\272\233\351\235\242\350\257\225\351\227\256\351\242\230.md" +++ /dev/null @@ -1,161 +0,0 @@ - ->如果你是应届毕业生,请一定看完!如果你正在找工作,请一定看完!看完这篇文章都会对你有帮助的,最刁钻的10大面试问题一次性帮你解决(均附参考建议及回答)全程干货无废话。文末链接50个面试必答问题技巧! -### 1.你最大的缺点问题分析: ->考察候选人的自我认知能力,个人优点是否符合岗位要求。 - -参考建议: - -第一,不宜说自己没有缺点,只要是人就有缺点,这么说一定会令人反感。 - -第二,年轻经验不足、缺乏磨炼、有些着急、对待效率低下的人缺乏耐心等根据以上的关键点,缺点参考回复:首先,我刚毕业,经验方面不足,我会在工作中积极完成工作,积累各方面经验其次,性子急,对待效率低下的人缺乏耐心,但是我平时和别人聊天的时候会控制自己语速和讲话,慢慢培养自己耐心,避免浮躁。(遵循一个原则避重就轻) - -Tips:利用你的优点改正你的缺点,比如,工作追求细节极致,导致项目无法按时完成,通过时间管理,得以解决。一定不能说对应聘岗位的硬伤的缺点,以及无法弥补的缺点。 - - -### 2.面试最难:自我介绍问题分析: ->这道题主要考察应聘者的逻辑思维、语言表达、自我认知等能力。 - -参考建议: - -第一,条理清晰,层次分明,突出与岗位要求相吻合的技能、个人所长、行为风格、实际经验等。 - -第二,现场表达必须与个人简历所写保持一致。 - -第三,控制时间,一般不超过 3 分钟。 - -第四,尽量口语化,语言平实可信。 - -▲根据以上的关键点,参考回复:首先,我叫xxx,xxx大学xxx专业毕业,我在学校获得xxx荣誉(或者证书)……这样的信息(基本信息介绍)其次,在工作方面,我在xxx公司实习(或者学校活动),我负责xx工作,为了完成这个工作,我做了xxx努力,最后取得xxx成果,结尾,还可以总结一下通过这次活动或者项目有什么收获。关键点,在做了什么努力这部分要体现做的深度。(利用STAR法则)第三,在大型比赛中取得xxx的成绩,如果没有,可以讲自己参加过的公益类活动,例如支教,敬老院看望爷爷奶奶。(特殊经历亮点加分项)(ps:最好准备一个1分钟自我介绍,一个3-5 分钟自我介绍,多手准备!!) - -Tips:在面试前一天,一定一定要熟记自我介绍,自己也可以对着镜子模拟面试情景反复刻意练习自我介绍。这样才能保证面试从容,不紧张。 - - -### 3.面试必答题:谈谈薪酬待遇? ->问题分析:判断候选人对薪资待遇的要求是否与单位能够提供的标准相匹配。写到这里我就想起自己第一次面试这道问题,我是这样回答的: - -Q:你期望薪资多少? - -A:都可以,够在这个城市生活就好…… - - -参考建议: - -第一,每家单位都有自己的薪酬标准。 - -第二,可以先提交一个薪酬区间,一旦被录用,人力资源部一定会有专人与您进行薪酬沟通,到时再友好协商也不晚。 - -Tips:每个单位都有薪资宽带就最低最高界限,评估自己能力及自己生活所需,可以先提交一个薪酬区间,如果你能力强可以往上限靠,如果一般取中间值。 - -▲提示:关于正确提问薪资待遇 - -方法一:不能谈薪资,为什么说不能谈薪资呢?作为一个毕业生,一个初入职场的人的时候,我们不能跟谈薪资,我们只能听薪资,适合我就做,不适合我就走。 - -方法二:谈薪资,首先,你要证明自己的价值。第二,你要让HR认可你的价值。这两点做到了,就可以谈薪资了。 - -### 4.你的兴趣爱好? ->问题分析:了解候选人的心态、性格、价值观、责任感等当HR问到兴趣爱好,这时大脑一片空白,一时想不到,拍脑袋回答没什么爱好,或者随便回答,那你就会掉进坑里了。 - -参考建议: - -第一,常见的爱好无外乎运动、旅游、听音乐、读书等,比如篮球:团队精神,古典音乐、阅读、书法:细心耐心,旅游:适应能力学习能力,演讲:沟通能力,唱歌、舞蹈:性格外向,沟通能力 - -第二,如果有表现突出的文体爱好,例如书法、羽毛球、小提琴、写文章等获得过有关奖项,可以适当加分 - -第三,如果热衷社会公益,参与过某些公益组织,为困难人群提供过无私、积极的帮助的,可以突出介绍,可以给面试官留下更好地印象。 - -▲根据以上的关键点,参考回复:eg1:写与岗位匹配的爱好,假如是应聘文案类(编辑)岗位,你说你喜欢写文章,发表过文章,还获得奖,加分!加分!(没得奖也不怕给HR看写过的文章,体现你是有潜力的)eg2:我喜欢读书,一年读了xx本,收获xxx。 - -Tips:说岗位需求匹配的爱好,有助于工作的爱好;回答要真实,否则HR接着深入一问,容易露馅。 - -### 5.介绍未来5年职业规划(必考题!!!) ->问题分析:考察候选人对自己未来发展的设想、职业生涯的规划能力。除非是目标非常明确的人,或者有多年工作经验的职场人,不然很难回答清楚,那么怎么说才能回答好这个问题呢? - -不要说“几年当主管”,"几年当经理"毫无意义。 - -参考建议: - -第一,介绍自己认真思考过这个问题,自己的规划是基于目前的实际情况来设计的。 - -第二,在工作方面,突出自己打算通过积极完成工作任务,积累各方面的经验,让自己成为这个领域的专业人士,也希望有机会能够带领团队,成为优秀的管理者,为单位做出更大贡献,获得双赢。 - -第三,在学习方面,打算在专业领域做进一步学习和研究,将实践经验与专业知识相结合,为自己的职业成长做好铺垫,打好基础。 - - - -Tips:回答这个问题强调你稳定性,踏实工作的态度,重点在工作技能方面的提升与内在积累,不要描述外在的东西,比如职位,薪资。 - - -### 6.面试入坑题:怎样看待加班? ->问题分析:考察候选人的责任心和职业道德。五花八门的回答:“我不愿意接受无意义加班”“没问题,随时都可以加班” - -参考建议: - -第一,任何一家单位都有可能要加班。 - -第二,自身的工作任务没有完成,加班是理所当然的,当然,自己会不断提高专业技能,以尽量减少不必要的加班,之前也是这么做的。 - -第三,如果遇到紧急任务或突发情况时,需要加班,自己会尽己所能,希望能够尽快顺利地完成团队面临的任务。 - - -Tips:表现出自己愿意牺牲自己的一部分个人时间,提升个人能力,为公司创造更多利益;明确岗位是否需要经常加班,表明自己态度。 - -### 7.面试陷阱题:希望与怎样的领导共事?一类题:希望与怎样的领导合作?怎样处理与领导的关系? ->问题分析:考察候选人的人际交往能力、主动适应能力。如果你回答:我希望我的上级比较有经验,能够给饿哦一些帮助,陷阱!这样会暴露自己短处。 - -参考建议: - -第一,尽量不要提及对领导的具体要求,而应该突出自己会认真向领导学习,尽快熟悉和适应工作环境,主动向领导请教,保质保量完成本职工作。 - -第二,如果有做得不到的地方,会诚恳地向领导请教,可以在哪些地方多多改善。这才是一位职业人作为下属应该秉持的工作态度。Tips:切忌一切围绕工作进行,着重谈论对自己有要求,自身努力的方向,千万不要提及前任领导的缺点。 - -### 8.若领导布置了大量的工作,而完成时间又十分有限,为了完成任务,您怎么办? ->问题分析:考察候选人的时间管理能力。 - -参考建议:第 - -一,分清任务的轻重缓急,紧急又重要的任务先完成。 - -第二,发动团队其他成员,借力完成。 - -第三,鼓励老人带新人,提高工作效率。Tips:实在是过重,以上方法全部用上了都不行,可以与领导协商,先完成几成,其他不重要的任务可以缓办。 - -### 9.为什么应聘这个岗位? ->问题分析:考察候选人的求职动机、求职意向及对岗位的认知能力。 - -参考建议: - -第一 ,是要突出个人经验和技能与该职位的匹配度相对比较高。 - -第二,提前做功课,仔细查阅用人单位的网站和视频资料,最好是要在应答中提到招聘单位的规模、品牌、知名度、规范性、愿景等等。 - -第三,强调用人单位是适合个人职业发展的平台。 - -Tips:重点突出个人经验和技能与该职位的匹配度。如果之前有与这个单位有直接交往的正面案例,也可以顺便提出来,这是个加分项,说明对方是自己心仪的单位,希望能够加盟这个优秀的团队。 - - - -### 10.面试终极必杀问题:还有什么要问的吗? ->问题分析:考察候选人的情商,是否对这个公司或者行业很了解,是否用心准备。 - -参考建议: - -第一,可以问本职岗位工作要求、职责。例如,这个部门人员设置是怎么样的。 - -第二,可以问公司、公司的业务、体系、行业、客户。eg:为了胜任该职位,需要我提前学习哪些技术知识?eg:贵公司业务及战略的未来发展?eg:团队、公司现在面临的最大挑战是什么? - - -Tips:切忌纠缠薪资,如果回答没问题,HR会误会,你对岗位没有太大兴趣。在每道题回答之后,加两字,谢谢!最后推荐职场相关电影当幸福来敲门肖申克救赎终极面试阿甘正传书籍《不要等到毕业以后》(ps:如果有启发,请点个小赞鼓励一下哈,听说点赞的童鞋面试必过哦~皮一下感谢感恩!) - - - -### 声明 -文章转载自知乎:https://www.zhihu.com/question/24192778/answer/631081857 - -作者:职研社De圆圆 - -著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 - - -还有,不要以为这些就够用了,还需要去再多了解了解。知乎就是个不错的选择:https://www.zhihu.com/question/24192778 - -https://www.zhihu.com/search?type=content&q=hr%E9%9D%A2%E8%AF%95%E4%B8%80%E8%88%AC%E4%BC%9A%E9%97%AE%E5%95%A5 \ No newline at end of file diff --git a/README.md b/README.md index 6344a90..da5babf 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ >【Java入门 -> 进大厂笔记📖📒】未来的你一定会感谢今天学习的自己! 本项目主打Java基础、算法、框架实战、源码、中间件、大数据、面试等知识积累和经验总结。文章共300多篇, 大部分为原创, 部分翻译和转载已标明出处。 谢谢大家的支持, 转载请标明出处, 谢谢。 +[![Star History Chart](https://api.star-history.com/svg?repos=fantj2016/java-reader&type=Date)](https://star-history.com/#fantj2016/java-reader) + 感兴趣的朋友可以加入我们, 一起完善, 投稿请加微信。 推荐书籍: 《深入理解Java虚拟机》、《并发编程的艺术》、《Java多线程核心编程艺术》、《Java8函数式编程》、《Redis设计与实现》、《RocketMQ技术内幕》、《Spring技术内幕》、《Spring源码深度解析》、《剑指Offer》、《大话设计模式》... 详细书单请在公众号获取。 @@ -128,9 +130,6 @@ ### 9. 架构设计 * [架构设计篇](https://github.com/fantj2016/java-reader/tree/master/9.%20%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1) -### HR面经验 -* [HR面技巧](https://github.com/fantj2016/java-reader/tree/master/HR%E9%9D%A2%E8%AF%95%E6%8A%80%E5%B7%A7) - ### 公众号 >github阅读不方便?添加公众号,随时随地当reader,不定时发放福利 diff --git "a/\345\274\200\346\272\220\351\241\271\347\233\256/\345\274\200\346\272\220\351\241\271\347\233\256.md" "b/\346\210\221\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\345\274\200\346\272\220\351\241\271\347\233\256.md" similarity index 100% rename from "\345\274\200\346\272\220\351\241\271\347\233\256/\345\274\200\346\272\220\351\241\271\347\233\256.md" rename to "\346\210\221\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\345\274\200\346\272\220\351\241\271\347\233\256.md" From 48e141d0b657e958de598a298a6da09a7aa80d31 Mon Sep 17 00:00:00 2001 From: fantj <844072586@qq.com> Date: Tue, 1 Nov 2022 19:20:16 +0800 Subject: [PATCH 6/9] =?UTF-8?q?java=E5=9F=BA=E7=A1=80=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index da5babf..d6e16a7 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ ### 2. Java基础 -#### 2.1 基础篇 +#### 2.1 基础 * [JVM](https://github.com/fantj2016/java-reader/tree/master/2.%20Java%E5%9F%BA%E7%A1%80/2.1%20%E5%9F%BA%E7%A1%80%E7%AF%87/1.%20JVM%E7%AF%87) * [Java并发、多线程](https://github.com/fantj2016/java-reader/tree/master/2.%20Java%E5%9F%BA%E7%A1%80/2.1%20%E5%9F%BA%E7%A1%80%E7%AF%87/2.%20%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E7%AF%87) * [反射详解](https://github.com/fantj2016/java-reader/tree/master/2.%20Java%E5%9F%BA%E7%A1%80/2.1%20%E5%9F%BA%E7%A1%80%E7%AF%87/3.%20%E5%8F%8D%E5%B0%84%E7%AF%87) @@ -41,13 +41,10 @@ * [设计模式文章](https://github.com/fantj2016/java-reader/tree/master/2.%20Java%E5%9F%BA%E7%A1%80/2.1%20%E5%9F%BA%E7%A1%80%E7%AF%87/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F) * [Tomcat类加载器(待完成)]() -#### 2.2 源码篇 +#### 2.2 源码 * [Java源码、集合源码](https://github.com/fantj2016/java-reader/tree/master/2.%20Java%E5%9F%BA%E7%A1%80/2.2%20%E6%BA%90%E7%A0%81%E7%AF%87) -#### 2.3 面试篇 -* [Java基础面试题总结](https://github.com/fantj2016/java-reader/tree/master/2.%20Java%E5%9F%BA%E7%A1%80/2.3%20%E9%9D%A2%E8%AF%95%E7%AF%87) - --- ### 3. 框架专题 @@ -72,14 +69,8 @@ * [Dubbo源码](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.2%20%E6%BA%90%E7%A0%81%E7%AF%87/Dubbo%E6%BA%90%E7%A0%81) -#### 3.3 面试题 -* [Spring面试题(待完成)]() -* [SpringMvc面试题(待完成)]() -* [Mybatis面试题(待完成)]() -* [Redis面试](https://github.com/fantj2016/java-reader/blob/master/Redis%E9%9D%A2%E8%AF%95/redis.md) - -#### 3.4 框架实现篇 +#### 3.3 框架实现 * [Tomcat框架简单实现](https://github.com/fantj2016/MyTomcat) * [Jedis框架简单实现](https://github.com/fantj2016/easy-jedis) * [MVC框架简单实现](https://github.com/fantj2016/easy-springmvc) @@ -89,8 +80,6 @@ * [分布式事务](https://github.com/fantj2016/java-reader/tree/master/4.%20%E5%88%86%E5%B8%83%E5%BC%8F%E4%B8%93%E9%A2%98/4.1%20%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1) * 分布式锁..待更新 -##### 4.1 分布式面试题 - --- ### 5. 中间件专题 From 8cbd00c83a0f297e05a7235e9364a8260600bc74 Mon Sep 17 00:00:00 2001 From: fantj <844072586@qq.com> Date: Tue, 1 Nov 2022 19:39:04 +0800 Subject: [PATCH 7/9] =?UTF-8?q?add=20=E7=94=B1=E6=B5=85=E5=85=A5=E6=B7=B1?= =?UTF-8?q?=E7=90=86=E8=A7=A3Raft=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...206\350\247\243Raft\345\215\217\350\256\256.md" | 2 ++ README.md | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 "9. \346\236\266\346\236\204\350\256\276\350\256\241/\347\224\261\346\265\205\345\205\245\346\267\261\347\220\206\350\247\243Raft\345\215\217\350\256\256.md" diff --git "a/9. \346\236\266\346\236\204\350\256\276\350\256\241/\347\224\261\346\265\205\345\205\245\346\267\261\347\220\206\350\247\243Raft\345\215\217\350\256\256.md" "b/9. \346\236\266\346\236\204\350\256\276\350\256\241/\347\224\261\346\265\205\345\205\245\346\267\261\347\220\206\350\247\243Raft\345\215\217\350\256\256.md" new file mode 100644 index 0000000..7d3d846 --- /dev/null +++ "b/9. \346\236\266\346\236\204\350\256\276\350\256\241/\347\224\261\346\265\205\345\205\245\346\267\261\347\220\206\350\247\243Raft\345\215\217\350\256\256.md" @@ -0,0 +1,2 @@ +分享一个同事的公众号写的非常详细: +https://mp.weixin.qq.com/s/20Rno9Er_x4gg6kERSF1bA \ No newline at end of file diff --git a/README.md b/README.md index d6e16a7..1993530 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ --- ### 3. 框架专题 -#### 3.1 实战篇 +#### 3.1 实战 * [SpringBoot整合&实战](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.1%20%E5%AE%9E%E6%88%98%E7%AF%87/SpringBoot) * [Mybatis使用&常见问题解决](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.1%20%E5%AE%9E%E6%88%98%E7%AF%87/Mybatis) * [SpringSecurity安全框架实战](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.1%20%E5%AE%9E%E6%88%98%E7%AF%87/SpringSecurity) @@ -60,7 +60,7 @@ * [Netty](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.1%20%E5%AE%9E%E6%88%98%E7%AF%87/Netty) * [Spring](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.1%20%E5%AE%9E%E6%88%98%E7%AF%87/Spring) -#### 3.2 源码篇 +#### 3.2 源码解析 * [Spring源码解析](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.2%20%E6%BA%90%E7%A0%81%E7%AF%87/Spring%E6%BA%90%E7%A0%81) * [SpringBoot源码](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.2%20%E6%BA%90%E7%A0%81%E7%AF%87/SpringBoot%E6%BA%90%E7%A0%81) * [SpringMvc源码解析](https://github.com/fantj2016/java-reader/tree/master/3.%20%E6%A1%86%E6%9E%B6%E4%B8%93%E9%A2%98/3.2%20%E6%BA%90%E7%A0%81%E7%AF%87/SpringMVC%E6%BA%90%E7%A0%81) @@ -83,13 +83,13 @@ --- ### 5. 中间件专题 -#### 5.1 实战篇 +#### 5.1 实战 * [Nginx入门](https://github.com/fantj2016/java-reader/tree/master/5.%20%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%B8%93%E9%A2%98/5.1%20%E5%AE%9E%E6%88%98%E7%AF%87/1.%20Nginx) * [Redis入门](https://github.com/fantj2016/java-reader/tree/master/5.%20%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%B8%93%E9%A2%98/5.1%20%E5%AE%9E%E6%88%98%E7%AF%87/2.%20Redis) * [Zookeeper部分](https://github.com/fantj2016/java-reader/tree/master/5.%20%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%B8%93%E9%A2%98/5.1%20%E5%AE%9E%E6%88%98%E7%AF%87/3.%20Zookeeper) * [MQ从入门到实战](https://github.com/fantj2016/java-reader/tree/master/5.%20%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%B8%93%E9%A2%98/5.1%20%E5%AE%9E%E6%88%98%E7%AF%87/4.%20MQ) -#### 5.2 源码篇 +#### 5.2 源码解析 * [Redis源码分析](https://github.com/fantj2016/java-reader/tree/master/5.%20%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%B8%93%E9%A2%98/5.2%20%E6%BA%90%E7%A0%81%E7%AF%87/Redis%E6%BA%90%E7%A0%81) ### 6. 高效研发 @@ -113,11 +113,11 @@ --- ### 8. 大数据 -* [服务搭建篇](https://github.com/fantj2016/java-reader/tree/master/8.%20%E5%A4%A7%E6%95%B0%E6%8D%AE/8.1%20%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E7%AF%87) -* [实战篇](https://github.com/fantj2016/java-reader/tree/master/8.%20%E5%A4%A7%E6%95%B0%E6%8D%AE/8.2%20%E5%AE%9E%E6%88%98%E7%AF%87) +* [服务搭建](https://github.com/fantj2016/java-reader/tree/master/8.%20%E5%A4%A7%E6%95%B0%E6%8D%AE/8.1%20%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA%E7%AF%87) +* [实战](https://github.com/fantj2016/java-reader/tree/master/8.%20%E5%A4%A7%E6%95%B0%E6%8D%AE/8.2%20%E5%AE%9E%E6%88%98%E7%AF%87) ### 9. 架构设计 -* [架构设计篇](https://github.com/fantj2016/java-reader/tree/master/9.%20%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1) +* [架构设计](https://github.com/fantj2016/java-reader/tree/master/9.%20%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1) ### 公众号 >github阅读不方便?添加公众号,随时随地当reader,不定时发放福利 From 3f0fe5e6ab8875b8d4f4ab54e7df74bec92af876 Mon Sep 17 00:00:00 2001 From: fantj <844072586@qq.com> Date: Sat, 12 Nov 2022 22:29:24 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E8=BF=87=E7=A8=8B&=E5=AD=97=E8=8A=82=E7=A0=81=E6=8C=87?= =?UTF-8?q?=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...42\345\207\272\345\244\204\347\220\206.md" | 1 - ...02\347\240\201\346\214\207\344\273\244.md" | 58 ++++++++++++++++++ ...33\345\273\272\350\277\207\347\250\213.md" | 55 +++++++++++++++++ a-code/src/Entry.class | Bin 0 -> 357 bytes a-code/src/Entry.java | 12 ++++ a-code/src/Main.class | Bin 0 -> 281 bytes a-code/src/Main.java | 5 ++ 7 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" create mode 100644 "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\257\271\350\261\241\347\232\204\345\210\233\345\273\272\350\277\207\347\250\213.md" create mode 100644 a-code/src/Entry.class create mode 100644 a-code/src/Entry.java create mode 100644 a-code/src/Main.class create mode 100644 a-code/src/Main.java diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" index 9892dbb..ffe3195 100644 --- "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" +++ "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/11. JVM-\345\210\235\344\275\223\351\252\214\357\274\232\345\240\206\346\272\242\345\207\272\345\244\204\347\220\206.md" @@ -25,4 +25,3 @@ public class Test { ``` ![控制台报错](https://upload-images.jianshu.io/upload_images/5786888-999e6eb041639420.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) -12G的ROM让我等了好久才报错! diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" new file mode 100644 index 0000000..4052fbb --- /dev/null +++ "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\255\227\350\212\202\347\240\201\346\214\207\344\273\244.md" @@ -0,0 +1,58 @@ +### 1.将局部变量表中的变量压入操作数栈中 + +xload_n or xload n 将数据压入栈 +iload_1:将局部变量表中下标为 1 的 int 变量压入操作数栈中。 +aload_2:将局部变量表中下标为 2 的引用数据类型变量(此时为 String)压入操作数栈中。 +lload_3:将局部变量表中下标为 3 的 long 型变量压入操作数栈中。 +iload 5:将局部变量表中下标为 5 的 int 变量(实际为 boolean)压入操作数栈中。 +### 2.将常量池中的常量压入操作数栈中 + +根据数据类型和入栈内容的不同,此类又可以细分为 const 系列、push 系列和 Idc 指令。 + +### 3.将栈顶的数据出栈并装入局部变量表中 + +xstore_(x 为 i、l、f、d、a,n 默认为 0 到 3) +xstore(x 为 i、l、f、d、a) + +### 4.算术指令 + +加法指令:iadd、ladd、fadd、dadd +减法指令:isub、lsub、fsub、dsub +乘法指令:imul、lmul、fmul、dmul +除法指令:idiv、ldiv、fdiv、ddiv +求余指令:irem、lrem、frem、drem +自增指令:iinc +### 5.对象的创建和访问指令 + +#### 5.1创建指令 + +数组也是一种对象,但它创建的字节码指令和普通的对象不同。创建数组的指令有三种: + +newarray:创建基本数据类型的数组 +anewarray:创建引用类型的数组 +multianewarray:创建多维数组 +普通对象的创建指令只有一个,就是 new,它会接收一个操作数,指向常量池中的一个索引,表示要创建的类型。 + +#### 5.2字段访问指令 + +字段可以分为两类,一类是成员变量,一类是静态变量(static 关键字修饰的),所以字段访问指令可以分为两类: + +访问静态变量:getstatic、putstatic。 +访问成员变量:getfield、putfield,需要创建对象后才能访问。 +### 6.方法调用和返回指令 + +方法调用指令有 5 个,分别用于不同的场景: + +invokevirtual:用于调用对象的成员方法,根据对象的实际类型进行分派,支持多态。 +invokeinterface:用于调用接口方法,会在运行时搜索由特定对象实现的接口方法进行调用。 +invokespecial:用于调用一些需要特殊处理的方法,包括构造方法、私有方法和父类方法。 +invokestatic:用于调用静态方法。 +invokedynamic:用于在运行时动态解析出调用点限定符所引用的方法,并执行。 +### 7.操作数栈管理指令 + +常见的操作数栈管理指令有 pop、dup 和 swap。 + +将一个或两个元素从栈顶弹出,并且直接废弃,比如 pop,pop2; +复制栈顶的一个或两个数值并将其重新压入栈顶,比如 dup,dup2,dup_×1,dup2_×1,dup_×2,dup2_×2; +将栈最顶端的两个槽中的数值交换位置,比如 swap。 +这些指令不需要指明数据类型,因为是按照位置压入和弹出的。 \ No newline at end of file diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\257\271\350\261\241\347\232\204\345\210\233\345\273\272\350\277\207\347\250\213.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\257\271\350\261\241\347\232\204\345\210\233\345\273\272\350\277\207\347\250\213.md" new file mode 100644 index 0000000..e3824ed --- /dev/null +++ "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/\345\257\271\350\261\241\347\232\204\345\210\233\345\273\272\350\277\207\347\250\213.md" @@ -0,0 +1,55 @@ +### 对象的创建过程 + +首先,写一段代码编译一下字节码,参考之前的指令知识来看一下对象创建的过程。 + +```java +public class Main { + public static void main(String[] args) { + Entry entry = new Entry(); + } +} + +public class Entry { + private int total = 10; + + public int getTotal() { + return total; + } + + public Entry setTotal(int total) { + this.total = total; + return this; + } +} + +``` +把上面的代码进行编译、解析 + +``` +fantj@FantJdeMacBook-Pro src % javap -c Main.class +Compiled from "Main.java" +public class Main { + public Main(); + Code: + 0: aload_0 + 1: invokespecial #1 // Method java/lang/Object."":()V + 4: return + + public static void main(java.lang.String[]); + Code: + 0: new #2 // class Entry + 3: dup + 4: invokespecial #3 // Method Entry."":()V + 7: astore_1 + 8: return +} + +``` + +#### 字节码解读: +* aload_0: 读取方法的第一个引用参数(或更一般地说,第一个本地引用变量)并将其推送到堆栈. +* invokespecial #1 : 调用Main的super方法,也就是Object的构造方法 +* new: 它会接收一个操作数,指向常量池中的一个索引,表示要创建的类型 +* dup: 压入栈顶 +* invokespecial #3 :调用Entry的构造方法 (半初始化状态,因为此时的变量还是默认值) +* astore_1:将栈顶值保存到局部变量 (真正初始化完成) \ No newline at end of file diff --git a/a-code/src/Entry.class b/a-code/src/Entry.class new file mode 100644 index 0000000000000000000000000000000000000000..9b7a328750707ac25b80aaf5b1e04d3f2aea33e3 GIT binary patch literal 357 zcmX|*%}T>i6olvGKey4wzm>QU7q(g0jXTASC=`k=EbfyUN=i&1-U_}`7Yd5t!Uyo7 z#JP!dGw0qp^Bv~r_v;(LDfSc`Y=y9~?PJHsuE5o`PD_D|1>Sj475YM84~F*w=dymt z1^r1;~EbJ&OOu#}KJB^Kj>c9eHLag>+LzcjjTn-aImKBL6egHp| z@eK`I%zHcgo0r+&zpozvceu!r;5 Date: Sat, 12 Nov 2022 22:54:35 +0800 Subject: [PATCH 9/9] =?UTF-8?q?arthas=E5=91=BD=E4=BB=A4=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...75\344\273\244\345\210\227\350\241\250.md" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/arthas\345\221\275\344\273\244\345\210\227\350\241\250.md" diff --git "a/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/arthas\345\221\275\344\273\244\345\210\227\350\241\250.md" "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/arthas\345\221\275\344\273\244\345\210\227\350\241\250.md" new file mode 100644 index 0000000..bfcb6ce --- /dev/null +++ "b/2. Java\345\237\272\347\241\200/2.1 \345\237\272\347\241\200/1. JVM/arthas\345\221\275\344\273\244\345\210\227\350\241\250.md" @@ -0,0 +1,29 @@ +### 命令列表 +https://arthas.aliyun.com/doc/commands.html + +### 个人总结 +#### 监控类 +* `monitor`:监控方法的执行情况 +* `watch`:检测函数入参、返回值 +* `trace`:根据路径追踪,并记录消耗时间 +* `stack`:输出当前方法被调用的调用路径 +* `tt`:时间隧道,记录多个请求 +* `jad`:反编译耗时代码 + +#### JVM类 +* `dashboard`:实时数据面板 +* `Thread`:线程相关堆栈信息 +* `sysprop`:查看/修改属性 +* `sysenv`:查看JVM环境属性 +* `vmpotion`:查看JVM中选项 +* `getstatic`:获取静态成员变量 +* `ognl`:执行ognl表达式 +* `dump`:保存已加载字节码文件到本地 + +#### 类加载器 +* `sc`:查看类信息 search class +* `sm`:查看已加载方法信息 search method +* `classloader`:获取类加载器的信息 + + +