自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

java的平凡之路

博客的文章都是平时学习或者遇到其他人写的不错的文章分享,也是做一个记录,希望大家喜欢

  • 博客(113)
  • 资源 (3)
  • 收藏
  • 关注

转载 基于HTTP协议的轻量级开源简单队列服务:HTTPSQS

HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。  项目网址:http://code.google.com/p/httpsqs/  使用文档:http://blog.zyan.cc/httpsq

2017-05-31 17:50:35 332

转载 Java7 Fork-Join 框架:任务切分,并行处理

概要现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机、多核处理器已被广泛应用。在未来,处理器的核心数将会发展的越来越多。虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优势。为了充分利用多CPU、多核CPU的性能优势,级软基软件系统应该可以充分“挖掘”每个CPU的计算能力,决不能让某个CPU

2017-05-31 11:41:22 379

转载 Java 7 Fork/Join 框架

在 Java7引入的诸多新特性中,Fork/Join 框架无疑是重要的一项。JSR 166旨在标准化一个实质上可扩展的框架,以将并行计算的通用工具类组织成一个类似java.util中Collection一样的包。其目标是使之对开 发人员易用且易维护,同时该框架也旨在并行计算地高质量实现。目前已经有多个新的类和接口被添加到该框架中了。该新特性主要是解决Java社区中对于如synchr

2017-05-31 11:36:33 242

转载 java5、java6、java7、java8的新特性

Java5:1、泛型 Generics:        引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处。        Parameterized Type作为参数和返回值,Generic是vararg、annotation、enumeration、collection的基石。        A、类型安全   

2017-05-31 11:13:08 465

转载 Java8之方法引用

在学习lambda表达式之后,我们通常使用lambda表达式来创建匿名方法。然而,有时候我们仅仅是调用了一个已存在的方法。如下: Arrays.sort(stringsArray,(s1,s2)->s1.compareToIgnoreCase(s2));在Java8中,我们可以直接通过方法引用来简写lambda表达式中已经存在的方法。Arrays.sort(string

2017-05-31 10:14:04 224

转载 Java8之默认方法和静态接口方法

默认方法默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代码的兼容性。下面通过一个简单的例子来深入理解下默认方法:1.一天,PM说我们的产品需要获取时间和日期。于是我们就写了一个设置和获取日期时间的接口类TimeClient。public interface TimeClient { void setTime(int h

2017-05-31 10:13:32 202

转载 Java的基本功:少侠,一定要学好这些

1. Java数组与内存控制一、Java数组初始化Java数组是静态的,即当数组被初始化之后,该数组的长度是不可变的。Java数组使用之前必须先对数组对象进行初始化,所谓初始化,就是为数组的所有元素分配内存空间,并为每个数组元素指定初始值。Java基本类型数组的两种初始化方式静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。

2017-05-31 09:24:00 596

转载 大型网站技术架构

网站都是从小网站一步一步发展为大型网站的,而这之中的挑战主要来自于庞大的用户、安全环境恶劣、高并发的访问和海量的数据,任何简单的业务处理,一旦需要处理数以 P 计的数据和面对数以亿计的用户时,问题就会变的很棘手。  下面我们就来说说这个演变过程:  初始阶段  大型网站都是由小型网站演变而来的,网站架构也一样  小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,就像这样:

2017-05-31 09:23:16 327

转载 Java 8 中的 Streams API 详解

为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对

2017-05-27 17:46:04 425

转载 Java 8新特性:全新的Stream API

Java 8引入了全新的Stream API。这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同。Stream API引入的目的在于弥补Java函数式编程的缺陷。对于很多支持函数式编程的语言,map()、reduce()基本上都内置到语言的标准库中了,不过,Java 8的Stream API总体来讲仍然是非常完善和强大,足以用很少的代码完成许

2017-05-27 17:36:52 413

转载 Java8 lambda表达式10个示例

Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动。特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里。在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码。而定义行为最重要的那行代码,却混在中间不够突出。Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码。这样有时可

2017-05-27 17:20:05 452

转载 Java 8新特性:lambda表达式

Java 8新特性:lambda表达式廖雪峰 /编程 / 2014-9-21 21:36 / 阅读: 239Java 8终于引进了lambda表达式,这标志着Java往函数式编程又迈进了一小步。在Java 8以前的代码中,为了实现带一个方法的接口,往往需要定义一个匿名类并复写接口方法,代码显得很臃肿。比如常见的Comparator接口:String[

2017-05-27 10:47:07 417

转载 什么是函数式编程

门java8出来后,特意了解它的新特性lambda表达式,由此头一次听说了函数式编程这个词,听起来挺高深的样子。也曾各种搜索去了解它的来龙去脉。甚至买了一本书《函数式编程思想》,并在部门内进行了一次讨论。此时,首先需要回答的问题便是函数式编程:那是什么东西?为此,我逛过百度,各种博客,知乎,github,但没有看到一个直接的答案,大多是列举函数式编程的特性,优点,理解能力有

2017-05-27 10:02:25 443 1

转载 Linux Shell 数据重定向详解

在了解重定向之前,我们先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。linux启动后,会默认打开

2017-05-27 09:37:32 357

转载 Linux Shell 时间运算以及时间差计算方法

最近一段时间,在处理Shell 脚本时候,遇到时间的处理问题。 时间的加减,以及时间差的计算。1。 时间加减这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒。如:1990-01-01 01:01:01 加上 1小时 20分处理方法:a.将基础时间转为时间戳

2017-05-27 09:35:37 2554

转载 Java提高篇(二七)-----TreeMap

TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点:       1、红黑树的基本概念。       2、红黑树增加节点、删除节点的实现过程。       3、红黑

2017-05-26 16:41:45 269

转载 对Java Inputstream的一次采访

在学习java.io.*包的时候,InputStream那一群类很让人反感,子类繁多就不用说,使用起来非常奇怪。我们想以缓存的方式从文件中读取字节流。总要先创建一个FileInputStream,然后把它放入BufferedInputStream构造函数中去创建BufferedInputStream。完成这些工作后才能开始读取文件。为什么我们

2017-05-26 09:32:31 323

转载 Nginx反向代理,负载均衡,redis session共享,keepalived高可用

使用的资源:  nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换。  tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群。  redis服务器一台,用于session的分离共享。  nginx主服务器:192.168.50.133  nginx备服务器:192.168.50.135  tomcat项目服务器1

2017-05-26 09:29:20 1074

转载 深入分析Java方法反射的实现原理

“物有本末,事有始终。知其先后,则近道矣”前段时间看了笨神的 从一起GC血案谈到反射原理一本,就把Java方法的反射机制实现撸了一遍。方法反射实例public class ReflectCase { public static void main(String[] args) throws Exception { Proxy target = new

2017-05-25 09:13:58 423

转载 Linux Shell 数组建立及使用技巧

linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。1.数组定义[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ echo $a一对括号表示

2017-05-25 09:13:06 307

转载 8大排序算法图文讲解

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插入排序插入排序示意图插入排序是一种最简单直观的排

2017-05-24 18:21:30 287

转载 红黑二叉树详解及理论分析

什么是红-黑二叉树?  红-黑二叉树首先是一颗二叉树,它具有二叉树的所有性质,是一种平衡二叉树。普通二叉树在生成过程中,容易出现不平衡的现象,即使是使用随机算法生成二叉树,也是有一定概率生成不平衡的二叉树. 如下图所示 :                                                         为了解决二叉树的不平衡问题,“大牛”们终于研究出了

2017-05-24 18:20:35 435

转载 Linux Shell 自定义函数(定义、返回值、变量作用域)介绍

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项。一、定义shell函数(define function)语法:[ function ] funname [()]{action;[return int;]}

2017-05-24 09:08:07 383

转载 JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介

JDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类。本文将就Java Collections Framework中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。当然,要真正深入理解Java的集合实现,还是要推荐去阅读JDK的源码。Java提供的众多集合类由两大接口衍生而来:Co

2017-05-23 17:35:43 514

转载 Linux Shell 流程控制语句实例

linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。一、shell条件语句(if用法)if语句结构 [if/then/elif/else/fi]if 条件测试语句thenaction[elif

2017-05-23 17:17:57 402

转载 maven-assembly-plugin 打包可执行jar(fat jar)和配置文件与jar同时打包部署

java程序要打包可执行的jar,可以利用maven-assembly-plugin插件;1)如果是需要将程序所有依赖的jar打包到同一个jar中,可以在pom.xml添加如下依赖:[java] view plain copy      org.apache.maven.plugins      maven-assembly-plug

2017-05-23 15:39:46 2839

转载 AMQ 虚拟topic

业务场景:为了做到高可用性,topic的consumer服务通常是多台服务。如果用普通的Topic,则多个consumer的服务就会出现重复消费的情况。解决方案:AMQ引入了虚拟Topic,如果Topic的名字是以"VirtualTopic."开头,则AMQ自动将其识别为虚拟主题的Topic,如 VirtualTopic.NORMAL。      其对应的consumer则需要以

2017-05-19 10:58:44 752

转载 玩转Redis集群(下)

接上一篇《玩转Redis集群(上)》,我们来继续玩~Redis集群操作实践数据的分布性数据分布性从上面的操作,你可以看到,当存储某一个数据的时候,会分配一个slot,而这个slot从属于某一个Master,也就是说你需要明白,数据是分布的存储在Redis集群当中的。在线水平扩容Redis Cluster有一个非常重要的特点就是

2017-05-19 09:37:43 288

转载 玩转Redis集群(上)

这是redis集群介绍的上篇,主要是关于Redis集群的搭建。后续将为大家介绍Redis集群的常用命令、Java操作Redis集群、以及与Spring/Spring MVC的整合等知识。Redis集群搭建要想搭建一个最简单的Redis集群,那么至少需要6个节点:3个Master和3个Slave。为什么需要3个Master呢?如果你了解过Hadoop/Storm/Zookeepe

2017-05-19 09:37:03 406

转载 ActiveMQ从入门到精通(三)

这是ActiveMQ系列的最后一篇文章,主要是关于ActiveMQ集群,这里采用的方式是:Zookeeper+LevelDB+ActiveMQ。前面2篇博客地址如下:《ActiveMQ从入门到精通(一)》、《ActiveMQ从入门到精通(二)》。利用Zookeeper实现ActiveMQ的高可用话不多说,先来看一张ActiveMQ官方提供的架构图:Zookeeper

2017-05-19 09:36:37 2405

转载 ActiveMQ从入门到精通(二)

接上一篇《ActiveMQ从入门到精通(一)》,本篇主要讨论的话题是:消息的顺序消费、JMS Selectors、消息的同步/异步接受方式、Message、P2P/PubSub、持久化订阅、持久化消息到MySQL以及与Spring整合等知识。消息的顺序消费在上一篇文章中,我们已经明确知道了ActiveMQ并不能保证消费的顺序性,即便我们使用了消息优先级。而在实际开发中,有些场景又是

2017-05-19 09:36:11 387

转载 ActiveMQ从入门到精通(一)

这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS、ActiveMQ的初步入门及API详细使用、两种经典的消息模式(PTP and Pub/Sub)、与Spring整合、ActiveMQ集群、监控与配置优化等。话不多说,我们来一起瞧一瞧!JMS首先来说较早以前,也就是没有JMS的那个时候,很多应用系统存在一些缺陷:1.通信的同步性client端发

2017-05-19 09:35:39 486

转载 RocketMQ实战(四)

前言这将是RocketMQ实战系列的最后一篇文章,该系列的文章列表如下:《RocketMQ实战(一)》《RocketMQ实战(二)》《RocketMQ实战(三):分布式事务》RocketMQ 3.2.6的事务机制在上一篇博客中,已经知道RocketMQ 3.0.8是支持事务回查机制,但是在RocketMQ 3.2.6中取消了这

2017-05-19 09:35:03 1454

转载 RocketMQ实战(三):分布式事务

接 《RocketMQ实战(一)》,《RocketMQ实战(二)》,本篇博客主要讨论的话题是:顺序消费、RMQ在分布式事务中的应用等。关于多Master多Slave的说明由于在之前的博客中已经搭建了双Master,其实多Master多Slave大同小异,因此这里并不会一步步的演示搭建多Master多Slave,而是从思路上,分析下重点应该注意的配置项。多Mast

2017-05-19 09:34:31 553

转载 RocketMQ实战(二)

在上一篇《RocketMQ实战(一)》中已经为大家初步介绍了下RocketMQ以及搭建了双Master环境,接下来继续为大家介绍!Quick Start写一个简单的生产者、消费者,带大家快速体验RocketMQ~Maven配置:pom.xml生产者:生产者代码消费者:消费者代码无

2017-05-19 09:33:46 474

转载 RocketMQ实战(一)

阿里巴巴有2大核心的分布式技术,一个是OceanBase,另一个就是RocketMQ。在实际项目中已经领教过RocketMQ的强大,本人计划写一个RocketMQ实战系列,将涵盖RocketMQ的简介,环境搭建,初步使用、API详解、架构分析、管理员集群操作等知识。What is RocketMQ?RocketMQ作为一款分布式的消息中间件(阿里的说法是不遵循任何规范的,所以不能完

2017-05-19 09:32:55 856

转载 分布式利器Zookeeper(三)

前言《分布式利器Zookeeper(一)》《分布式利器Zookeeper(二):分布式锁》本篇博客是分布式利器Zookeeper系列的最后一篇,涉及的话题是:Zookeeper分布式锁的代码实现、zkclient的使用、Curator框架介绍等。Zookeeper分布式锁的代码实现在上一篇博客中,从思路上已经分析了Zookeeper如何帮助我们实现分布式锁,

2017-05-19 09:31:16 353

转载 分布式利器Zookeeper(二):分布式锁

在《分布式利器Zookeeper(一)》中对ZK进行了初步的介绍以及搭建ZK集群环境,本篇博客将涉及的话题是:基于原生API方式操作ZK,Watch机制,分布式锁思路探讨等。原生API操作ZK 什么叫原生API操作ZK呢?实际上,利用zookeeper.jar这样的就是基于原生的API方式操作ZK,因为这个原生API使用起来并不是让人很舒服,于是出现了zkclient这种方式,

2017-05-19 09:30:01 339

转载 分布式利器Zookeeper(一)

Zookeeper不论是在实际项目中,还是在各种分布式开源项目中都得到了广泛应用,从本篇博客开始,将为大家带来我对Zookeeper的认识。这个系列将会涵盖Zookeeper的介绍、环境搭建、配置说明、Java操作Zookeeper(原生API方式)、zkclient操作Zookeeper方式、Zookeeper的典型应用场景分析以及Curator框架等。Hello,Zookeeper

2017-05-19 09:29:31 294

转载 详解 awk 工具的使用方法

awk 是一个强大的文本分析工具。它不仅是 Linux 中,也是任何环境中现有的功能最强大的数据处理引擎之一。相对于 grep 的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。当你第一次拿起双手在电脑上使用 awk 命令处理一个或者多个文件的时候,它会依次读取文件的每一行内容, 然后对其进行处理,awk 命令默认从 stdio 标准输入获取文件内容, aw

2017-05-18 09:22:20 592

51CTO下载-社区视频监控系统VC++MFC源代码

SFDGH反复各回个话的复试地方法过后果后的发挥规范化付首付供货商

2011-03-18

院前心电图远程实时快速网络传输模式建立

fbndnfmvnbnxcvcgfdbgnbnbnxzxf

2011-03-18

51CTO下载-社区视频监控系统VC++MFC源代码

发个环境斤斤计较见见就发广告干哥哥古古怪怪古古怪怪

2011-03-18

空空如也

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

TA关注的人

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