自定义博客皮肤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 1358 5

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

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

2019-04-03 21:19:27 645

原创 判断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 657

原创 6种线程池

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

2019-03-31 08:42:33 201

原创 创建线程的三种方式

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

2019-03-28 16:48:29 97

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

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

2019-03-25 17:13:01 86

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

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

2019-03-25 15:10:22 127

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

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

2019-03-25 14:26:25 117

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

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

2019-03-24 23:29:57 92

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

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

2019-03-24 22:01:08 81

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

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

2019-03-24 16:40:10 66

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

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

2019-03-24 15:11:30 75

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

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

2019-03-24 01:12:45 83

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

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

2019-03-23 23:06:43 80

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

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

2019-03-23 18:12:10 105

原创 Java-23个设计模式 Observer

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

2019-03-23 00:15:55 75

原创 Java-23个设计模式 Strategy

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

2019-03-22 22:13:16 70

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

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

2019-03-22 20:34:58 88

空空如也

空空如也

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

TA关注的人

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