javaswing选择题_经典JavaSwing⾯试题(附答案)
Swing是新⼀代的图形界⾯⼯具,是⼀种轻量级组件,它采⽤纯java实现,不依赖于本地平台的图形界⾯。这篇⽂章整理了关于Java
Swing⾯试题,有⾯试需要的朋友们可以学习下⾯的内容。
1、Swing的基本概念是什么?
答:Swing是java中的GUI⼯具包。是为解决AWT存在的问题⽽新开发的图形界⾯包,包括了图形⽤户界⾯(GUI)器件如:⽂本框,按钮,分隔窗格和表。Swing是对AWT的改良和扩展。
2、AWT和Swing之间的区别是什么?
答:(1)AWT是基于本地⽅法的C/C++程序,其运⾏速度⽐较快;Swing是基于AWT的java程序,其运⾏速度⽐较慢;(2)AWT的控件在不同的平台可能表现不同,⽽Swing在所有平台表现⼀致。
3、哪些Swing的⽅法是线程安全的?
答:只有3个线程安全的⽅法:repaint()、 revalidate()、and invalidate()。
4、AWT和Swing实现原理的对⽐?
答:AWT的图形函数与操作系统提供的图形函数有着⼀⼀对应的关系。也就是说,当我们利⽤ AWT构件图形⽤户界⾯的时候,实际上是在利⽤操作系统的图形库。
不同的操作系统其图形库的功能可能不⼀样,在⼀个平台上存在的功能在另外⼀个平台上则可能不存在。为了实现java语⾔所宣称的"⼀次编译,到处运⾏"的概念,AWT不得不通过牺牲功能来实现平台⽆关性。因此,AWT的图形功能是各操作系统图形功能的“交集”。因为AWT是依靠本地⽅法来实现功能的,所以AWT控件称为“重量级控件”。⽽Swing ,不仅提供了AWT的所有功能,还⽤纯粹的Java代码对AWT的功能进⾏了⼤幅度的扩充。
5、Swing类库结构是怎样的?
答:
(1)Swing围绕JComponent组件构建,JComponent是由AWT得容器类扩展⽽来;(2)Swing组件除了AbstractButton类之外都以J来头;(3)Swing容器组件直接继承AWT类库中的容器组件类,其他⼤部分组件都是继承 JComponet 组件;(3)组件可以划分为容器组件和⾮容器组件,容器组件包括 JFmme和JDialog。其中JComponent定义了⾮容器类的轻量级组件(JBntton、JMenu等);(4)组件分容器组件和⾮容器组件,容器组件⾥⾯⼜分顶层容器和中间容器。
6、Swing容器分类有什么?
javaswing实现购买答:常见的窗⼝就是⼀种容器。容器本⾝也是⼀种组件,它的作⽤就是⽤来组织、管理和显⽰其他组件。Swing中容器可以分为两类:顶层容器和中间容器。
顶层容器是任何图形界⾯程序都要涉及的主窗⼝,是显⽰并承载组件的容器组件,在Swing中有三种可以使⽤的顶层容器,分别是JFrame、JDialog和JApplet。
中间容器是容器组件的⼀种,也可以承载其他组件,但中间容器不能独⽴显⽰,必须依附于其他的顶层容器。常见的中间容器有JPanel、JScrollPane、JTabbedPane和JToolBar。
7、Swing在GUI速度⽅⾯的不⾜之处是什么?
答:⽐AWT和SWT更多的内存消耗。Swing⾃⼰实现了所有组件。因此,它在运⾏时装载了⼤量的类。⼀些其他的问题来源于⼩的可变对象的创建,如Rectangle,Point,这些对象基于同步的考虑通常不可重⽤。java在堆上创建所以对象。⼩的对象通常导致了额外的堆空间消耗。许多⼩的对象较之⼤对象更难以有效地被垃圾回收。因此,Swing应⽤程序通常⽆法及时回收⼤⽽⼩的对象。这种情况的普遍就会导致性能下降。
更多的启动时间。现在JVM已经快得多了,许多⼈甚⾄扬⾔它可以媲美C++的实现。但多数的java应
⽤程序还是看上去很慢。实际上,java 性能的很多问题来源于类装载机制。这是⼀个I/O操作,故⽽能够明显地降低java应⽤程序的速度。Swing通常包含了上千个Swing类的使⽤,在Swing应⽤程序可以显⽰它的主窗⼝之前,它⽐AWT或SWT装载了多得多的类。这严重降低了Swing的启动时间,这种问题也许会相对好⼀点如果Swing的类是以共享系统库的⽅式预加载的。
8、Swing的优点有哪些?
答:Swing是SUN推荐使⽤的GUI⼯具集,通过⼏个本版的修改和扩展后,现在的swing在某些领域有着明显优势:
(1)丰富的组件类型:Swing提供了⾮常⼴泛的标准组件。这些组件和SWT⼀样丰富。基于它良好的可扩展性,除了标准组件,Swing还提供了⼤量的第三⽅组件。许多商业或开源的Swing组件库在开发多年后都已经可以⽅便地获取了。
(2)丰富的组件特性:Swing不仅包含了所有平台上的特性,它还⽀持根据程序所运⾏的平台来添加额外特性,Swing组件特性遵循特定原则,易于扩展,因此能够提供较SWT和AWT更多的功能。
(3)好的组件API模型⽀持:Swing遵循MVC模式,这是⼀种⾮常成功的设计模式。它的API成熟并设计良好。经过多年的演化,Swing组件APIs变得越来越强⼤,灵活和可扩展。它的API设计被认为是最成功的GUI API之⼀。较之SWT和AWT更⾯向对象,也更灵活⽽可扩展。
(4)标准的GUI库:Swing和AWT⼀样是JRE中的标准库。因此,你不⽤单独地将它们随你的应⽤程序⼀起分发。它们是平台⽆关的,不⽤担⼼平台兼容性。
(5)成熟稳定:由于它是纯java实现的,不会有SWT的兼容性问题,Swing在每个平台上都有相同的性能,不会有明显的性能差异。
(6)可扩展和灵活性:Swing完全由java代码实现。Swing基于MVC的结构使得它可以发挥java作为⼀门⾯向对象语⾔的优势,提供了许总体上良好的性能。
以上就是今天对java Swing⾯试题的整理,Swing提供了更多的图形界⾯组件,可以开发出美观的图形界⾯程序,所以Swing也是java程序员们需要会使⽤的图形界⾯⼯具,希望在java⾯试中遇到关于Swing⾯试题时,⼤家可以顺利作答,顺利通过⾯试。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论