JDK1.5.0 新特性

合集下载

8-jav_1.5新特新

8-jav_1.5新特新
1、jdk1.5出现的新特性---->增强for循环
增强for循环的作用: 简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。)
增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。
增强for循环的格式:
for(数据类型 变量名 :遍历的目标){
//集合: 集合是可以存储任意对象类型数据的容器。
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
//自动装箱: 自动把java的基本数据类型数据转换成对象类型数据。
3. 普通for循环与增强for循环的区别:普通for循环可以没有变量的目标,而增强for循环一定要有变量的目标。
//注意: Map集合没有实现Iterable接口,所以map集合不能直接使用增强for循环,如果需要使用增强for循环需要借助于Collection的集合。
2、dk1.5新特性之------->可变参数
int temp = 10; //基本数据类型
Integer b =temp; //a存储的值赋予给b变量。 //自动拆箱: 把引用类型的数据转换成基本类型的数据
4、jdk1.5新特性之-----枚举
问题:某些方法所接收的数据必须是在固定范围之内的,
解决方案: 这时候我们的解决方案就是自定义一个类,然后是私有化构造函数,在自定义类中创建本类的对象对外使用。
System.out.println("把整数转换成对应 的字符串:"+Integer.toString(i));

Java枚举(enum)详解

Java枚举(enum)详解

Java枚举(enum)详解Java 枚举知识点概念enum的全称为 enumeration,是 JDK 1.5 中引⼊的新特性。

在Java中,被enum关键字修饰的类型就是枚举类型。

形式如下:enum Color { RED, GREEN, BLUE }如果枚举不添加任何⽅法,枚举值默认为从0开始的有序数值。

以 Color 枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2。

枚举的好处:可以将常量组织起来,统⼀进⾏管理。

枚举的典型应⽤场景:错误码、状态机等。

枚举类型的本质尽管enum看起来像是⼀种新的数据类型,事实上,enum是⼀种受限制的类,并且具有⾃⼰的⽅法。

创建enum时,编译器会为你⽣成⼀个相关的类,这个类继承⾃ng.Enum。

ng.Enum类声明public abstract class Enum<E extends Enum<E>>implements Comparable<E>, Serializable { ... }枚举的⽅法在enum中,提供了⼀些基本⽅法:values():返回 enum 实例的数组,⽽且该数组中的元素严格保持在 enum 中声明时的顺序。

name():返回实例名。

ordinal():返回实例声明时的次序,从0开始。

getDeclaringClass():返回实例所属的 enum 类型。

equals():判断是否为同⼀个对象。

可以使⽤==来⽐较enum实例。

此外,ng.Enum实现了Comparable和Serializable接⼝,所以也提供compareTo()⽅法。

例:展⽰enum的基本⽅法public class EnumMethodDemo {enum Color {RED, GREEN, BLUE;}enum Size {BIG, MIDDLE, SMALL;}public static void main(String args[]) {System.out.println("=========== Print all Color ===========");for (Color c : Color.values()) {System.out.println(c + " ordinal: " + c.ordinal());}System.out.println("=========== Print all Size ===========");for (Size s : Size.values()) {System.out.println(s + " ordinal: " + s.ordinal());}Color green = Color.GREEN;System.out.println(<span class="hljs-string">"green name(): "</span> + ());System.out.println(<span class="hljs-string">"green getDeclaringClass(): "</span> + green.getDeclaringClass());System.out.println(<span class="hljs-string">"green hashCode(): "</span> + green.hashCode());System.out.println(<span class="hljs-string">"green compareTo Color.GREEN: "</span> + pareTo(Color.GREEN));System.out.println(<span class="hljs-string">"green equals Color.GREEN: "</span> + green.equals(Color.GREEN));System.out.println(<span class="hljs-string">"green equals Size.MIDDLE: "</span> + green.equals(Size.MIDDLE));System.out.println(<span class="hljs-string">"green equals 1: "</span> + green.equals(<span class="hljs-number">1</span>));System.out.format(<span class="hljs-string">"green == Color.BLUE: %b\n"</span>, green == Color.BLUE);}输出=========== Print all Color ===========RED ordinal: 0GREEN ordinal: 1BLUE ordinal: 2=========== Print all Size ===========BIG ordinal: 0MIDDLE ordinal: 1SMALL ordinal: 2green name(): GREENgreen getDeclaringClass(): class org.zp.javase.enumeration.EnumDemo$Colorgreen hashCode(): 460141958green compareTo Color.GREEN: 0green equals Color.GREEN: truegreen equals Size.MIDDLE: falsegreen equals 1: falsegreen == Color.BLUE: false枚举的特性枚举的特性,归结起来就是⼀句话:除了不能继承,基本上可以将enum看做⼀个常规的类。

JPS论文资料之系统详细配置方法

JPS论文资料之系统详细配置方法

系统详细配置方法1、安装jdk1.5.02、如果是B/S结构程序,请复制jakarta-tomcat-5.0.28这个文件夹下的所有文件到你的E盘根目录下(不是固定的)3、配置环境变量:(1)我的电脑—右键—属性—高级—环境变量—系统变量—新建,变量名:JAVA_HOME ,注意为大写,变量值:你所安装JDK的根目录,如:C:\ProgramFiles\Java\jdk1.5.0;(2)我的电脑—右键—属性—高级—环境变量—系统变量—新建,变量名:CLASSPATH ,注意为大写,变量值:你所安装JDK的根目录下的lib文件夹,如:C:\ProgramFiles\Java\jdk1.5.0\lib\tools.jar;.注意后面以分号和一个点结尾;(3)修改path变量:我的电脑—右键—属性—高级—环境变量—系统变量—选择path,点编辑,在变量值最后增加一个分号,增加你安装的JDK的根目录下的bin文件夹:C:\Program Files\Java\jdk1.5.0\bin;(4)如果是B/S结构程序,我的电脑—右键—属性—高级—环境变量—系统变量—新建,变量名:TOMCAT_HOME ,注意为大写,变量值:你所安装jakarta-tomcat-5.0.28的根目录,如:E:\jakarta-tomcat-5.0.28;4、复制sqlserver-driver文件夹下的所有文件到C:\ProgramFiles\Java\jdk1.5.0\jre\lib\ext\目录下,否则重装;5、在命令行分别输入java 、javac,如无错误提示,安装完成;6、如果是B/S结构程序,双击E:\jakarta-tomcat-5.0.28\bin\startup.bat,如果出现黑色TOMCAT界面,安装成功,否则重装;7、安装SQLServer2000数据库,一路默认,注意不要选择域用户,设置sa用户的密码为123;8、安装SQLServer2000数据库SP3补丁,当提示已成功传递文件之后,找到安装的目录,双击setup.bat,看提示安装,基本默认;9、附加数据库:打开开始—程序—Microsoft SQLServer—服务管理器,启动数据库,开始—程序—Microsoft SQLServer—企业管理器,在左侧树状菜单,选择数据库-右键-所有任务-附加数据库,点击浏览,选择你的文件夹下的.MDF文件,确定;10、如果是C/S结构程序,安装你的程序,OK;11、如果是B/S结构程序,复制你的网站文件到E:\jakarta-tomcat-5.0.28\webapps下,启动E:\jakarta-tomcat-5.0.28\bin\startup.bat,在IE中输入http://localhost:8080/你的网站名,OK;12、如果需要配置数据源,开始-控制面板-管理工具-数据源ODBC-添加-SQLServer-完成,名称填写readme.txt文件里的数据源名,描述为空,服务器填写“.”就可以,下一步-下一步-更改默认的数据库为你的附加数据库-下一步-完成-测试数据源,如提示“测试成功”,一路确定,否则重装;如果以上都不行,那也有办法,把显示器从8楼扔下去,把主机用锤子砸碎。

JAVA帮助文档全系列 JDK1.5 、JDK1.6、 JDK1.7 官方中英完整版下载

JAVA帮助文档全系列 JDK1.5 、JDK1.6、 JDK1.7 官方中英完整版下载

JDK API 帮助文档 :
JDK 5 :
Java SE 5 API 中文版 CHM 下载:/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/JDK_API_1_5_zh_CN.CHM
English Version : /dist/j2se6.zip
JDK 7 :
English Verson: /jdk7/docs/api/
/download/jdk7/archive/b138/jdk-7-ea-bin-b138-apidocs-14_apr_2011.zip
有关JDK 的具体详细版本信息和JDK 全部版本的下载地址请参考以下网址:/products/archive/
/javadoc/index.php
JAVASE5 EN Downloads: /dist/jdk150.zip
JDK 6 :
JDK6 API 中文版下载: https:///
JDK6 API 中文版 HTML 格式在线文档:/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/latest/html/zh_CN/api/
JDK中还包括各种例子程序,用以展示Java API中的各部分。
JDK 官方下载
JDK1.5 :
/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-1_5_0_07-windows-i586-p.exe?BundledLineItemUUID=1Y5IBe.moNgAAAEhQaQH6rQU&OrderID=BjFIBe.miUsAAAEhJaQH6rQU&ProductID=83HACUFBFwsAAAEYQNw5AXuM&FileName=/jdk-1_5_0_07-windows-i586-p.exe

JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的

JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的

JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet 和应用程序的程序开发环境。

它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。

JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。

自从Java 推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。

JDK包含的基本组件包括:·javac –编译器,将源程序转成字节码·jar –打包工具,将相关的类文件打包成一个文件·javadoc –文档生成器,从源码注释中提取文档·jdb – debugger,查错工具JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。

包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。

JDK中还包括各种例子程序,用以展示Java API中的各部分。

从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。

JDK的另一个显著特点是随着Java (J2EE、J2SE 以及J2ME)版本的升级而升级。

但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。

JDK一般有三种版本:SE(J2SE),standard edition,标准版,是我们通常用的一个版本EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序Java开发工具(JDK)是许多Java专家最初使用的开发环境。

Java的发展历史

Java的发展历史

Java的发展历史从JDK诞生到现在已经有11年的时间了。

沧海桑田一瞬间。

转眼11年过去了,JDK已经发布了6个版本。

在这11年里诞生了无数和Java相关的技术和标准。

现在让我们进入时间隧道,重新回到1995年,再来回顾一下Java的发展轨迹和历史变迁。

一、JDK前传在这个世界上,熟悉Java历史的人非常多,如果要问一个人Java是从哪年诞生的,也许大多数人都会回答是1995年(这个非常好记,因为微软的Windows95也是在这一年发布的)。

但事实上Java早在上个世纪90年代初就开始酝酿了。

1991年4月,Sun公司的James Gosling博士领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行。

而Green项目组的成员一开始使用C++语言来完成这个项目,由于Green项目组的成员都具有C++背景,所以他们首先把目光锁定了C++编译器,Gosling首先改写了C++编译器,但很快他就感到C++的很多不足,需要研发一种新的语言Oak来替代它。

在17 个月后,整个系统完成了,这个系统是更注重机顶盒式的操作系统,不过在当时市场不成熟的情况下,他们的项目没有获得成功。

Java的取名也有一个趣闻。

Java的名称是来源于太平洋一个名为Java(中译爪哇)的小岛,该岛出产一种味道非常美妙的咖啡。

有一天,几位项目成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏。

他们认为该计算机语言是非常好的东西,所以把他们认为最好的名字给了她。

于是,Java这个名字就这样传开了,一杯飘香的咖啡成为了它的标志。

直至1994年下半年,由于Internet的迅猛发展和环球信息网WWW的快速增长,第一个全球信息网络浏览器Mosaic诞生了。

此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求。

JDK1.5环境变量配置 + JCreator的设置使用

JDK1.5环境变量配置 + JCreator的设置使用

JDK1.5环境变量配置+ JCreator的设置使用一、先进入Sun公司网站下载JDK。

在/javase/downloads/index.jsp中找到JDK 5.0 Update 8,点后面的Download,注意中间有Accept和Decline两选项,点选Accept。

下面第一个Windows Platform - J2SE(TM) Development Kit 5.0 Update 8有Windows Offline Installation, Multi-language这个链接,直接右键用迅雷下载49.52 MB的jdk-1_5_0_08-windows-i586-p.exe即可。

二、选择默认安装到C:\Program Files\Java\jdk1.5.0_08,也可以更改路径,则在设置环境变量时也要相应变换路径,jdk安装完毕之后,安装过程中还会让安装jre,也一起装上吧。

开始配置环境变量(win xp系统):右键点击我的电脑->属性->高级->环境变量1.在系统变量栏点新建,出现新建系统变量对话框变量名填JAVA_HOME变量值填C:\Program Files\Java\jdk1.5.0_082.再新建一个变量名填CLASSPATH变量值填.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar3.然后在系统变量栏找到变量为Path的选项,点编辑在变量值的末尾添加;%JAVA_HOME%\bin;确定后OK!三、再从/soft/24416.html上下载JCreator Pro V3.50.013汉化版。

在Jcreator安装时,会询问JDK的安装文件夹,此时只要按它的安装提示向导,设定好JDK安装文件夹的位置即可。

如果在JDK的安装目录下已经存在一个名为docs的目录,则Jcreator会自动将该目录作为当前JDK的帮助文档目录进行添加。

java+泛型

java+泛型

浅谈Java泛型编程原文地址:/thread.jspa?messageID=154504我原本想全文翻译Generics in the Java Programming Language,但是功力不够,太耗时间。

于是乎按照原文的框架,翻了一些再加上自己写的一点东西。

第一次写文,如有谬误还清指出~~谢谢!浅谈Java泛型编程1 引言在JDK 1.5中,几个新的特征被引入Java语言。

其中之一就是泛型(generics)。

泛型(generics,genericity)又称为“参数类型化(parameterized type)”或“模板(templates)”,是和继承(inheritance)不同而互补的一种组件复用机制。

继承和泛型的不同之处在于——在一个系统中,继承层次是垂直方向,从抽象到具体,而泛型是水平方向上的。

当运用继承,不同的类型将拥有相同的接口,并获得了多态性;当运用泛型,将拥有许多不同的类型,并得以相同的算法作用在它们身上。

因此,一般说来,当类型与实现方法无关时,使用泛型;否则,用继承。

泛型技术最直接联想到的用途就是建立容器类型。

下面是一个没有使用泛型技术的例子:List myIntList = new LinkedList();// 1myIntLikst.add(new Integer(0));// 2Integer x = (Integer)myIntList.iterator().next();// 3显然,程序员知道究竟是什么具体类型被放进了myIntList中。

但是,第3行的类型转换(cast)是必不可少的。

因为编译器仅仅能保证iterator返回的是Object类型。

要想保证将这个值传给一个Integer类型变量是安全的,就必须类型转换。

除了使代码显得有些混乱外,类型转换更带来了运行时错误的可能性。

因为程序员难免会犯错误。

使用了泛型技术,程序员就可以确切地表达他们的意图,并且把myIntList限制为包含一种具体类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5
ACCP V4.0
泛型方法
泛性方法:
public <T> String get(T obj) {
return obj.toString();
} List<String> list1 = new ArrayList<String>(); List<Object> list2 = list1; public void print(List<?> list) {} public <T> boolean containsAll(Collection<T> c); 如果实参T只使用一次,而大多情况下被用作多态,就要使用 通配符
6
ACCP V4.0
增强循环
LinkedList<String> list = new LinkedList<String>(); list.add("Hi"); … for (String s : list) System.out.println("2=" + s); }
7
ACCP V4.0
可变参数
10
ACCP V4.0
StringBuilder
该类的方法不是同步(synchronized)的,这使得它比 StringBuffer更加轻量级和有效。 public void testStringBuilder() { StringBuilder sb = new StringBuilder(); sb.append(123).append("aaa"); }
4
ACCP V4.0
泛型通配符
Object o = new String(“aaa”); List<String> list1 = new ArrayList<String>(); List<Object> list2 = list1; public void print(List<?> list) {} public <T> boolean containsAll(Collection<T> c); 如果实参T只使用一次,而大多情况下被用作多态,就 要使用通配符
15
ACCP V4.0
作业
1. 用StringBuilder存储一个简单的html内容 2. 定义一个方法,查询一张表的所有记录,返回 ArrayList(内装HashMap),请用范型技术取消强制 转化,再写一个方法,用增强循环显示ArrayList的所有 内容
16
ACCP V4.0
JDK1.5.0 新特性
ACCP V4.0
目标
掌握泛型类的使用 掌握增强循环 掌握装箱与拆箱 了解枚举类型 了解annotation
2
ACCP V4.0
泛型
Generics
就是多态polymorphism 、模板 模板Template,参数的声明方式 就是多态 , 减少代码量 提高重用性 Jdk集合框架泛性化 集合框架泛性化
3
ACCP V4.0
泛型类
泛性类:可以声明参数的类, 为 类型, 泛性类:可以声明参数的类,T为Object类型,不能直接 类型 不能直接new T(), , T不能是原始数据类型,T可改为其它任何标识如 不能是原始数据类型, 可改为其它任何标识如 可改为其它任何标识如A 不能是原始数据类型
public class GenList<T> {} public class GenList<K,V> {} public class Limited<T extends Object> {} interface Executor<E extends Exception> {}
9
ACCP V4.0
静态导入
import static ng.Math.pow; public void staticImport() { double x = sqrt(pow(12, 2) + pow(21, 2)); System.err.println("5=" + x); }
12
ACCP V4.0
控制台输入
public void consolInput14(String s) { String input = JOptionPane.showInputDialog(s); System.out.println("9.1=" + input); } public void consolInput15(String s) { Scanner in = new Scanner(System.in); System.out.print(s); int n = in.nextInt(); double x = in.nextDouble(); String str = in.nextLine(); System.out.println("9.2=" + n + ";" + x + ";" + str); }
范型的目的:增加类型的安全 范型的目的:
内在的类型转换优于在外部的强制转换。 内在的类型转换优于在外部的强制转换。 Java 接口更加强壮 因为它增加了类型。 接口更加强壮,因为它增加了类型 因为它增加了类型。 类型的匹配错误在编译阶段就可以捕捉到,而不是在代码运行 类型的匹配错误在编译阶段就可以捕捉到, 时。
11
ACCP V4.0
枚举
J2SE 5.0 之前定义新类型:Class 以及Interface. 特殊情况想定义 一个类型 Priority只能接受 High, Medium, Low 三种值. 其他任何 值都是非法的.J2SE 5.0的枚举类型(Enum) 很容易做到. 枚举类型是安全的,可以避免类的final常量名称不同值相同的调 用问题 不能直接继承ng.Enum,必须用关键字 不能直接继承 ,必须用关键字enum声明 声明 它的每一个值都是一个实例 Red相当于调用了构造函数 相当于调用了构造函数new Enum(Red,0) 相当于调用了构造函数 public enum Colors { Red, Yellow, Blue, Orange, Green, Purple, Brown, Black }
//int被自动封装为Integer类型 arrayList.add(100); 拆箱
Integer integer = new Integer(99); ArrayList<Integer> arrayList3 = new ArrayList<Integer>(); arrayList3.add(integer); //自动将Integer拆箱成int型 int intending3 = arrayList3.iterator().next();
14
ACCP V4.0
格式化I/O
public static void io(){ int a = 150000, b = 10; float c = 5.0101f, d = 3.14f; System.out.printf("%4d %4d%n", a, b); System.out.printf("%x %x%n", a, b); System.out.printf("%3.2f %1.1f%n", c, d); System.out.printf("%1.3e %1.3e%n", c, d*100); }
13
ACCP V4.0
改变返回类型
确实需要clone一个对象,最好的方法还是使用Object 一个对象,最好的方法还是使用 确实需要 一个对象 方法, 调用native方法来实现,这样效 方法来实现, 的clone方法,由jdk调用 方法 调用 方法来实现 率比较高。 率比较高。 Clone有shallow clone 和deep clone ,后者在克隆对 有 象中有引用对象时也不会因此而改变
public class ObjectToClone implements Cloneable{ // 重写Object的clone public ObjectToClone clone() throws CloneNotSupportedException { return (ObjectToClone)super.clone(); } }
注意
在定义一个泛型类的时候,在 “<>”之间定义形参,例如: “class TestGen<K,V>”,其中“K” , “V”不代表值,而是表示类型。 实例化泛型对象的时候,一共要有两次书写。例如:TestGen< String,String> t=new TestGen<String,String>(); 泛型中extends并不代表继承,它是类型范围限制,代表上界,而 super 是下界,常用在?中。
public int varible(int... args) { int total = 0; for (int i = 0; i < args.length; i++) { total += args[i]; } return total; }
8
ACCP V4.0装Fra bibliotek与拆箱装箱
ArrayList<Integer> arrayList = new ArrayList<Integer>();
相关文档
最新文档