仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1341|回复: 19
打印 上一主题 下一主题

[学习教程] 发布一篇用finally做甚么

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:36:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,
在没有“渣滓搜集”和“主动挪用损坏器”机制的一种言语中(正文⑤),finally显得出格主要,由于程序员可用它包管内存的准确开释——不管在try块外部产生了甚么情况。但Java供应了渣滓搜集机制,以是内存的开释几近相对不会成为成绩。别的,它也没有构建器可供挪用。既然云云,Java里什么时候才会用到finally呢?

⑤:“损坏器”(Destructor)是“构建器”(Constructor)的反义词。它代表一个特别的函数,一旦某个对象得到用途,一般就会挪用它。我们一定晓得在那里和什么时候挪用损坏器。C++供应了主动的损坏器挪用机制,但Delphi的ObjectPascal版本1及2却不具有这一才能(在这类言语中,损坏器的寄义与用法都产生了变更)。

除将内存设回原始形态之外,若要设置另外一些工具,finally就是必须的。比方,我们偶然必要翻开一个文件大概创建一个收集毗连,大概在屏幕上画一些工具,乃至设置内部天下的一个开关,等等。以下例所示:
  1. //:OnOffSwitch.java
  2. //Whyusefinally?
  3. classSwitch{
  4. booleanstate=false;
  5. booleanread(){returnstate;}
  6. voidon(){state=true;}
  7. voidoff(){state=false;}
  8. }
  9. publicclassOnOffSwitch{
  10. staticSwitchsw=newSwitch();
  11. publicstaticvoidmain(String[]args){
  12. try{
  13. sw.on();
  14. //Codethatcanthrowexceptions...
  15. sw.off();
  16. }catch(NullPointerExceptione){
  17. System.out.println("NullPointerException");
  18. sw.off();
  19. }catch(IllegalArgumentExceptione){
  20. System.out.println("IOException");
  21. sw.off();
  22. }
  23. }
  24. }///:~
复制代码
这里的方针是包管main()完成时开关处于封闭形态,以是将sw.off()置于try块和每一个背例把持器的开端。但发生的一个背例有大概不是在这里捕捉的,这便会错过sw.off()。但是,使用finally,我们能够未来自try块的封闭代码只置于一个中央:
  1. //:WithFinally.java
  2. //FinallyGuaranteescleanup
  3. classSwitch2{
  4. booleanstate=false;
  5. booleanread(){returnstate;}
  6. voidon(){state=true;}
  7. voidoff(){state=false;}
  8. }
  9. publicclassWithFinally{
  10. staticSwitch2sw=newSwitch2();
  11. publicstaticvoidmain(String[]args){
  12. try{
  13. sw.on();
  14. //Codethatcanthrowexceptions...
  15. }catch(NullPointerExceptione){
  16. System.out.println("NullPointerException");
  17. }catch(IllegalArgumentExceptione){
  18. System.out.println("IOException");
  19. }finally{
  20. sw.off();
  21. }
  22. }
  23. }///:~
复制代码
在这儿,sw.off()已移至一个中央。不管产生甚么事变,都一定会运转它。
即便背例不在以后的catch从句集里捕捉,finally城市在背例把持机制转到更初级别搜刮一个把持器之前得以实行。以下所示:
  1. //:AlwaysFinally.java
  2. //Finallyisalwaysexecuted
  3. classExextendsException{}
  4. publicclassAlwaysFinally{
  5. publicstaticvoidmain(String[]args){
  6. System.out.println(
  7. "Enteringfirsttryblock");
  8. try{
  9. System.out.println(
  10. "Enteringsecondtryblock");
  11. try{
  12. thrownewEx();
  13. }finally{
  14. System.out.println(
  15. "finallyin2ndtryblock");
  16. }
  17. }catch(Exe){
  18. System.out.println(
  19. "CaughtExinfirsttryblock");
  20. }finally{
  21. System.out.println(
  22. "finallyin1sttryblock");
  23. }
  24. }
  25. }///:~
复制代码
该程序的输入展现了详细产生的事变:
  1. Enteringfirsttryblock
  2. Enteringsecondtryblock
  3. finallyin2ndtryblock
  4. CaughtExinfirsttryblock
  5. finallyin1sttryblock
复制代码
若挪用了break和continue语句,finally语句也会得以实行。请注重,与作上标签的break和continue一道,finally扫除了Java对goto跳转语句的需求。
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.
透明 该用户已被删除
沙发
发表于 2015-1-21 10:45:07 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
老尸 该用户已被删除
板凳
发表于 2015-1-30 15:52:40 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
蒙在股里 该用户已被删除
地板
发表于 2015-1-31 05:11:32 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
再见西城 该用户已被删除
5#
发表于 2015-2-6 08:50:01 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-9 22:18:33 | 只看该作者
是一种突破用户端机器环境和CPU
简单生活 该用户已被删除
7#
发表于 2015-2-23 09:18:17 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
冷月葬花魂 该用户已被删除
8#
发表于 2015-2-28 17:00:54 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
若天明 该用户已被删除
9#
发表于 2015-3-4 11:22:35 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
莫相离 该用户已被删除
10#
发表于 2015-3-11 18:42:45 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
柔情似水 该用户已被删除
11#
发表于 2015-3-15 20:32:51 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
12#
发表于 2015-3-17 12:35:58 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
变相怪杰 该用户已被删除
13#
发表于 2015-3-24 10:06:14 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
乐观 该用户已被删除
14#
发表于 2015-4-6 13:03:10 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
海妖 该用户已被删除
15#
发表于 2015-4-12 14:30:15 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
admin 该用户已被删除
16#
发表于 2015-4-16 08:11:49 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
因胸联盟 该用户已被删除
17#
发表于 2015-4-28 05:30:37 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
谁可相欹 该用户已被删除
18#
发表于 2015-5-1 20:53:56 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
金色的骷髅 该用户已被删除
19#
发表于 2015-5-6 18:48:54 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
再现理想 该用户已被删除
20#
发表于 2015-6-26 03:03:51 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 09:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表