随笔分类 - Java
摘要:当方法wait()被执行后,锁自动被释放,但执行完notify()方法后,锁不会自动释放。必须执行完notify()方法所在的synchronized代码块后才释放。 当线程呈wait状态时,对线程对象调用interrupt方法会出现InterrupedException异常。
阅读全文
摘要:>> :右移 最高位是0,左边补齐0;最高为是1,左边补齐1 << :左移 左边最高位丢弃,右边补齐0 >>>:无符号右移 无论最高位是0还是1,左边补齐0 在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方 右移一位相当于除2,右移n位相当于除以
阅读全文
摘要:一、背景介绍 随着互联网的发展,网站应用或者企业应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量
阅读全文
摘要:1、execute方法,可以看异常输出在控制台,而submit在控制台没有直接输出,必须调用Future.get()方法时,可以捕获到异常。 2、一个线程出现异常不会影响线程池里面其他线程的正常执行。 3、线程不是被回收而是线程池把这个线程移除掉,同时创建一个新的线程放到线程池中。
阅读全文
摘要:前言 ZXing,一个支持在图像中解码和生成条形码(如二维码、PDF 417、EAN、UPC、Aztec、Data Matrix、Codabar)的库。ZXing(“zebra crossing”)是一个开源的、多格式的、用Java实现的一维/二维条码图像处理库,具有到其他语言的端口。 GitHub
阅读全文
摘要:一.maven依赖 下载google的二维码工具包来进行二维码的生成,下面是jar包的maven下载 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.1.0</vers
阅读全文
摘要:我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢? ConcurrentHashMap的简介 “我想有基础的同学知道在jdk1.7中是采用Segmen
阅读全文
摘要:https://blog.csdn.net/u013735734/article/details/102930307 https://alibaba.github.io/arthas/install-detail.html#id2
阅读全文
摘要:Arthas 是一款 Java应用开源诊断工具,由于其强大的问题排查及诊断能力,自其开源以来广受开发者的关注和使用,多次登顶 GitHub Trending,并得到国内多家技术媒体的推荐分享。 一. 定制化功能改造 Arthas 可以通过简单的命令交互模式,接入运行的 JVM,快速定位和诊断线上程序
阅读全文
摘要:前面介绍的ReadWriteLock可以解决多线程同时读,但只有一个线程能写的问题。 如果我们深入分析ReadWriteLock,会发现它有个潜在的问题:如果有线程正在读,写线程需要等待读线程释放锁后才能获取写锁,即读的过程中不允许写,这是一种悲观的读锁。 要进一步提升并发执行效率,Java 8引入
阅读全文
摘要:https://www.zhihu.com/question/35250439 结论: 1 static 防止无意义多实例 2 当static时,ThreadLocal ref生命延长-ThreadMap的key在线程生命期内始终有值-ThreadMap的value在线程生命期内不释放——故线程池下
阅读全文
摘要:1、背景 在笔者研究 JDK 源码时,注意到在CopyOnWriteArrayList 和ArrayList 的构造器中都出现了如下 bug 字样 6260652 其实代表的JDK bug 列表中的编号 http://bugs.java.com/bugdatabase/view_bug.do?bug
阅读全文
摘要:import javax.naming.spi.DirStateFactory; import java.lang.reflect.Field; import java.sql.*; import java.util.ArrayList; import java.util.List; public
阅读全文
摘要:那为什么使用弱引用而不是强引用?? 我们看看Key使用的 key 使用强引用 当hreadLocalMap的key为强引用回收ThreadLocal时,因为ThreadLocalMap还持有ThreadLocal的强引用,如果没有手动删除,ThreadLocal不会被回收,导致Entry内存泄漏。
阅读全文
摘要:简述:看了《深入Java虚拟机》一书中关于“类是否初始化?“ 这一问题的探讨后,觉得有必要亲手做下总结在实际代码中, 有些类可能看上去时初始化了,但实际上并没有。举个例子,对于一个类Fruit, 声明一个fruit[] 数组,看上去是很多个Fruit对象被初始化了,其实一个都没有,下面就竟可能全面的
阅读全文
摘要:所谓静态,指以static关键字修饰的,包括类,方法,块,字段。 非静态,指没有用static 修饰的。 一、静态类的特点 1.全局唯一,任何一次的修改都是全局性的影响 2.只加载一次,优先于非静态 3.使用方式上不依赖于实例对象。 4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束。 二、
阅读全文
摘要:什么是CMS? Concurrent Mark Sweep。 看名字就知道,CMS是一款并发、使用标记-清除算法的gc。 CMS是针对老年代进行回收的GC。 CMS有什么用? CMS以获取最小停顿时间为目的。 在一些对响应时间有很高要求的应用或网站中,用户程序不能有长时间的停顿,CMS 可以用于此场
阅读全文
摘要:不要超过32G 事实上jvm在内存小于32G的时候会采用一个内存对象指针压缩技术。 在java中,所有的对象都分配在堆上,然后有一个指针引用它。指向这些对象的指针大小通常是CPU的字长的大小,不是32bit就是64bit,这取决于你的处理器,指针指向了你的值的精确位置。 对于32位系统,你的内存最大
阅读全文
摘要:1对象存活算法引用计数法 简介:判断对象是否存活算法,讲解对象垃圾回收对象是否回收判断 - 引用计数法存在的特点分析 - 优缺点 * 引用计数收集器可以很快的执行,交织在程序运行中。对程序需要不被长时间打断的实时环境比较有利。 * 无法检测出循环引用。如父对象有一个对子对象的引用,子对象反过来引用父
阅读全文
摘要:integer1=i, 编译后自动装箱:integer1=Integer.valueOf(i),Integer的内部类IntegerCache默认缓存了[-128,127]
阅读全文

浙公网安备 33010602011771号