自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySQL锁

目录全局锁表级锁行锁死锁和死锁检测问题:全局锁全局锁是对整个数据库实例加锁,MySQL提供了一个加全局读锁的方法,命令是Flush tables with read lock(FTWRL)业务的更新不只是增删改数据(DML),还有可能是加字段等修改表结构的操作(DDL)全局锁的典型使用场景是,做全库逻辑备份风险:1、如果在在主库备份,备份期间不能更新,业务停摆2、如果在从库备份,备份期间不能执行主库的binlog,导致主从延迟官方自带的逻辑备份工具是mysqldump。当mysqldump使

2020-10-01 15:59:26 201

原创 MySQL索引

目录1、索引的作用2、常见的索引模型3、索引类型1、索引的作用索引出现的目的就是提高数据的查询效率2、常见的索引模型1、哈希表 2、有序数组 3、搜索树哈希表哈希表:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,把value放在数组的这个位置缺点:哈希索引做区间查询速度很慢哈希表适用场景:等值查询的场景有序数组有序数组:按顺序存储,查询用二分法就可以快速查询(O(logN))缺点:更新效率低。想往中间插入数据,就要把后面的数据全部挪的,成本太高有序数组适用场景:只适用于

2020-09-30 20:27:34 153

原创 java思维导图

最近把javaSE,javaWeb,数据结构的知识点整理了下,弄了挺久,但收获也挺大。大家如果有需要可以在评论区留下邮箱,我看到会发过去????

2020-09-06 22:21:46 173

原创 MySQL总结

MYSQLJDBC(1)获取连接——DriverManager和DataSource两种方式(2)创建操作命令对象——Statement、PreparedStatement、CallableStatement(3)执行sql语句(4)如果是查询语句,需要处理结果集ResultSet(5)释放资源(反向释放 )DriverManager和DataSource区别1、DriverManger创建的连接无法重复利用,每次使用完释放资源时,通过connection.close()都是关闭物理连接2

2020-07-08 23:43:45 389

原创 多线程总结

本文的篇幅比较长,总结了自己在学习中遇到的有关多线程的所有知识点????创建线程方法有两种方法:(1)继承Thread类(2)实现Runnable接口(3)Callable方式:结合Future,可以获取线程的执行结果Thread基础API及线程状态线程状态NEWRUNNABLE——》running(运行态)+ready(就绪态)BLOCKEDWAITINGTIMED_WAITINGTERMINATEDstart()和run()start()相当于启动一个新线程,在新线程里

2020-06-26 22:49:36 154

原创 Spring和Spring Framework的理解

文章目录SpringSpring FrameworkBeanFactory和ApplicationContextSpring Bean的属性Bean的作用域Bean的生命周期SpringSpring是一个生态体系,其中包含了Spring Framework、SpringBoot等等,下面是部分截图Spring FrameworkBeanFactory和ApplicationContextBeanFactory是基础类型的IOC容器,负责初始化各种Bean,并调用他们的生命周期方法Applic

2020-06-21 16:51:46 4312

原创 HTTP协议

文章目录HTTP协议格式常见的HeaderGET和POST请求方法HTTP状态码重定向和转发session和cookieHTTP协议格式HTTP请求首行:[方法]+[URL]+[版本号]Header:请求的属性,冒号分割键值对;遇到空行表示Header部分结束Body:空行后面的内容。Body允许为空字符串,如果不为空,,Header中会有Content-Length属性来标识Body长度HTTP响应首行:[版本号]+[状态码]+[状态码解释]Header:请求的属性,冒号分割键值对;遇到

2020-06-20 12:21:43 191

原创 类加载

文章目录类加载时机类的生命周期类加载器类加载机制——双亲委派机制类加载时机以下情况必须立即对类进行“初始化”(加载、验证、准备自然需要在这之前开始)1、创建类的实例(new方式)2、反射的方式3、初始化某个类的子类,其父类也会被初始化4、Java虚拟机启动时被标明是启动类的类,直接使用java.exe命令来运行某个主类类的生命周期7个阶段:加载、验证、准备、解析、初始化、使用和卸载前5个是类加载阶段加载验证这一阶段的目的是确保Class文件的字节流中包含的信息符合当前虚拟机的要求,

2020-06-16 14:30:39 121

原创 JVM之GC详解

垃圾回收

2020-06-14 16:26:30 600

原创 TCP协议详解

TCP协议:1、特性:有连接、可靠的、面向字节流、具有接收和发送数据缓冲区2、原理:1)安全    (1)确认应答机制    (2)超时重传机制    (3)连接管理机制(三次握手、四次挥手)    (4)流量控制    (5)拥塞控制2)性能    

2020-06-09 15:17:52 244

原创 计算机网络知识

1、网络分层2、网络传输流程3、重点协议网络分层OSI(开发系统互联)七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP五层模型(四层没有物理层):代表硬件协议/技术特性1、物理层双绞线、WIFI电磁波、集线器发送0,1光电信号2、数据链路层交换机以太网、令牌环网、无线LAN、ARP3、网络层路由器IP4、传输层TCP/UDP主机系统内核实现5、应用层HTTP、DNS、NAT、NATP应用

2020-06-05 09:23:53 237

原创 gtibook安装失败

gitbook是一个基于Node.js的命令行工具,在安装gitbook(3.2.3)的时候要注意node的版本,版本不匹配会导致安装失败nodejs不是10.x版本就会报错,将nodejs版本改为10.23.0后,gitbook就可以正常安装使用了。这里提供一个切换nodejs版本的命令:1、安装node版本管理模块n:sudo npm install n -g2、版本降级/升级sudo n 版本号版本查看:node -v 或者 n...

2021-08-23 01:35:41 414

原创 测试思维导图

2020-09-08 01:10:47 938

原创 MySQL复杂查询实操

       之前写的MySQL中也有提到复杂查询,只是写了些理论知识,老话说得好啊,“纸上得来终觉浅”,所以我把复杂查询的具体操作写一下,加深印象。文章目录1、聚合查询2、联合查询(联表查询)3、子查询1、聚合查询1)通用的count2)数值类的max/min/avg/sum话不多说,我们开始操作????????????--先创建一张表create table person( name varchar(20), hei

2020-07-28 23:41:57 524 1

原创 Linux常用命令

netstat打印Linux中网络系统的状态信息netstat -a #列出所有端口netstat -at #列出所有tcp端口netstat -au #列出所有upd端口ps显示进程的命令ps -ef #用标准的格式显示进程ps -aux #用BSD格式来显示进程less主要用来浏览文件内容less [参数] 文件名j k/方向键:向下向上滚动屏幕-N:显示每行的行号q:退出n:重复前一个搜索(与 / 或 ? 有关)head显示开头的n行,默认是打印10行he

2020-07-23 11:36:14 110

原创 Java反射技术

1、什么是反射?Java的反射(reflection)机制是在运行状态中,对任意一个类,都能知道这个类的所有属性和方法。2、反射的使用反射的使用简单来说就是几个步骤:1、获取字节码文件对象2、获取构造器对象3、通过构造器实例化对象4、反射属性和方法本文的代码都是反射笔者自己实现的Student类中的属性和方法:public class Student { private String name; private String gender; private int

2020-05-22 23:38:17 223

原创 归并排序

递归实现 private static void mergeSort(int[] array,int left,int right,int[] tmp){ if(right-left>1){ int mid=left+((right-left)>>1); //左半部分[left,mid) mergeSort(array,left,mid,tmp); //右半部分[m.

2020-05-17 21:09:19 108

原创 选择排序(直接选择排序、堆排序)

直接选择排序每次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前),直到全部待排序数据元素排完//直接选择排序 public static void selectsort(int[] a){ for(int i=0;i<a.length-1;i++){ // 无序区间: [0, array.length - i) ...

2020-05-16 20:53:39 114

原创 交换排序(冒泡排序、快速排序)

快速排序1、快速排序的框架:找基准值–》按基准值将区间划分为两部分:左侧部分<基准值<右侧部分    递归排基准值左侧部分    递归排基准值右侧部分public static void quickSort(int[] array,int left,int right){ if(r...

2020-04-19 23:29:38 256

原创 插入排序(直接插入排序、希尔排序)

直接插入排序每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入时间复杂度:O(N^2)空间复杂度:O(1)–》没有借助辅助空间稳定性:稳定应用场景:序列接近有序或者数据个数比较少public static void insertSort(int[] array){ for(int i=1;i<array.length;i++){ ...

2020-04-16 12:48:03 96

原创 int、Integer、new Integer()变量的比较

遇到下面这样个题,我仔细查了下,对Integer,new Integer()和int进行了总结 int i=0; Integer j = new Integer(0); System.out.println(i==j);//true System.out.println(j.equals(i));//true两个new Integer()变量比较,永远是false ...

2020-04-13 22:49:20 715

原创 二叉树的遍历——前中后序(递归,非递归)

二叉树的遍历前序遍历:根节点–》根节点的左子树–》根节点的右子树中序遍历:根节点的左子树–》根节点–》根节点的右子树后序遍历:根节点的左子树–》根节点的右子树–》根节点共同点:先坐子树后右子树不同点:根节点的遍历次序不同        二叉树的递归遍历非常简单,就拿前序遍历做个说明(来源–》力扣144. 二...

2020-03-26 00:35:14 169

原创 JVM

学习Java总归是避不开JVM,我把自己目前的理解梳理一下JVM是什么?JVM是Java虚拟机的缩写( Java Virtual Machine)引入JVM的目的实现跨平台性—引入jvm后,Java在不同的平台上不需要重新编译JVM本质是一个基于C++实现的程序JVM的划分程序计数器(PC Register):保存下一条指令的地址,空间很小虚拟机栈(JVM Stack):重点...

2020-02-21 21:09:32 100

原创 java继承与多态

继承基类和派生类目的:代码的复用关键词:extends子类/派生类 extends 父类/基类/超类public class A extends B{//类 A继承了类 B}子类继承了除构造方法外的所有东西(包括属性和方法)C++注释:java继承与C++类似,java用关键字extends代替了C++中的冒号(:),并且在java中都是公有继承,没有C++中的私...

2019-11-18 21:34:14 124

原创 图书管理系统(C语言、链表)

    用链表实现一个简单的图书管理系统,每本书的信息包括书名、ISBN、价格,程序包括录入、查询(书名查询和ISBN查询)、添加、删除和输出功能#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct Nod...

2019-11-02 16:09:03 10666 2

原创 java数组的定义与使用

一维数组数组的创建数据类型[] 数据名称=new 数据类型[长度]{初始化数据}; //动态初始化数据类型[] 数据名称=new 数据类型[长度]; //默认值为0数据类型[] 数据名称={初始化数据}; //静态初始化代码示例:int[] arr = new int[3]{1, 2, 3};int[] arr =new int[3];int[] ar...

2019-10-24 00:01:58 125

原创 java求两个数的最大公约数(改进)

      之前用C语言写过求最大公约数的博客,我发现可以用更简单、明了的代码来实现,这次使用java来完成import java.util.Scanner;//调用Scanner类,从键盘上获取数据 public class code { public static void main(String[] args){ ...

2019-10-19 17:34:37 210

原创 java方法的使用(重载,递归)

方法java中的方法就是一个代码片段,类似于C语言里的函数基本语法:// 方法定义public static 方法返回值 方法名称([参数类型 形参 ...]){方法体代码; [return 返回值];}// 方法调用返回值变量 = 方法名称(实参...);注意事项:1.方法定义时可以没有参数。每个参数要指定类型2.方法定义必须在类中3.java里没有“函数声明“的概...

2019-10-17 18:45:08 299

原创 Java的数据类型

刚接触Java,我发现它与C有相似的地方,也有些不同,我列举一下我自己觉得Java的数据类型中需要注意的地方!!!数据类型            Java中有8种内置数据类型,可以分为基本数据类型和引用数据类型(String)两大类,其中基本数据类型又可以分为数值型(int,short,long),...

2019-09-29 19:22:04 109

原创 反转字符串(不分配额外的内存)

反转字符串反转字符串最常见的方法就是设置两个指针(指向字符串的头和尾),然后头尾交换知道左边的指针不小于右边指针为止。但我遇到一个题要求不能再分配额外的空间,,,,,这个问题和交换两个数的值类似我们知道俩个数字交换可以用设置中间变量实现(因为简单就不举例了),也可以用异或实现,例如:int a=1;int b=2;a=a^b;b=a^b;a=a^b;这样我们就交换了a,b的值...

2019-09-26 16:52:33 1416

原创 求两个整数之和(用位运算实现)

求两个数之和题目描述:不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和,不能使用+,-求和,我们可以用位运算来求^ 按位异或& 按位与整型数据在计算机中占4个字节,是以32位二进制补码形式存储和运算的(64位机),a^b相当于不进位相加,(a&b)<<1相当于显示进位0000 0000 0000 0000 0...

2019-09-13 00:47:49 1146

原创 操作符详解

算数操作符 + - * / %%操作符的两个操作数必须为整数移位操作符<< 左移操作符>> 右移操作符左移操作符规则:右边补0右移操作符规则:1、逻辑移位(仅是移位操作符): 左边补02、算数移位 (要考虑符号位):左边补符号位注意:对于一位运算符不要移动负数位,这是为标准定义的位操作符& //按位与| //按位或^ //按位异或...

2019-09-07 17:12:49 78

原创 冒泡排序及其改进

冒泡排序原理1、比较相邻的元素,前者大就交换2、每对相邻元素都比较3、对所有元素都重复以上步骤(最后一个元素不用)程序一#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void BubbleSort(int a[], int len){ for (int i = 0;i < len - 1; i++) {...

2019-07-27 23:01:18 151

原创 sizeof和strlen的区别

sizeofsizeof()是运算符,在编译的时候计算,参数可以是数组,指针,类型,函数,sizeof()不关心存的数据长度,返回的是编译器为其分配空间的大小strlenstrlen()是函数,在程序运行的时候执行,参数必须是字符型指针(char*)。当数组名作为参数传入时,数组就退化成指针了。遇到第一个字符串结束符’\0’时结束(长度不包含’\0’),程序#define _CRT_SE...

2019-07-27 15:55:09 61

原创 输出第N个斐波那契数

斐波那契数什么是斐波那契数?斐波那契数列(Fibonacci sequence),又称黄金分割数列。斐波那契数列的排列是:1,1,2,3,5,8,13,21,34,55,89,144…  依次类推下去,你会发现,它后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数。例如:2是第3个斐波那契数。实现方法非递归方法#define _CRT_SECURE_NO_WARNING...

2019-07-26 15:45:53 2318 3

原创 输出1~999999的水仙花数

输出1~999999的水仙花数水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身,例如:( 例如:1^3 + 5^3 + 3^3 = 153 )很多时候题目要求输出100-1000的水仙花数,我这次遇到的是1~999999的水仙花数,难度会更大一点,需要考虑数的位数,代码如下#de...

2019-07-22 17:12:44 471

原创 交换两个数的大小(用异或实现)

用异或实现两个数的交换交换两个数的值??很简单啊,在定义一个中间变量不就行了么是的,那是正确的,可以实现,我再补充一个刚学到的方法->异或话不多说,直接上代码#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int a = 4; int b = 5; a = a^b; b = a^b;...

2019-07-19 15:14:59 340

原创 关于static你需要知道的

static1、修饰局部变量->提升局部变量的生命周期2、修饰全局变量->作用域被限制了->限制在当前的源文件中3、修饰函数->作用域被限制了->限制在当前的源文件中用两个程序来具体说明一下第一个程序没用static#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void Test(){...

2019-07-19 14:44:42 125

原创 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。。。说实话这个题真不难,那我为啥还要发出来呢,因为卡了我很长时间,,,,我分享一下我的错误,看下面正确的代码#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int i = 0; *float t = 1...

2019-07-18 16:25:37 946 2

原创 define和enum

define和enum的区别1、#define 定义的常量 不可以进行调试2、define定义的标识符常量不具有类型 枚举具有类型enum(枚举)enum枚举名{标识符[=整型常数],标识符[=整型常数],...标识符[=整型常数]};例如:enum Day{ MON = 1, THU = 4, WED=3, //......};注意:...

2019-07-18 00:46:57 589

java思维导图(部分)

零零散散花了几天时间整理了java思维导图,感觉收获挺大,很多知识点更清晰了,大家有需要可以下载哦。

2020-09-07

空空如也

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

TA关注的人

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