自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM (字节码执行引擎)

1. 局部变量表作用局部变量表是一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量。存储局部变量表是以变量槽为最小单位存储(Slot),虚拟机规范中也没有指明一个Slot应该占用多大内存空间,对于32位的数据类型(byte、char、short、int、float、boolean、returnAddress),每个局部变量占用一个slot,而对于64位的数据类型(lon...

2019-04-28 01:34:28 314

原创 JVM (类加载机制)

生命周期类从被加载到虚拟机内存中开始,到卸载出虚拟机内存为止,整个生命周期:一,类加载时机什么时候进入加载阶段java虚拟机规范中并没有进行强制约束,这点可以交给虚拟机的具体实现来自由把握。类初始化限定遇到new,getstatic,putstatic,invokestatic这四条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。使用java.lang.refl...

2019-04-26 01:50:21 104

原创 JVM(类文件结构和字节码指令)

一.类文件结构1.概述各种不同的平台的虚拟机与所有平台都统一使用的程序存储格式 — 字节码是实现平台无关性的基石所以我们有必要要了解class文件的文件结构是怎样的。2.Class文件结构class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在class文件之中,中间没有添加任何间隔符,这使得整个class文件中存储的内容几乎全部是程序运行的必要数据,没...

2019-04-25 00:54:54 256

原创 前后端交互 --- ajax使用

后端@RequestMapping("/login")@CrossOrigin@Slf4j@Controllerpublic class LoginController { @RequestMapping("/index") public String index(){ return "index"; } @ResponseBody ...

2019-04-24 23:43:16 1175

原创 JVM (垃圾收集器分类和总结)

引言java和c++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进来,里边的人想出去一.简介垃圾收集,也叫作GC(Garbage Collection),历史久远,甚至比java历史还要长,因此,第一门使用垃圾收集的语言并不是java,而是Lisp垃圾收集需要完成的三件事:哪些内存需要回收?什么时候回收?如何回收?二.判断哪些内存需要回收及什么时候回收?...

2019-04-23 02:07:46 817

原创 springboot整合RabbitMQ总结

springboot整合RabbitMQ总结1.RabbitMQ基础2.springboot整合RabbitMQ基础使用3.springboot整合RabbitMQ生产者消息确认4.springboot整合RabbitMQ消费者消息确认5.springboot整合RabbitMQ延迟消费...

2019-04-20 13:30:39 269

原创 springboot整合rabbitMQ实现消息延迟消费

一,延迟队列应用场景延迟消费:比如: 用户生成订单之后,需要过一段时间校验订单的支付状态,如果订单仍未支付则需要及时地关闭订单。用户注册成功之后,需要过一段时间比如一周后校验用户的使用情况,如果发现用户活跃度较低,则发送邮件或者短信来提醒用户使用。延迟重试:比如消费者从队列里消费消息时失败了,但是想要延迟一段时间后自动重试。如果不使用延迟队列,那么我们只能通过一个轮询扫描程序...

2019-04-20 02:04:57 2048

原创 java排序算法总结

java排序算法总结排序,这是一个很古老但是又很经典的问题,世界上有很多中优秀排序算法的实现,在这里,我总结了其他比较常用的几种排序算法1.java排序算法一览冒泡排序和基数排序桶排序和计数排序归并排序和快速排序堆排序插入排序和希尔排序2.分类3.比较1.时间复杂度比较算法乱序时间复杂度有序时间复杂度插入排序O(N^2)O(N)希尔排序...

2019-04-19 12:30:20 3113

原创 冒泡排序和基数排序

一,冒泡排序算法思路冒泡排序的原理可以顾名思义:把每个数据看成一个气泡,按初始顺序自底向上依次对两两气泡进行比较,对上重下轻的气泡交换顺序(这里用气泡轻、重表示数据大、小),保证轻的气泡总能浮在重的气泡上面,直到最轻的气泡浮到最上面;保持最后浮出的气泡不变,对余下气泡循环上述步骤,直到所有气泡从轻到重排列完毕。算法分析稳定排序时间复杂度;乱序:O(N^2),有序:O(N)空间复杂度...

2019-04-18 15:27:56 1301 7

原创 springboot整合RabbitMQ 消费者消息接收确认

一,消息接收确认1.ACK机制:消息确认机制1.作用:确认消息是否被消费者消费,消息通过ACK机制确认是否被正确接收,每个消息都要被确认。默认情况下,一个消息被消费者正确消费就会从队列中移除2.ACK确认模式AcknowledgeMode.NONE :不确认1. 默认所有消息消费成功,会不断的向消费者推送消息2. 因为rabbitMq认为所有消息都被消费成功,所以队列中不在存...

2019-04-18 02:00:48 18577 5

原创 桶排序和计数排序

一,桶排序1.算法原理1.桶排序核心思想就是将要排序的数据分到几个有序的桶里,每个通在分别进行排序,每个桶排序完成后再把每个桶里的数据按照顺序依次取出,组成新的序列,该序列就是排好序的序列。类似归并排序中中的分治思想。2.算法分析时间复杂度接近O(N),所以说桶排序是线性时间排序空间复杂度:桶排序中,需要创建M个桶的额外空间,以及N个元素的额外空间,所以桶排序的空间复杂度为 O...

2019-04-17 13:51:30 5310

原创 RabbitMQ基础

RabbitMQ1.简介:RabbitMQ是一个实现了AMQP协议(Advanced Message Queue Protocol)的消息队列。2.作用:流量削峰当我们在秒杀特价商品时,系统在一小段时间内突然收到大量的订单,如果将这么多订单请求写入数据库的话,数据库的负荷会非常之大,然而我们的数据库层也是最脆弱的,但是有了消息队列后,我们可以先将订单请求写入消息队列中,消息队列是位于...

2019-04-17 01:08:03 183

原创 归并排序和快速排序

一,归并排序归并排序算法实现算法思路:如果要排序一个数组,我们先从数组中间把数组分成左数组和右数组两部分,分别对左右数组进行排序,然后将排序好的数组合并成结果数组,排序就完成了,最后只需将结果数组复制回原数组即可。核心思想 ----- 分治思想分治也即是分而治之,将一个大问题分解为小的子问题来解决。分治算法一般都是用递归来实现的。分治是一种解决问题的处理思想,递归是一种编程技巧。归并...

2019-04-16 15:25:51 3404

原创 springboot整合rabbitMQ---生产者消息确认机制

rabbitMQ消息确认机制当我们程序向rabbitMQ中间件发送消息时,如果程序没什么异常的话,一般都会成功发送消息但是,我们并不知道,消息是否成功发送到相应交换机的相应队列中,此时,我们需要用到消息确认机制,这也是rabbitMQ的一个功能点1.消息发送确认 与 消息接收确认(ACK)消息发送确认:当消息可能因为路由键不匹配或者发送不到指定交换机而导致无法发送到相应队列时确认...

2019-04-14 15:57:34 4470

原创 堆排序

堆排序1.基本概念堆: 堆是一棵完全二叉树,这是他的结构性最大堆: 每个节点的值都大于或等于其左右孩子节点的值,这是他的堆序性最小堆: 每个节点的值都小于或等于其左右孩子节点的值,这是他的堆序性2.基本思想堆排序就是把需要排序的序列构建最大堆或者最小堆,此时,最大值或者最小值就在堆顶位置,然后把该元素放于最后,对剩下的序列再一次构造堆,知道完成排序堆排序的时间复杂度为 O(nlogn...

2019-04-13 17:13:19 304

原创 java内存区域和内存溢出异常

java内存区域概述对于从事c,c++的开发人员来说,他们需要负责内存管理,但是对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free,不容易出现内存泄漏和内存溢出的问题运行时数据区域虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在,而...

2019-04-13 01:57:25 172

原创 spring boot整合rabbitMq---基础使用

AMQP协议1.简介AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一个进程间传递异步消息的l网络协议2.AMQP模型3.工作流程消息发布者发布消息给交换机,交换机根据传递过来的路由键按照路由规则将接收到的消息分发给和交换机绑定的相应的队列,最后交给消息消费者RabbitMQ1.简介RabbitMQ是实现AMQP(高级消息队列协议...

2019-04-13 01:38:26 426

原创

栈1.什么是栈?栈是一种线性存储结构,是一种限定只能在栈的一端(栈顶)执行操作的数据结构,类似于餐厅中的盘子的堆叠放置一样,最先被取走的只能是放在最上面的盘子。2.栈有什么特点?LIFO(后进先出)线性数据结构,存储。查找,插入,删除操作只能访问栈的一端(栈顶)3.栈的相关概念栈顶与栈底 :允许元素插入与删除的一端称为栈顶,另一端称为栈底。进栈:向栈插入元素的操作,叫做进...

2019-04-12 02:08:59 1086

原创 插入排序,希尔排序

插入排序插入排序是一种比较排序算法核心思想在每次遍历序列过程中,从序列中取出一个元素插入到有序序列中,形成新的有序序列,重复该过程,直到遍历完成,形成新的有序序列。特点:时间复杂度分析:O(N^2),如果序列在排序前已经是有序序列,则为O(N)空间复杂度分析:O(1)数据量较少时效率高。插入排序适合数据量少的情况算法的实际运行效率优于选择排序和冒泡排序。稳定排序 — 插入排序...

2019-04-09 15:49:50 514

原创 String、StringBuffer、StringBuilder

String类:1.String的创建原理由于String在java中使用过于频繁,java为了避免在系统中存在大量string的对象,引入了字符串常量池,其运行机制是:如果通过 String str1 = “897”; 直接量赋值方式,创建一个字符串时,首先会检查字符串常量池中是否有值相同的字符串对象,如果有,则不需要创建对象直接从常量池中查找到对象的引用,如果没有,则新建字符串对象,但是,...

2019-04-08 16:45:37 150

原创 加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。有三种情况9...

2019-04-08 14:33:07 140

原创 二叉搜索树

二叉搜索树1.介绍二叉搜索树也叫二叉排序树或者,二叉查找树,他最重要的特点就是:左子节点比父节点小,右子节点比父节点大,如果使用中序遍历的话,可以得到一个有序序列2.性质二叉搜索树的左子树,右子树都是二叉搜索树二叉搜索树是一棵二叉树非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。没有键值相等的节点。二叉搜索树的平均深度是O(logN)一般不用担...

2019-04-08 01:08:52 199

原创 二叉树及其遍历

1.什么是二叉树概念二叉树是节点最多可以包含两个子节点的树,每一个节点都可以区分为左子节点和右子节点,二叉树的一个重要性质就是叶节点的数量<=2,如图所示就是一棵简单的二叉树2.二叉树的相关概念路径指的是从根节点到叶节点的路径。节点的度一个节点含有的子树的个数称为该节点的度节点的权节点中有意义的值(通常是数值)层从根开始定义起,根为第1层,根的子节点为第2层,以...

2019-04-06 02:10:00 494

原创 左式堆,斜堆及其合并操作

左式堆是堆的一种,但是左式堆是建立在一个具有堆序性的二叉树上而不是二叉堆左式堆和二叉堆的共同点:左式堆具有和二叉堆一样的堆序性左式堆具有和二叉堆一样的结构性左式堆和二叉堆的不同点:左式堆虽然和二叉堆都是二叉树,但是左式堆和二叉堆不同的是,二叉堆接近完全完全二叉树,左式堆是不理想平衡的,更加直接的说,左式堆是趋向于非常不平衡的。左式堆的一些概念零路经长(NPL)左式堆的零...

2019-04-05 17:31:46 3481 5

原创 二叉堆的构建以及上滤与下滤

实现优先队列我们可以有以下几种方式:1.链表实现2.二叉查找树3.堆其中,二叉堆在优先队列的使用非常普遍二叉堆的两个性质:1.结构性堆实际上是一棵完全二叉树,底层元素从左到右填入,所以堆的高度为logN,因为完全二叉树的规律性,堆其实可以看作是一个数组,在这个数组中,父节点位于 i /2 位置,则左子节点则在 2i位置,右子节点在 2i + 1上2.堆序性让堆操作快...

2019-04-04 02:09:20 2539 2

原创 NIO基础

NIO简介java.nio全称java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。为所有的原始类型提供(Buffer)缓存支持。字符集编码解码解决方案。 Channel :一个新的原始I/O 抽象。 支持锁和内存映射文件的文件访问接口。 ...

2019-04-03 15:22:01 313

原创 sql查询语句小结

今天在做作业的时候,发现自己sql语句基础并不是特别牢固,所以晚上得时候又重新看了一次查询的sql语法,复习复习基础,个人觉得查询sql语句在增删改查中个人觉得是最重要的,分类整理下边操作以下列表为主student_info表CREATE TABLE `student_info` ( `username` varchar(255) NOT NULL, `id` int(11) N...

2019-04-03 01:32:29 360

原创 IO(五)对象流和序列化反序列化

对象流:有的时候,我们可能需要将内存中的对象持久化到硬盘下,或者将硬盘中的对象信息读到内存中,这个时候我们可能会用到流,java IO中提供了方便我们使用的流(对象流)方便我们进行对象的序列化和反序列化操作序列化:讲对象转换成一个字节序列的过程,相当于写入操作反序列化:将一个字节序列转换为对象的过程,相当于读操作java IO 也提供了一个接口来标志是否可以序列化----Seriali...

2019-04-01 16:46:44 159

go语言源码包

方便那些不能下的朋友们,这是go的包,本人官网下载

2019-05-03

空空如也

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

TA关注的人

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