- 博客(26)
- 资源 (4)
- 收藏
- 关注
原创 JAVA开发中的工具类——基于函数式接口的重试工具类
在实际的项目开发中,为了保证程序的健壮性,一些场景在代码执行失败的时候需要进行重试操作。该文章介绍了一个基于JAVA函数式接口实现的重试的工具类。import com.google.common.collect.Lists;import lombok.Data;import lombok.extern.slf4j.Slf4j;import java.time.LocalDateTime;import java.util.List;import java.util.concurrent.
2022-02-18 17:03:43
952
原创 Java开发中的工具类——基于JedisPool的Redis工具类
在日常的开发中,使用Redis作为缓存中间件来提高查询性能已经很常见。通常为了简化开发,提高开发效率,我们在实际开发中会封装一些工具类来满足我们的诉求。本文以Java工程为例,介绍基于JedisPool的Redis工具类的使用。一、Maven依赖<!-- jedis依赖--><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</
2022-02-14 15:38:55
2400
原创 JAVA开发中的工具类——基于HttpClinet的RestTemplate
RestTemplate是Spring提供的用于发送HTTP请求的客户端工具,RestTmplate提供了很多便捷的方法,可以大大提供开发效率。RestTemplate默认依赖JDK的Http连接工具HttpUrlConnection,你也可以替换不同的源,比如OkHttp、Apache HttpComponents 等等。本文以HttpClient为例来实现RestTemplate工具类,重点关注以下几点:1、连接池超线程数量为避免每次请求都需要创建线程,造成不必要的系统开销,在Http请求时,可
2022-02-14 14:35:48
916
原创 关于研发过程中测试工作的一些思考
一、背景&目标测试工作是保证产品研发质量非常重要的环节,研发过程中测试人员可以做很多事情,但是因为创业团队中人员的背景以及对测试工作的认知存在差异。因此为了让团队中测试人员在测试工作中有更多的共识,对测试人员在研发过程中最主要的测试活动做了一些思考和总结。通过总结,希望能够帮助团队中测试人员了解怎样才能更深入地介入产品,以做到更好的质量保障,并最终得到团队认可。当然,要更好的达成目标,还需要在工作中不断的思考总结,通过结合项目实际的时间资源、人力资源、质量要求等来实践并优化相关工作。下面会从
2022-02-11 17:40:15
2116
原创 基于SpringBoot的API网关实现
目录一、背景&目标二、基于SpringBoot的API网关架构2.1、概要架构图2.2、架构说明2.3、实现说明2.3.2 高性能2.3.3 高可用2.3.4 安全性三、总结一、背景&目标在微服务架构已经很普及的今天,API网关是整个微服务体系中是必不可少的基础服务。提到API网关大家可能会想到Zuul、Spring Cloud Gateway等开源API网关,Zuul2.x、Spring Cloud GateWay这些基于Reactor模式(
2022-02-11 17:38:26
5594
原创 SQL SERVER下非聚集索引引发的死锁问题
最近一个消息发送功能在测试的过程中遇到了因为非聚集索引引发的死锁问题,下面是小伙伴事后总结的内容,现分享出来。(因为一些内容涉及到公司信息,所以只分享了其中部分内容,但是应该不影响整体阅读)情景介绍表名是Receiver,字段有id(主键,聚集索引),msgId(非聚集索引),receiver(非聚集索引),createTime,updateTime并发执行的语句为1、insert into Rec
2017-01-06 10:29:49
3249
3
原创 一段死循环引发的Java heap space类型的OutOfMemory
一段死循环引发的Java heap space类型的OutOfMemory
2016-08-01 15:32:54
2498
转载 JAVA内存模型
Question:在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步? Answer:在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。 线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信。同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代
2016-06-07 09:37:28
547
转载 参数嗅探(Parameter Sniffing)(2/2)
在参数嗅探(Parameter Sniffing)(1/2)里,我介绍了SQL Server里参数嗅探的基本概念和背后的问题。如你所见,当缓存的计划被SQL Server盲目重用时,会带来严重的性能问题。今天我会向你展示下如何处理这个问题,即使用不同的技术克服它。索引(Index)上次我们讨论造成参数嗅探问题的根源是:在执行计划里,SQL 语句有时会产生书签查找,有时会产生表/
2016-06-02 14:24:40
1022
转载 参数嗅探(Parameter Sniffing)(1/2)
这个问题会在参数话的SQL语句(例如存储过程)与SQL Server里的计划缓存机制结合的时候会出现。这个文章分为2个部分,第1部分会介绍下参数嗅探(Parameter Sniffing)的概况,第2部分我们介绍下如何解决这个问题。什么是参数嗅探(Parameter Sniffing)在SQL Server里当你执行参数话的SQL查询时,查询优化器会基于第一个提供的参数值编译执行计
2016-06-02 14:19:48
951
原创 敏捷课程培训
上周末部门请敏捷教练草哥给我们进行了一堂理论+游戏的敏捷培训,收获颇多。分享一些现场的干货。 首先是草哥的授课的主要内容,浓缩的都是精华: 1、 2、 3、 4、 5、 6、 理论过后,是一些实践游戏: 游戏1:分两个组分别制作一个游乐场,要求游乐场至少有三个设施。 1、 2、游戏2:两个组一起协作,制作出一个有七道湾的多米诺。
2016-05-17 11:33:19
799
转载 Java中的equals和hashCode方法详解
Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法,今天就来介绍一些这两个方法的作用。equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复。这里我们首先要明白一个问题:
2016-04-29 16:58:41
591
转载 数据库水平拆分
一般人们分析问题,总是从问题现象,原因分析,解决方案这样的思路来分析思考问题,我想对这个数据库的水平拆分也按这样的思路来简单剖析一下。 先从问题现象入手,随着数据库表中数据日积月累越来越多,当表记录数达到千万甚至亿级别时,数据库表的访问效率下降明显,导致外层应用的访问效率非常差,访问时间急剧上升,用户体验下降。如果是表数据太大的原因导致访问速度变慢,一般情况下当访
2016-04-29 16:41:22
1263
原创 加班除了客观原因,还有哪些是值得我思考的?
这会儿是晚上十点半,可以坐在床上了写点儿东西,很难得。 这周工作比较忙,周三、周四连着两天工作到凌晨三点。后几天也基本上满负荷工作。 工作量大是工作紧张的一个客观原因,还有其他的一些原因——为什么我们的产品在上线后显得手忙脚乱? 因为可能涉及到商业机密,这里不便描述产品的具体功能和流程,所以这里只围绕着三个点来做一些思考: 问题1: 问题描述: 为什么有些Bug能够经过产品人员、开发人员
2016-04-19 16:06:54
817
原创 成为一名“创始人”,让阅读成为一种习惯
女儿学校的大门外用着很大的字写着“培养孩子的阅读习惯,当阅读成为一种习惯时,孩子的未来是不可估量的”。 挺受震撼的一句话。第一次看到这句话的时候,正开着车,顺嘴就跟老婆说后面要来培养女儿的阅读习惯。 但是说过之后就忘记了,并没有真正的去实施。 今天开始看《重新定义团队》这本书,第一章节“成为一名创始人”乍一看会让人联想到是老板对员工的说教———传统的企业中,大家认为老板是资本家,说这种
2016-04-19 16:01:24
628
原创 《thinking in java》之复用类、多态学习。
因为部门安排了读书学习,目前正在读的书是《thinking in java》第七章复用类、第八章多态,把自己读书中的一些体会在这边做一些简单的记录。1.域对象不存在多态,但父类的引用指向子类对象时,在内存中是分配两处不同的地址来存储父类引用和子类对象的。2..组合和继承,一般情况下使用组合。继承只有确实存在具有通用性时才需要将一部分通用的处理抽象出来形成一个基类并供其他业务类继承。3.
2015-12-25 00:45:14
701
原创 入职链家前自己给自己做的一个竞品分析
一个“码农”在要从四线城市到魔都去打拼前给自己做的竞品分析——最终选择了链家。序号房地产O2O平台/频道业务范围业务1业务2业务3业务4业务5业务6业务7业务8业务9业务10业务11业务121搜房网新房;二手房;租房;查
2015-12-16 19:11:22
4318
原创 公司产品“云筑加”性能优化记录
最近对公司产品性能进行了初步的验证并进行了一些初步优化,下面是对本次优化过程的一个记录,方便自己今后进行查阅:■测试环境:windows server 2008 8G内存JDK1.7apache2.4.x+tomcat8.0.xmysql5.6.24■测试场景:sys_info表6000条数据sys_dynamic_share表10000条数据
2015-11-11 15:40:17
584
原创 毕业这三年
<br />毕业这三年<br />2008年6月25日,在不舍、在对未来既憧憬又迷茫的状态中,我毕业了。经过几天休整,2008年7月1日我到公司报到了。我不是学计算机的,却不知为什么选择进入了一家软件公司,还是一家令我一直比较不爽的日本人开的公司,而且一待就是三年。<br /> <br />毕业第一年:学习,加班<br />因为进的是日企,进入公司后,首先要学习的就是日语,于是三个月的日语培训开始了。每周五次课,每天一默写,每周小考,每月一大考。就这样,我似乎又回到了高三的生活,甚至有时候晚上回去背单词到凌
2011-05-25 17:05:00
991
1
原创 SQL SERVER中OVER子句与聚集函数的结合使用
<br />下面是从网上看到的一个例子:<br />use tempdb <br />go <br />if (object_id ('tb' ) is not null )<br /> drop table tb <br />go <br />create table tb (name varchar (10 ), val int )<br />go <br />insert into tb <br />select 'aa' , 10 <br />union all select 'aa' , 2
2010-06-01 16:14:00
917
原创 SQL SERVER中求上月、本月和下月的第一天和最后一天
<br />1、上月的第一天<br />SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)<br /> <br />2、上月的最后一天<br />SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59'<br /> <br />3、本月的第一天<br />
2010-06-01 15:58:00
2076
原创 一个菜鸟的言论——算是给2008留个印迹
忙了近四个月的项目这周结束了,总算稍微闲下来了。因为刚刚结束的项目使用.net做的,所以最近接触的也都是.NET方面的知识,原来在学校接触的一点JAVA的知识都快忘光了,所以原本想今天有空看看JAVA中多线程的技术的。(因为在这次项目中遇到了需要用多线程来解决的问题,当然当时是用.net的技术解决的)。 在查Java的API文档时,突然想到J2SE的API文档只有20M左右,而微软的M
2008-12-31 17:29:00
650
原创 第一个月的开发心得
很久不来了,从学校出来五个月了,在公司培训了三个月,主要都是学习日语。工作了两个月,做了一个月的测试,11月份开始参加开发的工作了,现在把这一个月的开发做个小结。 虽说上了四年的大学,但在学校真的学到了很少的东西。等走上了工作岗位才知道自己的知识和能力实在是太欠缺了。在学校的时候不是不想学,而是抱着书不知道该看什么。就说在学校的时候,学VC++的时候,学到了值传递和引用,考试的时
2008-12-06 19:13:00
651
MyBatis-3-User-Guide-Simplified-Chinese
2013-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人