仓酷云

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

[学习教程] JAVA网页编程之Java更新XML的四种经常使用办法简介

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

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

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

x
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。xml本文扼要的会商了Java言语编程中更新XML文档的四种经常使用办法,而且剖析这四种办法的好坏。其次,本文还对怎样把持Java程序输入的XML文档的格局做了睁开叙述。

  JAXP是JavaAPIforXMLProcessing的英笔墨头缩写,中文寄义是:用于XML文档处置的利用Java言语编写的编程接口。JAXP撑持DOM、SAX、XSLT等尺度。为了加强JAXP利用上的天真性,开辟者出格为JAXP计划了一个PluggabilityLayer,在PluggabilityLayer的撑持之下,JAXP既能够和详细完成DOMAPI、SAXAPI的各类XML剖析器(XMLParser,比方ApacheXerces)团结事情,又能够和详细实行XSLT尺度的XSLT处置器(XSLTProcessor,比方ApacheXalan)团结事情。使用PluggabilityLayer的优点在于:我们只必要熟习JAXP各个编程接口的界说便可,而不必要对所接纳的详细的XML剖析器、XSLT处置器有很深切的懂得。好比在某个Java程序中,经由过程JAXP挪用XML剖析器ApacheCrimson对XML文档举行处置,假如我们但愿利用其余XML剖析器(好比ApacheXerces),以便进步该程序的功能,那末原程序代码大概不必要任何改动,间接就能够利用(你所必要做的事变只是将包括ApacheXerces代码的jar文件到场到情况变量CLASSPATH中,而将包括ApacheCrimson代码的jar文件在情况变量CLASSPATH中删除)。

  今朝JAXP已使用的非常广泛了,能够说是Java言语中处置XML文档的尺度API。有些初学者在进修利用JAXP的过程当中,常常会提出如许的成绩:我编写的程序对DOMTree做了更新,可是当程序加入今后,原始的XML文档并没有改动,仍是老模样,怎样完成对原始XML文档和DOMTree的同步更新呢?咋一看来,在JAXP中仿佛没有供应响应的接口/办法/类,这是良多初学者都感应狐疑的成绩。本文的大旨就在于办理这个成绩,复杂的先容几种经常使用的同步更新原始XML文档和DOMTree的办法。为了减少会商的局限,本文所触及的XML剖析器仅包含ApacheCrimson和ApacheXerces,而XSLT处置器仅仅利用ApacheXalan。

  办法一:间接读写XML文档

  这大概是最笨最原始的举措了。当程序猎取DOMTree以后,使用DOM模子的Node接口的各个办法对DOMTree举行更新,下一步应当对原始的XML文档举行更新了。我们能够使用递回的举措大概是使用TreeWalker类,遍历全部DOMTree,与此同时,将DOMTree的每个节点/元素顺次写进到事后翻开的原始XML文档中,当DOMTree被遍历完整以后,DOMTree和原始的XML文档就完成了同步更新。实践中,这个办法少少利用,不外假如你要编程完成本人的XML剖析器,这类办法仍是有大概用得上的。


办法二:利用XmlDocument类

  利用XmlDocument类?JAXP平分明没有这个类呀!是否是作者弄错了?没有错!就是利用XmlDocument类,切实的说,是利用XmlDocument类的write()办法。

  在上文已提到过,JAXP能够和林林总总的XML剖析器团结利用,此次我们选用的XML剖析器是ApacheCrimson。XmlDocument(org.apache.crimson.tree.XmlDocument)是ApacheCrimson的一个类,其实不包括于尺度的JAXP中,难怪在JAXP的文档中找不到XmlDocument类的芳踪呢。如今成绩出来了,怎样使用XmlDocument类来完成更新XML文档的功效?在XmlDocument类中供应了上面三个write()办法(依据Crimson最新的版本------ApacheCrimson1.1.3):


publicvoidwrite(OutputStreamout)throwsIOException
publicvoidwrite(Writerout)throwsIOException
publicvoidwrite(Writerout,Stringencoding)throwsIOException


  上述三个write()办法的次要感化就是输入DOMTree中的内容到特定的输入介质中,好比文件输入流、使用程序把持台等等。那末又怎样利用上述三个write()办法呢?请看上面的Java程序代码片段:


Stringname=fancy;
DocumentBuilderparser;
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
try
{
parser=factory.newDocumentBuilder();
Documentdoc=parser.parse(user.xml);
Elementnewlink=doc.createElement(name);
doc.getDocumentElement().appendChild(newlink);
((XmlDocument)doc).write(newFileOutputStream(newFile(xuser1.xml)));
}
catch(Exceptione)
{
//tologit
}


  在下面的代码中,起首创立了一个Document对象doc,猎取完全的DOMTree,然后使用Node接口的appendChild()办法,在DOMTree的最初追加了一个新节点(fancy),最初挪用XmlDocument类的write(OutputStreamout)办法,把DOMTree中的内容输入到xuser.xml中(实在也能够输入到user.xml,更新原始的XML文档,在这里为了便于做对照,故而输入到xuser.xml文件中)。必要注重的是不克不及间接对Document对象doc间接挪用write()办法,由于JAXP的Document接口并没有界说任何write()办法,以是必需将doc由Document对象强迫转换为XmlDocument对象,然后才干挪用write()办法,在下面的代码中利用的是write(OutputStreamout)办法,这个办法利用缺省的UTF-8编码输入DOMTree中的内容到特定的输入介质中,假如DOMTree中包括中笔墨符,那末输入的了局有多是乱码,亦即存在所谓的汉字成绩,办理的举措是利用write(Writerout,Stringencoding)办法,显式指定输入时的编码,比方将第二个参数设为GB2312,这时候即不存在汉字成绩,输入了局可以一般显现中笔墨符。

  完全的例子请参考以下文件:AddRecord.java(见附件)、user.xml(见附件)。该例子的运转情况为:WindowsXPProfessional、JDK1.3.1。为了可以一般编译运转AddRecord.java这个程序,你必要到网址http://xml.apache.org/dist/crimson/往下载ApacheCrimson,并将所猎取的crimson.jar文件到场到情况变量CLASSPATH中。

  注重:

  ApacheCrimson的前身是SunProjectXParser,厥后不知何以,由XParser演化为ApacheCrimson,至今ApacheCrimson的良多代码都是从XParser中间接移植过去的。好比上文用到的XmlDocument类,它在XParser中是com.sun.xml.XmlDocument,到了ApacheCrimson中摇身一变,就酿成了org.apache.crimson.tree.XmlDocument类,实在它们的尽年夜部分代码是一样的,大概就package语句和import语句和文件开首的一段lience有所分歧罢了。初期的JAXP是和XParser绑缚在一同的,因而一些老的程序利用了com.sun.xml包,假如你如今从头编译它们,有大概不克不及经由过程,一定就是由于这个缘故原由。厥后的JAXP和ApacheCrimson绑缚在一同,好比JAXP1.1,假如你利用JAXP1.1,那末不必要分外下载ApacheCrimson,也可以一般编译运转下面的例子(AddRecord.java)。最新的JAXP1.2EA(EarlyAccess)改弦更张,接纳功能更好的ApacheXalan和ApacheXerces分离作为XSLT处置器和XML剖析器,不克不及间接撑持ApacheCrimson了,以是假如你的开辟情况接纳了JAXP1.2EA大概是JavaXMLPack(内含JAXP1.2EA),那末将没法间接编译运转下面的例子(AddRecord.java),你必要分外下载并安装ApacheCrimson。

 办法三:利用TransformerFactory和Transformer类

  在JAXP中所供应的尺度的更新原始XML文档的办法就是挪用XSLT引擎,亦即便用TransformerFactory和Transformer类。请看上面的Java代码片段:


//起首创立一个DOMSource对象,该机关函数的参数能够是一个Document对象
//doc代表变动后的DOMTree。
DOMSourcedoms=newDOMSource(doc);

//创立一个File对象,代表DOMTree所包括的数据的输入介质,这是一个XML文件。
Filef=newFile(XMLOutput.xml);

//创立一个StreamResult对象,该机关函数的参数能够取为File对象。
StreamResultsr=newStreamResult(f);

//上面挪用JAXP中的XSLT引擎来完成输入DOMTree中的数据到XML文件中的功效。
//XSLT引擎的输出为DOMSource对象,输入为StreamResut对象。
try
{
//起首创立一个TransformerFactory对象,再由此创立Transformer对象。Transformer
//类相称于一个XSLT引擎。一般我们利用它来处置XSL文件,可是在这里我们使
//用它来输入XML文档。
TransformerFactorytf=TransformerFactory.newInstance();
Transformert=tf.newTransformer();

//关头的一步,挪用Transformer对象(XSLT引擎)的transform()办法,该办法的第一
//个参数是DOMSource对象,第二个参数是StreamResult对象。
t.transform(doms,sr);
}
catch(TransformerConfigurationExceptiontce)
{
System.out.println(TransformerConfigurationExceptionn-----);
tce.printStackTrace();
}
catch(TransformerExceptionte)
{
System.out.println(TransformerExceptionn---------);
te.printStackTrace();
}


  在实践的使用中,我们能够使用传统的DOMAPI从XML文档中猎取DOMTree,然后依据实践的需求对DOMTree实行各类操纵,失掉终极的Document对象,接上去能够由此Document对象创立DOMSource对象,剩下的事变就是照搬下面的代码了,程序运转终了后,XMLOutput.xml就是你所必要的了局(固然了,你能够随便变动StreamResult类机关函数的参数,指定分歧的输入介质,而不用是一模一样的XML文档)。

  这个办法最年夜的优点在于能够为所欲为的把持DOMTree中的内容输入到输入介质中的格局,可是光靠TransformerFactory类和Transformer类其实不能完成这个功效,还必要依附OutputKeys类的匡助。完全的例子请参考以下文件:AddRecord2.java(见附件)、user.xml(见附件)。该例子的运转情况为:WindowsXPProfessional、JDK1.3.1。为了可以一般编译运转AddRecord2.java这个程序,你必要到网址http://java.sun.com往下载安装JAXP1.1大概JavaXMLPack(JavaXMLPack已内含JAXP了)。

  OutputKeys类

  javax.xml.transform.OutputKeys类和java.util.Properties类共同利用,能够把持JAXP的XSLT引擎(Transformer类)输入XML文档的格局。请看上面的代码片段:


//起首创立一个TransformerFactory对象,再由此创立Transformer对象。
TransformerFactorytf=TransformerFactory.newInstance();
Transformert=tf.newTransformer();

//猎取Transformser对象的输入属性,亦即XSLT引擎的缺省输入属性,这是一个
//java.util.Properties对象。
Propertiesproperties=t.getOutputProperties();

//设置新的输入属性:输入字符编码为GB2312,如许能够撑持中笔墨符,XSLT引擎所输入
//的XML文档假如包括了中笔墨符,能够一般显现,不会呈现所谓的汉字成绩。
//请寄望OutputKeys类的字符串常数OutputKeys.ENCODING。
properties.setProperty(OutputKeys.ENCODING,GB2312);

/更新XSLT引擎的输入属性。
t.setOutputProperties(properties);

//挪用XSLT引擎,依照输入属性中的设置,输入DOMTree中的内容到输入介质中。
t.transform(DOMSource_Object,StreamResult_Object);


  从下面的程序代码,我们不丢脸出,经由过程设置XSLT引擎(Transformer类)的输入属性,能够把持DOMTree中的内容的输入格局,这关于我们定制输入内容是很有匡助的。那末JAXP的XSLT引擎(Transformer类)有那些输入属性能够设置呢?javax.xml.transform.OutputKeys类界说了良多字符串常数,它们都是能够自在设置的输入属性,经常使用的输入属性以下所示:


publicstaticfinaljava.lang.StringMETHOD


  能够设为xml、html、text等值。


publicstaticfinaljava.lang.StringVERSION


  所遵守标准的版本号,假如METHOD设为xml,那末它的值应当设为1.0,假如METHOD设为html,那末它的值应当设为4.0,假如METHOD设为text,那末这个输入属性会被疏忽。


publicstaticfinaljava.lang.StringENCODING


  设置输入时所接纳的编码体例,好比GB2312、UTF-8等等,假如将其设置为GB2312,能够办理所谓的汉字成绩。


publicstaticfinaljava.lang.StringOMIT_XML_DECLARATION


  设置输入到XML文档中时是不是疏忽XML声明,亦即相似于:


<?xmlversion=1.0standalone=yesencoding=utf-8?>


  如许的代码。它可选的值有yes、no。


publicstaticfinaljava.lang.StringINDENT


  IDENT设定XSLT引擎在输入XML文档时,是不是主动增加分外的空格,它可选的值为yes、no。


publicstaticfinaljava.lang.StringMEDIA_TYPE


  MEDIA_TYPE设定输入文档的MIME范例。

  假如设定XSLT引擎的输入属性呢?上面我们来总结一下:

  起首是猎取XSLT引擎(Transformer类)的缺省输入属性的汇合,这必要利用Transformer类的getOutputProperties()办法,前往值是一个java.util.Properties对象。


Propertiesproperties=transformer.getOutputProperties();


  然后是设定新的输入属性,好比:


properties.setProperty(OutputKeys.ENCODING,GB2312);
properties.setProperty(OutputKeys.METHOD,html);
properties.setProperty(OutputKeys.VERSION,4.0);
………………………………………………………


  最初是更新XSLT引擎(Transformer类)的缺省输入属性的汇合,这必要利用Transformer类的setOutputProperties()办法,参数是一个java.util.Properties对象。

  我们编写了一个新的程序,个中使用了OutputKeys类,用以把持XSLT引擎的输入属性,该程序的架构和前一个程序(AddRecord3.java)大抵不异,不外输入了局略有分歧。完全的代码请参考以下文件:AddRecord3.java(见附件)、user.xml(见附件)。该例子的运转情况为:WindowsXPProfessional、JDK1.3.1。为了可以一般编译运转AddRecord3.java这个程序,你必要到网址http://java.sun.com往下载安装JAXP1.1大概JavaXMLPack(JavaXMLPack内含JAXP了)。

办法四:利用XalanXMLSerializer

  办法四实际上是办法三的一个变种,它必要ApacheXalan和ApacheXerces的撑持才干够运转。例子代码以下所示:

//起首创立一个DOMSource对象,该机关函数的参数能够是一个Document对象
//doc代表变动后的DOMTree。
DOMSourcedomSource=newDOMSource(doc);

//创立一个DOMResult对象,一时保留XSLT引擎的输入了局。
DOMResultdomResult=newDOMResult();

//上面挪用JAXP中的XSLT引擎来完成输入DOMTree中的数据到XML文件中的功效。
//XSLT引擎的输出为DOMSource对象,输入为DOMResut对象。
try
{
//起首创立一个TransformerFactory对象,再由此创立Transformer对象。Transformer
//类相称于一个XSLT引擎。一般我们利用它来处置XSL文件,可是在这里我们使
//用它来输入XML文档。
TransformerFactorytf=TransformerFactory.newInstance();
Transformert=tf.newTransformer();

//设置XSLT引擎的属性(必不成少,不然会发生汉字成绩)。
Propertiesproperties=t.getOutputProperties();
properties.setProperty(OutputKeys.ENCODING,GB2312);
t.setOutputProperties(properties);

//关头的一步,挪用Transformer对象(XSLT引擎)的transform()办法,该办法的第一
//个参数是DOMSource对象,第二个参数是DOMResult对象。
t.transform(domSource,domResult);

//创立缺省的XalanXMLSerializer,利用它将一时寄存在DOMResult对象
//(domResult)中的内容以输入流的情势输入到输入介质中。
Serializerserializer=SerializerFactory.getSerializer
(OutputProperties.getDefaultMethodProperties(xml));

//设置XalanXMLSerializer的输入属性,这一步必不成少,不然也大概发生
//所谓的汉字成绩。
Propertiesprop=serializer.getOutputFormat();
prop.setProperty(encoding,GB2312);
serializer.setOutputFormat(prop);

//创立一个File对象,代表DOMTree所包括的数据的输入介质,这是一个XML文件。
Filef=newFile(xuser3.xml);

//创立文件输入流对象fos,请寄望机关函数的参数。
FileOutputStreamfos=newFileOutputStream(f);

//设置XalanXMLSerializer的输入流。
serializer.setOutputStream(fos);

//串行化输入了局。
serializer.asDOMSerializer().serialize(domResult.getNode());
}
catch(Exceptiontce)
{
tce.printStackTrace();
}

  这个办法不太经常使用,并且仿佛有点多此一举,以是我们就不睁开会商了。完全的例子请参考以下文件:AddRecord4.java(见附件)、user.xml(见附件)。该例子的运转情况为:WindowsXPProfessional、JDK1.3.1。为了可以一般编译运转AddRecord4.java这个程序,你必要到网址http://xml.apache.org/dist/往下载安装ApacheXalan和ApacheXerces。

  大概是到网址http://java.sun.com/xml/download.html往下载安装JavaXMLPack。由于最新的JavaXMLPack(Winter01版)包括了ApacheXalan和ApacheXerces手艺在内。

  结论:

  本文大略的会商了Java言语编程中更新XML文档的四种办法。第一种办法是间接读写XML文件,这类办法非常烦琐,并且对照简单堕落,少少利用,除非你必要开辟本人的XMLParser,不然不会利用这类办法。第二种办法是利用ApacheCrimson的XmlDocument类,这类办法极其复杂,利用便利,假如你选用ApacheCrimson作为XML剖析器,那末无妨利用这类办法,不外这类办法仿佛效力不高(源于效力低下的ApacheCrimson),别的,高版本的JAXP大概是JavaXMLPack、JWSDP不间接撑持ApacheCrimson,亦即这类办法欠亨用。第三种办法是利用JAXP的XSLT引擎(Transformer类)来输入XML文档,这类办法大概是尺度的办法了,利用起来非常天真,出格是能够自若把持输入格局,我们保举接纳这类办法。第四种办法是第三种办法的变种,接纳了XalanXMLSerializer,引进了串行化操纵,关于大批文档的修正/输入有优胜性,惋惜的是要反复设置XSLT引擎的属性和XMLSerializer的输入属性,对照贫苦,并且依附于ApacheXalan和ApacheXerces手艺,通用性略显不敷。

  除下面会商的四种办法之外,实践上使用其余API(好比JDOM、Castor、XML4J、OracleXMLParserV2)也有良多举措能够更新XML文档,限于篇幅,在这里就纷歧一会商了。



作者Blog:http://blog.csdn.net/wwwnxcn/

C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-21 11:09:06 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
再见西城 该用户已被删除
板凳
发表于 2015-1-25 11:06:02 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
莫相离 该用户已被删除
地板
发表于 2015-1-27 23:48:08 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-2 19:37:02 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
飘灵儿 该用户已被删除
6#
发表于 2015-2-8 04:36:14 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
乐观 该用户已被删除
7#
发表于 2015-2-8 05:43:04 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
8#
发表于 2015-2-11 08:30:10 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
不帅 该用户已被删除
9#
发表于 2015-3-2 03:35:55 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
小女巫 该用户已被删除
10#
发表于 2015-3-4 16:34:42 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
变相怪杰 该用户已被删除
11#
发表于 2015-3-11 12:56:12 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
金色的骷髅 该用户已被删除
12#
发表于 2015-3-17 07:10:15 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
若相依 该用户已被删除
13#
发表于 2015-3-21 11:17:45 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
爱飞 该用户已被删除
14#
发表于 2015-3-22 22:13:43 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
因胸联盟 该用户已被删除
15#
发表于 2015-3-28 03:43:33 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
蒙在股里 该用户已被删除
16#
发表于 2015-4-1 07:19:48 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
第二个灵魂 该用户已被删除
17#
发表于 2015-4-1 19:12:22 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
柔情似水 该用户已被删除
18#
发表于 2015-4-5 14:23:29 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
山那边是海 该用户已被删除
19#
发表于 2015-4-15 13:10:27 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 02:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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