JVM的自我理解

-jvm : java虚拟机,加载并运行.class文件
jre : 运行java最小环境,包含jvm
jdk:包含jre,jvm 是java开发工具包,包含java的各种类库

是java虚拟机,运行.class文件,存在这堆,栈,方法区
在这里插入图片描述

堆内存

  • 里面存在着对象,和对象的实例变量
  • 实例变量的生命周期通常与对象的生命周期一样,当对象被回收,或者赋值为null的时候,实例变量也消失.

栈内存

  • 存对象的引用
  • 局部变量,随着方法的存在而存在消失而消失

方法区

  • 存在所有方法,只有一份
  • 静态变量 .class文件,

内存泄漏

  • 当对象不再被需要使用的时候,要设置为null,
  • 如果太多对象不用,而存在方法区中,容易发生程序崩溃
  • 垃圾回收期(GC),如果一个对象没有引用指向它,那么它就会被GC回收
  • 我们可以通过System.gc()方法来建议它回收

面向对象的三大特性

  • 1封装
    1.1 对属性的封装
    1.2 对方法的封装

  • 2 . 继承
    2.1 作用 : 增加代码的复用性
    2.2 超类 : 全部子类所用的方法,和属性相同.
    2.3 接口: 部分子类所拥有同样的方法和属性
    2.4 派生类: 各自有用不同的方法,和属性
    2.5 单一继承

  • 3 多态
    3.1 行为多态 对象多态.
    3.2 抽象类一定是多态
    3.3 重写: 对象的多态
    3.4 重载: 参数的多态
    3.5 向上造型 : 强转转换对象必须通过 instanceof 来判断

  • 线程

  • 寄存器 程序计数器,每个线程独享

  • 方法区 线程共享,类信息,常量池

  • 堆类存 线程共享 存储对象

  • 本地方法栈 用native 修饰的方法, 线程独享 执行本地方法

  • 线程栈 —线程独享 ,每个线程一个栈内存 方法调用的内存超过了,栈所允许的内存深度,就会栈内存溢出
    Xss------指定栈内存的大小,内存越小 线程越多,通常一个最大的内存,是本地的64分子1

    扫描二维码关注公众号,回复: 5757083 查看本文章
  • Xmn 指定新生代大小

  • Xms 指定堆内存大小

  • Xmx 指定堆内存最大容量

  • 如果一个对象在新生代中存放不开,则会自接放入旧生代

猜你喜欢

转载自blog.csdn.net/weixin_44343761/article/details/88724555
今日推荐