摘要:背景 关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能;但对其内部实现机制,涉及的软件设计模式,编程思想往往没有深入的理解。 本篇案例将帮助读者对Mybatis 阅读全文
posted @ 2019-03-09 00:02 风一样的码农 阅读(8092) 评论(4) 推荐(7) 编辑
摘要:Flume简介 Apache Flume是一个分布式、可靠、高可用的日志收集系统,支持各种各样的数据来源,如http,log文件,jms,监听端口数据等等,能将这些数据源的海量日志数据进行高效收集、聚合、移动,最后存储到指定存储系统中,如kafka、分布式文件系统、Solr搜索服务器等; Apach 阅读全文
posted @ 2017-07-27 20:50 风一样的码农 阅读(5264) 评论(3) 推荐(2) 编辑
摘要:写在前面 程序是五六年前读书的时候写的,里面会有一些不规范的,我已经将代码传到github上了,有时间会优化修改。 程序运行机制 定义了一个JPanel,然后每隔一小段时间重绘一遍。 重绘的内容如下: 地图信息; 敌方坦克; 我方坦克; 右边游戏基本信息; 炸弹爆炸。 涉及一些逻辑: 重叠判断; 坦 阅读全文
posted @ 2016-11-27 11:45 风一样的码农 阅读(4784) 评论(0) 推荐(2) 编辑
摘要:什么是Stream 首先要说的是,不要被它的名称骗了,这里的Stream跟JAVA I/O中的InputStream和OutputStream是两个不同的概念。Java 8中的Stream其实是函数式编程里Monad的概念,关于Monad,感觉还是比较抽象,不好理解,可以参考这篇文章,个人觉得还是比 阅读全文
posted @ 2016-09-29 11:25 风一样的码农 阅读(6489) 评论(1) 推荐(0) 编辑
摘要:什么是函数式接口(Functional Interface) 其实之前在讲Lambda表达式的时候提到过,所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。 这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。 函数式接 阅读全文
posted @ 2016-09-20 19:51 风一样的码农 阅读(16729) 评论(2) 推荐(10) 编辑
摘要:Lambda表达式介绍 Lambda表达式是在java规范提案JSR 335中定义的,Java 8 中引入了Lambda表达式,并被认为是Java 8最大的新特性,Lambda表达式促进了函数式编程,简化了Java编程开发。 背景知识 匿名内部类 在Java中,匿名内部类一般适用于那些在Java应用 阅读全文
posted @ 2016-09-19 14:40 风一样的码农 阅读(3145) 评论(2) 推荐(0) 编辑
摘要:前言 最近写了个Java Web工程demo,使用maven构建; 后端使用spring + spring mvc + mybatis; 前端使用react + react-router+ webpack,使用ES6语法;顺带用了下jquery,echarts等插件,写了几个小demo 初版,还需不 阅读全文
posted @ 2016-07-08 11:39 风一样的码农 阅读(16806) 评论(27) 推荐(7) 编辑
摘要:前言 学习了一段时间J.U.C,打算做个小结,个人感觉总结还是非常重要,要不然总感觉知识点零零散散的。 有错误也欢迎指正,大家共同进步; 另外,转载请注明链接,写篇文章不容易啊,http://www.cnblogs.com/chenpi/p/5614290.html JSR 166及J.U.C 什么 阅读全文
posted @ 2016-07-06 23:02 风一样的码农 阅读(15705) 评论(4) 推荐(13) 编辑
摘要:写在前面 HTML5出来已经很久了,然而由于本人不是专业搞前端的,只知道有这个东西,具体概念有点模糊(其实就是一系列标准规范啦);因此去年(2015.11.09),专门对HTML5做了个简单的小结,今天正好看到,整理一下放到我的博客,以免丢失。有错误请指正。 另外,转载请注明链接http://www 阅读全文
posted @ 2016-06-12 19:42 风一样的码农 阅读(10851) 评论(0) 推荐(3) 编辑
摘要:什么是Session 对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap; Session的目的 Http协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录; Session的主要 阅读全文
posted @ 2016-04-26 16:17 风一样的码农 阅读(34384) 评论(15) 推荐(15) 编辑
摘要:前言 以下sun.misc.Unsafe源码和demo基于jdk1.7; 最近在看J.U.C里的源码,很多都用到了sun.misc.Unsafe这个类,一知半解,看起来总感觉有点不尽兴,所以打算对Unsafe的源码及使用做个分析; 另外,网上找了份c++的源代码natUnsafe.cc(可惜比较老, 阅读全文
posted @ 2016-04-14 17:09 风一样的码农 阅读(13799) 评论(3) 推荐(3) 编辑
摘要:写在前面 同步工具类主要包括闭锁(如CountDownLatch),栅栏(如CyclicBarrier),信号量(如Semaphore)和阻塞队列(如LinkedBlockingQueue)等; 使用同步工具类可以协调线程的控制流; 同步工具类封装了一些状态,这些状态决定线程是继续执行还是等待,此外 阅读全文
posted @ 2016-04-06 11:45 风一样的码农 阅读(5770) 评论(0) 推荐(2) 编辑
摘要:前言 以下内容基于jdk1.7.0_79源码; 什么是HashMap 基于哈希表的一个Map接口实现,存储的对象是一个键值对对象(Entry<K,V>); HashMap补充说明 基于数组和链表实现,内部维护着一个数组table,该数组保存着每个链表的表头结点;查找时,先通过hash函数计算key的 阅读全文
posted @ 2016-03-16 00:07 风一样的码农 阅读(7477) 评论(14) 推荐(7) 编辑
摘要:什么是设计模式 为解决某一类普遍存在的问题而提供的一种解决方案; 分类及定义 创建型模式(5) 1、原型模式:通过复制一个已存在对象来生成一个新对象,被复制的对象称为原型;详情... 2、单例模式:一个类只有一个全局实例;详情... 3、生成器模式:对复杂对象的创建过程进行抽象,相同的创建步骤,不一 阅读全文
posted @ 2016-02-27 11:50 风一样的码农 阅读(11367) 评论(2) 推荐(3) 编辑
摘要:写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码、设计思想及理念, 以便复制, 改造、移植和发展; 从源码上对软件的可靠性和安全性进行验证,对那些直接与CPU 相关的目标代码进行安全性分析; 涉及的主要内容 下面给出个示例,汇编源 阅读全文
posted @ 2016-02-18 20:35 风一样的码农 阅读(4351) 评论(3) 推荐(5) 编辑
摘要:#下载 [root@192 opt]# wget https://www.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz #解压 [root@192 opt]# tar zxvf git-2.18.0.tar.gz #make configure 阅读全文
posted @ 2020-07-26 19:50 风一样的码农 阅读(105) 评论(0) 推荐(0) 编辑
摘要:#下载jenkins.war包 #运行 [root@192 opt]# java -jar jenkins.war --httpPort=9000 这一步记得从打印的日志里拷贝Administrator password,如下所示, Jenkins initial setup is required 阅读全文
posted @ 2020-07-26 15:24 风一样的码农 阅读(71) 评论(0) 推荐(0) 编辑
摘要:#解压 [root@192 opt]# tar -zxvf apache-maven-3.6.3-bin.tar.gz #编辑/etc/profile文件,加入环境变量配置 export MAVEN_HOME=/opt/apache-maven-3.6.3 export PATH=${MAVEN_H 阅读全文
posted @ 2020-07-26 14:55 风一样的码农 阅读(158) 评论(0) 推荐(0) 编辑
摘要:#解压 [root@192 opt]# tar -zxvf jdk-linux-x64.tar.gz #编辑/etc/profile文件,加入环境变量配置 export JAVA_HOME=/opt//jdk1.8.0_131 export PATH=$JAVA_HOME/bin:$PATH exp 阅读全文
posted @ 2020-07-26 14:48 风一样的码农 阅读(116) 评论(0) 推荐(0) 编辑
摘要:#背景 HashMap对于Java开发人员来说,应该是一种非常非常熟悉的数据结构了,应用场景相当广泛。 本文重点不在于介绍如何使用HashMap,而是关注在使用HashMap过程中,可能会导致内存泄露的情况,下面将以示例的形式展开具体介绍。 注意:理解本文的前提需要先熟悉HashMap原理。 为了更 阅读全文
posted @ 2020-06-08 16:23 风一样的码农 阅读(162) 评论(0) 推荐(0) 编辑
摘要:前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现; 传统的服务端负载均衡 常见的服务端负载均衡有基于nginx实现的,Nginx收到请求后,通过轮询,IP哈希等算法来决定转发该请求到 阅读全文
posted @ 2019-03-11 23:49 风一样的码农 阅读(3745) 评论(0) 推荐(0) 编辑
摘要:背景 关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能;但对其内部实现机制,涉及的软件设计模式,编程思想往往没有深入的理解。 本篇案例将帮助读者对Mybatis 阅读全文
posted @ 2019-03-09 00:02 风一样的码农 阅读(8092) 评论(4) 推荐(7) 编辑
摘要:看了下J.U.C并发包下的ReentrantLock源码,费了不少劲,做个小总结吧,尽量用通俗易懂的语言描述,配上一些图说明。 ReentrantLock介绍 ReentrantLock是基于AbstractQueuedSynchronizer(AQS框架)设计的,类里面有一个私有sync成员属性, 阅读全文
posted @ 2019-03-08 23:34 风一样的码农 阅读(346) 评论(0) 推荐(0) 编辑
摘要:这样的话,数据库本身是单点,不可拆库,因为id会重复。并发环境,数据库分布式情况 解决办法: UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名 阅读全文
posted @ 2019-03-08 23:33 风一样的码农 阅读(872) 评论(0) 推荐(0) 编辑
摘要:冒泡排序: 快速排序: 选择排序:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。 插入排序:已排序+未排序两部分,从已排序后面找一个值,插入到已排序,依次下去。。。 希尔排序: 归并排序:归并( 阅读全文
posted @ 2019-03-08 23:33 风一样的码农 阅读(829) 评论(0) 推荐(0) 编辑