Java后端开发知识点积累20240703

1.面向对象和面向过程的区别

面向对象和面向过程是两种不同的编程思想。

1. 面向对象编程(OOP):
- 将程序看作一组对象的集合,每个对象包含数据和对数据进行操作的方法。
- 对象之间通过消息传递来进行通信,对象之间相互独立,信息隐藏,封装性强。
- 支持继承、封装和多态等特性,具有高度的可重用性、可维护性和扩展性。

2. 面向过程编程(OPP):
- 将程序流程看作是一系列的函数或指令的集合,通过函数的调用来完成任务。
- 数据和功能分离,使用全局变量或共享数据来传递信息,缺乏信息隐藏和封装性。
- 程序设计主要侧重于算法的设计和流程的控制,代码的复用性较低。

面向对象更加灵活、可扩展,能够更好地应对复杂的问题,而面向过程更加直观,适用于简单的任务。在实际开发中,面向对象更加常用和推荐。

2.面向对象的设计模式

Java 中常用的面向对象设计模式有很多种,以下列举一些常见的设计模式:

1. 工厂模式(Factory Pattern): 用来创建对象的一种方式,分为简单工厂模式、工厂方法模式和抽象工厂模式。

2. 单例模式(Singleton Pattern): 保证一个类只有一个实例,并提供一个访问该实例的全局访问点。

3. 适配器模式(Adapter Pattern): 将一个类的接口转换为客户希望的另一个接口。

4. 装饰器模式(Decorator Pattern): 动态地给一个对象添加一些额外的职责。

5. 观察者模式(Observer Pattern): 定义对象间的一对多依赖关系,使得一个对象状态改变时,所有依赖它的对象都将得到通知并自动更新。

6. 策略模式(Strategy Pattern): 定义一系列算法,将每个算法封装起来,并使它们可以互相替换,让算法的变化独立于使用算法的客户。

7. 模板方法模式(Template Method Pattern): 定义一个操作中的算法的骨架,将一些步骤延迟到子类中实现。

8. 迭代器模式(Iterator Pattern): 提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。

9. 建造者模式(Builder Pattern): 将一个复杂对象的构建过程和它的表示分离开来,使得同样的构建过程可以创建不同的表示。

3.Java中多态是什么

Java 中的多态是面向对象编程的一个重要特性,它允许不同类的对象对同一消息作出不同的响应。简单来说,多态就是同一个方法调用,在不同对象上有不同的行为。

多态性有两种形式:编译时多态和运行时多态。

1. 编译时多态:在编译时就能确定对象的实际类型,根据引用类型来调用方法。编译时多态主要体现在方法的重载和参数的多态。

public class Animal {
    public void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

public class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog barks");
    }

    public void run() {
        System.out.println("Dog is running");
    }
}

public static void main(String[] args) {
    Animal animal = new Dog();
    animal.makeSound(); // 编译时确定是Animal类的引用,调用的是Animal类的makeSound方法
}

2. 运行时多态:在程序运行时根据对象的实际类型来调用具体方法。运行时多态主要体现在方法的重写和接口的多态。

public interface Shape {
    void draw();
}

public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing circle");
    }
}

public static void main(String[] args) {
    Shape shape = new Circle(); // 创建Circle对象,并将其引用赋给Shape类型
    shape.draw(); // 运行时确定是Circle类的实例,调用的是Circle类中的draw方法
}

通过多态性,能够提高代码的灵活性和可扩展性,使程序更加易于维护和扩展。多态性也是面向对象程序设计原则中的一个重要概念,有助于实现代码的重用和模块化。

4.Java八大基本数据类型

1. byte:字节型,8位,取值范围为-128~127
2. short:短整型,16位,取值范围为-32768~32767
3. int:整型,32位,取值范围为-2147483648~2147483647
4. long:长整型,64位,取值范围为-9223372036854775808~9223372036854775807
5. float:单精度浮点型,32位,取值范围为1.4E-45~3.4E38
6. double:双精度浮点型,64位,取值范围为4.9E-324~1.7E308
7. char:字符型,16位,取值范围为'\u0000'~'\uffff'
8. boolean:布尔型,只有true和false两个取值。

5.int和Integer的区别

int是Java中的基本数据类型,而Integer是int的封装类,是一个对象。以下是它们之间的几点区别:

1. int是基本数据类型,而Integer是一个类,是Object的子类,可以使用Integer类的方法进行操作。
2. int可以直接赋值,而Integer需要使用new关键字进行实例化。
3. int在使用时不需要进行空指针检查,而Integer可能会出现空指针异常。
4. int存储在栈中,而Integer对象存储在堆中。
5. int的默认值为0,而Integer的默认值为null。

int是基本数据类型,而Integer是它的包装类,用于实现int和Object之间的转换。在需要使用对象的场景下,可以使用Integer来替代int。
 

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值