仓酷云

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

[学习教程] 来看java非常处置条记

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。
关于一个十分熟习C++非常处置模子的程序员来讲,它几近能够不经任何别的培训和进修,就能够完整承受和可以轻松地利用Java言语中的非常处置编程办法。这是由于Java言语中的非常处置模子几近与C++中非常处置模子有99%的类似度,不管是从语律例则,仍是语义下去说,它们两者都几近完整分歧。
固然,假如你对Java言语中的非常处置模子有更多,或更深切的懂得,你仍是可以发明Java非常处置模子与C++中非常处置模子仍是存在很多不同的。是的,Java言语原本就是C++言语的完美改善版,以是,Java言语中的非常处置模子也就一定会承继了C++非常处置模子的作风和长处。可是,好的工具不单单是必要承继长处,更主要的是必要“往其糟粕,取其精髓”,必要开展!!!毫无疑问,Java言语中的非常处置模子完整到达了这一“开展”高度。它比C++非常处置模子更平安,更可高,更壮大和更丰厚。
上面的内容中,阿愚不盘算再向人人具体先容一遍有关Java非常处置编程的详细语法和划定规矩。由于这与C++中的非常处置几近完整一样,并且这些基本常识在太多太多的有关java编程的书本中都有具体论述。而阿愚以为:这里更必要的是总结,必要的是对照,必要的是重点凸起,必要的是关头的地方。以是,上面侧重把Java言语中的非常处置模子与C++非常处置模子睁开对照,让我们透辟剖析它究竟有何开展?有何上风?与C++非常处置模子究竟有哪些细节上的分歧?又为何要如许做?
自创并引进了SEH非常模子中的try-finally语法
要说Java非常处置模子与C++中非常处置模子的最年夜分歧的地方,那就是在Java非常处置模子中引进了try-finally语法,阿愚以为这是从微软的SEH自创而来。在后面的一些文章中,具体而深切论述SEH非常处置模子的时分,我们从中获知,SEH次要是为C言语而计划的,便于第三厂商开辟的Window驱动程序有更好更高的平安保证。同时,SEH非常处置模子中除try-except来用于处置非常外,另有一个try-finally语法,它次要用来扫除一些已经分派的资本(因为非常呈现,而招致这些资本不克不及够按一般的按次被开释,还记得吗?这被称为“UNWIND”),try-finally实质上有点相似于面向对象编程中的析构函数的感化,因为这项机制的存在,才招致SEH的壮大微风光非常。
如今,Java非常处置模子也吸取了这项计划。可我们晓得,不管是JAVA中,仍是C++中,它们都有“析构函数”呀!它们完整能够使用面向的析构函数来主动开释资本呀!是的,没错!实际上是如许的。但是在理论中,我们大概会发明或常常碰着,仅仅使用析构函数来开释资本,并非那末好使,比方,我们常常必要静态得从堆上分派的对象,这时候,开释对象必需要显式地挪用delete函数来触发该对象的析构函数的实行。假如这时代产生了非常,不但该对象在堆中的内存不克不及到达被开释的了局,并且,该对象的析构函数中开释更多资本的一些代码也不克不及得以实行。因而这类成果十分严峻,这也算C++非常处置模子中一种对照年夜的缺点吧!(固然,C++有别的弥补措施,那就是使用“智能指针”来包管一些对象的实时而无效地被开释)。别的,实在很有很多相似的例子,比方封闭一个内核句柄等操纵(CloseHandle)。
在Java言语中,因为它因为接纳了渣滓接纳手艺,以是它能无效制止上述所讲的相似于C++言语中的因为非常呈现所招致的那种资本不克不及得以准确开释的为难场合排场。可是,它仍旧仍是在它的非常处置模子中引进了try-finally语法,由于,不管怎样,它最少会给程序员带来了极年夜的便利,比方以下的程序片段,就能够充实反应出try-finally对进步我们代码的质量和美妙是何等的主要。
importjava.io.*;
/***//**
authorbyhttp://www.bt285.cnhttp://www.5a520.cn
*/
publicclassTrans
{
publicstaticvoidmain(String[]args)
{
try
{
BufferedReaderrd=null;
Writerwr=null;
try
{
FilesrcFile=newFile((args[0]));
FiledstFile=newFile((args[1]));
rd=newBufferedReader(newInputStreamReader(newFileInputStream(srcFile),args[2]));
wr=newOutputStreamWriter(newFileOutputStream(dstFile),args[3]);
while(true)
{
StringsLine=rd.readLine();
if(sLine==null)break;
wr.write(sLine);
wr.write("
");
}
}
finally
{
//这里能包管在何种情形下,文件流的句柄都得以被准确封闭
//该办法次要用于清算非内存性子的资本(渣滓接纳机制没法
//处置的资本,如数据库毗连、Socket封闭、文件封闭等等)。
wr.flush();
wr.close();
rd.close();
}
}
catch(Exceptionex)
{
ex.printStackTrace();
}
}
}
<p>
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net网页编程,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。
谁可相欹 该用户已被删除
沙发
发表于 2015-1-29 19:54:13 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
小魔女 该用户已被删除
板凳
发表于 2015-1-31 20:21:54 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
莫相离 该用户已被删除
地板
发表于 2015-2-5 21:47:32 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
5#
发表于 2015-2-10 01:56:18 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
第二个灵魂 该用户已被删除
6#
发表于 2015-2-28 14:15:42 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
若相依 该用户已被删除
7#
发表于 2015-3-6 04:52:43 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
不帅 该用户已被删除
8#
发表于 2015-3-12 07:10:16 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
飘灵儿 该用户已被删除
9#
发表于 2015-3-13 08:09:26 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
乐观 该用户已被删除
10#
发表于 2015-3-20 17:13:05 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-27 13:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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