ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:39.32KB ,
资源ID:12358959      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12358959.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(jdk1518的新特性.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

jdk1518的新特性.docx

1、jdk1518的新特性jdk1.5-jdk1.8的新特性JDK1.5新特性:1.自动装箱与拆箱:Integer iObj = 3;System.out.println(iObj + 12); Integer i1 = 137(-128-127范围时,为true); Integer i2 = 137(-128-127范围时,为true); System.out.println(i1 = i2); /false,但是括号中时却返回ture,原因是Integer采用的是享元模式 Integer i3 = Integer.valueOf(213); Integer i4 = Integer.value

2、Of(213); System.out.println(i3=i4);/同上,另一种包装形式2.枚举(常用来设计单例模式)public class EnumTest /* param args*/public static void main(String args) WeekDay1 weekDay = WeekDay1.MON; System.out.println(weekDay.nextDay(); WeekDay weekDay2 = WeekDay.FRI; System.out.println(weekDay2); System.out.println(weekDay2.name

3、(); System.out.println(weekDay2.ordinal(); System.out.println(WeekDay.valueOf(SUN).toString(); System.out.println(WeekDay.values().length); new Date(300);public enum WeekDay SUN(1),MON(),TUE,WED,THI,FRI,SAT; private WeekDay()System.out.println(first); private WeekDay(int day)System.out.println(secon

4、d);public enum TrafficLamp RED(30) public TrafficLamp nextLamp() return GREEN; , GREEN(45) public TrafficLamp nextLamp() return YELLOW; , YELLOW(5) public TrafficLamp nextLamp() return RED; ; public abstract TrafficLamp nextLamp(); private int time; private TrafficLamp(int time)this.time = time;3.静态

5、导入import static java.lang.Math.*;public class StaticImport public static void main(String args) int x = 1; try x+; finally System.out.println(template); System.out.println(x); System.out.println(max(3, 6); System.out.println(abs(3 - 6);4.可变参数public class VarableParameter /* param args*/public static

6、 void main(String args) System.out.println(add(2,3); System.out.println(add(2,3,5);public static int add(int x,int. args) int sum = x;/* for(int i=0;iargs.length;i+) sum += argsi; */ for(int arg : args) sum += arg; return sum;5.内省ReflectPoint pt1 = new ReflectPoint(3,5);BeanInfo beanInfo = Introspec

7、tor.getBeanInfo(pt1.getClass(); PropertyDescriptor pds = beanInfo.getPropertyDescriptors(); Object retVal = null; for(PropertyDescriptor pd : pds) Method methodGetX = pd.getReadMethod(); retVal = methodGetX.invoke(pt1); jdk1.6新特性:1.Web服务元数据Java 里的Web服务元数据跟微软的方案基本没有语义上的区别,自从JDK5添加了元数据功能(Annotation)之后

8、,SUN几乎重构了整个J2EE体 系, 由于变化很大,干脆将名字也重构为Java EE, Java EE(当前版本为5.0)将元数据纳入很多规范当中,这其中就包括Web Services的相关规范, 加入元数据之后的Web Services服务器端编程模型就跟上面看到的C#片断差不多了, 这显然比以前的JAX-RPC编程模型简单(当然, Axis的编程模型也很简单).这里要谈的Web服务元数据(JSR 181)只是Java Web 服务规范中的一个,它跟Common Annotations, JAXB2, StAX, SAAJ和JAX-WS等共同构成Java EE 5的Web Services

9、技术堆栈.package WebServices;import java.io.File;import java.io.IOException;import javax.jws.Oneway;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;import javax.xml.ws.Endpoint;/* author chinajash*/WebService(targetNamespace=public class WSProv

10、ider WebResult(name=Greetings)/自定义该方法返回值在WSDL中相关的描述 WebMethod public String sayHi(WebParam(name=MyName) String name) return Hi,+name; /WebParam是自定义参数name在WSDL中相关的描述 Oneway /表明该服务方法是单向的,既没有返回值,也不应该声明检查异常 WebMethod(action=printSystemTime,operationName=printSystemTime)/自定义该方法在WSDL中相关的描述 public void pri

11、ntTime() System.out.println(System.currentTimeMillis(); public static void main(String args) Thread wsPublisher = new Thread(new WSPublisher(); wsPublisher.start(); private static class WSPublisher implements Runnable public void run() /发布WSProvider到http:/localhost:8888/chinajash/WSProvider这个地址,之前必须

12、调用wsgen命令 /生成服务类WSProvider的支持类,命令如下: /wsgen -cp . WebServices.WSProvider Endpoint.publish(http:/localhost:8888/chinajash/WSProvider,new WSProvider(); 如果想看到Web Services Engine生成的WSDL文件是否遵守上面的元数据, 我们没有必要将上面的WSProvider部署到支持JSR-181的应用服务器或Servlet形式的Web Services Engine,现在JDK6已经提供了一个很简单的机制可以用来测试和发布Web Serv

13、ices,下面讲讲如何在JDK6环境下发布Web Services和查看生成的WSDL1.将/bin加入path环境变量2.在命令行下切换当前目录到WSProvider的class文件所在的目录,运行下面命令wsgen -cp . WebServices.WSProvider在这个例子中会生成以下3个类的源代码文件及class文件SayHiSayHiResponsePrintTime3.执行如下代码发布WSProvider到http:/localhost:8888/chinajash/WSProvider,在这里可以执行WSProvider类的main方法就可以Endpoint.publish

14、(http:/localhost:8888/chinajash/WSProvider,new WSProvider();4.在浏览器输入http:/localhost:8888/chinajash/WSProvider?wsdl就可以看到生成的WSDL文件,为了节省篇幅,这里就不把生成的WSDL文件贴上了,大家可以自己动手试试.2.脚本语言支持 JDK6增加了对脚本语言的支持(JSR 223),原理上是将脚本语言编译成bytecode,这样脚本语言也能享用Java平台的诸多优势,包括可移植性,安全等,另外,由于现在是编译成bytecode后再执行,所以比原来边解释边执行效率要高很多。加入对脚本

15、语言的支持后,对Java语言也提供了以下好处。1、许多脚本语言都有动态特性,比如,你不需要用一个变量之前先声明它,你可以用一个变量存放完全不同类型的对象,你不需要做强制类型转换,因为转换都是自动的。现在Java语言也可以通过对脚本语言的支持间接获得这种灵活性。2、 可以用脚本语言快速开发产品原型,因为现在可以Edit-Run,而无需Edit-Compile-Run,当然,因为Java有非常好的IDE支持,我 们完全可以在IDE里面编辑源文件,然后点击运行(隐含编译),以此达到快速开发原型的目的,所以这点好处基本上可以忽略。3、通过引入脚本语言可以轻松实现Java应用程序的扩展和自定义,我们可以

16、把原来分布在在Java应用程序中的配置逻辑,数学表达式和业务规则提取出来,转用JavaScript来处理。Sun的JDK6实现包含了一个基于Mozilla Rhino的 脚本语言引擎,支持JavaScript,这并不是说明JDK6只支持JavaScript,任何第三方都可以自己实现一个JSR-223兼容的脚本引擎 使得JDK6支持别的脚本语言,比如,你想让JDK6支持Ruby,那你可以自己按照JSR 223的规范实现一个Ruby的脚本引擎类,具体一点,你需要实现javax.script.ScriptEngine(简单起见,可以继承javax.script.AbstractScriptEngin

17、e)和javax.script.ScriptEngineFactory两个接口。当然,在你实现自己的脚本语言引擎之前,先到 project 这里看看是不是有人已经帮你做了工作,这样你就可以直接拿来用就行。Scripting API-Scripting API是用于在Java里面编写脚本语言程序的API, 在Javax.script中可以找到Scripting API,我们就是用这个API来编写JavaScript程序,这个包里面有一个ScriptEngineManager类,它是使用Scripting API的入口,ScriptEngineManager可以通过jar服务发现(service

18、discovery)机制寻找合适的脚本引擎类(ScriptEngine),使用Scripting API的最简单方式只需下面三步1、创建一个ScriptEngineManager对象2、通过ScriptEngineManager获得ScriptEngine对象3、用ScriptEngine的eval方法执行脚本下面是一个Hello World程序/* * author chinajash */public class HelloScript public static void main(String args) throws Exception ScriptEngineManager fac

19、tory = new ScriptEngineManager();/step 1 ScriptEngine engine = factory.getEngineByName(JavaScript);/Step 2 engine.eval(print(Hello, Scripting);/Step 3 运行上面程序,控制台会输出Hello, Scripting上面这个简单的Scripting程序演示了如何在Java里面运行脚本语言,除此之外,我们还可以利用Scripting API实现以下功能1、暴露Java对象为脚本语言的全局变量2、在Java中调用脚本语言的方法3、脚本语言可以实现Java的

20、接口4、脚本语言可以像Java一样使用JDK平台下的类下面的类演示了以上4种功能package Scripting;import java.io.File;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;/* * author chinajash */public class ScriptingAPITester public static void main(Str

21、ing args) throws Exception ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName(JavaScript); testScriptVariables(engine);/演示如何暴露Java对象为脚本语言的全局变量 testInvokeScriptMethod(engine);/演示如何在Java中调用脚本语言的方法 testScriptInterface(engine);/演示脚本语言如何实现Java的接口 testUs

22、ingJDKClasses(engine);/演示脚本语言如何使用JDK平台下的类 public static void testScriptVariables(ScriptEngine engine) throws ScriptException File file = new File(test.txt); engine.put(f, file); engine.eval(println(TotalSpace:+f.getTotalSpace(); public static void testInvokeScriptMethod(ScriptEngine engine) throws E

23、xception String script = function hello(name) return Hello, + name; engine.eval(script); Invocable inv = (Invocable) engine; String res = (String)inv.invokeFunction(hello, Scripting ); System.out.println(res:+res); public static void testScriptInterface(ScriptEngine engine) throws ScriptException St

24、ring script = var obj = new Object(); obj.run = function() println(run method called); ; engine.eval(script); Object obj = engine.get(obj); Invocable inv = (Invocable) engine; Runnable r = inv.getInterface(obj,Runnable.class); Thread th = new Thread(r); th.start(); public static void testUsingJDKCla

25、sses(ScriptEngine engine) throws Exception /Packages是脚本语言里的一个全局变量,专用于访问JDK的package String js = function doSwing(t)var f=new Packages.javax.swing.JFrame(t);f.setSize(400,300);f.setVisible(true); engine.eval(js); Invocable inv = (Invocable) engine; inv.invokeFunction(doSwing, Scripting Swing ); Script

26、ing Tool-SUN提供的JDK6中有一个命令行工具?jrunscript,你可以在/bin下面找到这个工具,jrunscript是一个脚本语言的解释程序,它独立于脚本语言,但默认是用JavaScript,我们可以用jrunscript来测试自己写的脚本语言是否正确,下面是一个在命令行运行jrunscript的简单例子jrunscriptjsprintln(Hello,JrunScript);Hello,JrunScriptjs9*872.0js3.JTable的排序和过滤原来的JTable基本上是只能显示数据,在JDK6新增了对JTable的排序和过滤功能,下面代码演示了这两个功能/*

27、author chinajash*/public class JTableTester static String data = China,Beijing,Chinese, America,Washington,English, Korea,Seoul,Korean, Japan,Tokyo,Japanese, France,Paris,French, England,London,English, Germany,Berlin,German,;static String titles = Country,Capital,Language;public static void main(String args) DefaultTableModel m = new DefaultTableModel(data,titles);JTable t = new JTabl

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1