java中的重量级与轻量级概念

简介: java中的重量级与轻量级概念
+关注继续查看

首先轻量级与重量级是一个相对的概念,主要是对应用框架使用方便性和所提供服务特性等方面做比较的。


比方说EJB就是一个重量级的框架,因为它对所编写的代码有限制,同时它也提供分布式等复杂的功能。


相比之下,Spring就是轻量级框架,因为它需要的只是普通的Java对象,它所提供的也只是足够中小应用使用的功能。


但是,随着Spring的发展,它也所具有的功能也越来越强大,而EJB的使用也在变得简单,所以这随着技术的发展,这个概率也需要更新。毕竟它的出现是为了和使用复杂的框架做区别,那么当各家都在不断吸收对方长处的时候这个界线就没有那么明显了。


其实:划分一个应用是否属于轻量级还是重量级,主要看它使用了多少服务.使用的服务越多,


容器要为普通java对象做的工作就越多,必然会影响到应用的发布时间或者是运行性能.


对于spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,应用需要某种服务,还需要指明使用该服务,如果


应用使用的服务很少,如:只使用了spring核心服务,那么我们可以认为此时应用属于轻量级的,如果应用使用了spring提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能,所以它属于重量级。


另外:轻量级组件是用JAVA代码画出来的,这样具有平台移植性


而重量级组件是调用操作系统的函数画出来的组件,比如主窗体


一般来说尽量用轻量级的组件,这样对程序的移植性很好


一般javax.swing包里的组件大部分是轻量级的


java.awt里面的是重量级的



Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级( light-weight)组件,没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。由于AWT组件通过与具体平台相关的对等类(Peer)实现,因此Swing比AWT组件具有更强的实用性。Swing在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。


总的说来:


重量级组件:运行平台必须存在一个对应的组件.


轻量级组件:在一个虚拟的画布上画出来的组件(所以swing较慢),所有轻量级组件"最终"要放到重量级组件(jframe,jdialog)中.由于是画出来所以能做到各种平台上一致的表现.同样,如果混合重量级组件和轻量级组件容易引起重叠上的冲突.


JDK 1.2 之后,Java 有了另一组 GUI 的 API,叫做 Swing。因为 Swing 是 lightweight 的 API,所以无所不能,不但有各式各样先进的组件,而且连组件风格都可抽换。Swing 出现之后,大家很快地就不太使用 AWT 了。


不要以为 Swing 是用来取代 AWT 的,其实 Swing 是架构在 AWT 之上做出来的(Swing 有四个 heavyweight 组件),没有 AWT,也就不会有 Swing。Swing 的出现只是减少程序员直接使用 AWT 的机会,而不会让 AWT 消失。


目录
相关文章
|
2月前
|
网络协议 Java 程序员
Java网络编程----网络的相关概念
Java网络编程----网络的相关概念
|
2月前
|
机器学习/深度学习 存储 算法
3.1 Java多维数组探秘:二维数组的概念与应用
3.1 Java多维数组探秘:二维数组的概念与应用
35 0
|
2月前
|
设计模式 Java
1.1什么是Java内部类:概念与分类
1.1什么是Java内部类:概念与分类
31 0
|
3月前
|
Java 调度
java多线程概念
Java多线程编程涉及以下重要概念: 线程状态:线程可以处于不同的状态,如新建、就绪、运行、阻塞和终止状态。 线程同步:当多个线程同时访问共享资源时,可能会引发竞态条件(Race Condition)和数据不一致的问题。Java提供了多种同步机制,如使用synchronized关键字、Lock对象、volatile关键字等,来确保多线程访问共享资源的安全性。 线程通信:多个线程之间可能需要进行协作和通信。Java提供了wait()、notify()和notifyAll()等方法来实现线程之间的通信。 线程调度:Java的线程调度器负责决定哪个线程在特定时刻执行。线程调度可以通过设置线程
41 0
|
3月前
|
Java
Java中锁的概念详解
在多线程编程中,为了保证数据的一致性和避免竞态条件,我们需要使用锁机制来控制对共享资源的访问。Java提供了多种锁机制,本文将详细介绍Java中锁的概念、使用方法和相关特性。
67 0
|
3月前
|
Java 编译器 C++
java入门概念个人理解之package与import浅析
java入门概念个人理解之package与import浅析
48 0
|
4月前
|
Java 编译器 开发者
【Java新特性学习 一】JDK5: 注解的概念和使用
【Java新特性学习 一】JDK5: 注解的概念和使用
31 0
|
4月前
|
存储 安全 Java
Java 泛型:概念、语法和应用
Java 泛型:概念、语法和应用
|
5月前
|
安全 JavaScript Java
极简 Java 工作流概念入门
极简 Java 工作流概念入门
|
5月前
|
Java 编译器
Java中最基础的概念(了解一下
Java中最基础的概念(了解一下
相关产品
云迁移中心
推荐文章
更多