读懂Java_Thread_Dump

前段时间有现场发现死锁的问题,查看发回来的jstack dump文件,发现虽然大致看懂,但是不是很透彻。从网上看了一些介绍jstack的文章,大部分复制粘贴,讲解的也不够透彻,现在有时间来自己整理一下jstack的知识,记录一下~

获取Dump

java 提供了查看当前用户启动的java进程的工具 JPS:jps

1
2
3
4
5
5008 org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar
10712 Main
888 App
15804 Jps
34300 SynchronizedTest

阅读全文 »

理解JavaScript作用域链

最近在读《JavaScript权威指南》,读到“函数作用域和声明提前”这部分内容时有点晕,上网查了一些资料,算是弄明白了,所以把自己的理解记下来~

作用域

  1. 全局作用域

在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:

  • 最外层函数和在最外层函数外面定义的变量拥有全局作用域,例如:
1
2
3
4
5
6
7
8
9
10
11
12
var a="global";
function doSomething(){
var b="local";
function innerSay(){
alert(b);
}
innerSay();
}
alert(a); //global
alert(b); //脚本错误
doSomething(); //local
innerSay() //脚本错误

阅读全文 »

组合模式的妙用

组合模式定义

component
  • Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component
    子部件。

  • Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。

  • Composite 定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(add)和删除

阅读全文 »

炒茄子

原料

茄子、姜片、葱、蒜、干辣椒、郫县豆瓣酱、盐、花椒粒、料酒、醋、生抽、白糖、味精

做法

  1. 茄子一个,洗净,切成条

  2. 锅烧热,直接将切好的茄条倒入,小火翻炒,直到茄子变软,且水分炒调一些,盛出

  3. 锅中倒油,油七成热后加入姜片、葱丝、蒜末、干辣椒、花椒粒炒香

  4. 放入一勺郫县豆瓣酱,继续翻炒出红油和香味

  5. 倒入茄子条,翻炒几下

  6. 将香醋3勺,生抽2勺,盐半勺,料酒1勺,白糖1勺,味精半勺调成汁,倒入锅中

  7. 翻炒均匀,待调味汁收干入味后撒葱花出锅

阅读全文 »

git服务器的配置

公司一直在使用Starteam作版本控制,这是个很古老的工具,也有不少的BUG…最近为公司搭建了Git服务器试用,把搭建的过程记录下来…

ssh配置

可以使用ssh协议搭建ssh服务,适合于几个人的小团队,每个人都拥有读写的权限。

配置git服务器

通过创建一个专门的git用户,作为访问git服务的账户

1
2
3
4
5
6
$ ssh root@192.168.1.110
$ sudo adduser git
$ su git
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

阅读全文 »

红烧排骨

原料

排骨、葱片、姜片、八角、花椒粒、料酒、生抽、蚝油、盐、白糖

做法

  1. 锅中倒水,将剁好洗净的肋排放入,煮几分钟,撇去杂质后捞出

  2. 锅中放少许油烧热,放入葱花、姜片、八角、花椒炒香

  3. 放入肋排,翻炒至肉变色(注意时间不要太长,否则肉会变老)

  4. 倒入料酒、生抽、蚝油,翻炒几下

  5. 加入清水(高汤)刚好没过排骨,大火烧开

  6. 小火慢炖四十分钟左右,大火收汁出锅

阅读全文 »

状态机与状态模式

又是很长时间没有写博客了(一个月)…最近在做一个SpringBoot+Vue的项目,所以一直在看spring相关的东西。今天要学习的跟spring
没有关系,是我在之前维护的一个测试工具是遇到的一个知识点–状态机

这个测试的一个功能就是解析自己定义的一套脚本语法规则,涉及到对输入的语句进行解析,然后下发到对应的执行器去执行。

之前的解析逻辑是用一个while循环,对每一个字符判断,然后各种if…else和临时变量…总之读起来十分费劲,并且总容易出BUG,而且十分不容易修改,因为每一个修改都很容易影响到原来的解析结果。
于是我把这段解析的代码重构了一遍,就是使用了状态机的思想。

阅读全文 »