我是Java世界的新手(低级纯C语言的7年)。
当我开始阅读Java相关站点时:
我对现有术语感到困惑:
但是这些资源中的每一个都是根据自己的目的定义它们的,在一般情况下,我仍然无法区分例如模块与组件。
请从总体上解释这些术语的含义(可以是一个平台的单一类,制造容器需要多少模块,等等)。
更新2019
从https://www.artima.com/lejava/articles/reuse3.html(我的重点)
Bill Venners :框架,平台和工具包之间有什么区别,灵活性需求有哪些不同?
埃里希·伽玛(Erich Gamma) :通过这个 平台, 我可以保证 长期稳定性 。在平台之上构建是安全的。平台做出
兼容性 保证。框架通常没有这种质量,我已经看到 许多框架 在 稳定性
方面的失败。如果您查看Eclipse,是的,它包括框架,工具包,并提供平台API。所有这些都作为插件捆绑在一起。
框架抽象并提供更高级别的默认功能 。为此, 需要控制框架 。这种失控可能导致有时被称为框架炎。Bill Venners :工具包不是因为…
Erich Gamma :使用 工具箱, 您可以 创建和调用工具箱对象,并注册侦听器以对事件做出反应 。你 在掌控之中 。
框架试图控制并告诉您什么时候该做什么 。一个 工具包 为您提供了 基石 ,但保留这些给你是在控制。
另一段引文回答了我幼稚的问题:多少个类使某个框架成为一个框架:
https://www.artima.com/lejava/articles/reuse.html
Erich Gamma
:…例如,JUnit是一个小型框架。这是框架的“世界,你好”。你有Test
,TestCase
,TestSuite
和关系定义。另外,您可以通过在某个地方进行子类化来进入框架。他们使用好莱坞的“不给我们打电话,我们给你打电话”的原则。该框架允许您定义自定义行为,并且在轮到您做某事时会回叫您。与JUnit相同,对吗?当它想为您执行测试时,它会回叫您,但其余的工作在框架中完成。
class
类是在基于类的面向对象编程中创建对象的蓝图。在学习有关Java的任何其他知识之前,您应该学习OOP的基础知识并了解什么是对象,什么是类,什么是继承,多态性,封装。
package
包是名称空间;它让您处理命名冲突。如果它们在不同的程序包中,则基本上可以让您拥有两个名为Employee的类。
module
它可能是指Java库的分发和使用方式-JAR,WAR,EAR。
component
可以被视为AWT(或Swing中的JComponent)中GUI的基类,也可以被视为EJB的一种-
满足某些要求的POJO(普通Java对象)。可能有其他含义,并取决于上下文。
container
在企业应用程序中,您显然最终会使用一些库和Java EE。关于Java
EE库的事情是,它仅提供API接口而不提供实现。然后,将您编写和构建的应用程序部署到container
Java EE
API实施随附的服务器中。容器有两种类型:Web容器(仅用于实现Web特定技术)和完整的Java EE容器(与Web和其他Java EE技术的实现一起使用-
命名服务,持久性,事务等)。
service
Java中没有特殊含义。它可能与Web服务有关,该Web服务基本上提供了网络上进程间通信的高级方法。
platform
Java中没有特殊含义;它可以被视为基础开发平台(Windows,Linux)或云趋势,它可以指的是平台即服务,其中云提供商附带了基础架构和其他基本软件(操作系统,数据库,容器)。
🕒 岗位/面试时间 64min 1.聊项目 2.怎么处理粘包问题 3.netty线程模型 4.synchronized与reenterlock 5.cas与锁的区别 6.项目并发线程数 7.公平锁与非公平锁,项目中那种锁用的多,实际场景那种锁用的多 8.IO密集型与CPU密集型,你的项目是哪种类型,为什么 9.场景题:多个用户申请加入公会,多个审核员同时审核请求,只有一个名额,如何设计实现并发?
自我介绍 实习工作介绍 八股:new和malloc区别 用delete删除用malloc分配的会有什么影响 C++运行时的多态 算法 删除链表中指定元素结点 进行的很快,挂的也很快出来就挂了😅,感觉面试官好像很急。 #完美世界面经##2023校招#
easySwoole实现了简单版的IOC,使用 IOC 容器可以很方便的存储/获取资源,实现解耦。 注意:在服务启动后,对IOC容器的获取/注入仅限当前进程有效。不对其他worker进程产生影响。 方法列表 getInstance $di = Di::getInstance(); set 函数原型:set($key, $obj,…$arg) key:键名 obj:要注入内容。支持注入对象名,对象实
让我们开始定义一个新的组件,我们将用来显示信用卡信息。 credit-card.component.ts 此组件依靠获取信用卡号,并通过creditCardMask管道隐藏掉除最后4位之外的数字。 credit-card-mask.pipe.ts 一切就绪后,我们现在可以在根组件中使用 。 app.component.ts app.module.ts 注意,我们已将组件CreditCardComp
Macaron 会注入一些默认服务来驱动您的应用,这些服务被称之为 核心服务。也就是说,您可以直接使用它们作为处理器参数而不需要任何附加工作。 请求上下文(Context) 该服务通过类型 *macaron.Context 来体现。这是 Macaron 最为核心的服务,您的任何操作都是基于它之上。该服务包含了您所需要的请求对象、响应流、模板引擎接口、数据存储和注入与获取其它服务。 使用方法: pa
问题内容: 我是从C#和ASP.NET MVC来学习Java的,我很想在Java世界中找到可以在Google App Engine上使用的等效语言。我已经开始玩FreeMarker,甚至迈出了编写一个非常简单的框架的第一步。理想情况下,虽然我不必做所有艰苦的工作,但一定有人已经做到了!所以我的问题是- 从ASP.NET MVC那里可以找到我熟悉的哪些框架,并且可以在Java的Google App