- 博客(23)
- 收藏
- 关注
原创 二叉树的构建
构建tree及其方法class tree:{ 节点数据 父节点 左子树 右子树 是否为左子 创建一个静态根节点 方法:是否左 方法:是否右 构造方法:左子树还是右子树 构造方法:创建跟节点}insert:(data,father){//f为null创建根节点 父节点为空 创建一个数 赋值 判断根节点是否存在 判断数值是否相等 比f大 无rson,创建rson并赋值, 有rson,f指向f.rson 比f小 同理}insert重载:(data){//
2020-11-09 15:12:10 148
原创 RB-tree
红黑树是 自平衡的 二叉查找树定义和性质:性质1:节点只有红色和黑色。性质2:根节点是黑色。性质3:每个叶子节点(NIL)都是黑色。性质4:每个红色结点的两个子结点一定都是黑色。性质5:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。推出:性质5.1:如果一个结点存在黑子结点,那么该结点肯定有两个子结点红黑树的插入节点是红色左旋:以某个结点作为支点(旋转结点),其右子结点变为旋转结点的父结点,右子结点的左子结点变为旋转结点的右子结点,左子结点保持不变[外链图片转存失败,
2020-11-09 15:11:37 110
原创 B-tree和B+tree
M阶B树:每个节点最多有m-1个关键字,m个分支n个分支的节点有n-1个有序键值每个非叶子节点(root除外)关键字个数:⌈m/2⌉-1 ≤n≤ m-1,root关键字个数:1≤n≤ m-1所有叶子结点都在同一层,且内部不携带任何信息(仅有指向数据的指针,指向下一节点指针为空)注意 节点 和 分支M阶B+树:每个节点最多有M个关键字,M个节点每个非叶子节点(root除外)关键字个数:⌈m/2⌉ ≤n≤ m,root关键字个数:2≤n≤ m叶子结点包含全部关键字非叶子节点仅有索引
2020-11-09 15:10:19 98
原创 linux
处理目录的常用命令ls: 列出目录cd:切换目录pwd:显示目前的目录mkdir:创建一个新的目录rmdir:删除一个空的目录cp: 复制文件或目录rm: 移除文件或目录mv: 移动文件与目录,或修改文件与目录的名称1. ls (列出目录)ls [-al] 目录名称参数:-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)-l :长数据串列出,包含文件的属性与权限等等数据;(常用)2. cd (切换目录)cd [相对路径或绝对路径]3. p
2020-11-09 15:07:15 106
原创 MySQL笔记
所有带 [ ] 表示可选字段名用` `,属性用’ '1. 操作数据库1. 操作数据库(了解)DDL 定义数据库DML 操作数据库DQL 查询数据库DCL 控制数据库create database [if not exist] xx; [如果不存在]创建xx数据库drop database [if not exist] xx; [如果不存在]删除xx数据库use `xx`; 切换到xx数据库show databases; 查看所有数据库show table; 查看数据库所有表
2020-11-06 11:12:08 200
原创 Spring笔记
1. Spring1.简介spring理念:使现有技术更加容易使用,本身是个大杂烩,整合了现有的技术框架目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。导入:<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
2020-10-30 17:43:32 136
原创 Mybatis笔记
1、简介1. 什么是Mybatis持久层框架支持定制化SQL、存储过程以及高级映射避免了所有的JDBC代码和手动设置参数以及获取结果集可使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录2. 持久化数据持久化持久化就是将程序的数据在持久状态和瞬时状态转化的过程内存:断电即失数据库(JDBC),IO文件持久化生活:冷藏、罐头。为什么需要持久化?有一些对象,不能
2020-10-21 21:34:01 213
原创 JVM
jvm的位置jvm的体系结构Stack、native method stack、程序计数器肯定不会有垃圾回收99%JVM调优是调优方法区和堆类加载器作用:加载class文件启动类(根)加载器 BOOT扩展类加载器 EXC应用程序加载器 APP用户自定义类加载器双亲委派机制:安全类加载器收到类加载请求将这个请求自下而上判断是否加载过,一直向上委托,直到boot加载器(蓝色)类加载器自上而下检查是否能够加载当前这个类,能加载就结束,使
2020-10-10 12:09:57 186
原创 3_3_多线程
多线程线程实现继承Thread类(重点)【Thread实现了runnable接口】子类继承thread类具备多线程能力启动线程:子类.start()不建议使用:避免OPP单继承局限性静态代理模式对比Thread真实对象和代理对象都要实现同一个接口代理对象要代理真实角色好处:代理对象可以做很多真实对象做不了的事情真实对象专注做自己的事情实现Runnable接口(重点)实现接口runnable具有多线程能力启动线程:传入目标对象+thread
2020-10-10 12:09:23 89
原创 3_2_泛型
一个类型变量或通配符可以有多个限定: T extend interface_1&interface_2为提高效率,应该讲标签接口(无方法属性接口)放在边界列表的末尾泛型不能用于基本类型实例化类型参数运行时类型查询只适用于原始类型(核心奇数p321)不能创建参数化类型的数组注1:只是不允许创建这些数组,而声名类型为Name[]的变量仍是合法的。不过不能通过new Name[10]初始化这个变量注2:如果需要手机参数化类型对象,只有一种安全有效的办法:ArrayList<
2020-10-10 12:08:56 68
原创 3_1_集合
接口子接口是否有序是否允许元素重复是否安全Collection否ListArrayList否是否LinkedList否是否Vector否是是SetAbstractSet否否HashSet否否否TreeSet是(用二叉排序树)否否MapAbstractMap否使用key-value来映射和存储数据,key必须唯一,value可以重复否HashMap否否Tre...
2020-10-10 12:08:13 118
原创 2_OverrideOverload
方法的重写规则(Override)声明为 static 的方法不能被重写,但是能够被再次声明。子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。构造
2020-10-09 16:18:11 162
原创 2_枚举
枚举跟普通类一样可以用自己的变量、方法和构造函数。构造函数只能使用 private 访问修饰符,所以外部无法调用。枚举既可以包含具体方法,也可以包含抽象方法。如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。为什么使用枚举? 使用枚举的地方会有更强的类型约束,编译器会帮我们检查入参类型,避免潜在风险枚举的常用方法 ordinal 序数 name 名称 valueOf 根据字符串取枚举对象枚举的扩展 在枚举类里面可以申明属性、构造函数、方法等专用于枚举的扩展 Enu
2020-10-09 16:17:31 612
原创 2_接口
接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。?接口与类的区别:接口不能用于实例化对象。接口没有构造方法。接口中所有的方法必须是抽象方法。接口不能包含成员变量,除了 static 和 final 变量。接口不是被类继承了,而是要被类实现。接口支持多继承。接口特性接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。接口中的变量会被隐式的指定为 public static
2020-10-09 16:16:46 103
原创 2_继承
继承的特性子类拥有父类非 private 的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。Java 的继承是单继承,但是可以多重继承。缺点:提高了类之间的耦合性,耦合度高就会造成代码之间的联系越紧密,代码独立性越差。使用 implements 关键字可以使类继承多个接口。super实现对父类成员的访问;this指向自己的引用final 关键字声明类不能继承,即最终类;修饰方法,该方法不能被子类重写构造器子类通过super调
2020-10-09 16:15:27 84
原创 2_封装
封装的优点良好的封装能够减少耦合。类内部的结构可以自由修改。可以对成员变量进行更精确的控制。隐藏信息,实现细节。步骤修改属性的可见性来限制对属性的访问(一般限制为private)对每个值属性提供对外的公共方法访问,用于对私有属性的访问(getter and setter)...
2020-10-09 16:14:53 86
原创 1_static方法
静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存,不自动进行销毁,会一直存在于内存中,直到 JVM关闭。静态方法和静态变量创建后始终使用同一块内存,是连续的。静态方法是共享代码段,静态变量是共享数据段。既然是“共享”就有并发(Concurrence)的问题。...
2020-10-09 16:13:24 97
原创 1_字节流和字符流的区别
字节流无缓冲区(直接写入文件)(IOSream)字符流有缓冲区(占用内存)(rw)所有的文件在硬盘或在传输时都是以字节的方式进行的,所以在开发中,字节流使用较为广泛。
2020-10-09 16:12:37 130
原创 1_引用传递和值传递
按值调用(call by value):调用者提供的值 值传递过程就是将实参的值复制一份传递到函数中,这样如果在函数中对该值(形参的值)进行了操作将不会影响实参的值。(因为直接复制,传递大量数据时,运行效率特低下)按引用调用(call by reference):调用者提供的变量地址 引用传递的执行过程中,形参和实参的内容相同,指向同一块内存地址,也就是说操作的其实都是源数据,所以方法的执行将会影响到实际对象。基本数据类型传值,对形参的修改不会影响实参;引用类型传引用,形参和实参指向同一
2020-10-09 16:09:41 193
原创 设计模式(java)
OPP七大原则对扩展开放,对修改关闭继承必须确保父类所拥有的性质在子类中仍然成立面向接口编程控制粒度大小,高内聚,低耦合为各个类建立它们需要的专用接口只与“直接朋友”交谈,不和“陌生人”说话(看情况,过多使用中间类会有大量冗余)尽量使用组合或聚合等关联来实现,其次考虑继承实现创建型模式(怎么去创建对象,让对象的创建与使用分离)单例模式(全局唯一)public class Demo1{ //JVM保证安全,只加载一次 private Demo1(){ } private s
2020-10-09 16:02:33 89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人