![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习日记
文章平均质量分 70
hello_读书就是赚钱
2020年12月加入某头部互联网公司,担任高级开发工程师,从事公司核心软件开发/
2017年6月加入某1000人+软件公司,担任中级架构师从事公司核心软件项目开发,分布式架构研究、部署,生产环境维护等工作
展开
-
sync.map原理解析
sync.map的原理解析原创 2022-06-19 23:07:10 · 1417 阅读 · 0 评论 -
零拷贝摘录
在看kafka的时候看到kafka的高效的原因,是因为用了0拷贝技术.这里看了https://developer.ibm.com/articles/j-zerocopy/这篇文章简单做一下笔记在web场景中,我们需要将硬盘的数据传输到socket中做网络推送.我们编写的应用程序作为媒介,如果使用传统的文件拷贝技术的话将会出现4次拷贝,非常影响效率.1、传统的数据拷贝方式,经历了4次拷贝在上图中,application buffer存在是没有意义的.而且这几个过程需要经历两次内核态切换数据不需要原创 2022-04-09 23:37:05 · 345 阅读 · 0 评论 -
从《从小工到专家》的“道”到大厂的“法术器”-实效篇
上一篇哲学篇在公司内部论坛发布后被推荐到首页、也用了那篇文章给组内同事分享,得到的大家的认可与大家的讨论,借着这股劲,继续完成《从小工到专家》本书第二章内容的梳理与自己经验的复盘回顾,思考成长的灯塔一、本文的内容本文的内容是根据《从小工到专家》这本书的第二章内容梳理编写的,其中印象最深刻的点是“曳光弹”这一节,讲的是我们开发的时候就像是在黑暗中寻找打击目标,需要借助“曳光弹”来照亮黑暗,来寻找到目标的位置.正如这个小故事,书的作者告诉我们在研发中如何提高效率,途径,借着他的观点,我们一起反思.二、.原创 2021-11-01 02:05:18 · 212 阅读 · 0 评论 -
从《从小工到专家》的“道”到大厂的“法术器”-哲学篇
《从小工到专家》这本书之前看过一章内容觉得平平无奇,直到最近在CSDN的首页看到了这本书做为好书推荐,抽空又翻阅了一次,这一次让我觉得“醍醐灌顶”.作者在去年加入某大厂,进来了之后一直在思考着如何利用这个平台学习一些有用和值得思考的知识,苦于一直没有找到合适的“灯塔”.看了这本书之后发现原来我想要去寻求的“道”一直就发生在我的身边以各种方式表现出来.所以作者想跟着《从小工到专家》这本书里面提到的思想,结合作者的亲生经历来复盘总结我所在的大厂是如何践行这些“道”.一来我希望以此来向读者推广这本有趣的厕所.原创 2021-10-17 19:31:21 · 569 阅读 · 0 评论 -
今天说说go多协程并发访问map导致的fatal error
1.背景描述最近写了一个批量查询的接口,因为泰慢,改用goroutine进行并发操作,代码是大概这样的func foo(rsp Rsp){ for _,i:=range rsp.Items { go func(){ //一大堆业务操作,然后得到key跟value rsp.Map[key]=value }() }}结果这段代码在测试环境玩的好好的,上到生产就立刻崩了.2.问题定位在生产的机器中找到错误日志如下:很明显的一个错误,是并发访问map异常.在Java中,并原创 2021-06-16 22:22:14 · 1125 阅读 · 0 评论 -
分布式面试必问题!为什么说CAP不能兼顾?
1.名词定义我们先来认识一下分布式里面说的CAP是什么?分别是一致性(Consistency)、可用性(Availability)和分区容错性(Partition-tolerance)一致性(Consistency):指的是一个节点的主节点跟副本之间数据的一致性,可以想象一下MySQL的主从同步一致性.可用性(Availability):指的是一个系统对外服务的质量.我们常把系统可用性量化为几个9,也即是99.99…%小数点后的几个9,通常可以通过系统的不可用时间,可用时间,总服务时间计算得出来.原创 2021-05-10 00:42:15 · 248 阅读 · 0 评论 -
NGINX的location的匹配规则迷?不迷!
准则URL击中规则程度越高,优先级越高分类前缀匹配:location XXX {}普通前缀匹配location ^~ XXX {}特殊前缀匹配,如果击中则断路,不再判断正则匹配规则,参加下述流程精确匹配:location = XXX {}普通精确匹配正则匹配:location ~ XXX {}区分大小写正则匹配location ~* XXX {}不区分大小写的正则匹配流程URL---->精确匹配---->正则匹配(优先原创 2020-12-15 12:47:57 · 295 阅读 · 0 评论 -
http1.1长链接通过什么手段判断一个请求已经结束了?
由状态码决定的没有消息体的请求(1XX,204,304),那么接受到请求头后则结束。Transfer-Encoding为chunked的时候,接受到一个长度为0的chunkedContent-Length描述body长度,但是如果有transfer-length那么这个头就会被忽略,因为这样的话就是使用了以上第二种的方式关闭链接总结:可以理解为判断是否结束为判断是否读取完整个请求-> 是否拥有请求体,有点的话 -> 判断请求体大小判断 -> 静态判断利用Con.原创 2020-11-21 23:39:55 · 2659 阅读 · 1 评论 -
RabbitMQ是什么?看完你就知道了
AMQP是什么?一、简介是一个性能也许不是很高,但是是一个可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1、作用与特性系统解耦冗余(存储数据)可扩展集群部署可用性镜像队列削峰可恢复性缓冲异步通信可靠性生产者消息确认消费者消息确认相关组件支持持久化灵活的路由支持多种协议支持多种语言客户端支持友好管理界面支持插件机制2、相关组件介绍Rabbit是AMQP协原创 2020-10-28 15:21:59 · 492 阅读 · 0 评论 -
图片检索开发过程实录
package test;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/** * 相似图片的搜索技术 * * 通过把一张图片压缩原创 2016-02-01 18:24:50 · 998 阅读 · 0 评论 -
提高代码质量-总结思维导图
拜读了“究竟怎样写代码才算是好代码“这篇文章http://blog.csdn.net/u013970991/article/details/52609083。简单做了个整理,规划学习路线,提高代码质量原创 2016-09-22 11:57:08 · 621 阅读 · 0 评论 -
一头扎进设计模式-状态模式
定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。用自己的话说:把每个状态的具体行为封装的具体的某个类中,让状态类代替主体是实现一些操作。代码: 定义一个状态接口类public interface State { //插入原创 2016-09-18 14:22:54 · 332 阅读 · 0 评论 -
综合整理规划java学习路线
以下是大牛总结: 1.Java基础 javase,过于基础,不谈,推荐传智博客30天掌握javase系列视频2.Web开发 Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),作者学习是直接去w3cschool把全部关于前端都看了原创 2016-09-07 17:06:22 · 898 阅读 · 0 评论 -
centos7.0 阿里巴巴学生服务器搭配环境实录(1)--java1.8环境搭建
输入以下命令,查看jdk软件包列表 yum search java | grep -i –color JDK获取软件包列表然后输入以下命令进行安装yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel然后进行一轮时间的等待当你看到以下字样时代表你安装成功,接下来就要对环境进行配置Complete!用Yum原创 2016-02-24 15:00:31 · 550 阅读 · 0 评论 -
2017年毕业设计总结
本论文撰写总结是按照从开题到结题的过程进行总结:1.选题关于选题方面建议还是要有一个属于自己的想法, 这个想法必须是自己感兴趣的内容,因为兴趣是最好的老师。可以是系统、可以是写编译器、可以写算法,就比如这次我写的是搜索引擎,是因为我在学习的过程中经常需要用到某些网盘搜索引擎,所以萌发出自己写一个属于自己的搜索引擎的想法。在暑假面试的过程中会经常遇到一些企业面试多线程的问题,所以我最终敲定做一个基于多原创 2017-06-24 21:55:44 · 1071 阅读 · 1 评论 -
springMVC+hibernate+springdata+querydsl框架构建详解
上一次的文章讲述了springdata的主要好处,其中一个好处就是他是spring家族的一大成员之一,所以可以和springMvc无缝结合,而且配置很简单,但是querydsl 却不是spring的产品,且拥有两个版本(com.querydsl和com.mysema.querydsl),springdata只支持com.querydsl版本所以导致配置会出现问题。现在让我们一步步把data配置进入我原创 2016-08-11 15:43:26 · 2310 阅读 · 0 评论 -
springMVC+hibernate+springdata+querydsl搭建框架(优缺点分析+springdata介绍)
参考资料: springdata:http://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/#jpa.query-methods.at-query querydsl:http://www.querydsl.com/static/querydsl/3.4.3/reference/html_single/简介:spr原创 2016-08-03 22:56:50 · 3386 阅读 · 1 评论 -
结合微信公众号授权理解OAuth2.0
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 因为公司的SSO是基于OAuth2.0协议进行开发的,所以学习了阮一峰理解OAuth2.0 这篇文章,讲的非常详细,其中的授权流程让我想起以前曾经做过的公众号开发授权流程,现在结合公众号授权流程理解OAuth2.0协议一、应用场景我曾经开发的一个网站,用来读取用户的微信个人信息。原创 2017-02-28 17:46:32 · 848 阅读 · 0 评论 -
spring mvc-@SessionAttributes 忘记清除 导致无法退出登录问题
深夜深井冰,来聊聊今天在开发中遇到的艰苦难题先讲讲本次遇到的bug所在,在平常的开发中时长遇到要从session里面拿属性的一些时候,所以程序里面多了很多类是于这样的代码public String toQuestionDetail(HttpSession httpSession) { if (httpSession.getAttribute("user") == null) {原创 2017-01-22 04:17:00 · 5297 阅读 · 6 评论 -
tomcat 错误页面设置
以前开发的时候,一直没错处理错误页面的问题,如果tomcat报错,就直接把错误的信息打印出来,找不到地址的时候就直接给出一个404错误,因为做的项目一直是没有上线的,所以,一直没有留意过这个问题,所以今天要记录一下错误的页面的指定。error-page元素就是用来克服这些问题的。//放置于web.xml末尾处<error-page></error-page>它有两个可能的子元素,分别是:<err原创 2016-06-20 01:09:26 · 3388 阅读 · 0 评论 -
当面试被问到Unicode与UTF-8有什么区别你需要这样回答
本文参考:知乎,并结合自身开发经历撰写 背景:前几天师弟过来提及到面试的时候被提问到Unicode与UTF-8 有什么区别,师弟一时蒙蔽,突然之间脑袋里也是不知道两者的关系,只知道开发的时候只用万国码UTF-8,故百度一番,留下一个记录好好理清楚编码之间的关系。为什么对编码问题最开始会觉得乱?因为之前从开始学习java基础的时候看视频只是简单的提及到编码GBK(中国人定...原创 2018-03-26 16:03:06 · 1713 阅读 · 0 评论 -
简述一下OSI七层网络模型与TCP/IP协议四层网络模型
因为最近的工作会涉及网络这方面的知识,所以对网络这一块基础内容进行一个回顾,之前在学校学习都是马马虎虎,再次回顾一下这些基础内容,再结合实际工作经验,希望能让自己在网络这一块上面建立起基础知识模型,这篇文章主要是在看完计算机网络基础之后的总结,因为之前面试过程中一直会提及这些知识点,所以简单做一个记录。一、OSI七层网络模型 OSI是Open System Interconnecti...原创 2018-04-05 15:09:01 · 4700 阅读 · 0 评论 -
一次java应用线上运维实战
背景:今天深圳项目出现负载狂飙的情况,由我负责主要的运维,简单记录运维的情况一、首先使用top命令查看java进程对资源的使用情况。 通过%CPU、%MEM的参数信息可以看出当前进程疯狂占用CPU(使用量最高已经彪到了百分之3000多),内存使用情况占用到80%以上,8G内存。二、首先先着手分析内存会不会溢出,因为当前zabbix报警系统的出发点是内存大于80%将会触发报警 首...原创 2018-05-08 12:08:52 · 2278 阅读 · 0 评论 -
穿建一个接点类,Node,进行单链表实验
package DataStructureTestSinglyLinkedList;public class Node { public T data;//数据域,保存数据元素 public Node next;//地址域,引用后继节点 //声明一个构造方法 public Node(T date,Node next) { this.data=date; this.nex原创 2014-11-28 23:57:51 · 495 阅读 · 1 评论 -
maven-tomcat-远程部署web项目
今天下午发布了swagger自动生成文档。当文档做好了之后是不是要打包,用shell部署到远程的阿里巴巴服务器呢? 今天,通过同事的建议发现maven可以远程部署项目。 首先确定你的tomcat版本!我就是因为没有确定tomcat版本吃了很多亏,搞了一天,先写流行的tomcat7,再写tomcat6.tomcat7与maven第一步 **修改tomcat配置。让你的tomcat可以远程部署与管理原创 2016-04-01 01:20:36 · 1449 阅读 · 0 评论 -
Swagger与SpringMVC项目整合
swagger 是一款提供在线文档测试,文档自动撰写的一款优秀的框架首先,添加相关jar包 com.mangofactory swagger-springmvc 1.0.2 org.codehaus.jackson jackson-mapper-asl 1.9.13 org.codehaus.jack原创 2016-03-31 16:32:20 · 7113 阅读 · 0 评论 -
java 图片数字图像处理之图片缩小
package test;import java.awt.Color;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/** * 因为等原创 2016-01-31 22:24:40 · 805 阅读 · 0 评论 -
创建一个双链表结点
package DataStructureTestSinglyLinkedList;public class DLinkNode { public T data;//数据元素 public DLinkNode prev,next;//prev指向前驱节点,next指向后驱结点 //构造函数 public DLinkNode(T data,DLinkNode prev,DL原创 2014-12-01 19:54:52 · 549 阅读 · 1 评论 -
顺序链表的构建
package DataStructureTestSinglyLinkedList;public class SortedSinglyLinkedList> extends SinglyLinkedList { public SortedSinglyLinkedList() { super(); } public SortedSinglyLinkedList(T[] e原创 2014-11-30 12:49:40 · 484 阅读 · 1 评论 -
单链表进阶——编写一个约瑟夫环
package DataStructureTestSinglyLinkedList;public class Josephus { public Josephus(int n, int s , int d) { SinglyLinkedList list = new SinglyLinkedList(); for(int j=0;j<n;j++) list.append( (原创 2014-11-29 00:04:37 · 590 阅读 · 1 评论 -
用单链表进行求平均数(去掉最大数,最小数)
package DataStructureTestmain;import DataStructureTestSinglyLinkedList.Node;import DataStructureTestSinglyLinkedList.SinglyLinkedList;public class SinglyLinkedList_average { public static Inte原创 2014-11-29 01:40:08 · 2386 阅读 · 1 评论 -
创建一个单链表类——SinglyLinkedList,继承线性表LList
/*声明一个带头指针的单链表 * * */package DataStructureTestSinglyLinkedList;import DataStructureTest.LList;public class SinglyLinkedList implements LList { public Node head; //无参构造函数 public SinglyLi原创 2014-11-29 00:00:13 · 1354 阅读 · 1 评论 -
线性表进阶___约瑟夫环问题
/** * 解决约瑟夫环问题:古代某法官要判决n个犯人,荒唐的法律:将犯人站成一个圈,从第S个人开始数起 * 每数到第D个犯人,就拉出来处决,再从下一个开始数D个,数到的人再处决,直到剩下最后一个犯人予以赦免。 * 需求: * 当n=5,s=0;d=2; * 求约瑟夫环问题的处理方式。 */package DataStructureTest;public class Joseph原创 2014-11-26 21:16:13 · 16311 阅读 · 2 评论 -
定义一个线性表接口
//判断是否为空,长度,返回元素,插入,最尾插入,删除,返回全部,查找相似package DataStructureTest;public interface LList {boolean isEmpty();//判断线性表是否为空int length();//声明一个线性表长度T get(int i);//根据索引i,当前索引下返回Tvoid set(int i ,T原创 2014-11-26 18:27:45 · 880 阅读 · 1 评论 -
视频观看者的福音java 多行注释
行注释快捷键1.选中你要加注释的区域,用ctrl+shift+C 或者ctrl+/ 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上/* */注释3.以上快捷在重复按一下就会去掉加上的注释4.要修改在eclispe中的命令的快捷键方式我们只需进入windows -> preference -> General -> key设置就行了原创 2014-11-26 20:51:12 · 512 阅读 · 1 评论 -
来吧java,创建一个SeqList类
package DataStructureTest;public class SeqList implements LList { private Object[] element;//声明一个对象数组 private int len;//声明一个顺序表长度,记载实际元素个数 public SeqList(int size)//构造函数,创建一个空表 { this.elem原创 2014-11-26 19:45:17 · 2535 阅读 · 1 评论 -
java 编译器 快捷键大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对转载 2014-11-26 01:13:21 · 1882 阅读 · 2 评论 -
创建一条循环双链表
package DataStructureTestSinglyLinkedList;import DataStructureTest.LList;public class CirDoublyLinkedList implements LList { public DLinkNode head; public CirDoublyLinkedList() { this.hea原创 2014-12-02 00:25:28 · 570 阅读 · 1 评论 -
超级无敌,循环升序双链表
package DataStructureTestSinglyLinkedList;public class SortedCirDoublyLinkedList>extends CirDoublyLinkedList { public SortedCirDoublyLinkedList() { super(); } public SortedCirDou原创 2014-12-02 02:01:36 · 656 阅读 · 1 评论 -
java 图片的放大与缩小--等距采样算法
package test;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/* * 通过像素的缩放技术,改变图片的大小 * --等距采样法 */public class ImageChange {原创 2016-01-30 16:08:41 · 2209 阅读 · 1 评论