JDK5.0新特性的学习--泛型(下)
没有参数的情况下使用泛型 既然在J2SE 5.0中收集类型已经泛型化,那么,原来的使用这些类型的代码将如何呢?很幸运,他们在JAVA 5中将继续工作,因为你能使用没有参数的泛型。比如,你能继续像原来一样使用List接口,正如下面的例子一样。List stringList1 = new ArrayList();stringList1.add("Java 1.0 - 5.0");stringList1.add("without generics");String s1 = (String) stringList1.get(0);一个没有任何参数的泛型被称为原型(raw type)。它意味着这些为JDK1.4或更早的版本而写的代码将继续在java 5中工作。尽管
JDK5.0新特性的学习--可变长参数
有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法:1. 重载,多重载几个方法,尽可能的满足参数的个数。显然这不是什么好办法。2. 将参数作为一个数组传入。虽然这样我们只需一个方法即可,但是,为了传递这个数组,我们需要先声明一个数组,然后将参数一个一个加到数组中。现在,我们可以使用可变长参数解决这个问题。声明可变长参数方式如下: public void mymethod(String arg1,Object… args)也就是使用…将参数声明成可变长参数。显然,可变长参数必须是最后一个参数。例子:java 代码pu
JDK5.0新特性的学习--枚举
(1)简单的例子 JDK5.0的枚举,正好可以解决上面我们讨论的问题,而且更简洁。还是用上面的代码做示例,只需要将Color类修改如下,Flower、Client都无法更改。 java 代码public enum Color { RED, BLACK, YELLOW, BLUE, WHITE, ORANGE} 接下来我们做更深一步的说明: 所有枚举类都是java.lang.Enum的子类(JDK内核自动将Color隐性继承自Enum) RED...ORANGE都是Color的实例对象 上面的Color枚举类,功能好象还和以前的例子不完全一样,我们再次修改如下。java 代码public enum Color { RED(0), BLACK(1), YELLOW(2
JDK5.0新特性的学习--静态导入
J2SE5.0之前,如果需要使用其他类的静态方法,如java.lang.Math中的方法,需要写以下的代码:double value = Math.log(100)*Math.PI;现在你只需在静态导入,然后就可以直接在代码中使用静态方法和静态字段:import static java.lang.Math.*;…double value = log(100)*PI;看一个详细的例子。我们先建一个包含一个静态方法和一个静态字段的类:java 代码package com.kuaff.jdk5; public class StaticClass { public static String LABEL = '中国古代名剑'; public static void printList() {
JDK5.0新特性的学习--元数据
新建一个注释类型,这个类型指明了一本名著的作者和他的email。java 代码import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface BookAuthor { String name(); String email(); } 使用这个注释为我们的方法加上注解: java 代码import java.lang.annotation.Annotation; public class MetadataShow { @BookAuthor(name='曹雪芹',email='caoxueqin@hongloumeng.books') public void intro
各种数据库连接
1.Oracle8/8i/9i数据库(用thin模式)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; String user="scott"; String password="tiger"; Connection conn= DriverManager.getConnection(url,user,password);2.Sql Server7.0/2000数据库Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
struts多模块开发
在基于struts的WEB应用的开发中,使用多模块开发是十分必要的,总结了一下如下:Struts 的配置文件struts-config.xml 是Struts 框架最重要的资源之一,并且是需要频繁改动的。如果并行开发的各个团队都是用这一个配置文件,势必造成访问冲突。Strus 框架的模块化机制就是专门应对这种情况的。Struts 从1.1 版本开始增加了模块化支持,并且一直在强化对模块化的支持。不同的应用模块可以拥有各自的struts-config 配置文件、消息资源、Validator 框架配置文件。不同的模块可以协同开发,互不影响。Struts 应用配置为多模块应用,需要如下三个步
struts实现下载篇
java 代码 public class DownLoadAction extends Action { // --------------------------------------------------------- Instance // Variables BufferedInputStream bis = null; BufferedOutputStream bos = null; // --------------------------------------------------------- Methods /** * Method execute * * @param mapping * @param form * @param request * @param response
用java在IE中打开Excel
闲来无事做的一个小例子:java 代码public class TestOpenExcel extends HttpServlet { private static final String url = "D:/test.xls"; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /** * setContentType设置MIME类型,Acrobat * PDF文件为"application/pdf",WORD文件为:"application/msword", * EXCEL文件为:"application/vnd.ms-excel"。 */ response
struts实现上传篇
做了一个上传下载的程序,还有很多地方需要改进的地方,还是先贴上来吧,以后在用到的时候做个参照:上传:用到struts提供的FormFile类,以及html:file标签.在设计上传页面的时候有多个上传浏览框.我这回用了一个土方法在页面上进行了循环赋值,所以在ActionForm中FormFile定义成数组,不知道还有没有更好的方法.java 代码public class UploadAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
spring事务相关
PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS -- 支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY -- 支持当前事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW -- 新建事务,如果当前存在事务,把当前事务挂起。 PROPAGATION_NOT_SUPPORTED -- 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 PROPAGATION_NEVER -- 以非事务方式执行,如果当前存在事务,则抛出异常。 PROPAGATION_NESTED -- 如果当前存
Hibernate多对多示例
假設現在有User與Server兩個類別,一個User可以被授權使用多台Server,而在Server上也記錄授權使用它的使用者,就User與Server兩者而言即使多對多的關係。 在程式設計時,基本上是不建議直接在User與Server之間建立多對多關係,這會使得User與Server相互依賴,通常會透過一個中介類別來維護兩者之間的多對多關係,避免兩者的相互依賴。 如果一定要直接建立User與Server之間的多對多關係,Hibernate也是支援的,基本上只要您瞭解之前介紹的幾個實體映射,建立多對多關聯在配置上並不困難。 先看一下我們設計的User與Server類別: java 代码
Hibernate配置连接SQL SERVER2000
今天做了一个用hibernate连接sql server2000数据库的程序,遇到了一些问题,在经过一个多小时的调试下终于解决了.将解决问题方法在这里记录一下备以后查阅:问题出现的原因就是用微软提供的jar包.在hibernate.cfg.xml文件中也是按照该包的配置方法进行配置,结果总是出错,具体的出错信息就是找不到jar包里的方法.于是把错误消息到网上查找,在一个帖子上发现最好不要用微软提供的jar包,用jtds.jar.于是就上网查找jtds.jar的下载网址,找到后下载部署的工程中.接下来就是按照jtds.jar的文件方式进行配置hibernate.cfg.xml文件了.配置如下:xml 代码
oracle数据还原与备份
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过net8 assistant中本地-->服务命名 添加正确的服务命名 其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。你同样可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能你可以构建俩个相同的数据库,一个用来测试
Eclipse快捷键指南
编辑作用域功能快捷键全局查找并替换Ctrl+F文本编辑器查找上一个Ctrl+Shift+K文本编辑器查找下一个Ctrl+K全局撤销Ctrl+Z全局复制Ctrl+C全局恢复上一个选择Alt+Shift+↓全局剪切Ctrl+X全局快速修正Ctrl1+1全局内容辅助Alt+/全局全部选中Ctrl+A全局删除Delete全局上下文信息Alt+?Alt+Shift+?Ctrl+Shift+SpaceJava编辑器显示工具提示描述F2Java编辑器选择封装元素Alt+Shift+↑Java编辑器选择上一个元素Alt+Shift+←Java编辑器选择下一个元素Alt+Shift+→文本编辑器增量查找Ctrl+J文本编辑器增量逆向查找Ctrl+Shift+J全局粘贴Ctrl+V全局重做C
经典英文对白
送你几句话,我也是在BBS这里看到的 I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 No man or woman is worth your tears, and the one who is, won‘t make you cry. 没有人值得你流泪,值得让你这么做的人不会让你哭泣。 The worst way to miss someone is to be sitting right beside them knowing you can‘t have them. 失去某人,最糟糕的莫过于,他(她)近在身旁,却犹如远在天边。 Never frown, even wh
使用MAVEN进行工程自动化构建
最近学习了一下maven将学习的一些心得写下来:1 什么是maven? 他能为我们做什么? Maven是一个构建工具, 使用一定的目录组织结构来简化和一致项目构建。它把编译、打包、测试、发布等开发过程中的不同环节有机的串联了起来。2 如何安装maven? (包括maven插件)(1)首先在http://maven.apache.org上下载maven-2.0.4-bin.zip文件,例如将该文件解压缩到c: maven-2.0.4.(当前版本)(2)将c:maven-2.0.4in目录加入到环境变量%path%中。(3)运行mvn –version确认是否安装成功。显示Maven version 2.0.4则表示安装成功。2.1 maven插件的安