摘要:背景 关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能;但对其内部实现机制,涉及的软件设计模式,编程思想往往没有深入的理解。 本篇案例将帮助读者对Mybatis 阅读全文
posted @ 2019-03-09 00:02 风一样的码农 阅读 (1334) 评论 (0) 编辑
摘要:Flume简介 Apache Flume是一个分布式、可靠、高可用的日志收集系统,支持各种各样的数据来源,如http,log文件,jms,监听端口数据等等,能将这些数据源的海量日志数据进行高效收集、聚合、移动,最后存储到指定存储系统中,如kafka、分布式文件系统、Solr搜索服务器等; Apach 阅读全文
posted @ 2017-07-27 20:50 风一样的码农 阅读 (4585) 评论 (3) 编辑
摘要:写在前面 程序是五六年前读书的时候写的,里面会有一些不规范的,我已经将代码传到github上了,有时间会优化修改。 程序运行机制 定义了一个JPanel,然后每隔一小段时间重绘一遍。 重绘的内容如下: 地图信息; 敌方坦克; 我方坦克; 右边游戏基本信息; 炸弹爆炸。 涉及一些逻辑: 重叠判断; 坦 阅读全文
posted @ 2016-11-27 11:45 风一样的码农 阅读 (4216) 评论 (0) 编辑
摘要:什么是Stream 首先要说的是,不要被它的名称骗了,这里的Stream跟JAVA I/O中的InputStream和OutputStream是两个不同的概念。Java 8中的Stream其实是函数式编程里Monad的概念,关于Monad,感觉还是比较抽象,不好理解,可以参考这篇文章,个人觉得还是比 阅读全文
posted @ 2016-09-29 11:25 风一样的码农 阅读 (4926) 评论 (1) 编辑
摘要:什么是函数式接口(Functional Interface) 其实之前在讲Lambda表达式的时候提到过,所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。 这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。 函数式接 阅读全文
posted @ 2016-09-20 19:51 风一样的码农 阅读 (11054) 评论 (0) 编辑
摘要:Lambda表达式介绍 Lambda表达式是在java规范提案JSR 335中定义的,Java 8 中引入了Lambda表达式,并被认为是Java 8最大的新特性,Lambda表达式促进了函数式编程,简化了Java编程开发。 背景知识 匿名内部类 在Java中,匿名内部类一般适用于那些在Java应用 阅读全文
posted @ 2016-09-19 14:40 风一样的码农 阅读 (2678) 评论 (2) 编辑
摘要:前言 最近写了个Java Web工程demo,使用maven构建; 后端使用spring + spring mvc + mybatis; 前端使用react + react-router+ webpack,使用ES6语法;顺带用了下jquery,echarts等插件,写了几个小demo 初版,还需不 阅读全文
posted @ 2016-07-08 11:39 风一样的码农 阅读 (15799) 评论 (27) 编辑
摘要:前言 学习了一段时间J.U.C,打算做个小结,个人感觉总结还是非常重要,要不然总感觉知识点零零散散的。 有错误也欢迎指正,大家共同进步; 另外,转载请注明链接,写篇文章不容易啊,http://www.cnblogs.com/chenpi/p/5614290.html JSR 166及J.U.C 什么 阅读全文
posted @ 2016-07-06 23:02 风一样的码农 阅读 (9128) 评论 (4) 编辑
摘要:写在前面 HTML5出来已经很久了,然而由于本人不是专业搞前端的,只知道有这个东西,具体概念有点模糊(其实就是一系列标准规范啦);因此去年(2015.11.09),专门对HTML5做了个简单的小结,今天正好看到,整理一下放到我的博客,以免丢失。有错误请指正。 另外,转载请注明链接http://www 阅读全文
posted @ 2016-06-12 19:42 风一样的码农 阅读 (10133) 评论 (0) 编辑
摘要:什么是Session 对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap; Session的目的 Http协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录; Session的主要 阅读全文
posted @ 2016-04-26 16:17 风一样的码农 阅读 (30460) 评论 (15) 编辑
摘要:前言 以下sun.misc.Unsafe源码和demo基于jdk1.7; 最近在看J.U.C里的源码,很多都用到了sun.misc.Unsafe这个类,一知半解,看起来总感觉有点不尽兴,所以打算对Unsafe的源码及使用做个分析; 另外,网上找了份c++的源代码natUnsafe.cc(可惜比较老, 阅读全文
posted @ 2016-04-14 17:09 风一样的码农 阅读 (11211) 评论 (3) 编辑
摘要:写在前面 同步工具类主要包括闭锁(如CountDownLatch),栅栏(如CyclicBarrier),信号量(如Semaphore)和阻塞队列(如LinkedBlockingQueue)等; 使用同步工具类可以协调线程的控制流; 同步工具类封装了一些状态,这些状态决定线程是继续执行还是等待,此外 阅读全文
posted @ 2016-04-06 11:45 风一样的码农 阅读 (4327) 评论 (0) 编辑
摘要:前言 以下内容基于jdk1.7.0_79源码; 什么是HashMap 基于哈希表的一个Map接口实现,存储的对象是一个键值对对象(Entry<K,V>); HashMap补充说明 基于数组和链表实现,内部维护着一个数组table,该数组保存着每个链表的表头结点;查找时,先通过hash函数计算key的 阅读全文
posted @ 2016-03-16 00:07 风一样的码农 阅读 (6955) 评论 (14) 编辑
摘要:什么是设计模式 为解决某一类普遍存在的问题而提供的一种解决方案; 分类及定义 创建型模式(5) 1、原型模式:通过复制一个已存在对象来生成一个新对象,被复制的对象称为原型;详情... 2、单例模式:一个类只有一个全局实例;详情... 3、生成器模式:对复杂对象的创建过程进行抽象,相同的创建步骤,不一 阅读全文
posted @ 2016-02-27 11:50 风一样的码农 阅读 (10353) 评论 (2) 编辑
摘要:写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码、设计思想及理念, 以便复制, 改造、移植和发展; 从源码上对软件的可靠性和安全性进行验证,对那些直接与CPU 相关的目标代码进行安全性分析; 涉及的主要内容 下面给出个示例,汇编源 阅读全文
posted @ 2016-02-18 20:35 风一样的码农 阅读 (3526) 评论 (3) 编辑
摘要:前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现; 传统的服务端负载均衡 常见的服务端负载均衡有基于nginx实现的,Nginx收到请求后,通过轮询,IP哈希等算法来决定转发该请求到 阅读全文
posted @ 2019-03-11 23:49 风一样的码农 阅读 (591) 评论 (0) 编辑
摘要:背景 关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能;但对其内部实现机制,涉及的软件设计模式,编程思想往往没有深入的理解。 本篇案例将帮助读者对Mybatis 阅读全文
posted @ 2019-03-09 00:02 风一样的码农 阅读 (1334) 评论 (0) 编辑
摘要:1、尽量使用数字型字段 引擎在处理查询会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了; 2、尽量避免使用!=或<>、IS NULL或IS NOT NULL、IN ,NOT IN等这样的操作符. 因为这会使系统无法使用索引,而只能直接搜索表中的数据; 3、不要习惯性的使用 ‘%L% 阅读全文
posted @ 2019-03-08 23:38 风一样的码农 阅读 (106) 评论 (0) 编辑
摘要:1、A -> B //不满足happens- before,不会改变程序执行结果 2、B -> C //happens- before, 会改变程序执行结果 3、A -> C //happens- before, 会改变程序执行结果 JMM会对1进行重排序,2、3不会; 在一个线程内, 按照代码顺序 阅读全文
posted @ 2019-03-08 23:37 风一样的码农 阅读 (215) 评论 (0) 编辑
摘要:什么是JDBC 一种访问数据库的规范、标准;一组用JAVA语言编写的API; 例子 阅读全文
posted @ 2019-03-08 23:36 风一样的码农 阅读 (71) 评论 (0) 编辑
摘要:看了下J.U.C并发包下的ReentrantLock源码,费了不少劲,做个小总结吧,尽量用通俗易懂的语言描述,配上一些图说明。 ReentrantLock介绍 ReentrantLock是基于AbstractQueuedSynchronizer(AQS框架)设计的,类里面有一个私有sync成员属性, 阅读全文
posted @ 2019-03-08 23:34 风一样的码农 阅读 (180) 评论 (0) 编辑
摘要:这样的话,数据库本身是单点,不可拆库,因为id会重复。并发环境,数据库分布式情况 解决办法: UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名 阅读全文
posted @ 2019-03-08 23:33 风一样的码农 阅读 (314) 评论 (0) 编辑
摘要:冒泡排序: 快速排序: 选择排序:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。 插入排序:已排序+未排序两部分,从已排序后面找一个值,插入到已排序,依次下去。。。 希尔排序: 归并排序:归并( 阅读全文
posted @ 2019-03-08 23:33 风一样的码农 阅读 (47) 评论 (0) 编辑
摘要:数据库 1、按月份等字段分表; 2、排序本来是按时间降序的,改为按id降序; 3、减少表关联查询,在内存中进行逻辑处理, 》场景 4、查询本来是模糊查询,改为下拉框,因为设备名称数量是有限的; 》设备名 设备,逻辑区域,物理区域,场景等表数据的维护前后端代码冗余 增加每个表的配置信息,从contro 阅读全文
posted @ 2019-03-08 23:31 风一样的码农 阅读 (44) 评论 (0) 编辑
摘要:测试代码 pom 涉及的相关类源码 org.springframework.util.StringUtils工具类的collectionToDelimitedString方法 该方法代码很简单,不需要多说明,就是简单的字符串拼接,依次遍历入参coll集合,并取出元素进行前缀、后缀、分隔符拼接。 入参 阅读全文
posted @ 2019-03-08 23:29 风一样的码农 阅读 (712) 评论 (0) 编辑