• 深入理解java虚拟机---java内存区域与内存溢出异常---1内存结构


    本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片、视频等原文的内容)

    若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cnblogs.com/wengshuhang/p/10073587.html

    前言:

      毕业后啥也不懂,水了一年,结果现在很多java基础的东西都不会,跳槽时候很艰难,现在开始恶补,首先是jvm--->深入理解java虚拟机(ps:买了半年都没翻过)

      写博客的初始目的也只是为了记录一下自己认识到的知识点,而且写过的东西自己也不容易忘,有了博客也方便查看。

    第一章是编译jdk,这节我是直接跳过了,我是实在看不进底层c++的实现,要理解的东西太多了,我的小脑袋根本不够用的,而且我认为没有什么实际价值(可以装个B?专门搞这个的大佬可别喷我啊!!!只是对我来说是真的意义不大,就跳过了)。

    第二章就是java内存了,现在开始。

    首先是我们的内存结构

    1、程序计数器: 占用很小的空间,主要就是选取下一条需要执行的指令、循环、异常操作等(具体原理不懂=。=)

    2、java虚拟机栈:  这里就是平常说的堆跟栈中的”栈“,指的是局部变量表中的八种类型(int、short...)、对象引用(reference)还有returnAddress类型(指向了一条字节码指令的地址)

    3、本地方法栈: 为native方法服务(这是啥东西=。=)

    4、堆: 堆跟栈中的“堆”,存放对象实例,gc的主要管理区域

    5、方法区:  跟堆类似,但是存储的是虚拟机中加载的 类信息、常量、静态变量等,只是堆的一个逻辑部分,别名-Non-Heap目的就是为了区分开来。堆中有 新生代、老年代,方法区这部分叫做永久代(只是把这块空间也交给了GC管理)

    ps:

    6、运行时常量池: 处于方法区,记录编译期生成的各种字面量和符号引用。

    7、直接内存:  不知道是啥,应该没什么屌用。

    第一节就记录一下存储结构吧,下一节来记录堆栈空间的溢出实验。

  • 相关阅读:
    http协议及http协议和tcp协议的区别
    Fastcgi协议定义解释与说明
    web请求响应
    Linux网络编程:一个简单的正向代理服务器的实现
    Nginx-请求处理与响应
    Nginx事件管理机制-epoll
    负载均衡
    Nginx-进程模型
    [转载]NGINX原理分析 之 SLAB分配机制
    Nginx惊群处理
  • 原文地址:https://www.cnblogs.com/wengshuhang/p/10073587.html
Copyright © 2020-2023  润新知