![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 86
拖沓·晁天王
这个作者很懒,什么都没留下…
展开
-
JVM(九)性能监控与调优
JVM(九)性能监控与调优背景说明为什么要调优监控的依据性能优化步骤性能监控(发现问题)性能分析(排查问题)性能调优(解决问题)性能评价/测试指标JVM命令行监控工具jps语法参数jstat语法参数jinfo语法参数jmap(JVM Memory Map)参数导出内存映像文件jhat(JVM Heap Analysis Tool)jstack(JVM Stack Trace)jcmdjstatd背景说明为什么要调优防止出现OOM解决OOM减少Full GC出现的频率监控的依据运行日志异原创 2021-07-20 22:10:41 · 507 阅读 · 3 评论 -
JavaCV 通过rtsp拉流并推流到rtmp
JavaCV 通过rtsp拉流并推流到rtmp目录结构pom.xmlVideoRealPlayApplicationIndexControllerVideoDataCacheThreadPoolUtilVideoTimerVideoStreamServiceVideoDTOnginx-rtmp服务搭建目录结构pom.xml<dependency> <groupId>org.bytedeco</groupId> <artifactId>原创 2021-02-04 18:16:15 · 3620 阅读 · 12 评论 -
docker-compose 部署nacos单机/集群
nacos容器部署docker-compose.yml创建nacos目录在conf创建application.propertiesdocker-compose.ymlversion: '3'services: mysql-master: image: mysql:5.7 container_name: mysql-master restart: always privileged: true ports: - "3306:3306" en原创 2021-01-13 15:48:40 · 1176 阅读 · 0 评论 -
详解mysql,java,redis三种地理位置算法
- 获取附近信息,以用户当前位置为中心点,指定范围为半径,查询出在该圆圈内的所有信息。 - 计算两个位置之间的距离。原创 2020-10-09 15:25:16 · 1297 阅读 · 0 评论 -
JVM(九)垃圾回收器
JVM(九)垃圾回收器概述GC分类性能指标吞吐量暂停时间矛盾点不同的垃圾回收器概述Serial回收器:串行回收ParNew回收器:并行回收Paralle回收器:吞吐量优先CMS回收器:低延迟G1回收器:区域化分代式总结GC日志分析新的发展概述垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同的版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类型。GC分类按线程数分,可以分为串行垃圾回原创 2020-09-11 18:36:53 · 293 阅读 · 1 评论 -
Java中的引用类型
Java中的引用类型简介强引用(不回收)软引用(内存不足即回收)弱引用(发现即回收)虚引用(对象回收跟踪)简介我们希望能描述这样一类对象:当内存空间还足够时,则能保留在内存中;如果内存空间在进行垃圾手机后还是很紧张,则可以抛弃这些对象。在JDK 1.2版本之后,Java对引用的概念进行了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)四种,强度一次逐渐减弱。除强引用原创 2020-09-11 14:40:34 · 258 阅读 · 0 评论 -
JVM(八): 垃圾回收
JVM(八): 垃圾回收概念什么是垃圾为什么需要GC早期垃圾回收Java垃圾回收机制垃圾回收相关算法标记阶段引用计数算法可达性分析算法对象的finalization机制MAT与JProfiler的GC Roots溯源清除阶段标记-清除算法复制算法标记-压缩算法分代收集算法增量收集算法、分区算法概念什么是垃圾垃圾收集是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收集机制仍然在不断的演进中,不同大小的设备、特征的应用场景,对垃圾收原创 2020-09-10 12:01:37 · 162 阅读 · 0 评论 -
JVM(七): 执行引擎
JVM(七): 执行引擎概述编译执行过程机器码、指令、汇编语言解释器JIT编译器概述执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,区别在于物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码原创 2020-09-07 18:42:56 · 295 阅读 · 0 评论 -
JVM(六): Java中的对象
JVM(六): Java中的对象对象创建步骤对象内存布局对象头(Header)实例数据(Instance Data)对齐填充(Padding)JVM中对象创建过程对象访问定位对象创建步骤判断对象对应的类是否被加载、链接、初始化:虚拟机遇到new指令时,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化(即判断类元信息是否存在)。如果没有,在双亲委派模式下,使用当前类加载器以ClassLoader+包名+类名为key原创 2020-09-04 16:36:48 · 143 阅读 · 0 评论 -
JVM(五):运行时数据区 方法区 详解
JVM(四):运行时数据区 方法区 详解栈、堆、方法区数据交互关系概念方法区的演进方法区的大小(JDK8)栈、堆、方法区数据交互关系从内存分配角度来看从线程共享与否角度来看概念《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择区进行来及收集或者进行压缩。”但对于HotSpot JVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。所以,方法区看做是一块独立于Java堆的内存空间。方法区(Method Are原创 2020-08-25 17:45:37 · 613 阅读 · 0 评论 -
JVM(四):运行时数据区 堆 详解
JVM(四):运行时数据区 堆 详解概述设置大小内存细分年轻代与老年代对象分配过程GCMinor GCMajor GCFull GC概述一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动时即被创建,其空间大小也是确定的。是JVM管理的最大一块内存空间。堆的大小是可以调节的。《JVM虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。所有的线程共享JAVA堆,在这里还可以划分线程私有的缓存区(Thread Local Allo原创 2020-08-21 15:08:17 · 340 阅读 · 0 评论 -
JVM(三):本地方法接口
本地方法接口概述关键字为什么要使用Native Method现状概述一个Native Method就是一个Java调用非Java代码的接口,一个Native Method是这样一个java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,有很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。在定义一个Native method时,并不提供实现体(有些像定义一个Java interface),因为其实现体是由非java原创 2020-08-20 09:42:13 · 384 阅读 · 0 评论 -
记解决项目部署在CentOS中文变成?的问题
SpringBoot项目部署到生产环境后查看日志发现所有中文字符变成了???。。。。。。记录一下排错思路和解决方式,,,警钟长鸣首先想到的就是日志输出到文件时没有设置编码,造成日志内容输出时乱码,因为项目在本地idea控制台的日志是正常的。查看项目的logback-spring.xml文件中输出到文件时的encoder的charset为UTF-8,不是日志配置的问题,继续排查。。。接下来排查一下是否是系统的原因本地开发win10系统,查看本地日志文件的内容,发现本地日志文件是正常的,那就肯原创 2020-08-17 17:05:54 · 440 阅读 · 0 评论 -
SpringBoot整合WebSocket
SpringBoot整合WebSocket简介特点SpringBoot整合pomWebSocketConfig配置类ServerEncoder自定义编码器WebSocketServer实现类application.yml测试nginx配置客户端心跳简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一原创 2020-08-17 16:01:44 · 272 阅读 · 0 评论 -
JVM(二):运行时数据区详解
JVM(二):运行时数据区概述概述原创 2020-08-15 11:58:45 · 251 阅读 · 0 评论 -
JVM(一):Java虚拟机、类加载器
JVMJava虚拟机作用特点JVM位置JVM的生命周期启动执行退出JVM整体结构类加载器作用类的加载过程加载阶段链接阶段初始化新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Java虚拟机Java技术的核心就是Java原创 2020-08-14 22:12:39 · 450 阅读 · 0 评论 -
TOP、jstack、jmap
jstackjstack命令CPU高jstack主要是用来查看某个java进程内的线程堆栈信息命令jstack [-l] <pid> (to connect to running process) 连接活动线程jstack -F [-m] [-l] <pid> (to connect to a hung process) 连接阻塞线程jstack [-m] [-l] <executable> <core> (to conne原创 2020-07-09 10:44:53 · 350 阅读 · 0 评论 -
Java中的Lock详解
Java中的Lock详解简介Lock和syncronized的区别Lock接口抽象方法ReentrantLocksynchronized重入测试ReentrantLock重入测试NonReentrantLockReentrantReadWriteLock公平锁与非公平锁如何实现优缺点简介java.util.concurrent.locks.Lock 是一个类似于synchronized 块的线程同步机制。但是 Lock比 synchronized 块更加灵活。Lock是个接口,有个实现类是Reentra原创 2020-07-08 12:01:37 · 9193 阅读 · 3 评论 -
SpringBoot自动配置原理
SpringBoot自动配置原理简介开箱即用SpringBootApplicationSpringBootConfigurationComponentScanEnableAutoConfiguration自动配置实现原理简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid ap原创 2020-07-05 22:02:44 · 601 阅读 · 1 评论 -
Docker将Springboot项目打包为镜像一
Docker将Springboot项目打包为镜像一DockerfileDockerfile中使用的命令编写自己项目的Dcokerfile创建镜像Dockerfile官网描述镜像信息的文本文件,其内容包含四个部分:基础镜像信息、发布者信息、镜像操作指令和容器启动时执行的指令。Dockerfile中使用的命令FROMFROM指定一个基础镜像, 一般情况下一个可用的 Dockerfile一...原创 2019-12-25 16:37:02 · 644 阅读 · 0 评论 -
Docker for windows安装Elasticsearch
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-11-20 10:08:35 · 1003 阅读 · 0 评论