- 博客(10)
- 收藏
- 关注
原创 GIT中的版本回退reset和revert的区别
上图中a文件中的4.0.0,5.0.0,6.0.0,7.0.0 分别对应版本4.0.0,5.0.0,6.0.0,7.0.0的提交内容。现在的需求是回退版本至5.0.0版本,最后结果就是a文件中只有5.0.0以上的数据。1、右键5.0.0commit,点击Reset Current Branch To here2、选择hard后,点击reset按钮3、此时直接push至远程仓库会被拒绝,应该直接打开terminnal强行push4、执行完后结果如下,文件的数据会退到5.0.0,git上6.0.0,7.0
2024-11-01 10:17:05 511
原创 java中的范型的PECS原则
ps:这里的消费生产概率可能跟我们mq中的概率相反,可以这样理解:这里的消费生产是从数据结构或者方法本身出发,消费数据指这个数据结构或者方法需要消费数据(就像你的小孩需要消费,那你得给他钱才行),生产数据就是数据结构或者方法能生产出数据。PECS 原则帮助开发者在使用泛型时,正确选择通配符,以实现更高的灵活性和类型安全。如果你有一个生产者(Producer),它会提供某种类型的数据,那么你应该使用。如果你有一个消费者(Consumer),它会消费某种类型的数据,那么你应该使用。来提高代码的灵活性和安全性。
2024-11-01 10:07:10 319
原创 Base64与Base32的编码算法区别
由于其字符集仅使用大写字母和数字,适用于对大小写敏感的环境(如某些URL或文件名)和需要手动输入的场景。:使用64个字符进行编码,包括字母(A-Z, a-z)、数字(0-9)、以及两个特殊字符(通常是。:使用32个字符进行编码,主要由大写字母(A-Z)和数字(2-7)组成。:每3个字节的数据编码为4个字符,因此效率较高,数据量增加约为33%。:每5个字节的数据编码为8个字符,效率相对较低,数据量增加约为60%。作为填充字符,以确保数据的长度是4的倍数。作为填充字符,确保数据的长度是8的倍数。
2024-10-31 08:12:56 688
原创 zookeeper实现分布式锁(公平、非公平)
并非locker所有子节点中最小的,说明自己还没有获取到锁,此时客户端需要找到比自己小的那个节点,然后对其调用exist()方法,同时。locker子节点中序号最小的,如果是则获取到了锁,如果不是则重复以上步骤继续获取到比自己小的一个节点并注册监听。获取到所有的子节点path之后,如果发现自己在之前创建的子节点序号最小,那么就认为该客户端获取到了锁。之后,让这个被关注的节点删除,则客户端的Watcher会收到相应通知,此时再次判断自己创建的节点是否是。字,用于子节点的创建的先后顺序。
2024-10-30 09:16:37 651
原创 四种主要的IO
通过select/epoll系统调用,单个应用程序的线程可以不断的轮询成百上千的socket连接的就绪状态,当某个或者某些socket网络连接有IO就绪状态时就返回这些就绪的状态(或者说就绪事件)。:用户空间的程序不需要等待内核IO操作彻底完成,可以立即返回用户空间去执行后续的指令,即发起IO请求的用户程序或者线程处于非阻塞状态,与此同时,内核会立即返回给用户一个IO状态值。指的是用户进程主动发起,不需要等待内核IO操作彻底完成就能立即返回用户空间的IO操作。在IO过程请求的用户进程或者线程处于阻塞状态。
2024-10-30 09:08:55 263
原创 FutureTask与runnable、callable
submit方法,最后还是调用的.execute(Runnable command)方法,而传入runnable就是submit方法返回的null,而且execute(Runnable command)方法入参只有Runnable,所以中间整了个RunnableFuture(继承Runnable, Future),又来了个FutureTask(实现RunnableFuture,查了资料明白了,Future是未来的意思😛,哈哈哈,当然不止这些,Future实际上是线程的执行结果。
2024-10-29 09:47:51 609
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人