类的四大特性

封装性、继承性、多态性、抽象性
我们都知道类是对象的抽象,而对象是类的实例化的表现,那类的这四个特性体现在哪呢?
1.封装性
一般对象都具有属性和行为,例如一个人,他的身高、体重就是他的属性,而吃饭则为他的行为,我们通常将整个对象的属性和行为封装在一个类中。这就是封装的体现。还有就是通常我们的属性可以设置修饰符为private,这样其他类访问本类时,就只能通过我们在类中写的getter和setter方法来访问,这样就增强了安全性以及实现了信息隐藏。
2.继承性
在我们的现实生活中,继承这个词应该不陌生,一般子承父业,而在Java中,也应用到这点,可以实现最大限度的代码复用。Java的类都是单继承的,接口与接口都是多继承,类与接口是多实现的(这里有两个关键字就是this和super的用法),另外所有类都是Object的子类,都继承了equals方法和toString方法。
3.多态性
多态性主要有方法的多态和类型的多态。方法的多态包括方法的重载和覆盖,而类型的多态表现为,子类是一种父类类型。
4.抽象性
万物皆对象,世间几乎所有的事物我们都可抽象为一个类,用对象表达实体的属性和操作。

### ACID 特性详解 #### 原子性 (Atomicity) 原子性确保事务中的所有操作作为一个不可分割的整体执行。这意味着,在事务处理过程中,如果任何一个操作失败,则整个事务都将被撤销,回到初始状态。换句话说,事务要么完全执行,要么根本不执行[^1]。例如,银行转账涉及两个账户的操作——减少一个账户余额并增加另一个账户余额。如果其中一个操作未能成功完成,那么整个事务应被回滚到原始状态。 ```python def transfer_money(sender_account, receiver_account, amount): try: sender_account.withdraw(amount) # 减少发送方金额 receiver_account.deposit(amount) # 增加接收方金额 commit_transaction() # 提交事务 except Exception as e: rollback_transaction() # 如果发生错误,回滚事务 ``` --- #### 一致性 (Consistency) 一致性保证数据库在任何时刻都处于有效状态。具体来说,它要求事务的执行不会破坏数据库的完整性约束条件。无论是在事务开始前还是结束后,数据库都应该满足预定义的数据一致性和业务逻辑规则。然而,在事务执行期间可能会存在短暂的不一致情况,但这仅限于内部过程[^2]。比如,当更新库存数量时,系统需验证新数值是否符合最低库存限制或其他关联规则。 --- #### 隔离性 (Isolation) 隔离性指多个并发运行的事务之间相互独立,互不影响。即使有若干个事务同时访问相同数据资源,它们的结果也应该是彼此分离的,直到某个事务正式结束为止。为了达到这一目标,通常采用不同的锁机制或者多版本控制技术(MVCC)。这样可以防止读取未提交数据、脏写覆盖等问题的发生。 ```sql -- 使用 SERIALIZABLE 隔离级别可提供最高程度的隔离保护 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; BEGIN TRAN; SELECT * FROM accounts WHERE id = 1 FOR UPDATE; -- 加排他锁 UPDATE accounts SET balance = balance - 100 WHERE id = 1; COMMIT TRAN; ``` --- #### 持久性 (Durability) 持久性意味着一旦事务被确认提交,其更改将永久存储下来,即便遇到诸如断电之的意外状况也不会丢失这些修改成果。现代关系型数据库一般借助日志文件来保障这一点;每次事务完成后都会先记录变更至磁盘上的重做日志里,随后再实际应用改动到主表空间上。 对于分布式环境下的场景,由于涉及到跨多个服务器节点间的同步协作,因此还需要额外考虑网络分区等因素可能带来的挑战。此时常依赖似于二阶段提交这样的协议来达成全局范围内的统一决策,从而维护整体系统的可靠性[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值