JVM的自我理解

-jvm : java虚拟机,加载并运行.class文件
jre : jvm + java内库 运行java最小单元
jdk:jre+java开发命令—开发最下单元。
java运行,三步骤 编写,,,编译(eclipse等编译软件),运行 (jvm)
2)不同操系统的jvm不能通用,但是class文件是跨平台的。

垃圾回收管理机制(gc机制)
1) 什么是垃圾?
1.1)一个对象使用完,不再有任何引用指向它,这样的对象就是垃圾
2) 为什么要处理垃圾?
2.1)内存是有限的这些无用的垃圾对象,需要及时回收,防止内存泄漏。
3) 怎么来处理垃圾?
3.1)C++语言:对象不再使用了,程序员调用对象的析构函数,才能释放内存,比较麻烦。
3.2)java语言:java中有垃圾回收管理机制,自动回收程序中的垃圾
4) java中的gc
4.1)优点:java程序员,不用考虑内存中垃圾回收问题
4.2) 缺点
4.2.1.)GC自身也是一个程序,运行过程中,会占用内存和cpu
4.2.2.)GC对垃圾回收并不是非常及时的
4.2.3.)GC只负责回收java程序中产生的垃圾
5) GC识别垃圾的原理
5.1)经典办法:
5.2)应用计数法
如果想标记一个对象为垃圾,就把它赋值为null就好了
Dog d=new Dog();d=null;
6) finalize方法
6.1)object类中定义的方法,在GC将对象回收之前调用
7)system.gc(); 通知垃圾回收管理机制尽快回收内存中的垃圾
类的加载过程
Text-to-HTML conversion tool
在这里插入图片描述
在这里插入图片描述
Authors
John
Luke

是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

  • Xmn 指定新生代大小

  • Xms 指定堆内存大小

  • Xmx 指定堆内存最大容量

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值