自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (5)
  • 收藏
  • 关注

原创 应用开发者的疑问:大模型是银弹吗?

ChatGPT 火了之后,大模型似乎被当成了真正的银弹,所有的体验问题都试图通过大模型解决。本文想和大家简单讨论下大模型的局限以及真正的适用场景。由于本人不是专业搞算法的,大佬们多多拍砖。

2023-07-30 16:30:54 244

原创 关于钉钉同事们的那些段子: 和机车大佬,健身达人,游戏高手以及数学高手一起干程序员工作是一个什么样的感觉?

和机车大佬,健身达人,游戏高手以及数学高手一起干程序员工作是一个什么样的感觉?

2023-03-11 12:22:25 501

原创 Redis 底层数据结构大揭秘:五张图看透Redis数据结构

Redis的数据结构从用户层面看就是普通的字典,列表。但是其实在不同的情况下,Redis 会使用不同的底层数据结构进行优化,本文通过五张流程图对其进行了总结。

2023-03-03 23:33:32 163

原创 TiDB的分布式事务原理探究

TiDB 分布式事务原理探究

2023-03-02 22:45:33 439

原创 Redis网络层源码阅读

Redis 离用户最近的就是网络层了,网络层不负责命令的具体执行,只负责网络数据的收发,虽然它不负责具体的功能实现,却是Redis单线程,高性能的核心。

2023-02-27 23:42:22 151

原创 信息时代企业的核心特征-读《硅谷之谜》

因为中国发展实在太快了,从大工业时代过渡到信息时代只有不到十年的时间,所以很多人(包括我自己)的思维还没能完全从大工业时代转变过来,对于互联网公司的一些现象往往会感到困惑。这本书解答了不少。

2023-02-17 23:14:47 612

原创 使用CLion调试Redis源码的超详细步骤

因为我本人主要是写Java的,有强烈的IDE依赖症,不喜欢使用文本编辑器或者命令行这样的工具,所以选择使用CLion搭建一个IDE环境来辅助 Redis 源码阅读。

2023-02-15 23:16:37 855

原创 你真的需要防腐层吗?DDD 系统间的7种关系梳理与实践

当提到系统间交互的时候,人们都会想到大名鼎鼎的防腐层,用来防止其他系统的模型变更对本系统造成影响。但是在实践这个模式的过程中,我们常常会遇到问题。此时我们也应该考虑下其他的系统交互方式。

2023-02-14 23:52:11 658

原创 “白学”了十几年?这两年才感悟出的高效学习方法

虽然从小学开始算起,一直到硕士毕业,学习了接近十九年了,但是只有最近两年算得上真正的在"学习",之前的十七年都没有明白也没有认可学习的意义,只能算是某种应付吧。只有不断反思“学习”本身,才能取得进步。

2023-02-12 13:18:59 407

原创 五分钟看懂Java字节码:极简手册

字节码新手很容易被厚厚的 JVM 书籍劝退,即使我看过相关书籍,工作真正用到时也全忘了,还得现学。本文将真正地删繁就简,总结核心知识,让读者快速入门,学得会,用得上。

2023-02-11 15:19:57 748 1

原创 敢问“度”在何方?:谈谈软件设计中的“适度原则”

中国人讲究 “中庸”,“过犹不及”,凡事都要把握一个 “度”。而软件工程正是一个没有银弹,处处要把握度的地方。

2023-02-05 12:19:14 140

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

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

2019-04-08 09:27:25 890

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

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

2018-12-31 16:01:05 332

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

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

2018-12-30 20:48:16 243

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

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

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

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

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

2018-12-23 21:38:17 212

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

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

2018-12-16 15:06:48 4862

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

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

2018-10-07 01:42:58 239

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

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

2018-09-24 14:03:38 364

原创 图解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 273

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

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

2018-09-06 01:24:08 761

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

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

2018-08-22 17:15:27 2142 2

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

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

2018-08-05 19:39:22 5327 26

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

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

2018-07-29 21:45:21 2920

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

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

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

原创 Docker与Dockerfile极简入门文档

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

2018-05-15 10:45:25 74070 27

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

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

2018-05-13 23:02:07 28844 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 1110

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

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

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

原创 美团内推面试记录

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

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

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

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

2018-03-21 15:42:34 575

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

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

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

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

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

2018-03-08 21:18:30 397

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

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

2018-03-05 15:06:55 7540 5

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

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

2018-03-05 14:56:12 52759 105

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

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

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

原创 Https协议原理总结

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

2018-01-24 15:14:45 454

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

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

2017-12-06 23:19:30 4490

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

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

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

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

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

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

软件系统设计文档模板

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

2018-03-22

DevOps傻瓜书 pdf

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

2018-03-22

数理统计教材-宗旭平著

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

2018-03-21

空空如也

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

TA关注的人

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