logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

JVM运行时五大数据区域详解

java虚拟机再执行Java程序的时候把它所拥有的内存区域划分了若干个数据区域。这些区域有着不同的功能,各司其职。这些区域不但功能不同,创建、销毁时间也不同。有些区域为线程私有,如:每个线程都有自己的程序计数器,则程序计数器随着用户线程创建而创建,随其销毁而销毁。而有些区域是所有线程共有的,如堆是被所有线程所共有的。根据《java虚拟机规范》的规定,java虚拟机所管理的内存将会包括以下几个运行时

文章图片
#jvm
JVM、JRE、JDK三者之间的关系

JVM(Java Virtual Machine,Java虚拟机): JVM是Java程序运行的环境,它是Java平台的核心组成部分。JRE(Java Runtime Environment,Java运行时环境): JRE是Java应用程序的运行时环境,它包含了JVM以及Java基础类库和所需的运行时资源。JDK提供了开发Java应用程序所需的一切,包括编译、调试、文档生成、性能分析等工具。简而言

文章图片
#jvm#java#开发语言
VUE项目部署过程中遇到的错误:POST http://124.60.×××.××:9090/test/login 405 (Not Allowed)

后面我查了些,nginx部署确实不支持post访问静态资源,而此时我们进行nginx转发后他会默认使用GET请求。但主要原因还是我们没有重新编写我们的路由策略。我当初报了这个405错误,再网上查了半天,他们都说什么是nginx部署不支持post访问静态资源。我再vue中有使用devServer:{proxy:{}}进行路由转发。中生效,当你将vue部署后就走不到这个配置当中,也就是说这里的路由转发

文章图片
#vue.js#nginx#docker
消息队列:Kafka吞吐量为什么比RocketMQ大

mmap返回的值可以让应用层获取到消息内容,可以进行一些逻辑处理,但sendfile返回的只是已经传输的字节数,具体发送了什么内容,内容层无法得知。而RocketMQ的一些功能需要具体了解到发送了什么消息才能实现(二次投递)。而Kafka主要追求吞吐量,也就不需要这些独特的功能,所以选择sendfile()文件,以达到更高的吞吐量。所以不同消息队列都有自己的特征,并不是说Kafka的架构就比Roc

文章图片
#kafka#rocketmq#分布式
java线程池(简单易懂)

它最长的构造方法有七个参数。核心线程数量——在线程池当中无论空闲多久都不会被删除的线程线程池当中最大的线程数量——线程池当中最大能创建的线程数量空闲时间(数值)——临时线程(线程池中出核心线程之外的线程)空闲了多久就会被淘汰的时间。空闲时间(单位)——临时线程空闲了多久就会被淘汰的时间单位,要用枚举类TimeUnit类作为参数阻塞队列——就是创建一个阻塞队列作为参数传入,就是当线程池当中线程数量已

文章图片
#java#开发语言
git的版本控制流程,特性分支之间怎么切换

Staged(暂存):执行git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件又会变为Unmodify 状态。Modified(修改):以入库,文件进行了修改,此时可以用git add命令将其状态变为Staged。Unmodify(未修改):已入库,但其文件没有修改,如果进行改动则会变成Modified状态,也可用git rm命令将其移出库。git commit -m

#git#github
mybatisplus开启sql打印的三种方式

使用: 使用mybatisplus自带的log-impl配置,使用log4j日志框架配置,使用P6spy插件这三种方法打印sql,分别介绍这三种方法的配置方法、应用场景和优缺点。

文章图片
#java#spring boot#mybatis +1
JVM:Java类加载机制

就是将 java的字节码文件(.Class)文件加载到内存当中,然后在方法区当中根据这个文件构建这个类的类模型,这个类包含了从字节码文件中解析出来的常量池、类方法、等信息。初始化阶段是类加载的最后一个步骤,再之前的加载阶段中处理加载阶段可以用用户子自定义类加载器的方式参与,其他时候都是由JVM自己主导控制的,到了初始化阶段才正式的使用我们自己写的java代码了,再这个阶段有一个执行类构造器方法需要

文章图片
#java#jvm#开发语言
到底了