JavaBean-一个“豆子”的故事

Matplotlib字体警告终结者:为什么总提示DejaVu Sans?5种场景解决方案大全 本文深入解析Matplotlib中常见的DejaVu Sans字体警告问题,并提供5种典型场景的完整解决方案。从理解字体系统的三层架构和缓存机制,到解决中文显示、远程服务器部署、TeX渲染、缓存优化及生产环境配置等实际问题,帮助开发者彻底摆脱字体警告困扰,实现稳定可靠的数据可视化。 阅读详情

前言

初学java,看到各位大佬的学习资料,总会不断提到一个单词“JavaBean”,新手会一脸蒙蔽,这个究竟是个神马?

beans.jpeg

类

在说JavaBean前,我们还是先说类吧,这个我相信大家都知道是什么!好吧,还是简单解释下吧.

什么是类?

百度词条的解释如下:

类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

还有种看起来更有意思的互相解释的描述:

类是一类对象的抽象
对象是类的一个实例

我们抛开概念,其实,其实在编程世界中,类(class)就是用来定义现实存在的这么一个东西.
打个比方

比如人类和你我的关系.
人类就是一个类.描述一群人的这么一个概念.
而你/我是个对象,只是“人”类中的这么一个个体.

java中,我们代码上是这么描述一个类的:

//示例定义“人类”
class Person{
    private String name;
    private int age;
    public String getName(){
        return name;
    }
    public String getAge(){
        return age;
    }
    public void setName(String name){
        this.name = name;
    }
    public void setAge(int age){
        this.age = age;
    }
}

如上,我们定义了一个“人”类,这个人类有两个属性,一个是名字,另外一个是年龄.

什么是JavaBean?

理解了类的概念,那么,我们来理清,究竟什么是JavaBean!
我们先看专业的解释:

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。

JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去。所有遵循“一定编程原则”的Java类都可以被称作JavaBean。

由上概念,我们不难总结JavaBean的特点(或者叫遵循的编写规则):

  • 这个类必须具有一个公共的(public)无参构造函数;
  • 所有属性私有化(private);
  • 私有化的属性必须通过public类型的方法(getter和setter)暴露给其他程序,并且方法的命名也必须遵循一定的命名规范.
  • 这个类应是可序列化的.(比如可以实现Serializable 接口,用于实现bean的持久性)

这么一看,我们之前定义的“人”类就是一个JavaBean!

Java中常见的类

在Java开发中,经常会看到各种“POJO/PO/VO/BO/DTO”命名的类文件,这些其实都是类,
只不过根据他们的实际业务的使用场景后,做了细节区分.

POJO 简单无规则java对象(Plain Ordinary Java Object)

POJO是一个简单的、普通Java对象,它包含业务逻辑处理或持久化逻辑等,但不是JavaBean、EntityBean等,
不具有任何特殊角色,不继承或不实现任何其它Java框架的类或接口。 可以包含类似与JavaBean属性和对属性访问的setter和getter方法的.
一个POJO持久化以后就是PO。直接用它传递、传递过程中就是DTO。直接用来对应表示层就是VO。

一句话总结: 没受任何限制的Java对象

PO 持久对象 (persistent object)

po(persistent object)就是在Object/Relation Mapping框架中的Entity,
po的每个属性基本上都对应数据库表里面的某个字段。
完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。

一句话总结: 用来与数据表对应的Java对象

VO 值对象(Value Object)

通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。
但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。

一句话总结: 用于业务的Java对象

VO 视图对象(View Object)

表现层对象(View Object),主要对应展示界面显示的数据对象,
用一个VO对象来封装整个界面展示所需要的对象数据

一句话总结: 展示界面的Java对象

BO 业务对象层的缩写(Business Object)

封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。具体可以看网上的一个例子:
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。

一句话总结: 包含多个业务对象的Java对象

DTO 数据传输对象(Data Transfer Object)

就是接口之间传递的数据封装,DTO作用,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构。
类似与VO,用于页面展示时就是VO。

一句话总结: 用于数据传输的Java对象

请关注我的订阅号

订阅号.png

别再只当调包侠了!YOLO检测头到损失函数全链路拆解,看完才算真懂 YOLO的精妙不在于某个单一创新,而在于各模块围绕“实时精准检测”这一目标的协同设计。Backbone追求高效特征压缩,Neck保障多尺度信息流通,Head解耦任务冲突,Loss动态引导优化方向。只有理解这套内在逻辑,才能跳出“调包-试错”的低效循环,在面对新场景、新问题时做出有理有据的改进决策。技术深度决定职业天花板。下次再调YOLO时,不妨先问自己:我改的这个参数,到底影响了系统中的哪一环?参考资料。 阅读详情

相关推荐

雷赛控制卡全方位使用指南:从硬件连接到高级应用

雷赛控制卡以其接口简单、编程便捷、性价比高的特点,成为中小自动化设备的理想选择。使用时需注意:硬件连接需注重抗干扰设计(屏蔽线、接地);软件开发需合理配置运动参数(脉冲当量、加减速);调试阶段需充分利用 DMCStudio 工具验证性能。通过本文介绍的方法,可快速实现从硬件搭建到复杂运动控制的全流程开发,满足雕刻、切割、装配等多场景的自动化需求。

品质生活,极致编程。 3768

【Java】不会真的有人还不知道JavaBean是咖啡豆吧

我可以很自信的说:没错,真的还有人不知道JavaBean是什么,那个人就是我!!!

别下完这场雪 676

Codesys软运动控制进阶:用SMC_FreeEncoder为ECAT轴搭建一个“虚拟手轮”调试工具

本文详细介绍了如何利用Codesys的SMC_FreeEncoder功能为ECAT轴搭建虚拟手轮调试工具,解决自动化设备开发中的硬件依赖问题。通过软件模拟手轮脉冲信号,实现无硬件依赖的运动控制逻辑验证,显著提升调试效率。适用于汇川AM400等PLC平台,特别适合机械安装滞后或伺服驱动器故障时的调试场景。

weixin_33737774的博客 477

java web开发是不是jsp_Java Web开发之详解JSP

本文来自http://blog.youkuaiyun.com/chinacsharper/article/details/39855287#JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。...

weixin_30134531的博客 553

YOLOv8_obb的C++工程部署实战:从模型转换到实时视频推理

本文详细介绍了YOLOv8_obb模型在C++环境下的完整工程部署流程,涵盖从PyTorch模型到ONNX格式的转换、基于ONNX Runtime的C++推理引擎搭建、旋转框后处理解析,以及实时视频流处理与性能优化。文章重点解析了模型转换的关键参数、环境配置的常见问题、核心推理代码的实现,并提供了实用的避坑指南,旨在帮助开发者高效完成YOLOv8_obb的C++工程部署。

weixin_29100927的博客 44

基于Cadence IC617的共源级放大器设计:从直流到交流的virtuoso仿真实践

本文详细介绍了使用Cadence IC617的Virtuoso平台进行共源级放大器设计的完整仿真流程。从电路图绘制、直流工作点分析,到负载电阻RD的参数扫描及其对增益和带宽的影响,再到交流小信号频率响应仿真,提供了从理论到实践的全面指导,帮助初学者掌握模拟集成电路设计的核心仿真技能。

jj890的博客 476

关于命名那些事

JavaBean(Java 豆子) 在 JavaBeans API specification中这样写到: The goal of the JavaBeans APIs is to define a software component model for Java, so that third party ISVs can create and ship Java components that can be composed together into applications by end users

小汤圆 120

提示deepseek生成完整的json用于对接外部API

通过精准的提示词设计(字段过滤、格式约束)、动态验证机制(自检与修正)和官方模板参考,可有效确保DeepSeek生成的JSON纯净无冗余。

神棍之路 2307

JSP技术

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。 Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子。在具体讲述JSP之前,先把JavaBean简单介

Allen 806

Tiff、jpg图片怎么样添加地理坐标信息

Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方

树木_xzw的博客 2万+

未连接互联网的银河麒麟v10安装g++,各种报错,如何处理?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1803

Java Web开发之详解JSP

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。 Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子。在具体讲述JSP之前,先把JavaBean简单介...

极简的随笔 2万+

利用大模型和聚类算法找出 Excel 文件中重复或相似度高的数据,并使用 FastAPI 进行封装的详细方案

tokenizer将输入的文本列表texts转换为 PyTorch 张量,同时进行填充和截断操作,以确保所有输入具有相同的长度。对输入进行推理,得到模型的输出。对模型的最后一层隐藏状态求平均,得到每个文本的向量表示。.numpy()将 PyTorch 张量转换为 NumPy 数组。使用DBSCAN算法对文本向量进行聚类。eps是邻域半径,是形成核心点所需的最小样本数。fit方法对输入的向量进行聚类,并返回每个样本所属的簇标签。try:定义了一个 POST 请求的 API 路由,路径为。

AI的内部世界的博客 1069

java jsp eq_Java Web开发之详解JSP

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子。在具体讲述JSP之前,先把JavaBean简单介绍一...

weixin_39850787的博客 454

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java Web 之详解JSP

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。 Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子。在具体讲述JSP之前,先把JavaBean简

Mon_key_DT的专栏 680

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java Web开发之详解JSP .

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。 Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子。在具体讲述JSP之前,先把JavaBean简单介

qichezhan的专栏 440

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

web开发中的JSP

 JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。 Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子。在具体讲述JSP之前,先把JavaBea

Arvin_bin的笔记 459

Java Web开发JSP

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面。Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用。这就是经典的MVC模型。Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子。在具体讲述JSP之前,先把JavaBean简单介绍一...

BIGBAI的博客 212

6.从零开始学springboot-连接数据库的几种方式-JDBC

前言 上一节实现了JPA操作mysql,这一节我们实现jdbc也就是jdbcTemplate操作mysql。 创建空项目 首先我们使用IDEA创建一个基础的springboot2.0的项目(创建的过程略,可以参考前几章),无需加载任何依赖(依赖还是手动加载感悟更深)。 添加依赖 pom.xml: <dependency> <groupId>org.s...

CTO技术的博客 9860

37.SpringBoot集成EasyExcel读取Excel反射实体值为NULL问题

前言 小编最近使用springboot集成使用EasyExcel时发现了一个坑 EasyExcel EasyExcel是由阿里巴巴开发团队提供的一套操作excel的工具, 与常用的POI区别就在于如下 POI对大数据处理起来会引起OOM内存溢出, EasyExcel对此进行了优化, 对内存的占用极大的优化,同时允许分批处理数据 POI对于读写EXCEL操作复杂, 而EasyExcel只需几...

CTO技术的博客 8761

12.1.从零开始学springboot-getHibernateProperties报错问题

前言 博主最近研究JPA配置多数据源时,发现网上的很多大牛的案例pull下来运行报错 如图 Error:(47, 29) java: 找不到符号 符号: 方法 getHibernateProperties(org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings) 位置: 类型为org.springframewo...

CTO技术的博客 3645

48. 从零开始学springboot: 接入RocketMQ

微服务的架构越来越流行, 很多老旧项目面临着解耦重构, 复杂项目的解耦通常会引入一些中间件来帮助我们更好的完成工作, 本章, 我们就来通过实例了解下消息中间件的用法.市面上比较流行的消息中间件如下因为鱼哥的项目上了阿里的云, 所以选择很简单, 就用RocketMQ即可, 看官们根据实际情况择优选择....

CTO技术的博客 2767
上一篇: 29.从零开始学springboot-批量“覆盖导入”&“更新导入”
下一篇: 30.从零开始学springboot-再谈控制反转“IOC”
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值