堆和栈的区别

前言

java的内存有两种:堆内存和栈内存,堆和栈都是用来在内存中存放数据的地方,只是各自的运行机制有所不同。

什么是堆

堆,是运行时数据区,通过new等指令建立的对象从堆中分配空间,然后通过GC垃圾回收器来进行销毁。

Read More

线程通讯

前言

线程通讯的本质,其实就是通知和控制,而在一个线程中,通过十八般武艺去控制其他线程的方法,就是线程通讯实现方式。

其目的是为了线程之间更好的协作,从而完成一些复杂的工作。

Read More

grep与cat、sed的结合

grep查找命令

grep命令是linux系统中,最常用的文件字符串查找命令,职业生涯中,我们几乎离不开它。

下面是它最简单的用法,不过实际情况下,我们通常会添加很多参数或结合其他的命令去进行使用。

Read More

shell拆分大文件

shell拆分大文件

1,按照行数拆分

语法:split -行数 文件 /路径/前缀

示例:针对a.log文件进行拆分,每6行拆分一个文件,拆分的文件存放在/tmp下,按照new为前缀生成:

Read More

使用rsync同步服务器数据

简介

rsync是一个快速和非常灵活的文件拷贝工具,增量拷贝工具。

rsync的使用方式与SCP差不多,但rsync相对SCP有更多的额外选项。通过rsync –help命令可以查看支持选项类型的完整列表和帮助信息。

Read More

深入理解HashMap

前言

基于jdk 1.8

1,HashMap的原理,内部数据结构是什么样的?

数组 + 单向链表的形式,这就是HashMap的存储方式,那么如何去验证呢?

Read More

数字随机拆分-类似发红包

前言

有的时候,我们需要做一个类似微信发红包的逻辑,这就涉及到随机拆分红包的功能了。

那么如何去实现这个能力呢?

最简单的逻辑:先创建一个长度等于发放人数的数组,先赋值一个初始值,防止随机分配的时候未进行赋值。然后将剩下的值,随机分配的这个数组中即可。

Read More

arthas-trace命令和thread命令的妙用

trace命令使用

trace 能方便的帮助你定位和发现因 RT 高而导致的性能问题缺陷,但每次只能跟踪一级方法的调用链路
注:以下命令按”q”退出

Read More

arthas-使用watch和tt观测方法执行数据

watch命令使用

1,使用watch命令让你方便的观察到指定方法的调用情况,能观察
到的范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看

Read More

arthas-编译和反编译Java类

命令演示

1,使用jad命令可以将class反编译为java类

命令:jad –source-only 类reference > java类路径

Read More