每日一道面试题之介绍一下Java Bean并谈谈它的命名规范~

简介: 每日一道面试题之介绍一下Java Bean并谈谈它的命名规范~

JavaBean 介绍:

JavaBean 是一种用于创建可重用组件的约定,它通常用于在不同的 Java 应用程序和框架之间传输和保存数据

在用户界面中,JavaBean 通常表示用于显示或输入数据的表单控件。在企业应用程序中,JavaBean 通常表示业务对象或数据处理对象,它们封装着应用中的数据和业务逻辑。


JavaBean将一些数据封装在一起,以提供更加简便的访问,其主要目的是将业务应用程序的业务逻辑与视图界面分离,使它们彼此独立并减少它们之间的依赖性,即使更改业务逻辑也不会影响用户界面,例如我们学过的MVC模式就是一个最典型的例子,其中Model代表数据和业务逻辑,View代表用户界面,Controller负责协调这两个组件之间的交互并控制应用程序的流程,MVC 模式可以将业务逻辑和视图分开,从而可以更简单地进行开发,提高代码的可重用性,并且使应用程序更易于维护。


什么样的Java类可被称之为JavaBean?

JavaBean其实是一个 Java 类,它具有可重用性和可扩展性的特点,满足以下条件的Java类才能被称为JavaBean :

1. 公共的无参构造函数:在Javabean中,我们既可以定义无参构造函数,也可以定义其他的构造函数,但必须满足至少含有无参构造函数。
2. 私有的成员变量和公共的方法:JavaBean 中的实例变量都必须定义为私有的,而这些实例变量的修改和访问都是通过公共的setter和getter方法,以便外部代码可以通过这些方法访问和修改 JavaBean 的状态。
规定getter 和 setter 方法命名规则要么是 get/set+属性名首字母大写格式,要么是 is/set+布尔型属性名。
3. 序列化支持:JavaBean 支持序列化,因此它必须实现Serializable接口,那我们可以将 JavaBean 对象序列化为字节流,以便发送到其他系统或写入文件系统

JavaBean的命名规范:

Bean 类的命名规范是非常重要的,因为遵循 Bean 类的命名规范,可以使代码更加易于理解和维护

在 Java 中,Bean 类的命名规范如下:

类名称:

类名必须是一个名词以大写字母开头类名必须使用驼峰式命名法。例如,Person、Student 等。

属性名称:

1:属性名称必须以小写字母开头,且必须使用驼峰式命名法,例如,firstName、lastName等。


2:属性名应该具有描述性,能够清晰地表达属性的含义。例如:age、gender、email。


3:属性名不应该使用缩写,除非是广泛使用的缩写,例如:URL、HTML。


4:属性名不应该使用 Java 关键字或保留字,例如:class、interface、public,private…


5:属性名不应该使用特殊字符,例如:$、#、@。


6:属性名应该避免使用数字作为开头,例如:2ndName。


7:属性名应该避免使用单个字母作为名称,例如:x、y、z。


8:属性名应该避免使用过长的名称,例如:thisIsAVeryLongPropertyName。


getter 和 setter 方法名称:

getter 和 setter 方法名称必须是属性名称的"get"和"set"前缀,其中 get 和 set 不区分大小写并且属性名称的首字母需要大写。例如,getFirstName、setAge 等。

Boolean 类型属性的 getter 方法名称:

如果属性是 Boolean 类型的,则 getter 名称应该是 “is” + 属性名,例如,isMarried()。

构造方法名称:

Bean 类应该提供一个无参的构造方法,构造方法名称应该与类名相同。

下述为一个规范的JavaBean的创建实例:

import java.io.Serializable;
public class EmployeeBean implements Serializable {//实现序列化接口
    //私有的属性
    private String firstName; 
    private String lastName; 
    private int age; 
    //公共的无参构造
    public EmployeeBean() {
    }
    //公共的setter和getter方法
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
相关文章
|
4月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
3月前
|
Java 程序员
java基础(5)标识符命名规则和命名规范
Java标识符命名规则包括只能使用数字、字母、下划线\_、$,且数字不能开头,不能使用关键字命名,且严格区分大小写。命名规范建议类名、接口名首字母大写,变量名、方法名首字母小写,常量名全大写。
106 2
|
1月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
1月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
1月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
58 4
|
2月前
|
Java 开发者
在Java编程中,正确的命名规范不仅能提升代码的可读性和可维护性,还能有效避免命名冲突。
【10月更文挑战第13天】在Java编程中,正确的命名规范不仅能提升代码的可读性和可维护性,还能有效避免命名冲突。本文将带你深入了解Java命名规则,包括标识符的基本规则、变量和方法的命名方式、常量的命名习惯以及如何避免关键字冲突,通过实例解析,助你写出更规范、优雅的代码。
67 3
|
2月前
|
算法 Java 数据中心
探讨面试常见问题雪花算法、时钟回拨问题,java中优雅的实现方式
【10月更文挑战第2天】在大数据量系统中,分布式ID生成是一个关键问题。为了保证在分布式环境下生成的ID唯一、有序且高效,业界提出了多种解决方案,其中雪花算法(Snowflake Algorithm)是一种广泛应用的分布式ID生成算法。本文将详细介绍雪花算法的原理、实现及其处理时钟回拨问题的方法,并提供Java代码示例。
92 2
|
2月前
|
JSON 安全 前端开发
第二次面试总结 - 宏汉科技 - Java后端开发
本文是作者对宏汉科技Java后端开发岗位的第二次面试总结,面试结果不理想,主要原因是Java基础知识掌握不牢固,文章详细列出了面试中被问到的技术问题及答案,包括字符串相关函数、抽象类与接口的区别、Java创建线程池的方式、回调函数、函数式接口、反射以及Java中的集合等。
37 0
|
4月前
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。
|
4月前
|
Java
【Java基础面试三十七】、说一说Java的异常机制
这篇文章介绍了Java异常机制的三个主要方面:异常处理(使用try、catch、finally语句)、抛出异常(使用throw和throws关键字)、以及异常跟踪栈(异常传播和程序终止时的栈信息输出)。
下一篇
DataWorks