自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 索引的数据结构

数据库索引,是数据库管理系统中一个排序的数据结构,主要有B树索引、Hash索引两种一:B树索引先来看下B树索引结构实列关于图的说明如下:左边表示的是某个数据库的数据表,一共有两列七条记录,最左边的是数据记录的物理地址(就是在硬盘的存储位置)。为了加快对Col2这一列的查找,可以创建一个如右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在O(log2n)的复杂度内获取到相应数据。举例子来看下,比如这样的一个查询:select * fro

2022-02-24 16:52:00 539

原创 分布式系统组件的选型

这节我们来讲讲分布式相同类型的框架和组件该如何选型。分布式、微服务和集群的定义首先我们得了解什么是这三种东西分别代表的是什么意思。分布式:分布式官方给的名词解释是 “分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。”简单点说分布式就是将一个业务拆分成多个子业务,部署在多台服务器上,从而分散服务器的压力,提升吞吐量。集群集群跟分

2021-03-29 21:44:08 983

原创 java原子性,有序性,可见性问题

java线程安全问题设计到两个核心,java抽象内存模型、happens-before规则,和三大性质:原子性、有序性、可见性,下面我们就synchronize,volatile两个关键字来讲讲三大性质:原子性原子性指的是一个或多个操作在CPU执行中过程中不被中断的特性,要么全部执行成功,要么全部执行失败。Java 并发程序都是基于多线程的,操作系统为了充分利用CPU的资源,将CPU分成若干个时间片,在多线程环境下,线程会被操作系统调度进行任务切换。下面用一个例子来讲解:int count =0

2021-03-27 14:15:59 157

原创 浅谈多线程与高并发(三),锁的使用

前言前面说了 浅谈多线程与高并发(二),生命周期、线程安全与调度.产生线程安全问题的原因。主要是因为多个线程在操作同一个共享数据,因前一个线程没有执行完毕,后一个线程又进入了,导致后线程读取到了脏数据,从而产生线程安全问题,为什么会这样呢?这就还涉及到了原子性,可见性,有序性三个概念,后面拿出来单独做讲解。为了解决多线程的线程安全问题,从而引入了锁的概念。锁的分类Java中往往是按照是否含有某一特性来定义锁,这是java中根据锁的特性进行分类的分类图:1,乐观锁、悲观锁乐观锁和悲观锁是广义上的概

2021-03-25 21:55:46 480

原创 浅谈多线程与高并发(二),生命周期、线程安全与调度

前一个章节讲了线程的作用和实现方式,这章继续深入讲讲线程的生命周期、线程安全以及线程调度。生命周期1,创建(初始状态)new当线程被new出来时,该线程就处于创建状态(new),当前状态下仅仅有jvm分配了内存,并分配其成员变量值,此时并没有任何其线程的动态特征,也不会执行线程方法体。public class XThread extends Thread{ @Override public void run() { }}//新建

2021-03-22 18:08:31 232 1

原创 浅谈多线程与高并发(一),线程定义与实现方式

前言多线程是每位开发者必须要掌握的东西,同时它也是基础中的重中之重,有了它我们能充分利用起cpu的性能,提高系统的效率,以及防止一些并发问题。进程与线程谈多线程之前首先需要了解进程与线程的关系。进程是啥?它是现系统当中资源分配的最小单位,电脑中的任务管理器里面的就是一个个的进程。线程是啥?官方的话来说它是操作系统进行运算调度的最小单位,线程是依托于进程中的,每个进程中最少有一个线程,是进程是实际运作单位。那什么是多线程,说到多线程就不得不提两个概念,串行和并行。串行指的是时间上不存在重叠

2021-03-19 15:56:43 295

原创 23种设计模式(5)-原型模式

一, 简介当系统中需要大量创建相同或者相似的对象时,就可以通过“原型模式”来实现。原型模式也是“创建型设计模式”中的一种,五种创建型设计模式到此就介绍完毕了,需要了解前四种的可以看看本人前面的文章。原型模式的核心思想是,通过拷贝指定的“原型实例(对象)”,创建跟该对象一样的新对象。简单理解就是“克隆指定对象”。这里提到的“原型实例(对象)”,就是被克隆的对象,它的作用就是指定要创建的对象种类。二,实现所有的原型模式都是实现CloneAble接口,这接口是一个标记接口,里面没有任何内容,作用就是用于

2021-02-19 10:20:57 133

原创 23种设计模式(4)-建造者模式

前言(八问知识体系)一,简介建造者模式主要是针对复杂对象的一种设计模式,当对象的构造方法过多时可以考虑使用建造者模式(建议构造方法>=4个时使用)对其进行拆分。二,优缺点优点:1,建造者模式可以对复杂对象进行解耦。2,具体的建造者完全独立,使用不同的具体建造者生产不同对象。3,新增具体建造者时不需要修改源代码,只需实现builder接口,系统拓展方便,复合开闭原则。缺点:只适合耦合比较高的对象使用,无耦合的对象使用会大量增加建造者对象。三,类图四,代码示例抽象builder

2021-02-18 10:12:34 210 1

原创 23种设计模式(3)-单例模式

单例模式是软件开发中最常见的设计模式了,如我们熟悉的spring从容器中取出的默认也是单例模式。单例模式它有以下特点:  1、 单例类只能有一个实例。  2、 单例类必须自己创建自己的唯一实例。  3、 单例类必须给所有其他对象提供这一实例。它的作用就是为了避免代码产生多个出口,而导致产生不一样的结果。单例模式有两种常见的写法。饿汉式和懒汉式。饿汉式会在项目运行时自己创建并且不可修改和再创建,所以他是线程安全的。懒汉式顾名思义它需要我们自己手动调用,因为需要自己手动创建而导致可能创建多次,所

2021-02-04 14:31:29 122 3

原创 23种设计模式之工厂模式(1,2)

设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。工厂模式在日常生活中,工厂模式应用到了方方面面。比如我想买辆汽车,我会告诉汽车销售员我需要一辆汽车,他就从工厂中帮我提一台,而不用我们自己去购买零件拼装;我想买

2021-02-03 17:23:12 69

原创 关于各个数据库的常用数据库引擎介绍

关于各个数据库的常用数据库引擎介绍数据库引擎好比汽车的发动机,当访问数据库时,无论通过何种方式访问,都会先经过数据库引擎,由数据库引擎去解释sql语句,并返回你需要查找的值,由此可以说数据库引擎是数据库的sql解释器  正式来说,数据库引擎是用于 存储、处理和保护数据的核心服务。利用数据库引擎可以 控制访问权限并快速处理事务,从而满足企业内大多数需要 处理大量数据的应用程序的要求,这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。  灵活的配置每个表的数

2021-02-02 14:21:25 2557 2

原创 IDEA自带的代码自动生成功能

最近发现了idea一个自带的自动生成代码的功能,还挺方便。只需定义一个groovy文件即可,groovy文件中编写需要自动生成的模板。如果需要使用 lombok 和 swagger 生成配置需要加入相应的 maven 依赖。步骤如下:view -> Tool Windows -> Databaseimage.png-> Data source -> MySQLimage.png配置数据库信息image.png在database视图区域任意地方右键,然后 Sc

2021-01-04 17:50:07 1555

原创 Ngrok内网穿透教程-帮你实现外网连本机

ngrok:内网穿透的工具,只需要网站上注册之后下载对应的软件即可实现外网接入本机项目,操作简单一学便会。ngrok有两款,国外的ngrok和国内的sunny ngrok,国外这次重启会生成一个ip(记起来比较麻烦,但速度较快,够羊毛党业余使用了),国内的sunny ngrok则相反,ip是固定的,但是速度堪比????(喜欢固定的ip又想网速快的可以照顾照顾他们的生意????)。Ngrok使用流程如下:从https://ngrok.com/ 下载ngrok ,然后注册一个账号并获取官方分配一个密钥

2021-01-04 17:39:51 469

原创 各消息队列的区别以及该如何选型

谈到消息队列,你们是否知道它的用处?各个消息队列之间的区别又是什么,项目搭建时该如何选型呢,下面的内容对这个部分做了一个大致的描述。消息队列什么是消息队列MQ全称为Message Queue 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。你可以想想在.

2021-01-04 17:34:44 1669

自考复习资料(全).zip

自考‘复习’资料,里面涵盖了各个专业的知识点,考试基本大部分考题都能温习到

2021-02-02

空空如也

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

TA关注的人

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