自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

当一堆用不熄灭的柴火

最好金龟换酒,相与醉沧洲

  • 博客(186)
  • 资源 (2)
  • 收藏
  • 关注

原创 Mybatis系列(一):mybatis解析xml之前的准备工作

前言什么是 MyBatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。上边这段话是引用自mybatis的官网,使用过mybatis的同学不难发现,我们一般情况下都需要借助xml文件,来帮助我们完

2021-01-10 17:40:25 2164 8

原创 Cat监控系统学习笔记

前言最近公司要基于cat做监控系统的研发工作,这个系列博客就记录一下近一个月Cat的学习过程目录Cat概览windows单机Cat搭建过程Cat接入SpringMVC实例Cat源码分析(一):Client端Cat源码分析(二):Consumer端Cat源码分析(三):10种分析器Cat源码分析(四):告警机制数据分析过程Cat源码分析(五):告警机制发送信息过程Cat源码分...

2018-10-27 11:06:59 1399 3

原创 Zookeeper学习总结

概念ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,他基于ZAB协议完成一套主备模式的架构来保证数据的一致性。今天这个总结按照下边的导图展开:数据模型 zk的数据结构是类似文件系统的树形结构,他的最小单位称为znode,他可以完成数据保存和节点的挂载。znode又分为四种类型,分别为持久化节点,持久化有序节点,临时节点(会话结束节点自动被清理),临时有序节点。...

2018-08-26 20:05:48 362 2

原创 spring中的设计模式——动态代理(一)

前言

2018-06-24 21:04:49 704 9

原创 舆情系统实战——思路

前言最近在做一个爬虫项目,爬取微博评论,项目提测了,现在就来简单的总结一下。项目架构因为公司的架构体系,所以python不能直接连接redis,需要写一个java的项目,来做连接数据库的工具。所以整个项目包含了6部分:python(爬虫)、python(cookie生成器)、python(情感分析,用的snownlp的库),java(服务端:用于连接es、redis、mysql),java(...

2019-03-24 19:02:53 3189 5

原创 java如何判断微博cookie是否失效

前言这周用java实现了一个cookie池的功能,主要是因为python程序无法连接公司的redis,所以就用java写了一版。cookie池顾名思义就是用来给爬虫提供可用cookie,使其能够顺利登陆程序。cookie池由三部分构成:生成、检测、获取。生成cookie这部分是python实现的,然后使用flask给java暴露一个接口。检测部分就涉及到了今天这篇博客的主题,下边我们就来详细的记...

2019-03-03 18:30:45 2934 2

原创 记录python安装过程

前言最近在做一个舆情系统,需要爬取和公司有关的评论,所以从今天开始会记录一些学习python的过程,今天就先记录一下python的安装步骤下载网站:https://www.python.org/downloads/windows/我是64位windows系统,所以选择红框里的这个选项下载下来是一个.exe程序,直接运行就好了选择自定义安装,并且勾选添加到环境变量这个选项...

2019-02-24 20:40:53 286 2

原创 Cat源码分析(三):10种分析器

分析器的共同特点一、 消息分析器接口定义了如下方法,通过这些方法,我们可以知道分析器他要做哪些事涉及到重要的功能方法:分析(analyze)、存储(doCheckpoint) 、销毁(destroy)二、 我们再来看看消息分析器的抽象实现类AbstractMessageAnalyzer做了什么定义了两个重要的抽象方法:a) doCheckpoint:存储b) process:处理...

2018-12-08 10:29:09 1084 3

原创 Cat源码分析(二):Server端

初始化服务端消费客户端发来的消息进行分析和展示,所以这个的初始化指的是CatHomeModule的初始化CatHomeModule依赖TcpSocketReceiver和MessageConsumer,前者用来接收客户端发送的消息,后者用来消费消息。TcpSocketReceiver通过Messagecodec对MessageQueue中的MessageTree进行解码,还原成为Messa...

2018-10-29 14:20:02 495 2

原创 Cat源码分析(一):Client端

客户端初始化我们首先看一下Cat这个类的初始化过程 public static void initialize(PlexusContainer container, File configFile) { ModuleContext ctx = new DefaultModuleContext(container); Module module = ctx.lookup(Module.c...

2018-10-27 13:57:22 1886 1

原创 CATwindow单机版搭建手册

环境Jdk: 1.7.0_80Maven: 3.3.9(使用的idea自带的maven,没有自己配置)Tomcat7.0.91Mysql 5.6.41IDEA 2018.2.4x步骤一、 从GitHub上拉取代码,并导入到idea中 : https://github.com/dianping/cat.git二、 直接拉取下来的CAT默认使用jdk1.5,需要手动改成自己电脑上的...

2018-10-02 17:12:07 1274 3

原创 CAT概述

前言最近,刚换了一家公司,第一个任务就是要在CAT的基础上做二次开发,老大让先看一个星期的源码,利用国庆假期,就好好的做一下总结。首先,这一篇博客就来聊一聊CAT到底是个什么鬼思维导图+概述下边是我总结的思维导图,分别从what?why?how?的角度进行说明what是什么:cat是由美团的尤勇和吴其敏主导设计,使用java开发打造的实时应用监控平台。why为什么:它可以帮助我们解决...

2018-10-02 16:49:09 1605 4

原创 对象序列化详解

前言我们在做web项目的时候,在网络传输中,序列化是绕不过去的重要一环。今天就来总结一下序列化到底能为我们做些什么概念 序列化机制:允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点。其他程序一旦获得了这种二进制流(无论磁盘还是网络),都可以将这种二进制流恢复成原来的Java对象。如何实现一...

2018-07-28 11:07:16 338 9

原创 分布式架构由来

周六在公司看了两集分布式概览的视频,从宏观了解一下分布式的发展,老师讲的很清楚,所以这一篇博客就来记录一下上课的笔记第一版:程序和数据库在一台应用服务器上第二版:数据库和系统分开两个服务器 第三版:出现集群 第四版:部署多台服务器,出现负载均衡,session跨域问题随之而来,一般使用cookie来解决这个问题,在cookie中保存access_token,当向服务器发送请...

2018-07-24 19:52:46 994 6

原创 AOP名词解释

每次学习AOP的时候都会被几个名词搞晕,今天就来类比这几个名词到底是什么意思 一、建言(Advice) 你要附加的功能,安全、事物、日志等等。定义好,在哪里想用就可以用了,通常使用@After,@Before,@Around定义建言二、连接点(JoinPoint) 就是spring允许使用建言的地方,基本每个方法前后都可以使用,抛出异常时也可以使用,所以这些统统都是连接点三、切入点(...

2018-06-09 11:48:25 562 9

原创 CodePiece - if else替换之:三元表达式

展示代码如下:public static Double getNumberByMinAndMax(Double num, Double min, Double max) { if(num == null) { return min; } else { num = get4Double(num.doubleValue()); m...

2018-05-26 09:51:44 1421 23

原创 js 如何id为xx的div中包含的ul中的符合条件的li元素

需求:首页左侧有导航栏,点击导航栏,会出现一个div,div中有很多可以跳转的页面,但是有的div需要添加一个滚轮,所以需要找到这个div,然后添加一个特殊的类名重点代码就是: var div=document.getElementById(“nav_sub”); var uls=div.getElementsByTagName(“ul”); var lis=ul...

2018-05-21 09:22:36 1447 17

原创 js打印表格出现中断现象怎么处理

前言 昨天静姐交给我一个打印的需求,开始想着导出到word在打印,后来洪肖哥说那样太麻烦,直接在页面上打印比较快,所以就有了这篇博客。 实现过程: 1. 查询数据库,前台得到json 2. 拼接表格 3. 打印遇到的问题 打印预览css失效 一页打印不下,必须两个页面,但是第一个和第二个页面中间出现表格中断的现象,特别丑 解决方案 一、css...

2018-05-10 16:59:16 5498 15

原创 多线程总结(一)

前言 吐槽csdn,刚才写好了,结果保存的时候卡死了!好气哦!项目上个星期在等投标的结果,所以没有什么事情,就抓紧时间把《Java多线程核心技术》敲了一遍,今天就来总结总结里边的知识点概念 进程:cpu中运行的exe,一个进程包含很多线程 线程:进程中独立运行的子任务 举例:我们运行一个QQ程序,其实就是一个QQ的进程,我们在聊天的同事还可以干许多其他的事情,比如传个资料,逛逛qq...

2018-05-06 20:19:11 212 15

原创 虑重

校验:类似List中嵌套Map的集合,去重的时候如何操作,其实很简单,设置标识位就ok,比如我在项目中用到的:List<Map<String, Object>> prodParamList = productInterfaceDao.getProdConfList(param);Set<Integer> termSet = new HashSet&lt...

2018-04-24 22:10:02 280 22

原创 js代码积累:获得table选中行

前段时间在做一个OA系统,对于table的操作比较多,其中有一个场景就是选中某一行,点击修改删除按钮,需要获得这一行数据的ID,使用的方法是通过样式来进行筛选,代码如下:/** * 获取选中ids * @returns {Array} */function getSelectIds(){ var tablelist = $("#tableList").dataTable();...

2018-04-22 17:55:55 6749 17

原创 Web服务器机制(一)

今天看了看书架上的书,发现一本关于tomcat的书,翻了翻,发现还真学到很多东西,记录一下,就当一篇读书笔记吧。 第一章主要是讲解了一下web服务器的机制,从以下三方面展开:通信协议、Socket通信、web服务器模型一、通信协议HTTPHyper Text Transfer Protocol(超文本传输协议) 特点: 应用层协议请求和相应组成无状态普遍使...

2018-04-15 20:37:15 993 16

原创 多个if else判断的优雅替换

最近在敲代码的时候,经常会遇到同事写的一大串if else 判断代码,明知道这样写不好,但是又不知道从何下手优化,例如下面这个: 之后学习“重构”这本书的时候,恰巧遇到了解决这类问题的一个思路,自己写了一个小demo,分享给大家: public class Ifelseoptimic { public static void main(String[]...

2018-04-08 22:15:39 3261 16

原创 巧用sql计算累计值

业务:如下图所示,下图是每日公司故障数和行车里程数统计,要得到累计故障率的数据,举个例子,我想要看3月4日的累计故障率,就要将这天之前所有的故障数加起来,除以里程数之和,得到这一天的累计故障率 套用的累计sql:select id,time,(select SUM(X)from table as i where i.time<=o.time) as total from table...

2018-03-31 07:59:46 17058 26

原创 eclipse如何修改tomcat的部署路径

前言 第一次启动项目,tomcat启动成功了,tomcat中的wabapps文件夹中居然没有找到,上网查看资料发现默认的地址并不是你安装tomcat的地址,今天总结一下如何修改部署地址步骤 1.停掉tomcat上启动的项目 2. 移除tomcat上所有的项目 3. 右击server点击clean 4. 右击server点击open5. 6. 在把项目添加...

2018-03-16 09:54:59 12267 25

原创 Mysql索引总结(一)

定义 定义:在mysql中也叫做“键(Key)”,是存储引擎用于快速找到记录的一种数据结构。理解:索引就像是书的目录,然后找到对应章节的页码。在mysql中,存储引擎用类似的方法使用索引,先在索引中找到对应的值,然后根据匹配的索引记录找到对应的数据行。例子: select id from t_sign where staff_id=’123’如果在staff_id列上建有索引,则...

2018-03-07 11:14:00 264 20

原创 微信小程序(一)—— 数据绑定

最近在做一款应用于教师上课的签到系统,最终决定使用微信小程序来完成,今天就来总结一下列表的绑定功能:我做的页面是显示上课班列表,所以后台返回一个teachclassList最终效果如下图所示:wxml页面代码: <view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-i...

2018-03-06 20:40:04 2504 27

原创 Java代码积累:根据日期判断出星期几

public static String dateToWeek(Date datetime) { String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; Calendar cal = Calendar.getInstance(); // 获得一个

2018-02-28 09:58:51 546 24

原创 LinkedList和ArrayList对比

前一段时间开发任务比较轻松,所以学习了一些集合类的底层是如何封装的,今天就总结一下LinkList和ArrayList有哪些异同相同点 我们可以发现,ArrayList和LinkedList都是接口List的实现类,也就是说他们两个类中一定都存在一些相同的方法,例如size()、isEmpty()、contains()、add()、remove()、get()、set()等,但是他们的...

2018-02-24 15:34:27 378 33

原创 LeetCode(6):Longest Common Prefix

题目 编写一个函数来查找字符串数组中最长的公共前缀字符串例子:字符串数组:leets leetcode leet leeds公共前缀字符串就是Lee思路1 1.拿第一个和第二个对比,找到最长的,也就是leet 2.在和下一个比较,如果还是leet,则比较下一个字符串;如果不是leet,则去掉最后一位,得到lee,再进行比较public String longestCo...

2018-02-10 21:01:57 223 18

原创 一月总结:关于读书,关于英语,关于梦想

前言 2018年的开始制订了一系列的愿望,1/12分之一已经过去了,总结一下这个月的收获,聊聊做了哪些,哪些需要加把劲儿关于学习的10个小目标 读书(每个月4本)每读完一本书,写简短的感受看电影看完电影写感受每星期写两篇博客(至少)每天都进行时间管理每天坚持学一个小时的英语每个月读一本技术的书每个星期刷一道leecode的题找到22-25k的工作总结一下1月份关于学习的收获

2018-01-31 20:33:13 553 26

原创 类加载机制(一)

前言 学习了很久的面向对象的知识,我们对于“类”这个概念一定不陌生吧,当我们需要一个对象的时候,都是通过“类”得到,包括我们学习的反射,也是通过拿到类中的一些信息,今天就来总结一下,JVM是如果把类加载到内存当中的思维导图 什么是类加载? JVM把class文件加载到内存里面,并对数据进行校验、准备、解析和初始化,最终能够被形成被JVM可以直接使用的Java类

2018-01-29 20:14:30 274 22

原创 LeetCode(5):Reverse Integer

LeetCode:Reverse Integer 输入123,返回321 输入-123,返回-321 输入120,返回21思路+代码 1.从个位开始,依次算出这个整数个位上的数 2.定义结果为零,循环每次乘以10,再加上个位的数 3.这道算法题,感觉主要练习的就是:%和/ public static int reverse(int x) {...

2018-01-29 11:15:37 225 13

原创 垃圾回收机制

前言 开始硬着头皮看周志朋老师的《深入理解Java虚拟机》,看完前三章,做个小总结,下边总结会穿插一些面试经常问的问题,以后面试留着用。开始看这本书之前,我一直觉得JVM是特别特别难的东西,也不知道要怎么学,所以逛了逛知乎,看看上边似神非神的人热热闹闹说一通,好歹能有个大致的方向。说白了jvm一般围绕着三方面:GC、内存和类加载机制,今天就着重的总结一下GC对应的第三章内容关于G

2018-01-25 17:06:06 277 22

原创 使用Java配置的方式完成SpringMVC的搭建

SpringMVC请求过程 简单描述一下请求过程: 1.请求到达前端控制器DispatcherServlet,他的作用是将请求转发给相应的控制器(controller) 2.DispatcherServlet通过处理器映射得到具体是哪个控制器,然后将请求转发 3.控制器进行信息的处理,然后将模型打包(模型中是后台查出来需要展示给前台的信息),并且标示出用于渲染输出的视图名

2018-01-22 16:38:54 3443 19

原创 Java静态内部类——重点是精妙的demo

什么是内部类 大部分时候,类被定义成一个独立的程序单元。在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类(有些地方也叫做嵌套类),包含内部类的类也被称为外部类(有些地方也叫做宿主类)作用?? 更好的封装性内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,但外部类不能访问内部类的实现细节,例如内部类的成员变量

2018-01-22 15:26:01 44151 28

原创 张老师的一堂课——Git小结

前言 上周末,小张哥把Git如果在项目中应用给我讲了一遍,师傅领进门,修行靠个人,还需要自己动手做,才能把这个工具熟练掌握。所以第一步我就把小张哥的系列博客溜了一遍,稳固稳固基础,在动手实践Git是什么? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而

2018-01-16 11:15:24 392 17

原创 LeetCode(4) Longest Palindromic Substring

题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.给定一个字符串s,找到s中最长的回文子字符串。你可以假定最大长度是1000知识点 回文字符串:一个字符串,从左到右读和从右到左

2018-01-15 15:53:27 240 8

原创 Bean的自动化装配

前言 今天我们来总结一下bean的装配问题,一个软件需要不同功能的类之间建立合作,才能是组装成一个强大的系统,spring在其中就是一个调度者的角色,总结一句话就是:我知道你需要什么,我提供给你需要的,而你只需要大脑空空就可以了,专注于你要完成的业务逻辑就好了,别的事情交给我来做。有没有被spring感动到,比如一台电脑,他包含了许多组件,cup知道他需要一个硬盘吗?不知道吧,这需要

2018-01-15 10:14:26 335 8

原创 盛豆子的东西

前言 每次起奇奇怪怪的名字的时候都很纠结,一是想要取悦自己,但是这样的名字访问量又高不起来,反正访问量多了又能怎样,还是自己高兴最重要~~今天还是围绕spring管理bean的容器,来探讨一下spring魅力所在思维导图 Sring的核心就是IOC和AOP,IOC离不开盛放bean的容器,容器的作用就是对bean进行管理,包括了bean的创建,配置,装配和管理bean

2018-01-10 11:07:38 330 11

高性能mysql第三版.pdf

《高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充。全书共分为16 章和6 个附录,内容涵盖mysql 架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的mysql 和mysql相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。 《高性能mysql(第3版)》不但适合数据库管理员(dba)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。

2018-09-08

实战Java高并发程序设计.pdf

在过去单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发就显得尤为重要。 《实战Java高并发程序设计》主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java中进行并行程序设计的基本方法。第二,进一步详细介绍JDK中对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论有关“锁”的优化和提高并行程序性能级别的方法和思路。第四,介绍并行的基本设计模式及Java 8对并行程序的支持和改进。第五,介绍高并发框架Akka的使用方法。最后,详细介绍并行程序的调试方法。 《实战Java高并发程序设计》内容丰富,实例典型,实用性强,适合有一定Java基础的技术开发人员阅读。

2018-09-08

空空如也

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

TA关注的人

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