zoukankan      html  css  js  c++  java
  • 【Java】类与对象-JV内存分析

    1.类

      类是一个模板,它描述一类事物的状态和行为。

    类的创建:

      状态使用成员变量

      行为使用成员方法

    2.对象

      对象是类的一个实例,有状态和行为。

      例如:一只狗就是动物类的一个实例,它有状态和行为,状态:颜色,品种,名字;行为有摇尾巴,叫、吃等

    3.JVM的内存划分

      JVM将内存主要划分为:方法区、栈、堆、本地方法区、程序计数器(5个)

    1.方法区:又叫静态区,存放所有的class和static变量;方法区中包含的都是程序中永远的唯一的元素

    2.虚拟机栈:执行引擎每调用一个函数时,就为这个函数创建一个栈帧,并加入虚拟机栈,换个角度理解,每个函数从调用到执行结束,其实是对用一个栈帧的入栈和出栈

    3.本地方法区:本地方法区与虚拟机栈所发挥的作用很相似,他们的区别在于虚拟机为执行java代码方法服务,而本地方法区是为Native方法服务

    4.堆:被所有线程共享的一块区域,在虚拟机自启时创建,所有的对象实例及数组都是栈上分配(使用new关键字,表示在堆中开辟一块新的存储空间)

    5.程序计算器:每个线程得有个计数器记录当前执行到那个指令。可以把它看成线程所执行的字节码的行号指示器

    6.栈(一种数据结构)

    特点:先进后出

    入栈:把元素放到栈里

    栈顶:栈中的第一个元素

    栈底:栈中的最后一个元素

    出栈:把元素从栈里移除

    7.方法栈帧

      执行一个方法时栈就会创建一个栈帧,栈帧存放方法内的成员变量,当方法执行完毕时,栈帧就从栈里出来

    8.堆

      所有的对象实例及数组都是栈上分配(使用new关键字,表示在堆中开辟一块新的存储空间

    例:

    9.GC(java自动垃圾回收机制)

    10.对象堆

    11.基本数据类型在堆中的初始值

    12.基本数据类型在栈的存储

      基本数据类型只有一块存储空间,在栈中,存放的是具体的值

    13.基本、引用数据类型的存储

      基本数据类型:只有一块存储空间,在栈中存放的是具体的值

      引用数据类型:(5中:类、接口、数组、枚举、注解)

          有两块存储空间,一个在栈中,一个在堆中,栈中存放的是堆中的地址

    14.基本数据类型:值传递

    15.引用数据类型:地址传递

  • 相关阅读:
    swift锁屏播放,音乐进度更新,专辑,歌手名显示
    swift Dictionary 字典
    Swift中的集合类型
    Swift String 一些常用方法
    Swift自定义Class实现Hashable
    二元最近的共同祖先问题(O(n) time 而且,只有一次遍历,O(1) Space (它不考虑函数调用栈空间))
    BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution
    [DEEP LEARNING An MIT Press book in preparation]Linear algebra
    POJ--2391--Ombrophobic Bovines【分割点+Floyd+Dinic优化+二分法答案】最大网络流量
    c#-RTF文本编辑器
  • 原文地址:https://www.cnblogs.com/Cccc4/p/13125929.html
Copyright © 2011-2022 走看看