自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一学就明的博客

掌握高效的学习方法比懂得多少知识重要,因为前者让你拥有解决任何问题的能力

  • 博客(30)
  • 收藏
  • 关注

原创 布隆过滤器和Hyperloglog基数统计的介绍

本文简单介绍一下布隆过滤器和Hyperloglog基数统计的应用案例,希望能给读者带来一点思考和启发布隆过滤器介绍: 布隆过滤器可以判断一个元素是否在一个集合中。特点:该布隆过滤器中记录元素的集合占用的空间少,集合保存的不是元素本身,而是能代表这个元素的映射。当然,判断这个元素是否在集合中存在会有误判几率,但是这个误差几率可以控制在指定范围。应用案例: -防止缓存穿透 -过滤垃圾邮件 -等

2017-08-22 22:32:09 2412

原创 (小工具)Java分组排序通用程序实践(终结篇)

本文是前两篇文章的终结篇,由前两篇文章介绍的通用程序,可以组合出分组排序以及提供排列名次的通用程序功能。回顾: (小工具)Java反射机制实现任意对象集合排序并且获取排列名次的通用程序实践 (小工具)Java反射机制实现任意对象集合按指定任意字段进行分组通用程序实践 再回看: mysql 分组排序显示序列号 row_number() 还记得这篇介绍mysql分组排序显示序列号(排列名次)的

2017-08-06 12:35:25 1186

原创 (小工具)Java反射机制实现任意对象集合按指定任意字段进行分组通用程序实践

在应用开发的时候,我们有时候会遇到需要对一个给定集合进行分组的情况。如果该集合的数据记录是从数据库的获取,通常我们最简单的方案是直接在sql层面select后group by完成。 但是,假如某些场景下该数据不是从数据库获取呢?那就需要在应用程序层面进行分组。假设给定一个集合,{A:5,A:4,A:3,B:6,B:7}, 需要对其进行分组,使其结果是 {A:[5,4,3],B:[6,7]}。 下面

2017-08-05 16:29:56 951

原创 (小工具)Java反射机制实现任意对象集合排序并且获取排列名次的通用程序实践

在应用开发的时候,我们有时候会遇到需要对一个给定集合进行排序的情况。如果该集合的数据记录是从数据库的获取,通常我们最简单的方案是直接在sql层面select后order by完成。 但是,假如某些场景下该数据不是从数据库获取呢?那就需要在应用程序层面进行排序。假设给定一个集合,{5,4,3,6}, 需要对其进行排序,使其倒序排序后结果是 {6,5,4,3}。 实现方案之一可以使用Java集合框架提

2017-08-03 09:49:36 904

原创 TCP握手协议-原理和案例(服务端大量CLOSE_WAIT,TIME_WAIT问题)参考总结

互联网公司,对网络通讯原理的掌握估计要求比较高,分分钟面试官第一个问题问你就是请描述一下TCP握手协议,为什么有3次握手和4次握手的区别。如果要深入而且全面的理解这个协议,建议浏览相关专业书籍,例如《UNIX 网络编程》。本博客定位是让有这个基础概念的小白同学加深一下理解。题外话,之所以写起这篇博客,源于周末约了一个勤奋加班的同学聚会,去了他的公司,恰好他遇到服务器上发现有大量端口处于CLOSE_

2017-07-21 23:58:47 1220

原创 解决问题的通用思路 - 关于线上运行的程序出错

-查找原因 正向分析法:查看日志,包括正常日志和错误日志。对于日志里的异常内容,找到每个错误,如果是和自己写的程序逻辑相关,则定位到具体代码,进行相关程序代码分析。 对比分析法:对比日志 参考最近一段时间正常运行时日志输出内容,对比现在出问题的日志内容。如果之前就有相同的异常日志并且程序运行正常,则可以认为该异常不是导致新问题的原因。对比数据 如果能定位到相关数据库表,则可以对比数据

2017-05-25 23:55:23 1392

原创 Gradle搭建Spring源码项目并导入Eclipse

windows用户5分钟学会从GitHub下载Spring framework源码项目并在Eclipse里搭建项目本文开发环境(供参考,其它版本未测试) - Spring源码版本:spring-framework-4.3.x - Gradle版本:gradle-2.14.1 - Eclipse版本:eclipse-mars - Java版本:jdk1.8.0_65 - Wi

2017-05-18 23:56:33 9701

原创 主数据和关系数据-业务系统建模系列

数据库建模能力在企业业务系统开发中是重要技能之一,相比互联网公司,编程技术虽然不会有太大难度,但是,业务建模过程中建立好数据关系表,代码实现中写好每一个逻辑细节,对思维能力的方面还是有一定要求的。

2017-05-11 00:57:19 4078

原创 异步和非阻塞一样吗? (内容涉及BIO,NIO,AIO,Netty)

写在开头:本文不是纯讲技术,会涉及概念理解和语义分析的要点。正如博主标题说的,高效的学习方法比拥有多少知识重要。高效的学习方法途径之一就是阅读理解,理解能力越好,掌握越快,知识体系更清晰。 如果刚入门Netty,看过Netty线程模型,又看过JDK的NIO、NIO2,是否困惑于NIO,AIO,阻塞非阻塞的理解?Netty目前4.0的版本应该是“非阻塞”的“同步IO”(按照Unix IO模型定义

2017-05-07 18:52:40 10500 5

原创 dubbo源码分析-客户端DubboInvoker调用服务端体会Netty的非阻塞IO使用

本文会介绍Dubbo客户端DubboInvoker调用服务端时候异步同步调用,借此理解Netty的阻塞非阻塞用法。

2017-04-29 00:54:29 3131

原创 dubbo源码分析-RPC远程调用模块与Remoting通讯模块协作细节

阅读需要技能:1.设计模式:理解代理模式。JDK动态代理类的使用。 2.设计模式:理解装饰模式。 3.Netty网络通讯编程,server,handler,channel 4.了解Dubbo基本原理,Dubbo模块各层分包关系 Dubbo RPC 服务端提供服务实现细节服务端提供服务过程主要分为两部分: 暴露服务Exporter(用于向注册中心注册和包装好提供服务的类) 和监听服务

2017-04-18 00:16:27 4159

原创 论敏捷开发重要性

现今企业系统的业务都复杂无比,给你无限的时间做规划设计,也无法保证软件产出完全满足客户需求。在这种各方充满着不可控因素的环境下,有什么银弹方法解决?

2017-04-09 23:09:06 3436

原创 dubbo源码分析-ExtensionLoader发现机制和Adaptive注解应用

Dubbo的灵活性体现在每个系统功能点都可以动态扩展为新的实现,而且只需要额外配置,不需要修改dubbo源码,非常符合面向对象设计的开闭原则,其实现原理利用了JDK5.0的自动发现机制,具体使用相关代码是ExtensionLoader本文目的:对Dubbo使用ExtensionLoader动态加载扩展点相关源码实现介绍面向读者:要求对dubbo的扩展点ExtensionLoader使用有基本的了解

2017-04-03 20:23:38 4186

原创 Eclipse调试进阶-结合Dubbo调试实例分析

本文你会掌握的Eclipse进阶技能:● Eclipse 调试窗口里显示多线程 ● 根据需要可以暂停某线程,然后在需要时候恢复 ● 使用Expression直观计算运行代码附件复杂的条件值 ● Step Into(F5) ● Step Over (F6) ● Step Return (F7) ● Drop to Frame ● Use Step Filt

2017-04-02 20:15:53 1870

原创 理论与实例,准确理解REST的无状态设计

如何理解REST的无状态设计? REST和RESTFUL是什么关系?区别是什么?

2017-03-19 00:46:03 7459 3

转载 推荐《Clean Code》一书,让你成为优秀的程序员

曾经维护过有十多年历史的银行系统,也全新开发过多模块的企业应用系统。经历过各种各样写法的代码,有的难以维护,有的清晰明了,有的埋下深坑… 在我的团队里,我总是向新人灌输代码整洁之道的思想,我时刻告诉他们,功能完成只是最基本的要求,更重要的是你能把代码清晰明白地表达出业务逻辑,别人容易看得懂你写的代码。 对于提升代码构建水平,Clean Code - 代码整洁之道,好书值得推荐一读。clean

2017-03-16 23:21:10 1350

原创 非线程安全类SimpleDateFormat

SimpleDateFormat是非线程安全的,写处理日期的工具类时候请注意。问题背景:项目组的同事在新项目里写了一个DateUtil专门处理日期格式化的工具。线上运行后台日志偶然发生莫名其妙的错误:java.lang.NumberFormatException: multiple points java.lang.NumberFormatException: For input string:

2017-03-14 23:11:37 921

原创 一分钟教你解密Druid配置加密后的密码

Druid是阿里巴巴开源平台上的一个数据库连接池。网上很多资料都是关于Druid数据源的配置与使用,却一直找不到一篇文章教人解密。本文教你如何解密Druid配置文件中加密后的密码。

2017-03-04 21:58:03 19989 6

原创 Spring MVC 典型分层Java代码生成工具

工具类用于生成基本的java的实体类模板,controller类模板,service类模板,mybatis xml文件。

2017-01-29 22:04:19 1870

原创 有道云笔记学习Markdown命令

有道云笔记学习Markdown命令

2017-01-27 11:51:06 1331

原创 mysql 分组排序显示序列号 row_number()

mysql 分组排序显示序列号 mysql没有row_number()函数,如何实现分组排序显示序列号需求:要求分组统计后得出排名。如图1,根据组织分组后按绩效得分排名得图2效果。表名:pef_score(图1) 组织 供应商 绩效得分 顺德工厂 智慧家居 80 顺德工厂 启明公司 90 广州工厂 创世公司 85 广州工厂 中山公司 9

2016-10-26 22:40:41 10249 2

原创 Eclipse and IDEA 快捷键对比

本文会记录常用Eclipse和IDEA的快捷键1. 如何生成方法注释/*** some comments about the method* @param userInputxxx* @return valueyyy*/在IDEA中: IDEA Creating Documentation Comments:链接Type the opening block comment /**, an

2016-04-16 18:26:53 500

原创 Java编程良好习惯和性能优化

设计初期要分析用什么数据结构和相关算法实现复杂运算和字符处理时候,用StringBuffer,不要用String避免在循环块里写try-catchSynchronisation处理耗资源和影响运行速度,仅在十分必要使用且需要同步的方法相对简单的情况下使用延迟初始化对象,仅在需要用到的方法时候才初始化用Arraylist和hashMap, 避免用Vector和Hashtable,因为后者是S

2016-03-08 01:58:59 420

原创 教大家看官方技术文档(三)- Spring,Mybatis整合

教大家看官方技术文档(二)- Spring MVC (续)续上一篇文章,继续看看如何整合Mybatis实现mysql数据库操作主要从以下方向出发: 1)Spring配置dataSource, 包括driverclassname, jdbc url等等 2)Spring配置Mybatis的SQLSessionFactory 3)Mybatis的Configuration XML和Mapper

2016-03-06 14:46:28 755

原创 回文串算法Java实现

今天看到一个回文串的问题:给定一个字符串,能否通过添加一个字母将其变成“回文串”,“回文串”是指正着和反着读都一样的字符串。如: “aa”, “aba” , ”abcba“等。“abcd”, “abce”就不是。网上可能有一些数学技巧的快速解法,但是我这里想利用程序的穷举办法实现。思路: 1)先判断给定的字符串是否回文串,如果是就不需要构造 2)如果不是回文串,就尝试添加一个字符构造一个新字符串

2016-03-02 23:34:34 3108

原创 教大家看官方技术文档(二)- Spring MVC

教大家看官方技术文档(一)- Spring MVC 文章续篇

2016-03-02 21:34:06 1498 1

原创 教大家看官方技术文档(一)- Spring MVC

每当学习一门新技术时候,大部分人直接就是百度Bing搜索,借鉴别人的博客例子等。我也是一样,但是我经常想,这些牛人的例子如何写出来的,如何深入扩展其它功能等等。所以,我会做多一步,就是挖掘官方文档。本文例子的软件环境: IntelliJ IDEA 15 CE (社区版) Maven3.0 (IDE捆绑) JDK1.8(IDE捆绑)本文目标: 本文不是解决什么高深问题,而是教大家查阅官

2016-02-28 12:54:11 11923 7

原创 IntelliJ创建基本的Maven Web project

很多时候,我们建立项目时候通常是在copy and paste网上别人的例子,很少有人会从零开始按照官网的文档一步一步搭建起项目的框架。本文从基础出发,教大家如何根据官网的文档搭建项目。

2016-02-27 23:17:22 491

原创 URI Is Not Registered

URI Is Not Registered使用IntelliJ Maven生成archetype时候,偶然会出现xml文件的头定义提示错误 URI is not registered

2016-02-27 22:05:24 40883 3

转载 mysql 更改root账户密码 - mysql-5.7.11-osx10.10

更改root账户密码http://blog.csdn.net/maijunjin/article/details/22283265cd /usr/local/mysql-5.7.11-osx10.9-x86_64/bin1)尝试以下方法修改密码,但是报错,说密码过期./mysqladmin -u root -p 'oldpass' password ‘newpa

2016-02-27 19:13:00 746

空空如也

空空如也

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

TA关注的人

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