
Java技术
doymm2008
这个作者很懒,什么都没留下…
展开
-
Java开发中的23种设计模式详解
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2013-10-28 09:22:54 · 165238 阅读 · 37 评论 -
String s = new String("abc");创建了几个String对象
String s = new String("abc");创建了几个String对象? 引用变量与对象的区别;字符串文字"abc"是一个String对象; 文字池(pool of literal strings)和堆(heap)中的字符串对象。一、引用变量与对象:除了一些早期的Java书籍和现在的垃圾书籍,人们都可以从中比较清楚地学习到两者的区别。A aa;这个语句声明转载 2010-04-07 21:43:00 · 2975 阅读 · 2 评论 -
Java中几个常用设计模式
1.单例模式(有的书上说叫单态模式其实都一样)该模式主要目的是使内存中保持1个对象。看下面的例子:package org.sp.singleton;//方法一public class Singleton {//将自身的实例对象设置为一个属性,并加上Static和final修饰符private static final Singleton instance = new Singleton转载 2010-04-08 20:05:00 · 84401 阅读 · 3 评论 -
Java堆和栈的区别
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运转载 2010-04-07 20:27:00 · 827 阅读 · 0 评论 -
数据公钥加密和认证中的私钥公钥
加密和认证 首先我们需要区分加密和认证这两个基本概念。 加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。 公钥和私钥 其次我们还要了解公钥和私钥原创 2010-04-18 17:05:00 · 822 阅读 · 0 评论 -
单点登录(SSO)服务
单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单点登录(SSO)的全面分析,还并且讨论了如何将现有转载 2010-04-18 15:07:00 · 998 阅读 · 0 评论 -
Java密码加密
Java代码 <a title="复制代码" onclick="function onclick(){dp.sh.Toolbar.CopyToClipboard(this);return false;}" href="http://sunnylocus.javaeye.com/blog/228630#">package com.sunnylocus.util;转载 2010-04-16 17:01:00 · 1517 阅读 · 1 评论 -
JSP中的page,request,session,application
application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。 session是针对单个客户和服务器进行会话的 aaplication是服务器所有客户和服务器会话的原创 2010-04-18 11:55:00 · 745 阅读 · 0 评论 -
J2EE实现计划任务
第一步:创建一个任务监听类,实现ServletContextListener 接口import java.util.Calendar;import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.原创 2010-03-30 14:47:00 · 1134 阅读 · 0 评论 -
java 多叉树遍历
java 多叉树的遍历 写了二叉的遍历之后,发现多叉也一样的,而且java提供的容器类很方便,手工构造了一颗多叉树。然后再递归遍历。类似于中序遍历吧。 树的节点类: Java代码 <a title="复制代码" onclick="function onclick(){dp.sh.Toolbar.CopyToClipboard(this);return false;}"转载 2010-03-23 14:54:00 · 7042 阅读 · 2 评论 -
经典排序算法(Java版)
经典排序算法(Java版)1、冒泡排序 Bubble Sort最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然转载 2010-03-22 13:29:00 · 762 阅读 · 0 评论 -
jsp-SmartUpload上传
㈠ 表单要求 对于上传文件的FORM表单,有两个要求: 1、METHOD应用POST,即METHOD="POST"。 2、增加属性:ENCTYPE="multipart/form-data" 下面是一个用于上传文件的FORM表单的例子: ACTION="/jspSmartUpload/upload.jsp"> ㈡ 上传的例子 1、上传页面upload.html 本页面提供表单,让用户选择要上转载 2009-12-15 15:18:00 · 542 阅读 · 0 评论 -
oracle+jsp中blob类型存储大文本问题解决方法
oracle+jsp中blob类型存储大文本问题解决方法oracle 存储大文本一直是一个棘手的问题。一、存数据库://定义变量java.sql.Connection conn; //数据库连接对象String sql;long id;ResultSet rs;Statement stmt,stmt1;j转载 2009-12-15 15:03:00 · 858 阅读 · 0 评论 -
用JSP下载word文件
%@page import="java.util.*"%>%@page import="java.io.*"%>%@page import="java.net.*"%>String filename = "";if (request.getParameter("file") != null) {filename = request.getParameter("file");}response.se转载 2009-12-15 15:19:00 · 787 阅读 · 0 评论 -
jsp上传头像以及生成缩略图
SmartUpload mySmartUpload =new SmartUpload();long file_size_max=4000000;String fileName2="",ext="",testvar="";String url="uploadfile/images/"; //应保证在根目录中有此目录的存在//初始化mySmartUpload.initialize(转载 2009-12-15 14:25:00 · 1825 阅读 · 0 评论 -
Oracle 数据库存储图片
添加图片 添加图片 图像ID: 选择图像: Class.forName("oracle.jdbc.driver.O转载 2009-12-15 14:05:00 · 824 阅读 · 0 评论 -
jsp分页(oracle+jsp+apache)
一 前提 希望最新的纪录在开头给你的表建立查询: 表:mytable 查询:create or replace view as mytable_view from mytable order by id desc 其中,最好使用序列号create sequence mytable_sequence 来自动增加你的纪录id号 二 源程序 Class.forName("oracle.jdbc.转载 2010-04-26 21:49:00 · 727 阅读 · 0 评论 -
什么是阻塞式和非阻塞io流?
<br />Java中的阻塞和非阻塞IO包各自的优劣思考 <br />NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。 <br /><br />反应器(Reactor):用于事件多路分离和分派的体系结构模式 <br /><br />通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞 与非阻塞 。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待 状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如转载 2010-06-25 14:41:00 · 1449 阅读 · 0 评论 -
Java流操作
<br />java流操作<br /><br /> <br /><br />Java的流操作分为字节流和字符流两种。<br />1、 字节流<br />所有的读操作都继承自一个公共超类java.io.InputStream类。<br />所有的写操作都继承自一个公共超类java.io.OutputStream类。<br />InputStream和OutputStream都是抽象类。<br />InputStream有6个低级输入流:<br />低级流<br /> 流的用途<br /> <br />Byt转载 2010-07-13 15:45:00 · 776 阅读 · 0 评论 -
Struts接收list数据
在struts1中,没有struts2封装得好,对简单数据类型没有什么不一样,但是对于一个对象,列表等要麻烦一点,不过只要知道struts1底层是怎么对数据进行赋值的话,操作起来也比较简单。 首先说明一下在struts1中,当点击submit后,把表单中的数据全部提交,在后台是用一个Map来接收表单中的数据,struts对ActionForm中的数据赋值也是从这个map里转载 2013-10-16 16:58:43 · 5816 阅读 · 0 评论 -
java 序列化详解
Java 串行化技术可以使你将一个对象的状态写入一个Byte流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一种转载 2013-07-27 12:54:00 · 3068 阅读 · 0 评论 -
EHCache使用简介
EHCache 是一个纯java的,在Hibernate2.1充当可插入的的在进程中的缓存,它具有以下缓存,最小的依赖性,全面的文特性:快速,简单,丰富的文档和测试用例。 官方网站 http://ehcache.sourceforge.net/ ------------------------------------使用简介-------------------------转载 2012-11-05 16:38:24 · 2699 阅读 · 0 评论 -
List的交集并集差集
1) 并集public List removeDuplicate(List list1, List list2){ List list = new ArrayList(); list.addAll(list1); list.addAll(list2); HashSet hs = new HashSet(list); list.clear();转载 2012-10-22 14:59:18 · 2854 阅读 · 0 评论 -
Lucene3.5 之 索引删除和更新
package com.ethan.index; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apach转载 2012-07-25 13:49:51 · 3505 阅读 · 0 评论 -
Lucene的使用
如果你想快速查询你磁盘上文件,或查询邮件、Web页面,甚至查询存于数据库的数据,你都可以借助于Lucene来完成。但是要完成查询就必须先建立索引。首先从Lucene API说起:1、 Lucene API(核心操作类)IndexWriter创建和维护索引(向原索引中添加新Document,设置合并策略、优化等)FSDirectory最主要用来存储索引转载 2012-08-02 13:29:43 · 3577 阅读 · 0 评论 -
[学习笔记]基于注解的spring3.0.x MVC学习笔记(八)
原本打算将@ModelAttribute跟@SessionAttributes一起写的发现有些例子不可以重复使用,所以决定再开一篇文章写顾名思义SessionAttributes就是保存session的,SessionAttributes使用方法很简单,@SessionAttributes 允许指定多个属性。你可以通过字符串数组的方式指定多个属性,如 @SessionAttributes({“转载 2012-04-18 16:33:31 · 1037 阅读 · 0 评论 -
Tomcat乱码总结
1.在JSP页面中pageEncoding和charset和含义是不同的。pageEncoding是指页面的编码格式(请记住!,十分重要~,与显 示无关),也就是说无论你JSP里的pageEncoding采用什么方式,如果出现中文乱码,原因不在于pageEncoding的所指定的编码方式不 对,而在于charset的属性不对。charset是负责JSP页面中的字符按什么编码方式显示。pageEnc转载 2012-04-06 13:07:34 · 979 阅读 · 0 评论 -
J2EE操作Oracle的clob类型字段
Oracle中,Varchar2支持的最大字节数为4KB,所以对于某些长字符串的处理,我们需要用CLOB类型的字段,CLOB字段最大支持4GB。还有其他几种类型: blob:二进制,如果exe,zip clob:单字节码,比如一般的文本文件. nlob:多字节转载 2011-09-21 09:47:48 · 996 阅读 · 0 评论 -
Java对数据库的字符串字段进行压缩保存
核心提示:数据字段一般都是保存原文的,一来方便在数据库修改和维护,而来有一些查询要用到它。但是在有些时候,我们无需保存原文了,比如在论坛,博客等数据里的内容字段,一般使用Clob类型,其很少参与搜索,而且就算要全文检索,我们也不推荐使用数据库的like 等, 数转载 2011-09-21 09:42:28 · 4634 阅读 · 0 评论 -
Socket 应用
Socket应用Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。在Java中,有专门的Socket类来处理用户的请求和响应。利用Socket类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在Java中如何利用Socket进行网络编程。 在Java中Socket可以理解为客户端或者服务器端的一个特殊的对象转载 2011-07-02 11:55:32 · 1467 阅读 · 0 评论 -
encodeURI为什么要用两次
一般情况下, 发送 encodeURIComponent(parmeName)+"="+encodeURIComponent(parmeValue);接收时, 直接 String paramValue = request.getParameter(paramName); // 容器自动解码.我们知道 encodeURIComponent 使用的是 UTF-8 编码规则来编的.如果 reques转载 2011-06-27 14:43:00 · 8840 阅读 · 3 评论 -
jsp上传文件到数据库和从数据库下载文件
用了commons-fileupload-1.2.jar和commons-io-1.3.2.jar这两个包。save.jsp保存上传文件文件列表:文件名大小// 连接字String SQL_CON_DRIVER = "com.mysql.jdbc.Driver";String SQL_CON_USERNAME = "root";String SQL_CON_PASSWO转载 2010-05-28 14:59:00 · 9396 阅读 · 1 评论 -
加载jar包的问题
如果jar包有问题,或者jar版本有问题,这时候应该从构建路径中删除该jar包,然后不要忘记同时也将文件夹下的jar包删除掉,因为有可能将此jar包发布到服务器下,仍然查找该jar包下的类原创 2010-05-24 14:15:00 · 849 阅读 · 0 评论 -
Proxy代理模式
Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。如下图: 比如说C和A不在一个服务器上,A要频转载 2010-05-19 22:10:00 · 587 阅读 · 0 评论 -
JDBC与JNDI的区别
程序员开发时,知道要开发访问MySQL数据库的应用,于是将一个对 MySQL JDBC 驱动程序类的引用进行了编码,并通过使用适当的 JDBC URL 连接到数据库。 就像以下代码这样: Connection conn=null;try ...{Class.forName("com.mysql.jdbc.Driver", true, Thread.currentThr转载 2009-12-16 20:52:00 · 838 阅读 · 0 评论 -
awt,swing和applet
简单点说awt,swing都可以用来构建JAVA应用程序,他们完全可以独立于浏览器运行,而APPLET是内嵌于浏览器执行的(当然,也可以用appletviewer进行测试和运行),可以象应用程序一样在APPLET中使用awt,swing的组件。一般用户界面简单的话,就用AWT,如果比较复杂,就用SWING,SWING在AWT的基础上添加了不少功能强大的组件,又比AWT美观,推荐使用。转载 2009-10-26 16:55:00 · 2064 阅读 · 0 评论 -
【转】ArrayList深拷贝的一种实现方法
浅拷贝:被复制对象的任何变量都含有和原来的对象相同的值,而任何的对其他对象的引用仍然指向原来的对象。对拷贝后的引用的修改,还能影响原来的对象。深拷贝:把要复制的对象所引用的对象都复制了一遍,对现在对象的修改不会影响原有的对象。如果大家还不理解,在网上看到一个人的比喻很有意思:就好比一个爸爸一个儿子 浅拷贝:你克隆一下,只得到一个爸爸,这是浅 深拷贝:你克隆一下,既得到了爸爸,又得到了儿转载 2009-10-23 09:54:00 · 831 阅读 · 1 评论 -
使用Java操作JSON字符串对象
在Java中解析与构造JSON[转]在www.json.org上公布了很多Java下的json解析工具,其中org.json和json-lib比较简单,两者使用上差不多。下面两段源代码是分别使用这两个工具解析和构造JSON的演示程序。 http://nchc.dl.sourceforge.net/sourceforge/json-lib/json-lib-2.2.1-jdk15转载 2009-09-14 13:18:00 · 8243 阅读 · 0 评论 -
****spring装配List和数组****
共有以下几种集合的装配: ****装配List和数组**** ****装配List和数组****somethingotherThing****装配Set****somethingotherThing****装配Map****value1****装配Properties****value1value2原创 2009-09-07 09:07:00 · 1511 阅读 · 0 评论 -
Servlet容器工作原理
本文介绍servlet 容器的基本原理。现有两个Servlet容器,第一个很简单,第二个则是根据第一个写出。为了使第一个容器尽量简单,所以没有做得很完整。复杂一些的 servlet 容器 (包括 TOMCAT 4 和 5) 可以参考其他资料。 两个servlet容器都处理简单的servlet及staticResource。您可以使用 webroot/ 目录下的 PrimitiveServle转载 2009-08-27 18:35:00 · 803 阅读 · 0 评论