Java
文章平均质量分 77
wl_ldy
这个作者很懒,什么都没留下…
展开
-
基于struts 的实现文件的下载和删除功能
第一步:先建立文件下载和删除的文件,代码如下:(FileDownLoad.jsp)文件管理 文件名 操作 <% //要下载的文件的路径 File dir=new File("E原创 2009-11-11 22:04:00 · 3217 阅读 · 1 评论 -
Java 性能优化
<br />1.慎用异常。<br /> 异常对性能不利。抛出异常首先要创建一个新的对象。Throwable接口的构造函数调用名为fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,VM就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。<br />2.不要重复初始化变量。<br /> 默认情况下,调用类的构造函数时, Java会把变量初始化成确定的值转载 2010-10-15 17:46:00 · 1103 阅读 · 0 评论 -
ThreadLocal与Synchronized的用法
<br />一.ThreadLocal的用法<br />ThreadLocal的实现:<br />package com.sodao.lucene; import java.util.Random; public class ThreadLocalTest implements Runnable{ ThreadLocal<Studen> studenThreadLocal = new ThreadLocal<Studen>();转载 2010-10-18 14:53:00 · 2702 阅读 · 0 评论 -
Struts2源码阅读(五)_FilterDispatcher核心控制器
<br />Dispatcher已经在之前讲过,这就好办了。FilterDispatcher是Struts2的核心控制器,首先看一下init()方法。<br />public void init(FilterConfig filterConfig) throws ServletException { try { this.filterConfig = filterConfig; initLogging(); //创建dispa转载 2010-10-18 15:51:00 · 1618 阅读 · 0 评论 -
Struts2源码阅读(四)_Dispatcher&ConfigurationProvider续
<br />接下来第三步:init_LegacyStrutsProperties()<br />调用的是调用的是LegacyPropertiesConfigurationProvider<br />通过比较前面DefaultPropertiesProvider与调用的是LegacyPropertiesConfigurationProvider.<br />发现DefaultPropertiesProvider继承自后者,但重写了register()方法,主要是生成PropertiesSetting的不同,前转载 2010-10-18 15:46:00 · 1694 阅读 · 0 评论 -
Servlet的生命周期
解读Servlet生命周期Servlet的生命周期是由servlet的容器来控制的。分为3个阶段:初始化阶段、运行阶段、销毁阶段。初始化阶段:初始化阶段步骤:A: Servlet容器加载servlet类,把它的. Class文件中的数据读到内存中。B: Servlet容器创建servletConfig对象。servletConfig对象包含了servlet的初始化配置信息。转载 2012-02-04 13:19:22 · 1010 阅读 · 0 评论 -
简单工厂,工厂方法和抽象工厂的区别总结
最近这三个模式有点搞混了,而且网上也有类似情况。总结一下。简单工厂:严格说并不是一个设计模式。简单工厂没有抽象类,只有一个具体工厂类如MyFactory,然后MyFactory里面有个工厂方法CreateProduct返回一个基类产品,具体返回什么具体实例通过传入参数然后用case判断。用手机生产做个例子:比如Nokia简单工厂就是只有NokiaFactory工厂类,工厂方法就是Cre转载 2012-02-09 23:13:00 · 1372 阅读 · 0 评论 -
Struts1的体系结构分析
一、Struts的体系结构如图所示,Struts 是MVC的一种实现,其体系结构包括模型、视图和控制器三部分。 下面让我们从MVC的角度来看看struts的体系结构与工作原理: 1. Model部分 Struts 的Model部分由 ActionFormBean和JavaBean组成。其中ActionForm用于封装用户请求参数,所有转载 2012-02-16 21:17:54 · 2119 阅读 · 0 评论 -
排序算法思想及Java实现
import java.util.Arrays;/** *@author 255166 *@version Feb 27, 2012 10:39:00 AM */public class SortAlgorithm { /** * 对数组的i,j位置的内容交换 * @param inputArray * @param i * @param j * @return原创 2012-03-06 13:49:09 · 657 阅读 · 0 评论 -
运行时异常与一般异常有何异同
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。 Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Exception:表示可恢复的例外,这是可捕捉到的。Java提供了两类主要的异常:runtime exc转载 2012-03-10 20:36:36 · 687 阅读 · 0 评论 -
Java 中Set接口及原理
http://blog.csdn.net/tsyj810883979/article/details/6892575转载 2012-03-19 14:37:36 · 748 阅读 · 0 评论 -
JAVA内部类的作用、方法、使用
http://blog.sina.com.cn/s/blog_76d8e54d0100u6t0.htmlhttp://blog.sina.com.cn/s/blog_56898c310100a3i3.htmlhttp://www.blogjava.net/os586/archive/2006/08/01/61121.htmlhttp://www.cnblogs.com/santry/a转载 2012-03-19 23:38:56 · 1035 阅读 · 0 评论 -
JVM调优总结-基本垃圾回收算法
可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep):此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的转载 2010-10-29 15:26:00 · 993 阅读 · 0 评论 -
Java23种设计模式
http://wenku.baidu.com/view/aa15db3e5727a5e9856a615e.htmlhttp://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.htmlhttp://www.cnblogs.com/BoyXiao/category/236314.html转载 2012-04-03 17:30:38 · 649 阅读 · 0 评论 -
"=="和equals方法的区别
<br />1、<br />==操作符专门用来比较变量的值是否相等。比较好理解的一点是:<br />int a=10;<br />int b=10;<br />则a==b将是true。<br />但不好理解的地方是:<br />String a=new String("foo");<br />String b=new String("foo");<br />则a==b将返回false。<br /><br />对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象转载 2010-08-04 21:35:00 · 757 阅读 · 0 评论 -
HashMap与HashTable的区别、HashMap与HashSet的关系
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 1.HashTable的方法是同步的,在方法的前面都有synchronized来同步,HashMap未经同步,所以在多线程场合要手动同步 HashMap这个区别就像Vector和ArrayList一样。2.HashTable不允许null值(key和value都不可以)转载 2010-10-14 21:59:00 · 17465 阅读 · 0 评论 -
JAVA中Stack和Heap的区别
<br />1.Java中对象都是分配在heap(堆)中。从heap中分配内存所消耗的时间远远大于从stack产生存储空间所需的时间。<br /> <br />(1)每个应用程序运行时,都有属于自己的一段内存空间,用于存放临时变量、参数传递、函数调用时的PC值的保存。这叫stack。 <br />(2)所有的应用可以从一个系统共用的空间中申请供自己使用的内存,这个共用的空间叫heap。 <br />(3)stack中的对象或变量只要定义好就可使用了,应用程序结束时会自动释放。 <br />(4)而要使用he转载 2010-10-12 13:45:00 · 40516 阅读 · 13 评论 -
JSP/Java 生成柱状图、饼状图...等复杂的图形 基于jfreechart
最近在csdn上面,乱转时看到很有用的东西,利用jfreechart来实现很多复杂图形的效果,转载的网址:http://www.java2000.net/f30 下面是几个简单的例子:<% out.clearBuffer(); response.setContentType("image/jpeg"); DefaultCategoryDataset转载 2009-11-11 17:30:00 · 2812 阅读 · 0 评论 -
基于struts 的FormFile实现文件的上传功能
第一步:首先建个上传文件的简单的界面,代码如下:文件名(FileUpload.jsp)文件上传<!--function apply(){ var f=document.getElementById("form1"); var file=document.getElementById("file"); if(file.value!=){原创 2009-11-11 20:32:00 · 8127 阅读 · 1 评论 -
Collection 和 Collections;Array与Arrays的区别
Collection 和 Collections的区别。<br />Collection是个java.util下的接口,它是各种集合结构的父接口。继承与他的接口主要有Set 和List.<br />Collections是个java.util下的专用静态类,它包含有各种有关集合操作的静态方法。提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。Array与Arrays的区别。<br />1.数组类Array,是Java中最基本的一个存储结构。提供了动态创建和访问 Java 数组的转载 2010-08-04 10:11:00 · 1383 阅读 · 1 评论 -
try、catch、finally、return的执行顺序
public class JVMTest {public static void main(String[] args){System.out.println("aa:" + aa());}public static int aa(){int a = 1;int b = 10;try{System.out.println("abc");return a;}finally{a = 2;System.out.println("a: "+ a);}}}运行结转载 2010-08-04 17:54:00 · 3430 阅读 · 0 评论 -
抽象方法不能是static或native或synchroniz
1、abstract是抽象的,指的是方法只有声明而没有实现,他的实现要放入声明该类的子类中实现。<br />2、static是静态的,是一种属于类而不属于对象的方法或者属性,而我们知道,类其实也是一个对象,他是在class文件加载到虚拟机以后就会产生的对象,通常来说它是单例的,就是整个虚拟机中只有一个这样的类对象(当然,如果用新的类加载器也会生成新的类的对象)。<br /><br />3、synchronized 是同步,是一种相对线程的锁。<br /><br />4、native本地方法,这种转载 2010-08-04 20:58:00 · 7437 阅读 · 1 评论 -
Collection List Set Map 区别记忆
<br />Collection List Set Map 区别记忆这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否允许元素重复否Collection否是List是是SetAbstractSet否否HashSetTreeSet是(用二叉树排序)MapAbstractMap否使用key-value来映射和存储数据,Key必须惟一,value可以重复HashMapTreeMap是(用二叉树排序) http:转载 2010-08-04 21:10:00 · 1191 阅读 · 0 评论 -
sleep和wait有什么区别
<br />第一种解释:<br />功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步锁. <br /> <br /> 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()直接唤起.<br /> <br />第二种解释:<br />sleep是Thread类的静态方法。sleep的作用是让线程休眠制定的时间转载 2010-08-04 21:40:00 · 1002 阅读 · 0 评论 -
struts2的请求处理过程源码分析
<br />1. struts2分发的请求处理过程:<br />1.1. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter()方法中:<br />1.1.1. 设置编码和本地化信息<br />1.1.2. 创建ActionContext对象<br />1.1.3. 分配当前线程的分发器<br />1.1.4. 将request对象进行封装<br />1.1.5. 获取ActionMapping对象,转载 2010-08-20 11:26:00 · 1332 阅读 · 1 评论 -
用java调用oracle存储过程总结
<br />1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。<br />2、什么时候需要用存储过程<br /> 如果服务器定义了存储过程,应当根据需要决定是否要用存储过程。存储过程通常是一些经常要执行的任务,这些任务往往是针对大量的记录而进行的。在服务器上执转载 2010-10-03 20:57:00 · 547 阅读 · 0 评论 -
JDBC与SQL SERVER 连接问题
常见的错误为: The Network Adapter could not establish the connection 1 检查SQL SERVER 是否允许远程访问.具体步骤: 1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库 2)在相应"数据库"上单击右键,选择"属性"3)选择"连接"选项卡,检查"远程服务器连接"下,RPC服务是否选择. 2 使用telnet IP地址 1433,系统是否提示连接转载 2010-10-02 19:57:00 · 924 阅读 · 0 评论 -
Java分页小结
所有的分页效果和下面的截图类似:一:MySql的分页mysql的分页比较简单,只需要limit offset,length就可以获取数据了,是从第offset条记录开始查找length条记录。1)首先在MySql中创建了user表create table user (id int primary key auto_increment, username varchar(50), password varchar(50)) 2)与数据库连接的操作类:原创 2010-10-03 21:22:00 · 2085 阅读 · 0 评论 -
struts 的digester类解析xml文件
学习struts 的digester类解析xml文件 1、digester的简介 digester是struts的一个工具,用来解析struts的配置文件struts-config.xml,将xml的元素转换成java的对象。Digester是通过调用预定义的规则来操作xml元素,将xml的元素转换为java对象。 Digester底层采用SAX解析xml文件。首先识别出特定xml元素(实际细分为begin,body,end,finish四个步骤)后,执行特定的动作。diges转载 2010-10-07 20:20:00 · 1490 阅读 · 0 评论 -
myeclipse自动提示信息设置
Eclipse ,MyEclipse代码里面的代码提示功能默认的一般是点“.”,一般是有了点“.”,才会有代码提示。 原理:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.” 改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发代码提 示功能了。(具体后面有说,放心) 增强Eclipse ,MyEclipse 的代码提示功能,具体怎么样来配置?下面开始转载 2010-10-06 16:52:00 · 976 阅读 · 0 评论 -
线程安全知识
一.什么是线程安全?如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。 线程安全问题都是由全局变量及静态变量引起的。 若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行原创 2010-10-12 15:24:00 · 1292 阅读 · 0 评论 -
内部类
http://blog.csdn.net/caoyinghui1986/archive/2008/05/22/2468180.aspxhttp://blog.csdn.net/caoyinghui1986/archive/2008/05/24/2476162.aspx原创 2010-10-12 16:02:00 · 821 阅读 · 0 评论 -
HashMap遍历及源码解析
一:遍历HashMap的两种方法:1、使用EntrySet遍历HashMap Map map = new HashMap();for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { Map.Entry entry = (Map.Entry) iter.next(); Object key =转载 2010-10-13 23:34:00 · 3287 阅读 · 0 评论