首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java
订阅
liulq2018
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
理解JVM(七):垃圾回收器
指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上。 CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量=运行用户代码时间/(运行…
理解JVM(二):垃圾收集算法
给对象中添加一个引用计数器,每当有一个地方引用时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。 但是JVM没有使用此方法,因为此方法无法解决2个对象相互循环引用的问题。 这个算法的基本思路就是通过一系列的称为“GC Roots”的…
理解JVM(一):内存结构
虚拟机内存管理中最大的一块内存空间。 存放关键字new创建的对象实例和数组。 堆内存被所有线程共享。 这块内存区由JVM(Java虚拟机)自己管理。当使用new创建对象时,不必指定分配空间的大小,JVM会动态自动分配一块区域;在程序执行过程中,没有指向此对象的引用时,此对象就被…
理解JVM(四):JVM类加载机制
我们写的Java代码,经过编译器编译之后,就成为了.class文件,从本地机器码变成了字节码。Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运…
啃碎并发(五):Java线程安全特性与问题
在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个 共享、可变资源 的情况,这种资源可以是:一个变量、一个对象、一个文件等。特别注意两点: 简单的说,如果你的代码在单线程下执行和在多线程下执行永远都能获得一样的结果,那么你的代码就是线程安全的。那么,当…
谈谈Java中的代理
代理是Java常用的设计模式,代理类通过调用被代理类的相关方法,实现对相关方法增强。比如加入事务、日志、报警发邮件等操作。 静态代理,就是由程序员手动编写代理类或者用工具生成代理类的代码,再进行编译生成class文件,实现代理。比如简单工厂模式。 代理类和目标类都实现相同接口。…
理解JVM(五):Java内存模型与线程
JMM(Java Memory Model)是JVM定义的内存模型,用来屏蔽各种硬件和操作系统的内存访问差异。 主内存:所有的变量都存储在主内存(Main Memory,类比物理内存)中。 工作内存:每条线程有自己的工作内存(Working Memory,类比处理器高速缓存),…
理解JVM(三):JVM命令工具
虚拟机进程状况工具,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。 虚拟机统计信息监视工具,用于监视虚拟机各…