踩坑笔记-IO自行控制关闭
最近翻阅之前代码笔记的时候,发现有1个关于IO关闭
的问题可以分享给大家。
大概的业务逻辑是:解析XML
后,然后将其移动到另外一个目录备份。
业务很简单,处理正常的XML
也是没有问题的,但是测试时候发现,一旦XML
解析出现问题,文件无法移动或者删除。
这到底是什么原因造成的了?
最近翻阅之前代码笔记的时候,发现有1个关于IO关闭
的问题可以分享给大家。
大概的业务逻辑是:解析XML
后,然后将其移动到另外一个目录备份。
业务很简单,处理正常的XML
也是没有问题的,但是测试时候发现,一旦XML
解析出现问题,文件无法移动或者删除。
这到底是什么原因造成的了?
今天在搭建个人博客的时候,因为对博客的目录进行了修改,需要修改nginx的配置文件,经过一番捣鼓,修改完成后,按照指引通过./nginx -s reload
重新加载配置文件,结果无法生效,总是指向老的目录。
2019年2月23日:通过docker来管理nginx更简单!
最近又看了一些关于Java8下ConcurrentHashMap
的分析,自己也尝试通过源码来进行一些理解,这里总结性的记录下一些收获,更详细的资料,网上很多,再此就不造轮子了。
本文主要记录put
方法相关的几个点:
sizectl
的作用?tab
数组时,如何保证线程安全的?tab[i]
的时候,如何保证线程安全的?addCount
,如何保证线程安全的。JDK7
的乐观+悲观策略。这篇文章主要通过HashMap#put的源码来聊聊为什么需要同时重写hashcode和equals。 这是在某个企业面试的时候,感觉自己说的不够清楚,这里地方再总结下,希望对大家有所帮助。 额外补充一句,程序猿要晋级到工程师抑或架构师,该从底层去探究的东西还是要耐心结合源码进行分析,不是仅仅看别人的总结和理论知识点就可以了,需要自己结合源码进行理解、巩固、实践。
CopyOnWrite
后文中表述为COW
CopyOnWrite
容器即写的时候复制一个新的容器进行写
:通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器
添加,而是先将当前容器
进行Copy,复制出一个新的容器
,然后在新的容器
里添加元素,添加完元素之后,再将原容器的引用指向新的容器。
Redis是一个开源的高性能的key-value存储系统。具有以下特点:
本篇文章是从之前的文章抽离出来的秒杀业务中不超卖的实现方案汇总
提供了一个秒杀业务的大体思路!
之前文章有些乱,这里重新修改了发布!
这段时间看了些秒杀业务处理方案,学到了一些东西,可能是比较粗浅的,但是万丈高楼平地起,所以还是做一个记录。
本文内容包括如下几点:
这是一篇关于数据库事务隔离级别的文章,通俗易懂,此文为我转载,我添加了一些个人理解。 数据库事务的隔离级别有4种,由低到高分别为 Read uncommitted →Read committed →Repeatable read →Serializable 在事务的并发操作中可能会出现脏读,不可重复读,幻读。 下面通过事例一一阐述它们的概念与联系。
本文是堆JVM的一些拾遗!
左边是线程共享的部分:方法区和堆
右边是线程独有的部分:虚拟机栈,本地方法栈,线程计数器
为公司写的IM
利用的是WebSocket
来实现的,那么为什么要采取WebSocket
而不是HTTP
或者TCP
了?
Redis 中使用 lua 脚本编写的任务,可以将保证其执行任务的原子性,这里我整理了 3 个常用的lua
脚本。
kotlin
中有一个非常有意思的关键字lazy
,表示该变量会在被使用的时候,才会加载,我思考下了,这样可以代码如下几个好处。
Java8引入的CompletableFuture
是一个非常非常好用的类库,可以方便的通过它进行多个异步任务的各类花式组合。
关于这个部分,很多博客和文章都有讲到,这篇短文,主要是分别一点:get
和thenAccept
的区别。