8 一汪清水

尚未进行身份认证

七年java服务端开发经验,三年架构师经验,致力于通用后台的研究,擅长架构\netty

等级
TA的排名 1w+

高效实现Map的原子更新操作(Hystrix的InternMap<K, V>源码解析)

最近学习Hystrix的InternMap<K,V>源码,有段不错的代码,一起学习下高效实现Map的原子更新。通过ConcurrentHashMap提供的线程安全的putIfAbsent方法,保证了storage存入时的线程安全,同时通过对变量值判断进行返回,保证了整个方法操作的原子性。这种实现线程安全的方式,没有用同步代码块等比较低效的同步方式,确实是一种高效实现Map的原子更新方式

2016-09-30 16:39:37

那些糟糕的开发框架

本文将与大家一起来吐槽下公司的开发框架,站在开发者的角度详述糟糕设计下导致的各种问题和使用痛点,并给出改进意见。Java目前流行的开发框架,不外乎SSH、SSM,或者两者的混搭。集成这些框架技术本身并不难,难点在于怎么让框架简单易用,更好的服务于开发者,让开发者专注于业务而不是一些无用的设计上。下面就从Dao,Service,Controller及基础功能四个方面一一痛斥那些糟糕的设计

2016-09-13 18:24:52

Idea快捷键(光标定位/切换/查找相关)

本文将告诉你IDEA与定位/切换/查找相关快捷键,学会使用这些快捷键,可以将手指尽量多的留在键盘上,避免手指在鼠标和键盘间来回切换,以提高开发效率。

2016-08-27 10:44:28

pom中引入新依赖项后项目启动报错问题研究

最近在联调百度云音视频直播LSS时,在pom中加入bce-java-sdk依赖后,原来的项目启动就出现了问题,挺奇怪的,现记录问题及解决方法如下:问题一、项目启动控制台打印的日志格式和级别完全变了详细描述:项目中采用的是log4j日志框架,在log4j.properties中配置的日志打印级别为INFO,但是控制台却打出了很多DEBUG类型日志,并且日志打印格式也不是配置文件中指定的格式

2016-08-10 13:20:28

SpringMVC @ResponseBody在IE8变下载

在使用IE8请求用@ResponseBody注解返回json格式数据的action时自动变下载页面,火狐和chorme正常。其原因就是响应Content-Type的值为application/json;charset=UTF-8时,IE下会自动变成下载。

2016-06-25 11:20:01

java fastjson如何自定义转换含枚举类型对象(编程技巧)

使用fastjson序列化时,如果含有枚举类型,默认会根据枚举变量的ordinal值进行反序列且序列化时显示枚举字面代表的字符串。经常这种行为不是我们想要的,那么如何进行定制化枚举类型的序列化和反序列?通过@JSONField注解,可变通实现

2016-06-17 17:41:42

informix数据库调优

调优思路整理如下一、PDQ即利用infomix提供的PDQ(并行数据库查询)功能,并结合Power8处理器的SMT特性来提高SQL查询效率PDQ允许数据库服务器将查询一个方面的某个工作分发给几个处理器。例如:如果查询要求聚集,则数据库服务器可以将聚集工作分发给几个处理器。而这次比赛的第二个题目,刚好用到了时间序列的AggregateRange聚集函数,特别适用PDQ查询的场景。SMT命令Linu

2016-05-30 11:32:13

eclipse中如何通过maven插件执行mvn命令

在eclipse中安装maven插件后,可能需要向本地仓库中添加构件,操作方式如下:项目上右键->RunAs->Mavenbuild…,弹出窗口修改如下在Goals行输入命令install:install-file-Dfile=E:\org.restlet-2.1.4.jar-DgroupId=org.restlet.jee-DartifactId=org.restlet-Dver

2016-02-04 18:13:01

struts1.* 核心配置文件struts-config.xml详解

转自http://blog.chinaunix.net/uid-26863299-id-4754236.html首先struts-config.xml是struts框架的核心配置文件,其中内嵌如下标签:1、  这是一个主标签,struts配置文件内的所有标签都必须包含在此标签下,且仅能允许有一对该标签;2、该标签就是给当前配置文件进行命名3、 可以认为是一种注释4、

2016-01-22 09:34:06

java编程之美(一)

实践编程已经有足足6年多时间,也算是有一定经验,经常在工作中遇到各种让人不爽的代码编写方式,今天忍不住要来唠叨下。为什么叫编程之美?在我看来,代码有丑陋难看和赏心悦目两类,当然还有介于两者之间的。优秀开源框架的源码,让人看了就觉得舒服;而有些新手写的代码,让人看了别扭、添堵。本人也是从新手一步步过来的,想想自己早年写得代码,也是很丑的。当年丑不要紧,一直丑就要命了。废话不多说,上

2015-11-01 18:28:40

java实现各种排序算法及比较

常见排序算法包括以下七种:选择排序、冒泡排序、插入排序、快速排序、希尔排序、堆排序、归并排序。在学习具体算法实现并进行比较前,先来学习算法比较的几个维度。一是稳定性所谓稳定性,是指值相等的两个元素在排序前后是否会发生位置的交换。如果不会发生交换,则认为是稳定的算法;反之,则认为是不稳定的排序算法。二是时间复杂度,指执行算法所需的时间长短。简单说就是算法执行的快慢程序。三是空间复杂

2015-06-08 11:01:45

mysql常用命令

cmd下连接mysqlmysql-uroot-proot-u后面跟用户名,-p后面跟密码,注意-p后没有空格如果提示mysql命令找不到,在环境变量Path下增加mysql安装目录的bin路径(C:\ProgramFiles(x86)\MySQL\MySQLServer5.1\bin)source命令mysql>usexmanager;mysql>setnamesutf8;

2015-06-04 11:18:50

Druid数据源配置入门(超详细)

Druid是阿里开发的数据库连接池,据说比c3p0性能更好,支持下国产。下面就来学习下超简单的连接池配置:<!--阿里druid数据库连接池--><beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="clos

2015-06-03 10:49:49

hadoop中map和reduce的数量设置问题

转载http://my.oschina.net/Chanthon/blog/150500map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务的分布式并行计算,从这个观点来看,如果将map和reduce的数量设置为1,那么用户的任务就没有并行执行,但是map和reduce的数量也不能过多,数量过多虽然可以提高任务并行度,但是太多的map和red

2015-05-21 09:08:40

ant之build.xml详解

最近项目中用到了ant构建项目,由于之前一直用的maven,没接触过ant,就抽空补了下ant相关知识。下面分三部分介绍ant:ant安装ant命令build.xml配置详解ant安装直接上官网下载ant包ant官网,最新包是apache-ant-1.9.4-bin.zip。将其解压到某个目录,我的放置在E:\develop目录下然后配置环境变量,增加系统变量ANT_HOME,值为ant的解

2015-05-15 13:51:08

mvn+eclipse构建hadoop项目并运行(超简单hadoop开发入门指南)

本文详述如何在windows开发环境下通过mvn+eclipse构建hadoop项目并运行必备环境windows7操作系统eclipse-4.4.2mvn-3.0.3及用mvn生成项目架构(参阅mvn入门指南)hadoop-2.5.2(直接上hadoop官网下载hadoop-2.5.2.tar.gz并解压到某个目录)windows7下环境配置1、本地hadoop环境配置添加环境变量H

2015-05-15 10:07:03

mvn构建JAX-WS项目含服务端和客户端代码实现

JDK中自带JAX-WS框架。相比而言,JWS是轻量级的,使用非常简便,可与Spring集成使用。下面就详述如何通过mvn构建WebService服务端及客户端。大概过程,引入依赖包->写服务端->服务发布->写客户端

2015-05-06 16:07:10

windows下创建.gitignore文件(git提交时忽略某些文件)

相信大家在使用eclipse的git插件提交文件时,都会遇到这样一个问题:就是有可能不小心把不必要的文件也被提交了(如.project,.classpath文件或者.settings文件夹及其下面的文件等),那有没有办法把这些文件忽略掉呢?方法很简单,就是在项目目录下新建.gitignore文件,然后在里面声明要忽略的文件夹或者文件就可以了。麻烦的地方来了,因为该文件是点开头,没有文件名,没办法

2015-04-28 16:52:25

CronExpression表达式语法总结

一个cron表达式由6或7个时间元素组成。它们之间用空格分隔,依次为:[秒][分][小时][日][月][星期][年]序号说明是否必填允许填写的值允许的符号1秒是0-59,-*/2分是0-59,-*/3小时是0-23,-*/4日是1

2015-04-28 10:17:21

Linux下查看文件和文件夹大小(df&du)

df用法:df[选项]…[文件]…显示每个文件所在的文件系统的信息,默认显示全部的文件系统常用选项-h,–human-readable大小显示为人类易读形式(e.g.,1K234M2G)例子[root@www~]#df-h文件系统容量已用可用已用%挂载点/dev/sda194G21G68

2015-04-08 15:58:52

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!