自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 使用fiddler抓HTTPS包及原理解析

网上已经有许多教程了,大部分都差不多,如果是首次安装并且步骤齐全的话,应该是比较容易抓到HTTPS包的。但是我找的教程不全,导致后面踩了很多坑,故记录一下以免后人踩坑。顺便科普了一下HTTPS和中间人攻击,如有误欢迎指出~修正:本文中的HTTPS握手过程仅为小白科普所用,旨在用最简单的方式描述整个流程,真实场景要更为复杂,大家如果想要了解更多可以查找相关书籍资料哦。首次装fiddler过程...

2019-07-18 22:40:50 8809

原创 redis 学习记录

写在前面redis 是一个非常优秀的 k-v 存储系统,其使用 单 Reactor 模式.最近在看 reids 设计与实现 以及 redis 实战,项目开发也使用过 redis, 但是对其底层实现不太了解,相结合书籍和源码阅读一下,在此记录一些点和不了解的地方.源码阅读参考:http://blog.huangz.me/diary/2014/how-to-read-redis-source-...

2019-05-25 16:56:31 503

原创 一步步搭建秒杀系统

目前只考虑了后台对于秒杀系统的处理,前端尚未完善.版本1处理流程前端请求秒杀接口 --> 判断用户是否已进行请求,若是则返回失败--> 在缓存( redis )中减少库存,不成功则返回 -->发送消息到消息队列 --> 消息消费者监听消息,更新数据库.解决的问题1.把商品库存量放到缓存中,每次系统启动根据消息队列中尚未消费的消息数和数据库中的库存量更...

2019-05-23 10:34:08 382

原创 activemq 使用记录

安装与运行官网下载,解压,进入 bin 目录, ./activemq start主页:http://localhost:8161/admin/初始用户和密码都是 admin.腾讯云 centos 下遇到的无法启动问题acitvemq 不允许主机名有下划线,但是腾讯云的主机名有. 修改 /etc/hosts 中 127.0.0.1 对应的名称即可.其他acitvem...

2019-05-19 21:25:33 262

原创 进程池 + epoll 实现 http 服务器

一个 == 号引发的血案调试的时候,发现怎么也没有输出内容,然后逐个函数里面加输出语句,看看是哪个函数进不去.结果发现,有个 while 循环的判断条件是这样的: while ( ( ( m_check_state == CHECK_STATE_CONTENT ) && ( line_status == LINE_OK ) ) ||...

2019-05-17 21:17:34 265

原创 Idea 使用问题记录

jar 包找不到主类maven 打 jar 包,得到的 jar 包运行,报找不到主类的错误.解决:在 pom 中添加如下配置 <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId...

2019-05-13 18:40:02 254

原创 Netty 学习记录

使用 Netty 写了一个简单的 http 服务器 (包括静态资源, servlet 请求的响应).记录一下遇到的问题和解决方法.fireChannelRead(Object msg)此方法用来将请求传递给下一个 ChanelHandlerInboundHandler 来处理.代码中下一个handler 的 channelRead0 的参数为:ChannelHandlerCont...

2019-05-13 11:06:36 384

原创 nginx 学习记录

使用问题open() "/run/nginx.pid" failed (2: No such file or directory)解决:https://blog.csdn.net/llnara/article/details/8691049基本架构进程模型 -- 多进程模型一个 master 进程,多个 worker 进程. master进程负责管理 workers, ...

2019-05-12 16:08:18 240

原创 nginx + docker 负载均衡

背景写了一个 http 服务器,创建了三个 docker 容器,分别跑在服务器对应端口号为8081,8082,8083上.用 nginx 对其进行负载均衡.nginx 配置关键(nginx.conf) upstream mynginx { #least_conn; server localhost:8081 max_fails=1 fail_timeout...

2019-05-12 14:07:57 223

原创 docker 学习记录

docker 安装直接从源里面下载的,yum install 或者 apt-get installdocker 使用下载镜像docker pull 镜像名:(此处不接版本号则自动为 latest 版本)运行容器方法1(生成并运行新容器):docker run -it image'id/bin/bash(此处是指定交互方式,当然不指定也可以)方法2(运行已...

2019-05-09 11:01:17 108

原创 centos使用问题记录

1.安装mysql(实在是记不住啊QAQ)blog:https://qizhanming.com/blog/2017/05/10/centos-7-yum-install-mysql-572.deepin上传文件到centos目前使用scp,觉得非常好用.命令如下:scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地...

2019-05-06 20:25:27 88

原创 记录deepin使用问题

开机进入 emergency mode 或者卡在开机界面引起的问题一:是电脑的独显,只要自己知道显卡为nVidia显卡就好了.有两种方法:1.在开机的时候通过e进入grub引导来修改.每次都要设置nouveau.modeset=02.修改gurb.cfg文件来解决问题.之前都是通过1来解决的,后来觉得太麻烦.然后想,开机引导文件应该是/boot里面,然后是通过grub来修改内核参数的,...

2019-04-28 20:59:01 918

原创 记录deepin配置apache+cgi

1.apache 安装直接从源下的,apt-get install apache22.cgi 包下载最开始是 wget gnu 上的最新版本,然后提示缺少依赖包( autoheader\perl 之类的),就继续下依赖包,但是导进去貌似把二进制文件弄乱了...结果没法 make ,然后下了个2014年的版本,就没有依赖包的问题.3.cgi 和 vscode 配合(有问题)下完了...

2019-04-27 16:13:49 299

原创 vscode使用问题记录

1.字体大小问题本老年人使用无论是字体还是控制面板的字体都要大,所以,在file->preference->settings下搜索size,把所有size统一改一下就好了。关于控制面板的字体可以通过调整zoom level 来实现。2. cpp 插件问题目前仅安装了c/c++、code runner等等,能够支撑目前的需求。(看到有智能提示的那一刻很开心,因为vim不会有这...

2019-04-20 16:27:39 442

原创 Linux学习——网络管理

IP地址配置配置方法ifconfig命令配置临时IPlo(loopback):本地回环网卡配置(localhost)其代表了当前计算机的状态,在无网络情况下也能ping通。但其无太大作用,仅说明当前计算机的网络协议配置正确。                   eth0(网卡1):             配置命令:ifconfig 网卡名称(例如eth0)ip...

2019-01-13 19:28:52 186

原创 linux学习——网络基础之DNS和网关

DNS作用(C:\Windows\System32\drivers\etc\hosts)hosts文件作用:做静态ip和域名对应优先级:高于DNS解析早期hosts文件缺点:名称解析效能低下、主机维护困难 DNS作用: 客户机向DNS发送域名解析请求——&gt;DNS服务器告知客户机Web服务器的IP——&gt;客户机与服务器通信域名空间结构: 网关作用...

2019-01-13 19:05:07 331

原创 敏感词匹配算法分析

前缀树匹配 前缀树是什么一种有序树,用于保存关联数组,其中的键通常是字符串,且键是由节点在树中的位置决定的。 应用敏感词过滤、搜索提示(例如输入一个网址,可以自动搜索出可能的选择) 如何实现构建敏感词前缀树,三个指针,分别为指针1,指针2,指针3.指针1:初始指向前缀树的根。当指针2指向的字符与其指向的前缀树中的字符想匹配时,则一起移动,当命中一个敏感词...

2018-12-20 19:08:47 4824

原创 算法学习——KMP算法

KMP算法字符串匹配算法时间复杂度:O(n)难点:生成next[]数组,还有理解为什么这样匹配是正确的生成next数组:自己动手举个例子会好理解为什么这样匹配是正确且避免回溯:若str1和str2已经匹配了一段,则str2是返回其最大前缀的后一个字符的位置(即next[x]),此时str1前面的字符和str2的最大前缀还是匹配上的,这就避免了回溯了。详细讲解可参考blog:...

2018-12-17 21:51:24 143

原创 算法学习——排序

附上wiki参考链接:https://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95#简要比较关于排序算法的稳定性:https://zhuanlan.zhihu.com/p/36120420冒泡排序描述:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。时间复杂度:最好=O(n)(...

2018-12-17 19:32:06 219

原创 算法学习——分支限界法

实质回溯法的改进版本 与回溯法的比较不同:回溯法为“盲目搜索”(DFS),分支限界法为最“好”优先,智能搜索。共同:统称为树搜索技术,都在搜索解空间树,并剪枝。 缺陷只适用于组合优化问题 程序框架 // 以求最大值为例 public void branchbound(){ // 初始化 max = 0;...

2018-12-14 20:17:21 617

原创 算法学习——回溯法

回溯法的实质回溯法可看作穷举法的一种实现方式 计算过程每步只构造一个部分节并立即对此部分解进行评估。若此部分解有可能拓展为“所求解”,则继续扩展;反之此部分解不可能扩展为所求解,则继续尝试其他部分解。直到穷尽一切可能。 解空间与解空间树描述回溯法时,可有两种解空间树选择。一是子集树,一是排列树。解空间:所有可能的解构成的集合。解空间树:将解空间组织成树结构。...

2018-12-14 19:25:37 4532

原创 算法学习——贪心法

本质特征(区分dp、分治)只选择一个子问题 特点1.快2.不能保证获得最优解,可以作为近似解,一般,在特殊情况下可保证最优解。3.适合于组合优化问题 设计关键贪心选择策略(分解方案) 程序写法S = s0,C = c0; // 部分解S,候选集Cwhile(!complete(s)){ x = select(c); // 贪心选择主体 ...

2018-12-14 10:53:12 286

原创 算法学习——动态规划

动态规划 求解的基本步骤1)找出最优解的性质,并刻画其结构特征;2)递归地计算最优值;3)以自底向上的方式计算出最优值。 与分治法的区别其得到的子问题是相互独立的。 例子1、0-1背包问题问题描述:给定n件物品和一背包。物品i的重量是wi,价值为vi,背包的容量为C。问:应该如何选择装入背包的物品,使得装入背包中物品的总价值最大?(每种物品只有装与不...

2018-12-13 20:16:06 130

原创 算法学习——递归与分治策略

分治法的基本思想将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。 一般设计模式f(p){递归出口分解for(i = 1;i &lt;= k;i++){  yi = f(pi);   // for循环的此部分为递归求解过程}return merge(y1,...,yk); 例子1、归并排序思想:用分治策略实现...

2018-12-13 18:52:01 438

原创 算法学习——dijkstra算法

dijkstra算法可求单源最短问题,解说可查看blog:https://blog.csdn.net/yalishadaa/article/details/55827681在CCF中的交通规划一题中遇到,我用的做法是0分(但是我找不出来问题,虽然说用临界矩阵存数组会过大可能会导致内存溢出,但是不可能10分都没有,而且测试数据也过了),思想就是用dijkstra计算最短路径,并且在沿途中纪录下得...

2018-12-11 19:33:07 167

原创 算法学习——回溯法

  最近在准备CCF,所以一并把算法也一起复习了一下。下面的题目是老师让我们按照回溯法书上的模板写的题,纪录一下。我太菜辽,呜呜呜。package com.lianup.suanfa.Backtrack;/** *题目:小明从n*n矩阵的左下方走到右上方,并且不能够走过矩阵从右到左的对角线的上方,每次只能向上或者向右走一步 * 求出所有走法 * 要求:按照回溯法的格式写 */...

2018-12-11 16:30:22 189

原创 linux学习——用户和用户组

用户和用户组篇 1、概念用户:使用操作系统的人用户组:具用相同系统权限的一组用户 2、配置文件1./etc/group :存储当前系统中所有的用户信息格式:组中用户名列表:当且仅当用户名只有一个且与组名相等时,可以省略。linux系统中规定:1)root用户组组编号一定为0;2)组号1——499一般为系统的预留编号,留给安装在此系统中的软件和...

2018-12-07 14:54:01 172

原创 读书笔记——深入剖析Tomcat

第一章 一个简单的Web服务器本章主要介绍Web服务器是如何运行的。基于Java的Web服务器有两个重要的类:Socket和ServerSocket,本章介绍此二类和HTTP和一个简单的Web服务器。 1.1 HTTP1、是什么:HTTP允许Web服务器和浏览器通过Internet发送并接收数据,是一种基于“请求——响应”的协议。2、内容1.HTTP请求:包括请求方法——统...

2018-12-06 16:12:35 568

原创 linux学习——硬盘分区和格式化篇

硬盘分区和格式化篇 1、磁盘分区1.概念:磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区(Pratition),不同类的目录和文件可以存储进不同的分区。(分区就是为了管理文件) 2.分区类型(通用的概念,windows同)在MBR分区模式下:(老旧,传统)1.主分区:最多只能有4个。(硬盘结构决定)2.扩...

2018-12-04 17:08:39 2413

原创 牛客网刷题纪录

1.Java动态分派和静态分派:https://blog.csdn.net/dfdsggdgg/article/details/51290764 2.多线程线程的三种实现方式:https://www.cnblogs.com/dolphin0520/p/3949310.html  3.网络HTTP2新特性:https://zh.wikipedia.org/wiki/HTT...

2018-11-29 12:51:55 252

原创 linux学习——磁盘管理篇

磁盘管理篇 1.df命令可同时使用多个参数,例如 df -lh,效果为单个效果叠加。2.du命令du 同样可以搭配参数;-s:后面可接特定文件夹or文件名称(大小默认为kb为单位)   ...

2018-11-23 21:58:10 142

原创 linux学习——vim篇

vim篇1、vi1.vi是什么:文本编辑器,全称 visual interface,可视化接口。2.vim是什么:vi的升级版,和vi完全兼容。3.比vi多了什么:1)vim支持多级撤销;(在命令模式按u可撤销一次,多次按u可撤销多次保存的操作)2)vim可以跨平台运行;(vi只能运行于unix内核的系统中,vim可运行在除此之外的如windows中)3)vim支持语法...

2018-11-23 21:48:49 278

原创 socket编程学习

第一课 网络基础简介1、Java中提供的网络功能1.InetAddress:用于标识网络中的硬件资源;2.URL是什么:统一资源定位符,通过URL可读取或写入网络上的数据; 它由协议名称+资源名称组成。作用:可通过它的openStream()方法得到指定资源的输入流。通过输入溜可读取、访问网络上的数据。3.Sockets:使用TCP协议实现网络通信的socket相关的类;...

2018-11-20 22:25:25 149

原创 linux常用命令

其他快捷操作:1.man:q为退出查看模式2.ctrl--为缩小终端页面,ctrl++为放大终端页面。3.ctrl+shift+c 拷贝,ctrl+shift+v 粘贴。  1、在文件系统中跳转命令.表示当前目录,..表示根目录,/表示根目录;按tab健能够快捷补全。pwd:查看当前所在目录。cd -:可直接跳回到前一个目录。cd /:可跳回到根目录。 ...

2018-11-20 20:07:15 145

原创 阅读的文章知识

1.索引索引的实现原理没有深入讲解(平衡树),讲解了索引的作用和优缺点。    实现:平衡树(b树)    类型:聚集索引和非聚集索引。聚集索引对应主键,非聚集索引对应普通键。    聚集索引:把表的结构转换为平衡树的结构存储,根据其查找得到的是相应的数据。    非聚集索引:被设置为非聚集索引的字段,会复制字段的值并形成平衡树的结构存储,每个索引之间互不关联。通过非聚集索引查...

2018-11-15 21:22:14 146

原创 源码阅读——ArrayList

1.size和capacity private void rangeCheck(int index) { if (index &gt;= size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); }size是ArrayList的理论大小,但实际上ArrayLis...

2018-11-11 16:19:54 195

原创 用java实现简单版tomcat

更新:现在的tomcat已经可以实现调用servlet中的service()方法了,把在这个阶段遇到的问题总结一下。1.在对网页进行访问时,访问会请求2次。第二次是请求/favicon.ico(网页图标)这个东西。(不知道是每个浏览器都会还是个别才有),因为测试的index.html等网页是没有设这个图标的,所以第二次请求会导致抛很多错。在项目中放个图片进去就好了。 2.在servle...

2018-10-27 16:12:25 2643

原创 读书笔记——HeadFirst 设计模式

一、观察者模式1、定义:观察者模式定义了对象的一对多依赖,这样一来,当一个对象状态改变状态时,它的所有依赖者都会收到通知并且自动更新。实现观察者模式的方式很多,但以包含Subject(主题)与Observer(观察者)接口类的设计最常见。 2、类图: 3、松耦合:观察者模式提供了一种对象设计,让主题和观察者之间松耦合。当两个对象松耦合时,它们依然可以交互,但是不太清楚彼...

2018-10-23 20:03:41 247

原创 学习笔记——操作系统

第一章 操作系统引论1.1 操作系统的目标和作用1.1.1 操作系统的主要目标方便性、有效性、可扩充性、开放性。1)方便性:配置了OS的计算机系统,使得计算机变得易学易用。2)有效性:有两层含义。第第一层是提高系统资源的利用率;第二层是,提高系统的吞吐量。3)可扩充性:意味着可以方便地添加新的功能和模块,以及对原有的功能和模块进行修改。4)开放性:系统能遵循世界标准规范...

2018-10-15 17:41:45 1316

原创 数据结构——树

 1.AVL树(自平衡二叉查找树)1)插入avl树的插入操作每次可能会导致多个祖先失衡,但是它只要修改一次(最低的那个祖先节点),更高的祖先的高度也会复原。解决办法:单旋,复杂度为O(1);双旋(对应于”之“字形的情况)(实际并非简单地如此操作)(O(logn))具体实现: 2)删除avl树的删除操作每次只可能导致一个祖先失衡(因为若删除一个节点导致失衡,则该节...

2018-10-10 21:08:10 249

空空如也

空空如也

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

TA关注的人

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