获得file对象大小的属性是

获得file对象大小的属性是,第1张

name。从名字上来看就可以知道这个属性的意思就是文件名称,用print()函数将其输出之后的结果为不带文件路径的文件名称。在某些情况下,使用它比os模块内的方法获取文件名称是更加方便的。file,英文单词,名词(n)、及物动词(vt)、不及物动词(vi)。作名词时,意为“文件;档案;文件夹;锉刀;人名;菲莱。作及物动词时,意为“提出;锉;琢磨;把…归档。作不及物动词时,意为“列队行进;用锉刀锉。

连续容器如:Vector,内部是预先分配一段连续缓存来保存对象,所分配内存可以保存对象的个数为容量,而已保存的对象个数为长度。

当程序调用push时候,如果容量不够了,Vector自动重新分配一段缓存,大小是原来的2倍,然后把原来的内容拷贝到新缓存中,最后释放原来的缓存。出现这种情况是很费时间的!所以Vector内部的指针的地址是可能变得的!

list 是每次添加对象的时候动态分配内存,所以没有容量的概念!

对于vector来说size和capacity是两个完全不同的概念。

size()获得的是当前vector已使用的实际大小。

capacity()获得是vector预开辟的空间大小。

比如你的vector中有三个元素,那么vectorsize()==3,但是vectorcapacity()肯定是大于或等于3的。

我想,你需要的是capacity()吧。

基本类型是的。

其他的是指针大小, 需要专门的profiling库比如JOL,YourKit, 或者java lang的instrument package 另外你用serializer也是不准确的,它并不能反映实际运行的时候消耗的内存空间。

因为你在之前已经定义了一个int i了。。。虽说是jsp文件,但是本质还是java文件,你在前面已经定义了int i =0 ;之后再在for 里面定义一个int i编译器会懵逼的~

不能使用相同的变量名啊~

String str[] = (String[])listget(i);

这句好像有点问题,listget(i)是获取一个对象

你直接强制转换成String的吧。

然后IntegerparseInt(str[0]),用IntegerparseInt(str[0])和number比较大小吧!

Object流

直接将Object写入或读出

也叫做对象的序列化:把一个Object直接转换成字节流写到硬盘上,或者直接写到网络上去

这里有一个类T:

class T implements Serializable { // 注意,必须要实现Serializable接口,才是可序列化的

int i = 10;

int j = 9;

double d = 23;

int k = 15;

}

这个类里面的成员变量3个int,1个double,int是4字节,double是8字节

所以对象的大小绝对不会小于20字节,但是T肯定是从Object类继承,那么继承下来这些内容也

占空间,比如方法什么的,所以肯定要大于20字节了

运行下面这个类:

import javaioFileInputStream;

import javaioFileOutputStream;

import javaioIOException;

import javaioObjectInputStream;

import javaioObjectOutputStream;

import javaioSerializable;

public class Test {

public static void main(String[] args) {

T t = new T();

try {

FileOutputStream fos = new FileOutputStream("d:/abctxt");

ObjectOutputStream oos = new ObjectOutputStream(fos);

ooswriteObject(t);

oosflush();

oosclose();

} catch (IOException e) {

eprintStackTrace();

}

}

}

直接将T对象通过Object流写到了D盘的名为abctxt的文件里面

一个空文本文件是0字节,找到这个文件以后查看它的属性,我这里是67 字节,

那么这个对象就是67 字节

现在在T类中添加一些其他内容,那么再次输出,字节数肯定就比原来大了,它就是把整个对象转换成

字节,写入了文件,这个应该算是比较好的方式了,但是我们无法特别精确的知道对象中哪些内容各自

占用多少空间,因为那是Java虚拟机的事了,我学的没那么深入,水平有限

当然,把一个对象写进去,也可以读出来:

FileInputStream fis = new FileInputStream("");

ObjectInputStream ois = new ObjectInputStream(fis);

// 当成Object读出来的,强转成T类型

T tReaded = (T)oisreadObject();

Systemoutprintln(tReadedi + " " + tReadedj + " " + tReadedd + " " + tReadedk);

发现打印出的成员变量的值,还是存进去这个对象的值

以上就是关于获得file对象大小的属性是全部的内容,包括:获得file对象大小的属性是、如何获取ceph的缓存池中对象的大小和偏移、c++中,要获得向量对象当前的容量,要使用什么方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9351876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存