首页
flameking
取消

原型模式

什么是原型模式 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式。 为什么要使用原型模式 耗时操作有哪些: 如果用 new 创...

单例模式

什么是单例模式 保证整个系统中一个类只有一个实例,并且提供一个可以全局访问的入口,实现这种功能的方式就叫做单例模式 为什么要使用单例模式 节省公共资源 一些对象频繁的创建和销毁会非常耗费性能和资源,比如,频繁访问数据库或文件的对象(DruidDataSource、SqlSessionFactory) 这些操作往往很费时,如:查询数据库并对查到的数据做大量计算、加解密、解压缩和...

代理模式

通用工作模式 上图中,Subject 是一个抽象类/接口,RealSubject 是实现方法类,是具体的业务执行,Proxy 则是 RealSubject 的代理,它同样继承/实现 Subject,并直接和 Client 接触的。 进一步来说代理模式可以在不直接修改被代理对象(RealSubject)的基础上,通过扩展代理类(Proxy)进行一些功能的附加和增强。值得注意的是,代理类和...

Java字节码技术

为什么要学习字节码技术 从技术人员的角度看,Java 字节码是 JVM 的指令集,JVM 加载字节码格式的 class 文件,校验之后通过 JIT 编译器转换为本地机器代码执行,也就是说Java字节码就是我们给JVM的指令,为了让JVM能够按照我们的计划执行,我们就应该熟悉Java字节码技术 了解字节码及其工作原理,对于编写高性能代码至关重要,对于深入分析和排查问题也有一定作用,所...

Java基础知识

方法 1.静态方法为什么不能调用非静态成员 静态方法在类初始化时分配内存,此时对象还没初始化,也就是说还不存在this,而非静态成员需要this进行调用 静态方法和静态变量是可以被子类继承的,但是会被隐藏,因为它们本身是属于类的,也就是说你调用静态成员时可以直接通过类名,既然如此你还有必要用子类来调用静态成员吗? 2.子类可以重写父类的静态方法吗:不能 根据实验,向上...

JVM

类加载 1.字节码文件经过类加载器加载后会获得Class对象,也可以说Class对象是类加载的最终产品 2.类加载过程 类加载过程分三个阶段:1.Loading;2.Linking;3.Initialization 3.类变量的加载过程 在linking/prepare阶段进行零值初始化 在Initialization阶段按照语句(赋值动作和静态代码块)在源文件出现的...

关系型数据库和数据模型相关概念

数据库阶段学习 数据库初级、中级、高级知识点介绍: 数据库相关概念 1.数据库:存储数据的地方,数据是有组织的存储在数据库的 2.数据库管理系统(DBMS):操纵和管理数据库的大型软件 3.SQL:操作关系型数据的编程语言,定义了一套操作关系型数据库的统一标准(不同数据库都遵照该标准,都可以用SQL语句操作) MySQL数据库的安装和启动 注意:安装新的MySQL之前需要先卸载已...

msyql数据库

触发器 触发器是特殊的存储过程(一段能产生特定影响的sql语句),它没有参数,相比于sql约束(像非空约束,唯一约束,check约束) 触发器能完成更复杂的约束。 创建触发器 create trigger 触发器名 after|before update|insert|delete on 联系表名 for each row begin 触发体 end 例如: create t...

SQL分类

SQL SQL语句通用语法 1.SQL语句可单行也可多行书写,以分号结尾。 2.SQL关键词应该大写,统一规范 SQL分类 DDL 数据库操作 查询所有数据库 mysql> show databases; 创建数据库 mysql> create database [if not exists] test_db [default charset utf8mb4]; 注...