- 博客(24)
- 资源 (7)
- 收藏
- 关注
原创 对struts2的OGNL的理解
OGNL:Object-Graph Navigation Language.对象图形化导航语言OGNL是集成进struts2框架中比较强大的技术有助于数据传输和类型转换,OGNL由表达式语言和类型装换器组成。表达式语言:我们已经在jsp表单input名和jsp标签使用该语言了.他用来绑定java端的数据属性和基于字符串的视图层表示.表达式语言甚至可以进行方法调用,目的就在于方便数据
2014-05-10 22:20:42 961
原创 java性能优化技巧
一、通用篇 “通用篇”讨论的问题适合于大多数 Java应用。 1.1 new 1.1 new 11..11 不用 nneeww关键词创建类的实例 用new 关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如 果一个对象实现了Cloneable 接口,我们可以调用它的cl
2014-05-09 13:50:49 4104
原创 java内存泄露详解
很多人有疑问,java有很好的垃圾回收机制,怎么会有内存泄露?其实是有的,那么何为内存泄露?在Java中所谓内存泄露就是指在程序运行的过程中产生了一些对象,当不需要这些对象时,他们却没有被垃圾回收掉,而且程序运行中很难发现这个对象,它始终占据着内存却没有发挥作用。我举这样一个例子,在现实开发中我们需要自定义一个先进后出的栈集合,代码如下:package cn.lmj.demo2;
2014-05-09 13:44:29 938
原创 java面向切面编程
面向切面在英文中的单词是Aspect Oriented Programming(AOP),在spring框架中叫aop,它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它是一种新的方法论,它是对传统OOP编程的一种补充。AOP技术是建立在Java语言的反射机制与动态代理机制之上的。请看下图以上图是利用jdk动态代理为真实对象上的
2014-05-08 16:08:37 3085
原创 详解java动态代理
生活中的代理:比如一个明星成名了以后,是需要有一个代理的,因为太多人想找他签名,应付不来,那么这个时候代理的作用是拦截你对真正明星的访问,他可以拦截下来收点费用,再叫真正的明星过来为你签名。程序中的代理:1,要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等,你准备如何做?2,编写一个与目标类具有相同接口的代理类
2014-05-08 14:44:33 772
原创 java反射注解的用途
很多人都知道java的反射机制和注解技术。反射(Reflection)就是加载类,并解剖出类的各个组成部分;而Annotation 其实就是代码里的特殊标记, 它用于替代配置文件,也就是说,传统方式通过配置文件告诉类如何运行,有了注解技术后,开发人员可以通过注解告诉类如何运行。那么两者结合能够产生出什么?首先来看下面一个程序package cn.lmj.annotation;i
2014-05-04 23:51:44 1016
原创 java实现简单邮件发送
package cn.lmj.demo;import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.
2014-05-02 22:49:57 983 2
原创 详解java的事件监听机制和观察者设计模式
首先说说监听器:监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。java的事件监听机制可概括为3点:1,java的事件监听机制涉及到事件源,事件监听器,事件对象三个组件,监听器一般是接口,用来约定调用方式2,当事件源对象上发生操作时,它将会调用事件监
2014-05-02 20:06:28 1697
原创 mapreduce程序实现排序
文件的内容如下所示:5458876645要求最后的输出格式:1 52 63 84 455 455 876首先,这个题目是需要对文件的内容进行排序操作。我们都知道在mapper阶段是会对key进行排序的,我们就利用这个出发,把输入一行的数据转换成int,再把该int做mapper的key输
2014-04-26 22:12:13 2135 1
原创 基于配置文件的工厂设计模式实现,并且做到对象的单例,类似于spring的ioc
package cn.lmj.util;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import java.util.Properties;import cn.lmj.dao.CategoryDao;
2014-04-26 21:48:09 1013
原创 java数据库连接池简单实现
package cn.lmj.utils;import java.io.PrintWriter;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.sql.Connection;imp
2014-04-26 21:34:28 1266 1
原创 hadoop的WordCount例子
package cn.lmj.mapreduce;import java.io.IOException;import java.util.Iterator;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Te
2014-04-24 22:47:17 1028
原创 mapreduce的shuffle详解
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在
2014-04-24 22:46:39 555
原创 tomcat线程池设置
web server允许的最大线程连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。1.编辑tomcat安装目录下的conf目录下的server.xml文件在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:maxThreads="150" 表示最多同时处理150个连接,Tomcat使用线程
2014-04-15 13:44:00 1044
原创 jxl实现excel文件变成java集合
package cn.lmj.utils;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.ArrayLi
2014-04-05 13:57:12 558
原创 poi报表实现,导出到excel文件
package cn.lmj.utils;import java.io.OutputStream;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apa
2014-04-05 13:54:15 562 2
原创 java 线程通讯 主线程运行10次接着子线程运行5次,如此反复运行20次代码实现
package cn.lmj201402;public class TraditionalThreadCommunication{public static void main(String[] args){final Business business = new Business();new Thread(new Runnable(){@Override
2014-03-28 22:07:26 718
原创 Java实现md5加密
package cn.lmj201403;import java.security.MessageDigest;import sun.misc.BASE64Encoder;public class Md5{public static void main(String[] args) throws Exception{MessageDigest m
2014-03-28 22:03:47 536
原创 java网络编程和io,多线程结合完成文件上传和下载案例
客户端:package cn.lmj201403;import java.io.FileInputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class FileUpload_client{public stat
2014-03-28 22:02:01 873
原创 仿jdk的ArrayList实现
package cn.lmj201401;@SuppressWarnings("unchecked")public class MyArrayList{private int capacity = 10;private int size = 0;private E[] values = null;//通过构造器生成默认的10个容量public MyArrayLi
2014-03-21 23:02:18 539
原创 仿jdk的LinkedList代码实现
package cn.lmj201401;public class MyLinkedList{private Entry header = new Entry(null,null,null);private Entry now ;private int size = 0;public MyLinkedList(){header.next = head
2014-03-21 22:52:21 486
原创 dojo的树状结构展示
@import "Libs/dojo/dijit/themes/tundra/tundra.css";//导入 树列表 的支持包dojo.require("dijit.Tree");//导入 将json格式数据格式化为tree认识的格式 的支持包 ,这也是 dojo 其他控件依赖的数据格式dojo.require("dojo.data.ItemFileReadS
2014-03-14 18:58:00 828
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人