自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (1)
  • 收藏
  • 关注

原创 垃圾收集器ParNew

今天我们一起来探讨JVM的垃圾收集算法和垃圾收集器垃圾收集算法分代收集理论当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除

2021-11-16 17:16:31 415

原创 JVM对象创建与内存分配机制深度剖析

对象的创建对象创建的主要流程:分配内存:在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类 加载完成后便可完全确定,为对象分配空间的任务等同于把 一块确定大小的内存从Java堆中划分出来。这个步骤有两个问题:如何划分内存。在并发情况下, 可能出现正在给对象A分配内存,指针还没来得及修改,对象B又同时使用了原来的指针来分配内存的情况。划分内存的方法:指针碰撞”(Bump the Pointer)(默认用指针碰撞)如果Java堆中内存是绝对规整的,所有用过的内

2021-11-12 17:42:44 421

原创 JVM内存模型深度剖析与优化

Java语言的跨平台特性JVM整体结构及内存模型JVM内存参数设置Spring Boot程序的JVM参数设置格式(Tomcat启动直接加在bin目录下catalina.sh文件里):java ‐Xms2048M ‐Xmx2048M ‐Xmn1024M ‐Xss512K ‐XX:MetaspaceSize=256M ‐XX:MaxMetaspaceSize=256M ‐jar microservice‐eurek a‐server.jar关于元空间的JVM参数有两个:-XX:Metaspac

2021-11-12 17:10:33 90

原创 从JDK源码剖析JVM类加载机制

从JDK源码剖析JVM类加载机制这段时间一直很忙,实在是没时间写了,好不容易这段时间得空了,所以与大家分享一下这篇:当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到 JVM。public class Math { public static final int initData = 666; public static User user = new User(); public int compute() { //一个方法对应一块栈帧内存区域

2021-11-12 16:47:07 75

原创 springboot整合activeMQ

上一篇,我们已经完成了对消息中间件的理解以及activeMQ的安装,现在我们来使用springboot整合activeMQ。创建springboot生产者工程 (mq-producer)引入maven依赖完整的maven依赖如下: <parent> <groupId>org.springframework.boot</groupId> &...

2019-05-30 16:24:00 391

原创 消息中间件的概述与activeMQ的安装

本文主要描述了对消息中间件的了解以及在centos上安装activeMQ的教程,读者学习activeMQ入门看完本文就可以了。什么是消息中间件?发送者将消息发送给消息服务器,消息服务器将消感存放在若千队列中,在合适的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待; 二者的生命周期未必相同: 发送消息的时候接收者不一定运行,接收消息的时候发送者也不一定运行;一对...

2019-05-30 14:50:35 159

原创 基于Docker安装Jenkins环境

本文主要讲述了在docker的基础上安装Jenkins环境,本人亲测有效,大家在安装的过程中有任何都可以留言评论。**前提:**阅读本博客之前,建议大家之前有接触过docker,熟悉docker一些常用的命令,并已经在linux系统上安装了docker。进入主题:jenkins安装步骤:使用docker 安装jenkins (在linux系统客户端上执行以下命令)docker run...

2019-05-28 16:28:42 429 1

原创 谈hibernate,jpa与spring data jpa三者之间的关系

前提其实很多框架都是对另一个框架的封装,我们在学习类似的框架的时候,难免会进入误区,所以我们就应该对其进行总结归纳,对比。本文就是对hibernate,jpa,spring data jpa三者之间进行文字对比,以及对其三者分别进行CRUD操作。文字说明HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建...

2019-05-01 11:44:38 13290 7

原创 springboot搭建账单管理系统

阅读本博客之前,简历大家对springboot基础有一定的了解,如果感兴趣的话,可以看一下我之前写的一篇博客,里面讲述了springboot的介绍与优点以及几种数据访问操作的方法。建议大家去看一下。话不多说,现在我们就开始来使用springboot框架来快速搭建账单管理系统,让大家体会到springboot框架的高效、便捷等优势。项目源码和数据库脚本我已经上传到githup上面了,大家可以去g...

2019-04-29 14:31:45 3465 1

原创 springboot的介绍与数据访问操作的几种方式

springboot介绍springboot的设计是为了使您能够尽可能快地启动和运行。它使用 “习惯优于配置” (项目中存在大量的配置,而 Spring Boot 内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用 Spring Boot 很容易创建一个独立运行(运行jar,内嵌 Servlet 容器)、准生产强力的基于 Spring 框架的项目,使用 Sprin...

2019-04-29 11:36:23 1220

原创 Ribbon客户端负载均衡

前面我们了解了服务调用Rest和服务注册中心Eureka。现在我们来了解微服务架构springcloud技术栈之Ribbon负载均衡器。什么是负载均衡?LB,即负载均衡(Load Balance),负载均衡是微服务架构中经常使用的一种技术。 负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,简单的说就是将用户的请求平摊的分配到多个服务上,从而实现系统的高可用性集群。负载...

2019-04-27 19:55:38 485

原创 微服务技术栈之Eureka-服务的注册与发现(包括单机版与集群版)

前面描述了服务之间的调用Rest,读者可以点击该链接Rest查看问题:系统会根据业务划分成很多的微服务,微服务的信息该如何管理呢?springcloud中提供服务注册中心来管理微服务信息为什么要使用注册中心?微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务的ip和端口。微服务会实时上报自己的状态,注册中心统一管理这些微服务的状态,将存在...

2019-04-27 16:44:39 260

原创 使用Rest构建分布式微服务架构实战项目

看该博客之前,建立大家有maven,springboot基础,以及微服务架构概念;如果没有微服务架构思想的话可以看下我发表的一篇博客。链接如下:微服务架构描述以下使用的编辑器是IDEA开发环境要求:jdk1.8(springboot推荐jdk1.8及以上)maven 3.x(maven3.2以上版本)sringboot:springboot2.0.7springcloud使用当前最...

2019-04-27 14:04:53 474

原创 谈谈微服务架构的诞生历程与理解

对于微服务,马丁福勒在2014年发表了一篇关于微服务的博客,感兴趣的读者可以去看看。 [博客](https://martinfowler.com/microservices/) 微服务是一种架构风格,是以开发一组小型服务的方式来作为一个独立的应用系统,即每个服务都运行在自己的进程中,服务之间采用轻量级的HTTP通信机制(通常是采用HTTP的RESTFUL API)进行通信。每一个服务都是根据...

2019-04-27 10:30:52 1709

空空如也

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

TA关注的人

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