
Java基础
文章平均质量分 81
lightersky
这个作者很懒,什么都没留下…
展开
-
一道算法题目,值得一看
算法程序题: 该公司笔试题就1个,要求在10分钟内作完。 题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。下面的代码是网上的一位老兄写的,值得参考一下:import java.util.Iterator;import java.util.TreeSet;原创 2006-10-11 10:53:00 · 1367 阅读 · 1 评论 -
synchronized 笔记
synchronized 笔记[color=blue]1、synchronized实例方法[/color][code]synchronized void method(){ ...}[/code]在功能上,它相当于[code]void method() { synchronized (this) { ... }}[/code]...2007-10-18 11:04:45 · 95 阅读 · 0 评论 -
wait方法是在什么时候结束
[size=10]wait方法是在什么时候结束[color=blue]1、当notify方法执行时[/color] 对obj调用notify方法,线程被唤醒时.[color=blue]2、当notifyAll方法执行时[/color] notifyAll 会把实例的等待区里所有的线程全部唤醒。无论是notify还是notifyALl,线程被唤醒后,还是要重新获取ob...2007-10-23 11:07:47 · 853 阅读 · 1 评论 -
interrupt方法点滴记录
[color=blue]1、sleep方法与interrupt方法[/color] 假如线程A像下面这样,使用线程的sleep()方法暂停着.[code]Thread.sleep(10000);[/code]这时候线程B,会执行下面的语句,要求B放弃等待操作.[code]a.interrupt(); //a是线程A的实例[/code]在这里使用的interrupt方法,是Thr...2007-10-25 21:02:17 · 297 阅读 · 0 评论 -
web应用程序开发须注意私自启动线程的问题
web应用程序开发注意私自启动线程的问题[b][color=blue]我们知道静态变量是ClassLoader级别的,如果Web应用程序停止掉,这些静态变量也会从JVM中清除.但是线程则是JVM级别的,如果用户在Web应用中启动一个线程,这个线程的生命周期并不会和Web应用程序操持同步.[/color]也就是,即使停止了Web应用,这个线程还是活跃的.正是因为这个很隐晦的问题,所以很多有经...2007-11-04 01:25:34 · 121 阅读 · 0 评论 -
关于ClassLoader工作机制小记
类装载器就是寻找类或接口字节文件进行解析并构造JVM内部对象表示的组件.在java中,类装载器把一个类装入JVM中,要经过如下的步骤:[quote]1、装载:查找和导入CLass文件2、链接:执行校验(检查载入Class文件数据的正确性),准备(给类的静态变量分配存储空间)和解析(将符号引用转成直接引用)步骤, 其中解析步骤是可以选择的。3、初始化:对类的静态变量,静态代码块...2007-11-06 23:06:23 · 114 阅读 · 0 评论 -
Java 5.0多线程编程学习资料笔录
对于Java 5.0多线程编程的学习,可以参考一下网上的下面的几篇文章:Java 5.0多线程编程(sun公司的文章,很值得一看)[url]http://gceclub.sun.com.cn/Concurrency/Java5_Multi_Thread.html[/url]还有一篇The Java Tutorials的文章.[url]http://java.sun.com/...2007-11-23 13:33:19 · 97 阅读 · 0 评论 -
体会Observer/Observable模式
在现在的项目中,后台有一块程序感觉用Observer/Observable模式比较好一些,所以和同事就写这样一个很简单的demo出来,记录下来,当作记录吧。里面的用到的API是Doug Lea这一大牛写的concurrent包,已经成为了java1.5的标准库了。但我们只能1.4的JDK,所以用concurrent包来代替实现同样的功能。有一个Pojo类如下:[code]public cl...2007-11-23 19:20:36 · 190 阅读 · 0 评论 -
ThreadLocal浅解
如果有看到spring的一些源码的同学都知道,ThreadLocal对象在spring几乎在每一个重要的类的都存在其身影。到底ThreadLocal是有什么用的呢,让我们来揭开其面纱吧。 [size=11][color=blue]假如某一个对象是非线程安全的,在多线程的环境下,对对象的访问则须采用synchronized或lock/unlock进行线程同步,采用这样的方法限制了并...2007-12-01 13:16:52 · 97 阅读 · 0 评论 -
小心给servlet忽悠了
你真的会写线程安全的servlet吗?很多人认为servlet随便怎样写可以的,反正是线程安全的,没有什么关系的.那我们来看看下面的这一个例子吧.首先要看一下小段的servlet代码,如下:[code]public class Test extends HttpServlet { String name; protected void doPost (HttpS...2007-12-05 18:53:53 · 141 阅读 · 0 评论 -
url传递中文参数笔录
url传递中文参数笔录我们在处理一些遗留系统的时候,通常有可能遇到处理有一些链接是带有中文,而且是传递到另一个页面的,而这另一个页面有可能把拿到的数据放到数据库中去,这时候往往会造成乱码的问题,特别在不同的系统的时候更是如此.假定,我们现在有一个name的参数,能通过"/pages/a.jsp?name=博客"传递到下一个页面,这时候,我们可以这样做:1、首先用JS的e...2007-12-21 19:35:50 · 117 阅读 · 0 评论 -
java动态代理笔录
大家都清楚Spring的AOP方面工作是很优秀,但是其内在的基础的东西,还是有一大部分不太了解的,其AOP大量用了ThreadLocal,这一个在前面已做了介绍了,还有一个比较重要的怎样用动态代理组装成AOP. 说到动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源...2007-12-22 15:14:25 · 92 阅读 · 0 评论 -
来改善你的switch语句
善用多态来改善你的switch语句 下面举的这一个例子,其实和第一章里面的那一个经典实例很像的,一本书绝对是一本好书,非常不错值得推荐的一本书。 举一个例子,是我现在的一个项目里面一位同事写的一小段代码,代码如下,它可以根据不同的操作符进行加减乘除方面的操作,而且这一些操作很有可能发生一些变化。当重构成我的现在每天的面包和水的时候,我看到switch语句,就想能不能...2007-12-26 13:10:36 · 127 阅读 · 0 评论 -
The Contract for Equality[java]
As we Know,The Java API documentation for the equals method in Object provides a list of what defines an equivalence relation between two objects:Reflexivity: [code="java"]x.equals(x)[/code] Sym...2008-01-14 20:43:18 · 128 阅读 · 0 评论 -
从自身体会谈一谈测试
论坛上关于测试的帖子很多,而且有一部分是一些大牛写的,看得也比较有感触.在这一个帖子里面主要谈一下,自己关于测试的一些理解.还是从我目前所处项目组的情况说起吧,整个项目开发的架构是从DAO层-BS层-BIZ层-Action展现层,典型的J2EE分层的结构,从名字中就可以看得出DAO层是只对数据库进行操作的,BS层主要处理大量的业务方法,而BIZ层是干什么用的呢?其实BIZ主要是负责事务管...2008-01-21 13:05:55 · 129 阅读 · 0 评论 -
读源码之旅 java.io包
对于下图,研究了一下常用的InputStream,ByteArrayInputStream,BufferedInputStream,FileIputStream,ObjectInputStream,DataInputStream 以及相对应的OutStream类。[img]http://dl.iteye.com/upload/attachment/199829/9c90b2c0-738a-...原创 2010-01-28 16:11:44 · 186 阅读 · 0 评论 -
该用notify 方法还是notifyAll方法
选择notify的话,因为要唤醒的线程比较少,程序处理速度当然比notifyAll高出一些.但选择notify的时候,若这部分处理得不好,可能会有程序挂掉的危险性。一般来说,选择notifyAll所写出来的程序代码会比选择notify可靠。除非你能确定程序员对程序代码的意义和能力限度一清二楚,否则选择notifyAll应该更稳妥一些。参考:Java多线程设计模式 P34...2007-10-18 10:15:58 · 174 阅读 · 0 评论 -
一道算法题目,值得一看
算法程序题:该公司笔试题就1个,要求在10分钟内作完。题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。下面的代码是网上的一位老兄写的,值得参考一下:上面的程序还可以改进一下的,各位有时间可以想一想. import java.util.Itera...2006-10-11 10:53:00 · 137 阅读 · 0 评论 -
Apache Commons工具集简介[收藏]
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。我选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,我只是做了一个汇总整理。 Commons BeanUtilshttp://jakarta.apache.org/commons/beanutils/index.html说明:针对Bean的一个工具集。由于Bean往往是有一...2006-08-17 01:29:00 · 107 阅读 · 0 评论 -
[转载]彻底明白Java的IO系统
一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型:1.1 以字节为导向的stream以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种类型:1) input s转载 2006-06-05 23:24:00 · 934 阅读 · 0 评论 -
[转载] 无所不能的“蚂蚁”--Ant
说他无所不能,好像有点夸张,但是用过Ant之后,感觉真的是只有想不到没有作不到.Ant,原作者选择他作为软件名字的意思是指"令一个简洁的工具"(Another Neat Tool),而这个真正的名字现在去很少为人所知,但这丝毫不影响他成为最优秀的构建工具. 现在开始我将进入一个"蚂蚁"的世界,通过例子,真真正正去了解他! 文章参考资料可以到http://www.mannin转载 2006-06-05 23:27:00 · 1047 阅读 · 0 评论 -
Hibernate, Java 5 and DAO
在进行Hibernate开发过程中,我们通常会使用DAO模式,有一些通用的数据操作方法,如CRUD,我们通常会将这些方法集中在一个DAO,这样会简便很多。如在AppFuse中,创建了一个DAO接口,包含一些常用的方法,接口如下:public interface DAO {public List getObjec转载 2006-08-04 17:54:00 · 1402 阅读 · 0 评论 -
Apache Commons工具集简介
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。我选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,我只是做了一个汇总整理。 Commons BeanUtilshttp://jakarta.apache.org/commons/beanutils/index.html说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set转载 2006-08-17 01:29:00 · 1307 阅读 · 0 评论 -
在Ubuntu搭建java开发环境
[size=9] 在Ubuntu搭建java开发环境 这里的说的java开发环境,以搭建eclipse3.2.1为主题.1、安装好Ubuntu系统;安装的时候强烈建议连接上网,它会自动下载语言包,自动装上五笔,拼音,还有会默认把firefox浏览器设置为中文. 安装Ubuntu比windows系统一个比较爽地方就是安装可以一边上网浏览,还可以试用一下Ubuntu的功能...2006-11-16 19:12:32 · 113 阅读 · 0 评论 -
实战篇:设计自己的Annotation
Annotation在java的世界正铺天盖地展开,有空写这一篇简单的annotations的文章,算是关于Annotation入门的文章吧,希望能各位们能抛砖,共同学习...... 不讲废话了,实践才是硬道理. [color=blue]第一部分:了解一下java1.5起默认的三个annotation类型:[/color] 一个是@Override:只能用在方法之...2006-11-30 09:27:50 · 122 阅读 · 0 评论 -
利用servlet生成简单的验证码
在web.xml配置:[code] image org.test.web.AuthImage image /authImage [/code]其servlet源代码:[code]public class AuthImage extends HttpServlet{...2006-12-30 15:14:11 · 123 阅读 · 0 评论 -
复习笔记:DAO模式的异常的处理
[size=11]DAO模式的异常的处理 DAO执行的是数据库访问操作,可能抛出底层的SQLException,而底层的通常不应该暴露给客户端,DAO应该负责捕捉这些底层的异常,而不应该把数据库访问殿堂拆散到业务逻辑层,让业务逻辑层处理数据库异常.关于DAO对象的异常处理,通常推荐如下:1、DAO方法应该抛出有意义的业务逻辑异常.2、DAO方法不应该抛出java.lang...2006-12-31 21:01:20 · 195 阅读 · 0 评论 -
非常简单的mysql的BlobTest实例
看一下代码就清楚啦,没有什么废话:[code]package org.mmc.dao.impl;import java.io.*;import java.sql.*;/** *测试操作blob数据 */public class BlobTest{ Connection con=null; /** *往数据库中添加BLOB数据 */ pub...2007-01-15 22:59:37 · 213 阅读 · 0 评论 -
线程间通信一小例学习
wait:告诉线程放弃监视器并进入睡眠状态,直到其他线程进入同一监视器并调用notify为止notify:唤醒同一对象监视器中调用wait的第一个线程,用于类似饭馆有一个空位后通知所有等候就餐顾客中的第一位可以入座的情况.notifyAll:唤醒同一对象监视器中调用wait的所有线程,具有最高优先级的线程首先被唤醒并执行.看下面的步骤:Thread t --> synchron...2007-06-16 13:41:34 · 90 阅读 · 0 评论 -
熟悉一下几个常用的eclipse快捷键
在论坛里看到一个帖子,是Godlikeme在这一个帖子写的[url]http://www.iteye.com/topic/101025[/url]里面写的内容自己本也想写一篇短短关于eclipse快捷键的文章,看到他人的好文章,感觉差不多就不太想写了,引用一下,如下所示:[quote]ctrl+shift+o,ctrl+shift+m刚开始使用eclipse发现得最好用得功...2007-07-16 13:03:01 · 98 阅读 · 0 评论 -
正则表达式[浅例学习]
举下面一段代码:[code]public\\s+void\\s+test\\w*\\s*\\(\\s*\\)\\s*\\{解析的过程如下:匹配文本"public" public匹配一个或多个空白符 \\s+匹配文本"void" void匹配一个或多个空白符 \\s+匹配文本"test" t...2007-07-17 16:19:29 · 87 阅读 · 0 评论 -
[转载]彻底明白Java的IO系统
一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型:1.1 以字节为导向的stream以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种类型:1) input s...2006-06-05 23:24:00 · 89 阅读 · 0 评论 -
有趣而简单的两段代码
假如你想写一个小程序,保证字符串首尾两个字符是一样的,你可以如下实现:[code] public static boolean isPalindrome(String string) { for (int forward = 0, backward = string.length() - 1; forward < string .length(); forward++, bac...2007-09-04 20:40:59 · 753 阅读 · 0 评论 -
解决eclipse3.2和myeclipse5.0m2在打开jsp文件时发生
解决的办法简单,在"开始"-->"运行"---->打入"cmd"进入命令提示行后,再进入eclipse的安装目录,然后输入eclipse -clean即可.2006-08-03 10:53:00 · 94 阅读 · 0 评论 -
读源码之旅 有意思的Integer类
Integer类里面有如下一段代码: [code="java"]final static char[] digits = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' ...原创 2010-02-01 09:33:40 · 172 阅读 · 0 评论