加载中
钉钉扫码登录

功能描述 通过钉钉扫码登录,并且获取到登录的用户信息。这样省去自己开发一套登录系统。相对比较方便。 背景描述 现在钉钉主推E应用,官方的案例也是E应用的,其实这个E应用的后台调用的过程...

11/22 13:50
22
聊聊LinkedHashMap

LinkedHashMap简介 LinkedHashMap是一个根据某种规则有序的hashmap。根据名字,我们也可以看出这个集合是有hash散列的功能的同时也有顺序。hashmap是无法根据某种顺序来访问数据的,例如放入...

11/12 13:55
414
优雅的给线上环境打补丁

场景 在线上往往会遇到一些比较尴尬的异常,例如空指针。这种操作往往是某些情况校验不完善,客户输入了各种奇怪的内容导致的。当遇到这种情况的时候,修改都很方便,但是如何更新到线上是个...

11/06 00:45
8
从classloader说起

说起classloader可能最先想到的就是双亲委托。这次就换个角度来谈这个。 从classloader到单例 单例是一种设计模式。表明上看好像和classloader没有什么关系。所以我们从单例的代码入手开始考...

从hashmap说起

说到hashmap我们能想到什么呢 hash hashmap的hash方法极大的避免了hash冲突。他通过高16位和低16位做异或操作。保证了32位都参加运算。 static final int hash(Object key) { int h; return ...

10/26 21:18
11
aqs速读

说起aqs很多人都感觉很头疼,下文就从几个角度了解,让你快速了解aqs。 预热知识 aqs获取锁等主要用的cas以及locksupport。对锁的控制是一个int类型的状态state。例如获取锁就是通过cas把sta...

10/26 14:07
11
jmx的垃圾回收器次数揭秘

对于jmx提供的垃圾回收器的次数,很多人的疑问点都是老年代的回收次数是否等于FGC的次数。下面我们就围绕这个问题来进行分析。 jmx的提供以及用法 api介绍 public interface GarbageCollecto...

kafka之重复消费数据

在进入主题之前,我们先思考一个问题。 问题 kafka消费者使用自动提交的模式,提交间隔为2s,消费者在获取数据的时候处理0.5s,从kafka拉取过来的数据只够处理1秒。那么消费者下次拉取过来的...

10/07 19:43
11
jvm误区--动态对象年龄判定

虚拟机并不是永远地要求对象的年龄必须达到了MaxTenuringThreshold才能晋升老年代,如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可...

09/29 20:01
1K
jvm的几个概念误区

serial old是一种垃圾回收器 serial old其实表示的是一种说法,老年代单线程回收。在不同的垃圾回收器中实现各部相同,现在有以下几种实现g1MarkSweep,psMarkSweep,genMarkSweep。 parall...

09/27 22:28
559
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

09/23 23:46
835
spark--当分组遇到排序的解决思路

场景 现在有如下数据格式 图书分类,图书名,数量 现在想统计全部分类中数量最多的书名以及数量 场景解析 如果不基于spark,我们来思考这个问题,数据量大内存是放不下,分类也不确定有多少类...

09/04 21:25
353
hbase查询解析

hbase查找流程图 流程说明 从zk获取meta地址 客户端查询一个数据,先根据zookeeper获取meta表所在的region信息,meta表里存着region的各种信息,但是他也是在region里的,会被一个regionser...

java spi机制

从JDBC说起 java JDBC的代码用起来其实是比较麻烦的,例如下面的例子 String DBDRIVER = "com.mysql.jdbc.Driver"; String DBURL = "jdbc:mysql://localhost:3303/javadata"; String DBUSER ...

08/24 21:59
23
jvm垃圾回收导图

很多人都感觉jvm垃圾回收很麻烦,其实常见的场景是有限的大概是三种,parNew+cms,g1,parallel+parallel old。 parallel+parallel old是一个吞吐量优先的选择。parNew+cms,g1都是响应优先的选...

08/21 16:48
16
依靠动态规划编写单词提示功能

单词提示功能 单词提示在ide中特别常见,eclipse,ideal等等,包括atom等等文本编辑器中也有这样的功能,基本就是你写个单词字母,他来提供你可能想输入的单词,例如写个Str,就会提示String,...

07/26 17:24
521
zk实战--rpc框架集群化

在看此篇内容时需要浏览下面内容 netty实战--手写rpc框架 前文功能简介以及功能扩充 利用netty来实现一个点对点的rpc调用。客户端和服务端都是靠手写地址进行socket同学的,无法1对多,也无法...

ZK
07/17 13:26
608
jstat的小伙伴---找出system.gc的调用的小工具

场景分析 现场环境中,造成gc频繁的可能性之一就是通过system.gc主动调用了gc。这种情况出现在开发人员业务代码,或者是jdk自身的代码中(例如nio)。我们可以通过jstat -gccause查看gc的原因...

07/08 11:15
478
字节码实战--手写一个btrace

简易的btrace需求 偶现的方法执行慢,我们是可以用jstack捕捉到的,但是慢到什么地步却是不一定知道的,现在就需要在不重启应用的情况下,获取方法执行的时间。 需求特点 应用不重启 获取方法...

07/05 23:37
2K
教你一招破解字节码加密

字节码加密的需求 java的字节码是可以反编译的,所以很多时候,做商用产品的时候,防止别人看你的核心代码是一个必要手段,字节码加密的需求就诞生了,本质就是防止别人反编译看代码。加密的...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部