随笔分类 - Java Basic
摘要:线程池: 简单理解,就是一个管理线程的池子。 它帮我们管理线程,避免增加创建线程和销毁线程的资源消耗。因为线程其实也是一个对象,创建一个对象,需要经过类加载过程,销毁一个对象,需要走GC垃圾回收流程,都是需要资源开销的。 提高响应速度。如果任务达到了,相对于从线程池拿线程,重新去创建一条线程执行,速
阅读全文
摘要:对象优先在Eden分配 SurvivorRatio:将新生代中Eden区域与Survivor区域的容量比值,默认为8,代表Eden:Survivor=8:1 运行结果为: 虚拟机参数为:-verbose:gc -Xms20M -Xmx20M -Xmn20M -XX:+PrintGCDetails -
阅读全文
摘要:idea 在vm options处加入-XX:+PrintGCDetails,可打印GC日志。 打印GC日志为: [GC (Allocation Failure) [DefNew: 3762K->512K(4928K), 0.0044320 secs] 3762K->2609K(15872K), 0
阅读全文
摘要:1 public static void main(String[] args) throws IOException { 2 long cut = LocalDateTime.now().minusWeeks(1).toEpochSecond(ZoneOffset.UTC); 3 Path path = Paths.get("D:\\test\\");...
阅读全文
摘要:在java8使用lambda表达式的时候,不可避免的要调用异常处理机制,下面主要记录受检异常与非受检异常在lambda中的处理。 一、非受检异常处理 例子如下所示: 编写包装方法来进行处理: 对方法加以改进并对异常进行抛出: 二、受检异常处理 例子如下所示: 可以首先编写一个可以抛出异常的函数式接口
阅读全文
摘要:善于思考,拥抱变化,才能拥有未来 一、Threads 和 Runnables 运行结果为: Hello main Done! Hello Thread-0 或者: Hello main Hello Thread-0 Done! 二、ExecutorService 1. newSingleThread
阅读全文
摘要:一、invokeAll Executors支持通过invokeAll()一次批量提交多个callable。这个方法结果一个callable的集合,然后返回一个future的列表。 看一下Executors.newWorkStealingPool()调用源码为: 实际上Runtime.getRunti
阅读全文
摘要:代码整洁之道对于程序的重构及可读性至关重要。开始整洁之道吧!!! 一、抽离try catch 模块 将try和catch代码的主体部分抽离出来。delete只与错误处理有关,容易理解。deletePageAndAllReference只与完全删除一个page有关。 二、注释 好的注释尽量利用方法名称
阅读全文
摘要:Java泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。当需要使用某一种算法时,又无法具体算法的数据类型,或者想指定类型值的上限或下限,那么这时就需要Java泛型来大显身手了! 泛型方法的规则: 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分
阅读全文