自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java对象的创建

Java对象实在堆中创建,主要分为以下五步:一. 类加载检查常量池中是否能定位到类的符号引用,并检查当前类是否被加载解析和初始化过;如果没有则必须执行类加载。二.分配内存虚拟机为对象分配内存,分配内存的方式主要有两种:1.指针碰撞将指针向空闲内存方向移动对象大小的距离。这种方式需要Java堆中内存是绝对规整的。2.空闲列表如果堆中的内存并不规整,如已使用的堆内存与空闲的堆内存相互交织在一起,则不能使用指针碰撞进行内存分配;这个时候虚拟机需要维护一个列表记录堆中的空闲内存的大小,在内存分配的时

2022-04-30 22:28:33 120

原创 Java运行时数据区域

Java运行时数据区域是Java执行时所管理的内存区域,这些区域都有各自的用途及创建和销毁的时间;有些区域是随着虚拟机的启动而一直存在,有些区域是随着用户线程启动而创建,用户线程结束而销毁。一. 程序计数器线程私有执行Java方法时存储的是正在执行的虚拟机字节码指令执行本地方法(Native)时存储的空(Undefined)没有规定OutOfMemoryError注意:执行Native方法是Java通过jni调用本地方法来实现,Native是非Java方法,所以程序计数器无法统计。二.

2022-04-30 21:31:57 133

原创 Nginx安装部署

一、下载地址http://nginx.org/en/download.html二.文件夹介绍三.Nginx安装# 安装依赖gccyum install -y gcc# 安装依赖perlyum install -y pcre pcre-devel# 安装依赖zlibyum install -y zlib zlib-devel# 安装nginx 并指定nginx的安装目录/usr/local/ngin./configure --prefix=/usr/local/nginx# 执行安

2022-04-02 19:23:52 2727

原创 Redis基本的数据类型

Redis简介Redis是一个基于内存存储的数据库,可以做持久化(RDB,AOF);基于key-value存储,value支持多种数据类型,支持集群及事务;Redis默认有16个数据库,可以在配置文件中设置(databases 16);Redis是单线程+IO多路复用Redis的单条命令的操作都是原子性的(Lua脚本除外)注意:Redis6中依然是采用Redis是单线程+IO多路复用来实现,多线程部分只是用来处理网络数据的读写和协议解析,执行命令依然是单线程.CPU不是redis的瓶颈

2022-03-27 15:33:56 1243

原创 Docker镜像加载原理

一.简介Docker是一个轻量级的、可执行的独立软件包,将一个应用程序和环境打包成为一个文件包,这个打包好的文件包就是Docker镜像。只有通过镜像文件才能生成容器实例。。镜像文件是分层的,底层采用联合文件系统来实现。二.联合文件系统(UnionFS)联合文件系统是一个轻量级、高性能的文件系统;他支持对文件系统的修改作为一次提交来一层层叠加;同时可以将不同的目录挂载到同一个文件系统下.UnionFs是Docker镜像的基础。可以通过分层来继承基础镜像,提高文件的复用。三.Docker镜像加载原理

2022-03-26 17:33:46 1595

原创 JVM 运行时数据区域

一.运行时数据区域Java虚拟机在执行就Java程序的时候会把它所管理的内存分为多个区域,有些区域随着Java虚拟机进程启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立销毁。根据《Java虚拟机规范》,Java虚拟机管理的运行时区域如下图:二.程序计数器线程私有内存是当前线程所执行的字节码的行号指示器执行Java方法,计数器记录的是正在执行虚拟机字节码指令地址执行本地方法,计数器的值则为空(Undefined)唯一一个没有规定任何OOM的区域说明:对于Java方法程序计数器

2022-03-25 21:54:53 797

原创 SpringCloud-Eureka技术学习及分享(version:2020.0.5)

一.简介Eureka是Netflix中的一个开源框架,由SpringCloud整合的一个的一个基于服务发现及注册的微服务框架,Eureka主要包含Eureka Server(服务端)及Eureka Client(客户端)两个组件。Eureka Server端提供服务注册、服务续约、服务下线、服务健康检查等功能;Eureka client需要在启动时根据配置的Server端地址去注册自己,并定时想服务端发送心跳并未付本地服务列表。Eureka满足AP,高可用与可伸缩的Service发现服务,突出可用性。(

2022-03-20 20:30:38 238

原创 SpringBoot2.5.10-SNAPSHOT执行流程

一.构建SpringApplication对象SpringApplication主要是加载1.将我们的启动类添加在主要资源(primarySources)primarySources是一个LinkedHashSet设置webApplicationType

2022-03-17 20:08:47 809

原创 Linux安装RocketMQ

一. 安装mavenmaven下载地址安装maven:tar -zxvf apache-maven-3.6.3-bin.tar.gz新增阿里云镜像及仓库配置在/usr/local/maven/apache-maven-3.6.3/conf/setting.xml中新增阿里云镜像,如下:<localRepository>/path/to/local/repo</localRepository><!--注意存放位置--> <mirror> &

2022-03-12 21:54:34 249

原创 Spring的执行流程

一.Spring IOCIOC容器是一个Map结构,里面包含了控制反转及依赖注入。控制反转:控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。把对象的创建、初始化、销毁等工作交给spring容器来做。由spring容器控制对象的生命周期。DI依赖注入:DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一

2022-03-12 20:36:38 1308

原创 RabbitMq简介及生产事务及消费端ack

一.RabbitMq简介AMQP(高级消息队列协议)是一种消息协议,它使符合标准的客户端应用程序能够与符合标准的消息中间件代理进行通信。二.核心概念1.Publisher消息的生产者,将消息发送给交换机2.Consumer消息的消费者,绑定队列并消费消息3.Virtual Hosts虚拟主机,虚拟主机提供资源的逻辑分组和分离,拥有自己的队列、交换器、绑定和权限机制;一个Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的E

2022-02-20 22:01:35 1127

原创 Docker常用命令

Docker常用命令帮助命令docker versiondocker infodocker --help镜像命令Docker images列出本地主机上的镜像名docker search 镜像名 #从dockerhub上搜索镜像docker pull 镜像名 #下载镜像docker rmi 镜像名ID #删除镜像0x03 容器命令前提:有镜像才能创建容器新建并启动容器docker run [OPTIONS] IMAGE [Command] 参数[OPTION

2022-02-19 20:37:42 76

原创 Yapi接口自动导入

1、下载并安装YapiUpload插件(两种方式 二选一即可,如下)(1)、idea下载安装YapiUpload插件(如下图所示)(2)、网页下载YapiUpload插件并导入到IDEA(如下图所示:)下载地址:https://plugins.jetbrains.com/plugin/12276-yapiupload2、查询项目的token即项目ID(1)、进入Yapi,地址如下:http://yapi.qingningmaidan.com/group/58(2)、选择需要导入接口的项目

2021-08-10 16:22:15 3416

原创 JVM类加载机制

一个类从被加载到JVM内存中开始到卸载为止,他的整个生命周期将会经历加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中加载、验证、准备、初始化和卸载的顺序是固定的。1.加载通过类的全限定名获取来获取定义此类的二进制流;将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成一个Class对象,作为方法区这个类的数据访问入口。2.验证这一阶段主要是确保class文件中是否包含有危害jvm安全的指令...

2021-07-27 14:41:48 39

原创 Nacos集群环境搭建

一、Nacos下载及安装Nacos下载地址linux环境安装:tar -xvf nacos-server-2.0.1.tar.gz注意:安装Nacos需要安装JDK环境1.8二、Nacos环境配置1.数据源配置用于存放用户登录信息及配置,在/nacos/conf/application.properties配置数据源信息,如下图:spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/

2021-05-15 20:08:20 58

原创 VMWare安装linux并配置网卡

一.新建虚拟机二.编辑虚拟机1.设置内存2.设置处理器3.选择镜像4.选择网络默认net 这里改为桥连5.开启虚拟机6.选择启动模式7.选择语言8.选择安装的配置9.设置密码10.配置网卡vi /etc/sysconfig/network-scripts/ifcfg-ens33HWADDR=18:03:73:B4:86:82 #网卡地址MAC,第一次我使用了windows的mac地址但是启动网络失败了,然后在linux使用命令ifconfig可以看到一个MAC地址,

2021-05-15 15:12:53 526

原创 JAVA线程池创建

Java创建线程池主要包含两类1.使用java.util.concurrent.Executors工厂类创建FixedThreadPool 创建一个定长的线程池通过源码可以发现FixedThreadPool底层调用的是ThreadPoolExecutor创建的,线程核心数及线程最大数量有我们传递的参数决定 public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolE

2021-05-12 19:59:07 182

原创 Docker安装JDK

安装JDK首选需要安装运行环境我这里用的是centos7;1.写dockerfile#拉取基础镜像 如果本地没有 会在远程仓库拉取 FROM centos:7 #设置作者名字 MAINTAINER xubo #将JDK拷贝到容器,并解压 COPY是只cp不解压 ADD jdk-8u181-linux-x64.tar.gz /usr/local/docker/java/ #设置环境变量 ENV JAVA_HOME /usr/local/docker/java/jdk1.8.0_181/ ENV CLAS

2021-05-11 18:08:57 113

原创 docker安装部署及常用命令

cat /etc/redhat-release #查看系统版本容器的生命周期检查本地是否存在镜像,没有的话就去远程仓库拉取;利用镜像启动容器在容器镜像外面加一层可写层 writable从宿主机网桥接口中虚拟一个接口到容器从一个地址池配置一个IP地址给容器执行用户指令指令执行完成后容器终止1.移出系统中历史的dockersudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ do

2021-05-09 16:08:58 155

原创 rabbitMQ手动安装

rabbitMQ手动安装RabbitMQ是基于Erlang语言编写,安装RabbitMQ需安装对应的Erlang版本,查看版本对应关系请查看官网。安装Erlang环境Erlang下载安装Erlang

2021-05-01 19:26:44 436

空空如也

空空如也

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

TA关注的人

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