java怎么获得数据在内存中长度

java怎么获得数据在内存中长度,第1张

内存中占用多少字节是不会让你轻而易举获取的。如果想要知道一个数据在内存中的大小,建议你看看JVM相关规范的书,对象在内存的大小不是不能计算,因为这不仅仅是一个数据,数据存放相关的信息,以及此数据可能调用的方法,以及此数据本身的类型信息,以及数据在内存中的堆内存中的索引信息,以及存放这个索引的内存信息,以及你这个数据类型中引用的常量池中的信息。。。等等等不可能让你准确知道。因为内存是不断更新的,垃圾会被不断回收,回收算法的执行,数据在内存中的位置也会发生相应的移动。严格的说指定一个类型的数据除了基本类型外,其他都是不连续的。如果楼主用过C或者C++的比如说链表的结构,现在的问题就好比你想知道一个具体链表占了多大内存。呵呵,水平有限,不能准确回答你要的结果。

首先打开eclipse

新建一个java项目,名字随意起

名字起好后,点击完成

右键点击项目名称,新建,类

类的名字叫TextLength

包的名字叫 comzfs2

点击完成

首先要判断是否是汉字

public static int getChineseCount(String s) throws Exception{//获得汉字的长度

char c;

int chineseCount=0;              

if(!""equals("")){//判断是否为空

s=new String(sgetBytes(),"GBK");   //进行统一编码

}

for(int i=0;i<slength();i++){//for循环

c=scharAt(i);              //获得字符串中的每个字符

if(isChineseChar(c)){//调用方法进行判断是否是汉字

chineseCount++;                 //等同于chineseCount=chineseCount+1

}

}

return chineseCount;                   //返回汉字个数

}

获得字母、数字、空格的个数

public static String getStringInfo(String s){

char ch;

int character=0,blank=0,number=0;

for(int i=0;i <slength();i++)    //for循环

{

ch=scharAt(i);

if((ch>='a'&&ch <='z')||(ch>='A'&&ch <='Z'))//统计字母

character++; //等同于character=character+1

else if(ch==' ')                         //统计空格

blank++; //等同于blank=blank+1

else if(ch>='0'&& ch <='9')                //统计数字

number++; //等同于number=number+1;

}

完整代码

package comzfs2;//创建一个包

public class TextLength {//描述字符串长度的类

public static boolean isChineseChar(char c) throws Exception{//判断是否是一个汉字

return StringvalueOf(c)getBytes("GBK")length>1;//汉字的字节数大于1

}

public static int getChineseCount(String s) throws Exception{//获得汉字的长度

char c;

int chineseCount=0;              

if(!""equals("")){//判断是否为空

s=new String(sgetBytes(),"GBK");   //进行统一编码

}

for(int i=0;i<slength();i++){//for循环

c=scharAt(i);              //获得字符串中的每个字符

if(isChineseChar(c)){//调用方法进行判断是否是汉字

chineseCount++;                 //等同于chineseCount=chineseCount+1

}

}

return chineseCount;                   //返回汉字个数

}

public static String getStringInfo(String s){//获得字母、数字、空格的个数

char ch;

int character=0,blank=0,number=0;

for(int i=0;i <slength();i++)    //for循环

{

ch=scharAt(i);

if((ch>='a'&&ch <='z')||(ch>='A'&&ch <='Z'))//统计字母

character++; //等同于character=character+1

else if(ch==' ')                         //统计空格

blank++; //等同于blank=blank+1

else if(ch>='0'&& ch <='9')                //统计数字

number++; //等同于number=number+1;

}

return "字符串中共有"+character+"个字母,"+blank+"个空格,"+number+"个数字";

}

public static void main(String []args) throws Exception {//java程序的主入口方法

String s="hello world 世界你好!!123";

Systemoutprintln("字符串的总长度:"+slength());//显示字符串长度

Systemoutprintln("字符串中汉字长度:"+getChineseCount(s)); //调用方法显示汉字长度

Systemoutprintln(getStringInfo(s));                       //调用方法显示其它字母类型的长度

}

}

java list得到属猪长度的方法如下:

1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性

2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法

3java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public static void main(String[] args) {

String []list={"ma","cao","yuan"};

String a="macaoyuan";

Systemoutprintln(listlength);

Systemoutprintln(alength());

List<Object> array=new ArrayList();

arrayadd(a);

Systemoutprintln(arraysize());

}

输出的值为:

3

9

1

public class Demo {

public static void main(String[] args){

String[] array = {"求","数","组","的","长","度","!"};

int length = arraylength;

Systemoutprintln("数组array的长度为:" + length);

}

}

以上就是关于java怎么获得数据在内存中长度全部的内容,包括:java怎么获得数据在内存中长度、java中如何统计一个字符串的长度、JAVA怎样获取数组长度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9588294.html

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

发表评论

登录后才能评论

评论列表(0条)

保存