该文档详细记录了作者在牛客网进行编程练习的心得体会和解题技巧,涵盖算法优化、代码效率提升等多个方面,旨在帮助读者提高编程能力和面试水平。
牛客刷题总结
本资源主要涵盖了 Java 语言的基础知识点、设计模式以及事务处理的介绍。
一、Java 基础知识:
1. 在一个 Java 源程序中只能存在一个公共类,且该类名需与文件名称一致。这是因为 Java 程序从 main 方法开始执行,public 类为加载器提供入口点并找到其中的主方法来运行代码。如果源码中有多个 public 类,则编译器将无法确定应从哪个类启动程序。
2. 内部类可以被声明为公共(public),因为它们是外部类的一部分成员。
3. Math.floor() 方法返回小于参数的最大整数,例如 Math.floor(-4.2) 的结果为 -5.0。
4. 使用 Math.ceil() 可以得到大于给定数值的最小整数。如:Math.ceil(5.6) 等于 6.0。
5. 利用 Math.round() 方法可以实现对小数进行四舍五入,例如 Math.round(-4.6) 的结果为 -5。
6. Java 中数组被视为对象而非基本数据类型,它们占用连续的内存空间,并且一旦创建其大小便不可更改。因此,若要调整数组长度,则需要重新定义一个新数组并复制原数组内容至新的位置。
二、设计模式:
1. MVC(模型-视图-控制器)是一种软件架构样式,它将应用程序划分为三个主要部分:业务逻辑处理的模型层;数据展示与用户交互的视图层;以及负责协调两者之间的控制层。这种结构使得界面和用户体验可以独立于业务规则进行修改而不必重新编写后端代码。
三、重载和重写:
1. 重载指的是在一个类中定义多个具有相同名称但参数列表不同的方法,这些方法可以通过传递给它们的参数类型或数量来区分使用哪一个。这体现了多态性。
2. 当子类覆盖父类的方法时(即两者名字、返回值及输入参数一致),称为重写。此外,在实现此功能的过程中必须保持或者增加原有访问控制权限。
四、多态:
1. 多态是指不同对象接收相同的调用却能执行不同的操作,通过继承和方法的重新定义来达成。
2. 当我们对同一指令(即同名函数)实施时,根据被引用的对象类型决定具体行为方式。
3. 实现这一特性的条件包括:必须存在类之间的继承关系;子类需重写父类的方法以提供不同的实现。
五、事务处理:
1. 传播行为定义了方法调用的上下文环境中的事务边界。一共有七种这样的策略,如:PROPAGATION_MANDATORY, PROPAGATION_NESTED, PROPAGATION_NEVER等。
2. 隔离级别影响着数据库操作期间可能出现的问题类型,包括脏读(Dirty Read)、不可重复读(Non-repeatable Read)和幻象数据(Phantom Reads)。