一 JVM堆外内存

1)java与io(file,socket)的操作都需要堆外内存与jvm内存进行互相拷贝,因为操作系统是不懂jvm的内存结构的(jvm的内存结构是自管理的),所以堆外内存存放的是操作系统可以操作的内存地址模型,可以拷贝数据到内核的空间。

2)netty等网络通信组件为了减少jvm的内存到内核数据拷贝,所以把与网络相关的数据可以存放到堆外内存,减少一次内存的拷贝。

3)堆外内存是不属于jvm管理的,但是堆外内存是当前jvm进程的空间,而不是有的网络上所说的内核空间,内核地址是供操作系统的地址空间,不会给应用的,他的地址空间与jni的空间应该是一致的。

4)堆外内存的回收问题可以自己调用clear释放,或者jvm fullgc的时候也会释放,但是在jvm中只有通过PhantomReference可以感知到当前的对象是否被释放。

最新文章

  1. 关于robotframework,app,appium的xpath定位问题及常用方法
  2. Prefab Assist插件
  3. 手把手教你 用 wpf 制作metro ProgressRing (Windows8 等待动画)
  4. table extraction
  5. 事件对象event和计时器
  6. 【转】linux驱动程序中的并发控制
  7. android 状态栏、标题栏、屏幕高度
  8. 使用 Eclipse Memory Analyzer 进行简单内存泄漏分析
  9. MVC不用302跳转Action,内部跳转
  10. Mac iterm2 linux vim 语言问题
  11. Java-ServletContext
  12. [Android] Android 最全 Intent 传递数据姿势
  13. 关于selenium的8种元素定位
  14. hdu1358 Period kmp求循环节
  15. JMeter之Ramp-up Period(in seconds)说明
  16. 2017年5月24日 HTML 基础知识(二)
  17. Mirror--如何在主库上增加文件
  18. length,lengthb,substr,substrb,instr小用
  19. slf4j简单使用
  20. oracle10偶然性卡住登陆

热门文章

  1. 利用fiddler和mock调试本地微信网页
  2. Linux下添加自定义脚本到开机自启动,标准rpm,举例:设置Apache自启动
  3. EL表达式判断不能为空
  4. init启动进程
  5. 坑人的toLocaleDateString和简单地跳坑方式
  6. 用感知机(Perceptron)实现逻辑AND功能的Python3代码
  7. sqlalchemy和flask-sqlalchemy几种分页操作
  8. 最短路径问题(dijkstra-模板)
  9. spider RPC更新至2.0.0-RELEASE
  10. 借助TZImagePickerController三方库理解自定义相册