自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 B树和B+树

B树和B+树一、文章内容二、磁盘结构(一)磁盘结构-同心圆一样的逻辑圈(二)磁盘读写三、索引(一)对象存储和假设(二)稠密索引(三)稀疏索引四、搜索树(一)BST - 二叉搜索树(二)muitl-way search tree - 多路搜索树(三)B-Trees约束创建过程(四)B+Trees 一、文章内容 从磁盘结构,数据如何存储到磁盘上到索引的由来,为什么使用多级索引。 m-way-tree => b-tree => b+tree 文章内容来自B站,一个有咖喱味的视频 文章中的扇区和视频中将

2021-05-16 17:33:09 2093 5

原创 JVM(Java虚拟机内存模型)

Java内存模型 Java虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java栈和Java堆。 (1)方法区是静态分配的,编译器将变量绑定在某个存储位置上,而且这些绑定不会在运行时改变。 常数池,源代码中的命名常量、String常量和static变量保存在方法区。 (2)Java Stack是一个逻辑概念,特...

2019-04-03 21:19:27 717

原创 判断100000个随机数中的质数 --- 单线程与多线程

① 创建IsPrime类,判断质数的工具 public class IsPrime { // 输入一个数,判断是否为质数,费时方法 static boolean isPrime(int num) { if (num == 0 || num == 1) return false; for (int i = 2; i <...

2019-03-31 09:44:55 715

原创 6种线程池

线程池: ① 定长 /** * 定长线程池5个线程,100个线程要运行,5个满了就进入队列 * 如果一个线程完了,那么线程放入线程池中不会消失,新的又进来运行了 */ public class Fixed { public static void main(String[] args) { ExecutorService es = Executors.newFi...

2019-03-31 08:42:33 253

原创 创建线程的三种方式

① 继承Thread类 /** * 不推荐的方式 * 将要并行运行的任务与运行机制解耦合,用线程池解决 */ class ExtendsMethod extends Thread { @Override public void run() { System.out.println("呵呵"); } public static void ma...

2019-03-28 16:48:29 131

原创 Java-23个设计模式 Proxy 代理模式

Proxy 在面向对象系统中,有些对象由于某种原因(如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问[分布式访问对象,安全访问]等),直接访问会给使用者、或者系统结构带来很多麻烦 ① 创建接口 public interface Subject { void run(); } ② 创建具体实现类 /** * 实现Subject接口的实体类 */ pu...

2019-03-25 17:13:01 120

原创 Java-23个设计模式 Facade 外观模式

Facade 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层(间接)(稳定)的接口,来隔离本来互相紧密关联的接口 ① 设计种类繁多,这里主要体现的是一种设计原则和思想的表达 ② Facade部分是稳定的部分,返回数据对象的更改 优点: 从客户程序的角度来看,Facade模式简化了整个组件系统接口,对组件内部和外部客户程序...

2019-03-25 15:10:22 174

原创 Java-23个设计模式 Flyweight 享元模式

Flyweight 主要解决面向对象的代价问题,一般不触及面向对象的抽象性问题。Flyweight采用对象共享的做法来降低系统中对象的个数,从而降低细粒度对象给系统带来的内存压力。 如本例中:用户通过不同品牌的手机发送短信,要求每个品牌只创建一次,当下次有人还要用创建过的对象发信息时,从对象池中拿。 ① 创建一个发信息的接口(可供手机实现) /** * 发送消息的接口 */ pub...

2019-03-25 14:26:25 156

原创 Java-23个设计模式 Singleton 单例模式

Singleton 分为懒汉式和饿汉式和登记式,适用于一个类只有一个实例的情况(保证一个类仅有一个实例,并提供一个该实例的全局访问点) 懒汉式:在第一次调用方法的时候会做一个判断,如果实例不存在,则创建一个,如果实例存在,则直接返回。延迟加载,比如配 配置文件,被用到的时候才会加载 饿汉式:一开始就加载了 ① 懒汉模式 /** * * 懒汉模式:第一次被引用时候才被初始化 *...

2019-03-24 23:29:57 127

原创 Java-23个设计模式 Builder 建造者模式

Builder 在软件系统中,有时候面临着 " 一个复杂对象 " 的创建工作,通常由各个部分的子对象由一定算法构成。各个部分剧烈变化,而将他们组合的算法却相对稳定。 ① 创建手机的父类和子类(Huawei和Apple) /** * 将对象的表示和构建相分离,时同样的构建过程有不同的表示 * Mobile是对象的表示 * Director是同样的构建过程 */ public a...

2019-03-24 22:01:08 115

原创 Java-23个设计模式 Prototype 原型模式

Prototype 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 ① 从工厂模式中的例子过来,将工厂基类创建对象的抽象类移到系统抽象类,用Java克隆代替 /** * 抽象类 */ public abstract class ComputerSystem implements Cloneable { abstract void run(); pu...

2019-03-24 16:40:10 100

原创 Java-23个设计模式 Abstract Factory 抽象工厂模式

Abstract Factory 一系列相互依赖的对象的创建工作 (提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类) ① 创建抽象工厂SoftWareFactory(生成一个软件,iOS平台或者Android平台) /** * 软件工程基类 * 一个软件在多个平台的应用iOS和Android */ public abstract class SoftWar...

2019-03-24 15:11:30 110

原创 Java-23个设计模式 Factory Method 工厂模式

Factory Method 延迟类的实例化(支持变化,延迟到子类),解耦(new 后面的具体类) ① 创建基类,定义工厂方法所创建的对象的接口(这里生产电脑系统Linux和Computer) /** * 工厂基类 */ public abstract class SystemProductFactory { // 工厂方法 abstract ComputerSyste...

2019-03-24 01:12:45 118

原创 Java-23个设计模式 Bridge桥接模式

Bridge 将抽象部分(业务功能)与它的实现部分分离(平台分离),使它们可以独立地变化。 ① 创建软件与平台的接口SoftWareImpl(其实现类(iOS或者Android)会实现与软件连接的接口) /** * 软件与平台的接口 */ public interface SoftWareImpl { // 连接接口 public void connect(); ...

2019-03-23 23:06:43 109

原创 Java-23个设计模式 Decorator装饰者模式

Decorator: 动态(组合)地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活(继承) ① 创建Component组件(Human) /** * 抽象类,人类 */ public abstract class Human { // 跑 abstract void run(); } ② 创建具体对象Con...

2019-03-23 18:12:10 136

原创 Java-23个设计模式 Observer

Observer 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动刷新(发布-订阅) 目标(通知的发送者)--->观察者(n),可以有任意数目的观察者订阅并接受通知。 ① 创建观察者(接收通知状态的接口)Observer public interface Observer { // 接收状态 abstract voi...

2019-03-23 00:15:55 104

原创 Java-23个设计模式 Strategy

Strategy 定义一系列算法,一个个封装起来并且使他们可相互替换(变化),使算法可独立于使用它的客户(稳定)而变化。 ① 创建(所有算法公共)接口 public interface MathStrategy { // 计算抽象方法 public int calculate(int a,int b); } ② 创建接口实现类,加减(以后可能需要乘除) public...

2019-03-22 22:13:16 103

原创 Java-23个设计模式 Template Method

Template Method ① 模板方法:在抽象类中定义一个稳定的算法骨架(如一个方法中有固定业务逻辑) public abstract class AbstractTemplate { // 稳定的骨架 public void getChampion(){ // 固定逻辑 dohookMethod(); System.o...

2019-03-22 20:34:58 151

空空如也

空空如也

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

TA关注的人

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