加载中
【Java虚拟机】堆内存配置常用参数

1 常用参数说明 -Xms:初始堆内存空间大小(默认为物理内存的1/64) -Xmx: 最大堆内存空间大小(默认为物理内存的1/4) -Xmn:设置新生代大小(初始值和最大值) -XX:NewRatio:配置新生代与...

2020/12/07 21:52
423
【Java虚拟机】什么是对象分配过程中的TLAB?

1 为什么要有TLAB? TLAB的全称是:Thread Local Allocation Buffer,翻译过来意思是线程本地缓冲内存。 在内存分配过程中,堆区是线程共享的区域,任何线程都可以反问到堆区中的共享数据。 ...

2020/12/07 21:04
456
【Java虚拟机】堆内存分配策略总结

1 一般情况 对象出生在Eden区。 第一次MinorGC之后仍然存活,并且能被Survivor容纳,则被移动到Survivor空间中,并将年龄设为1. 对象在Survivor区中每熬过一次MinorGC,年龄增加1岁,在Survi...

2020/12/07 20:32
233
【JAVA虚拟机】可视化监视与管理控制台-JConsole

1 什么是JConsole Java开发者为了方便广大研发人员在开发过程中,对jvm性能情况进行实时监控与查看,开发了一整套完整的性能监控系统,包括命令行脚本与可视化页面,其中,命令行脚本的使用方...

2020/12/03 20:03
42
JDK基础脚本工具总结

本文摘自《深入理解Java虚拟机 第三版》,如此书的作者所说,虽然现在已经有个各种可视化工具实现了对命令行工具的封装,方便且体验良好。但是不论JDK发展到什么版本,或者工具如何封装,这些...

2020/12/03 19:56
80
JDK的命令行工具详解

一、概述 JDK的命令行工具指的是jdk的bin目录中的一些可执行工具,除了常用的java、javac之外,还有很多其他可执行工具,主要包括用于监视虚拟机和故障处理的工具。这些故障处理工具被Sun公司...

2020/11/10 19:47
310
JVM垃圾回收--垃圾收集器总结

总述 基于jvm垃圾收集算法的理论基础,不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集...

2020/10/30 22:08
39
JVM垃圾回收-垃圾收集算法总结

JVM虚拟机在判断哪些对象需要回收之后,接下来就是如何回收这些对象的内存。可以把系统内存想象成一个个小方格,jvm使用到的内存和需要收集到内存都散乱分布。如何将需要回收的内存回收,并尽...

2020/10/29 20:55
207
JVM垃圾回收--如何判断对象已死

大家都知道java虚拟机中,内存回收是自动的,有垃圾收集器(GC)完成。那么垃圾收集器是如何判断哪些对象需要回收呢?这就引申出在java虚拟机中如何判断对象还是否有用。最常用的两种方法是引...

2020/10/29 20:21
37
OutOfMemoryError异常总结

本文内存极大程度参考《深入理解Java虚拟机:JVM高级特性于最佳实践》一书,本文是在看书过程中的实操和总结。 在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域...

2020/10/25 11:50
249
java对象的内存布局

在HotSpot虚拟机中,对象在对堆中的存储布局可以分为三个部分:对象头、实例数据、对其填充。 第一部分 对象头 对象头的数据包括两类信息:对象自身的运行时数据、类型指针 运行时数据 运行时...

2020/10/24 09:09
18
【Java虚拟机】对象的创建过程

1 检查是否已加载 接受到new指令时,首先将区检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个俄富豪引用代表的类是否已被加载、解析和初始化。如果没有,则执行类加载...

2020/10/23 21:21
32
类加载子系统

整体流程图 ClassLoader作用 类加载子系统负责从文件或者网络中加载class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则又Excutio...

2020/10/14 21:47
16
jvm运行时数据区

架构图 线程共享数据区 堆 用于存放对象实例 堆本身没有分区,所有的分区方法都只是逻辑分区,仅用于帮助理解,如:GC分为新生代、老年代、永久代、Eden等,线程可以有线程缓冲区 堆内存在物...

2020/10/14 21:42
38
如何创建spring-boot的web项目

第一步:新建一个maven项目 新建项目,选择maven 填写GroupId和ArtifactId 下一步默认即可,直接点击finish 创建完成后项目结构如下 第二步: 配置pom.xml 在pom.xml中添加如下代码:...

Volatile可见性代码验证

Volatile可见性是指:在JMM模型中,所有的线程操作数据时,都不能直接操作主内存里的数据,都需要将数据复制一份到线程内存中,只能修改线程内存中的数据(详细可以查找JMM相关知识)。然而,...

2020/06/17 20:57
80
Mysql修改表的编码格式

在工作中发现的问题,在mysql库中,如果两个表的编码格式不同,会导致索引失效, 比如:表A的编码格式是utf8,但是表B的编码格式是utf8mb4,就会导致两张表联表查询时非常缓慢。所以需要修改...

2020/03/26 09:10
156
Java操作HDFS示例

环境准备 大数据集群一套,没有的可以自己本地搭建一套(参考地址:https://www.jianshu.com/p/2c2ae6490fa0) 本地安装JDK 本地安装IDEA或者Eclipse 2. 创建Maven项目 在IDEA工具中创建一个...

2020/02/26 10:35
213
HDFS的shell操作

hdfs集群上的文件,在实际操作过程中和linux命令非常相似,只需要在前面写[hadoop fs]命令后面再加上想要对集群做的文件操作即可,下面是一些用的操作命令和示例。 参数 含义 举例 -help 输出...

2020/02/26 10:34
156
Hadoop伪分布式环境配置与启动

环境准备 在一台linux机器上,安装好hadoop运行环境,安装方式请查看:HADOOP运行环境搭建 2. 启动HDFS并运行MapReduce程序 2.1. 配置集群 1. 配置:hadoop-env.sh Linux系统中获取JDK的安装...

2020/02/26 10:33
366

没有更多内容

加载失败,请刷新页面

返回顶部
顶部