随笔分类 -  JAVA

摘要:HashMap Fast Fail(遍历时写入操作异常) 在使用迭代器的过程中如果HashMap被修改,那么 将被抛出,也即Fast fail策略。 当HashMap的iterator()方法被调用时,会构造并返回一个新的EntryIterator对象,并将EntryIterator的expecte 阅读全文
posted @ 2019-11-26 17:22 hongdada 阅读(467) 评论(0) 推荐(0) 编辑
摘要:简介 读写锁维护着一对锁,一个读锁和一个写锁。通过分离读锁和写锁,使得并发性比一般的排他锁有了较大的提升:在同一时间可以允许多个读线程同时访问,但是在写线程访问时,所有读线程和写线程都会被阻塞。 读写锁的主要特性: 公平性:支持公平性和非公平性。 重入性:支持重入。读写锁最多支持65535个递归写入 阅读全文
posted @ 2019-11-21 17:33 hongdada 阅读(398) 评论(0) 推荐(0) 编辑
摘要:简介 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在Java SE5后,Java提供了Lock接口,相对于Synchronized而言,Lock提供了条件Condition,对线程的等待、唤醒操作更加 阅读全文
posted @ 2019-11-19 13:48 hongdada 阅读(585) 评论(0) 推荐(0) 编辑
摘要:JAVA对象方法-wait 最简单的东西,往往包含了最复杂的实现,因为需要为上层的存在提供一个稳定的基础,Object作为java中所有对象的基类,其存在的价值不言而喻,其中wait和notify方法的实现多线程协作提供了保证。 案例 public class WaitTestDemo { publ 阅读全文
posted @ 2019-10-29 18:45 hongdada 阅读(896) 评论(0) 推荐(0) 编辑
摘要:概念 join方法,一种特殊的wait,当前运行线程调用另一个线程的join方法,当前线程进入阻塞状态直到调用join方法的线程结束,再继续执行。 一般情况下,都是主线程创建一个子线程,子线程调用join方法,主线程会进入阻塞状态,直到子线程运行结束。 简单案例 public class JoinT 阅读全文
posted @ 2019-10-25 17:41 hongdada 阅读(604) 评论(0) 推荐(0) 编辑
摘要:什么是AQS aqs全称为AbstractQueuedSynchronizer,它提供了一个FIFO队列,可以看成是一个用来实现同步锁以及其他涉及到同步功能的核心组件,常见的有:ReentrantLock、CountDownLatch等。 AQS是一个抽象类,主要是通过继承的方式来使用,它本身没有实 阅读全文
posted @ 2019-10-18 14:51 hongdada 阅读(1159) 评论(0) 推荐(2) 编辑
摘要:1.SynchronizedList类具体代码: 1.使用方式 官方文档就是下面的使用方式 既然封装类内部已经加了对象锁,为什么外部还要加一层对象锁? 看源码可知,Collections.synchronizedList中很多方法,比如equals,hasCode,get,set,add,remov 阅读全文
posted @ 2019-05-27 17:23 hongdada 阅读(30429) 评论(0) 推荐(2) 编辑
摘要:List,List<Object 区别 t1 可以赋给 t2, 但是 t1 不能赋给 t3,会抛出如下异常 List注意点 List 是一个泛型,在没有赋值之前,是可以接受任何集合的赋值的,但是请注意, 赋值之后就不能往里面添加元素了 提示如下错误: 所以 List 一般用来作为参数来接受外部的集合 阅读全文
posted @ 2019-04-10 15:40 hongdada 阅读(8128) 评论(0) 推荐(2) 编辑
摘要:找不到符号异常 在控制台项目中配置Lombok 编译会报错 解决 方法: 父类字段ToString不了 测试: Output: 可以明显发现,School类里面的字段都没有toString,并且equals还是相等的。 解决: 输出; 其实在上面的情况时,鼠标放在@Data上,会自动提示异常 @Eq 阅读全文
posted @ 2019-02-22 18:34 hongdada 阅读(5126) 评论(0) 推荐(1) 编辑
摘要:Java Volatile关键字 以及long,double在多线程中的应用 概念: volatile关键字,官方解释:volatile可以保证可见性、顺序性、一致性。 可见性:volatile修饰的对象在加载时会告知JVM,对象在CPU的缓存上对多个线程是同时可见的。 顺序性:这里有JVM的内存屏 阅读全文
posted @ 2019-02-15 14:54 hongdada 阅读(1388) 评论(0) 推荐(0) 编辑
摘要:[TOC] Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对 数据传输的总称或抽象 。即数据在两设备间的传输称为流, 流的本质是数据传输 ,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据 阅读全文
posted @ 2019-02-01 17:13 hongdada 阅读(396) 评论(0) 推荐(0) 编辑
摘要:缘由: 在一个项目中,app请求tcpdump日志与记录的日志内容不一致 请求 识别成 请求 识别成 这个在base64解密的时候会出现异常,base64需要的是加号,而不是空格 造成的原因: 在js中,对url的加密分别由三种方式: 第三种方式, 变成 java代码: 特么加号变成%2B,空格变成 阅读全文
posted @ 2019-01-30 14:38 hongdada 阅读(13700) 评论(0) 推荐(0) 编辑
摘要:CPU高速缓存/伪共享 Code: public class Main { static long[][] arr; public static void main(String[] args) { long sum = 0L; arr = new long[1024 * 1024][8]; // 阅读全文
posted @ 2019-01-16 18:50 hongdada 阅读(737) 评论(0) 推荐(0) 编辑
摘要:== java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型 byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 基本数据类型与其他内存==比较,其他类型都会拆箱转换成基本数据类型 2.引 阅读全文
posted @ 2019-01-15 15:14 hongdada 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:[TOC] 函数式接口: 函数式接口,首先是一个接口,然后就是在这个接口里面 只能有一个抽象方法 ,但是可以有多个非抽象方法的接口。 Java 8为函数式接口引入了一个新注解@FunctionalInterface,主要用于 编译级错误检查 ,加上该注解,当你写的接口不符合函数式接口定义的时候,编译 阅读全文
posted @ 2018-11-26 17:50 hongdada 阅读(8516) 评论(0) 推荐(1) 编辑
摘要:一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javacore,或java 阅读全文
posted @ 2018-05-24 17:19 hongdada 阅读(656) 评论(0) 推荐(0) 编辑
摘要:简单数据类型int,跟Integer在lambda中的使用还不一样,有区别 code: package com.qhong.lambda.testDemo; import java.util.Arrays; import java.util.Comparator; import java.util. 阅读全文
posted @ 2018-05-23 15:13 hongdada 阅读(361) 评论(0) 推荐(0) 编辑
摘要:Jmap:可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内 阅读全文
posted @ 2018-03-21 14:22 hongdada 阅读(1372) 评论(0) 推荐(0) 编辑
摘要:使用枚举实现的单例模式,不但可以防止利用反射强行构建单例对象,而且可以在枚举类对象被反序列化的时候,保证反序列的返回结果是同一对象。 对于其他方式实现的单例模式,如果既想要做到可序列化,又想要反序列化为同一对象,则必须实现readResolve方法。 一般来说, 一个类实现了 Serializabl 阅读全文
posted @ 2017-12-22 18:28 hongdada 阅读(3473) 评论(0) 推荐(0) 编辑
摘要:阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;功能强大,完全支持Java Bean、集合、Map、日期、Enum, 阅读全文
posted @ 2017-11-03 18:06 hongdada 阅读(2035) 评论(0) 推荐(0) 编辑

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