8 帅性而为1号

尚未进行身份认证

就读于东南大学,现阿里巴巴Java工程师

等级
TA的排名 6k+

比较两个实体类的属性值工具

public static Map<String, CompareDTO> compareFields(Object source, Object target, List<String> comparedPropertyList) { try { Map<String, CompareDTO> map = Map...

2019-10-10 19:22:07

通过itext合并PDF工具类

maven坐标:<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <dependen...

2019-08-22 14:09:15

JVM命令使用演示

之前推送了一本jvm相关的书籍【JVM Troubleshooting Guide】书籍推荐及下载,个别小伙伴反馈说关于jvm看了不少资料,有些印象,但是不知道如何使用那些命令。就着这个前提,简单演示一下jvm一些命令的使用。(温馨提示,由于jvm命令返回的字符串偏长一些,手机上效果差一些,建议在电脑上看)首先,先准备一段代码,直接运行一个java程序也可以,比如:@Sl...

2019-07-28 11:16:39

JVM性能调优监控工具jps、jmap、jstack、jstat使用详解

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 ...

2019-07-28 11:11:12

JVM性能调优监控工具jps、jstack、jstat、jmap、jinfo使用详解

jps查看所有的jvm进程,包括进程ID,进程启动的路径等等。我自己也用PS,即:ps -ef | grep javajstack观察jvm中当前所有线程的运行情况和线程当前状态。系统崩溃了?如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发...

2019-07-28 11:04:41

通过jstack与jmap分析一次线上故障

一、发现问题 下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复。二、排查思路简单分析下可能出问题的地方,分为5个方向:1.系统本身代码问题2.内部下游系统的问题导致的雪崩效应3.上游系统调用量突增4.http请求第三方的问题5.机器本身的问题三、开始...

2019-07-28 11:00:28

为什么Map桶中个数超过8才转为红黑树

被问及的一个问题,应该不少人看到这个问题都会一面懵逼。因为,大部分的文章都是分析链表是怎么转换成红黑树的,但是并没有说明为什么当链表长度为8的时候才做转换动作。笔者第一反应也是一样,只能初略的猜测是因为时间和空间的权衡。 要弄明白这个问题,我们首先要明白为什么要转换,这个问题比较简单,因为Map中桶的元素初始化是链表保存的,其查找性能是O(n),而树结构能将查找性能提升...

2019-07-24 11:38:45

LinkedHashMap 源码详细分析(JDK1.8)

https://www.imooc.com/article/22931作者:田小波链接:https://www.imooc.com/article/22931来源:慕课网本文原创发布于慕课网 ,转载请注明出处,谢谢合作...

2019-07-24 10:49:31

HashMap 源码详细分析(JDK1.8)

https://www.imooc.com/article/30668作者:田小波链接:https://www.imooc.com/article/22931来源:慕课网本文原创发布于慕课网 ,转载请注明出处,谢谢合作

2019-07-24 10:45:42

BASE理论

什么是BASE理论BASE 是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent(最终一致性)三个短语的简写,由 eBay 架构师 Dan Pritchett 于 2008 年在《BASE: An Acid Alternative》(论文地址点这里)论文中首次提出。BASE 思想与 ACID 原理截然不同,它满足...

2019-07-23 21:02:43

Java开发体系(转)

今天,就为大家整理一份目前互联网公司最主流的技术选型:阅读源码程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。那要如何正确的分析源码呢?分布式架构随着我们的业务量越来越大和越重要,单体的架构模式已经无...

2019-07-16 13:45:29

微服务--分布式事务的实现方法及替代方案(转)

概念事务补偿机制: 在事务链中的任何一个正向事务操作, 都必须存在一个完全符合回滚规则的可逆事务. CAP理论: CAP(Consistency, Availability, Partition Tolerance), 阐述了一个分布式系统的三个主要方面, 只能同时择其二进行实现. 常见的有CP系统, AP系统. 幂等性: 简单的说,业务操作支持重试, 不会产生不利影响. 常见的实现方式...

2019-07-16 11:39:14

Java中CAS原理详解

前言在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是vol...

2019-07-14 12:02:32

解释一下什么叫AOP(面向切面编程)

解释一下什么叫AOP(面向切面编程)java动态代理中的invoke方法是如何被自动调用的(转)

2019-07-10 20:47:36

缓存替换策略

替代策略的具体实现就是缓存算法,这里简要介绍一下主流的缓存算法:(1)Least-Recently-Used(LRU)替换掉最近被请求最少的对象,这种传统策略在实际中应用最广。在CPU缓存淘汰和虚拟内存系统中效果很好。然而在直接应用与代理缓存中效果欠佳,因为Web访问的时间局部性常常变化很大。浏览器就一般使用了LRU作为缓存算法。新的对象会被放在缓存的顶部,当缓存达到了容量极限,底部...

2019-07-09 09:50:58

JDK源码阅读顺序

JDK源码阅读顺序JDK源码阅读指南(简洁版)一起学JDK源码

2019-07-08 16:06:36

CAP 定理

CAP 定理的含义一句话明白CAP原理成为架构师,你必须知道的CAP理论

2019-07-07 10:22:11

消息中间件-Kafka

为什么Kafka速度那么快

2019-07-06 16:03:20

从分布式一致性到共识机制

从分布式一致性到共识机制(一)Paxos算法从分布式一致性到共识机制(二)Raft算法从分布式一致性到共识机制(三)拜占庭问题

2019-07-06 16:00:32

Spring @Transactional

Spring @Transactional 失效 和 传播行为事务的传播行为和隔离级别

2019-07-06 15:42:47

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。