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++中,要获得向量对象当前的容量,要使用什么方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)