自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 JAVA内存模型

https://www.jianshu.com/p/15106e9c4bf3

2020-06-28 16:07:23 91

转载 InnoDB和MyISAM的区别

1.InnoDB支持事务,MyISAM不支持,对于InnoDB来说每一条SQL语句都被封装为事务,事务提供了一个可以从失败中恢复到正常的方法、在异常情况下数据库保持一致性、在多个程序并发访问时提供了隔离的方法,但是事务会影响速度2.InnoDB支持外键,而MyISAM不支持外键3.InnoDB是聚簇索引,即索引和数据文件是绑定的,MyISAM是非聚簇索引,即索引和数据文件不是绑定的,索引中存储的是数据文件的地址。二者都是利用B+树来存储索引的。也就是说,对于InnoDB,B+树的叶子节点就是索引所对应的

2020-06-25 18:58:47 106

原创 java多线程的两种实现方法:Thread和Runnable

java如何实现多线程继承Thread类实现Runnable接口之前电话面试被问到java实现多线程没有答出来,很尴尬,赶快回去看了一下,常用的实现方式有两种:继承Thread类、实现Runnable接口。继承Thread类java实现多线程的方法还是比较简单的,只需要继承Thread类,重写run()方法就行,然后调用类的start()方法就可以实现了。public class MyThread extends Thread{ @Override public void run()

2020-06-25 17:51:29 226

原创 基础数据结构:堆栈

基础数据结构:堆栈维基百科堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。常与另一种有序的线性数据集合队列相提并论。堆栈常用一维数组或链表来实现。实现java实现public class Stack { private Node top; publi

2020-06-11 13:34:09 167

原创 基础数据结构:队列

基础数据结构:队列维基百科队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。队列实现java实现public class Queue { private Node front; private Node rear; public Queue(){ this.front = this

2020-06-11 12:23:11 190

原创 基础数据结构:链表

基础数据结构:链表维基百科链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管

2020-06-10 17:29:19 212

原创 SQL

SQLSQL语言数据库的完整性和安全性事务SQL语言数据库的完整性和安全性事务

2020-06-10 11:43:20 108

原创 离散傅里叶变换和DCT变换

离散傅里叶变换和dct变换

2020-06-10 11:34:58 720

原创 适配器模式

适配器模式介绍实现介绍意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。何时使用:1、系统需要使用现有的类,而此类的接口不符合系统的需要。2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。3、通过接口转换,将一个类插入另一个类系中

2020-06-10 11:28:38 95

原创 原型模式

原型模式介绍实现介绍意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。主要解决:在运行期建立和删除原型。何时使用:1、当一个系统应该独立于它的产品创建,构成和表示时。2、当要实例化的类是在运行时刻指定时,例如,通过动态装载。3、为了避免创建一个与产品类层次平行的工厂类层次时。4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。如何解决:利用已有的一个原型对象,快速地生成和原型对象一样的实例。关

2020-05-25 10:27:33 117

原创 建造者模式

建造者模式介绍实现介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。何时使用:一些基本部件不会变,而其组合经常变化的时候。如何解决:将变与不变分离开。关键代码:建造者:创建和提供实例,导演:管理建造出来的实例的依赖关系。应用实例:1、去肯德基,汉堡、可乐

2020-05-20 14:39:14 88

原创 单例模式

单例模式介绍实现单例模式的几种实现方式介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。关键代码:构造函数是私有的。应用实例:1、一个班级只有一个班主任。2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。3、

2020-05-20 11:16:35 86

原创 抽象工厂模式

抽象工厂模式介绍实现介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主要解决接口选择的问题。何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。如何解决:在一个产品族里面,定义多个产品。关键代码:在一个工厂里聚合多个同类产品。应用实例:工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装(成套,一系列具体产品)、时尚装(成套,一系列具体产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套

2020-05-19 15:22:06 120

原创 工厂模式

工厂模式介绍实现介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在其子类执行。应用实例:1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。2、Hibernate 换数据库只需换方言和驱动就可以。优点:1、一个调用者想

2020-05-19 10:43:26 113

原创 java设计模式

设计模式设计模式的原则设计模式的类型创建型模式结构型模式行为型模式J2EE模式设计模式的原则1.开闭原则开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。2.里氏替换原则里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够

2020-05-19 09:29:11 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除