![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 59
csdn-lijie
这个作者很懒,什么都没留下…
展开
-
MAP-HashMap-ConcurrentHashMap 图解分析源码快速掌握底层
介绍最近有点时间,对map和ConcurrentHashMap的基本源码进行了学习,想搞清楚的看我这两张图解就够了MAP-HashMapMap-HashMap源码解析:put源码解析–>如何放入红黑树->hash表和红黑树分别如何扩容https://www.processon.com/view/link/60e9787c079129265422962eConcurrentHashMapConcurrentHashMap的图解分析、特有节点、put方法解析、总结与hashMap的核原创 2021-07-10 18:39:33 · 161 阅读 · 0 评论 -
idea启动项目让控制台输出汇编代码
学习volatile时,想看底层源码,只能查看汇编代码。因此在启动参数加上:-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -Xcomp如图:但是启动就会报错:报错信息:Connected to the target VM, address: '127.0.0.1:58499', transport: 'socket'Could not load hsdis-amd64.dll; library not loadable; PrintAs原创 2020-12-16 19:34:45 · 852 阅读 · 0 评论 -
java基础回顾-jvm
通过画图的方式分析回顾一下JVM内存模型、简单分析一下常量的赋值过程、新生代老年代的GC过程、jvm类加载的过程详解、https://www.processon.com/view/link/5fce3c176376893e2c6d7406我很多学习的记录都在processon上完成的,欢迎大家克隆拿走...原创 2020-12-09 23:51:16 · 101 阅读 · 0 评论 -
java基础回顾-Stream流常用api、串行和并行流源码分析
一、default关键字1、简述概念default关键字:默认方法与冲突在Java中有一条亘久不变的定理:类只能单继承,接口可以多实现。Java8之前由于接口中的方法全部都是抽象方法,一个类如果同时实现两个拥有相同方法签名的接口并不会出现冲突,实现类只需要重写该方法即可。但是在Java8中出现了默认方法,这样一来就有可能会出现Java一直在避免的多继承问题——一个类从多个地方(类或接口)继承了有相同方法签名的方法。比如接口A有个方法和接口B的方法一样。一个实现类C实现了A和B,C的子类是D:原创 2020-12-03 01:14:51 · 225 阅读 · 0 评论 -
java基础回顾-Lambda表达式
一、简述Lambda表达式:注意表达式的方法体底层会将用到的局部变量默认加上final,如果在方法体中对方法外的变量进行修改时,是编译失败的本质上是一段匿名内部类,也可以是一段可以传递的代码。自动加了final的原因:涉及到闭包,即通过方法将局部变量包围住,对这个局部变量进行引用,这样会延长该变量的生命周期;会在编译时,自动给该变量加上final。即闭包的变量都是常量。因此后面也无法对这个变量进行操作。二、入门2.1配置idea不识别lambda表达式解决办法:第一步:File -->原创 2020-12-03 01:05:12 · 78 阅读 · 0 评论 -
切面日志注解导致方法catch部分失效
问题描述由于项目日志查询由运维组管理,索取日志不方便。为了方便问题定位,需要写一个错误日志收集功能。实现思路编写一个工具类,在每个异常的部分和不符合条件打回的部分,通过工具类将异常信息或条件不符合的具体原因封装到实体类,发送到mq,由一个专门的接口监听将相关信息存储,便于后期问题的定位。工具类代码:/** * 异常日志收集工具类 * @author Administrator */@Componentpublic class CollectUtil { private final原创 2020-08-27 19:22:49 · 433 阅读 · 0 评论 -
不能在加强for循环中remove,那具体原因是什么?
测试代码:List<String> list=new ArrayList<String>(); list.add("1"); list.add("2"); /* 方式1: for (int i = 0; i < list.size(); i++) { if (list.get(i).equals("2")){ list.remove(list.g原创 2020-07-16 23:33:59 · 782 阅读 · 0 评论 -
java8对map新增强的方法
java8对map新增强的方法:getOrDefault(key,value); default V getOrDefault(Object key, V defaultValue) { V v; //只要满足一个条件就返回v:key对应的值不为null;或者map中有这个key return (((v = get(key)) != null) || containsKey(key)) ? v : defaul原创 2020-05-21 13:34:21 · 624 阅读 · 0 评论