随笔分类 -  JAVA高级

摘要:常用缓存策略 常用的缓存淘汰策略有以下 先进先出算法(FIFO) Least Frequently Used(LFU)淘汰一定时期内被访问次数最少的页面,以次数作为参考 Least Recently Used(LRU)淘汰最长时间未被使用的页面,以时间作为参考 这些算法在不同层次的缓存上执行时拥有不 阅读全文
posted @ 2019-09-05 15:21 陶朱公Boy 阅读(3101) 评论(0) 推荐(0) 编辑
摘要:独占锁、共享锁、更新锁,乐观锁、悲观锁 阅读全文
posted @ 2019-09-01 21:38 陶朱公Boy 阅读(1837) 评论(0) 推荐(1) 编辑
摘要:现在越来越多的公司 特别是一些规模的 逐渐关注起程序员写的代码质量,有些公司甚至要求写的代码覆盖率必须达到多少多少 才可以提交代码 到达多少才可以部署到生产环境 本文主要阐述了IDEA工具支持的代码如何写测试覆盖率 写的还是不错的 对于想提高代码质量的小伙伴值得学习 阅读全文
posted @ 2019-08-22 20:51 陶朱公Boy 阅读(5090) 评论(0) 推荐(0) 编辑
摘要:自定义start denpendece 阅读全文
posted @ 2019-08-14 19:20 陶朱公Boy 阅读(225) 评论(0) 推荐(0) 编辑
摘要:摘自--https://juejin.im/post/5b4622df5188251ac9766f47 异步技巧之CompletableFuture 1.Future接口 1.1 什么是Future? 在jdk的官方的注解中写道 A {@code Future} represents the res 阅读全文
posted @ 2019-08-09 17:35 陶朱公Boy 阅读(450) 评论(0) 推荐(0) 编辑
摘要:<logger>节点 分两种 1.是普通日志对象 2.根日志对象 appender:日志输出目的地 与log4j中的appender一样,logback中的<appender>节点也同样负责日志输出的目的地。 appender中有2个必填属性--name和class。name为<appender>节 阅读全文
posted @ 2019-08-01 11:06 陶朱公Boy 阅读(869) 评论(0) 推荐(0) 编辑
摘要:HttpMessageConverter那回事 阅读全文
posted @ 2019-07-24 11:27 陶朱公Boy 阅读(3518) 评论(0) 推荐(1) 编辑
摘要:听大神耗子叔谈编程范式之面向对象编程 阅读全文
posted @ 2019-06-28 18:07 陶朱公Boy 阅读(290) 评论(0) 推荐(0) 编辑
摘要:springboot启动jar注意事项[提示没有主清单属性]解决方案 阅读全文
posted @ 2019-04-17 17:47 陶朱公Boy 阅读(818) 评论(0) 推荐(0) 编辑
摘要:传统jar 通过上面两个图的对比,我们知道这个JAR包与传统JAR包的不同之处在于里面有一个名为lib的目录,在这个目录中包含了这个简单应用所依赖的其他JAR包,其中也包含内置的嵌入式Tomcat,正是使用它,才能发布服务和访问Web资源。除了我们编写的源码所编译形成的CLASS以外,在org目录下还有许多Spring所提供的CLASS,正是依赖这些CLASS,才能够加载位于lib目录下JAR中的类。这样的加载机制与在OSGi bundle中声明Bundle-Classpath很类似,不过在OSGi中会由容器来负责加载指定路径下的类。这大致阐述了这样一个JAR包能够发布服务的原因。 阅读全文
posted @ 2019-04-02 13:59 陶朱公Boy 阅读(2852) 评论(0) 推荐(0) 编辑
摘要:CyclicBarrier适用于这样的情况:你希望创建一组任务,它们并行的执行工作,然后在进行下一步步骤之前等待,直至所有任务都完成,它使得所有的并行任务都将在删栏出列队,因此可以一致的向前移动。 当调用await时 指定的任务运行完后会awiat 直到最后一个线程运行完毕,才继续执行下一步动作 用法和countDownLatch差不多 countDownLatch只触发一次,而CyclicBarrier可以多次重用 阅读全文
posted @ 2019-03-27 21:05 陶朱公Boy 阅读(762) 评论(0) 推荐(0) 编辑
摘要:spring之ApplicationEvent 事件驱动 阅读全文
posted @ 2019-03-14 10:26 陶朱公Boy 阅读(8154) 评论(0) 推荐(1) 编辑
摘要:LockSupport 阅读全文
posted @ 2019-02-28 11:04 陶朱公Boy 阅读(187) 评论(0) 推荐(0) 编辑
摘要:LockSupport.park LockSupport.unpark 阅读全文
posted @ 2019-02-25 14:52 陶朱公Boy 阅读(840) 评论(0) 推荐(2) 编辑
摘要:大神毕玄几个提问 很多估计都是知道这么一回事 但真正说不清楚... 阅读全文
posted @ 2019-02-25 13:55 陶朱公Boy 阅读(1527) 评论(1) 推荐(0) 编辑
摘要:阿里大神毕玄整理的关于进阶JAVA的学习体系摘要,知道下。。。 阅读全文
posted @ 2019-02-25 13:53 陶朱公Boy 阅读(565) 评论(0) 推荐(0) 编辑
摘要:多线程并行threadPool且通过countDownLatch即所谓的闭锁控制线程最终的终止状态 ;方便统计最终处理数 及花费的业务时间 阅读全文
posted @ 2018-12-05 14:12 陶朱公Boy 阅读(470) 评论(0) 推荐(0) 编辑
摘要:单例模式有五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举 懒汉式线程不安全 懒汉式,线程安全 双重检验锁 事实上在 JVM 中这句话大概做了下面 3 件事情。 理解以上三个过程很重要,能直接通过字节码的角度让你知道 JVM的指令重排序;相关知识点最好了解一下,比如单线程访问尽管指令重排序 但还是 阅读全文
posted @ 2018-11-30 12:04 陶朱公Boy 阅读(338) 评论(0) 推荐(0) 编辑
摘要:遇到new 、getstatic、putstatic或invokestatic者四条字节码指令时,如果类没有进行初始化,则需要先触发其初始化。对应的JAVA代码场景是 new 实例对象、读取或设置一个类的静态字段[被final修饰、已在编译器把结果放入常量池的静态字段除外]时候,以及调用一个类的静态方法的时候 使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行过初始化,则先触发其初始化 当初始化一个类的时候,如果发现父类还没有过初始化,则需要其先触发其父类的初始化 当虚拟机启动时,用户需要指定一个要执行的主类(包含main方法的那个类)虚拟机先初始化这个主类 当使用jdk1.7的动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REF_getStatic,REF_putStatic、REF_invokeStatic的方法句柄,并且这个方法句柄所对应类没有进行过初始化,则先触发其初始化 阅读全文
posted @ 2018-11-30 11:35 陶朱公Boy 阅读(150) 评论(0) 推荐(0) 编辑
摘要:在JAVA多任务并行执行的开发过程中,笔者有一点疑惑 corePoolSize maximumPoolSize 这几个参数跟OS具体关系是什么呢? 我线程JAVA的线程与内核的线程关系梳理一下,清楚了原理会比较好理解。 因为从JMM层面 JVM线程其实最终是一个所谓轻量级进程的概念与系统内核线程(每个内核线程视为内核的一个分身)是一比一的关系,其实最终还是要调用内核线程 内核通过操纵调度器对线程进行分配资源,负责将任务给各个处理器上处理; 所以这个线程数还是受限于OS层面的线程数,明白这个就OK。所以最大线程数不是越大越好 过大也没什么作用还是要根据OS本身的参数进行适配。 像上面的corePoolSize如果处理的各个任务理论上马上就能完成 其实不用设置的过大,尽量复用线程 maximumPoolSize最大就是OS内核线程数 超过这个也没什么意义 阅读全文
posted @ 2018-11-13 17:41 陶朱公Boy 阅读(2626) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示