Holmofy
码龄9年
关注
提问 私信
  • 博客:563,463
    563,463
    总访问量
  • 115
    原创
  • 802,767
    排名
  • 239
    粉丝
  • 0
    铁粉

个人简介:奋斗中的小菜鸟

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江西省
  • 加入CSDN时间: 2016-01-28
博客简介:

CSDN文章已停止维护,后续文章会在 https://blog.hufeifei.cn 持续更新

博客描述:
CSDN文章已停止维护,后续文章会在 https://blog.hufeifei.cn 持续更新
查看详细资料
个人成就
  • 获得345次点赞
  • 内容获得105次评论
  • 获得837次收藏
  • 代码片获得424次分享
创作历程
  • 1篇
    2021年
  • 5篇
    2020年
  • 3篇
    2019年
  • 40篇
    2018年
  • 80篇
    2017年
  • 1篇
    2016年
成就勋章
TA的专栏
  • Java多线程复习与巩固
    11篇
  • MySQL数据库优化
    7篇
  • 分布式
    1篇
  • 博客已停止维护,请访问blog.hufeifei.cn
  • EffectiveJava读书笔记
    4篇
  • [JAVA]
    49篇
  • |--Spring
    6篇
  • |----SpringMVC
    1篇
  • |--Struts2
    3篇
  • |--Shiro
    1篇
  • |--JSON
    4篇
  • |--JUC
    15篇
  • |--RPC
    3篇
  • |--其他
    15篇
  • [Android]
    12篇
  • |--View
    5篇
  • [数据结构与算法]
    11篇
  • |--Tree
    3篇
  • |--排序算法
    2篇
  • |--动态规划
    1篇
  • |--基础题
    3篇
  • [Linux]
    18篇
  • |--软件安装与自启
    5篇
  • [数据库]
    14篇
  • |--MySQL
    9篇
  • [计算机基础]
    10篇
  • |--操作系统
    3篇
  • |--编码
    1篇
  • |--网络
    3篇
  • |--正则
    2篇
  • [前端]
    13篇
  • |--CSS | LESS | SASS
    2篇
  • |--JS | ES6 | TS
    8篇
  • |--React
    2篇
  • Windows
    6篇
  • C | C++
    4篇
  • 译文转载
    2篇
  • 其他
    4篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

179人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

解决CentOS7种yum源版本过低的问题

最近准备在自己服务器上玩玩docker,把网站都用docker部署下,用ELK技术栈分析一下服务器上的日志。服务器是大学里搭的,版本是CentOS6,这次重装了系统升级到CentOS7,遇到的最头疼的问题就是装软件。因为自己在Mac上有homebrew,装啥软件都很爽,基本上软件都是最新的,但是CentOS非常保守,官方的软件库里软件版本都非常低,yum装了发现很多东西都用不了。比如tmux,官方仓库版本仍然是1.8,已经不支持tmux-plugin的功能了。所以这篇文章记录一下自己解决这个问题的过程。
原创
发布博客 2021.03.03 ·
5000 阅读 ·
0 点赞 ·
1 评论 ·
4 收藏

从notify和metaq初窥消息队列的前世今生

上一家公司并没有用消息队列中间件,大学里对ActiveMQ有所了解但并未深入研究,RocketMQ、Kafka也一直囿于听闻。不过在原来的项目中经常会用Redis的list实现一个分布式的阻塞队列。在短信服务调用中,会将服务的同步调用改为异步任务存入队列表批量调度以提高吞吐量,并降低大促期间大批量短信同步调用带来的压力。我觉得后面这一点也非常接近消息队列所要实现的需求。然后受益于隆基前辈的阿里消息...
原创
发布博客 2020.04.27 ·
741 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分库分表的一些思考

分库分表这个技术在之前一家公司其实也有接触。上一家公司在业务上按照用户水平分库的,所以避免了很多业务上的问题,但也只是基于Spring的AbstractRoutingDataSource,根据userId做了简单的路由。之前也在网上听说过sharding-jdbc等中间件,也仅限于了解。所以结合我从内网看到的关于TDDL中间件的文章和外网看到的一些文章,在这篇文章中整理一下我这个新人对分库分表的认...
原创
发布博客 2020.04.27 ·
913 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

K-D树、K-D-B树、B-K-D树

K-D树在维基百科上定义是将K维空间中的点进行分割的数据结构,D是dimensional(维度)的缩写,K-D树是BSP(Binary Space Partitioning)的一种。维基百科的解释很正式(看的迷迷糊糊)。简单的说,K-D树就是二分查找树在K维空间的泛化(更迷糊了????)。1、K维空间的二分查找树之前的一篇文章中有讲过二分查找树(BST)这样基础的数据结构,它是基于二分查找的思想实...
原创
发布博客 2020.03.07 ·
4000 阅读 ·
6 点赞 ·
0 评论 ·
19 收藏

Spring-IOC整体设计与源码分析

最近读完《Spring技术内幕》一书,虽然此书评价貌似不高,但边看书边读源码,感觉还是有点收获,至少为阅读Spring源码提供了思路。然后这篇文章就记录一下这几天看Spring IOC这块的源码以及整体思路。1、 BeanFactory与ApplicationContext在Spring的IOC容器设计中,主要由两个容器系列:实现BeanFactory接口的简单容器,提供了完整IoC容器服...
原创
发布博客 2020.03.07 ·
553 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

SpringDataRedis踩坑记录

这几天做的功能涉及到Redis缓存,踩了不少坑,这里记录下来。1、SpringBoot自动配置的RedisTemplate在SpringBoot中可以在``properties配置文件中配置[spring.redis.*`相关属性](https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/api/org/springframework/boo...
原创
发布博客 2019.02.21 ·
892 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

ssh连接服务被拒的问题

昨天在整理服务器的文件时,删了一些没用的空文件夹。并把自己新电脑的公钥配在服务器上。然后尝试ssh登录服务器的时候出问题了:ssh_exchange_identification: Connection closed by remote host我擦,登不上去了。我刚开始以为是我公钥配错了,但既没让我输入私钥密码,也没让我输入用户登录密码。这就有点奇怪了。还好云服务器控制台有VNC登录这棵救...
原创
发布博客 2019.01.20 ·
2215 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

一枚Javer对Ruby的吐槽

公司收购了个项目,技术都很老,Web用的Ruby on Rails,前端还在用jQuery,后台数据同步用Java(用的技术也都很老)。自己以前没有接触过Ruby,只是听有些朋友大学里玩过这玩意儿,所以对我来说Ruby就是一门全新的语言。我个人是非常抵触学一门新语言的,Java都还没吃透就并行学Ruby,只会分散深入学习Java的精力。但没办法谁让公司抽到我,还是好好学吧!1、安装Ruby...
原创
发布博客 2019.01.13 ·
959 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

垃圾回收算法与JVM内存管理

因为之前公司有人分享过G1回收器的内容,很多人听的云里雾里(包括我)。甚至有人问学GC有什么用,对写代码有帮助吗。我想这个问题不可置否。《深入理解Java虚拟机》一书中有这么一句话:Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。这篇文章的目的就是为了突破这座藩篱,尽量让更多的人理解JVM的垃圾回收机制。1、GC之前早在1960...
原创
发布博客 2018.12.06 ·
791 阅读 ·
1 点赞 ·
3 评论 ·
4 收藏

ForkJoinPool入门篇

《线程池ThreadPoolExecutor详解》和《任务调度线程池ScheduledThreadPoolExecutor》两篇文章将ThreadPoolExecutor和ScheduledThreadPoolExecutor两个核心线程池已经详细介绍过了,它们整体的工作结构如下图所示。这篇文章将介绍最后一个线程池——Java7中最引人瞩目的ForkJoinPool线程池。1. 为...
原创
发布博客 2018.09.16 ·
12340 阅读 ·
15 点赞 ·
2 评论 ·
53 收藏

使用POI解析Excel

Excel作为一种常用的数据存储格式,在很多项目中都会有相应的导入导出的功能。这篇文章会介绍如何使用Java操作Excel,以及如何解决大文件读写时内存溢出的问题。1、OpenXML标准Word、Excel、PPT是Office办公套件中最常用的三个组件。早期的Office套件大都使用二进制格式,也就是最常见以.doc、.xls、.ppt为后缀的文件;直到07这个划时代的版本将基于XM...
原创
发布博客 2018.09.08 ·
27022 阅读 ·
17 点赞 ·
1 评论 ·
55 收藏

使用Certbot申请Let'sEncrypt免费证书

半年前在自己的网站上配了个SSL证书,当时是用ZeroSSL进行证书申请的。但是证书三个月就会过期,每次都去手动申请,着实让人头痛。后来到Let’s Encrypt官网看了下,在它提供的ACME协议客户端列表中,最推荐使用Certbot。Certbot是有个最大的好处是,能自动化部署Let’s Encrypt证书。到Certbot官网,你可以根据自己的服务器操作系统以及使用的WebSe...
原创
发布博客 2018.08.12 ·
2614 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

ThreadPoolExecutor最佳实践--如何选择队列

前一篇文章《如何选择线程数》讲了如何决定线程池中线程个数,这篇文章讨论“如何选择工作队列”。再次强调一下,ThreadPoolExecutor最核心的四点:1、当有任务提交的时候,会创建核心线程去执行任务(即使有核心线程空闲);2、当核心线程数达到corePoolSize时,后续提交的都会进BlockingQueue中排队;3、当BlockingQueue满了(offer失败),就...
原创
发布博客 2018.08.12 ·
6006 阅读 ·
6 点赞 ·
0 评论 ·
19 收藏

ThreadPoolExecutor最佳实践--如何选择线程数

去年的一篇《ThreadPoolExecutor详解》大致讲了ThreadPoolExecutor内部的代码实现。总结一下,主要有以下四点:当有任务提交的时候,会创建核心线程去执行任务;当核心线程数达到corePoolSize时,后续提交的都会进BlockingQueue中排队;当BlockingQueue满了(offer失败),就回创建临时线程;当线程总数达到maximumPoo...
原创
发布博客 2018.07.29 ·
16086 阅读 ·
10 点赞 ·
4 评论 ·
44 收藏

Tesseract与tess4j验证码识别

验证码,英文名CAPTCHA,全称叫做:全自动区分计算机和人类的图灵测试。验证码主要为了防一些不怀好意的人(程序猿),避免批量注册账户,暴力尝试多次登录失败等一些恶意行为。最经典的就是文字型的验证码:简单的文字型验证码容易被OCR识别,所以程序猿们让文字随机旋转、扭曲、黏连,在验证码上加干扰线、加噪点以降低自动化程序的识别率,但是很多扭曲变形的文字连人都识别不出来,比如中国移动这个验证...
原创
发布博客 2018.06.30 ·
6119 阅读 ·
2 点赞 ·
0 评论 ·
16 收藏

MySQL性能优化[理论篇]-聚簇索引和非聚簇索引,InnoDB和MyISAM

聚簇索引聚簇索引(Clustered Index)并不是一种新的数据结构,只是B树索引的一种存储方式。聚簇索引的特点是完整的数据行就放在B树的叶子结点中,Clustered(聚簇,集群)就表示数据行与对应的键紧凑的存储在一起。下图是《高性能MySQL》聚簇索引的截图,其中,叶子结点包含了数据行的完整数据,非叶子节点只包含索引列数据。数据行的逻辑顺序与聚簇索引的顺序一致。B+树中...
原创
发布博客 2018.05.27 ·
1816 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MySQL性能优化[实践篇]-复合索引实例

上篇文章最后提了个问题假设某个表有一个复合索引(c1,c2,c3,c4),问以下查询中只能使用该复合索引的c1,c2,c3部分的有那些1. where c1=x and c2=x and c4>x and c3=x2. where c1=x and c2=x and c4=x order by c33. where c1=x and c4=x group by c3,c2...
原创
发布博客 2018.05.26 ·
1413 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

MySQL性能优化[实践篇]-索引合并与复合索引

从上一篇创建索引的实践中,我们看到了索引给我们带来的性能提升是非常可观的。我们上次创建的表结构非常简单,只有两三个字段,where子句查询条件只有一个字段。实际应用场景中我们的表结构会更复杂,查询条件也会非常多。在多条件查询的情况下又如何才能用到索引呢,我们可以测试一下。准备测试数据创建表结构create table tb_test(id int primary key...
原创
发布博客 2018.05.20 ·
3000 阅读 ·
3 点赞 ·
0 评论 ·
11 收藏

对单页面应用与Router的一些思考

昨晚鑫哥到我宿舍聊天,聊了很多,从各自公司用的技术到杭州和深圳的房价,从后端技术到前端技术,一直聊到凌晨一点多,直到鑫哥被室友“驱逐”出去。中间有一段聊到公司用到的React,提到了单页面应用和Router,觉得思路很好有必要写个笔记记下来。最开始的网页早期的网页都是一个个独立的html页面,通过a标签从这个页面跳转到另外一个页面。但是同一个网站中的两个页面很多内容都是相同的,比如页头...
原创
发布博客 2018.04.27 ·
1678 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MySQL性能优化[实践篇]-使用B树索引

准备测试数据create table tb_user( id int auto_increment primary key, name varchar(10), birth date);使用存储过程创建测试数据,不过在这之前我们先创建两个工具函数。 mysql里面默认以;作为一条完整语句的终结符,为了不与函数和存储过程中的;冲突,我们要提前使用delimiter命...
原创
发布博客 2018.04.24 ·
976 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏
加载更多