• 2024-09-27Java中多态的内存
    一、内存分配区域Java内存主要分为栈区、堆区、方法区等区域。1.栈区:栈区是Java内存管理中的一个关键区域,它主要用于存储局部变量和方法的执行环境(也称为栈帧)。每个线程在JVM中都有一个私有的栈,用于存储该线程中方法调用的上下文信息。栈区内存主要存放的数据有:局部变量表、
  • 2024-09-25深拷贝与浅拷贝
    深浅拷贝是面试经典问题,也是常见的一个坑浅拷贝:简单的赋值拷贝操作深拷贝:在堆区重新申请空间,进行拷贝操作#include<iostream>usingnamespacestd;//深拷贝与浅拷贝classPerson{public: Person() { cout<<"Person的默认构造函数调用"<<endl; } Person(in
  • 2024-09-25【Java】虚拟机(JVM)内存模型全解析
    目录一、运行时数据区域划分版本的差异:二、程序计数器程序计数器主要作用三、Java虚拟机1.虚拟机运行原理2.活动栈被弹出的方式3.虚拟机栈可能产生的错误4.虚拟机栈的大小四、本地方法栈五、堆1.堆区的组成:新生代+老生代2.堆空间的大小设置3.创建对象的内
  • 2024-09-18C/C++中哪些数据存放于栈区、堆区、静态区、常量区的详细说明
    文章目录1.栈区(Stack)2.堆区(Heap)3.静态区(Static)4.常量区(Read-OnlyorConstantSection)总结:栈(Stack)的生长:堆(Heap)的生长:测试一答案二答案1.栈区(Stack)栈区用于存放局部变量和函数调用信息,它的内存由编译器自动分配和释放,具有自动管理的特点。栈区的内存分配遵循先
  • 2024-09-17C++内存管理详解:各类变量的存储区域
      在C++中,变量的存储位置取决于它们的类型和生命周期。那么不同的各个变量究竟存储在哪个区域呢?1.不同类型的变量我们首先从变量类型的不同来说明:1.全局变量和静态变量 -存储区:全局/静态区(静态区)-说明:全局变量(包括文件级和函数级的)和使用`static`关键字声明的变
  • 2024-09-03JVM面试(二)内存区域划分
    内存区划分Java虚拟机在执行Java程序的过程中会把它锁管理的内存划分为若干个不同的数据区域。这些区域有各自不同的用途,以及创建和销毁的时间。有的区域随着虚拟机的进程一直存在,有的区域依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟
  • 2024-08-16C++之内存四区
    目录一、内存四区二、程序运行前三、程序运行后四、new操作符一、内存四区在计算机科学中,特别是在c或c++语言编程时,内存通常大致分为四个区域,而不同的区域存放的数据赋予不同的生命周期,给我们更大的灵活编程:代码区:存储程序的可执行代码(二进制代码),也就是程序编译后的
  • 2024-08-06栈区和堆区
        栈区和堆区是两个C++内存管理中的两个区域,而且相当重要,本文详细解释栈和堆之间的概念,内存泄漏和重复释放的原因,以及使用的注意事项。栈区    栈区是一块固定大小的空间,从高地址向低地址延申,这块空间由操作系统维护,在使用时,定义的变量依次存入栈中,在变量
  • 2024-07-27【操作系统/C++ malloc 1KB和1MB 有什么区别?brk | mmap】
    关于malloc如何根据请求的内存大小选择使用brk还是mmap的机制,是glibc(GNUCLibrary)中malloc实现的一个常见策略,尽管具体的阈值(如128KB)可能会因glibc的不同版本或配置而有所不同。brkbrk是一个系统调用,用于改变数据段的结束地址(即“程序断点”)。在UNIX和类U
  • 2024-07-25C++深拷贝构造函数解决浅拷贝的堆区内存重复释放问题
    1.简单介绍先简单介绍一下浅拷贝和深拷贝:浅拷贝->简单的赋值拷贝操作,默认的拷贝构造函数就是浅拷贝。深拷贝->在堆区重新申请空间,进行拷贝操作。2.问题展示下面用代码示例明了地展示默认拷贝构造函数浅拷贝带来地堆区内存重复释放问题:#include<iostream>usingnamespace
  • 2024-07-07学生管理系统(通过顺序表,获取连续堆区空间实现)
    将学生的信息,以顺序表的方式存储(堆区),并且实现封装函数:1】顺序表的创建,2】判满、3】判空、4】往顺序表里增加学生信息、5】遍历学生信息6】任意位置插入学生信息7】任意位置删除学生信息8】修改学生信息9】查找(按学生的学号查找)、10】删除重复学生信息11】销毁顺序
  • 2024-07-04一、内存分区模型
    1.概述C++程序在执行时,将内存方向划分为4个区域。代码区:存放函数体的二进制代码,由操作系统进行管理全局区:存放全局变量,静态变量,常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收2.程序运行前编译后
  • 2024-05-25C++基础知识学习笔记(3)
    资料来源https://www.bilibili.com/video/BV1et411b73Z?p=84&vd_source=cc561849591f6a210152150b2493f6f3核心内容程序的内存模型代码区全局区在函数外面声明了全局变量,在main函数里面创建了局部变量,打印了其地址:静态变量:在普通变量前面加一个static,属于静态变量。静
  • 2024-05-01JDK8生产参数的学习与整理
    JDK8生产参数的学习与整理背景五一期间加班整理一下用到的一些参数信息.希望能够继续巩固自己的知识.希望下次总结时能够添加上更多东西产品的启动时增加的参数-javaagent:./jmx_prometheus_javaagent-0.17.2.jar=8080:simple-config.yml-Xms20G-Xmx20G-Xmn10G
  • 2024-04-08深浅拷贝、垃圾回收机制、栈区堆区、文件的操作
    【一】深浅拷贝【1】深浅拷贝问题无论深拷贝还是浅拷贝都是用来复制对象的(1)浅拷贝浅拷贝,只会复制一层,如果copy的对象中有可变数据类型,修改可变数据类型还是会影响拷贝的对象#【1】浅拷贝#必须是修改源数据类型中的可变数据类型才生效#num_list=[1,2,3,4,[1,
  • 2024-04-05内存分块!
    这是我在学习这方面知识的笔记,主要是网课上老师讲的内容和一些自己的想法,整理了一下,希望对学习这方面知识的小伙伴有帮助:)1.内存条全局区:    全局变量    静态变量  (static关键字)    常量:      字符串常量      con
  • 2024-04-02MAT确认导致OOM的具体功能表单的过程
    MAT发现导致OOM的具体功能表单的过程背景愚人节这一天公司项目出现了大量FullGC的情况.群里发出来之后这边进行了一些简单的问题查找.堆区设置的事30G然后dump文件是35G左右.下载和解压缩耗时15min使用40G堆区全闪的Window虚拟机进行解析耗时30分钟.最近自己眼
  • 2024-03-30嵌入式中内存分配-栈区、堆区、全局区、常量区和代码区详解
    一、C语言内存分区C语言内存分区示意图如下:1.栈区栈区介绍栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。栈区按内存地址由高到低方向生长,其最大大小由编译时确定,速度快,但自
  • 2024-03-131.1程序的内存模型
    1.1内存的分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的。全局区:存放全局变量和静态变量以及常量。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。堆区:由程序员分配和释放,若程序员不释放,程序结束时由操
  • 2024-03-09栈区、堆区,内存分区模型
    1.栈区由编译器自动分配释放,存放函数的参数值,局部变量等注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放实例代码:#include<iostream>usingnamespacestd;int*func(){inta=10;//局部变量,存放在栈区,栈区的数据在函数执行完后自动释放ret
  • 2024-02-28内存分区
    内存一般分为四个区:堆区、栈区、全局区、代码区对于一个程序的编译而言,编译程序占用五个区:堆区、栈区、全局区、代码区、文字常量区堆区:程序员动态申请一定大小的内存空间,可读可写栈区:存放局部变量,函数参数,可读可写全局区:全局变量,静态变量(静态全局和静态局部)、静态函数、还分
  • 2024-01-07动态内存开辟--在堆区进行开辟存储
    1.malloc值//1.malloc--开辟好的空间如果还没有使用,则都默认为随机值#include<stdlib.h>#include<string.h>#include<errno.h>#include<stdio.h>intmain(){ //向堆区内存申请开辟是个整型内存的空间,开辟的空间首地址交给指针p //int*p=(int*)malloc(10*sizeof(int));
  • 2023-12-21K8S增加限制后的启动时间验证
    K8S增加限制后的启动时间验证背景前段时间看了下JVM载linux上面的启动时间,进行过一些验证.最近想着能够验证一下K8S上面的启动相关的信息所以就整理了一下.虽然没有特别好的结论,但是还是发现自己对JVM的启动和参数还是了解的不够深入.自己的几个启动参数1."-XX:
  • 2023-12-05JVM内存用量的再学习
    JVM内存用量的再学习背景最近解决一个SQLServer的问题耗时很久.最终找到了一个看似合理的问题解释.但是感觉不能只是总结于数据库方面因为为了解决这个问题增加了很多监控措施.所以想就这这个问题,总结一下这次问题诊断过程中学习到的JVM相关知识.一个JVM的监控图
  • 2023-12-04python中级之垃圾回收机制
    引入当解释器在执行到变量赋值的时候,例如:name='xiaoying',那么会向内存空间申请一块空间来存放变量的值,而内存的空间是有限的,并不能无限制的存放,那么这就涉及到了一个回收的问题,当一个变量值没用了之后,简称(垃圾),那么垃圾就该放进垃圾桶中进行回收,将其所占用的内存空间释放回收