当前位置: 首页 > 面试题库 >

Java 什么是JavaBean?

堵德曜
2023-03-14
问题内容

我认为,“ Bean”是具有属性和getter / setter的Java类。据我了解,它等效于C结构。真的吗?

另外,bean和常规类之间是否存在真正的语法差异?有没有特殊定义或接口?

基本上,为什么有一个术语呢?

还什么的Serializable接口是什么意思?


问题答案:

JavaBean只是一个标准

  1. 所有私有属性(使用getters / setters)
  2. 一个公开的无参数构造函数
  3. 实施Serializable。

而已。这只是一个约定。尽管很多图书馆都依赖它。

关于Serializable,来自API文档:

通过实现java.io.Serializable接口的类,可以启用类的可序列化性。未实现此接口的类将不会对其状态进行序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

换句话说,可序列化的对象可以写入流,因此可以写入文件,对象数据库,甚至任何东西。

而且,JavaBean和另一个类之间在语法上没有区别-如果一个类遵循标准,则它就是JavaBean。

之所以有一个术语,是因为该标准允许库以编程方式对你以预定义方式定义的类实例进行操作。例如,如果一个库要流式传输你传递给它的任何对象,它就知道可以,因为你的对象是可序列化的(假设lib要求你的对象是正确的JavaBeans)。



 类似资料:
  • 主要内容:什么是Java语言,Java语言的特点Java 是近 10 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移反而变得更加强大。 从首次发布开始,Java 就跃到了 Internet 编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java 依然是开发基于 Web 的应用程序的最佳选择。此外,Java 还是智能手机变革的推手

  • 问题内容: 简单地说,什么是Java ClassLoader?何时使用Java?为什么? 好的,我读了一篇维基文章。ClassLoader加载类。好。因此,如果我包含jar文件并导入,则ClassLoader可以完成这项工作。 我为什么要打扰这个ClassLoader?我从未使用过它,也不知道它的存在。 问题是,为什么ClassLoader类存在?而且,您如何在实践中使用它?(案例存在,我知道。)

  • YAML是JSON的一个超集,可以非常方便地将外部配置以层次结构形式存储起来。YAML可以作为properties配置文件的替代。 YAML使用的注意事项: 在properties文件中是以"."进行分割的,在yml中是用"."进行分割的; yml的数据格式和json的格式很像,都是K-V格式,并且通过":"进行赋值; 每个冒号后面一定要加一个空格;

  • JavaConfig是Spring3.0新增的概念,就是以注解的形式取代Spring中繁琐的xml文件。 JavaConfig结合了xml的解耦和java编译时检查的优点。 @Configuration,表示这个类是配置类; @ComponentScan,相当于xml的<context:componentScan basepackage=>; @Bean,相当于xml的<bean id="stud

  • 主要内容:1 Java Swing是什么,2 AWT与Swing的区别,3 JFC是什么,4 Swing的体系结构1 Java Swing是什么 Java Swing是Java基础类(JFC)的一部分,用于创建基于窗口的应用程序。它建立在AWT(抽象窗口工具包)API的顶部,并且完全用Java编写。 与AWT不同,Java Swing提供了平台无关的轻量级组件。 javax.swing包提供了Java swing API的类,例如JButton,JTextField,JTextArea,JRad

  • 问题内容: 这个名字真的让我失望。我希望有人能以一种我不会忘记的方式来解释它:) 问题答案: 遵循特定约定的任何可序列化的Java类(实现java.io.Serializable):无参数构造函数,以及可通过get / set / is访问器访问的属性。 这个想法是使其可预测,以便可以通过反射自动发现属性等,这对工具和框架开发很有帮助。