# CodeCanvas **Repository Path**: maoxiaojiu9/CodeCanvas ## Basic Information - **Project Name**: CodeCanvas - **Description**: 该项目旨在通过图像形式解释和展示编程领域中的关键概念、算法、数据结构和技术原理。使用VSCode配合Excalidraw-cj插件绘图,所有图片均有手写体风格。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-04-27 - **Last Updated**: 2025-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, 数据结构, 设计模式, 技术原理, Web ## README # CodeCanvas 该项目旨在通过图像形式解释和展示编程领域中的关键概念、算法、数据结构和技术原理。使用VSCode配合Excalidraw-cj插件绘图,所有图片均有手写体风格。 # 一、JavaSE - 栈(stack):方法内定义的变量,存储在栈中。 - 堆(heap):new 出来的结构(数组实体,对象实体),包括对象中的属性。 - 方法区(method area):存放类的模板。静态变量 ------ ## 1.Java数组赋值机制 ![Java数组赋值机制](/01JavaSE/01数组赋值机制.excalidraw.png) ------ ## 2.Java二维数组内存图 ![Java二维数组内存图](/01JavaSE/02二维数组内存图.excalidraw.png) ------ ## 3.Java创建对象内存图 ![Java创建对象内存图](/01JavaSE/03创建对象内存图.excalidraw.png) ------ # 二、数据结构与算法 # 三、计算机导论 ------ ## 1.图灵模型 ![图灵模型](/03计算机导论/01图灵模型.excalidraw.png) ------ ## 2.冯·诺依曼体系结构 ![冯·诺依曼体系结构](/03计算机导论/02冯·诺依曼体系结构.excalidraw.png) ------ # 四、操作系统 # 五、计算机网络 # 六、数据库 # 七、JavaWeb ------ ## 1.JavaWeb三层架构 ![JavaWeb三层架构](/07JavaWeb/01JavaWeb三层架构.excalidraw.png) ------ ## 2.浏览器和Session关联技术 ![浏览器和Session关联技术](/07JavaWeb/02浏览器和Session关联技术.excalidraw.png) ------ ## 3.FilterChain过滤器链 ![FilterChain过滤器链](/07JavaWeb/03FilterChain过滤器链.excalidraw.png) ------ # 八、Spring # 九、SpringMVC # 十、MyBatis # 十一、SpringBoot # 十二、Shiro # 十三、Git # 十四、前端基础 # 十五、Vue # 十六、Redis # 十七、设计模式 ![01设计模式概览](/17设计模式/01设计模式概览.excalidraw.svg) ## 1.单例模式 ![02单例模式](/17设计模式/02单例模式.excalidraw.svg) ```java class Singleton { private static Singleton instance; // 私有构造函数 private Singleton() {} // 全局访问点 public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } ``` ## 2.工厂模式 ![03工厂模式](/17设计模式/03工厂模式.excalidraw.svg) ```java // 工厂接口 interface Factory { Product createProduct(String type); } // 具体工厂A class ConcreteFactoryA implements Factory { public Product createProduct(String type) { return new ConcreteProductA(); } } // 具体工厂B class ConcreteFactoryB implements Factory { public Product createProduct(String type) { return new ConcreteProductB(); } } // 产品接口 interface Product { void operation(); } // 具体产品A class ConcreteProductA implements Product { public void operation() { System.out.println("Operation in ConcreteProductA"); } } // 具体产品B class ConcreteProductB implements Product { public void operation() { System.out.println("Operation in ConcreteProductB"); } } ``` ## 3.抽象工厂模式 ![04抽象工厂模式](/17设计模式/04抽象工厂模式.excalidraw.svg) ```java // 抽象工厂接口 interface AbstractFactory { AbstractProductA createProductA(); AbstractProductB createProductB(); } // 具体工厂A class ConcreteFactoryA implements AbstractFactory { public AbstractProductA createProductA() { return new ConcreteProductA1(); } public AbstractProductB createProductB() { return new ConcreteProductB1(); } } // 具体工厂B class ConcreteFactoryB implements AbstractFactory { public AbstractProductA createProductA() { return new ConcreteProductA2(); } public AbstractProductB createProductB() { return new ConcreteProductB2(); } } // 抽象产品A接口 interface AbstractProductA { void operationA(); } // 抽象产品B接口 interface AbstractProductB { void operationB(); } // 具体产品A1 class ConcreteProductA1 implements AbstractProductA { public void operationA() { System.out.println("Operation in ConcreteProductA1"); } } // 具体产品A2 class ConcreteProductA2 implements AbstractProductA { public void operationA() { System.out.println("Operation in ConcreteProductA2"); } } // 具体产品B1 class ConcreteProductB1 implements AbstractProductB { public void operationB() { System.out.println("Operation in ConcreteProductB1"); } } // 具体产品B2 class ConcreteProductB2 implements AbstractProductB { public void operationB() { System.out.println("Operation in ConcreteProductB2"); } } ```