面试之手撕代码

本文记录了作者在面试中遇到的设计模式、并发及排序问题的实例,包括工厂模式、单例模式、读写锁、生产者消费者模型以及快速排序的详细解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

本文为自己的学习记录,记录一下自己在面试中遇到的一些手撕代码(非算法题目),也是自己复习方便

 

二、设计模式

1、工厂模式

(1)简单工厂

// 抽象产品角色
public interface Product {
    void getInfo();
}
// 真实产品A
public class ProductA implements Product {
    @Override
    public void getInfo() {
        System.out.println("I am productA");
    }
}
// 真实产品B
public class ProductB implements Product {
    @Override
    public void getInfo() {
        System.out.println("I am productB");
    }
}
// 工厂类,顺便在这里进行测试
public class Factory {
    private Product product;
    public Factory() {

    }
    public Product getProductA() {
        product = new ProductA();
        return product;
    }

    public Product getProductB() {
        product = new ProductB();
        return product;
    }

    public static void main(String[] args) {
        Factory factory = new Factory();
        Product productA = factory.getProductA();
        Product productB = factory.getProductB();
        productA.getInfo();
        productB.getInfo();
    }
}

(2)抽象工厂

// 还是使用上面的ProductA和ProductB
// 抽象工厂类
public interface Factory {
    Product getProduct();
}
// 真实工厂A
public class ProductAFactory implem
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值