自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 shell 入门练习小记

shell基础概念,练习

2023-08-07 15:32:46 110

原创 FreeSwitch 1.10及以上版本 配置 远程连接 mysql

freeswitch1.10以上版本 配置连接mysql

2022-11-23 19:45:50 1459

原创 mod_xml_curl实现远程动态管理mod_callcenter的队列queue

freeswitch mod_xml_curl mod_callcenter queue

2022-11-22 18:16:51 609 2

原创 Integer.getInteger()踩坑小记

开头先问一下大家,想一想下面的num值为什么Integer num = Integer.getInteger("4");经过测试得出,num 等于 null,没有想到在这里居然踩坑了。薛薇看一下源码:public static Integer getInteger(String nm) { return getInteger(nm, null); } public static Integer getInteger(String nm, Integer val) {

2021-09-09 14:05:21 1607

原创 关于redis跳表skipList实现的理解

Redis 跳表:skipList的原理:先谈谈有序双向链表:redis很快,为什么快?因为内存操作+单线程(redis6.0之前)吗,不全是1.从有序链表到跳表有序双向链表查询的时间复杂度为O(n),效率并不高,有什么办法可以提高查询效率呢?,试试二分法在做增删改操作时,每隔一个节点,维护一个二层指针,用来提高查询效率,eg.查询值为9时,单层有序链表查询过程为:1->3->5->7->9二层有序链表查询过程为:1->5->9效率有所提升既然尝到

2021-09-05 17:29:08 114

原创 LeetCode 22. 括号生成

括号生成:待完成

2021-07-02 09:56:05 55

原创 1024勋章

1024快乐(2019.10.24)

2019-10-24 18:48:38 184

原创 _46_全排列

import java.util.ArrayList;import java.util.List;/** * @author shy_black * @date 2019/8/20 19:02 * @Description: */public class _46_全排列 { public List<List<Integer>> permut...

2019-08-20 19:27:00 86

原创 InnoDB 和 MyISAM

InnoDB 和 MyISAM:InnoDB 支持事务,MyISAM不支持,如果在一些列的增删改时,只要那个出错还可以回滚还原,MyISAM就不可以了MyISAM适合查询及插入为主的场景,InnoDB适合频繁更新及涉及到安全性较高的场景InnoDB支持外键,MyISAM不支持InnoDB不保存表的行数,MyISAM保存清空表时,InnoDB逐行删除,MyISAM会直接...

2019-08-12 19:24:51 117

原创 聚簇索引与非聚簇索引

聚簇索引与非聚簇索引聚簇索引:并不是种单独的索引类型,而是一种数据存储方式。InnoDB中的聚簇索引实际上是在同一个结构上保存了B-Tree索引和数据行当表有聚簇索引时,它的数据行实际上存放在索引的叶子页中,“聚簇”表示数据行和相邻的键值紧凑的存储在一起。因为无法同时将数据行存放在俩个不同的地方,所以一个表只能有一个聚簇索引。聚簇索引中,叶子节点中保存了行的全部数据(主键值、事务ID、回...

2019-08-12 18:27:24 179

原创 GET和POST区别

传输存放位置:GET会把请求放在URL上,以?分割URL与GET参数,GET参数之间用&分割,因为URL只支持ASCII,所以GET也只能妥协,只支持ASCII编码POST‘将数据放在HTTP请求体内,而body中可以支持多种字符编码,所以post请求的字符编码也比较多样,但需要cli与serv商量好使用何种编码请求长度:GET在 url上,一般请求长度不超过2kPOST在bod...

2019-08-10 11:18:20 124

原创 HTTP

HTTP连接流程:1.从URL中解析出serv主机名2.将主机名通过DNS解析为IP3.解析端口号(如果有)4.建立一条cli---serv的TCP连接5.cli向serv发送http请求6.serv处理请求,返回http响应7.断开TCP连接,一次HTTP请求响应结束HTTP请求报文:(起始行)<方法><请求路径><HTTP版本&g...

2019-08-10 10:24:56 113

原创 剑指offer--二叉树的下一个结点

思路:(1) 若该节点存在右子树:则下一个节点为右子树最左子节点(如图节点 B )(2) 若该节点不存在右子树:这时分两种情况:2.1 该节点为父节点的左子节点,则下一个节点为其父节点(如图节点 D )2.2 该节点为父节点的右子节点,则沿着父节点向上遍历,知道找到一个节点的父节点的左子节点为该节点,则该节点的父节点下一个节点(如图节点 I ,沿着父节点一直向上查找找到 B ( B 为其...

2019-07-31 23:43:19 68

原创 剑指offer--翻转单词顺序列

/** * @author shy_black * @date 2019/7/31 23:18 * @Description: * 使用String的一个方法--trim(),它的作用是去除字符串俩边的空格 * 首先判断str去除字符串俩边空格后是否为""即空字符串,将trim以 * " "空格分为一个个单词,反向遍历split数组,在每次遍历时都在其后边加上 * " "空格,最后将...

2019-07-31 23:24:57 97

转载 String和它的常量池朋友以及intern()方法在JDK1.7中的变化

此文摘自:https://langinteger.github.io/2018/04/19/java-String-pool/Java语言中有8种基本数据类型和一种比较特殊的数据类型String。为了使用起来更加高效(时间上和空间上),JVM为这些类型的数据分别维护了系统级别的常量池。本文主要叙述String类型的常量池以及向常量池中添加对象的intern()方法在JDK1.7以后版本中的变化。...

2019-07-30 13:19:22 286

原创 剑指offer--把二叉树打印成多行

import java.util.*;/** * @author shy_black * @date 2019/7/28 17:09 * @Description: * 首先明确--> 需求为将二叉树的每一层节点值放入一个链表中, * 每一层节点又可以作为一个链表进行存储,所有先创建一个ArrayList<ArrayList<Integer&...

2019-07-28 19:47:45 73

原创 HashMap源码浅析

HashMap源码:1.构造函数:/** * Constructs an empty <tt>HashMap</tt> with the default initial capacity * (16) and the default load factor (0.75). */ new HashMap时,无参构造会默认创建初始化桶为16,加载因子为0.75的Ha...

2019-04-30 17:22:44 111

原创 堆排序

/**@author shy_black@date 2019/4/29 16:07@Description:堆排序原理(过程):1.先将数组转化为堆的形式2.循环:每次将堆顶元素与数组末尾元素交换,将数组大小减一然后进行shifDown操作(还原剩余数组的堆形式,使得堆顶元素还是最大)细节:shifDown:寻找当前节点的较大子节点,找到后交换当前元素与子节点的位置,更新当...

2019-04-29 16:37:07 99

原创 堆的基本操作

堆:逻辑上是一颗完全二叉树物理上是数组的形式 ,顺序存储作用:找数组中的前K大的值特点:​ 大顶堆:任意一个root的值>=左右子树的值​ 小顶堆:任意一个root的值<=左右子树的值–要调整root所在的节点前提:root的左右子树都已满足堆的性质如果root所在的节点已经是叶子结点,调整结束找到左右孩子中较小的一个min堆的基本操作(以大顶堆为例)查找堆元素的...

2019-04-25 17:31:23 158

原创 双亲委派模型

双亲委派模型:当类加载器收到类加载请求时,首先不会去加载它,而是将请求传给上传类加载器,直到传递到顶层类加载器(BootStrap),这时顶层类加载器开始处理类加载请求,如果不能成功加载,则传给下一层类加载器执行,依次类推。Bootstrap Classloader:启动类加载器,由C++编写,java程序不可以直接引用,主要负责加载JAVA_HOME\lib中的类库。Extensioin C...

2019-04-25 11:29:19 97

原创 第一个只出现一次的字符

解法与数组中只出现一次的数十分相似,有兴趣可以参考一下import java.util.*;/** * @author shy_black * @date 2019/4/12 18:41 * @Description: * 题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分...

2019-04-24 20:37:56 90

原创 数组中只出现一次的数字

解题思路:使用映射hashmap,将传入的数组元素作为key,第一次遍历时,每次遍历到新出现的元素时,put(元素,1)//key:元素,value:1,每次遍历到相同的元素时,修改value为value++,第二次遍历:寻找value为1的key,输出即可import java.util.HashMap;import java.util.Map;/** * @author shy_...

2019-04-24 20:20:03 253

原创 二叉搜索树的删除指定元素节点操作

//提供一个给用户方便使用的方法,在这个方法中调用私有方法 public void remove(E e) { remove(root,e); } //删除以node为根的二分搜索树中值为e的节点,递归算法 //返回删除节点后新的二分搜索树的根 /** * * @param node * @param e...

2019-04-24 18:42:21 348 1

原创 二分搜索树删除最大最小元素节点

移除最小元素节点:首先我们知道,二分搜索树的结构是每一个节点的左子树值都比该节点小,右子树的值都比该节点大,所以,一颗二分搜索树的最小元素节点必定在他的最左端节点。相同的,一颗二分搜索树的最大元素节点必定在他的最右端节点,删除最小元素节点:我们只需要先找到该树的最左端元素节点判断该节点有没有右子树,如果有,则将其右子树先保存起来,再将其从二分搜索树断开,,最后返回该右子树节点(返回该右子树...

2019-04-24 13:38:01 364

原创 二叉树的非递归 先序,中序,后序,层序遍历

//前序递归遍历 public void preOrderTraverse() { //输出根节点值 if (root != null) { System.out.print(root.value + "--"); //对左子树先序遍历 //构建一个二叉树,根是左子树的根 ...

2019-04-23 18:06:27 720

原创 并查集相关知识

并查集 :是一种树形的数据结构,用于处理一些不想交的集合的合并和查询问题。长藏在使用中以森林来表示。作用:可以判断网络中的节的连接状态。对一组数据主要支持两个动作:union(p,q)//将p,q所在的集合合并为同一集合isConnected(p,q)//查看p,q是否是同一集合的元素find( p )//查找元素所在的集合,即根节点代码实现:``//并查集接口public in...

2019-04-22 19:22:36 118

原创 servlet总结

2019-04-21 16:20:19 72

原创 使用cookie记录访问网站时间Demo

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest...

2019-04-20 15:41:06 157

原创 组个最小数---牛客网

import java.util.*;/** * * 输入描述: * 每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空 * * 格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。 * * 输出描述: 在一行中输出能够组成的最小的数。 * 输入 * * 2 2 0 0 ...

2019-03-21 20:02:07 305

原创 包含min函数的栈

import java.util.Stack;/** * @author shy_black * @date 2019/3/19 9:45 * @Description:主要是借助辅助栈min解决问题 * push方法: * 将node节点push,当该元素是stack中第一个push的元素或该元素小于min栈的顶部元素的 * 将该元素也push到min栈中,否则,就将min栈的...

2019-03-19 09:52:21 89

原创 栈的压入_弹出序列

import java.util.*;/** * @author shy_black * @date 2019/3/19 9:18 * @Description: * 使用一个辅助栈, * 1.循环入栈,循环比较-->当当前栈顶元素与预期出栈队列中的index下标元素相等时,将相等的元素出栈,index++ * 2.当pushA元素入栈完成后,如果popA中还有元素未进行比较,...

2019-03-19 09:25:27 132

原创 俩个栈实现队列

import java.util.Stack;/**@author shy_black@date 2019/3/19 8:49@Description:1.s1看做真队列,s2看为辅助队列2.每次push操作时,先把s1中的元素依次放入s2中,将要push的元素压入s1,最后再把s2中的元素依次压入s1中,保证了每次压入的元素在栈s1(队列)中的最低下3...

2019-03-19 08:55:39 106

原创 Condition实现生产者消费者模型

import java.util.ArrayList;import java.util.List;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @author...

2019-03-16 20:54:26 299

原创 ReentrantLock中公平锁与非公平锁的区别

ReentrantLock:通过模板模式使用Sync继承了AbstractQueuedSynchronizer(同步器),继而又使用了FairSync,NonFairSync类来覆写了Sync的方法,在使用ReentrantLock时,通过构造方法确定使用公平锁还是非公平锁。公平锁与非公平锁的差别主要在获取锁时:公平锁://首先直接调用acquire方法 final void lock...

2019-03-15 11:52:18 1082

原创 独占式锁acquire源码注释

AQS,即AbstractQueuedSynchronizer, 队列同步器,它是Java并发用来构建锁和其他同步组件的基础框架。args代表的含义: //独占式 args为null static final Node EXCLUSIVE = null; // 当前节点从同步队列中取消 static final int CANCELLED = 1;...

2019-03-14 18:44:57 228

原创 相交链表

public class 相交链表_09 { public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public ListNode getIntersectionNode(Lis...

2019-03-07 19:32:40 71

原创 合并俩个有序链表

public class 合并俩个有序链表_06 { // Definition for singly-linked list. private class ListNode { int val; ListNode next; ListNode(int x) { val = x; ...

2019-03-07 17:42:07 65

原创 链表中倒数第k个节点

public class 链表中倒数第k个节点_04 { public ListNode FindKthToTail(ListNode head, int k) { //判断链表是否为空 if (head == null) return head; //判断k是否为0 i...

2019-03-07 14:56:02 56

原创 回文链表

public class 回文链表_03 {// Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } class S...

2019-03-06 22:19:25 65

原创 LeetCode 206. 反转链表

public class 逆置单链表_02 { // Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } class ...

2019-03-06 00:35:01 72

空空如也

空空如也

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

TA关注的人

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