jvm详解

ava虚拟机和jvm特性:

1.JVM的引入:
2.JAVA代码编译和编译过程:
    java源码编译机制:
    类加载机制:
    类执行机制:
3.JVM内存管理和垃圾回收:
4.JVM内存调优:
    减少GC的频率:        
    减少full GC的次数

1.JVM的引入:
    java在不同平台上运行时不需要重新编译
    一次编译,到处运行
2.JAVA代码编译和编译过程:
    java源码编译机制:
        分析和输入到符号表:
        注解处理:
        语义分析和生成class文件:
            结构信息:文件格式版本号大小
            元数据:
            方法信息:
            
    类加载机制:
        由classLoader及其子类来完成
        
    类执行机制:
        程序计数器:
        栈:
            局部变量区:
            操作数栈:
3.JVM内存管理和垃圾回收
    jvm内存组成结构:
        堆:new对象(成员变量,无成员方法)
            新生代:新建的对象
            旧生代:多次垃圾回收仍                        然存活的对象
            持久代:已加载的类信息                        方法信息常量池
        栈:(临时变量、参数、中间结果)
            局部变量区
            操作数栈:
                压栈出栈
        本地方法栈:native方法

        方法区:
            常量池
    
            类信息、
            静态变量、
            final类型的常量、属性、方法
            
    垃圾回收策略:
        引用计数:
        标记-清除:
        复制:
        标记-整理:
    JVM分别对新生代和旧生代采用不同的垃圾回收机制:
        串行GC
        并行GC    
4.JVM内存调优:内存查看工具
    减少GC的频率:
        
    减少full GC的次数:
        旧生代空间不足:
        Pemanet Generation空间不足:
        System.gc()被显示调用    

版本2
JVM内存管理:
    java堆:        
        新生代:
        旧生代:
        永久代:
    jvm栈:
        内存溢出:            
    方法区:
    本地方法栈:
        

java堆:
存放对象,线程共享;可导致内存溢出
随jvm,有jvm就有堆
jvm栈:
运行时创建,跟随线程
不需要回收,随着线程的结束释放
内存溢出解决方法:
最大堆和栈的容量来换取更多的线程
方法区和常量池:    
方法区存的是类信息、常量、静态变量,而不是方法

http://www.mamicode.com/info-detail-1028149.html

    守护线程:虚拟机自己使用
    非守护线程:
    JVM内存空间:
        类加载器子系统:
            Class类内部结构
            JVM如何加载类
            如何加载类
        字节码执行子系统:
            程序运行时堆栈的结构
            支持对台
            执行引擎
        垃圾回收器GC:
            如何确定回收对象
            哪些垃圾回收方法
            何时进行垃圾回收
java编译器
并发执行


jvm运行时数据区域:
程序计数器:
    选取字节码指令
java虚拟机栈:
    局部变量表:
        各种基本类型:
        对象引用类型:
        
    操作栈:
    动态链接:
    方法出口:
本地方法栈:
    Native方法:
java堆:(线程共享)
    对象实例:
    数组
方法区:(线程共享)
    类信息
    常量
    静态变量
运行时常量池:
    编译期生成的各种字面量
    符号引用
直接内存:


垃圾回收机制:
1定义:
    JRE负责内存分配和回收(堆内存)    
2显式回收的缺点:
    实时性:
        无法及时回收,导致内存泄漏
    错误:
        错误回收核心类库内存,导致系统奔溃
3内容:
    堆内存
    碎片
4优缺点:
    优点:
        提高编程效率
        保护程序的完整性:
            安全性的一部分
    缺点:
        额外开销
5特点:
    只回收无用对象的内存资源:
    设置对象引用变量设置null,快速回收:    
    不能精确控制垃圾回收机制的执行:
        不同的垃圾回收机制:
            串行
            并行
        不同的垃圾回收算法:    
            引用计数:
            标记-清除:
            复制:
            标记-整理:
    精确回收:
        活着的:
        对象的引用关系:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值