自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

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

2020-01-06 10:05:35 27 0

原创 TCP/IP 入门

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

2017-03-19 10:01:22 471 0

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

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

2016-12-15 18:22:09 2841 0

原创 Lock中Condition的实现

Condition 多个线程之间通信,JDK1.5以前使用wait和notify,到了JDK1.5我们有了更加高效的Condition。 通过源码分析Condition的实现ReentrantLock的Condition基本使用假如要做一个生产者消费者,当队列中没有元素时,生产者要生产,此时消...

2016-12-15 18:20:54 716 0

原创 共享式AQS

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

2016-12-15 18:18:30 668 0

原创 排它式AQS(EXCLUSIVE模式)

排它式AQS(EXCLUSIVE模式) CLHLock是自旋锁,不支持阻塞,AQS支持。 和CLHLock一样,AQS有一个头节点引用和一个尾节点引用,每当一个线程过来请求锁,就会创建一个节点,节点和线程绑定,然后插入到尾节点。 通过源码分析阻塞式AQS 通过ReentrantLoc...

2016-12-15 17:58:59 2023 2

原创 多线程-锁

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

2016-12-15 17:54:08 595 0

转载 缓存之EHCache(一)

一、简介 非常简单,而且易用。     ehcache 是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,而且是hibernate 默认的缓存provider。ehcache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CachePro...

2016-04-05 14:34:48 307 0

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

common-logging common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,com...

2016-03-09 23:17:42 477 0

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

ActiveMQ 特性 - 消费者(同步和异步调度) 读完该片文章,你将会了解: 1. 代理(broker)是否需要开启异步发送消息到消费者。 2. 如何开启异步发送消息。 3. 如何关闭异步发送消息。 消费者异步调度概述在AMQ4时,代理(broker)同步或异步调度...

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

原创 2 activeMQ的安装和启动

ActiveMQ的安装和启动 如何安装ActiveMQ ActiveMQ的启动 ActiveMQ的关闭 ActiveMQ 在linux下的安装 安装JAVA配置JAVA环境 下载ActiveMQ 解压压缩包 tar zxvf activemq-x.x.x-bin...

2015-12-09 22:26:11 930 0

原创 1 ActiveMQ 开篇:ActiveMQ 和 JMS

ActiveMQ 开篇:ActiveMQ 和 JMS 读完本片文章,将会了解 什么是ActiveMQ ActiveMQ和JMS的关系 JMS的相关特性 ActiveMQ和JMS的关系在了解activeMQ之前,非常有必要了解下JMS。因为activeMQ是JMS的...

2015-12-06 22:29:34 703 0

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

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

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

原创 spring Could not resolve placeholder

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

2015-06-30 16:34:29 756 0

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

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

2015-06-25 10:43:07 1618 0

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

刚从Eclipse转Intellij,记录一下Intellij14 和 JRebel安装、破解 过程。 须知 JRebel的破解参考自 sensisoft 的CSDN博客,此文只是Mac版的实现,如果大家使用的是Windows或者有什么其他疑问也可以直接查看原始博客。教程中的Intel...

2015-06-25 10:06:41 2013 0

转载 mysql递归查询树形表

DROP TABLE IF EXISTS `t_areainfo`; CREATE TABLE `t_areainfo` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `level` int(11) DEFAULT 0,  `name` ...

2015-06-12 10:46:26 7406 0

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

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

2015-06-11 17:15:13 2926 0

原创 我对团队精神的看法

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

2015-05-20 16:00:05 3118 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 down...

2015-04-24 16:32:18 713 0

转载 脏读 幻读 不可重复读

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

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

转载 UML的9种图例解析

[原]UML的9种图例解析 2014-7-23阅读307 评论0 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系...

2015-04-09 22:35:45 193021 9

转载 浅谈CSRF攻击方式

一.CSRF是什么?   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 二.CSRF可以做什么?   你这可以这么理解CSRF攻击:攻击者盗用了...

2014-10-24 15:49:22 450 0

原创 java 总结

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

2014-10-10 17:48:41 475 0

转载 idea 远程调试

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

2014-08-15 16:54:25 936 0

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

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

2014-05-29 10:48:46 12119 0

转载 CREATE PROCEDURE and CREATE FUNCTION Syntax

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

2014-01-08 13:35:59 1174 0

转载 CREATE EVENT Syntax

CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERV...

2014-01-08 13:33:47 834 0

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

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

2013-12-10 12:36:31 599 0

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

作者:fbysss msn:jameslastchina@hotmail.com  blog:blog.csdn.net/fbysss 声明:本文由fbysss原创,转载请注明出处 关键字:Java 传值 传引用 这是个老生常谈的问题了,引起过无数争论,但可以说一直没有一个令人满意的回...

2013-12-02 23:02:29 837 0

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

Hibernate映射类型 java类型 标准SQL类型 integer java.lang.Integer integer long java.lang.Long bigint short java.lang.Short smallint ...

2013-11-26 09:44:54 1905 0

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

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

2013-09-26 00:23:40 936 0

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

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

2013-09-26 00:23:00 54 0

原创 svn 1.6到1.7的问题

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

2013-09-22 17:09:54 2803 0

svn 1.6到1.7的问题

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

2013-09-22 17:09:00 96 0

转载 redis 安装 配置解析

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

2013-07-17 22:57:54 669 0

redis 安装 配置解析

[size=large][size=medium]一、 下载安装 Wget http://redis.googlecode.com/files/redis-2.2.7.tar.gz二、.安装部署 Redis代码 tarzxvf redis-2.2.7.tar.gz cdredi...

2013-07-17 22:57:00 42 0

转载 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...

2013-06-28 16:51:18 6694 0

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...

2013-06-28 16:51:00 67 0

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

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

2013-06-27 15:03:44 2752 0

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