memorycalculation.java

来自「java内存分配演示程序」· Java 代码 · 共 95 行

JAVA
95
字号
package com.ysu.cwy;
/**
 * @function 计算内存初识化时所需的一些数据
 * @author CWY
 * @param 内存分配函数 Y=20+40X;
 */
public class MemoryCalculation {
	
	/**
	 * @function 计算某一快内存块的开始位置
	 * @param n  要计算内存块的序号
	 * @param memorySize  总内存大小
	 * @return  返回开始位置
	 */
    public int getMemoryBlockStartPlace(int n,int memorySize){
    	int k=0;
    	if(n==0){   
    		return 0;
    	}else{
    		k=getAllBlocksSize(n-1);
    		if(k>=memorySize)
    			return -1;
    		else
    			return k;
    	}
     }//end method getMemoryBlockStartPlace
    
    /**
	 * @function 计算某一快内存块的结束位置
	 * @param n  要计算内存块的序号
	 * @param memorySize  总内存大小
	 * @return  返回结束位置
	 */
    public int getMemoryBlockEndPlace(int n,int memorySize){
    	if(getAllBlocksSize(n-1)>=memorySize)
    		return -1;
    	int k=getAllBlocksSize(n);
    	if(k>=memorySize){
    		return memorySize-1;
    	}else{
    		return k-1;
    	}
    }//end method getMemoryBlockEndPlace
    
    /**
     * @function  计算前n块内存数的总和
     * @param n  块数
     * @return  总和
     */
    public int getAllBlocksSize(int n){
    	int sum=0;
    	for(int i=0;i<=n;i++){
    		sum+=20+i*40;
    	}
    	return sum;
     }//end method getAllBlocksSize
    
    /**
     * @function 计算初始化时内存的快数
     * @param memorySize  总内存大小
     * @return  快数
     */
   public int getBlockSize(int memorySize){
    	int n=1;
    	while(!(getAllBlocksSize(n-1)>=memorySize)){
    		n++;
    	}
    	return n;
    }//end method getBlockSize
}
























⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?