Java
文章平均质量分 87
qinjunu
这个作者很懒,什么都没留下…
展开
-
红黑树
前言1. 红黑树的来源-23树红黑树的来源讲解2-3树是 B 树的特例(3阶 B 树),通过红黑节点来描述 2-3 树中的不同节点,使得程序更简洁2. 红黑树RBT vs 平衡二叉树AVLAVL 左右子树高度相差不超过 1,RBT 左右子树高度相差不超过一倍(完美的黑色平衡)AVL 树比红黑树更加平衡,但 AVL 树在插入和删除时会存在大量的旋转操作(红黑树可以通过颜色,少做几次旋转)红黑树1. 性质每一个节点都有一个颜色,要么为红,要么为黑树的根节点为黑色父子节点原创 2020-06-17 13:44:02 · 116 阅读 · 0 评论 -
Java集合
集合架构集合与数组的区别长度内容元素数组固定基本类型或引用类型同一种类型集合可变引用类型可以存储不同类型(一般存储同种类型)Collection集合的方法集合分类...转载 2020-03-10 19:07:37 · 210 阅读 · 0 评论 -
Java异常
异常体系从责任角度看Error属于JVM需要负担的责任RuntimeException是程序应该承担的责任Checked Exception可检查异常是Java编译器应该承担的责任Error和Exception的区别Error:程序无法处理的系统的错误,编译器不做检查;程序无法处理的错误Exception:程序可以处理的异常,补货后可能恢复;程序可以处理的错误...原创 2020-02-04 12:48:00 · 102 阅读 · 0 评论 -
网络
TCP/IPTCP简介OSI(概念型框架)的实现:TCP/IP面向连接的,可靠的,基于字节流的传输层通信协议将应用层的数据流分割成报文段并发送给目标节点的TCP层数据包都有序号,对方收到则发送ACK确认,未收到则重传使用校验和来检验数据在传输中是否有误TCP FlagsURG:紧急指针标志ACK:确认序号标志PSH:push标志RST:重置连接标志SYN...原创 2020-02-02 23:19:07 · 240 阅读 · 0 评论 -
Redis
一 缓存数据库作用实现了对热点数据的高速缓存,提高应用的响应速度,极大缓解后端数据库的压力主流应用架构图片缓存中间件Memcache : 代码层次类似Hash支持简单数据类型不支持数据持久化存储不支持主从不支持分片Redis数据类型丰富支持数据磁盘持久化存储支持主从支持分片二 RedisRedis为什么能这么快1000...原创 2020-01-21 00:13:09 · 188 阅读 · 0 评论 -
java多线程与并发-原理
线程安全问题主要诱因存在共享数据(临界资源)存在多条线程共同操作这些共享数据解决-互斥锁解决方案:同一时刻有且仅有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作,引入互斥锁(Java中使用synchronized)互斥锁的特性:互斥性:即同一时间只允许一个线程持有某个对象锁可见性:必须确保在锁被释放之前,对共享变量所做的修改,...原创 2019-12-23 22:29:38 · 184 阅读 · 0 评论 -
Java多线程与并发
进程和线程进程是资源分配的最小单位,线程是CPU调度的最小单位所有与进程相关的资源,都被记录在PCB中进程是抢占处理机的调度单位;线程属于某个进程,共享其资源线程只由堆栈寄存器,程序计数器和TCB组成线程不能看做独立应用,而进程可看做独立应用进程有独立的地址空间,相互不影响,线程只是进程的不同执行路径线程没有独立的地址空间,多进程的程序比多线程程序健壮进程的切换比线程的...原创 2019-12-22 23:34:10 · 104 阅读 · 0 评论 -
数据库-语法
Group by满足“select 子句中的列名必须为分组列或列函数”,该条件只针对于同一张表成立列函数对于group by子句定义的每个组各返回一个结果将结果集存入临时表Having通常与group by子句一起使用where过滤行,having过滤组出现在同一sql的顺序:where > group by > having...原创 2019-12-21 20:51:31 · 80 阅读 · 0 评论 -
数据库-锁
MySQL中的锁机制MyISAM与InnoDB关于锁方面的区别MyISAMMyISAM默认用的是表级锁,不支持行级锁不会出现死锁(MyISAM总是一次获得SQL语句所需要的全部锁。这也正是MyISAM表不会出现死锁(Deadlock Free)的原因)在执行LOCK TABLES后,只能访问显式加锁的这些表,不能访问未加锁的表;同时,如果加的是读锁,那么只能执行查询操作,而不能...原创 2019-12-20 21:23:02 · 129 阅读 · 0 评论 -
数据库-索引
索引模块索引目的:快速查询数据构成:主键,唯一键以及普通键等索引数据结构:(1) 二叉查找树(每深入一层,进行依次I/O操作)(2)B-/B Tree(相比于二叉数每个节点能存储更多的索引)(3)B+ Tree(非叶子节点不携带数据,每个节点可以存储更多的索引)(4)HashB+树更适合用来做存储索引:B+树的磁盘读写代价更低(每个节点可以存储更多的索引)B+...原创 2019-12-19 21:51:06 · 141 阅读 · 0 评论 -
GC
垃圾判断对象被判定为垃圾的标准没有被其他对象引用判定对象是否为垃圾的算法引用计数算法概述(1)通过判断对象的引用数量来决定对象是否可以被回收(2)每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1(3)任何引用计数为0的对象实例可以当作垃圾收集优点:执行效率高,程序执行受影响较小缺点:无法检测出循环引用(两个对象相互引用)的情况,导致内存泄漏可...原创 2019-12-19 00:08:17 · 220 阅读 · 0 评论 -
内存模型
JVM架构图内存模型程序计数器当前线程所执行的字节码行号指示器(逻辑)改变计数器的值来选取下一条需要执行的字节码指令和线程是一对一的关系对Java方法技术,如果是native方法则计数器值为Undefined不会发生内存泄漏虚拟机栈Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(存储局部变量表,操作数栈,动态链接,方法出口等),当方法执行...原创 2019-12-17 18:17:05 · 166 阅读 · 0 评论 -
平台无关性
Compile once, run anywhere为什么要先编译成字节码再解析成机器码java的平台无关性(通过jvm)为什么jvm不直接将源码解析成机器码准备工作:每次执行需要各种检查(各种语法句法的检查)兼容性:也可以将别的语言解析成字节码JVM架构反射java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象...原创 2019-12-16 18:50:05 · 175 阅读 · 0 评论 -
类型转换
java之中类型转换方式分两种:自动类型转换和强制类型转换自动类型转换自动类型转换,是指系统支持把某种基础类型直接付给另一种基础类型的变量(必须是把表数范围小的数值或变量赋给表数范围大的变量)强制类型转换条件是转换的数据类型必须是兼容的格式:(type)value (type是要强制类型转换后的数据类型)==> intInterger.parseI...原创 2019-10-21 11:38:01 · 133 阅读 · 0 评论 -
Regex
java.util.regex 包主要包括三个类:Pattern类 : 用于创建一个正则表达式(模式匹配),它的构造方法是私有的,不可以直接创建;可以通过 Pattern.complie(String regex) 简单工厂方法创建一个正则表达式Matcher类 : Matcher 对象是对输入字符串进行解释和匹配操作的引擎PatternSyntaxException : Patter...原创 2019-10-20 23:45:51 · 285 阅读 · 0 评论 -
String
常用方法str.length()String concat(String str) : 等同于str1 + str2char charAt(int index) : 索引范围 ( 0 , length() - 1)boolean equals(Object anObject)int compareTo(String str) : 依次比较对应字符的大小(ASCII码顺...原创 2019-10-15 17:32:51 · 100 阅读 · 0 评论