摘要:从OpenJDK8起有了一个很nice的虚拟机内部功能:NativeMemoryTracking(NMT)。本文分享自华为云社区《NativeMemoryTracking详解(1):基础介绍》,作者:毕昇小助手。0.引言我们经常会好奇,我启动了一个JVM,他到底会占据多大的内存?他的内存都消耗在哪里?为什么JVM使用的内存比我设置的-Xmx大这么多?我的内存设置参数是否合理?为什么我的JVM内存一直缓慢增长?为什么我的JVM会被OOMKiller等等,这都涉及到JAVA虚拟机对内存的一个使用情况,不如让我们来一探其中究竟。1.简介除去大家都熟悉的可以使用-Xms、-Xmx等参数设置的堆(
转自:http://www.java265.com/JavaCourse/202206/3724.htmlOptional简介Optional是java8中新增的API用于完美解决空指针异常使用Optional类可避免显式的空值判断所以笔者在jdk1.8的环境下,大量的使用Optional这个容器例:Optional可检测一个null容器如:Optional.ofNullable(null)此时当isPresent方法返回true时调用get()方法则可返回其对象下文笔者将着重讲述Optional中的orElse()、orElseGet() 例:未使用Optional的代码if(user!=n
转自:http://www.java265.com/JavaCourse/202206/3724.htmlOptional简介Optional是java8中新增的API用于完美解决空指针异常使用Optional类可避免显式的空值判断所以笔者在jdk1.8的环境下,大量的使用Optional这个容器例:Optional可检测一个null容器如:Optional.ofNullable(null)此时当isPresent方法返回true时调用get()方法则可返回其对象下文笔者将着重讲述Optional中的orElse()、orElseGet() 例:未使用Optional的代码if(user!=n
1.搜索JDK的官方网址https://www.oracle.com/java/technologies/downloads/#jdk172.切换到window系统,根据自己电脑的系统进行切换。然后点击下载3.下载完成后移动你指定的文件夹并解压(这里放在了d盘目录下)4.配置环境变量。打开我的电脑->点击属->找到高级系统设置->点击环境变量。5.点击新建变量名"JAVA_HOME",变量值为“%JDK-17%”。这里可以配置多个JDK的版本以便以后开发需要,以后想切换JDK版本,只需更改"JAVA_HOME"的变量值即可。6.新建变量名为JDK17,这个名字与上一步骤JAVA_HOME的变量
1.搜索JDK的官方网址https://www.oracle.com/java/technologies/downloads/#jdk172.切换到window系统,根据自己电脑的系统进行切换。然后点击下载3.下载完成后移动你指定的文件夹并解压(这里放在了d盘目录下)4.配置环境变量。打开我的电脑->点击属->找到高级系统设置->点击环境变量。5.点击新建变量名"JAVA_HOME",变量值为“%JDK-17%”。这里可以配置多个JDK的版本以便以后开发需要,以后想切换JDK版本,只需更改"JAVA_HOME"的变量值即可。6.新建变量名为JDK17,这个名字与上一步骤JAVA_HOME的变量
0.Background在JAVA语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中1.常量池1.1常量池是什么?JVM常量池主要分为Cla
0.Background在JAVA语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中1.常量池1.1常量池是什么?JVM常量池主要分为Cla
目录下载jdk配置环境测试安装下载jdkJDk安装包:官网:https://www.oracle.com/cn/java/technologies/downloads/网盘(速度更快):https://www.123pan.com/s/aiv9-hkrG(适合Windows,其他版本可以去官网下载)配置环境右键此电脑,属性,出现:然后点击高级系统设置出现环境变量点击环境变量出现系统变量然后变量设置参数如下(如果已有该变量就修改,没有就新建)•变量名:JAVA_HOME•变量值:C:\ProgramFiles(x86)\Java\jdk1.8.0_91//要根据自己的实际路径配置•变量名:CLA
目录下载jdk配置环境测试安装下载jdkJDk安装包:官网:https://www.oracle.com/cn/java/technologies/downloads/网盘(速度更快):https://www.123pan.com/s/aiv9-hkrG(适合Windows,其他版本可以去官网下载)配置环境右键此电脑,属性,出现:然后点击高级系统设置出现环境变量点击环境变量出现系统变量然后变量设置参数如下(如果已有该变量就修改,没有就新建)•变量名:JAVA_HOME•变量值:C:\ProgramFiles(x86)\Java\jdk1.8.0_91//要根据自己的实际路径配置•变量名:CLA
jdk安装下载jdk由于现在主流就是jdk1.8,所以这里就下载jdk1.8进行演示。官方下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows。官方下载需要注册oracle账号,国内下载有可能速度慢,若不想注册账号且需要更快的下载速度,可以通过国内的镜像网站进行下载。这里提供一个华为镜像网站:https://repo.huaweicloud.com/java/jdk/.安装jdk打开运行下载好的安装包。这里建议更改一下安装路径,选择一个容易记住的位置,可以专门创建一个目录用来存放开发环境。这里也可以使用默认