![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java开发
文章平均质量分 63
matthew_zhang
这个作者很懒,什么都没留下…
展开
-
Java编程良好习惯和性能优化
设计初期要分析用什么数据结构和相关算法实现复杂运算和字符处理时候,用StringBuffer,不要用String避免在循环块里写try-catchSynchronisation处理耗资源和影响运行速度,仅在十分必要使用且需要同步的方法相对简单的情况下使用延迟初始化对象,仅在需要用到的方法时候才初始化用Arraylist和hashMap, 避免用Vector和Hashtable,因为后者是S原创 2016-03-08 01:58:59 · 430 阅读 · 0 评论 -
mysql 分组排序显示序列号 row_number()
mysql 分组排序显示序列号 mysql没有row_number()函数,如何实现分组排序显示序列号需求:要求分组统计后得出排名。如图1,根据组织分组后按绩效得分排名得图2效果。表名:pef_score(图1) 组织 供应商 绩效得分 顺德工厂 智慧家居 80 顺德工厂 启明公司 90 广州工厂 创世公司 85 广州工厂 中山公司 9原创 2016-10-26 22:40:41 · 10283 阅读 · 2 评论 -
(小工具)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 · 983 阅读 · 0 评论 -
(小工具)Java反射机制实现任意对象集合排序并且获取排列名次的通用程序实践
在应用开发的时候,我们有时候会遇到需要对一个给定集合进行排序的情况。如果该集合的数据记录是从数据库的获取,通常我们最简单的方案是直接在sql层面select后order by完成。 但是,假如某些场景下该数据不是从数据库获取呢?那就需要在应用程序层面进行排序。假设给定一个集合,{5,4,3,6}, 需要对其进行排序,使其倒序排序后结果是 {6,5,4,3}。 实现方案之一可以使用Java集合框架提原创 2017-08-03 09:49:36 · 925 阅读 · 0 评论 -
(小工具)Java分组排序通用程序实践(终结篇)
本文是前两篇文章的终结篇,由前两篇文章介绍的通用程序,可以组合出分组排序以及提供排列名次的通用程序功能。回顾: (小工具)Java反射机制实现任意对象集合排序并且获取排列名次的通用程序实践 (小工具)Java反射机制实现任意对象集合按指定任意字段进行分组通用程序实践 再回看: mysql 分组排序显示序列号 row_number() 还记得这篇介绍mysql分组排序显示序列号(排列名次)的原创 2017-08-06 12:35:25 · 1205 阅读 · 0 评论 -
dubbo源码分析-RPC远程调用模块与Remoting通讯模块协作细节
阅读需要技能:1.设计模式:理解代理模式。JDK动态代理类的使用。 2.设计模式:理解装饰模式。 3.Netty网络通讯编程,server,handler,channel 4.了解Dubbo基本原理,Dubbo模块各层分包关系 Dubbo RPC 服务端提供服务实现细节服务端提供服务过程主要分为两部分: 暴露服务Exporter(用于向注册中心注册和包装好提供服务的类) 和监听服务原创 2017-04-18 00:16:27 · 4185 阅读 · 0 评论 -
dubbo源码分析-客户端DubboInvoker调用服务端体会Netty的非阻塞IO使用
本文会介绍Dubbo客户端DubboInvoker调用服务端时候异步同步调用,借此理解Netty的阻塞非阻塞用法。原创 2017-04-29 00:54:29 · 3141 阅读 · 0 评论 -
异步和非阻塞一样吗? (内容涉及BIO,NIO,AIO,Netty)
写在开头:本文不是纯讲技术,会涉及概念理解和语义分析的要点。正如博主标题说的,高效的学习方法比拥有多少知识重要。高效的学习方法途径之一就是阅读理解,理解能力越好,掌握越快,知识体系更清晰。 如果刚入门Netty,看过Netty线程模型,又看过JDK的NIO、NIO2,是否困惑于NIO,AIO,阻塞非阻塞的理解?Netty目前4.0的版本应该是“非阻塞”的“同步IO”(按照Unix IO模型定义原创 2017-05-07 18:52:40 · 10566 阅读 · 6 评论 -
解决问题的通用思路 - 关于线上运行的程序出错
-查找原因 正向分析法:查看日志,包括正常日志和错误日志。对于日志里的异常内容,找到每个错误,如果是和自己写的程序逻辑相关,则定位到具体代码,进行相关程序代码分析。 对比分析法:对比日志 参考最近一段时间正常运行时日志输出内容,对比现在出问题的日志内容。如果之前就有相同的异常日志并且程序运行正常,则可以认为该异常不是导致新问题的原因。对比数据 如果能定位到相关数据库表,则可以对比数据原创 2017-05-25 23:55:23 · 1403 阅读 · 0 评论 -
dubbo源码分析-ExtensionLoader发现机制和Adaptive注解应用
Dubbo的灵活性体现在每个系统功能点都可以动态扩展为新的实现,而且只需要额外配置,不需要修改dubbo源码,非常符合面向对象设计的开闭原则,其实现原理利用了JDK5.0的自动发现机制,具体使用相关代码是ExtensionLoader本文目的:对Dubbo使用ExtensionLoader动态加载扩展点相关源码实现介绍面向读者:要求对dubbo的扩展点ExtensionLoader使用有基本的了解原创 2017-04-03 20:23:38 · 4196 阅读 · 0 评论 -
回文串算法Java实现
今天看到一个回文串的问题:给定一个字符串,能否通过添加一个字母将其变成“回文串”,“回文串”是指正着和反着读都一样的字符串。如: “aa”, “aba” , ”abcba“等。“abcd”, “abce”就不是。网上可能有一些数学技巧的快速解法,但是我这里想利用程序的穷举办法实现。思路: 1)先判断给定的字符串是否回文串,如果是就不需要构造 2)如果不是回文串,就尝试添加一个字符构造一个新字符串原创 2016-03-02 23:34:34 · 3127 阅读 · 0 评论 -
Spring MVC 典型分层Java代码生成工具
工具类用于生成基本的java的实体类模板,controller类模板,service类模板,mybatis xml文件。原创 2017-01-29 22:04:19 · 1878 阅读 · 0 评论 -
非线程安全类SimpleDateFormat
SimpleDateFormat是非线程安全的,写处理日期的工具类时候请注意。问题背景:项目组的同事在新项目里写了一个DateUtil专门处理日期格式化的工具。线上运行后台日志偶然发生莫名其妙的错误:java.lang.NumberFormatException: multiple points java.lang.NumberFormatException: For input string:原创 2017-03-14 23:11:37 · 929 阅读 · 0 评论 -
推荐《Clean Code》一书,让你成为优秀的程序员
曾经维护过有十多年历史的银行系统,也全新开发过多模块的企业应用系统。经历过各种各样写法的代码,有的难以维护,有的清晰明了,有的埋下深坑… 在我的团队里,我总是向新人灌输代码整洁之道的思想,我时刻告诉他们,功能完成只是最基本的要求,更重要的是你能把代码清晰明白地表达出业务逻辑,别人容易看得懂你写的代码。 对于提升代码构建水平,Clean Code - 代码整洁之道,好书值得推荐一读。clean转载 2017-03-16 23:21:10 · 1366 阅读 · 0 评论 -
布隆过滤器和Hyperloglog基数统计的介绍
本文简单介绍一下布隆过滤器和Hyperloglog基数统计的应用案例,希望能给读者带来一点思考和启发布隆过滤器介绍: 布隆过滤器可以判断一个元素是否在一个集合中。特点:该布隆过滤器中记录元素的集合占用的空间少,集合保存的不是元素本身,而是能代表这个元素的映射。当然,判断这个元素是否在集合中存在会有误判几率,但是这个误差几率可以控制在指定范围。应用案例: -防止缓存穿透 -过滤垃圾邮件 -等原创 2017-08-22 22:32:09 · 2436 阅读 · 0 评论