一、
1、什麼叫做java內存區域
什麼是內存?
在計算機硬件中,內存指的是cpu運算時,用於暫時存放cpu運算過程中的數據的區域,主要負責從固存中提取cpu運算需要的數據並將cpu運算結果如要保存到固定存儲中則保存的一塊斷電後其所含有的數據便會消失的存儲數據硬件。(個人理解)
那什麼叫java內存區域
理解了什麼是內存的話,java內存區域也就理解了,即java程序(這裏指的java程序是什麼意思?肯定是指用java代碼寫的程序,準確的說是用到java虛擬機的程序,即指打包好的程序也只開發時的程序即只要用到java虛擬機就是java程序)在運行時候的cpu計算產生的數據所存放的區域。(個人理解)
2、內存溢出異常
指某一程序或其程序中的容器所包含的內容超過了屬於自己的內存大小造成程序的中斷。
二、運行時的數據區域
1、數據區域的概念同java的內存區域
2、數據區域的分類
1、隨Java虛擬機的存在而一直存在 |
|
2、隨某一程序(用戶線程)的存在而存在 |
|
3、分區
線程獨佔區/ 隨某一進程存在而存在 |
|
||||||||
線程共享區域/ 隨JVM存在而存在 |
|
||||||||
直接內存 |
1、不是虛擬機運行時數據區域的一部分 2、NIO引用一種基於通道與緩衝區的I/O方式,使用Native函數庫直接分配堆外內存,然後通過一個存儲在java堆裏面的DirectByteBuffer對象作爲這塊內存的引用進行操作 |