自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 资源 (5)
  • 收藏
  • 关注

原创 java的BIO实现

BIO(同步阻塞式IO)在JDK1.4之前,用Java编写网络请求,都是建立一个ServerSocket,然后,客户端建立Socket时就会询问是否有线程可以处理,如果没有,要么等待,要么被拒绝。即:一个连接,要求Server对应一个处理线程。单线程处理package one;import java.io.IOException;import java.io.InputStream;imp...

2018-03-29 18:07:55 935

原创 java多线程(16)--线程控制之线程优先级

每个线程执行时都具有一定的优先级,优先级高的线程获得较多的执行机会,而优先级低的线程则获得较少的执行机会。每个线程默认的优先级都与创建它的父线程的优先级相同,在默认情况下,main线程具有普通优先级,由main线程创建的子线程也具有普通优先级。Thread类提供了setPriority(int newPriority)、getPriority()方法来设置和返回指定线程的优先级,其

2017-11-23 23:06:33 531

原创 史上最全的时间工具类

package cpcn.payment.feebatch.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.

2017-08-15 16:24:21 2607

原创 RabbitMQ (十) Spring集成RabbitMQ(2)

1、消息生产者 package com.lin.producer; import javax.annotation.Resource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.

2017-07-19 11:24:42 452

原创 RabbitMQ (九) Spring集成RabbitMQ(1)

前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq。   首先引入配置文件org.springframework.amqp,如下 com.rabbitmq amqp-client 3.5.1 org.springframework.amqp spring-rabbit

2017-07-18 18:13:48 545

原创 RabbitMQ (八) 远程调用(RPC)

前言:前面我们讲解的都是本地服务器,现在如果需要远程计算机上运行一个函数,等待结果。这就是一个不同的故事了,这种模式通常被称为远程过程调用或者RPC。本章教程我们使用RabbitMQ搭建一个RPC系统,一个客户端和一个可扩展的RPC服务器,现在我们开始吧。Callback queue一般做rpc在RabbitMQ是比较容易的,一个客户端发送一个请求信息和一个响应信息的服务器回复,为了得

2017-07-18 16:30:28 381

原创 RabbitMQ (七) 主题(Topic)

虽然使用direct类型改良了我们的系统,但是仍然存在一些局限性:它不能够基于多重条件进行路由选择。在我们的日志系统中,我们有可能希望不仅根据日志的级别而且想根据日志的来源进行订阅。这个概念类似unix工具:syslog,它转发日志基于严重性(info/warning/crit…)和设备(auth/cron/kern…)这样可能给我们更多的灵活性:我们可能只想订阅来自’cron’的致命错误

2017-07-18 16:26:42 288

原创 RabbitMQ (七) 主题(Topic)

虽然使用direct类型改良了我们的系统,但是仍然存在一些局限性:它不能够基于多重条件进行路由选择。在我们的日志系统中,我们有可能希望不仅根据日志的级别而且想根据日志的来源进行订阅。这个概念类似unix工具:syslog,它转发日志基于严重性(info/warning/crit…)和设备(auth/cron/kern…)这样可能给我们更多的灵活性:我们可能只想订阅来自’cron’的致命错误

2017-07-18 16:06:17 308

原创 RabbitMQ (六) 路由选择 (Routing)

本篇博客我们准备给日志系统添加新的特性,让日志接收者能够订阅部分消息。例如,我们可以仅仅将致命的错误写入日志文件,然而仍然在控制面板上打印出所有的其他类型的日志消息。1、绑定(Bindings)在上一篇博客中我们已经使用过绑定。类似下面的代码:channel.queueBind(queueName, EXCHANGE_NAME, "");绑定表示转发器与队列之间的关系。我们也可以简

2017-07-18 16:02:24 489

原创 RabbitMQ (五) 交换规则

在上一篇我们都是采用发送信息到队列然后队列把信息在发送到消费者,其实实际情况并非如此,rabbitMQ其实真正的思想是生产者不发送任何信息到队列,甚至不知道信息将发送到哪个队列。相反生产者只能发送信息到交换机,交换机接收到生产者的信息,然后按照规则把它推送到对列中,交换机是如何做处理他接收到的信息,并怎么样发送到特定的队列,那么这一篇主要是讲解交换机的规则。一:发布/订阅在上一篇说到的队列

2017-07-18 16:00:20 489

原创 RabbitMQ (四) 发布/订阅

上一篇博客中,我们实现了工作队列,并且我们的工作队列中的一个任务只会发给一个工作者,除非某个工作者未完成任务意外被杀死,会转发给另外的工作者,如果你还不了解:RabbitMQ (二)工作队列。这篇博客中,我们会做一些改变,就是把一个消息发给多个消费者,这种模式称之为发布/订阅(类似观察者模式)。         为了验证这种模式,我们准备构建一个简单的日志系统。这个系统包含两类程序,一类程

2017-07-18 15:50:01 361

原创 RabbitMQ (三)工作队列

工作队列的主要任务是:避免立刻执行资源密集型任务,然后必须等待其完成。相反地,我们进行任务调度:我们把任务封装为消息发送给队列。工作进行在后台运行并不断的从队列中取出任务然后执行。当你运行了多个工作进程时,任务队列中的任务将会被工作进程共享执行。这样的概念在web应用中极其有用,当在很短的HTTP请求间需要执行复杂的任务。1、 准备我们使用Thread.sleep来模拟耗时的任务。我们

2017-07-18 15:42:49 298

原创 RabbitMQ(二) java简单的实现RabbitMQ

前言:在这里我将用java来简单的实现rabbitMQ。下面我们带着下面问题来一步步的了解和学习rabbitMQ。1:如果消费者连接中断,这期间我们应该怎么办2:如何做到负载均衡3:如何有效的将数据发送到相关的接收者?就是怎么样过滤4:如何保证消费者收到完整正确的数据5:如何让优先级高的接收者先收到数据一:"Hello RabbitMQ"下面有一幅图,其中P表示生产者,

2017-07-18 15:38:51 596

原创 RabbitMQ(一) 入门代码 Helloworld

本系列教程主要来自于官网入门教程的翻译,然后自己进行了部分的修改与实验,内容仅供参考。“Hello world” of RabbitMQ1、Windows下RabbitMQ的安装下载Erlang,地址:http://www.erlang.org/download/otp_win32_R15B.exe ,双击安装即可(首先装)下载RabbitMQ,地址:http://www.ra

2017-07-18 14:30:39 379

原创 dubbo总结(1)——linux安装dubbo管理控制台

Dubbo管控台可以对注册到zookeeper注册中心的服务或服务消费者进行管理,但管控台是否正常对Dubbo服务没有影响,管控台也不需要高可用,因此可以单节点部署。 IP: 192.168.10.101部署容器:apache-tomcat-7.0.57端口:8080 1、 下载最新版的Tomcat7:$wget http://mirrors.hust.edu.cn/a

2017-07-13 19:11:40 899

原创 dubbo 控制台用户名密码问题

版本: 2.5.3 配置文件: dubbo.propertiesdubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.admin.root.password=admindubbo.admin.guest.password=guest这个时候,请仔细看配置文件,文件配置的意思是:用户名:root,密码:admin

2017-07-13 18:56:14 2343

原创 Linux环境下安装Zookeeper (单机模式)

准备工作在安装zookeeper之前我们需要先做两件事。第一是安装Oracle的JDK。第二是下载zookeeper的安装包安装首先我们需要在/usr/local下面创建个zookeeper文件夹,把刚才下载下来的zookeeper放到这里。用tar -zxvf来解压zookeeper的安装包。解压完成之后我们进入到刚才解压出来的文件夹下面,内容如下所示:我们进入到

2017-07-12 16:34:48 622

原创 linux下tar命令解压到指定的目录

linux下tar命令解压到指定的目录 :#tar zxvf /bbs.tar.zip -C /zzz/bbs   //把根目录下的bbs.tar.zip解压到/zzz/bbs下,前提要保证存在/zzz/bbs这个目录 这个和cp命令有点不同,cp命令如果不存在这个目录就会自动创建这个目录!附:用tar命令打包例:将当前目录下的zzz文件打包到根目录下并命名为z

2017-07-12 15:27:36 238117 3

原创 Linux环境下系统安装JDK

安装Oracle官网的JDK我们先从官网下载tar.gz的安装包。这里有一个jdk1.7的下载连接:http://pan.baidu.com/s/1nvfdGST 。安装方式也很简单,我们在/usr/local下面建个java的文件夹,我们把它放到/usr/local/java里面,下面只需要轻轻的解压一下就行了。命令如下:tar -zxvf  jdk的文件名.配置环境变量接下来我

2017-07-12 15:23:05 269

原创 jQuery函数之serializeArray()

jQuery中文文档:http://jquery.bootcss.com/serializeArray()将用作提交的表单元素的值编译成拥有name和value对象组成的数组。例如[ { name: a value: 1 }, { name: b value: 2 },...]示例代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

2017-07-12 13:57:13 303

原创 jQuery 中 jQuery(function(){})与(function(){})(jQuery) 的区别

Jquery是优秀的Javascrīpt框架。我们现在来讨论下在 Jquery 中两个页面载入后执行的函数。$(document).ready(function(){ // 在这里写你的代码...});在DOM加载完成时运行的代码可以简写成jQuery(function(){ });  (function($) {})(jQuery)什么

2017-07-12 09:53:58 412

原创 Java中堆内存和栈内存详解

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器

2017-06-21 10:00:06 276

原创 Java并发编程:Callable和Future使用

Callable与Future 两功能是Java在后续版本中为了适应多并法才加入的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其他线程执行的任务。Callable的接口定义如下;public interface Callable { V call() throws Exception; }

2017-06-21 09:58:35 458

原创 <c:choose>、<c:when>和<c:otherwise>

、和在一起连用,可以实现Java语言中的if-else语句的功能。例如以下代码根据username请求参数的值来打印不同的结果:          Nnknown user.             ${param.username} is manager.             ${param.username} is employee.

2017-05-19 10:21:24 579

原创 Spring学习心得(24)-- Spring事务管理(详解+实例)

Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行

2017-04-19 17:43:12 520

原创 java中的堆、栈和常量池

说到java中堆、栈和常量池,首先还是看看他们各自存放的数据类型吧! 堆:存放所有new出来的对象;栈:存放基本类型的变量数据和对象的应用,对象(new出来的对象)本身并不存在栈中,而是存放在堆中或者常量池中(字符串常量对象存放在常量池中);常量池:存放基本类型常量和字符串常量。对于栈和常量池中的对象可以共享,对于堆中的对象不可以共享。栈中的数据大小和生命周期是可以确定的,当没有引用指向数

2017-04-05 10:04:33 284

原创 java多线程(15)--线程池ThreadPoolExecutor使用

1. ThreadPoolExecutor的一个常用的构造方法ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, RejectedExecutionHandler handler)参数说明:

2017-03-22 23:22:31 374

原创 java多线程(14)--线程池作用及Executors方法讲解

线程池的作用:     线程池作用就是限制系统中执行线程的数量。     根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开

2017-03-22 22:48:12 372

原创 java多线程(13)--线程同步工具之CountDownLatch

有时候会有这样的需求,多个线程同时工作,然后其中几个可以随意并发执行,但有一个线程需要等其他线程工作结束后,才能开始。举个例子,开启多个线程分块下载一个大文件,每个线程只下载固定的一截,最后由另外一个线程来拼接所有的分段,那么这时候我们可以考虑使用CountDownLatch来控制并发。    CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类

2017-03-22 21:39:02 297

原创 java多线程(12)--BlockingQueue深入分析

前言:     在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列

2017-03-22 21:22:39 274

原创 java多线程(11)--ConcurrentLinkedQueue

基于链接节点的、无界的、线程安全。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。新的元素插入到队列的尾部,队列检索操作从队列头部获得元素。当许多线程共享访问一个公共 collection 时,ConcurrentLinkedQueue 是一个恰当的选择。此队列不允许 null 元素。//高性能无阻塞无界队列:Conc

2017-03-22 18:20:04 348

原创 java多线程(10)--并发类容器 CopyOnWriteArrayList 的使用

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

2017-03-22 17:34:04 316

原创 java多线程(9)--同步类容器和并发类容器

一、同步类容器同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。复合类操作如:迭代(反复访问元素,遍历完容器中的所有元素)、跳转(根据指定的顺序找到当前元素的下一个元素)、以及条件运算。这些复合操作在多线程并发的修改容器时,可能会表现出意外的行为,最经典的便是ConcurrentModificationException,原因是当容器迭代的过程中,被并发的修改了内容,这是由于

2017-03-22 16:35:29 636

原创 java多线程(8)--ConcurrentHashMap使用

一.ConcurrentHashMap的简要总结:1、public V get(Object key)不涉及到锁,也就是说获得对象时没有使用锁;2、put、remove方法要使用锁,但并不一定有锁争用,原因在于ConcurrentHashMap将缓存的变量分到多个Segment,每个Segment上有一个锁,只要多个线程访问的不是一个Segment就没有锁争用,就没有堵塞,各线程用各自的锁

2017-03-21 22:15:15 895

原创 linux命令大全(9)--tar命令详细用法

linux下使用tar命令解压语法:tar [主选项+辅选项] 文件或者目录使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。主选项:c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。x 从档案文件中释放文件。相当于拆包。t 列出档案文件的内容,查看已经备份了哪些文件。特别

2017-03-20 18:08:17 414

原创 linux命令大全(8)--chown命令详细用法

chown用法用来更改某个目录或文件的用户名和用户组的chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)例1:chown root:root /tmp/tmp1就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).例2:chown -R root:root /tmp/tmp1就是把tmp下的tmp1下的所有文件的属组都改

2017-03-20 16:33:52 1107

原创 linux命令大全(7)--chmod命令详细用法

3.移动mv a.txt /ect/改名mv b.txt a.txt移动并改名mv a.txt ../b.txt4拷贝并改名cp a.txt /etc/b.txt5.vi撤销修改ctrl + u (undo)恢复ctrl + r (redo)9创建多个文件touch a.txt b.txttouch /home/{a.txt,

2017-03-20 16:26:25 6387

原创 深入浅出JMS(七)--使用Spring JMS收发消息

1.使用maven管理依赖包dependencies> dependency> groupId>junitgroupId> artifactId>junitartifactId> version>4.12version> scope>testscope> dependency> dependency> groupId>org.apache.activemqgrou

2017-03-18 16:27:52 2552 1

原创 深入浅出JMS(六)--ActiveMQ实现消息队列发送邮件

新建yncp.mq.mailservice工程,编写以下类Mail类: package com.yncp.mq.entity; /*** * 邮件实体 * @author Administrator * */public class Mail { /** 发件人 **/ private String from; /** 收件人 **/

2017-03-18 16:10:16 5181 1

原创 深入浅出JMS(五)--ActiveMQ Topic发布订阅消息

消息发布者: package com.googlecode.garbagecan.jmsstudy.activemq.topic; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class Top

2017-03-18 15:50:38 2082

J2SE6.0 API(冷冬大雪)

J2SE6.0 API java api

2017-08-01

JMS、activemq文档

JMS、activemq文档,中英文都有

2017-03-16

数据库SQL手册

SQL,Oracle,Mysql

2016-11-30

mysql访问工具sqlyog

sqlyog10

2016-11-19

Java多线程编程核心技术.pdf

Java多线程编程核心技术

2016-11-19

空空如也

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

TA关注的人

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