「java取大小」java 获取对象大小
本篇文章给大家谈谈java取大小,以及java 获取对象大小对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何用java获取网络文件的大小
- 2、java中,比较两个数的大小 返回给主方法
- 3、Android的java怎么获取文件大小?
- 4、怎么确定Java对象的大小
- 5、java怎么获取inputstream的大小
- 6、java开发中如何获取远程文件的大小
如何用java获取网络文件的大小
try{
System.out.println("正在链接URL");
url=new URL("");
HttpURLConnection urlcon=(HttpURLConnection)url.openConnection();
//根据响应获取文件大小
fileLength=urlcon.getContentLength();
if(urlcon.getResponseCode()=400){
System.out.println("服务器响应错误");
System.exit(-1);
}
if(fileLength=0)
System.out.println("无法获知文件大小");
//打印信息
printMIME(urlcon);
System.out.println("文件大小为"+fileLength/1024+"K");
//获取文件名
String trueurl=urlcon.getURL().toString();
String filename=trueurl.substring(trueurl.lastIndexOf('/')+1);
fileOut=new File("D://",filename);
}
catch(MalformedURLException e){
System.err.println(e);
}
catch(IOException e){
System.err.println(e);
}
java中,比较两个数的大小 返回给主方法
代码如下:
package test;
import java.util.Scanner;
public class Test {
/**
* 比较两个数的大小并返回较大的值
* 既然没说整型还是浮点型,那就用浮点型了,浮点型范围大
*/
public static void getBig(double a,double b){
if(ab){
System.out.println(a);
}else if(ba){
System.out.println(b);
}else{
System.out.println("a和b一样大!");
System.out.println(a);
}
}
public static void main(String[] args) {
System.out.println("请输入两个数:");
//创建Scanner对象,并用a和b保存输入的两个数,注意导入相应的包
Scanner input = new Scanner(System.in);
double a = input.nextDouble();
double b = input.nextDouble();
//调用比较大小的方法
//这里我把方法用static修饰方便直接调用,而不用再去创建类的对象了
getBig(a,b);
//注意关闭输入流
input.close();
}
}
Android的java怎么获取文件大小?
android中的java获取文件大小的方法:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
public class FileContent {
private String path = "F:\\下载说明.txt";
public FileContent() throws IOException
{
File f = new File(path);
FileReader fileReader = new FileReader(f);
BufferedReader br = new BufferedReader(fileReader);
String str;
while((str = br.readLine() ) != null)
{
System.out.println(str);
}
System.out.println(new FileInputStream(new File(path)).available() / 1024 / 1024 +"M");
}
public static void main(String[] args) {
try {
new FileContent();
} catch (IOException e) {
e.printStackTrace();
}
}
}
怎么确定Java对象的大小
普通对象的结构如下,按64位机器的长度计算
1. 对象头(_mark), 8个字节
2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节
3. 数据区
4.Padding(内存对齐),按照8的倍数对齐
数组对象结构是
1. 对象头(_mark), 8个字节
2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节
3. 数组长度,4个字节
4. 数据区
5. Padding(内存对齐),按照8的倍数对齐
清楚了对象在内存的基本布局后,咱们说两种计算Java对象大小的方法
1. 通过java.lang.instrument.Instrumentation的getObjectSize(obj)直接获取对象的大小
2. 通过sun.misc.Unsafe对象的objectFieldOffset(field)等方法结合反射来计算对象的大小
java.lang.instrument.Instrumentation.getObjectSize()的方式
先讲讲java.lang.instrument.Instrumentation.getObjectSize()的方式,这种方法得到的是Shallow Size,即遇到引用时,只计算引用的长度,不计算所引用的对象的实际大小。如果要计算所引用对象的实际大小,可以通过递归的方式去计算。
java.lang.instrument.Instrumentation的实例必须通过指定javaagent的方式才能获得,具体的步骤如下:
1. 定义一个类,提供一个premain方法: public static void premain(String agentArgs, Instrumentation instP)
2. 创建META-INF/MANIFEST.MF文件,内容是指定PreMain的类是哪个: Premain-Class: sizeof.ObjectShallowSize
3. 把这个类打成jar,然后用java -javaagent XXXX.jar XXX.main的方式执行
有兴趣可以看下博主的:
java怎么获取inputstream的大小
据指定文件创建FileInputStream,调用available方法返回文件大小,容量为byte
File file = new File("d:\hello.gif");
FileInputStream fis = null;
try{
fis = new FileInputStream(file);
System.out.println("文件size:"+String.valueOf(fis.available()/1000)+"k");
}catch(IOException e1){
System.out.println("IO出错!");
}
}catch(FileNotFoundException e2){
System.out.println("找不到指定文件");
}
java开发中如何获取远程文件的大小
/*
只说思路:
从依据目标地址,建立资源定位器URL
从资源定位器中,获取连接器对象HttpURLConnection或者Connection
进行连接(省略掉了请求头..就不在写了...)
获取状态码,确保链接正常,进行判断,如果正确,证明链接可行就向下继续
获取链接后的文件大小,字节单位:方法有两个,区别一个是int类型,一个是long类型
long是1.7后加入的!
int conLeng = 连接器.getContentLength();
long conleng=连接器.getContentLengthLong();
*/
关于java取大小和java 获取对象大小的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-14,除非注明,否则均为
原创文章,转载请注明出处。