自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世界上并没有完美的程序,但我们并不因此沮丧,因为写程序本来就是一个不断追求完美的过程。

  • 博客(145)
  • 收藏
  • 关注

原创 芝诺悖论

           芝诺说阿基里斯让乌龟先跑一段的话,最终肯定跑不过乌龟。因为阿基里斯在追乌龟的过程中,只能不断的到达乌龟之前的出发点,而此时乌龟已经跑了一段了。也可以说成 一个人从A点走到B点,要先走完路程的1/2,再走完剩下总路程的1/2,再走完剩下的1/2……”如此循环下去,永远不能到终点。与我们的常识明显违背。比赛中,反超经常出现,而我们想去某个地方,也总能到达。          ...

2018-08-17 00:59:54 1580 2

原创 学习金字塔

          学习金字塔分为七层,从上往下留存率越来越高。越往下,也代表更加主动的学习,领会知识。留存率低的听讲,阅读和试听,恰恰是我们中国大多数学生的学习方式。教育体系以应试为目的,脱离了生活,把学习搞成了一件无趣的事。           为什么听讲,阅读和视听留存率低呢?大概因为这三项只是建立了对知识的初步了解,只是知道了有这么回事,认识角度比较单一,没有亲实践体会过,没有思考过,...

2018-08-17 00:54:51 446 1

原创 Struts的一些总结

1、Struts2与Struts1的区别Action类Struts1的Action必须继承Struts2的Acton可以不继承线程Struts1单例的,存在线程安全问题,如果用actionform的话,ActionForm是多例的,所以可以保证线程安全Struts2多例的,没有线程安全问题(ps:struts2只能是多例的,struts1将action交给spr

2015-08-31 23:03:07 2144 9

原创 Java内存简介

一:Java技术体系模块图二:JVM内存区域模型 1.方法区       也称"永久代”、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize和 -XX:MaxPermSize 参数限制方法区的大小。运行时常量池:是方法区的一部分,Class文件中除了有类的版

2015-08-31 22:35:16 1750 6

原创 J2EE 13个规范概览

J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持。下面对J2EE中的13种进行简单的描述: 1. JDBC(Java Database Connectivity):        JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据

2015-08-31 22:27:48 1875 4

原创 Redis

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。

2015-08-01 19:50:47 2680 9

原创 消息中间件(二)---ActiveMQ

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMSProvider实现。    MQ英文名Message Queue,我们习惯称其为消息队列,是消息的接受和转发的容器,可用于消息推送。安装        在官网下载,我下载的是apache-activemq-5.11.1版本。解压后

2015-07-31 14:35:46 2010 7

原创 Dubbo--HelloWorld

上篇博客对Dubbo进行了大概的介绍,这篇博客介绍如何使用Dubbo,经典的HelloWorld。     通过上篇博客我们知道,在dubbo中有一个很重要的角色是注册中心,Dubbo现在支持的有三种方式:1.multicast;2.zookeeper;3.redis。下面的Demo使用的是multicast方式。项目目录结构:消费者:服务者: 消费者端

2015-07-25 15:24:42 4115 14

原创 Dubbo--简介

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 核心部分包含:   远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。

2015-07-25 14:32:50 2249 10

原创 Apache+Tomcat负载均衡集群搭建

1.所需软件              apache_2.2.4-win32-x86-no_ssl,apache服务器              mod_jk-apache-2.2.4连接器,连接apache和tomcat             apache-tomcat-6.0.33tomcat服务器2.软件安装    2.1apache 安装

2015-07-05 14:42:42 5484 10

原创 消息中间件(一)---对比

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。         消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给服务器,消息服务器将消息存放在若干队列中,在合适的时

2015-06-29 21:29:21 3232 5

原创 远程调用的几种方式

在分布式服务框架中,最基础的问题就是远程服务是怎么通讯的。首先来看看计算机系统网络通信的基本原理,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现,其中传输协议有 tcp、udp等等,tcp、udp都是在基于Socket概念上为某类应用场景而扩展出的传输协议;网络IO,主要有bio、 nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只

2015-06-29 20:28:20 5950 7

原创 Java并发编程--Fork/Join框架使用

上篇博客我们介绍了通过CyclicBarrier使线程同步,但是上述方法存在一个问题,那就是如果一个大任务跑了2个线程去完成,如果线程2耗时比线程1多2倍,线程1完成后必须等待线程2完成,等待的过程线程1没法复用。现在我们准备解决这个问题,我们希望线程1完成自己的任务后能去帮助线程2完成一部分任务。Java7引如了Fork/Join框架可以很好的解决这个问题。         Fork/Joi

2015-06-12 20:42:30 5705 7

原创 Java并发编程--CyclicBarrier

CyclicBarrier 是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier支持一个可选的 Runnable 命令,

2015-06-07 00:13:37 2588 5

原创 Java并发编程--线程局部变量使用

共享数据是并发程序最核心的问题之一。下面我们看一个Deom感受一下多线程对属性的影响。代码:UnsafeTask.javapackage com.tgb.klx.thread;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.TimeUnit;public

2015-05-28 09:12:56 4302 4

原创 Java并发编程--Thread

Thread中文翻译为线、线索。其实我们的线程就和一条条的线路一样,所以用Thread表示很合适。之前我们编写的代码就一条执行路径,比如下面方法: public static void main(String[] args) { hello2 hello=new hello2(); hello.test1(); } public void test1(){ //....

2015-05-27 15:11:56 2091 8

原创 Java并发编程--多线程之HelloWorld

上篇博客我们介绍了一些基本概念,进程、线程、并发。下面我们开始写第一个多线程的程序。 两种方式:一、实现Runnable接口;二、基础Thread类。 一、实现Runnable接口package com.tgb.klx.thread;public class hello1 implements Runnable { public hello1() { } pub

2015-05-26 11:50:49 4279 6

原创 Java并发编程--进程与线程

进程:百度百科说“进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。”,维基百科说“是计算机中已运行程序的实体。进程本身不会运行,是线程的容器。”        线程:百度百科说“线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元”,维基百科说“是操作系统能够进行运算

2015-05-26 11:16:29 2233 7

原创 HighCharts使用

Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。HighCharts支持的图表类型有曲线图、区域图、柱状图、饼状图、散状点图和综合图表。                  下面来介绍一下HighCharts的使用:1.基本使用普通html加载数

2015-04-29 19:28:42 2188 36

原创 OFbiz--配置文件

OFbiz是一个非常好的企业级开发架构,实现了多层的松耦合结构,有很好的灵活性,配置文件为灵活性提供了很大的支持。       下面主要说一下,在开发中几个比较重要的配置文件。 1.entityengine.xml文件       本文件是配置数据源的,同时也包括数据库连接池、事务实现类的配置和字段类型的配置文件。     在ofbiz中,数据库的配置在这个文件中,

2015-04-28 20:19:15 2407 30

原创 Java基础——反射之获取对象信息

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制         在学设计模式的时候,我们看到过一句话:“反射反射,程序员的快乐”,当时对这句话没有很深刻的认识,到学习了struts、spring等之后,感觉到反射真是很强大的存在。

2015-04-27 21:05:06 3057 33

原创 MuleESB--HelloWorld

上篇博客对MuleESB进行了大概的介绍,本篇博客将用MuleESB做第一个Demo。    环境准备:    下载:                                               mule-standalone是运行muleesb的环境;使用的是社区版。AnypointStudio是IDE环境。 设置环境变量:

2015-04-08 19:46:00 3951 31

原创 MuleESB--简介

Mule译为:骡子、顽固的人。Mule是一个以java为基础的企业服务总线(ESB),该集成平台允许开发者在遵循SOA服务导向式架构方法学下快速便捷的将不同应用程序连接在一起交换数据。可以忽略各个应用程序中使用的不同技术,使他们集成在一起。Mule的主要功能如下:l       服务的创建与管理(Service creation and hosting):用Mule ESB作为一个轻量级的

2015-03-21 12:30:38 2911 21

原创 OFbiz--HelloWorld

上篇博客《OFbiz--简介》我们介绍了OFbiz是什么,下面我们就开始用OFbiz开发我们的第一个程序--HelloWorld。步骤如下:       首先在hot-deploy下新建文件夹simple。目录结构如下:   1.ofbiz-component.xml文件配置此文件为程序的启动配置,配置webapp的名称、位置、权限、信息。<ofbiz-component

2015-03-19 12:51:19 3453 21

原创 OFbiz--简介

一、简介                OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。 OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎

2015-03-18 20:30:13 1862 14

原创 cxf webservice

1. Web Service的定义        什么是WebService呢?从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,WebService是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查

2015-03-09 15:37:26 1838 26

原创 JPA个人理解

JPA是什么?            JPA全称JavaPersistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA是JSR-220(EJB3.0)规范的一部分,在JSR-220中规定实体对象(EntityBean)由JPA进行支持。       所以JPA不局限于EJB3.0,而是作为POJO持久化的标准规范

2015-02-28 15:37:51 2319 15

转载 【转载】产品之路的随想(社区版)

原文地址:http://timeson.iteye.com/blog/651601         点击打开链接          98年从14.4k的modem拨号上网,看到的是网易,邮箱,蓝波BBS,以及痞子蔡的《第一次亲密接触》,这些让我印象非常深刻。当时没能想到web对我的生活和工作产生了这么大的影响。99年开始接触搜索引擎,有位老鸟的话让我记忆犹新:“要把google.com写在手背

2015-02-15 20:06:18 1432 8

原创 AspectJ(一)简介

AOP是一个概念,一个规范,本身并没有设定具体语言的实现,这实际上提供了非常广阔的发展的空间。AspectJ是AOP的一个很悠久的实现,它能够和Java 配合起来使用。Aspectj是什么“a seamless aspect-oriented extension to the Javatm programminglanguage”(一种基于Java平台的面向切面编程的语言)。Aspectj

2015-02-12 17:24:17 2424 10

原创 Java基础——自定义Annotation

现如今的java开发中,我们用到了大量的注解,省去配置文件的编写,简化操作,便于开发,那么注解是什么?怎么用?          百度百科:“注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK5.0及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。”

2015-02-12 16:58:47 898 6

原创 Zookeeper(一)简介

ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,提供了一系列原语集,更上层的应用可以用它来实现同步,配置管理,名称服务,Master选举,分布式锁,分布式队列等,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。一、zookeeper提供如下服务保证顺序一致性: client的updates请

2015-01-31 22:25:24 926 6

原创 Java基础——编写自定义标签

在开发项目过程中,我们经常有这样的体会:同一个控件我们可能多处使用,同时我们需要在基础的样式上加上自己的样式和操作的js代码;遇到这种情况,如果每个地方都copy代码的话那么,后期如果要做修改,那么维护的工作量是巨大的,无疑是个灾难。基于这种情况,我们可以考虑使用自定义标签,实现代码的复用,后期的易维护。             先看一张关系图:      上图是我

2015-01-29 16:44:53 3486 18

原创 搜索引擎——全文检索Compass(一)

全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法。在java中,开源搜索引擎技术有很多,大名鼎鼎的Lucene;后来者居上的Compass等。本篇博客主要分享Compass。      Compass依靠顶级的Lucene搜索引擎,提供强大的搜索能力,并且结合了,像 Hibernate和 Spring的流行的框架,为应用提供了从数据模型和数据源同步改变的搜索力.并且添加了事务管理和

2015-01-19 23:36:15 3436 6

原创 工具简介(一)--Git

Git简介:    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。同SVN一样,作为一种项目管理的工具。在很多开源社区,很多代码都是用的Git,所以需要稍微了解使用一下这个工具。       对于SVN我们大家都比较熟悉,用的比较多,那么我们来比较一下Git与SVN。最显著的区别是方式的区别,SVN及CVS都是集中式;而Git是分布式;集中式

2015-01-12 21:49:38 1329 8

原创 Freemarker(三)与springMVC整

前两篇博客介绍了freemaker是什么以及简单的语法规则,下面我们通过实现一个demo来看在实际应用中如何使用freemaker,本篇博客主要介绍freemaker与spring的整合。      需要的Jar包:freemarker-2.3.15.jar     在已搭建好的spring的配置文件的基础上添加以下代码:配置文件: <beanid="freemarkerC

2014-12-31 15:51:58 1770 21

原创 Freemarker(二)语法介绍

一、FreeMarker模板文件组成①、文本,直接输出的部分②、注释,即格式不会输出③、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出④、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出 1、 FTL指令规则    FreeMarker有三种FTL标签,这和HTML的

2014-12-30 21:45:13 1909 8

原创 Freemarker(一)简介

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTMLWeb页面,特别是基于MVC模式的应用程序。     所谓模板,就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。在模板中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数

2014-12-30 20:22:30 10614 13

原创 Spring——自动装配

基于J2EE平台的框架很多,并且大多数框架中都有着庞大复杂的配制文件,维护起来很不方便,Spring在支持配置文件时也提供了一套能让程序员偷懒的小规则:自动装配。    Spring的IOC容器通过Java反射机制了解了容器中所存在Bean的配置信息,这包括构造函数方法的结构,属性的信息,而正是由于这个原因,Spring容器才能够通过某种规则来对Bean进行自动装配,而无须通过显式的方法来进行

2014-12-29 21:07:18 1227 13

原创 quartz(二)--与spring整合

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz。上篇博客大概介绍了什么是quartz,以及简单的使用quartz,下面我们来看quartz如何与spring整合。1.首先,准备jar包等;在web.xml文件中配置quartz使用的文件,配置在spring监听下: org.springframework.web.context.Contex

2014-11-30 14:48:24 1086 15

原创 quartz(一)--概览

一、Quartz是什么?            官方来说:quartz是一个作业调度框架。很晦涩难懂,什么是作业调度框架呢?白话来说,quartz像是一个程序的管家,咱们指定告诉它我什么时候要干什么事情,它就会按照指令,定时执行,相当于数据库中的 Job、Windows 的计划任务。(官网地址:http://www.quartz-scheduler.org/)二、简单使用    

2014-11-30 12:41:15 1176 16

空空如也

空空如也

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

TA关注的人

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