自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(205)
  • 资源 (14)
  • 问答 (9)
  • 收藏
  • 关注

转载 项目中的if else太多了,该怎么重构?

介绍最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的if (msgType = "文本") { // dosomething} else if(msgType = "图片") { // doshomething} else if(msgType = "视频") { // doshomething} else ...

2020-01-06 10:05:35 380

原创 TCP/IP 入门

tcp/ip是一个协议簇,而不仅仅是指tcp和IP协议,这里我们主要说一下传输层中的TCP协议1:tcp、ip七层,四层模型2:为什么要设置这么多层3:网络传输中遇到的问题(TCP协议出现)3.1  TCP 三次握手和四次握手3.2 TCP交互过程3.3 TCP流控制3.4 TCP拥塞控制

2017-03-19 10:01:22 785

原创 响应中断的锁与定时锁的实现原理

响应中断的锁 在JDK5之前使用Synchronized作为获取锁的关键字,但是在获取锁的过程中无法中断,及时调用Thread.interrupt也不会中断。 为了能够使线程快速的响应中断,可以使用lock.lockInterruptibly方法。通过源码分析可中断的锁ReentrantLock的lockInterruptibly的基本使用public static void main(

2016-12-15 18:22:09 4275

原创 Lock中Condition的实现

Condition 多个线程之间通信,JDK1.5以前使用wait和notify,到了JDK1.5我们有了更加高效的Condition。通过源码分析Condition的实现ReentrantLock的Condition基本使用假如要做一个生产者消费者,当队列中没有元素时,生产者要生产,此时消费者线程不应该再去争夺CPU资源,同样如果队列已满,生产者也不该去争夺CPU资源,而是交由消费者取消费,

2016-12-15 18:20:54 921

原创 共享式AQS

共享式AQS 阻塞式锁,在同一时刻只能有一个线程在执行,当一个线程执行完成后,再去释放下一个线程,而共享式是指,锁是可以被共享的,表现形式为,在同一时刻可以有多个线程运行。通过源码分析共享式AQS的实现CountDownLatch、Semaphore都属于共享锁。基于网上有好多博客都是分析CountDownLatch,所以我在此处分析一下Semaphore。Semaphore的基本使用publ

2016-12-15 18:18:30 853

原创 排它式AQS(EXCLUSIVE模式)

排它式AQS(EXCLUSIVE模式) CLHLock是自旋锁,不支持阻塞,AQS支持。 和CLHLock一样,AQS有一个头节点引用和一个尾节点引用,每当一个线程过来请求锁,就会创建一个节点,节点和线程绑定,然后插入到尾节点。通过源码分析阻塞式AQS 通过ReentrantLock分析AQS的阻塞锁。顺便说一下ReentrantLock这个名字,从名字可以看出,这个类默认是支持重入

2016-12-15 17:58:59 4332 3

原创 多线程-锁

多线程-锁锁的种类 锁 分为两种, 1:阻塞锁 2:自旋锁 - 阻塞锁 当一个线程已经持有了锁,那么其他线程则必须等待。在持有锁的线程,释放锁之前,其他线程都要处于空闲状态。当持有锁的线程,释放锁后,其他线程才能获得锁。 - 自旋锁 当第一次看到这个名字的时候,直接被它吓到��。说白了,当一个线程已经持有了锁,那么其他线程则不断的在循环判断一个标志,该标志标识锁是否被释放。如果循环

2016-12-15 17:54:08 731

转载 缓存之EHCache(一)

一、简介非常简单,而且易用。    ehcache 是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,而且是hibernate 默认的缓存provider。ehcache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。ehcache可以直接使用。也可以和Hibernate对象/关系框架结合使用。还可

2016-04-05 14:34:48 383

转载 java日志组件介绍(common-logging,log4j,slf4j,logback )

common-loggingcommon-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用commo

2016-03-09 23:17:42 553

原创 3 ActiveMQ 特性 - 消费者(同步和异步调度)

ActiveMQ 特性 - 消费者(同步和异步调度) 读完该片文章,你将会了解: 1. 代理(broker)是否需要开启异步发送消息到消费者。 2. 如何开启异步发送消息。 3. 如何关闭异步发送消息。消费者异步调度概述在AMQ4时,代理(broker)同步或异步调度消息到消费者就是可配置的。现在我们也可以通过uri链接、connection 和 connectionF

2015-12-20 19:48:33 8003 2

原创 2 activeMQ的安装和启动

ActiveMQ的安装和启动 如何安装ActiveMQ ActiveMQ的启动 ActiveMQ的关闭 ActiveMQ 在linux下的安装安装JAVA配置JAVA环境下载ActiveMQ解压压缩包 tar zxvf activemq-x.x.x-bin.tar.gz至此,linux下ActiveMQ的安装工作就完成了。ActiveMQ在Linux下的启

2015-12-09 22:26:11 1230

原创 1 ActiveMQ 开篇:ActiveMQ 和 JMS

ActiveMQ 开篇:ActiveMQ 和 JMS 读完本片文章,将会了解 什么是ActiveMQ ActiveMQ和JMS的关系 JMS的相关特性 ActiveMQ和JMS的关系在了解activeMQ之前,非常有必要了解下JMS。因为activeMQ是JMS的一种实现,所以了解了JMS也就对activeMQ有了大概的了解。当然activeMQ在JMS规范的基础上

2015-12-06 22:29:34 864

原创 Http和Https下的cookie(cookie 无法写入浏览器)

今天遇到一个问题,浏览器无法接受服务器添加的cookie.    当我配置了HTTPS以后,发现浏览器可以接收cookie了。经过排查代码发现,服务器设置了cookie的secure为true导致,针对HTTP 和 HTTPS下的cookie,有如下特点。================================================      HTTP

2015-07-20 17:41:39 18151 1

原创 spring Could not resolve placeholder

用spring 配置加载properties文件的时候,报Could not resolve placeholder 错误。经过仔细查找,排除文件路径,文件类容错误的原因,经过查找相关资料,出现"Could not resolve placeholder"很有可能是使用了多个PropertyPlaceholderConfigurer或者多个的原因或者是多个PropertyPlace

2015-06-30 16:34:29 913

转载 将在本地创建的Git仓库push到Git@OSC

本人小白一个,最近刚接触Git,发现挺好用的,而且OSC还提供了免费的托管仓库,打算把自己电脑上的代码和在公司无聊时写的代码给同步到OSC上,结果总是出现各种失败。网上搜索的解决方案大部分是先在Git@OSC上创建项目,然后再clone到本地,而我是想把已经在本地创建好的仓库直接push到Git@OSC上。摸索半天终于解决,分享一下我的方式。        实用范围:已经在本地通过 git

2015-06-25 10:43:07 1718

转载 Mac Intellij IDEA 14 JRebel6.2.0 破解版安装

刚从Eclipse转Intellij,记录一下Intellij14 和 JRebel安装、破解 过程。须知JRebel的破解参考自 sensisoft 的CSDN博客,此文只是Mac版的实现,如果大家使用的是Windows或者有什么其他疑问也可以直接查看原始博客。教程中的Intellij的JRebel插件来自 IntelliJ官方插件下载地址。如果我的资源不是最新的,大家可从原始博

2015-06-25 10:06:41 2242

转载 mysql递归查询树形表

DROPTABLE IF EXISTS `t_areainfo`;CREATETABLE `t_areainfo` ( `id`int(11)NOTNULL AUTO_INCREMENT, `level`int(11)DEFAULT0, `name`varchar(255), `parentId

2015-06-12 10:46:26 7979

转载 [MySQL] 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)

前言:        关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。如果在执行SQL语句的时候报错,删除END后的¥符号即可1,建立测试表和数据:DROP TABLE IF EXISTS csdn.channel

2015-06-11 17:15:13 3152

原创 我对团队精神的看法

来到公司已经快三个月了,眼看着就要到了转正的时候,我想该对我最近的一段工作做一个总结。总结这个词显得很正式,还是改成感受吧。  在开始之前,我想讲一个故事,说是两个比较好的朋友,其中一个有事的时候另一个总是主动前去帮助,然而一次次的帮助,让被帮助者形成了依赖,终于有那么一次,他的朋友没有去帮助他,两个人便变得开始陌生。想必这个故事应该都有人听过,而且肯定有人对这个故事产生质疑,会说:“这两

2015-05-20 16:00:05 3891 1

转载 Load Balance Tomcat with Nginx and Store Sessions in Redis

An awkward title, but that’s exactly what we’re going to do. For some time, I was looking for a way to push code to production systems with zero downtime and zero impact to any active users. Surprisin

2015-04-24 16:32:18 806

转载 脏读 幻读 不可重复读

1, 脏读一个事务读到另一个事务,尚未提交的修改,就是脏读。这里所谓的修改,除了Update操作,不要忘了,还包括Insert和Delete操作。脏读的后果:如果后一个事务回滚,那么它所做的修改,统统都会被撤销。前一个事务读到的数据,就是垃圾数据。举个例子:预订房间。有一张Reservation表,往表中插入一条记录,来订购一个房间。 事务1:在Rese

2015-04-09 22:40:00 9737 4

转载 UML的9种图例解析

[原]UML的9种图例解析2014-7-23阅读307 评论0UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现类与类图1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个

2015-04-09 22:35:45 228950 10

转载 浅谈CSRF攻击方式

一.CSRF是什么?  CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚

2014-10-24 15:49:22 523

原创 java 总结

1、在集成和组合 的选择上的判断,如果 真的有必要向上转型

2014-10-10 17:48:41 564

转载 idea 远程调试

http://www.jroller.com/JamesGoodwill/entry/debugging_web_application_with_intellij

2014-08-15 16:54:25 1051

原创 Linux Tomcat System.out.print 中文乱码

在本地运行的时候,控制台和catalina.out中的打印信息都是正常无乱码

2014-05-29 10:48:46 12967

转载 CREATE PROCEDURE and CREATE FUNCTION Syntax

CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_bodyCREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name

2014-01-08 13:35:59 1342

转载 CREATE EVENT Syntax

CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [C

2014-01-08 13:33:47 960

转载 JavaScript可否多线程? 深入理解JavaScript定时机制

JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不少人都深有同感, 例如setTimeout( function(){ alert(’你好!’); } , 0);setInterval( callbackFunction , 100);认为setTimeout中的问候方法会立

2013-12-10 12:36:31 654

转载 几句话弄清楚Java参数传值还是传引用

作者:fbysssmsn:[email protected]  blog:blog.csdn.net/fbysss声明:本文由fbysss原创,转载请注明出处关键字:Java 传值 传引用这是个老生常谈的问题了,引起过无数争论,但可以说一直没有一个令人满意的回答。有些人非要故弄玄虚,把传引用说成是栈里面放的是引用的值,说只有传值没有传引用,那看看这句经典名

2013-12-02 23:02:29 904

转载 hibernate+java+sql 之间数据类型转换关系

Hibernate映射类型java类型标准SQL类型integerjava.lang.Integerintegerlongjava.lang.Longbigintshortjava.lang.Shortsmallintfloatjava.lang.Floatfloatdoublejava.lan

2013-11-26 09:44:54 1992

转载 Spring中使用classpath加载配置文件浅析

在应用Spring的工程中,使用class path的方式加载配置文件应该是最常用的做法,然而对大部分人来说,刚开始使用Spring时,几乎都碰到过加载配置文件失败的情况,除了配置上的错误外,很多时候是因为配置文件的路径和程序中指定的加载路径不一致,从而导致配置文件找不到,或是加载了错误地方的配置文件。本文将就Spring如何从class path中加载配置文件做一些简要的分析。 

2013-09-26 00:23:40 1021

Spring中使用classpath加载配置文件浅析

在应用Spring的工程中,使用class path的方式加载配置文件应该是最常用的做法,然而对大部分人来说,刚开始使用Spring时,几乎都碰到过加载配置文件失败的情况,除了配置上的错误外,很多时候是因为配置文件的路径和程序中指定的加载路径不一致,从而导致配置文件找不到,或是加载了错误地方的配置文件。本文将就Spring如何从class path中加载配置文件做一些简要的分析。...

2013-09-26 00:23:00 115

原创 svn 1.6到1.7的问题

因为现在项目是在开源Openmrs1.6上面做的二次开发,而当前的这个版本编译是通过Ant来实现。在Ant的编译过程中需要查找SVN文件夹中entries文件的第十一行来获取版本号,所以这个版本号就比较重要了。但是项目若是通过SVN1.7下载下来,svn1.7会自动的进行update操作,导致entries文件中的所有内容只剩下一个数字,所以Openmrs1.6通过Ant部署编译时就会报错。给予上

2013-09-22 17:09:54 3031

svn 1.6到1.7的问题

因为现在项目是在开源Openmrs1.6上面做的二次开发,而当前的这个版本编译是通过Ant来实现。在Ant的编译过程中需要查找SVN文件夹中entries文件的第十一行来获取版本号,所以这个版本号就比较重要了。但是项目若是通过SVN1.7下载下来,svn1.7会自动的进行update操作,导致entries文件中的所有内容只剩下一个数字,所以Openmrs1.6通过Ant部署编译时就会报错。给予...

2013-09-22 17:09:00 253

转载 redis 安装 配置解析

[size=large][size=medium]一、 下载安装Wget http://redis.googlecode.com/files/redis-2.2.7.tar.gz二、.安装部署Redis代码  tar zxvf   redis-2.2.7.tar.gz  cd redis-2.2.7.tar.gz  make  可以将redi

2013-07-17 22:57:54 742

redis 安装 配置解析

[size=large][size=medium]一、 下载安装Wget http://redis.googlecode.com/files/redis-2.2.7.tar.gz二、.安装部署Redis代码 tarzxvfredis-2.2.7.tar.gzcdredis-2.2.7.tar.gzmake可以将redis.conf 复制到 /etc/下...

2013-07-17 22:57:00 93

转载 Grinder 性能测试

Performance testing is important. In this blog post we will explain why, introduce you to a tool for testing performance called Grinder, and take you through five examples which will get you started u

2013-06-28 16:51:18 7291

Grinder 性能测试

Performance testing is important. In this blog post we will explain why, introduce you to a tool for testing performance called Grinder, and take you through five examples which will get you started u...

2013-06-28 16:51:00 674

转载 关于log4j多文件打印使用技巧

log4j的好处在于:1.通过修改配置文件,就可以决定log信息输出到何处(console,文件,...),是否输出。这样,在系统开发阶段可以打印详细的log信息以跟踪系统运行情况,而在系统稳定后可以关闭log输出,从而在能跟踪系统运行情况的同时,又减少了垃圾代码(System.out.println(...)等)。2.使用log4j,需要整个系统有一个统一的log机制,有利于系统的规划。

2013-06-27 15:03:44 2981

ibatis实战

此资源是ibatis实战的第二个压缩分卷,因为资源较大,所以被分成两份,在下载后请下载第一个压缩分卷,否则会出现解压错误。

2012-02-19

Spring2.5-中文参考手册.chm

Spring2.5-中文参考手册.chm

2012-02-19

Pro.Spring.2.5.pdf

Pro.Spring.2.5.pdf

2012-02-19

struts2.0中文帮助手册.chm

struts2.0中文帮助手册.chm

2012-02-19

精通struts2实用教程(免费清晰版).pdf

精通struts2 实用教程 (免费清晰版) pdf

2012-02-19

jaxen-1.1-beta-6(1).jar

jaxen-1.1-beta-6(1).jar

2011-12-13

Java_TCPIP_Socket编程.pdf

java 网络编程的相关知识,非常经典,但是不厚。

2011-11-22

microsoft sql server 2008 技术内幕 T-sql 基础

sql 2008 技术内幕 T-sql 基础

2011-09-25

Microsoft+SQL+Server+2008技术内幕:T-SQL基础

Microsoft sql server 2008 技术内幕:T_sql基础 适合初学者,应该是很好的一本书。里面大多数是关于 T_sql的实用基础。很多的实践操作。

2011-09-24

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

TA关注的人

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