java当中映射文件什么意思

Python015

java当中映射文件什么意思,第1张

1、2:Expands the set of tables to be reverse engineered to other tables referenced by this table and tables referencing this table respectively.

包含反向工程时当前数据库表引用的表格以及其它引用到当前表的数据库表.

3、4 :Generate code corresponding to the relationships this table has with other tables which are not being currently reverse engineered and are absent from the table list on this page.

生成关联到当前表格的关联表的尚未反向工程过的代码, 这些表在当前配置页面尚未被显示.

打字不易,如满意,望采纳。

方法如下:

首先

创建一个Bean用来存贮要得到的信

public class MonitorInfoBean {

/** 可使用内存. */

private long totalMemory

/** 剩余内存. */

private long freeMemory

/** 最大可使用内存. */

private long maxMemory

/** 操作系统. */

private String osName

/** 总的物理内存. */

private long totalMemorySize

/** 剩余的物理内存. */

private long freePhysicalMemorySize

/** 已使用的物理内存. */

private long usedMemory

/** 线程总数. */

private int totalThread

/** cpu使用率. */

private double cpuRatio

public long getFreeMemory() {

return freeMemory

}

public void setFreeMemory(long freeMemory) {

this.freeMemory = freeMemory

}

public long getFreePhysicalMemorySize() {

return freePhysicalMemorySize

}

public void setFreePhysicalMemorySize(long freePhysicalMemorySize) {

this.freePhysicalMemorySize = freePhysicalMemorySize

}

public long getMaxMemory() {

return maxMemory

}

public void setMaxMemory(long maxMemory) {

this.maxMemory = maxMemory

}

public String getOsName() {

return osName

}

public void setOsName(String osName) {

this.osName = osName

}

public long getTotalMemory() {

return totalMemory

}

public void setTotalMemory(long totalMemory) {

this.totalMemory = totalMemory

}

public long getTotalMemorySize() {

return totalMemorySize

}

public void setTotalMemorySize(long totalMemorySize) {

this.totalMemorySize = totalMemorySize

}

public int getTotalThread() {

return totalThread

}

public void setTotalThread(int totalThread) {

this.totalThread = totalThread

}

public long getUsedMemory() {

return usedMemory

}

public void setUsedMemory(long usedMemory) {

this.usedMemory = usedMemory

}

public double getCpuRatio() {

return cpuRatio

}

public void setCpuRatio(double cpuRatio) {

this.cpuRatio = cpuRatio

}

}

之后,建立bean的接口

public interface IMonitorService {

public MonitorInfoBean getMonitorInfoBean() throws Exception

}

然后,就是最关键的,得到cpu的利用率,已用内存,可用内存,最大内存等信息。

import java.io.InputStreamReader

import java.io.LineNumberReader

import sun.management.ManagementFactory

import com.sun.management.OperatingSystemMXBean

import java.io.*

import java.util.StringTokenizer

/**

* 获取系统信息的业务逻辑实现类.

* @author GuoHuang

*/

public class MonitorServiceImpl implements IMonitorService {

private static final int CPUTIME = 30

private static final int PERCENT = 100

private static final int FAULTLENGTH = 10

private static final File versionFile = new File("/proc/version")

private static String linuxVersion = null

/**

* 获得当前的监控对象.

* @return 返回构造好的监控对象

* @throws Exception

* @author GuoHuang

*/

public MonitorInfoBean getMonitorInfoBean() throws Exception {

int kb = 1024

// 可使用内存

long totalMemory = Runtime.getRuntime().totalMemory() / kb

// 剩余内存

long freeMemory = Runtime.getRuntime().freeMemory() / kb

// 最大可使用内存

long maxMemory = Runtime.getRuntime().maxMemory() / kb

OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory

.getOperatingSystemMXBean()

// 操作系统

String osName = System.getProperty("os.name")

// 总的物理内存

long totalMemorySize = osmxb.getTotalPhysicalMemorySize() / kb

// 剩余的物理内存

long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize() / kb

// 已使用的物理内存

long usedMemory = (osmxb.getTotalPhysicalMemorySize() - osmxb

.getFreePhysicalMemorySize())

/ kb

// 获得线程总数

ThreadGroup parentThread

for (parentThread = Thread.currentThread().getThreadGroup()parentThread

.getParent() != nullparentThread = parentThread.getParent())

int totalThread = parentThread.activeCount()

double cpuRatio = 0

if (osName.toLowerCase().startsWith("windows")) {

cpuRatio = this.getCpuRatioForWindows()

}

else {

cpuRatio = this.getCpuRateForLinux()

}

// 构造返回对象

MonitorInfoBean infoBean = new MonitorInfoBean()

infoBean.setFreeMemory(freeMemory)

infoBean.setFreePhysicalMemorySize(freePhysicalMemorySize)

infoBean.setMaxMemory(maxMemory)

infoBean.setOsName(osName)

infoBean.setTotalMemory(totalMemory)

infoBean.setTotalMemorySize(totalMemorySize)

infoBean.setTotalThread(totalThread)

infoBean.setUsedMemory(usedMemory)

infoBean.setCpuRatio(cpuRatio)

return infoBean

}

private static double getCpuRateForLinux(){

InputStream is = null

InputStreamReader isr = null

BufferedReader brStat = null

StringTokenizer tokenStat = null

try{

System.out.println("Get usage rate of CUP , linux version: "+linuxVersion)

Process process = Runtime.getRuntime().exec("top -b -n 1")

is = process.getInputStream()

isr = new InputStreamReader(is)

brStat = new BufferedReader(isr)

if(linuxVersion.equals("2.4")){

brStat.readLine()

brStat.readLine()

brStat.readLine()

brStat.readLine()

tokenStat = new StringTokenizer(brStat.readLine())

tokenStat.nextToken()

tokenStat.nextToken()

String user = tokenStat.nextToken()

tokenStat.nextToken()

String system = tokenStat.nextToken()

tokenStat.nextToken()

String nice = tokenStat.nextToken()

System.out.println(user+" , "+system+" , "+nice)

user = user.substring(0,user.indexOf("%"))

system = system.substring(0,system.indexOf("%"))

nice = nice.substring(0,nice.indexOf("%"))

float userUsage = new Float(user).floatValue()

float systemUsage = new Float(system).floatValue()

float niceUsage = new Float(nice).floatValue()

return (userUsage+systemUsage+niceUsage)/100

}else{

brStat.readLine()

brStat.readLine()

tokenStat = new StringTokenizer(brStat.readLine())

tokenStat.nextToken()

tokenStat.nextToken()

tokenStat.nextToken()

tokenStat.nextToken()

tokenStat.nextToken()

tokenStat.nextToken()

tokenStat.nextToken()

String cpuUsage = tokenStat.nextToken()

System.out.println("CPU idle : "+cpuUsage)

Float usage = new Float(cpuUsage.substring(0,cpuUsage.indexOf("%")))

return (1-usage.floatValue()/100)

}

} catch(IOException ioe){

System.out.println(ioe.getMessage())

freeResource(is, isr, brStat)

return 1

} finally{

freeResource(is, isr, brStat)

}

}

这个使用java.nio,并采用分段读取的方法是可以解决的。你自己上网查查吧

用个好点的SAX实现库,分段切割读取。

这么大的文件肯定不能一次都读入内存~~~~~~~~

JAVA中可以使用内存映射文件来操作大文件.

最大可达2GB. 。