- 博客(48)
- 资源 (8)
- 收藏
- 关注
原创 AOP的底层实现-CGLIB动态代理和JDK动态代理
详细介绍了AOP的核心功能(拦截功能)在底层是如何实现的;介绍了两种实现AOP的动态代理:jdk动态代理和cglib动态代理,并详细描述了它们在代码层面的实现。
2013-10-20 19:53:52 41843 11
原创 一个简单的NoSQL内存数据库—Berkeley DB基本操作的例子
最近,由于云计算的发展,数据库技术也从结构式数据库发展到NoSQL数据库,存储模式从结构化的关系存储到现在如火如荼的key/value存储。其中Berkeley DB就是上述过程中的一个比较有代表性的内存数据库产品,数据库的操作是通过程序来实现的,而不是SQL语句。特别是当今数据不断动态增加的过程中,试图通过数据切割来达到扩充的思路已经行不通了,因为事先不知道客户数据格式,因此服务提供商不可能进行数据切割。而无模式的key/value存储就可以解决这种扩充带来的可扩展性问题,因为key/value的存储模式
2013-10-14 15:56:36 4495
原创 用javap命令反编译来分析字符串问题
编写Test.java,编译完后生成Test.class文件,然后对该文件执行javap -c Test命令,生成字节码指令,阅读并得出结论一、s1和s2指向常量池的不同常量①java代码public class Test { public static void main(String[] args) throws IOException {
2014-05-22 09:07:42 2168 1
原创 MySQL的一些配置问题
在使用MySQL时候,常常会遇到一些奇葩的问题,简单梳理一下1、服务器端搭建MySQL服务器不允许远程连接第一步:服务器端在防火墙中开启MySQL3306端口,在cmd中输入下面命令:netsh firewall add portopening protocol = TCP port = 3306 name = "Open3306" mode =Enable这样在防火墙的入站规
2014-03-27 20:53:21 1201
原创 hibernate缓存
Hibernate是一个持久层框架,经常访问物理数据库,为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻,会同步缓存和物理数据源中的数据。一、Hibernate的一级缓存和二级缓存1、一级缓存的管理Hibernate一级缓存又称为“Session的缓存”,它是内置的,不能被卸载(不
2013-11-06 20:23:16 1081
转载 Google云计算三大核心技术之HBase
HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapRe
2013-10-21 20:17:28 2356
原创 写代码简单比较init-method,afterPropertiesSet和BeanPostProcessor
比较init-method,afterPropertiesSet和BeanPostProcessor之间的区别,代码实现各种相关的功能。
2013-10-21 16:00:23 17856
原创 一致性哈希算法 - Consistent Hashing
本文详细介绍了一致性哈希算法(consistent hashing),是目前学习NoSQL数据库和云计算等知识所必须掌握的一个算法。第一部分介绍了consistent hashing算法的定义,与普通hash算法的比较,consistent hashing算法单调性和平衡性的优点,详细的实现原理和步骤;第二部分构建了一个md5压缩算法实现的散列函数,并在此基础之上,实现了一个一致性哈希算法。
2013-10-15 21:49:03 3737
原创 排序算法总结
本文总结了基本的排序算法,包括选择排序,插入排序,冒泡排序,快速排序,堆排序,归并排序等基于比较的算法,以及,计数排序和基数排序这两种非基于比较的算法。前六种排序算法是基于比较算法,时间复杂度的下界为o(nlgn),后两种不是基于比较的排序算法,时间复杂度为线性o(n)。
2013-10-06 18:31:05 1211
原创 MySQL中关于日期、时间的数据类型和函数
一、日期相关的数据类型1、datetime占用8字节,既显示了日期,又显示了时间。其表示的日期范围为“1000-01-01 00:00:00”到“9999-12-31 23:59:59”2、date占用3个字节,可显示的日期范围“1000-01-01”到“9999-12-31”3、timestamp和datetime显示结果一样,都是固定的“YYYY-MM-DD 00:00
2013-09-15 16:47:32 1828
原创 深入研究java中的静态代理和动态代理
java中自带jdk中可以实现动态代理,动态代理与静态代理的区别是什么,动态代理怎么来用,它内部的实现机制是怎么样的,本文做了详细的描述
2013-09-07 17:06:32 1143
原创 类加载器的加载机制
加载阶段中的“通过一个类的全限定名来获取此类的二进制字节流”这个动作放到jvm外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模版被称为“类加载器”。双亲委派模型站在jvm角度讲,只有两种类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器是由C++实现的,是jvm的一部分。另一种就是其他所有的类加载器,这些由java语言实现,
2013-09-06 20:31:31 1330
原创 利用Perf4j 对java项目进行性能监控
Perf4j 可以对自定义监控范围的java代码进行日志记录,再经统计分析生成所需性能数据。Perf4j 提供了对常用日志工具log4j的扩展以方便与产品集成,它产生的性能数据可被用于生成可视化的性能图表。Perf4j是一款专门用于java服务器端代码计时,记录日志和监控结果的开源工具包。Per4j对常用日志工具包进行了扩展,能够将得到的原始性能数据进行统计并发布到可定制的输出源,如控制台、日志文件、JMX等。本文主要面向JAVA EE项目,来说明Perf4j集成log4j来进行性能的的分析。
2013-09-06 20:05:34 6283 2
转载 数据库范式(normalization)
1、第一范式:1NF(First Normal Form)取消表中套表的现象。以下表中套表,不符合1NF,不符合关系数据库。nametelage大宝1361234567822小明13988776655010-123456721
2013-08-28 22:11:30 18671 1
原创 利用xstream进行java对象和xml之间的互相转化
利用xstream可以方便的进行java对象和xml之间互相转化。代码如下1、java对象import com.thoughtworks.xstream.annotations.XStreamAlias;@XStreamAlias("PERSON")public class Person { @XStreamAlias("name") String name; @XStream
2013-08-03 21:26:55 2096
原创 Spring实现文件上传
在实际开发中,经常遇到要实现文件上传到服务器端的功能。Spring可以继承commons-fileupload插件来实现文件上传的功能。分为前端JSP编写和后台Controller的编写。直接上代码:1、前端JSP编写upload.jsp 2、后台UploadController编写package nju.softw
2013-07-27 16:32:42 2361 3
原创 command设计模式和回调机制
总结command设计模式和回调机制,说明这两者之间的联系,并且用command模式来实现回调机制。command设计模式是回调机制的一个面向对象的替代品。一、首先介绍回调机制二、command设计模式三、command模式如何替代回调机制
2013-07-16 19:06:54 2445 1
原创 java中上传图片,加载上传的图片到页面
在java中实现图片的上传,并且显示图片到页面的功能分为以下几步:1、上传图片代码(此处是读取图片,转换为流,写入数据库中保存) FileInputStream fis = new FileInputStream("d:/test/2.jpg"); //此处是mysql数据库驱动 Class.forName("com.mysql.jdbc.Driver"); String u
2013-07-11 17:11:31 4100
转载 微软等公司算法+数据结构面试100题
微软、百度等公司100题系列。1.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / / 6 14 / / / /4 8 12 16 转换成双向链表4=6=8=10=12=14=16。 首先我们定义的二元查找
2013-06-30 16:44:09 2160
原创 hibernate操作数据库总结
这篇文章用于总结hibernate操作数据库的各种方法一、query方式1、hibernate使用原生态的sql语句执行数据库查询有些时候有些开发人员总觉得用hql语句不踏实,程序出现了错误,就猜测因为不是原生态的sql语句,数据库不支持,因此情愿选择回到jdbc时代。这样既耗时耗力,又破坏面向对象的编程。其实,hibernate已经考虑到这个问题,hibernate可以执行原生态的s
2013-06-29 15:07:22 2612
原创 SQL语句整理
在开发中,常常会遇到操作数据库的情况,但有时候会偶尔想不起标准的SQL语句怎么写,虽然网上查一下都能找到,但是毕竟心里不爽,而且还会影响开发效率,因此,写篇博文整理下常用的基本的SQL语句,加强记忆。1、SELECT(基本查询语句)SELECT DISTINCT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber D
2013-06-27 21:23:50 1827 2
原创 iText操作word文档总结
操作word文档的工具有很多,除了iText之外还有POI,但是POI擅长的功能是操作excel,虽然也可以操作word,但是能力有限,而且还有很多的bug,技术并不成熟,下面就重点介绍一种操作word文档的简单有效的技术iText,代码如下,各种操作都已经注释。package com.itext;import java.awt.Color;import java.io.FileOutpu
2013-06-27 16:01:02 6170 2
原创 hibernate操作数据库的执行步骤
先举个hibernate执行SQL的例子:public boolean addUser(UserDO userDO) { boolean b = false; if (userDO != null) { try { getHibernateTemplate().save(userDO); b = true; } catch (Exception e) { b
2013-06-21 13:58:04 4136
原创 Java内存管理的技巧
掌握Java的内存回收、垃圾回收机制是为了更好地管理Java虚拟机内存,这样能够好的提高Java程序的运行效率。下面总结几个内存管理的小技巧,希望时刻提醒自己的编程习惯。1、避免在经常调用的方法、循环中创建Java对象先看下面代码:public class test2 { public static void main(String[] args) { List list1
2013-06-20 13:14:00 1030
原创 spring+hibernate自动生成数据库表结构
现在越来越多的java项目采用java EE开发,spring+hibernate+stuts或者spring+hibernate+jsp的模式越来越常见,于是,更多的是spring来整合和管理hibernate,而不是hibernate独立配置。在项目开发过程中,很多童鞋可能都会经常遇到进行项目移植的情况。这样数据库移植的问题就成了一个令人头疼的问题。也许你说可以从数据库导出表结构,然后再建立新
2013-06-19 18:26:39 5536
原创 Spring的sessionFactory配置详解
一句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource。即需要配置两个主要的Bean:sessionFactory和dataSource。其中dataSource的配置在http://blog.csdn.net/dreamrealised/article
2013-06-19 14:28:43 10749 1
原创 Spring的datasource配置详解
一句话,Spring对Hibernate的整合,是在applicationContext.xml中配置sessionFactory来实现的,其中sessionFactory中要装配dataSource。下面就详细介绍dataSource Bean的配置。先上代码(比较齐全的属性)<bean id="dataSource" class="org.apache.commons.dbcp.B
2013-06-19 13:21:45 14664 1
原创 数据库连接池
1.连接池简介 数据库连接是一种关键的有限的昂贵的资源,建立一个数据库连接需要消耗大量系统资源,频繁的创建数据库连接会大大的削弱应用性能,因此考虑到性能的问题,并不是每个用户都创建并独占一个数据库连接,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。这项技术能明显提高对数据库操作的性能。2.重要定义 数据库连接池在
2013-06-19 12:46:01 2988
原创 Java web项目中web.xml的配置
在java的web项目中,我们都能发现一个web.xml文档,但是这个文档并不是必须的,web.xml的主要功能是用来初始化项目工程的配置信息,比如说welcome页面,filter,servlet等,当你的web工程中没用到这些当然也就不需要这个xml文件来配置你的apllication。下面简单介绍web.xml的几个功能的配置和作用:1.context-param容器启动后创建一
2013-06-18 19:11:47 3963
原创 Spring的配置文档applicationContext.xml
进行java EE开发最常用的就是Spring,Spring是一种轻量级的java开发框架,是一种javaEE的容器管理工具,Spring的核心就是IoC容器,Spring利用IoC容器来注册bean,对bean的管理能够实现java对象之间的依赖关系,从而成为完成其他复杂任务的基础。Spring建立在IoC容器核心功能之上的其他重要功能有:AOP(面向切面编程),事务管理,springMVC
2013-06-18 19:11:45 15720 4
原创 maven搭建web工程的步骤
搭建一个新的webproject的整体思路:先用maven搭建项目的骨架,生成mvnproject,然后将mvnproject转换为webproject,最后添加相关的Spring,hibernate,dispatcher等配置文档.本文以Daemon工程的建立为例来说明整个流程。一、介绍用maven搭建项目的骨架主要分为下面两种方法。(如果内网建议用第二种方法)第一种方法:使
2013-06-18 19:11:43 1839
原创 如何同时获取Map的构成对应关系的key和value
关于Map,我们都知道,它的作用主要是用来建立一种key和value的对应关系。因此,我们最经常的做法是在知道key的时候获取该key对应的value值。我们都知道,根据key得到value值很好获取。单独获取keySet(CollectionkeySet = map.keySet();)和valueSet也很好获得(Collection valueSet =map.values();)。但是,有
2013-06-18 19:11:41 1984
原创 hibernate.dialect
在写jdbc.propertier的时候会遇到配置hibernate.dialect属性。总结下不同数据库的该属性的值如下表。其中属性值得格式:{hibernatejar的全名}.dialaect.{对应数据库}DialectHibernateSQL方言 (hibernate.dialect)RDBMS方言DB2o
2013-06-18 19:11:38 3057
原创 POI导出Excel文件以及读取Excel文件
POI的结构:HSSF - 提供读写MicrosoftExcel格式档案的功能。XSSF - 提供读写Microsoft ExcelOOXML格式档案的功能。HWPF - 提供读写MicrosoftWord格式档案的功能。HSLF - 提供读写MicrosoftPowerPoint格式档案的功能。HDGF - 提供读写MicrosoftVisio格式档案的功能。下面简要说H
2013-06-18 19:11:36 1138
原创 深入理解hibernate中持久化和序列化
虽然平时经常用hibernate的持久化类DO,但是仅限于随手逆向工程生成相应数据库表的持久化类,然后拿来用,根本就没有深入的去了解hibernate的持久化和类的序列化的具体用法原理。闲来没事查查资料,再结合在实际应用中的体会,感觉有必要写一写。一、什么是序列化对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。我们把对象的这种能记
2013-06-18 19:11:33 3379
AOP的实现代码
2013-10-20
maven实战教程
2013-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人