自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (5)
  • 论坛 (2)
  • 收藏
  • 关注

原创 利用clustersh在集群中执行shell脚本

引言本文将介绍一个叫做clustersh的命令行小工具。如果你想要在许多刚刚装完linux系统的服务器(可能有上百台)上统一执行某个shell脚本,那么clustersh就非常适合你。“刚刚装完linux操作系统”仅仅是为强调clustersh不需要在集群上安装任何东西,并不是clustersh运行的必要条件。如果你的集群中包含很多不同种类的Linux发行版系统,clustersh还...

2019-04-08 09:27:25 492

原创 图解java.util.concurrent源码 (八)LinkedBlockingQueue

引言上一篇文章中分析了ArrayBlockingQueue的源码,说好这一篇文章中要继续分析LinkedBlockingQueue的源码并且对比他们的使用场景,在看这篇文章之前建议先看一下上一篇文章。LinkedBlockingQueue数据结构LinkedBlockingQueue底层是一个链表结构,入队时直接将节点连接在链表的后面,出队时直接将头结点剔除即可,核心的变量如下:ca...

2018-12-31 16:01:05 213

原创 图解java.util.concurrent源码 (七)ArrayBlockingQueue

引言在并发编程中经常需要进行生产者消费者之间的同步,此时我们最经常使用的同步工具就是有界阻塞队列(BlockingQueue)了,这篇文章和下一篇文章将分别分析最经常使用的两个有界队列,ArrayBlockingQueue和LinkedBlockingQueue的原理,然后对比他们的性能以及使用场景。BlockingQueue接口BlockingQueue接口定义了juc中阻塞队列的标准...

2018-12-30 20:48:16 130

原创 图解java.util.concurrent源码 (六)CyclicBarrier (循环栅栏)

引言上一篇文章提到,CountDownLatch不支持重置计数,如果你有反复重置计数的需求的话,最好使用CyclicBarrier。CyclicBarrier的中文名叫做"循环栅栏",能够让n个线程都到达同步点之后再让他们开始运行,之后CyclicBarrier就会重新计数,这个过程可以反复进行,甚至还可以在到达同步点与重新运行之间插入一段代码(叫做barrierAction)。Demo...

2018-12-25 00:58:57 182 2

原创 图解java.util.concurrent源码(五) CountDownLatch

引言今天分享一个比较简短一些的源码,那就是concurrent包中我们经常使用的CountDownLatch同步器,"latch"在英文中也是锁的意思,翻译成中文就是“倒数锁”,当你调用了这个类型对象中的await方法后,必须要等待这个锁倒数到0,才能继续运行。这个类的源码非常短,因为其实它就是对AQS共享模式的一个简单实现而已,如果你还不理解AQS的话,可以去看看我这个系列的第一篇文章和第...

2018-12-23 21:38:17 121

原创 提升并发程序性能(tps/qps)的几个技巧总结

引言之前参加中间件比赛,以及一些日常开发的经验,在这里总结了一些提升程序性能(qps/tps)的技巧,持续更新。一些只适用与比赛而不适合实际工程的技巧我会用斜体 (only race) 标注1、减小锁的粒度案例:ConcurrentHashMap采用分段锁提升了并发时map的性能SkipList(跳表):跳表相比红黑树的优势就是,红黑树的一次插入删除操作经常会导致全局的调整,导致整棵树...

2018-12-16 15:06:48 2689

原创 图解java.util.concurrent源码(四) 可重入读写锁(ReentrantReadWriteLock)

引言上一篇文章所讲述的ReentrantLock和Semophore分别是AQS在独占模式和共享模式的经典实现。而这次要分享的ReentrantReadWriteLock则是混合了独占共享模式的经典实现。在读这篇文章之前,你最好已经理解了AQS和ReentrantLock,如果你还不理解的话,可以分别见本系列的第一篇文章和第三篇文章读锁和写锁从一个ReentrantReadWriteL...

2018-10-07 01:42:58 123

原创 图解java.util.concurrent源码(三) Reentrantlock && Semaphore

引言Reentrantlock和Semaphore分别是AQS在独占模式和共享模式下经典的实现,在理解AQS的情况下看这两个类的代码会感到非常简单,如果还没理解AQS的话,建议先读我这个系列的第一篇文章复习AQS回忆一下AQS,AQS中维护了一个state同步状态,它的子类只需要实现以下几个方法,并在方法中修改判断state的值即可:独占模式的同步器(比如Reentrantlock)需...

2018-09-24 14:03:38 246

原创 图解java.util.concurrent源码(二)ThreadPoolExecutor

JDK版本我这里依据的JDK版本如下:java version "1.8.0_73"Java(TM) SE Runtime Environment (build 1.8.0_73-b02)Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)如果你的版本和我不同,看到的源码可能有细微的不同。基础...

2018-09-08 21:49:23 118

原创 图解java.util.concurrent源码(一)AbstractQueuedSynchronizer(AQS)

引言这个系列文章打算用图解的方式记录了自己阅读concurrent包的中一些类的大概流程,加深印象。什么是AbstractQueuedSynchronizerconcurrent包下的很多类都有一个叫做Sync的内部类(比如ReentrantLock,ThreadPoolExecutor等),并且很多功能会委托给这个内部类,而这个内部类实现了AbstractQueuedSy...

2018-09-06 01:24:08 514

原创 探索HyperLogLog算法(含Java实现)

引言HyperLogLog算法经常在数据库中被用来统计某一字段的Distinct Value(下文简称DV),比如Redis的HyperLogLog结构,出于好奇探索了一下这个算法的原理,无奈中文资料很少,只能直接去阅读论文以及一些英文资料,总结成此文。介绍HyperLogLog算法来源于论文《HyperLogLog the analysis of a near-optimal...

2018-08-22 17:15:27 852 1

原创 用机器学习检测Android恶意代码

参考资料  本代码是参考乌云上的一篇文章实现的,链接如下:http://wooyun.jozxing.cc/static/drops/mobile-13428.html ,实现了它关于特征提取的想法,如果有理解的不妥的地方,请大家帮忙指出。 代码的github地址(其实这篇博文就是该仓库中的README): https://github.com/DQinYuan/AndroidMalwa...

2018-08-05 19:39:22 2907 23

原创 基于Vue-Echarts的地图渐热效果实现

简介基于Element-ui, Vue和Vue-echarts的地图渐热效果实现。效果展示地址:https://dqinyuan.github.io/mapvisual/index.html (因为是托管在github上的页面,国内访问速度可能会比较慢,请耐心等待)展示的内容是从1994年至2018年大陆金融业和房地产行业的发展情况(当地的相关企业越多则热度越大),数据全部是从猎...

2018-07-29 21:45:21 2576

原创 天池第四届中间件比赛第一题本地开发环境搭建笔记

引言参加了阿里天池第四届中间比赛,官方给的环境搭建文档含糊不清,无奈只能自己去读官方给的测评脚本的源码,然后在自己本地折腾一个差不多的环境,方便开发与debug,过程记录如下。我的本地环境为Win10,用的IDE是IntelliJ。这篇文章的目标是在本地将官方的agent-demo跑通并且可以在源码级别进行debug。本文的JVM启动参数都是从官方的测评脚本中摘录,鉴于本地内存资源可能有限...

2018-05-16 20:52:43 1412 2

原创 Docker与Dockerfile极简入门文档

引言参加阿里天池中间件大赛,需要使用docker部署测评环境,队里可能会有一些同学不是非常熟悉docker,自己折腾docker也算有一段时间了,所以写一个文档帮助大家快速入门docker。docker的安装docker的安装我就不多说,建议按照docker的官方安装文档一步一步来https://docs.docker.com/install/。需要注意的是,Docker的...

2018-05-15 10:45:25 57703 21

原创 Java随机打乱(shuffle)数组

引言偶尔会有随机打乱数组的需求,在jdk没有找到可以直接调用的函数,去网上也没有找到足够优雅的实现,所以决定自己写一个方便以后使用,用这个思路只要5行代码即可实现。思路从数组的最后一个位置(假设下标是n)开始向前扫描,然后随机生成一个0到n之间的随机数,假设该随机数是r1,然后将数组最后一个位置(下标n)与r1位置互换,之后开始扫面下一个数(下标为n-1),然后随机生成一个...

2018-05-13 23:02:07 18365 4

原创 在Windows上使用CLion练习openMP

引言最近课程设计需要用到openMP进行C++并行编程,我在windows上使用的IDE是CLion,CLion中配置的编译环境是MinGW3.2第一步:配置-fopenmp编译参数在CMakeLists.txt中添加如下配置:set(CMAKE_CXX_FLAGS "-fopenmp")这一步的作用是增加一个”-fopenmp”的编译选项,如果只进行第一步就尝...

2018-04-27 23:55:10 648

原创 HashMap到底是插入链表头部还是尾部

引言同学去面试京东,被问了一个问题:我们都知道,HashMap是由Entry链表组成的数组,当HashMap要在链表里插入新的Entry时,到底是插入头部还是尾部呢?我通过查看自己电脑上的jdk1.8的源码,发现是插入尾部的,但是我同学告诉我面试官告诉他答案是插入头部,这篇文章就从源码角度一探究竟。先说结论在jdk1.8之前是插入头部的,在jdk1.8中是插入尾部的。...

2018-04-14 12:31:11 20366 17

原创 美团内推面试记录

找学姐内推的美团java后台开发岗位。刚投两天就收到了面试通知,相当猝不及防。本文主要是记录一些面试题目,面试题相关的知识在网上大多都查得到,我就写得稍微简略一点

2018-03-23 11:44:21 1273 4

原创 总结一类编程题--数组的n项和为M的存在性问题

最近春招,同学都在各种面试和各种刷题,面试完之后常常互相分享在面试过程中遇到的题目,在分享过程中,我发现有些题目之间有雷同之处,所以总结一下

2018-03-21 15:42:34 340

原创 积累一些常见的写SQL的题

引言前几天面了美团的一面,在数据库方面本来以为会像阿里一样只问一些基础知识,没想到面试官居然让我写SQL,而且写的都是一些比较复杂的SQL,我都好长时间没写过复杂的SQL了,所以写得相当糟糕,所以在这篇博客中积累几题经典的题。考察NOT IN子句例题有如下的student表,里面记录学生不同科目的成绩: name subject score...

2018-03-16 20:43:55 614 1

原创 LintCode每日一练-限制条件子集

问题:限制条件子集给一个数组,给定一个target,求满足以下条件的子集个数

2018-03-08 21:18:30 294

原创 chinese_province_city_area_mapper----一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块

简介特点安装说明Get Started数据接口关于匹配与映射的细节测试数据更新模块新的绘图接口简介chinese_province_city_area_mapper—-一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块。举个例子:["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘西工业区&

2018-03-05 15:06:55 4877 3

原创 使用python提取中文地址描述中的省市区信息

引言在一次建模比赛中,我手头里的原始数据中有一个“地址描述”地段,如下: 地址描述 广州国际采购中心1401 上海市长宁区金钟路658弄5号楼5楼 徐汇区虹漕路461号58号楼5楼 济南市历下区和平路34号轻骑院内东二层山东朵拉这样的地址描述字段过于随意,很难使用,但是看这些字符串的样子似乎又可以提取出其所在的省、市和区,即使只能够提...

2018-03-05 14:56:12 34127 87

原创 javaWeb后台配置跨域的方法

本文给出几种java后端配置跨域的方法,在tomcat7和8上测试通过.

2018-01-24 16:02:56 12287 6

原创 Https协议原理总结

文章是根据中科大郭燕老师的信息安全实践课程的Lecture1 Https的内容外加自己的理解改写的,力求比较通俗地说明Https协议的工作原理。

2018-01-24 15:14:45 342

原创 将springmvc配置成一个REST服务器的过程

现在比较流行的一个开发方式时把逻辑尽可能多地写到前端,后端只负责做数据交互,当前端需要数据时,使用REST风格的URL向后端请求,然后后端返回一个json串给前端。java后端现在似乎已经有很多REST框架,但是大多数java程序员比较熟悉的框架还是springmvc,既然springmvc现在也支持REST,何尝不试试呢?于是就折腾了一下午总算搞定了,这里记录一下以供后来参考。springmvc

2017-12-06 23:19:30 4136

原创 Vue(使用webpack)与java后端(使用springmvc与tomcat8)整合测试与部署方案

最近学习了一下基于vue和webpack的前端开发,于是就想着用Vue重写一遍我个人网站的代码,但是我的后端是老早以前就用java写好的(springmvc),这就涉及到Vue与java后端进行整合开发的问题,我尝试着去网上找了找相关资料,确实在有的技术问答下面看到有人成功尝试过,但是还是比较小众的,没什么人贴出这其中遇见的问题和解决方案,我这里通过自己这几天的折腾来总结一下.

2017-11-01 20:17:10 30678 5

原创 WildFly10.0.0的mysql数据源配置教程

jBoss8和以后的高版本都更名叫做wildFly了,但是网上的中文资料基本还都停留在jBoss4和5的版本上,可能是因为EJB在中国已经好久没用回归开发主流了,jBoss不同版本之间的差别还是挺大的,我下载的是比较新的一个版本WildFly10.0.0,界面和以前的jBoss相差还是挺大的,我找了一些英文资料折腾了好久才配置成功,记录下来供大家参考.

2017-10-16 23:09:10 3044 2

原创 使用spyder3调试python程序的简明教程

说是简明教程,其实是我自己尝试用spyder调试python程序的过程的一个记录,因为spyder的调试功能是基于pdb,而我又没要pdb的基础,所以刚开始上手时感觉很不习惯,而且那时我又很懒,没去找官方文档,仅仅在百度和csdn上找了找,没找到比较好的资料,于是放弃了,过了一段时间之后,突然又心血来潮去找了官方文档,外加自己的一些尝试,总算入门了spyder的调试功能,特地记录下来与大家共享

2017-08-29 11:26:53 49750 16

原创 2-opt求解TSP(旅行商)问题的python实现

2-opt其实是2-optimization的缩写,简言之就是两元素优化。也可以称作2-exchange 。

2017-07-21 13:51:01 10846

原创 spyder3(anaconda3)环境下无法使用mayavi库的解决方案

在windows下安装mayavi库会遇到很多困难,网上有很多博文提供了行之有效的解决方案,这里就不赘述了,假设在这里读者已经成功安装好了mayavi库,但是当想在spyder3中使用这个库时却出现错误,网上没搜到解决方案,我便自己折腾了一个。这里的spyder版本是3.1.4,mayavi版本是4.5.0

2017-07-21 13:49:53 3137

原创 疯狂java讲义第十六章(多线程)书后习题我的解答以及反思

暑假闲得无聊,便读了疯狂java讲义的第16章补充了一下多线程的知识顺便做了一下书后习题练练,把解答和感想一并发到网上与大家讨论。习题1.写2个线程,其中一个线程打印1~52,另一个线程打印A~Z,打印顺序应该是12A34B56C......5152Z。该习题需要利用多线程通信的知识。习题2.假设车库有3个车位(可以用boolean[]数组来表示车库)可以停车,写一个程序模拟多个用户开车离开、停车入库的效果。

2017-07-07 23:18:17 892 1

原创 慕课BIT嵩老师爬虫课笔记

一直想学python,在中国大学慕课上发现了嵩老师的python系列专题课程,就首先试着听了听嵩老师的爬虫课,虽然时间有点短并且内容也不够深入,但是讲得很生动,于是就记了一些笔记 ,也稍微加入了一些自己的见解和总结

2017-04-18 20:57:39 881

原创 易操作的Maven教程

很多公司里的web项目是都是用maven管理,maven可以非常方便的管理项目的各种依赖,确实很好用,但是对于刚开始使用的初学者,网上的很多教程基本上跟着操作两步就会出问题,可能是因为细节没有说清楚或者版本的问题,给学习带来很多困难,于是根据我这几天的尝试和学习,想自己写了一篇教程,让初学者入门时少走弯路,本文中maven的默认版本是3.1.1,操作系统是windows,本文中只介绍了maven对于普通程序员来说比较

2017-02-22 16:39:37 378

Hands-On Machine Learning with Scikit-Learn and TensorFlow.pdf

《机器学习实战: 基于Scikit-Learn和Tensorflow》的高清英文带书签原版

2019-09-01

软件系统设计文档模板

完备的软件系统设计文档模板,包括静态体系设计,动态结构以及其他设计。

2018-03-22

DevOps傻瓜书 pdf

一本很好的学习DevOps的资料,IBM限量版,非常通俗易懂。

2018-03-22

数理统计教材-宗旭平著

宗旭平著作的数理统计教材,内容简洁明了,注重实践,能够帮助我们快速回顾数理统计知识

2018-03-21

实现领域驱动设计

一本介绍领域驱动技术实现的书,英文原版,相比领域驱动设计要更加注重落地

2018-03-21

在markdown编辑器中写了一天的东西全丢了,有办法挽回吗

发表于 2018-01-19 最后回复 2018-01-22

有人试过用WindowBuilder做Swing界面吗

发表于 2016-01-25 最后回复 2016-01-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除