摘要: Java ConcurrentHashMap jdk1.8 之前用到过这个,但是一直不清楚原理,今天抽空看了一下代码 但是由于我一直在使用java8,试了半天,暂时还没复现过put死循环的bug 查了一下,java8似乎修复了这个:不过还是可能导致数据丢失 java8之前都是头插入,而java8却是 阅读全文
posted @ 2019-04-07 00:56 stdpain 阅读(375) 评论(0) 推荐(0)
摘要: Java ThreadLocal 之前在写 项目的时候使用过一个叫 的插件 可以自动完成分页而不用手动写SQL limit 用起来大概是这样的 最开始的时候觉得很困惑,因为直接使用静态成员函数,那么就意味着如果有别的线程同时执行,可能会导致一些并发错误 答案是不会,因为 内部实现是使用到了 这个对象 阅读全文
posted @ 2019-04-06 15:24 stdpain 阅读(280) 评论(0) 推荐(0)
摘要: Java 多线程 volitile 和 atomic 关键字 尝试运行以上代码,发现thread永远也无法发现key0的x被改变 所以这个时候需要加上volitile关键字 具体原因是java中每个线程都有工作内存,以及主存 我的理解就是不加volitile,线程读写变量是先在自己的工作内存中处理, 阅读全文
posted @ 2019-04-05 18:40 stdpain 阅读(463) 评论(0) 推荐(0)
摘要: Java HashMap jdk 1.8 Java8相对于java7来说HashMap变化比较大,在hash冲突严重的时候java7会退化为链表,Java8会退化为TreeMap 我们先来看一下类图: 可见,HashMap继承了AbstractMap,但是Map并没有扩展Collection接口 我 阅读全文
posted @ 2019-04-05 16:25 stdpain 阅读(745) 评论(0) 推荐(0)
摘要: Java ArrayList 之前曾经参考 数据结构与算法这本书写过 的demo,本来以为实现起来都差不多,今天抽空看了下 中的 的实现,差距还是很大啊 首先看一下 的类图 实现了 这几个接口,可序列化,可克隆,可以随机访问 构造方法: 之前手写 的时候,都会用一个默认容量来 new 一个数组,在 阅读全文
posted @ 2019-04-05 14:15 stdpain 阅读(825) 评论(0) 推荐(0)
摘要: Linux IO多路复用 poll 之前曾经提到过 select poll 跟select类似,poll改进了select的一个确定,就是poll没有监听上限 不过poll还是需要遍历以及频繁的把数组拷贝到内核空间,在监听较多文件描述符的时候性能会下降 传递的三个参数 fds:结构体数组 nfds: 阅读全文
posted @ 2019-04-05 10:39 stdpain 阅读(321) 评论(0) 推荐(0)
摘要: Linux IO多路复用 select 之前曾经写过简单的服务器,服务器是用多线程阻塞,客户端每一帧是用非阻塞实现的 后来发现select可以用来多路IO复用,就是说可以把服务器这么多线程放在一个线程里面,减小资源消耗,没必要开多个线程 不过实际上select使用很少,现在一般会用epoll这个函数 阅读全文
posted @ 2019-04-04 22:24 stdpain 阅读(654) 评论(0) 推荐(0)
摘要: Java Integer == 先看一下这段代码 输出结果: 很久之前就知道这里有个坑,今天看到别人分析了一下Integer.java的源代码才知道具体是为什么 可以看出来使用 的时候并不会立即new一个Integer对象,而是先判断是否在缓存数组里面 不知道称作 是不是不太合适 是一个嵌套类(静态 阅读全文
posted @ 2019-04-04 20:04 stdpain 阅读(2495) 评论(0) 推荐(0)
摘要: Stream 不是 `io`中的stream 对象创建 我们没有必要使用一个迭代来创建对象,直接使用流就可以 流使用起来代码更清晰 流看上去有点像是集合,转换或者获取数据,不过有一定的差异性 1. 流不会存储元素,,这些元素可能是 储存在底层的集合中,或者按需生成的 2. 流的操作不会修改其数据源 阅读全文
posted @ 2019-04-03 09:48 stdpain 阅读(187) 评论(0) 推荐(0)
摘要: 我们现在开始设计数据结构: interpreter.h Interpreter就是解释器的结构体,存放一些全局信息,在需要的时候可以通过getInstance获取实例 我们的解释器执行的时候是先使用 构建抽象语法树( ),然后再解释执行 我们先来看一下语句的结构体: 我们把表达式语句,if和for语 阅读全文
posted @ 2019-03-14 11:48 stdpain 阅读(510) 评论(0) 推荐(0)