收藏 分享(赏)

java技巧.rtf

上传人:weiwoduzun 文档编号:4295982 上传时间:2018-12-21 格式:RTF 页数:24 大小:447.49KB
下载 相关 举报
java技巧.rtf_第1页
第1页 / 共24页
java技巧.rtf_第2页
第2页 / 共24页
java技巧.rtf_第3页
第3页 / 共24页
java技巧.rtf_第4页
第4页 / 共24页
java技巧.rtf_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、中国IT动力,最新最全的IT技术教程最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像 首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程 ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql 服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 Core

2、lDraw 协议大全 网络安全 微软认证 硬件维护 CPU 主板 硬盘 器 盘 BIOS 网C Java Delphi 200 程序开发 程 Java ava 程 Java 技 作未 currency1200 “0“2 211 fiJfl chinaitpower Java 技 程序用的 CPUcurrency1网络” 的 的的 程序用 的 的务 通 的 的 的 行 文 的主 的 通用篇 1.1 用new 建的 1.2 用 IO 1. 用 1. 1. 的final 1. 用局部 1. 乘法和除法二J2EE篇2.1 用缓冲 记 2.2 终通过会话Bean访问 Bean 2. 选择合适的引用 制

3、2. 在部署描述器中设 只读属 2. 缓冲对EJB Home的访问 2. 为EJB现 地接口 2. 生主 2.8 及currency1清除 再需的会话 2.9 在JSP页 中 闭无用的会话 2.10 Servlet与 用 2.11 HTTP Keep“Alive 2.12 JDBC与Unicode 2.1 JDBC与IO 1.1 数据库三GUI篇.1 用JAfl压缩文件 .2 Applet装入进程 . 在画图形之 先装入它 . 覆盖update 法 . 延迟画操作 . 用双缓冲区 . 用BufferedImage .8 用VolatileImage .9 用Window Blitting 四补

4、充料 正文 通用篇 “通用篇” 的问题适合于大多数Java应用 1.1 用new 建的 用new 建的 currency1构造函数链中的所构造函数都会被自动调用 但果 个对象现了Cloneable接口我们以调用它的clone() 法 clone() 法 会调用 构造函数 在 用设计模式Design Pattern的场合果用Factory模式建对象则改用clone() 法建新的对象 简单 下 Factory模式的 个典型现 public static Credit getNewCredit() return new Credit(); 改进后的 用clone() 法下所 private stat

5、ic Credit BaseCredit = new Credit();public static Credit getNewCredit() return (Credit) BaseCredit.clone(); 上 的思路对于数组fi理同样很用 1.2 用 IO 版 较低的JDK 支持 IO API 为避免IO 些应用采用了建大线程的办法在较好的情况下会 用 个缓冲池 这种技术以在许多 支持 发IO 的应用中 Web服务器 和 应用 建Java线程需 的开 JDK 1.引入了 的IO库 ava.nio 果应用 用版 较 的JDK在这 个支持 IO的软件 Sun中国网站的 调整Java的IO

6、 1. 用 对 首先建 个新的对象 Throwable接口的构造函数调用 为fillInStackTrace()的 地Native 法fillInStackTrace() 法 调用 只 被 VM 调整调用 为在fi理过程中建了 个新的对象 只 用于fi理 应用制程序 程 1. 认情况下调用的构造函数currency1 Java会currency1 的“ 所的对象被设 null整数byteshortintlong设 0float和double设 0.0“设 false 个fi 个fl生currency1这 应为用new 建 个对象currency1构造函数链中的所构造函数都会被自动调用 1. 的

7、final ”final 的 fl生的 在Java API中许多应用final的 ava.lang.String 为Stringfinal了”们覆盖length() 法 fi果 个为final则所的 法都 final Java 器会 会 inline所的final 法这和 的 器现 0 1. 用局部 调用 法currency1的 数以及在调用中建的 currency1都 在 Stack中 较 都在 Heap中建 较 fi 于 的 器JVM局部 进 用 1. 乘法和除法 下 的 for (val = 0; val 2.10 Servlet与 用 许多开发随地currency1大 用会话之中 些c

8、urrency1候 在会话中的对象没及currency1地被垃圾回制回 上看典型的症状 用感 系统周期 地 却又 currency1原归于 个 的组件 果监视JVM的 空它的表现 占用 正地大起大 这 问题主二种办法 第 种办法 在所作用范 为会话的Bean中现HttpSessionBindingListener接口 这样只现valueUnbound() 法以 式地 放Bean 用的 fi 种办法 地currency1会话作 大多数应用服务器都设 会话作 currency1的选 fi 以用 程的 式调用会话的setMaxInactiveInterval() 法 法用设在作 会话之 Servle

9、t器允许的客 的最大 currency1以秒计 2.11 HTTP Keep“Alive Keep“Alive 客 服务器 的 接持 现对服务器的后 currency1Keep“Alive 避免了建 新建 接 场上的大部分Web服务器括iPlanetIIS和Apache都支持HTTP Keep“Alive 对于 的网站 这个 通很用 但 对于 较的网站 这在fi 个问题 为客 开的 接 的好fi但它同样 了 为在fi理 期 以 放的 被占用 Web服务器和应用服务器在同 台 器上 行currency1Keep“Alive 对 用的 2.12 JDBC与Unicode 想 了 些 用JDBCcu

10、rrency1 的 用 接池正地选择 储过程和直接 行的SQL果 除多 的 先 SQL 句 除了这些 的选择之fi 个 的好选择 currency1所的 数据都 为Unicode 页1 88 Java以Unicode形式fi理所数据数据库 动程序 再 行转 过程 但应记果采用这种 式数据库会 更大为 个Unicode 需2个 节 储空 fi果 Unicode的程序访问数据库 问题 会现为这currency1数据库 动程序 行转 过程 2.1 JDBC与IO 果应用程序需访问 个规模很大的数据则应 用 取 式 认情况下JDBC 取2行数据 设我们 个 000行的记JDBC 调用数据库1 才 取

11、全部数据 果currency1 大 改 12则调用数据库的数将 10 在 些情形下这种技术无 果 用动的记在 中了FOfl UPDATE则 操作 式 再 1.1 数据库 许多应用需以用为单 在会话对象中 数的数据典型的应用 和 由于这数据以currency1行 的形式组织许多应用建了大的VectorHashMap 在会话中 这数据大地 制了应用的“缩 为服务器的 至 达 个会话占用的 数乘以 发用最大数它 服务器 昂贵 且垃圾 的currency1 延长 以fifl的程 些”currency1 转 数据库 在 程 上 了“缩 currency1这部分 放 数据库 在问题且问题的根 与大多数 系

12、数据库系统的 系构 对于 系数据库 行currency1的原则之 所的入操作稳 所的 问题都与 理上currency1数据入磁盘的力 系数据库力图 IO操作特 对于读操作但现 的主途径只 行 现缓冲 制的 算法 这正 数据库 第 通 CPU的主原 种 统 系数据库的 案 用在 中 行的数据库In“memory Database TimesTen 数据库的发 允许数据 currency1地入但这些数据 ”地 磁盘上所的操作都在 中进行 这样 数据库 需 的算法 IO操作 且以采用较简单的 制 很 三GUI篇 这 部分 的 适合于图形用界 的应用Applet和通应用用 AWTSwing .1 用J

13、Afl压缩文件 Java档案文件JAfl文件 根据JavaBean 压缩的文件 发 JavaBean组件的主 式和推荐 式 JAfl档案助于 文件 缩下 currency1 它助于Applet 动 个JAfl文件以 个多个 的Bean以及支持文件图形 HTML和 在HTMLJSP文件中JAfl文件只需在Applet 记中 入AflCHIVE “name. ar“ 用档案文件 applet 的 .2 Applet装入进程 看 过 用Applet的网站 在应 行Applet的地 现了 个占 Applet的下 currency1较长currency1会发生事情最大的 用头 在这种情况下 个Apple

14、t正在下 的 无 助于用 下 我们看看 种 的现 法 首先建 个很 的AppletApplet 在后台下 正式的Applet import java.applet.Applet;import java.applet.AppletStub;import java.awt.Label;import java.awt.Graphics;import java.awt.GridLayout; public class PreLoader extends Applet implements Runnable, AppletStub String largeAppletName;Label label;p

15、ublic void init() / 装 的正式AppletlargeAppletName = getParameter(“applet“);/ “ ” label = new Label(“ .“ + largeAppletName);add(label); public void run()try / 装 Applet的Class largeAppletClass = Class.forName(largeAppletName); / 建 装 Applet的 Applet largeApplet = (Applet)largeAppletClass.newInstance(); / 设

16、Applet的Stub程序largeApplet.setStub(this); / 取“ ” remove(label); / 设 局setLayout(new GridLayout(1, 0);add(largeApplet); / 正式的AppletlargeApplet.init();largeApplet.start();catch (Exception ex) / label.setText(“ 装入的Applet“); / 新 validate(); public void appletResize(int width, int height) / currency1appletR

17、esize调用stub程序 Appletresize(width, height);后的 于2K下 很 中几个地 “ 首先PreLoader现了AppletStub接口 般地Applet调用 自己的codebase 在 中我们 调用setStub() Applet 取这个 fi 个“ 的地 AppletStub接口许多和Applet 样的 法但appletflesi e() 法除 这 我们currency1对appletflesi e() 法的调用 了resi e() 法 . 在画图形之 先装入它 ImageObserver接口用接 图形装入的 ImageObserver接口只 个 法imag

18、eUpdate()用 repaint()操作在 上画图形 下 了 个 public boolean imageUpdate(Image img, int flags, int x, int y, int w, int h) if (flags else if (flags / 文件没 个占 repaint();return (flags 图形 用currency1imageUpdate() 法被调用 果需进 更新 法返回true;果所需 法返回false . 覆盖update 法 update() 法的认动作 清除 后调用paint() 法 果 用认的update() 法频繁 用图形的应用 现

19、 现象 避免在paint()调用之 的 清除操作只需currency1下 式覆盖update() 法 public void update(Graphics g) paint(g); 更理想的 案 覆盖update()只画 上发生的区 下所 public void update(Graphics g) g.clipRect(x, y, w, h);paint(g); . 延迟画操作 对于图形用界 的应用 低下的主原往往以归为画 的 低下 用改 口大 动 个 口currency1这 通以很 地 改 口大 动 之的操作导致画 事件大地地生甚至超过了 的 行 对 这个问题最好的办法 略所“迟 ”的事

20、件 建议在这 引入 个数毫秒的currency1差即果我们 即接 了fi 个画事件以 fi理 事件转fi理最后 个 的画事件;则我们 进行 的画过程 果事件动 currency1的工作分 个工作线程 种较好的fi理 式;则 些部件 被“ ”为 只 fi理 个事件 下 了 个事件fi理的简单 但 过 后它以用制工作线程 public static void runOnce(String id, final long milliseconds) synchronized(e_queue) / e_queue: 所事件的合if (!e_queue.containsKey(id) e_queue.pu

21、t(token, new LastOne(); final LastOne lastOne = (LastOne) e_queue.get(token);final long time = System.currentTimeMillis(); / currency1lastOne.time = time; (new Thread() public void run() if (milliseconds 0) try Thread.sleep(milliseconds); / 线程catch (Exception ex) synchronized(lastOne.running) / 上 事件

22、if (lastOne.time != time) / 只fi理最后 个事件return;).start(); private static Hashtable e_queue = new Hashtable(); private static class LastOne public long time=0;public Object running = new Object(); . 用双缓冲区 在 之的缓冲区 图后 即currency1整个图形 由于个缓冲区所以程序以回 这样我们以用 个低 先 的线程 画图 程序 用空 的CPUcurrency1 行务 下 的 范了这种技术 Graphi

23、cs myGraphics;Image myOffscreenImage = createImage(size().width, size().height);Graphics offscreenGraphics = myOffscreenImage.getGraphics(); offscreenGraphics.drawImage(img, 50, 50, this);myGraphics.drawImage(myOffscreenImage, 0, 0, this); . 用BufferedImage Java JDK 1.2 用了 个软 设 文 在 同的台上看起 似 为现这个 Java

24、 直接fi理构文 的像 由于这种技术在 中大地进行 制操作 期的JDK在 用这种技术currency1 佳 为 这个问题 的Java 现了 种新的图形型即BufferedImage BufferedImage描述的图形” 个访问的图形数据缓冲区 个BufferedImage 个ColorModel和 组图形数据 这个 般 用flGB 模型但 以fi理 图形 它的构造函数很简单下所 public BufferedImage (int width, int height, int imageType) ImageType允许我们缓冲的 型的图形 “ flGB8“ flGB .8 用Volatile

25、Image 许多硬件台和它们的操作系统都 的硬件 支持 硬件 般 形 充 和用CPU同 务 硬件 的 更 由于硬件 分了 部分工作允许多个工作 发进行 缓了对CPU和系统线的压力 应用 行 更 用VolatileImage以建硬件 的图形以及管理图形的 由于它直接用低 台的 力 的改程 主取 于系统 用的图形适器 VolatileImage的 随currency1 即它 “ 稳的volatile” 在 用图形之 最好 下它的 VolatileImage个 的 法 public abstract int validate(GraphicsConfiguration gc);public abst

26、ract Boolean contentsLost(); VolatileImage对象 制 入VolatileImagecurrency1应调用validate() 法 contentsLost() 法 我们自最后 validate()调用之后图形的 VolatileImage 个抽象但 它这 fl生 VolatileImage应通过Component.createVolatileImage()GraphicsConfiguration.createCompatibleVolatileImage() 法建 .9 用Window Blitting 进行动操作currency1所 的 般都画 导

27、致大 的画工作 许多操作系统的图形系统括WIN 2 GDIMacOS和Windows都支持Window Blitting技术 Window Blitting技术直接在 缓冲区中currency1图形 新的 只画新现的区 在Swing应用中 用Window Blitting技术设 法下 setScrollMode(int mode); 在大多数应用中 用这种技术 动 只在 种情形下Window Blitting会导致 低即应用在后台进行动操作 果 用在动 个应用那它 在 台无需 四补充料 CCW Java 的 上下 CCIDNet 用EJB开发技 Sun中国 Java HotSpot 引的 系构

28、 Sun中国 对Java HotSpot 引的入 Sun中国 JAVA 技和 隧道技术 IBM DeveloperWorks中国 Java 技 8 JDK1. 中的 地 制支持 IBM DeveloperWorks中国 Java 技 90 GUI 的 IBM DeveloperWorks中国 的线程安全 IBM DeveloperWorks中国 接池 入 J2EE 的 接合用 Design for performance Java Performance Tuning Strategy JavaWorld Performance Tuning struts2的s iterator 以 数据 的

29、 数组合 以下几个简单的demo s:iterator 签3个属 value 被迭 的合id 合 的元的idstatus 迭 元的索引1:jsp页 义元法 数组listA 果为: 1A2A3A4A5A2:索引的用法果了status 的迭 数据都IteratorStatus的 它以下几个 法int getCount()返回 迭 了几个元int getIndex()返回 元索引boolean isEven() 的索引 偶数boolean isFirst() 第 个元boolean isLast()boolean isOdd() 元索引 奇数现在的索引 奇数为: 元“ 3 mapvalue以直接义为

30、 value=“#“1“:“a“,“2“:“b“ 个元以都好 开 元之的key和value 冒 开value 以 数据 的java.util.Map对象法下 key : value: key 和value 都以 java 的 Object3 数据 .简单的ListList class AttrString attrName;String getAttrName()return “123“;value 以 value=“%label“ label以.操作label的属 List 以value=“%label.list“ 于 getLabel().getList();4 2个list;List a

31、ttrN color,size,styleList attrV red,20,gay这2个list的元 对应的 个attrN对应 个attrVindex is : attrName is : or attrName is : counter:package 我的第 个;public class 分数public int 分;public int 分母;分数(int 分,int 分母)this.分=分;this.分母=分母;void add(分数 分数1)this.分=this.分*分数1.分母+this.分母*分数1.分;this.分母=this.分母*分数1.分母;void decline(

32、分数 分数2)this.分=this.分*分数2.分母-this.分母*分数2.分;this.分母=this.分母*分数2.分母;void multiply(分数 分数3)this.分=this.分*分数3.分;this.分母=this.分母*分数3.分母;void divide(分数 分数4)this.分=this.分*分数4.分母;this.分母=this.分母*分数4.分;void huajian()int i=2;int k=this.分;if (this.分this.分母)k=this.分母;for (i=2;irmic -d D:RMI RmiSampleImpl 行这个命令 若r

33、mic 行RMI下会多个新 RmiSampleImpl_Stub.class RmiSampleImpl_Skel.class 它们分对应的 根(stub)和骨架(skeleton). 七 行 行服务 程序 在Windows下输入下 命令在后台动RmiSampleServer程序 D:RMIjava RmiSampleServer 行客 程序: D:RMIjava RmiSampleClient 客 输: 1 + 2 = 3 ava 法调用currency1的型转 Java进行 法调用currency1 会对 数的型进行转 以匹 调用的 法在 currency1这个问题 ava 规范中 的规

34、Method invocation conversion is applied to each argument value in a method or constructor invocation (8.8.1, 1 .9, 1 .12) the typeof the argument expression must be converted to the type of the corresponding parameter. Method invocation contexts allow the use of one of the followingan identity conve

35、rsion ( .1.1)a widening primitive conversion ( .1.2)a widening reference conversion ( .1. )a boxing conversion ( .1.) optionally followed by widening reference conversionan unboxing conversion ( .1.8) optionally followed by a widening primitive conversion.大 翻 下 法调用转 适用于 法和构造 法的调用 数表达式的型转 为 应的 数的型 感觉

36、这 argument 我们 的际 数的义 parameter 法中的形式 数的思英文 区分 过翻过怪怪的 法调用上下文允许 用以下型转 1.同 转 这 以直接理为 同 型的匹 2.拓 型转 .拓引用型转 .装 转 后 以随地 上拓引用型转 .拆 转 后 以随地 上拓 型转 Method invocation conversions specifically do not include the implicit narrowing of integer constants which is part of assignment conversion ( .2). The designers o

37、f the Java programming language felt that including these implicit narrowing conversions would add additional complexity to the overloaded method matching resolution process (1 .12.2).再需 法调用约 括整数的fi理 public static voif test(short s)test(12); 匹上 义的 法的 1. publicclassTest 2. publicstaticvoidmain(String

38、args) 3. shorts=5; 4. test(s); 5. 6. publicstaticvoidtest(shorts) 7. System.out.println(“short“); 8. 9. publicstaticvoidtest(inti) 10. System.out.println(“int“); 11. 12. publicstaticvoidtest(floatf) 13. System.out.println(“float“); 14. 15. publicstaticvoidtest(Integeri) 16. System.out.println(“Integ

39、er“); 17. 18. publicstaticvoidtest(Numbern) 19. System.out.println(“Number“); 20. 21. publicstaticvoidtest(Shorts) 22. System.out.println(“Short“); 23. 24. 用test(s);首先选择的 test(short s)这个 法 用的 1.同 转 后 除test(short s) 法测试这currency1会调用testint i这个 法 用的 2.拓 型转 除test(int i) 法测试这currency1会调用test(float f) 法 用的 2.拓 型转 除test(float f) 法测试这currency1会调用test(Short s) 法这currency1 用的 .装 转 对short s装 fi理为Short,匹test(Short s) 法 除test(Short s) 法测试这currency1会调用test(Number n) 法特 调用test(Integer i) 法 这 用的转 .装 转 后 以随地上拓引用型转 首先short s被装 Short型 后 用拓引用型转 Number型 最后我们 除test(Number n) 法 short s 会先拓为int型再进行装 fi理 这

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报