自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

转载 OIO和NIO的区别

1、OIO中,每个线程只能处理一个channel(同步的,该线程和该channel绑定,)。NIO中,每个线程可以处理多个channel(异步)。那么OIO如何处理海量连接请求呢?是对每个请求封装成一个request,然后从线程池中挑一个worker线程专门为此请求服务,如果线程池中的线程用完了,就对请求进行排队。请求中如果有读写数据,是会阻塞线程的 2、NIO中c

2015-08-29 21:55:24 1144

原创 大话设计模式之--简单工厂模式

文章开始借用大话设计模式中的例子说一下面向对象的思维。      “话说三国时期,曹操令百万大军攻打东吴,曹操说了一句:“喝酒唱歌,人生真爽”,一臣子为了拍马屁命令工匠刻板印刷,以便名流青史,样张拿出来,曹操一看,不妥,当即改成对酒当歌,接着工匠连夜改版,只得全部重新改来,改完之后,曹操一看,感觉人生真爽太过直接,改为人生几何,接着工匠又要全部改之。。。。。”       问题出在

2015-08-29 12:32:34 712

原创 设计模式之接口型模式(一)----适配器模式

通过一个简单的例子说一下适配器模式,适配器模式属于接口型模式。适配器模式的意图在于,使用不同接口的类所提供的服务为客户端提供它所期望的接口!!!       举个例子,日常生活中我们都要用水,所以我们就装水管到每家每户,到每家每户的水我们怎么才能用(控制水流,使用水等),毫无疑问,当然是水龙头啊,接着在水管上装了一个水龙头,之后我们就可以舒舒服服用水洗菜,冲厕所等,突然有一天我

2015-08-22 22:15:38 3315

原创 java中接口和抽象类的区别

一个没有抽象方法的抽象类从功能上来看与接口类似但是有如下区别:一个类可以实现多个接口,但只能继承最多一个抽象类抽象类可以包含具体的方法;接口所有的方法都是抽象的(不管是否对接口声明都是抽象的)(jdk1.7以前,jdk1.8开始新增功能接口中有default 方法,有兴趣自己研究)抽象类可以声明和使用字段;接口则不能,但是可以创建静态的final常量抽象类中的方法可以是

2015-08-22 19:02:49 2675 2

原创 java8新增特性(二)----函数式接口(Functional)

上一篇博客介绍了java8新增的Lambda表达式,这一节介绍一下java8的函数式编程,两者之间有什么联系呢?请往下看~~~      Lambda表达式如何在java类型中表示的呢?     语言设计者投入了大量的精力来思考如何使现有的函数友好地支持lambda。最终采取的办法是:增加函数式接口的概念,函数式接口接口就是具有一个方法的普通接口。像这样的接口可以被隐式的转换为La

2015-08-22 15:40:55 3079

原创 java8新增特性(一)---Lambda表达式

Lambda表达式也成为闭包,是java语言层次上的改变,Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中),或者把代码看成数据,函数式程序员对这一概念非常熟悉。在JVM平台上有很多语言(groovy,scala等等)从一开始就有Lambda,但是程序员不得不使用匿名类来代替lambda。看一下jdk7之前实现字符串排序:package com.panther.dong.

2015-08-22 14:43:09 1432

原创 队列中取最大值操作问题

问题:假设有这样一个拥有3个操作的队列:1. EnQueue(v): 将v加入队列中2. DeQueue(): 使队列中的队首元素删除并返回此元素3. MaxElement: 返回队列中的最大元素设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能地低。思路:(1)用两个栈设计一个新的数据类型(数据类型定义为MyStack),其中一个栈用来存

2015-08-20 22:03:13 1715

原创 netty学习(二)--传统的bio编程

网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定ip地址和监听端口),客户端通过连接操作向服务端监听的地址发送连接请求,通过三次握手建立连接,如果连接成功,双方就可以通过socket进行通信。在基于传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口:Socket负责发起连接请求操作。操作连

2015-08-18 22:42:58 1255

原创 netty学习(一)--linux下的网络io模型简介

linux的内核将所有的外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令,返回一个file descriptor(fd,文件描述符)。而对一个socket的读写也会有相应的描述符,成为socketfd(socket描述符),描述符就是一个数字,它指向内核中的一个结构体(文件路径,数据区等一些属性)。        根据unix编程对I/O模型的分类,unix提

2015-08-18 22:09:54 1357

原创 activemq实现简单的消息传递(java 实现)

activemq实现简单的消息传递,消息传递有两种消息处理模式:点对点(PTP) 和订阅/发布(sub/pub)                                                                              PTP的目地地是QUEUE,

2015-08-18 16:14:12 3623

原创 JMS基础知识

JMS规范:jms的基本构件: 连接工厂(connectionFactory):客户用来创建连接的对象,例如:activeMQ提供的ActiveMQConnectionFactory。连接(connection):JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接会话(session):JMS Session 是生产和消费消息的一个单线程上下文。可以创建消息生

2015-08-17 21:37:53 784

原创 linux下jenkins安装

在安装jenkins之前,首先确认jdk和tomcat,maven已经配置好具体配置方法,请看的我博客;jdk:jdk的安装与配置tomcat:tomcat的安装与配置maven:maven的安装与配置开始jenkins的安装1下载jenkins:

2015-08-17 21:09:27 1363

原创 linux下的环境文件设置说明

工作环境设置文件环境设置文件有两种:系统环境设置文件 和 个人环境设置文件 1.系统中的用户工作环境设置文件:  登录环境设置文件:/etc/profile       非登录环境设置文件:/etc/bashrc 2.用户个人设置的环境设置文件:  登录环境设置文件: $HOME/.bash_profile   //这个是环境变量设置的地方  非登录环境设置文件

2015-08-17 13:01:58 654

原创 linux下maven的安装

开始安装maven之前已经安装好jdk,具体安装方法请看我的另一篇博客:linux下配置jdk1.maven下载:maven的官方地址:http://maven.apache.org/需要最新版本的自己去官方下载,这里我使用的是3.0.5maven下载地址:2maven的安装:将下载好的安装包拷贝到/home/q目录下,解压文件,得到apache-maven-3

2015-08-16 21:35:58 1692

原创 linux下tomcat的安装

1. tomcat下载:tomcat官网:http://tomcat.apache.org/tomcat8.0 linux版本下载地址:http://tomcat.apache.org/download-80.cgi选择如图所示红线标出链接压缩包:2.放到自己的安装路径,解压我将下载的压缩包放在/home/q路径下,解压所得:3.配置启动脚本的环

2015-08-16 20:18:12 928

原创 linux下配置jdk

1.jdk下载:链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载红线标出的tar.gz压缩包。将下载好的压缩包拷贝到你自己的环境变量存放路径(这个可以任意选,自己记住就行)我选择的是/home/q/路径下,其中q文件夹是我自己创建的。2解压所下载的

2015-08-16 19:13:09 972

原创 iptables linux下的防火墙

iptables:查看防火墙信息:sudo iptables -L -v设置防火墙(客户端 --> 服务器):sudo iptables -A INPUT -s 10.86.106.202 -p tcp --dport 61616 -j ACCEPT设置防火墙(服务器-->客户端)sudo iptables -A OUTPUT -d 10.86.106.202 -p t

2015-08-16 18:46:42 838

转载 OOM 之 mina java.lang.OutOfMemoryError

前段时间在测试过程中发现了mina框架的问题:当mina一次传输的文件超过一定值(如55m)或者连续传输文件的次数过于频繁,就会内存溢出:org.apache.mina.filter.codec.ProtocolEncoderException:java.lang.OutOfMemoryError: Java heap spaceatorg.apache.mina.filter.codec

2015-08-13 14:04:17 764

原创 spring aop(一)

spring面向切面的aop思想         spring的ioc容器可以帮助你管理和配置应用对象,使得代码的耦合性降低,利用spring的反向控制来链接协作类!!         但有时存在到处应用的功能,比如说日志,安全校验,事务等等。。这就不适合对象继承关系来解决。这就需要用到spring中另一个强大的功能,那就是aop(面向切面的切入点)        spring中的

2015-08-12 15:41:37 635

原创 java中的监听器(listener)

监听器在java应用中比较广泛,记得web启动的时候的监听器吗,记得spring配置中的监听器吗?,记得消息传输中的监听器吗?   没错,这就是listener的应用,无处不在,身为一个java程序员,你如果不懂的监听器的原理是不是很可悲啊,没错我感觉挺可悲的(因为我刚刚才了解到监听器的工作原理),为了纪念自己取得的一点小小的success,写篇博文记录一下自己的一些不成熟的意见和理解

2015-08-11 13:02:49 1218

转载 activemq断线重连

断线重连机制是ActiveMQ的高可用性具体体现之一。具体就是使用failover方式,使得连接断开之后,可以不断的重试连接到一个或多个brokerURL。例如:failover:(tcp://127.0.0.1:61616) ,这里可以使用多个url。默认情况下,如果client与broker直接的connection断开,则client会新起一个线程,不断的从url参数中获取一

2015-08-10 16:51:18 2389

原创 idea自动生成serialVersionUID

通过一下设置idea自动生成序列化serialVersionUIDSetting->Inspections->Serialization issues->Serializable class without ’serialVersionUID’ 选上以后,在你的class中:Alt+Enter就会提示自动创建serialVersionUID了。如图所示,勾上画红线部分即可:

2015-08-10 13:16:18 749

转载 java处理高并发高负载的网站的优化方法

一:高并发高负载类网站关注点之数据库没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。    一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作。我推荐的是M-M-

2015-08-09 22:52:02 1098

转载 jvm优化检测多线程竞争

1。启动在命令行输入jvisualvm。如果jdk安装正确的话(6.x以上版本),就会看到如下的一个窗口:看起来相当简洁,不像是很强大的样子。2。运行一个Java程序IncTestN,jvisualvm会自动找到它3.右键点击它,”打开”可以看到它有很多标签页,可以让我们监测程序的各种数据。默认没有这么多,我其实安装了一些

2015-08-09 22:46:59 711

转载 jvm优化

Java程序中,每个线程都有自己的Stack Space(堆栈)。这个Stack Space不是来自Heap的分配。所以Stack Space的大小不会受到-Xmx和-Xms的影响,这2个JVM参数仅仅是影响Heap的大小。Stack Space用来做方法的递归调用时压入Stack Frame(栈帧)。所以当递归调用太深的时候,就有可能耗尽Stack Space,爆出StackOverflow

2015-08-09 22:44:53 418

转载 netty并发编程

1. JAVA内存模型与多线程编程1.1. 硬件的发展和多任务处理随着硬件特别是多核处理器的发展和价格的下降,多任务处理已经是所有操作系统必备的一项基本功能。在同一个时刻让计算机做多件事情,不仅仅是因为处理器的并行计算能力得到了很大提升,还有一个重要的原因是计算机的存储系统、网络通信等IO性能与CPU的计算能力差距太大,导致程序的很大一部分执行时间被浪费在IO wait上面,CPU的强大运

2015-08-09 22:29:43 1706

原创 java面向接口编程

在oop中有一种设计原则是面向接口编程,面向接口编程有很多好处,具体百度一大片,我来谈一下具体的使用中的一些不成熟的见解!!首先面向接口编程可以消除类之间的依赖关系,使得业务只依赖接口。这样有什么好处呢?这样的好处大大的,比如说我们声明一个car的接口,我们对车有以下行为,我们可以开车,洗车,推车,修车,拆车等等,具体用代码实现:package com.panther.dong

2015-08-09 19:54:56 2583 5

原创 linux下的文件权限

文件管理方式linux中管理方式都是以文件来管理的,就是俗话说的一切皆文件的思想,文件是文件,目录和外设都是特殊的文件如图所示,查看一个目录下所有的文件命令:每一列的含义如下:第一列:文件类型。第二列:表示文件个数。如果是文件,那么就是1;如果是目录,那么就是该目录中文件的数目。第三列:文件的所有者,即文件的创建者。第四列:文件所有者所在的用户组。在Linux中

2015-08-09 11:26:04 1002

原创 activemq的安装使用

最近有项目中用到消息队列,JMS规范中实现最好的开源框架就是activemq,所以选择它(当然这是我老大决定的,像我这中刚入职场的小菜鸟考虑问题还不太全面)作为消息队列传输数据,公司有有成型的消息队列框架的实现,可是公司中的框架 实现的好繁琐,考虑的好全面,考虑到了同步消息传输和异步消息传输,持久化消息存储和非持久化消息存储,消息之间点对点传输还是pubilc/subscribe(订阅)等等,考虑

2015-08-09 11:12:59 1196 1

原创 java注解例子

java注解在web框架中使用比较广泛,这使得对象之间的关系配置起来更加容易目前web框架中最常用的两种配置对象依赖关系的方式就是注解和xml配置文件的方法,api配置相对来说用的少一些,下面实现一个Table注解来实现数据库表和实体bean之间的对应关系,实现一个Column注解来实现数据库表中每个字段和实体bean每个属性之间的对应关系。java中的orm基本上就是根据这种思想来实

2015-08-08 21:00:59 1415

转载 第四章:连接到ActiveMQ

第四章:连接到ActiveMQActiveMQ的主要作用就是向客户应用程序提供面向消息通信的架构。ActiveMQ提供了一种用于客户端和代理之间(Client-to-Broker)以及代理与代理(Broker-to-Broker)之间连接的连接器(connectors)。ActiveMQ允许客户端的应用程序使用多种协议连接到代理,并且代理之间可以创建复杂的连接通道。这一章中将解释下面的连接

2015-08-08 11:26:00 1191

转载 理解面向消息的中间件和JMS

第二章:理解面向消息的中间件和jms2.1企业级消息简介企业级消息是在分布式系统之间进行传递的数据。当前有很多方法可以完成这一目的:1.远程过程调用,例如COM、CORBA、DCE和EJB2.事件通知、进程间通信和消息队列等,依赖于具体操作系统的数据交换方式,例如先进先出(FIFO)缓冲、消息队列、管道(pipes)、信号(signals)、套接字(sockets)等。3.一类

2015-08-08 11:20:29 2524

转载 activemq in action

第一部分:消息通信和ActiveMQ简介Apache的ActiveMQ是一种实现了Java Message Service(JMS)规范的,用于多系统和多应用程序之间进行远程消息通信的中介(或称代理)。ActiveMQ是使用java实现,并且为C/C++、.NET、Perl、PHP、Python、Ruby 等其他编程语言提供了客户端的API使用接口。第一章:Apache ActiveMQ简

2015-08-08 11:04:24 655

原创 java反射获得运行时属性的值

java反射

2015-08-06 10:39:36 1309

转载 git pull和git fetch的区别

git fetch相当于从远程的分支获取最新的版本到本地,不会自动mergegit fetch orign master git log -p master..orign/master git merge orign/master 上面命令的解释: 首先从远程的仓库的master主分支下载最新的版本到origin/master分支上 然后比较本地master分支和origi

2015-08-06 10:30:57 556

原创 mysql常用命令

查看慢查询时间的方法:show variables like 'long_query_time';可以显示当前慢查询时间。MySql默认慢查询时间为10秒可以通过如下语句对慢查询的定义进行修改set global long_query_time=1;(如果你的mysql设置了缓存,那么需要重新进入命令行窗口才会查出变化)需要注意的是,这个语句特意在变量前

2015-08-03 10:04:05 540

原创 java中的异常详解

java中的exception关系图如图下图所示:Throwable是Exception(异常)和Error(错误)的超类!!两者的区别:Exception表示程序需要捕捉和处理的的异常;Error表示系统级别的错误和程序无需处理的。我们日常程序中所遇到的是Exception,Exception分为两种:第一种是JDK标准自带的异常,当程序违反了jdk的语法规则或者

2015-08-02 20:04:03 1164

原创 mapreduce实现结构化查询(求最大值,求最小值&&求和)

求最大值package com.panther.max;import com.panther.util.HadoopLogger;import com.panther.util.Util;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf.Configured;import org.ap

2015-08-01 21:35:37 2166 2

原创 余弦相似度-java代码实现

字符串相似性匹配算法,匹配句子或者文章的相似性

2015-08-01 21:12:06 15033

原创 vim替换命令

vim中怎么替换字符在命令模式下输入下列命令n,$s/\s/###/g : 从第n行开始替换所有的空格为###在命令模式下输入

2015-08-01 20:57:02 514

pcre-8.37安装包

为了重写rewrite,pcre安装包

2016-03-12

空空如也

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

TA关注的人

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