![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
别惹猪儿虫
这个作者很懒,什么都没留下…
展开
-
ELK、Kafka日志搜集
前言使用 ELK+Kafka 首先需要安装相应的软件,我安装的都是 6.4.3的版本,不同的版本可能会有冲突。一些地方可能更改其中这几个工具的作用分别是FileBeat 收集过滤日志文件。将日志文件收集后发送至kafkaKafka 作为日志的吞吐程序,消息中间件LogStash 从Kafka 中取出数据,然后发送至 ESES 作为日志的检索工具Kibana 作为日志可视化工具如...原创 2020-04-14 17:50:08 · 312 阅读 · 0 评论 -
Java8 stream流的演示
前言我们前面说了 lambda表达式,这次我们就将下JDK8的另一个新特性,流(Stream)stream和lambda搭配使用效果更佳,(如果你没有学过lambda表达式,最好先学习下lambda表达式)看着逼格也更高,也更简洁我们就拿之前的lambda表达式的举例我们需要找出集合中所有的 男同学 按照年龄从小到大排序 并且打印出来,我们就这样写studentList.stream(...原创 2020-02-11 13:48:02 · 198 阅读 · 0 评论 -
jdk8 lambda表达式
前言项目代码在本级目录下的lambda_demo中说起 JDK8 的新特性,总绕不过两个,一个是流(stream),一个就是 lambda表达式。因为 引入 lambda 表达式 可以说是 Java 的一次革命性的尝试,因为lambda表达式是函数式编程,把函数方法参数化。而之前的 Java 是面向对象的,非常非常严格的。甚至可以说是呆板。但是 Java的之前的那种风格 或者说设定并不...原创 2020-02-11 13:29:39 · 473 阅读 · 0 评论 -
JDK8 stream流的骚操作
前言我们前面说了 lambda表达式,这次我们就将下JDK8的另一个新特性,流(Stream)stream和lambda‘搭配使用效果更佳,(如果你没有学过lambda表达式,最好先学习下lambda表达式)看着逼格也更高,也更简洁我们就拿之前的lambda表达式的举例我们需要找出集合中所有的 男同学 按照年龄从小到大排序 并且打印出来,我们就这样写studentList.stream...原创 2020-02-10 15:32:22 · 932 阅读 · 0 评论 -
redis配置和使用
前言我们通过和数据库的交互获取数据,但是某些数据加载会严重影响性能,因为查询数据库是一个比较耗时的事情。我们能不能提高查询数据的效率?这个时候我们就需要使用 redis了。(当然提升查询效率不只有redis)如果图片链接失效可以直接在github上看,而且更新更及时,也更加有条理。在项目模块有相关文章https://github.com/leosanqing/Java-Notes目前已经有...原创 2020-02-08 12:13:49 · 229 阅读 · 0 评论 -
需要上级先处理的双亲委派模型
我们打仗的时候,另外一个陌生的队伍让你调兵支援,你是自作主张,还是向上级汇报,让上级处理,请求上级指示,按照指示行动呢?原创 2019-05-13 12:48:04 · 440 阅读 · 0 评论 -
类加载都经历了啥
前言前面介绍了字节码的读法,下面就是把字节码存入到内存中,那么他又是怎么加载的这些字节码文件的呢?我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关可以点个star,剑指offer题解(Java版),设计模式。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repo大纲 什么是类加载加载验证...原创 2019-05-13 09:58:07 · 160 阅读 · 0 评论 -
能看懂的字节码-下
前言上一篇看得懂的字节码讲了怎么看字节码,以及字节码中的魔数、版本号和常量池部分,这篇文章接着字节码顺序往下将。请一定要看了上一篇之后再看这一篇,因为有绝对的逻辑关系,不看上一篇这篇基本看不懂。如果这篇文章中有我没有讲到怎么出现的东西,(比如程序的代码,javap工具,查看字节码的工具等)就是我在上一篇文章中已经提到过的,可以查看我的上一篇文章来找到答案。上一篇地址 能看懂的字节码-上我...原创 2019-05-13 09:56:46 · 300 阅读 · 0 评论 -
能看懂的字节码-上
大纲文章目录大纲前言Class文件结构需要记的Class文件格式严格限定,不可更改准备程序软件打开命令行魔数概念Class文件的魔数版本号常量池范围有什么怎么看最后下篇预告前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请...原创 2019-05-13 09:55:01 · 257 阅读 · 0 评论 -
栈帧中都有啥东西
运行时栈帧中存储了以下内容- 局部变量- 操作数栈- 动态链接- 返回地址- 附加信息- ….原创 2019-05-13 12:49:22 · 3376 阅读 · 0 评论 -
对象内存布局
在HotSpot中,对象在内存中存储的布局可以分为三个区域:- 对象头- 实例数据- 对齐填充下面我们就挨个说下这三个东西到底是啥,有啥东西一定要重点注意第一个对象头里的东西,因为讲并发时**锁优化**还有**对象创建**会用到这个原创 2019-06-17 22:13:20 · 89 阅读 · 0 评论 -
轻量级锁、重量级锁都是啥玩意
在JDK1.6以后,为了减少消耗,锁进行了很多的升级。并且有了四种状态,从低到高- 无锁状态- 偏向锁状态- 轻量级锁状态- 重量级锁状态下面就介绍一下这四种不同等级的锁原创 2019-07-03 08:35:40 · 9066 阅读 · 1 评论 -
锁还有悲观者和乐观者
悲观锁和乐观锁是面试的高频问题,那么他们都是啥样的锁呢?原创 2019-07-10 21:45:36 · 170 阅读 · 0 评论 -
帮你解决类的关系,看源码必备
阅读源码搞不清楚类之间的关系,贵圈真乱?没关系,这里有一个编译器的小工具帮你搞清楚他们之间的关系原创 2019-07-27 10:16:27 · 156 阅读 · 0 评论 -
ReentrantLock源码分析
ReentrantLock,在面试的时候也是高频问题。他是一个可重入锁(同样的还有 Synchronized) ,可重入的意思是,当一个资源被一个线程拿到并加了锁之后,这个线程还可以再次进入这个资源,然后再次加锁。锁的count++。当count==0,之后,才表示这个锁被释放,其他线程可以抢夺那么他是怎么实现的呢?我们进入到ReentrantLock的源码中进行分析原创 2019-07-28 10:38:44 · 99 阅读 · 0 评论 -
从原始到最新的垃圾回收器
垃圾回收器是垃圾回收的具体实现,这里只讲Hotspot虚拟机的7中不同的垃圾回收器。- 新生代 - Serial - ParNew - Parallel Scavenge- 老年代 - CMS - Serial Old - Parallel old- 二者皆可的 G1(JDK1.9之后,成为默认的收集器)- ZGC(文章中会提到)原创 2019-05-13 09:49:06 · 428 阅读 · 2 评论 -
Java内存区域和内存模型
大纲前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repoJava内存区域(内存结构)是面试的时候,问到JVM相关一定会问的东西,但是很多人有些概念是搞混的重要阅读这篇文章前,一个重要的概念要弄...原创 2019-05-13 09:36:24 · 103 阅读 · 0 评论 -
为啥HashMap的长度一定是2的n次方
大纲文章目录大纲前言谨记最大长度为什么table长度一定是2的n次方2的n次有什么好处分布均匀计算方便JDK 1.8改动计算索引需要对比1.7扩容前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repo...原创 2019-05-13 09:27:50 · 602 阅读 · 0 评论 -
Java现在还比C++执行慢吗?——JVM运行期优化
是不是很多人的印象中,Java要比C++运行的慢?如果现在还停留在这个想法,那或许该更新下想法了,因为Java近几年在运行优化方面做了非常多的研究和改进,可以说已经基本不怎么输于C++的运行速度了。我们参照HotSpot虚拟机的优化来说明,不同虚拟机肯定是不同的,但是也有参考价值。原创 2019-05-16 15:36:31 · 503 阅读 · 0 评论 -
HashMap-put源码分析(带注释)
大纲文章目录大纲写在前面本文结构脉络个人理解语句以及中文注释HashMap 的数据结构数组+链表为啥采用这种方式源码中的变量名数组链表其他put元素步骤那么假如我现在执行下面的语句,他到底怎么执行第一条语句-构造函数第二条语句put函数hash 函数,计算哈希值改进的目的putValue函数返回值分析putValue函数条件计算索引resize函数调用的情景执行逻辑源码注释重要:扩容后元素的位置...原创 2019-05-12 23:12:03 · 583 阅读 · 0 评论 -
JVM垃圾回收
大纲文章目录大纲前言哪些内存需要回收第一部分第二部分方法区的回收废弃常量无用的类什么时候回收引用计数法思路缺点可达性分析法思路可以作为GC Root的对象引用强引用软引用弱引用虚引用如何回收标记-清除缺点标记-复制过程不足标记-整理过程缺点分代收集算法Hotspot中算法实现枚举根节点安全点作用概念选取标准如何完成安全区域总结Java 和 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成...原创 2019-05-12 23:16:24 · 118 阅读 · 0 评论 -
HashMap传入参数,初始长度为多少
大纲文章目录大纲前言创建函数时,传入初始长度0,1,2,3,4……15,16,数组table长度为多少前言我的所有文章同步更新与Github–Java-Notes,想了解JVM,HashMap源码分析,spring相关,剑指offer题解(Java版),可以点个star。可以看我的github主页,每天都在更新哟。邀请您跟我一同完成 repo创建函数时,传入初始长度0,1,2,3,4...原创 2019-05-12 23:19:02 · 3745 阅读 · 0 评论