首页 > 编程语言 >Java程序调优分析-待补充

Java程序调优分析-待补充

时间:2023-03-02 23:44:35浏览次数:35  
标签:Java 本地 虚拟机 程序 调优 内存 JVM 加载

一、 JAVA程序运行逻辑分析

示例图:

 

 

 

类加载器(Class Loader):负责将编译好的.class字节码文件加载到内存中,使得JVM可以实例化或以其他方式使用加载后的类。类加载器支持在运行时的动态加载,动态加载可以节省内存空间,灵活地从本地或者网络上加载类

方法区/元数据区:

方法区也就是我们常说的永久代区域,里面存储着Java类信息、常量池、静态变量等数据,方法区占用的内存区域在JVM中是线程共享的。
在JDK1.8及以后的版本中,方法区已经被移除,取而代之的是元数据区和本地内存,类的元数据信息直接存放到JVM管理的本地内存中。需要注意的是,本地内存不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域。常量池、静态变量等数据则存放到了Java堆(Heap)中。

Java虚拟机栈/本地方法栈 /程序计数器:线程私有的,和线程运行代码直接相关

堆区:

  • Java是一门面向对象的程序设计语言,而JVM堆区是真正存储Java对象实例的内存区域。
  • 堆的大小不等于JVM可同时存储这么多数据,因为要做垃圾回收

标签:Java,本地,虚拟机,程序,调优,内存,JVM,加载
From: https://www.cnblogs.com/kxtomato/p/17174053.html

相关文章

  • 磁盘瓶颈分析与调优方向
    1.磁盘基本认识磁盘是用于存储数据的,相比于内存的优点是可以大量存储数据,可持久化;缺点是读写速度慢2.程序的使用场景1).日志文件--长期使用2).附件上传存储,比如头像、图......
  • JAVA - 基础
    隐式转换基本的隐式转换把一个取值范围小的数值或者变量,赋值给另一个取值范围大的变量float为什么比long类型的取值范围大?答:小数的二进制存储形式,更加节省内......
  • Java 变量
    为什么需要变量 一花一世界,如果把一个程序看做一个世界或一个社会的话,那么变量就是程序世界的花花草草、万事万物。即,变量是程序中不可或缺的组成单位,最基本的存储单元......
  • Java基础——异常
       总结,一共有以下两种情况,finally块的代码不会被执行:1.如果JVM在执行try或catch代码时退出(虚拟机停止运行,即崩溃或关闭System.exit()),那么finally块可能不会执......
  • Java关于栈(Stack)、队列(Queue)知识点拓展
    Stack类:Stack继承了Vector,而Vector类底层使用数组存储数据,Stack对象中存储的数据也是存储在数组中,常用方法:push(Edata):把数据压入栈addElement():是父类Vect......
  • Java学习之字节流写入的两个小问题
     packagecom.itheima_112;/*字节流写数据的两个小问题:1:字节流写数据如何实现换行呢?windows:\r\nlinux:\nmac:\r......
  • JavaSE——金额转换
    packagecom.zhao.stringtest;importjava.util.Scanner;publicclassTest3{//金额转换//查表法publicstaticvoidmain(String[]args){......
  • java 中HashMap集合框架的应用
    NIO2007某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序......
  • 微软出品自动化神器【Playwright+Java】系列(十)元素定位详解
    一、写在前面又有很久没更文了,真的是被催婚搞的整个人情绪特别不好,如果硬要形容的话,那就是没法跟人正常沟通,一点就着,做什么都没耐心,看什么都烦,简直没救了...也是偶然发现......
  • 学习操作系统P4 理解并发程序执行 (Peterson算法、模型检验与软件自动化工具)
    啊 多一个线程,在状态机里也可以理解为多一个栈帧啊啊啊错误如下图所示啊啊  当只有一个人想上厕所时,只有一个旗子被举起来,因此举旗的人可以直接进厕所......