
J2EE
文章平均质量分 77
gaoyusi4964238
百度音乐基础数据(大数据)方向技术负责人,下属包括数据平台、数据挖掘&音乐推荐、数据仓库、数据分析4个技术&业务方向
(注:名片比较旧,是2010年作为高级工程师时印制的,由于除title外各类信息均为变化,所以未更新名片)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组、ArrayList、LinkedList查询及遍历性能分析
最近研究spring框架时,发现它在存储以查询和遍历居多的数据时采用的数组,而不是现在很多书中推荐的List。并且之前也发现tomcat在实现自己的service和connector时,也是多采用数组的方式。虽然之前也大概了解到list,特别是linkedList和数组在数据查询上确实有差距,但是没有深入的分析过。所以这里就写了个程序测试一下数组、ArrayList、LinkedList在遍历和查原创 2010-05-23 12:00:00 · 6337 阅读 · 2 评论 -
用BeanShell实现公式管理--使用Java脚本构建强大、灵活的公式管理系统
【引用】http://www.ibm.com/developerworks/cn/java/l-formula/index.html#main前言 客户的需求是在不断变化的。虽然他们说现在他们公司的职员奖金应该就是按照那个公式计算,但是过了几个月他们会告诉你这个公式并不是很合理,还需要加一些参数。你可能会说,这个没问题,我们可以改程序。但是当这样的变更不是一次一个的发生,而是频繁的、转载 2009-11-15 11:19:00 · 379 阅读 · 0 评论 -
解决java resultSet中数字以getString()读取时被截掉过长小数位的问题(oracle情况下)
最近在运用JDBC的resultSet读取数据库数据时,发现一个奇怪的现象,就是如果在java中调用ResultSet的getString()方法获取小数位过长的数值型数据时,那么该数值型数据会被四舍五入,更有甚者,对于整形的数字,其读出数据为“xxx.”(即数字后面带一个小数点),虽然没查找到关于该情况发生的原因,但是初步估计是ResultSet在读出数据并将数字型数据强制转化为字符串型数据时,原创 2009-11-15 10:19:00 · 1950 阅读 · 0 评论 -
javaMail的简单学习
package test;import java.util.Properties;import javax.mail.Address;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;imp原创 2009-11-08 21:46:00 · 356 阅读 · 0 评论 -
Junit4.x及之前版本版本使用方法比较(断言)
自从junit4加入注解(Annotation)以后,其使用方式相对于以前版本简单了许多,这里将分别从测试用例(TestCase)和测试集(TestSuit)两个方面来说明。 一. TestCase在TestCase方面区别主要有以下两个方面:1. 4.x之前,测试类都必须继承TestCase类才能进行单元测试,而在4.X中则没有了这个限制;2. 4.x之前,测试类中方法必须以原创 2009-11-07 14:12:00 · 2091 阅读 · 0 评论 -
log4j与java.util.logging
jungleford如是说 用惯了VC的人刚接触Java大概很不习惯代码的调试,的确,在M$的大部分IDE都做得相当出色,包括像VJ++这样一直被Java程序员称为是“垃圾”的类库(记得以前在瀚海星云的Java版提有关VJ问题的人是有可能被封的,^_^),它的开发工具在调试上都相当容易。Java也有命令行方式的调试和IDE的调试,但现在的像JB这样的玩意又是个庞然大物,低配置的机器可能就是转载 2009-11-08 18:23:00 · 213 阅读 · 0 评论 -
HashMap与HashCode()、equals()的关系---在HashMap中实现以对象为键(key)
看过HashMap的源代码会发现,HashMap是基于散列函数,以数组和链表的方式实现的。而对于每一个对象,通过其hashCode()方法可为其生成一个整形值(散列码),该整型值被处理后,将会作为数组下标,存放该对象所对应的Entry(存放该对象及其对应值)。equals()方法则是在HashMap中插入值或查询时会使用到。当HashMap中插入值或查询值对应的散列码与数组中的散列码相等原创 2009-11-07 15:39:00 · 2493 阅读 · 0 评论 -
一个用动态代理实现的连接池
import java.sql.*;import java.lang.reflect.*;import java.util.*;import java.io.*;public class DBConnectionPool { private static LinkedList m_notUsedConnection = new LinkedList(); private static Hash转载 2009-10-28 16:56:00 · 126 阅读 · 0 评论 -
java中三种字符串正则匹配方式
匹配方式(其中每个方式对应RegUtil.java中的一个方法)代码:package test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegUtil { /** * 方式一:基本正则表达式实现 * @param str * @param re原创 2009-10-19 13:40:00 · 1877 阅读 · 0 评论 -
使用JAVA通过JXL(JExcel)动态生成Excel文件
上次談過了使用iText產生PDF檔,這次換成來談談使用JExcel來產生EXCEL檔的方法。首先,先到他的SourceForge主頁面download相關的API檔案。http://sourceforge.net/projects/jexcelapi/或http://www.andykhan.com/jexcelapi/download.html當然,他转载 2009-09-23 11:21:00 · 182 阅读 · 0 评论 -
java报表JXL和POI打印设置
JXL的打印设置在jxl.SheetSettings这个类中,我们可以通过方法Sheet(或者WritableSheet)#getSettings()获取。1.页面1.1方向SheetSetting#setOrientation(PageOrientation po);参数: PageOrientation#LANDSCAPE 横向打印PageOrientat转载 2009-09-23 11:20:00 · 127 阅读 · 0 评论 -
JXL: Java Excel API简易教程
使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类转载 2009-09-16 13:39:00 · 130 阅读 · 0 评论 -
java 格式化输出数字
有时我们需要控制输出的数字的格式,如何使用java的类库做到这个呢?也许你不关心格式,但是你需要关心你的程序可以在全世界通用,像下面的这样一个简单的语句是依赖地区的: System.out.println(1234.56);在美国,"." 是小数点,但在其它地方就不一定了。如何处理这个呢?java.text 包中的一些包可以处理这类问题。下面的简单范例使用那些类解决上面提出的问题:原创 2009-09-16 14:09:00 · 138 阅读 · 0 评论 -
高效使用JavaEE ORM框架
虽然Java领域有无数的ORM框架,如Hibernate,iBatis,TopLink,JDO,JPA……但是这些ORM框架基本上大同小异。很多初学者对JDBC的复杂性望而却步,就简单认为使用ORM就会省时省力,结果恰恰相反,任何好的框架都是给专家准备的,任何急功近利试图偷懒的方法往往适得其反。要正确使用ORM还真不是一件简单的事情。本文仅简单整理一下ORM的原理,基本用法,以及如何避免各种陷转载 2009-09-16 09:40:00 · 150 阅读 · 0 评论 -
在struts中实现自己的异常处理及报错机制
中途接手了一个struts项目,在做异常处理时,发现struts自带的异常处理功能没法启用,在苦苦查找了半天的原因后,决定放弃,改由自己实现异常处理。该异常处理方式类似于struts的异常处理机制。 首先,为自己要处理的异常进行分类,并实现相应的异常类,这里展示一个异常类的实现。package gov.sdmp.service.Exception;public class Op原创 2009-08-30 19:19:00 · 206 阅读 · 0 评论 -
Java技巧之双括弧初始化
原文地址:http://bbs.tarena.com.cn/archiver/tid-224874.html Java技巧之双括弧初始化译者序:这是我在JavaIdiom上看到一个Java使用技巧。使用Java这么多年了,也还是头一次看到,还很实用。别看这小技巧好像很简单,但保证你不会在任何一书Java教材上看到,因为它不是一个真正的语法规范,而是一个语法的用法变种。小技转载 2009-08-26 14:05:00 · 446 阅读 · 0 评论 -
远程监控JVM--VisualVM
对于使用命令行远程监控jvm太麻烦?那可以试试sun提供的VisualVM,jdk1.6自带了,可以到bin目录下找到它。 什么也不说了,直接运行此exe,打开界面如下: (图1) (上图1左边的数可以看到,VisualVM分为3类,Local它会自动侦测到,并显示出来) 双击Local下的任一节点,看到右边的变化(转载 2009-11-18 14:06:00 · 100 阅读 · 0 评论 -
java中try-finally,try-catch以及无try语句的性能比较测试
这里以每种方式执行10,100,1000,Integer.MAX_VALUE次所消耗的时间来做为比较的基础。测试代码如下: import org.junit.Test;public class TestOther { /** * 测试try-catch效率 * @param size */ public void testTryCatch(int siz原创 2009-11-21 10:47:00 · 3707 阅读 · 0 评论 -
ESI 动态缓存技术
任何一个Web网站的内容都是在不断更新和变化,但这并不意味这这个网站的内容就是动态内容,事实上,动态的内容是指用户每次点击 相同的链接时取的的内容是由Web服务器应用程序生成的,如常见得ASP,JSP等,与此相对应,静态内容一般就是指由文本、图像和多媒体组成,在用户每 次单击相应链接时基本保持不变。现在解决动态内容缓存的最新技术就是通过ESI技术来设计网站的内容。 ESI技术工作原理转载 2010-04-24 19:22:00 · 156 阅读 · 0 评论 -
面向站长和网站管理员的Web缓存加速指南
原文(英文)地址: http://www.mnot.net/cache_docs/ 版权声明:署名-非商业性使用-禁止演绎 2.0这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。什么转载 2010-04-24 19:42:00 · 334 阅读 · 0 评论 -
Struts2与Struts1的对比
Action 类: Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的转载 2010-03-29 09:30:00 · 103 阅读 · 0 评论 -
RMI入门样例
最近用到一些RMI的东西,大致的看了看《JAVA 2 核心技术 卷II》中关于RMI的部分。这里大致总结了一下(注:代码参考原文中代码)。 由于RMI实现原理很多地方都有介绍,这里不再赘述,就简要的介绍一下RMI实现的步骤,RMI主要分以下几个步骤:1.定义远程接口;2.定义服务器类;3.实现server(服务器端程序入口);4.实现client(客户端程序入口);5.原创 2010-01-10 22:57:00 · 685 阅读 · 1 评论 -
在Struts的Action中慎用可变成员变量!
一直认为,对于每个request,ActionServlet都会相应的实例化一个新的Action,所以有时在Action实现类中定义了成员变量。 这两天,大致看了一下struts的源程序,才发现自己一直以来的这个认识是错误的,对于request请求的Action,其实际并不是线程安全的。因为,对于每个ActionServlet,其下每个Module(可参考相关资料,这里不原创 2010-03-20 13:08:00 · 847 阅读 · 0 评论 -
struts 源码简析
这两天大致看了一下strut的源码,大致了解到了其工作原理及流程。整体感觉该框架主要是利用HttpServletRequest为载体来实现其mvc模式的,该框架真正的核心应该是RequestProcessor。 struts1具体工作流程如下: 1 启动应用时初始化ActionServlet(这里以load-on-startup参数已设置情况下讨论),即从web.原创 2010-03-20 11:59:00 · 424 阅读 · 0 评论 -
java:comp/env使用说明
关于获取数据源的语法,大体有(javax.sql.DataSource) ctx.lookup ("java:comp/env/XXX")和(javax.sql.DataSource) ctx.lookup("XXX")两种写法,好多人以为这两种写法是相同的,以为都是通过JNDI来获取数据源。其实java:comp/env和 JNDI是不同的,java:comp/env 是环境命名上下文(转载 2010-03-08 17:31:00 · 224 阅读 · 0 评论 -
context-param和init-param区别
web.xml里面可以定义两种参数:(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下: context-param> param-name>context/paramparam-name> param-value>avalible during applicationp转载 2010-03-07 20:16:00 · 111 阅读 · 0 评论 -
Java中getResourceAsStream的用法
首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/开头时默认是从此类所在的包下取资源,以’/开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。 2. Class.getClassLoader.getRes转载 2010-03-02 23:39:00 · 4530 阅读 · 1 评论 -
[转]常用排序算法分析与实现(一)(Java版)
在已经排好序的序列中查找待插入的元素的插入位置,并将待插入元素插入到有序列表中的过程。 将数组分成两部分,初始化时,前部分数组为只有第一个元素,用来存储已排序元素,我们这里叫 arr1 ;后部分数组的元素为除第一个元素的所有元素,为待排序或待插入元素,我们这里叫 arr2 。排序时使用二层循环:第一层对 arr2 进行循环,每次取后部分数组(待排序数组)里的第一个元素(我们称为待排序元素转载 2009-12-21 09:22:00 · 340 阅读 · 0 评论 -
自己实现的java常用文件操作集合类(在使用中持续更新中...)
package util;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOExcep原创 2009-12-05 21:58:00 · 717 阅读 · 0 评论 -
Java中压缩与解压--中文文件名乱码解决办法(扩展java.util.zip下的ZipOutputStream包)
java对於文字的编码是以 unicode为基础,因此,若是以ZipInputStream及ZipOutputStream来处理压缩及解压缩的工作,碰到中文档名或路径,那当然是以unicode来处理罗!但是,现在市面上的压缩及解压缩软体,例如winzip,却是不支援unicode的,一碰到档名以unicode编码的档案,它就不处理。 那要如何才能做出让WinRar能够处理的压缩档呢?那就得从修改Z转载 2009-12-05 21:49:00 · 567 阅读 · 0 评论 -
java压缩文件/文件夹的方法(解决中文乱码问题)
最近项目中用到中文文件(名)的文件压缩功能,发现java的基本zip库是不支持中文文件名的。参考了网上的一些解决方法,但大多存在问题,后来发现Ant的apache tools下的zip库是支持中文的。下面就是采用该方式实现的在中文文件名下的文件压缩代码:在给出实现代码之前,有一点需要指出,那就是必须要在工程中引入Ant.jar的包,否则会导致编译无法通过。package test;原创 2009-12-05 20:37:00 · 6330 阅读 · 6 评论 -
Java 程序内存分析
java程序内存主要分为了2个部分,包括 stack segment(栈内存)、heap segment(堆内存)。 在分析Java程序内存分配情况时,我们从下面这个经常被使用的例子开始吧。 下面程序将打印什么呢? Java代码 String s1 = new String("abc"); String s2 = new S转载 2009-11-27 09:27:00 · 219 阅读 · 0 评论 -
遍历一次字符串,选择出在该字符串中出现次数最多的字符及其出现次数(Java) (下有自己评论)
http://blog.youkuaiyun.com/anyoneking/archive/2010/01/19/5213388.aspx原创 2010-01-19 18:24:00 · 154 阅读 · 0 评论 -
Java静态初始化,实例初始化以及构造方法
首先有三个概念需要了解:一.静态初始化:是指执行静态初始化块里面的内容。二.实例初始化:是指执行实例初始化块里面的内容。三.构造方法:一个名称跟类的名称一样的方法,特殊在于不带返回值。对于这三个概念,给出以下程序,方便理解:Java代码 class Book{ public static int booksum=0;//静态变量 static{转载 2009-08-26 14:28:00 · 160 阅读 · 0 评论 -
java删除list中重复元素的方法
方法一:循环元素删除 // 删除ArrayList中重复元素 public static void removeDuplicate(List list) { for ( int i = 0 ; i list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j >转载 2009-08-18 16:30:00 · 135 阅读 · 0 评论 -
Java中List与数组互相转换方法
1.List转换成为数组。(这里的List是实体是ArrayList)调用ArrayList的toArray方法。toArraypublic T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。如转载 2009-08-18 16:27:00 · 103 阅读 · 0 评论 -
利用java操作Excel文件(jxl.jar)
一.读取Excel文件内容java 代码/**读取Excel文件的内容 * @param file 待读取的文件 * @return */ public static String readExcel(File file){ StringBuffer sb = new Str转载 2009-07-25 13:41:00 · 279 阅读 · 0 评论 -
web图形生成组件Cewolf介绍
http://cewolf.sourceforge.net/new/index.html自己使用代码参见Gmail:Cewolf示例Cewolf使用小结Cewolf可以在一个基于Servlet/JSP的Web应用程序内部使用,基于JFreechart的,利用JFreechart的绘制引擎的开源项目。以在Web页中嵌入各种复杂的图形图表(如,直方图、饼图、棒图等等)转载 2009-07-25 13:39:00 · 419 阅读 · 1 评论 -
全面测试嵌套多层For循环的性能和优化方案
直接看代码 view plaincopy to clipboardprint?/** * 全面测试嵌套多层For循环的性能。 * * @author 老紫竹的家(laozizhu.com) * */ public class TestForLoop { public static void main(S转载 2009-07-25 12:06:00 · 211 阅读 · 0 评论 -
jsp(Tomcat)中errorPage不能使用的原因解决方法
在使用tomcat5.0的时候,当使用到自定义的errorPage的时候,可能会出现以下报错:“HTTP 500 内部服务器错误 您要访问的网页有问题,无法显示。” 这其实是一个IE浏览器的bug,因为在错误页面的大小小于1024字节的时候,IE浏览器不能显示这个错误页面,所以只需在这个errorpage中加入注释对整个errorPage加以填充使整个errorPage的大小大于原创 2009-07-25 12:00:00 · 1387 阅读 · 1 评论