java
文章平均质量分 92
聞人听書
国网电商公司(国网金融科技集团)天津技术研究院研发经理
展开
-
HTTP 长连接和短连接
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。2. 如何理解HTTP协议是无状态的HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是...原创 2021-10-24 10:30:00 · 3281 阅读 · 0 评论 -
代码命名规则,提高代码可读性
不知道大家有没有这种感觉,查看一些开源项目,如Spring、Apache Common等源码是一件赏心悦目的事情?究其原因,无外两点: 代码质量非常高; 命名特别规范(这可能跟老外的英语水平有关)。 要写高质量的代码,不是一件容易的事,需要长年累月的锻炼,是一个量变到质变的过程。但要写好命名,只需要有比较好的英语语法基础和一种自我意识即可轻松达到。结合本人的开发...原创 2019-12-18 16:17:06 · 871 阅读 · 3 评论 -
redis-缓存雪崩、击穿、穿透
一、缓存雪崩目前电商首页以及热点数据都会去做缓存 ,一般缓存都是定时任务去刷新,或者是查不到之后去更新的,定时任务刷新就有一个问题。举个简单的例子:如果所有首页的Key失效时间都是12小时,中午12点刷新的,我零点有个秒杀活动大量用户涌入,假设当时每秒 6000 个请求,本来缓存在可以扛住每秒 5000 个请求,但是缓存当时所有的Key都失效了。此时 1 秒 6000 个请求全部落数据库...原创 2019-12-13 10:27:58 · 172 阅读 · 0 评论 -
java正则表达式
package com.fsti.icop.util.regexp;import java.util.regex.Matcher;import java.util.regex.Pattern;public final class RegExpValidatorUtils {/*** 验证邮箱** @param 待验证的字符串* @return 如果是符合的字符串,返回 <...原创 2018-12-12 14:05:46 · 147 阅读 · 0 评论 -
10个“牛叉”的代码注释
1、// 亲爱的维护者:// 如果你尝试了对这段程序进行‘优化’,// 并认识到这种企图是大错特错,请增加// 下面这个计数器的个数,用来对后来人进行警告:// 浪费在这里的总时间 = 39h2、/** * 致终于来到这里的勇敢的人: 你是被上帝选中的人,英勇的、不辞劳苦的、不眠不修的来修改 我们这最棘手的代码的编程骑士。你,我们的救世主,人中之龙, 我要对你...原创 2018-12-12 13:57:15 · 303 阅读 · 0 评论 -
对一致性Hash算法,Java代码实现的深入研究(转)
一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。 算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务...转载 2018-12-12 13:53:25 · 96 阅读 · 0 评论 -
JAVA RMI远程方法调用
RMI的概念 RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据。RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式...原创 2018-12-12 11:01:44 · 402 阅读 · 0 评论 -
SimpleDateFormat的线程安全问题与解决方案
1. 原因SimpleDateFormat类内部有一个Calendar对象引用,它用来储存和这个sdf相关的日期信息,例如sdf.parse(dateStr), sdf.format(date) 诸如此类的方法参数传入的日期相关String, Date等等, 都是交友Calendar引用来储存的.这样就会导致一个问题,如果你的sdf是个static的, 那么多个thread 之间就会共享这个s...原创 2018-12-12 10:55:06 · 90 阅读 · 0 评论 -
QuartZ Cron表达式
项目开发过程中经常遇到使用定时任务的地方,在这记录一下QuartZ Cron表达式,以备使用。CronTriggerCronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一...原创 2018-12-14 10:19:08 · 109 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度-总结(转)
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 ...转载 2018-12-13 09:31:57 · 266 阅读 · 0 评论 -
java日期加减
//获得某日+1年-1天的日期 String safedate = "2011-12-1"; DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { Date d = format.parse(safedate); Calendar c = Calendar.getInstance(); ...原创 2018-12-12 14:38:12 · 138 阅读 · 0 评论 -
Log4j配置
import java.net.URL; import org.apache.log4j.xml.DOMConfigurator; /** * 单实例 读取log4j配置文件,初始化log4j * */ public class Log4jXMLConfig { private static Log4jXMLConfig instance; ...原创 2018-12-12 14:22:41 · 100 阅读 · 0 评论 -
JSP经典总结图表
jsp指令表属 性 描 述 默 认 值 例 子 language 定义要使用的脚本语言,目前只能是"java" "java" language="java" import 和一般的Java import意义一样,只 能是","隔开包或者类列表 默认忽略(即不引入其 ...原创 2018-12-12 14:19:23 · 984 阅读 · 0 评论