- 博客(12)
- 资源 (9)
- 收藏
- 关注
原创 常用正则表达式公式总结
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^d{n}$ 至少n位的数字:^d{n,}$ m-n位的数字:^d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数...
2019-06-20 07:36:06 1062
原创 使用 kill 命令杀死 java进程,你用对了吗?
在本地调试agent相关功能,需要经常性的杀掉Java进程,验证一些极端情况。每次都是本能执行如下步骤 jps kill -9 reboot 有一次发现代码中添加的 ShutdownHook没有生效,难道和 kill命令后面的数字有关?经过一番查阅,后面的数字代表的是具体信号, kill命令可将指定的信号发送给相应的进程,linux中常见的信号如下: 1...
2019-06-20 07:32:39 9436 2
原创 数据库死锁案例分析
一 前言死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助二案例分析2.1 业务场景用户录入商品,应用程序会提前检查是否存在相同记录,如果有则先删除再插入;如果没有则直接插入。2.2 环境说明MySQL 5.7.22 事务隔离级别为RC模式。 cr...
2019-06-11 07:46:55 1645
原创 二分搜索树的原理与Java源码实现
01折半查找法了解二叉查找树之前,先来看看折半查找法,也叫二分查找法。在一个有序的整数数组中(假如是从小到大排序的),如果查找某个元素,返回元素的索引。如下:int[]arr=newint[]{1,3,4,6,8,9};在arr数组中查找6这个元素,查到返回对应的索引,没有找到就返回-1思想很简单:1 先找到数组中间元素target与6比较2 如果targ...
2019-06-10 08:05:20 483
原创 理解Python爬虫框架pyspider
一、pyspider简介pyspider是Binux做的一个爬虫架构的开源化实现,主要功能有 : 抓取、更新调度多站点的特定的页面 需要对页面进行结构化信息提取 灵活可扩展,稳定可监控 pyspider以去重调度,队列抓取,异常处理,监控等功能作为框架,只需提供给抓取脚本,并保证灵活性。最后加上web的编辑调试环境,以及web任务监控,即成为了这套框架。py...
2019-06-10 07:52:40 1229
原创 TCP/IP的底层队列实现原理
自从上次学习了TCP/IP的拥塞控制算法后,我越发想要更加深入的了解TCP/IP的一些底层原理,搜索了很多网络上的资料,看到了陶辉大神关于高性能网络编程的专栏,收益颇多。今天就总结一下,并且加上自己的一些思考。 我自己比较了解Java语言,对Java网络编程的理解就止于Netty框架的使用。 Netty的源码贡献者Norman Maurer对于Netty网络开发有过一句建议,"Never bl...
2019-06-09 17:15:42 1773 1
原创 24 道 shell 脚本面试题
虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到shell 脚本的问题,它有助于你在工作环境中自动完成很多任务。如下是一些面试过程中,经常会遇到的 shell 脚本面试问题及解答:Q:1 Shell脚本是什么、它是必需的吗?答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项...
2019-06-03 21:05:17 1098
原创 杀死僵尸进程,你需要这些神奇高效的Linux命令行
命令行的学习捷径Linux 命令有许多强大的功能:从简单的磁盘操作、文件存取,到进行复杂的多媒体图像和流媒体文件的制作,都离不开命令行。在 Linux 的学习中,新手都会遇到这么一个问题:自己对系统的每个命令都很熟悉,但是在系统出现故障的时候,就无从下手了。说到底,就是学习的理论知识没有很好地与系统实际操作相结合。5 大系统运维状态对运维来说,查看系统运...
2019-06-03 20:57:18 1448 2
原创 计算机算法基础总结
00 前言本文主要是通过通俗易懂的算法和自然语言, 向大家介绍基础的计算机排序算法和查找算法, 还有一些作为一名程序猿应该知道的名词, 数据结构, 算法等等. 但是仅仅止于介绍, 因为本人能力不足, 对一些高级的算法和数据结构理解不够通透, 所以也不作太多的深入的剖析.. demo都在我的Github中能找得到。同样的, 通过最近面试实习生的机会, 把一些基础都捡起来, 巩固巩固, 同时...
2019-06-03 20:47:56 809
原创 DockerFile 命令总结
只描述非windows系统。FROM[:] [AS]: 设置基础镜像 FROM alpine:latest RUN\ ["executable", "param1", "param2"]: 执行shell脚本。进来少使用RUN,因为没执行一次 docker就会增加一层只读层。 RUN /bin/bash -c 'source $HOME/.bashrc; \...
2019-06-03 07:48:28 979 1
原创 分布式、高并发、多线程?有什么区别
是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?一开始,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。什么是分布式?分布式更多的一个概念,是为了解决单个物理服...
2019-06-03 07:39:48 741
原创 连接池究竟是什么
通常如何通过连接访问下游?工程架构中有很多访问下游的需求,下游包括但不限于服务/数据库/缓存,其通讯步骤是为:(1)与下游建立一个连接;(2)通过这个连接,收发请求;(3)交互结束,关闭连接,释放资源;不管是服务/数据库/缓存,官方会提供不同语言的Driver、Document、DemoCode来指导使用方建立连接与调用接口。以MongoDB的C++官方Driv...
2019-06-03 07:35:54 2845 1
阿里巴巴9年双11
2018-01-23
阿里巴巴2016双11背后的技术
2018-01-19
Java数据结构概述图表
2017-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人