自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(310)
  • 问答 (1)
  • 收藏
  • 关注

原创 crontab使用

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/s...

2015-02-12 11:49:59 329

原创 SpringMVC注解说明

@controller通过@controller标注即可将class定义为一个controller类。 @RequestMapping value表示需要匹配的url的格式。method表示所需处理请求的http 协议(如get,post,put,delete等),可选值为RequestMethod这个enum的值。params格式为”para...

2014-11-04 10:23:35 183

原创 ConcurrentHashMap解读

实现原理  锁分离 (Lock Stripping) ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可...

2014-08-27 10:43:10 187

原创 Java中的ReentrantLock和synchronized两种锁定机制的对比

多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 —— synchronized 和volatile 。在简化与平台无关的并发类的开发的同时,它决没有使并发类的编写工作变得更繁琐,只是使它...

2014-08-26 14:54:21 99

原创 JUC之Atomic系列12大类实例讲解和原理分解

在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含:基本类:AtomicInteger、AtomicLong、AtomicBoolean;引用类型:AtomicReferenc...

2014-08-16 01:03:48 113

原创 PostgreSQL学习手册(常用数据类型)

一、数值类型:    下面是PostgreSQL所支持的数值类型的列表和简单说明:名字存储空间描述范围smallint2 字节小范围整数-32768 到 +32767integer4 字节常用的整数-2147483648 到 +2147483647bigint8 字节大范围的整数-922337203685477580...

2014-08-03 02:25:44 79

原创 volatile和synchronized

这个可能是最好的对比volatile和synchronized作用的文章了。volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符。所以我们使用这两种关键字来指定三种简单的存取变量的方式。         int i1;                       int geti1() {return i1;}volatile int i2;        ...

2014-07-23 23:06:22 70

原创 MyBatis返回插入的主键ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。 方法:在mapper中指定keyProperty属性,示例如下:Xml代码  <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.che...

2014-07-23 11:25:48 104

原创 jQuery中利用JSONP解决AJAX跨域问题

写在前面跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨域问题的一种比较通用的方案——JSONP。什么是跨域?简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即“同源策略”。而跨域就是通过某些手段来绕过同...

2014-06-06 14:35:37 133

原创 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例

【转】http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 前言: 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功...

2014-06-06 13:47:43 69

原创 Spring Cache抽象详解

缓存简介缓存,我的理解是:让数据更接近于使用者;工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存);缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/IO)的且对于相同的请求有相同的计算结果的数据。如CPU--L1/L2--内存--磁盘就是一个典型的例子,CPU需要数据时先从L1/L2中读取,如果没有到内存中找,如果还没有会到磁盘上找。还...

2014-05-26 12:46:38 82

原创 TCP和Http的区别

1、TCP连接  手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确...

2014-05-05 10:13:18 152

原创 使用apache ab命令进行简单压力测试

1.安装ab命令写道apt-get install apache2-utils2.ab命令参数说明.写道Usage: ab [options] [http[s]://]hostname[:port]/pathOptions are://总的请求数 -n requests Number of requests to perform宅 //一次同时并发的请求数 总的请求数(n)...

2014-05-02 18:48:27 106

原创 zsh安装配置

zsh比bash好用且强大多了!特别是他的自动补全功能还有自定义功能,还有自动纠错能力,命令颜色高亮等!理由 0:zsh 兼容 bash兼容 bash 意味着我不需要太多学习成本就可以切换过来,意味着我以前在 bash 下积累的 shell 语法、基本操作都不会荒废。在我心里 bash 还是最通用和标准的 shell 环境,因此兼容 bash 让我切换到 zsh 时没有太多后顾之忧。...

2014-04-30 23:35:40 189

原创 Spring 之AOP AspectJ切入点语法详解

三6.5  AspectJ切入点语法详解6.5.1  Spring AOP支持的AspectJ切入点指示符       切入点指示符用来指示切入点表达式目的,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下:       execution:用于匹配方法执行的连接点;         within:用于匹配指...

2014-04-30 16:15:25 90

原创 SQL重复记录查询

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1) 例二: select * from testtable ...

2014-04-13 19:26:48 76

原创 BTrace2

最近排查线上OOM的异常时用到一个强大的动态跟踪分析工具BTrace,于是花了点时间研究了下用法,这里的内容基本是对官方说明进行的翻译,顺便加了点心得.BTrace介绍BTrace是一个Java的动态跟踪工具,BTrace的工作的基本原理是把跟踪的代码动态替换到被跟踪的Java程序内,其实现机制是Sun Attach API + BTrace脚本解析引擎 + Objectweb ASM ...

2014-04-04 22:54:20 87

原创 图解Git

再次感谢原著作者和中文翻译者。此页图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。 如果你想知道这个站点怎样产生,请前往GitHub repository。正文基本用法约定命令详解DiffCommitCheckoutDetached HEAD(匿名分支提交)ResetMergeCherry PickRe...

2014-04-03 19:05:11 85

原创 Git常用操作命令

1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set-url -...

2014-04-03 15:39:08 115

原创 Linux 系统实时监控的瑞士军刀 - Glances

早些时候,我们提到过有很多可以用来监视系统性能的 Linux 系统监视工具。 但我们估计,或许更多的用户会倾向与绝大多数 Linux 发行版都带的工具 (top 命令)。top 命令是 Linux 下的一个实时任务管理器, 同时也是用于在 GNU/Linux 发行版中寻找系统性能方面的瓶颈,并帮助我们作出正确操作的常用系统监视工具。 她有着一个极为简洁的界面,并自带少量的可以帮助我们快速了...

2014-03-31 22:58:59 168

原创 Java Phaser使用

1 Overview   Java 7的并发包中推出了Phaser,其功能跟CyclicBarrier和CountDownLatch有些重叠,但是提供了更灵活的用法,例如支持动态调整注册任务的数量等。本文在Phaser自带的示例代码基础上进行一下简单的分析。 2 Glossary2.1 Registration    Phaser支持通过register()和bulkR...

2014-03-24 12:33:30 543

原创 awk使用

简介awk是一种编程语言,非常适合处理文本,使用简单,功能却很强大。awk扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行示例基本使用输出文件的第一列awk '{print $1}' access_log使用自定义的分隔符(默认是空格)awk -F ', ...

2014-03-17 16:53:42 49

原创 web日志分析软件--goaccess

 最近发现了一个web日志实时分析软件,据作者讲占用资源不多,如果结合日志合并工具,应该是个很不错的工具。官网这样介绍它可以分析的web日志格式:GoAccess allows any custom log format string。 Common Log Format (CLF) ApacheCombined Log Format (XLF/ELF) ApacheW3C f...

2014-03-16 22:58:24 137

原创 常用accesslog日志分析命令

最近网站总是被某些的Ip暴力访问,看不出来源,为了防止一直宕机,决定写一个守护脚本,屏蔽一分钟内请求网站超过600次的IP。先看一下linux服务器下分析apache日志的语句:假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http:...

2014-03-16 22:28:46 2141

原创 Accesslog分析常用命令 awk

awk 命令用途在文件中查找与模式匹配的行,然后在它们上面执行特定的操作。语法awk[ -FEre] [ -vAssignment] ... { -fProgramFile|Program'} [ [ File ... | Assignment ... ] ] ...描述awk命令利用一组用户提供的指令来将一组文件和用户提供的扩展正则表达式比较,一次一行。然后在任...

2014-03-16 22:25:05 166

原创 tomcat配置accesslog

1.配置路径      server.xml,2.配置项 选区_033.png选区_032.png 

2014-03-10 18:10:29 76

原创 通过top和jstack确定哪些线程耗尽了CPU

1. 背景有时,线上集群load会突然飙升,无法响应正常请求。那么引起load飙升的线程究竟在做什么?哪些线程霸占了CPU?可以通过top和jstack命令进行定位。 2. 定位步骤1. 使用终端1进入目标机器,执行top命令,默认是进程视图,其中PID是进程号,截图如下: 在这里,我们只能看到java进程占用CPU达到115%,那么究竟是那些线程非常耗CPU呢?...

2014-03-04 19:48:28 99

原创 Linux TOP命令详解

1、概述        Linux TOP程序提供了一个动态的、实时的视图系统,它可以显示系统的摘要信息以及由Linux内核管理的当前正在运行的进程列表。 2、工作界面        TOP的工作界面由两部分组成:1、摘要区;2、任务区,如图所示:  2.1 摘要区 11:11:05当前系统时间365 days, 1...

2014-03-04 17:35:00 287

原创 Terminator快捷键

Ctrl + Shift + 字体增大一号(实际是Ctrl +)Ctrl – 字体减小一号Ctrl 0 字体还原至上一次修改Ctrl+Shift+T 新开个tab(类似FF)Ctrl +Shift +N 或者 Ctrl +Tab 切换到下一个tabCtrl +Shift +P 或者 Ctrl +Shift+Tab 切换到前一个tabAlt+ up(上方向键) 切换到当前焦点上面的tabAlt+...

2014-03-04 12:16:02 97

原创 BTrace入门及使用实例

介绍Btrace (Byte Trace)是sun推出的一款java 动态、安全追踪(监控)工具,可以不停机的情况下监控线上情况,并且做到最少的侵入,占用最少的系统资源。 In a way, BTrace scripts are very similar to AOP's aspects, but can be attached to any existing Java code (or be...

2014-03-02 00:48:15 132

原创 linux 命令行汇总

sudo !!2009-01-26 10:26:48User: root957UpDownRun the last command as rootUseful when you forget to use sudo for a command. "!!" grabs the last run command.Comment...

2014-02-28 19:13:07 153

原创 Linux终端中使用上一命令减少键盘输入

减少键盘输入,可以大大提高程序员的工作效率,快捷键的使用就是一个很好的例子。程序员经常使用终端。那么在终端上有没有类似的“快捷键”可以提高我们的效率呢?程序员的工作往往是前后相关连的。所以,本文将演示如何使用上一条命令提高工作效率的。 1.使用上一条命令的所有参数方法:!*例子:如果我对hello.txt和bye.txt进行了编辑,然后希望使用git add添加这两个文件。就可以...

2014-02-28 17:39:51 161

原创 Quartz的cron表达式

按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数)月(0~11) 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于...

2014-02-25 15:07:13 55

原创 Git分支管理策略

如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System)。眼下最流行的"版本管理系统",非Git莫属。相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称"快照")的指针,因此非常快捷...

2014-02-25 14:47:34 50

原创 linux性能监控-iostat命令

Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sysstat软件包。可以用yum install sysstat 直接安装...

2014-02-18 19:57:45 121

原创 linux性能监控-sar

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。sar命令常用格式sar [options] [-...

2014-02-18 18:23:20 102

原创 Linux SSH远程文件/目录传输命令scp

相信各位VPSer在使用VPS时会经常在不同VPS间互相备份数据或者转移数据,大部分情况下VPS上都已经安装了Nginx或者类似的web server,直接将要传输的文件放到web server的目录,然后在目标机器上执行:wget http://www.vpser.net/testfile.zip 就行了。当VPS上没有安装web server和ftp server的时候或感觉上面的方法比较麻...

2014-02-18 17:17:10 130

原创 Linux 终端中常用的快捷键

1. 移动光标快捷键ctrl+f 向前移动一个字符ctrl+b 向后移动一个字符alt+f 向前移动一个单词alt+b 向后移动一个单词ctrl+a 移动到当前行首ctrl+e 移动到当前行尾ctrl+l 清屏,并在屏幕最上面开始一个新行 2. 编辑命令行快捷键ctrl+d 删除当前的字符ctrl+t 交换当前字符和前一个字符的位置alt+t 交...

2014-02-18 10:47:11 60

原创 利用Spring的AbstractRoutingDataSource解决多数据源的问题

 多数据源问题很常见,例如读写分离数据库配置。原来的项目出现了新需求,局方要求新增某服务器用以提供某代码,涉及到多数据源的问题。解决方法如下:1、首先配置多个datasource 1 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 2 <pr...

2014-02-14 18:18:52 58

原创 System.nanoTime

System.nanoTime只能用于计算时间差,不能用于计算时间的准确度(System.out.println(new Date(System.nanoTime()));这种是绝对错误的)。 Java代码  long java.lang.System.nanoTime()  Returns the current value of the most prec...

2014-02-10 17:28:21 94

空空如也

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

TA关注的人

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