自定义博客皮肤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技术

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

原创 Spring Bean InitializingBean和DisposableBean实例区别

在Spring中,InitializingBean和DisposableBean是两个标记接口,为Spring执行时bean的初始化和销毁某些行为时的有用方法。对于Bean实现 InitializingBean,它将运行 afterPropertiesSet()在所有的 bean 属性被设置之后。对于 Bean 实现了DisposableBean,它将运行 dest

2017-10-09 17:43:36 472 1

原创 spring的静态工厂和实例工厂方法

直接上代码吧,好理解package com.norelax.www.factory;/** * 新闻实体类 * * @author wusong * @create 2017-05-29 上午10:29 **/public class News { String title; String content; public News(String tit

2017-05-29 11:10:22 2911 9

转载 LINUX软件管理 (源代码、RPM、YUM)

本文主要介绍linux系统下三种形式的软件管理方式:源代码、RPM、YUM。源代码形式绝大多数开源软件都是以源代码形式发布的,源代码一般会被打包成tar.gz的归档压缩文件,程序源代码需要编译成为二进制形式之后才能够运行使用。虽然源代码形式的软件使用起来较为麻烦,但是兼容性及可控制性较好。源代码形式程序安装流程一般如下:①、$ tar -zxvf XXXX.tar.

2017-05-26 16:23:23 553

原创 java序列化和反序列化工具

package com.nettyrpc.protocol;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import org.objenesis.Objenesis;import org.objenesis.ObjenesisStd;import com.dyuproject.protostu

2017-03-24 10:56:37 485

原创 MySQL 操作与配置

Table of Contents基本命令运行sql脚本登录mysql控制台Mysql远程连接操作步骤可能出现的问题SQL 语法基本命令add at 2015-10-31运行sql脚本mysql> source my.sql;登录mysql控制台mysql -h host -u username -p

2017-03-01 16:42:33 364 2

原创 获取单例对象 Double Checked Locking Pattern的危险性

早期内置锁synchronized的性能比较低,所以在实现懒汉式单例模式时采取Double Checked Locking Pattern模式,它通过尽量少执行内置锁的锁定以提高性能,如下面的代码所示:public class MySystem { private static MySystem instance = null; private Date date = new Date();

2017-03-01 15:46:05 424

原创 mysql优化笔记——为大型网站加速

对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下四个方面的工作:① 数据库设计表设计要符合3NF 3范式(规范的模式),有时候我们也需要反3范式1NF:具有原子性,不可再分隔2NF:在符合1NF的基础上,要符合2NF,只要表的记录满足唯一性,也就是说同一张表不可能出现完全相等的数据,设置主键(联合主键)

2016-12-19 11:19:02 1164

原创 优秀的项目经理需要具备哪些品质?

目标驱动,系统思维,风险意识,数据量化凡事预则立,不预则废。如果你不知道要到哪里?给你一张地图也没有用。目标驱动首先要有最基本的计划管理和时间管理能力。对于一个项目,我们过程中做的所有工作都是为了要达到项目目标,因此在项目各个阶段所有活动都需要考虑对达成目标的影响,当发现偏差后及时纠正。目标驱动让我们从无目的的事后应急变成了有计划有目的的事前预测。目标驱动不是要抛弃过程,项目的成功涉及到过

2016-10-20 16:24:45 698

原创 logstash配合redis实例

解释术语:Shipper:日志收集者。负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来,输出到Redis暂存。Indexer:日志存储者。负责从Redis接收日志,写入到本地文件。Broker:日志Hub,用来连接多个Shipper和多个Indexer。无论是Shipper还是Indexer,Logstash始终只做前面提到的3件事:Shipper从日志文件读取

2016-10-18 17:35:43 10575

原创 生产者和消费者的两种方式

在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生产者交出对临界

2016-05-29 20:27:06 587

原创 java反射main方法执行,map集合与实体转换器,

反射工具类

2016-05-28 16:34:59 558

原创 java线程范围内的数据共享

1.不使用ThreadLocal,自己定义一个map,用来存放当前线程的数据package com.norelax.www;import java.util.Map;import java.util.Random;import java.util.concurrent.ConcurrentHashMap;public class ThreadScopeDataShare { //

2016-05-15 16:17:41 440

原创 传统定时器技术

在java.util.Timer包中,现在有一个需求,要求2秒钟执行一次PING操作,4秒钟执行一次PONG操作,直接上代码:package com.norelax.www;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TraditionalTimer

2016-05-15 15:39:42 339

原创 java线程通信

1.传统的线程通信,直接上代码:package com.norelax.www;//传统的线程通信,主线程执行100次,子线程执行50次,主线程和子线程交替执行public class TraditionalThreadCommunication { public static void main(String[] args) { final Business business=new

2016-05-14 16:01:46 368

原创 java传统线程介绍

线程使用有两种:1.继承Thread类2.实现Runnable接口那么如果这两种情况都存在时,会先执行哪个呢?让我们来看看下面的例子:package com.norelax.www;public class TraditionalThread {public static void main(String[] args) {new

2016-05-14 15:11:13 391

原创 Hibernate Validation各注解的用法Demo

依赖包 org.hibernate hibernate-validator 5.1.1.Final javax.el javax.el-api 2.2.4 org.glassfish.web javax.el 2.2.4与spring整合的配置:  实体类属性上加注解约束@NotNull(mes

2016-05-06 16:19:18 10528 1

原创 java代理的几种方式

1、静态代理:类A实现接口B,则静态代理类C也实现接口B,并对类A中的方法进行增强例如:2、JDK动态代理(需要类实现接口)3、Cglib动态代理(cglib不需要类实现接口,原理:通过一个类来继承此类,让其子类成为代理类)要求此类不能被final关键字修饰

2016-04-06 16:48:29 520

原创 静态工厂方法和实例工厂方法区别

静态工厂方法:工厂初始化之前,工厂中的类已经被实例化放在工厂容器中实例工厂方法:工厂在构造方法初始化时,会将类进行实例化放在工厂中

2016-04-03 20:14:39 3595

原创 spring配置的作用域和加载方式

singleton:单例模式,spring在配置的时候,默认是singleton(单例),也就是在spring整个容器的生命周期中,这个bean都只创建一次prototype:原型模式,每次从spring容器中获取此bean时,都要新创建一个bean lazy-init=“false”(默认)配置只针对scope=”singleton”有效,此属性无法被子类配置继承

2016-04-03 18:43:18 501

原创 Java中加密工具类

/**  * @ClassName: test1  * @Description: TODO(这里用一句话描述这个类的作用)  * @author wusong  * @date 2014-9-2 下午12:56:11  *   */package com.hyphen.util;import java.io.UnsupportedEncodingException

2014-09-24 12:08:42 526 1

原创 java将阿拉伯数字转换为中文

package cn.com.goldpalm;/** * @authorwusong * */public class CnConversion2{ //阿拉伯数字,字符串类型 public String number; //阿拉伯数字,int类型 public int inumber;//阿拉伯数字的位数 public int size; //构

2014-06-19 18:10:37 1070 1

转载 JQuery中2个等号与3个等号的区别

分类: JavaScript & CSS2013-09-18 12:32 224人阅读 评论(0) 收藏 举报目录(?)[+]首先,== equality 等同,=== identity 恒等。==, 两边值类型不同的时候,要先进行类型转换,再比较。===,不做类型转换,类型不同的一定不等。下面分别说明:先说 ===,这个比较简单。下面的规则

2014-05-11 16:09:34 640

转载 SpringMVC中的文件上传

这是用的是SpringMVC-3.1.1、commons-fileupload-1.2.2和io-2.0.1首先是web.xml[html] view plaincopyprint?xml version="1.0" encoding="UTF-8"?>  web-app version="2.5"       xml

2014-04-09 13:12:59 414

转载 差异:git clone , git fetch, git pull和git rebase

Git Pull据我所知,当你使用git pull时,它将会获取远程服务器(你请求的,无论什么分支)上的代码,并且立即合并到你的本地厂库,Pull是一个高等级的请求,默认会支持Fetch和merge的操作,如果不是为了使用上的方便,你可以完全不使用它。12345$git checkout localbranch$git pull 

2014-01-13 10:03:43 689

转载 git分支操作小记

查看本地分支:git branch查看远程分支:git branch -r创建本地分支:git branch branchname切换分支:git checkout branchname创建并切换切换分支:git checkout -b branchname删除分支:git branch -d branchname 未合并的分支无法删除,-D强制删除分支合并分支:git m

2014-01-12 17:46:35 591

转载 git学习笔记

Git术语working directory: 工作区staging area: 暂存区git directory/repository: 仓库remote branch: 远程分支,是对远程仓库中的分支的索引,它们是一些无法移动的本地分支。Git基础Git存储Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多

2014-01-12 10:59:42 925

转载 vi编辑器的使用

常用vi编辑器命令行对于VI的命令行,不需要特意的去记忆,写下来,让要用到的时候能找到就行  游标控制h游标向左移j游标向下移k游标向上移l (or spacebar)游标向右移w向前移动一个单词b向后移动一个单词

2013-12-28 18:07:46 430

转载 Dynamic Web Project 的学习笔记

文章框架:1.Dynamic  Web Project 概念    2.eclipse 中的动态Web 项目与 Myeclipse 中的web项目有何区别  3.动态的运行原理及目录结构---是否都涉及到由类生成表的技术(如果没的话,也应该 把这个搞清楚)4,如何建立server?5.如何建立一个动态Web?要知道各配置文件的作用6.熟悉auctio

2013-12-26 09:54:11 628

原创 Eclipse上GIT插件EGIT使用手册

http://download.eclipse.org/egit/updates/或者使用Eclipse Marketplace,搜索EGit二_使用EGIT前的配置配置个人信息,最重要的是user.name和user.emaill  Preferences > Team > Git > Configurati

2013-12-25 18:22:13 570

转载 js浏览器兼容问题总结及解决办法

javascript部分1. document.form.item 问题问题:代码中存在 document.formName.item("itemName") 这样的语句,不能在FF下运行解决方法:改用 document.formName.elements["elementName"]2. 集合类对象问题问题:代码中许多集合类对象取用时使用(),IE能接受,FF不能

2013-12-23 09:58:13 890

原创 Java实现斐波那契数列

为了应付软考,补补基础知识,特记录下以备后用。斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。以下是Java代码实现(递归与递推两种方式):[java] view plaincopyi

2013-12-20 16:16:22 687

原创 Spring MVC返回json数据的方法

Spring MVC 3.0 返回JSON数据的几种方法:1. 直接 PrintWriter 输出2. 使用 JSP 视图3. 使用Spring内置的支持// Spring MVC 配置[html] view plaincopybean class="org.springframework.web.servlet.mvc.an

2013-12-17 16:08:55 838

原创 怎样解决maven项目中依赖的jar包和tomcat中的jar包的冲突

1.首先在pom.xml中用>标签,将不要发布的依赖包(引起冲突的jar包)写到标签体中,让这些jar包不起作用2.在目标tomcat中引入在标签体中写入刚刚在标签体中写入的依赖jar包

2013-12-12 09:46:38 1859

原创 java中栈和堆的区别?

栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是

2013-12-10 16:01:59 534

原创 java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not

没有找到beans.xml,首先确定你项目里有这个文件吗,如果没有请添加,或者你已经存在bean配置文件,只是名字不是beans.xml,请改正名字。此外还要注意最好把bans.xml加入到classpath里,就是放到你的包里。最简单的是放在src下就行。如果在eclipse里面,具体操作:右键项目---->properties--->Java Build Path--->source---

2013-12-10 12:39:42 917

原创 索引的基本概念、分类、优点、使用

▼一、索引的概念        索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。二、索引的特点    1.索引可以加快数据库的检索速度    2.索引降低了数据库插入、修改、删除等维护任务的速度 

2013-12-07 21:10:57 709

原创 mysql的数据库的优化

u  Mysql数据库的优化技术对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF)b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]c: 分表技术(水平分割、垂直分割)d: 读写[写:update/delete/add]分离e: 存储过程 [模块化编程,可以提高速度]f: 对mysql配置优化

2013-12-04 19:25:29 557

原创 Spring核心技术阐述(IOC、DI、AOP)

IOC(Inversion of Control)——控制反转        首先介绍IoC(Inversion of Control,控制反转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,

2013-12-04 19:19:52 658 1

原创 struts2和springmvc的区别

我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外)。区别:    1.机制:Springmvc的入口时servlet,二struts2的入口时filter(要指出,servlet和filter是不同的),这就导致了两者的运行机制不同了。有关servlet和f

2013-12-02 16:19:32 699 1

原创 hashmap和hashtable的区别

HashMap                Hashtable父类                  AbstractMap          Dictiionary是否同步            否                            是k,v可否null     是                            否

2013-11-29 14:21:49 555 1

空空如也

空空如也

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

TA关注的人

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