自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MongoDB聚合操作MongoDB常用聚合管道聚合$project$match$count$group$unwind$limit$skip$sort$lookup用法及操作案例

目录1.聚合操作1.1 单一作用聚合1.2 聚合管道什么是 MongoDB 聚合框架管道(Pipeline)和阶段(Stage)常用的管道聚合阶段$project$match$count$group$unwind$limit$skip$sort$lookup聚合操作案例1聚合操作案例21.3 MapReduce1.聚合操作聚合操作处理数据记录并返回计算结果。聚合操作组值来自多个文档,可以对分组数据执行各种操作以返回单个结果。

2022-03-28 17:08:58 5509

原创 MongoDB快速实战与基本原理docker安装MongoDB linux安装MongoDB增删改查

1.MongoDB介绍1.1 什么是MongoDBMongoDB 版本变迁MongoDB vs 关系型数据库1.2 MongoDB技术优势1.3 MongoDB应用场景如何考虑是否选择MongoDB?2.MongoDB快速开始2.1 linux安装MongoDB下载MongoDB Community Server启动MongoDB Server关闭Mongo...

2022-03-25 17:55:54 3595 1

原创 spring整合mybatis核心原理

在我常使用mybatis中,会经常使用@MapperScan注解下面我们来看看它是如何整合进到spring的,首先我们进入MapperScan会看到@Import(MapperScannerRegistrar.class)我们打开MapperScannerRegistrar会看到实现了ImportBeanDefinitionRegistrar接口,这个接口会在spring加载启动解析import注解的时候调用实现ImportBeanDefinitionRegistrar接口的registerB.

2022-02-11 20:45:00 1022 1

原创 JDK8的HashMap的扩容详解

比文章是基于JDK1.8的源码进行分析,如果有分析的不合理的地方欢迎指出。HashMap是我们工作中常用的一个集合,那么它运行的机制和思想我们了解多少,下面我们就从源码层面来剖析一下,先看下面HashMap中的几个字段属性 //默认初始化的容量向右移动四位也就是2的四次方 容量为16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //最大容量为2的30次方 static final int MAX

2022-01-30 22:45:55 2145

原创 垃圾收集器常用的几种算法

垃圾收集器常用的三种算法:之前的文章有写到,大部分的垃圾收集器都采用的是分代回收的思想,比如Eden区、S1、S2、老年代等,采用分代收集的思想垃圾器有:Serial、Parallel、ParNew、CMS(老年代)、G1 等。没有采用分代收集理论的收集器有ZGC。以上的收集器会在后面的文章中给大家更新。标记复制算法标记复制算法是将内存分为大小相同的两个区域,每次只使用其中的一块区域,当这一块区域使用完成之后将存活的对象移动到另一块区域,然后再将使用的区域全部清理,每次回收都是对...

2022-01-29 07:00:00 881

原创 对象的分配流程,什么是逃逸分析,如何确定对象分配在哪个分代上面

对象分配流程图对象栈上分配我们通过jvm内存分配可以了解到对象都是在堆上分配的,如果对象没有被使用了会由GC进行回收,如果垃圾对象比较多那么会给GC的回收带来较大的压力,间接影响了应用的性能,为了减少临时对象在堆上分配的数量,JVM会通过逃逸分析来确定对象会不会被外部引用,如果不会逃逸则会将对象在栈上分配内存,这样该对象所占用的内存空间会随着栈针的出栈而销毁,减轻了GC回收的压力逃逸分析就是分析对象的作用域当一个对象在方法中被定义后,它可能被外部方法所引用,...

2022-01-27 16:54:46 391

原创 什么是指针压缩?如何开启和关闭指针压缩?为什么要进行指针压缩?有哪些注意的地方?

什么是指针压缩呢?从jdk1.6开始在64位的操作系统中就JVM就支持指针压缩。如何开启和关闭指针压缩?jvm配置参数:UseCompressedOops,compressed--压缩、oop(ordinary object pointer)--对象指针。启用指针压缩:-XX:+UseCompressedOops(默认开启),禁止指针压缩:-XX:-UseCompressedOops为什么要进行指针压缩?有哪些注意的地方?1.在64位平台的HotSpot中...

2022-01-27 15:40:35 2970 6

原创 对象的创建与内存分配机制

对象的创建主要分为以下几个流程:类加载检查当我们新new一个对象时,首先去检查这个指令的参数是否能在常量池中定位到一个类的引用,并且检查这个引用代表的类是否已经被加载过,如果没有被加载过则执行相应的类加载过程(使用类加载器加载)。内存分配执行完上面的类加载步骤之后,就是为我们新new的对象分配内存,新的对象所需要的内存大小在加载完成之后便可确定,为对象分配空间相当于把一块已知大小的内存从堆中划分给新对象。内存分配如何划分?会不会出现并发问题?划分内存的方式指针碰撞和空闲列表。..

2022-01-27 15:27:26 212

原创 JAVA虚拟机及内存模型

首先我们都知道java语言有跨平台特性可以在不同的环境运行java内存模型在young GC过程中对象挪动之后,是怎么做到不影响对象的使用的?对象young GC的时候在堆内部挪动的过程使用的是复制算法,原有区域对象还在,一般不直接清理,JVM内部清理过程只是将对象分配指针移动到新的区域的头位置即可,比如扫描s0区域,扫到gcroot引用的非垃圾对象是将这些对象复制到s1或老年代,最后扫描完了将s0区域的对象分配指针移动到区域的起始位置即可,s0区域之前对象并不直接清理,当有新对象分配了

2022-01-27 11:39:54 114

空空如也

空空如也

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

TA关注的人

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