随笔分类 - java
摘要:Task 抽象带来Task 首先,假设我们有这么一段逻辑:收到一个参数,先校验格式是否正确,再提取相关的参数出来,执行我们的事务,然后构建结果并返回。伪代码如下: 在上面的handleEvent方法里面,处理逻辑与Engine并没有太多的联系,我们可以将这个逻辑抽离出来,或者说可以变得更抽象一点,如
阅读全文
摘要:方法注释 应用 这个方法主要用于只有一个元素的优化,减少内存分配,无需分配额外的内存,可以从SingletonList内部类看得出来,由于只有一个element,因此可以做到内存分配最小化,相比之下ArrayList的DEFAULT_CAPACITY=10个。 其他特殊容器类 需要注意的是,以上6个
阅读全文
摘要:在java的concurrent.Executors主要提供两种线程池:无固定线程数但有限制任务队列的cachedThreadPool与有固定线程数但无任务队列限制的fixedThreadPool,这两种线程池是在小任务里面使用是正常的,但是一旦任务增大或者代码逻辑有问题,很容易导致OOM。因此《阿
阅读全文
摘要:首先,这个问题是从《阿里巴巴Java开发手册》的1.6.12(P31)上面看到的,里面有这样一句话,并列出一种反例代码(以下为仿写,并非与书上一致): 在并发场景下,通过双重检查锁(double-checked locking)实现延迟初始化的优化问题隐患,推荐解决方案中较为简单的一种(适用于JDK
阅读全文
摘要:之前看了刘新宇大大的《算法新解》有了点收获,闲来无事,便写了一个二叉搜索树实现的Map类。 java的Map接口有很多不想要的方法,自己定义了一个 具体实现: 测试的类: 在各自只运行一次的情况下测试数据如下: 由于二叉搜索树没有自平衡机制,搜索的时间在O(n*n)与O(lgn)之间摇摆,因此对比j
阅读全文
摘要:之前创建线程的话,基本上是使用new Thread(),或者是将任务提交到线程池执行。今天看了一下洁城浩的《图解java多线程设计模式》突然看到还可以使用ThreadFactory来创建一个线程,感觉挺新奇的,就写了一个Example类来跑一下 。 挺简单的使用方式。看了一下,Executors工具
阅读全文
摘要:于Java当中,编码格式的转换一般较为麻烦,就我目前的经验来说,需要用到转码的环境主要是IO(无论是网络IO还是文件IO)。转换方式主要有以下几种 方式一:String层面 String message = "中国"; System.out.println(new String(message.ge
阅读全文

浙公网安备 33010602011771号