|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!原本估计J2se只讲了第四篇就扫尾了,但是版主厚爱把帖子置顶临时让人人扫瞄让小弟倍感义务严重,务必寻求最到更好,以是关于J2se一些没有提到的部分,决意再写几篇把经常使用的部分履历全体写出来供人人会商商讨。这一篇筹办讲一讲Xml剖析包和JavaSwing,然后下一篇再讲java.security包关于Java沙箱平安机制和RMI机制,再进进J2ee的部分,临时就做如许的企图了。假如因为练习忙碌更新略微慢了一些,但愿列位包涵!
1.Java关于XML的剖析
信任人人对XML都不生疏,寄义是可扩大标志言语。自己它也就是一个数据的载体以树状体现情势呈现。厥后渐渐的数据酿成了信息,区分是信息能够包含可变的形态从而针对程序硬编码的做法厘革为针对一致接口硬编码而可变形态作为信息进进了XML中存储。如许改动形态完成扩大的独一事情是在XML中增加一段文本信息就能够了,代码不必要修改也不必要从头编译。这个天真性是XML出生时分谁也没想到的。
固然,假如接口要能提取XML中设置的信息就必要程序能剖析标准的XML文件,Java中固然要进步包对这个举动举行有益撑持。笔者盘算讲到的两个包是org.w3c.dom和javax.xml.parsers和。(人人能够扫瞄一下这些包两头的接口和类界说)
Javax.xml.parsers包很复杂,没有接口,两个工场配两个剖析器。明显剖析XML是有两种体例的:DOM剖析和SAX剖析。实质上并没有谁好谁欠好,只是完成的头脑纷歧样而已。给一个XML文件的例子:
<?xmlversion=”1.0”encoding=”UTF-8”>
<root>
<childname=”Kitty”>
ACat
</child>
</root>
所谓DOM剖析的思绪是把全部树状图存进内存中,必要谁人节点只必要在树上搜刮就能够读到节点的属性,内容等,如许的优点是一切节点皆在内存能够重复搜刮反复利用,弱点是必要损耗响应的内存空间。
天然SAX剖析的思绪就是为了克制DOM的弱点,以事务触发为基础思绪,按次的搜刮上去,碰着了Element之前触发甚么事务,碰着以后做甚么举措。因为必要本人来写触发事务的处置计划,以是必要借助别的一个自界说的Handler,处于org.xml.sax.helpers包中。它的长处固然是不必全部包都读进内存,弱点也是只能按次搜刮,走完一遍就得重来。
人人很简单就可以猜到,打仗到的J2ee框架用的是哪种,明显是DOM。由于相似Struts,Hibernate框架设置文件究竟是很小的一部分派相信息,并且必要频仍搜刮来读取,固然会接纳DOM体例(实在SAX外部也是用DOM接纳的布局来存储节点信息的)。如今不管用甚么框架,还真难发明利用SAX来剖析XML的手艺了,假如哪位仁兄晓得,请让笔者也进修进修。
既然剖析体例有了,那末就必要有剖析的存储地位。不晓得人人是不是发明org.w3c.dom这个包是没有完成类全体都是接口的。这里笔者想说一下Java怎样对XML剖析是Jdk应当思索的事,是它的义务。而w3c构造是保护界说XML尺度的构造,以是一个XML布局是怎样的由w3c说了算,它不体贴Java怎样往完成,因而乎划定了一切XML存储的布局应当遵守的划定规矩,这就是org.w3c.dom里全体的接口目标地点。在笔者看来,复杂了解接口的观点就是完成者必需恪守的准绳。
全部XML对应的布局叫Document、子元素对应的叫做Element、另有节点相干的Node、NodeList、Text、Entity、CharacterData、CDATASection等接口,它们都能够在XML的语法两头找到绝对应的寄义。因为这里不是解说XML基础语法,就未几先容了。假如人人感乐趣,笔者也能够专门写一篇关于XML的语律例则帖与人人分享一下。
2.JavaSwing
Swing是一个让人又爱又恨的工具,心爱的地方在于上手很简单,较AWT比起来Swing供应的界面功效加倍壮大,可爱的地方在于编庞大的界面事情量其实是伟大。笔者写过凌驾3000行的Swing界面,感到用户体验还不是那末优异。比来又写过凌驾6000行的,因为功效模块多了,全体效果还只是一样平常般。体味最深的就一个字:累!以是人人如今都连续不怎样用Swing在真正开辟的项目上了,太多界面手艺能够代替它了。笔者往写也是迫于无法组内里人人都没写过,我不上天域谁进?
只管Swing渐渐的在被人疏忽,出格是跟着B/S渐渐的在吞没C/S,笔者却是很乐意站出来为Swing正身。每项手艺的把握毫不是为了盛行时髦跟风。真正喜好Java的伴侣们仍是应当好好体味一下Swing,信任在校的良多先生也良多在进修它。极可能从Jdk1.1、1.2走过去的良多年夜学先生多是最不熟习它的。
Swing供应了一组轻组件统称为JComponent,它们与AWT组件的最年夜区分是JComponent全体都是Container,而Container的特性是内里能够装载其余组件。在Swing组件中不管是JButton、JLabel、JPanel、JList等都能够再装进任何其他组件。优点是程序员能够对Swing组件完成“再开辟”,针对特定需求构建本人的按钮、标签、画板、列表之类的特定组件。
有轻天然就有重,那末轻组件和重组件区分是?重组件体现出来的形状因操纵体系分歧而异,轻组件是Swing本人供应GUI,在跨平台的时分最年夜水平的坚持分歧。
那末在编程的时分要注重一些甚么呢?笔者谈谈本人的几点履历:
a.明白一个观点,只要Frame组件才能够独自显现的,大概有人会说JOptionPane内里的静态办法就完成了独自窗口呈现,但寻找源代码会发明实在实际出来的Dialog也必要依托一个Frame窗体,假如没有指定就会默许发生一个然后装载这个Dialog显现出来。
b.JFrame是由这么几部分构成:
最底下一层JRootPane,下面是glassPane(一个JPanel)和layeredPane(一个JLayeredPane),而layeredPane又由contentPane(一个JPanel)和menuBar组成。我们的组件都是加在contentPane上,而背景图片只能加在layeredPane下面。至于glassPane是一个通明的掩盖了contentPane的一层,在特定效果中将被使用到来纪录鼠标坐标或掩盖组件。
c.为了加强用户体验,我们会在一些按钮上增加快速键,但Swing内里一般只能辨认键盘的Alt键,要到场其他的快速键,必需本人完成一个ActionListener。
d.经由过程setLayout(null)可使得一切组件以setBounds()的四个参数来准确定位各自的巨细、地位,但不保举利用,由于好的编程作风不该该在Swing代码中硬编码详细数字,一切的数字应当以常数的情势一致存在一个静态无实例资本类文件中。这个静态无实例类一致卖力Swing界面的作风,包含字体和色彩都应当包含出来。
e.好的界面计划有一条GoldenRule:用户不必任何手册经由过程多数实验就可以学会利用软件。以是只管把按钮以菜单的情势(不论是右键菜单仍是窗体自带顶部菜单)出现给主顾,除非是频仍点击的按钮才有需要间接出现在界面中。
实在Swing的功效是相称壮大的,只是如今使用不普遍,专门往研讨也许是要花很多工夫的。笔者在各网站论坛扫瞄关于Swing的技能文章仍是对照可托的,本人所学十分无限,大家体味对Swing各个组件的把握就是一个理论堆集的历程。笔者只用到过以上这些,以是只能谈谈部分设法,还看人人包涵!来自:http://topic.csdn.net/u/20070924/21/18482496-082f-4907-8751-b80ab5d56622.html?seed=1386683868
轮性能微软曾做过一个例子,就是同一个项目用java和.net网页编程来作,结果开发周期,.net网页编程是java的一半,性能java是.net网页编程的十分之一,代码量java是.net网页编程的三倍。呵呵,这说明了什么,.net网页编程的全方位比java好。但是有的人说.net网页编程不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net网页编程很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net网页编程,只是推出了跨语言的.net网页编程, |
|