自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曾先森的专栏

一双破球靴,一台旧电脑,一双敲烂键盘的纤纤细手

  • 博客(58)
  • 资源 (1)
  • 收藏
  • 关注

原创 线程之间的通信方式

前言说到线程之间通信方式:依据我的理解 主要是有两种吧 1.是通过共享变量,线程之间通过该变量进行协作通信; 2.通过队列(本质上也是线程间共享同一块内存)来实现消费者和生产者的模式来进行通信;

2016-04-29 13:11:47 30418

转载 并发容器之CopyOnWriteArrayList

前言Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet

2016-04-26 15:00:56 561

转载 nginx+memcahed+tomcat实现session的资源共享

一、前提 参考的博客:http://blog.csdn.net; 相关包下载,含lib所需的jar包:http://pan.baidu.com/; 环境:centOS 6.5(64位) 、jdk8_8u5 、tomcat7.054、nginx1.47、libevent-2.0 、memcached-1.4.20 –两台虚拟机 10.1.1.127 // tomcat,nginx,memca

2016-04-25 17:24:50 895

转载 Redis、mongo、memcahe的对比和区别

从以下几个维度,对redis、memcache、mongoDB 做了对比,欢迎拍砖1.性能都比较高,性能对我们来说应该都不是瓶颈总体来讲,TPS()方面redis和memcache差不多,要大于mongodb2.操作的便利性memcache数据结构单一redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数mongodb支持丰富的数据表达,索引,最类似关系型数据库,支持的

2016-04-22 15:02:43 1575

原创 使用lua调用mongoDB 实例

引言 公司需要做一个类似站长统计的项目,给了很多种方案;其中有个方案就是利用ngx_lua(openResty) 调用mongodb 来做日志的存储;在项目之前启动之前,自己研究了这个方案的可行性,编写写了一个demo。1.准备 (1)看过openresty的都应该知道,openresty只提供redis 的module模块,没有提供mongoDB的驱动模块(不懂openrest

2016-04-13 17:36:26 7494 6

转载 网站统计中的数据收集原理及实现(openResty篇)

引言: 网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系

2016-03-31 16:34:32 4031 1

转载 java 动态代理机制的理解和分析

引言Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制和特

2016-03-28 10:22:26 5370

转载 Java仿实现微信红包分配算法

春节刚刚过去,但是红包的余温却未散去;现在过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。算法介绍一、红包金额限制      对于微信红包,我们知道没人随机的最小红包是1分,最大金额是200元,这里我们同样来设置红包的范围,下面代码我们统一金钱的单位为分。/** *

2016-02-22 13:34:39 12451 3

转载 Java对象循环引用,Java gc 如何回收

在C++中使用过智能指针的同学们应该都清楚智能指针对C++中内存管理带来的极大便利,但是也会引入一些头疼的问题,比如智能指针带来的循环引用的问题,这个问题在之前的项目中一直没有很好的解决。        最近参与到android的项目开发,对java的内存的管理有了一个初步的了解,很容易想到了循环引用的问题。比如下面这个例子:        public void buidDog() 

2015-12-09 20:37:52 16304

转载 java 的 gc 垃圾回收机制

一、GC概要 JVM堆相关知识    为什么先说JVM堆?    JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在运行着的应用程序用到的所有对象。这些对象的建立方式就是那些new一类的操作,当对象无用后,是GC来负责这个无用的对象(地球人都知道)。JVM堆    (1) 新域:存储所有新成生的对象    (2) 旧域:新域中的对象,经过了一

2015-12-09 20:28:54 501

转载 ActiveMQ的消息重发与死信管理(DLQ)

DLQ-死信队列(Dead Letter Queue)用来保存处理失败或者过期的消息。出现以下情况时,消息会被redeliveredA transacted session is used and rollback() is called.A transacted session is closed before commit is called.A session is usin

2015-10-30 16:47:08 3549

转载 ActiveMQ:设置多个并行的消费者

消息队列本来就是一种经典的生产者与消费者模式。生产者向消息队列中发送消息,消费者从消息队列中获取消息来消费。消息的传送一般由一个代理来实现的,那就是Message broker(即消息代理)。Message broker有两大职责,一是消息路由,二是数据转换。这就好比A给B寄信,如果不使用邮局的话,就要自己想办法送达,费时费力,而通过邮局的话,只要B的地址在邮局中注册过,那么天涯海

2015-10-29 11:49:38 2046

转载 原子性和可见性

看到一篇把原子性和可见性 解析的很透彻的文章!就转载了过来!一、定义1.可见性在多核处理器中,如果多个线程对一个变量(假设)进行操作,但是这多个线程有可能被分配到多个处理器中运行,那么编译器会对代码进行优化,当线程要处理该变量时,多个处理器会将变量从主存复制一份分别存储在自己的片上存储器中,等到进行完操作后,再赋值回主存。(这样做的好处是提高了运行的速度

2015-10-29 11:03:18 605

原创 多个线程顺序进行和轮询进行的问题

废话不说了,晚上看到一个问题,需要ABC线程,能依次打印ABC(需要循环的)?之前看能没有看到它需要循环打出这些,只是觉得他要顺序打出,所以就用了join 这个关键字做了一个demo;package com.zeng.thread;/** * 实现三个线程ABC,按照顺序输出ABC * 方案一 * * @author leo-zeng * */public class T

2015-10-24 22:06:48 4409

原创 Synchronized 和 static synchronized 的区别

问题:static 修饰的Synchronized 方法和非 static Synchronized 方法区别? 这个问题是一个同事在一次无意间中问过我的;在解释之前,我们先来看两个demo;我觉得通过代码来讲解释最容易理解的:demo1:/** * * @author leo-zeng * */public class SynchronizedDemo { publi

2015-10-24 15:03:05 718

转载 Java并发编程:volatile关键字解析

应该是我看过一篇最全关于volatile关键字解析了,觉得很不错,就转载了!原文地址:http://www.cnblogs.com/dolphin0520/p/3920373.html        volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才

2015-09-11 09:49:00 420

转载 Java NIO 和IO 对比

本文摘取与http://ifeve.com/java-nio-vs-io/;希望看本文之前大家能对NIO和BIO 有个大概的了解。当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。(1).Java NIO和IO的主要区别下表总结

2015-08-06 17:26:01 503

转载 Java ThreadLocal的使用

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。如何创建ThreadLocal变量以下代码展示了如何创建一个ThreadLocal变量:private ThreadLocal myThreadLocal = new Th

2015-06-16 09:44:53 609

原创 thread 中join() 的用法

前段时间参加面试时,被一个面试官问到thread中join方法用法,那会自己答得有点唐突吧,面试官对我的回答好像不是很满意!最近有点小空闲,就稍微看了一些书,然后自己整理了一下线程中几个方法的用法:

2015-06-03 11:54:54 20655 10

转载 annotation 注解做springmvc 的登录权限校验案例

1.很久木有写博客了,可能最近换工作了,在适应的新的环境吧! 趁着今天晚上有时间把上次写的案例在博客上讲一下:写这个案例的原因是组长希望在目前springMvc 项目下 能用注解来管理登陆的权限!接下来来讲一下吧!

2015-05-08 15:06:55 2657

转载 数据库事物的隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现    ×: 不会出现脏读不可重复读幻读Read uncommitted√√√Re

2015-03-21 15:35:41 625

原创 使用类的反射机制来访问类的私有成员变量

首先我们来看个实例吧,一般根据Java的语法,类的私有成员变量只能被内部的方法所访问;但是通过类的反射机制,却可以访问这个类的所有变量(包括私有成员变量),我们这个实例吧。import java.lang.reflect.Field;public class PrivateTest1 { /** * @param args */ public static void

2015-03-16 16:25:38 3080 1

转载 Hibernate工作原理及为什么要用?

Hibernate工作原理及为什么要用?原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的读取并解析映射信息3.通过config.buildSessionFactory();//创建SessionFactory4.sessionFactory.openSe

2015-03-04 15:00:47 539

转载 浅谈struts2工作原理

阐述struts2的执行流程。   Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。  核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组

2015-02-04 10:39:44 554

原创 常用设计模式之工厂方法模式、抽象工厂模式

设计模式有23种之多,但是我目前常用到可能就那么几种,之前一遍文章已经对单例模式做了详细的解释了,(java中单例模式的多种实现),所以今天这篇文章主要要对设计模式中常用的创造型模式中的另外两种模式 :工厂方法模式、抽象工厂模式进行浅谈一番。1.在讲到两种模式之前,我们先来了解一下简单工厂模式(注:简单工厂不属于23中设计模式),简单工厂模式分为三种:简单普通工厂、多方法工厂、静态多方法工厂。

2015-01-30 14:23:55 492

原创 浅谈jms之(通过spring整合activeMQ实现jms)实例

上篇说到使用activemq 实现jms消息服务 的实例,但是那个是没有spring进行整合和管理的;其实spring完整提供对jms的支持,所以我们可以通过spring来管理整合activemq 实现jms消息传递服务。1.创建maven工程(我的项目都是通过maven管理的),在pom中引入我们要用的jar包,如activemq-core、spring-web、还有spring对jms支持

2015-01-26 16:51:27 2637

原创 浅谈jms之(用activemq实现jms实例)

之前在前面的文章已经有对activemq的简单介绍以及安装部署,今天打算把空闲时写的几个关于以activemq 为mom(中间件)实现jms的案例拿出来写写,今天的这个例子是不使用spring进行封装的, jms提供的api中有两种消息传递的方式,点到点(queue队列)和pub\sub订阅(topic主题)方式;在之前的文章已经仔细讲过两种方式的不同了。 首先在写demo之前,我们都需要

2015-01-26 15:24:22 1747

转载 浅谈jms之中间件(mom)activeMQ的安装和部署

ActiveMQ安装    首先去http://activemq.apache.org/download.html 下载最新版本ActiveMQ 5.10.0 Release, 解压apache-activemq-5.10.0-bin.zip(或者apache-activemq-5.10.0-bin.tar.gz)目录如下:   +bin (windows下面的bat和

2015-01-24 16:18:21 1210

原创 spring整合redis做缓存实例

由于之前写的那个是不经过spring进行整合的redis在java中使用实例,本例是经过spring进行整合的一个redis实例。可以查看spring官网;spring提供了对jedis的支持,目前已经有spring-data-redis 1.5X的jar包,当然比较稳定的是spring-data-redis  1.4.1 这个版本。本例中用的版本的是最常见的1.10版本的;由于这个demo是

2015-01-13 17:15:15 3778 3

原创 redis做缓存的简单实例

由于之前对redis有了一个系统的研究,在公司的多个项目中使用redis当做数据缓存;所以趁着这些天晚上的时间,自己写了一个demo;这里仅供自己后期学习笔记参考,若有不对的地方,请轻拍砖!redis 官网推荐给java 使用的客户端很多:Jedis、Redisson、JRedis、JDBC-Redis 等,当然首推是jedis;可以参考redis客户端官网查看。接下来来讲下我的这个dem

2015-01-09 09:10:46 58672 24

转载 Jedis 与 ShardedJedis 设计

Jedis设计Jedis作为推荐的java语言redis客户端,其抽象封装为三部分: 对象池设计:Pool,JedisPool,GenericObjectPool,BasePoolableObjectFactory,JedisFactory面向用户的redis操作封装:BinaryJedisCommands,JedisCommands,BinaryJedis,Jedis面向

2015-01-05 16:16:47 889

转载 浅谈JMS--(MQ、JMS 以及ActiveMQ关系篇)

MQ简介:MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行

2015-01-04 09:52:56 1537

原创 浅谈JMS--(JMS 的简介)

在公司快两年了,也跟着团队做了几个项目;期间写过很多个接口,有使用webServices的,也有JMS的。之前的文章说过了webService的接口,这次想简单谈谈JMS,由于本身就属于中的菜鸟,有不好的地方;请手下留情勿拍砖!1.jms的定义jms 即(java message service)java 消息服务,是一组 Java 应用程序接口,用以提供创建、发送、接收、读取消息的服务。

2014-12-30 18:26:15 1097

转载 浅谈JNDI

NDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。那么,JNDI到底起什么作用?要了解JNDI的作用,我们可以从“如果不用JNDI我们怎样做?用了JNDI后我们又将怎样做?”这个问题来探讨。没有J

2014-12-30 15:22:28 518

原创 redis 高级应用之二(Redis的持久化 和 消息的[pub/sub]发布和订阅)

(4)redis的持久化机制    redis是个支持持久化的内存数据库。也就是说redis要经常把内存中的数据保存到硬盘中来保证持久化。    redis持久化方式有两种:    ①.snapshotting(快照),也是默认方式    原理:默认redis是会以快照的形式将数据持久化到磁盘的(一个二进制文件,dump.rdb,这个文件名字可以指定),在配置文件(re

2014-12-24 20:09:23 2542

原创 redis的高级应用之一(Redis安全性\主从复制\事务处理)

redis的高级应用。    (1).redis 的安全性:设置客户端连接之后,进行任何其他指令之前都需要使用的密码。     【warn】:由于redis数据非常快,在一台非常好的服务器下,一个用户可以在1s进行150K次密码尝试;所以需要指定非常强大的密码来防止暴力破解。    设置密码: 在redis.conf文件下#requirepass foobared 下req

2014-12-23 21:01:36 733

原创 redis 基本数据类型及操作学习(二)

【list类型和操作】linsert: 在key对应特定的位置前或者后添加字符串元素;【用法】:linsert list before 元素 要插入的元素 lset : (将list 中指定下标的元素 替换掉)设置list中指定下标元素的替换值。【用法】:lset list 元素下标 要插入的新元素 demo:lrem : 从key 对应的list中删除n个相同指定

2014-12-13 16:36:19 573

原创 redis 学习笔记(一)

由于之前在空闲时间自学了redis,所以留下了些许自学的笔记;觉得有必要留在博客中以便后续使用中方便自身查阅。(一)、redis 的数据类型级操作:1.【Strings 类型和操作】String 类型:一个key对于一个value,最简单的数据类型,二进制安全的;Redis的String可以包含任何数据,可以是图片jpg或者是序列化的对象。操作:set: 设置key 对应的

2014-12-09 21:54:55 598

转载 JQuery处理json与ajax返回JSON实例

今天无意间和同事讨论一个关于json的问题,同事和一个客户直接有个接口对接的需求;双方交互消息的格式是用JSON的,但是双方今天在消息格式上面发生了分歧,对方开发坚决认为json格式应该是"key":{"key":[ ]};然后把我和我同事郁闷了。所以以前收藏过一篇关于json的文章,觉得有必要分享一下。json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax

2014-11-27 14:09:49 739

转载 redis 一些常用命令

启动 Redis 服务src/redis-server或者src/redis-server redis.confsrc/redis-server redis.conf 1>log.log 2>errlog.log1为标准输出,2为错误输出将 Redis 作为 Linux 服务随机启动vi /etc/rc.local, 加入代码:/root/insta

2014-11-26 17:20:49 538

登陆界面的html

一个完整版的登陆界面的html文档,还有源代码,css+html

2012-12-18

空空如也

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

TA关注的人

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