`
Jack-chen
  • 浏览: 69192 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用代码来测试JAVA中数据类型的存储大小

    博客分类:
  • Java
阅读更多
感谢CSDN jack_chen


import java.io.*;

public class abc {

    public static void main(String[] args) {

        char cr = 1;
        byte be = 1;
        short st = 1;
        int it = -1;
        long lg = 1;
        float ft = 1;
        double de = 1;

        int cnt;
        byte x;
        int cot = 0;
        int byteSize = 0;

        // System.out.println("Float.size: "+Float.SIZE);
        // System.out.println("Double.size: "+Double.SIZE);

        for (cnt = 1; (cr <<= 1) != 0; cnt++)
            ;
        System.out.println("char'sBits:" + cnt);

        for (cnt = 1; (be <<= 1) != 0; cnt++)
            ;
        System.out.println("byte'sBits:" + cnt);
        byteSize = cnt;

        for (cnt = 1; (st <<= 1) != 0; cnt++)
            ;
        System.out.println("short'sBits:" + cnt);

        for (cnt = 1; (it <<= 1) != 0; cnt++)
            ;
        System.out.println("int'sBits:" + cnt);

        for (cnt = 1; (lg <<= 1) != 0; cnt++)
            ;
        System.out.println("long'sBits:" + cnt);

        // 用字节流处理double
        try {
            ByteArrayOutputStream buf = new ByteArrayOutputStream();
            DataOutputStream out = new DataOutputStream(buf);
            out.writeDouble(de);
            out.close();
            DataInputStream in = new DataInputStream(new ByteArrayInputStream(
                    buf.toByteArray()));

            while ((x = (byte) in.readByte()) != -1) {

                // System.out.println("byte["+cot+"]:"+x);
                cot++;
            }
            in.close();

        } catch (IOException e) {
            System.out.println("EOF!!!");
        }
        System.out.println("The Double's bit size is :" + cot * byteSize);

        // 用字节流处理float
        try {
            cot = 0;
            ByteArrayOutputStream buf = new ByteArrayOutputStream();
            DataOutputStream out = new DataOutputStream(buf);
            out.writeFloat(ft);
            out.close();
            DataInputStream in = new DataInputStream(new ByteArrayInputStream(
                    buf.toByteArray()));

            while ((x = (byte) in.readByte()) != -1) {

                // System.out.println("byte["+cot+"]:"+x);
                cot++;
            }
            in.close();

        } catch (IOException e) {
            System.out.println("EOF!!!");
        }
        System.out.println("The Float's bit size is :" + cot * byteSize);

    }

}
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包---java 源码 大量 实例

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包2

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    基于java+OpenCV人脸识别+图片相似度检测+源码+开发文档说明+代码解说(毕业设计&课程设计&项目开发)

    将内存中的两张图片bitmap转换为Mat矩阵(Mat类是OpenCV最基本的一个数据类型,它可以表示一个多维的多通道的数组。Mat常用来存储图像,包括单通道二维数组——灰度图,多通道二维数组——彩色图) 把Mat矩阵的type...

    java源码包4

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包3

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...

    java范例开发大全源代码

     第2篇 Java数据处理  第4章 异常处理(教学视频:62分钟) 54  4.1 编译时异常 54  实例35 除0发生的算术异常(ArithmeticException) 54  实例36 数组下标越界异常(ArrayIndexOutOfBoundsException...

    java 面试题 总结

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble ...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧. 这个工具类目前主要有25种正规表达式(有些不常用,但那时才仔细深入的研究了一下正规,写上瘾了,就当时能想到的都写了): 1....

    JAVA面试题最全集

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...

    二进制XML存储方案

    其次,使用RDB还有一个问题:数据的层次表达与多值问题,将树型数据扁平化存储的方案是有的,但是,将几层简单的节点拆分成N个表格,岂不是杀鸡用牛刀? 其次的考虑当然是XML,然而XML是基于可读文本的,如何解决二...

    积分兑换系统java源码-leetcode:每天坚持两道题,整理数据结构与算法相关代码

    数组是一种线性表数据结构,用一组连续的内存空间来存储一组具有相同类型的数据。其最大特点是支持随机访问,但删除,插入操作低效。 数组在定义时需要预先指定大小,因为需要分配连续的内存空间。 Java中的...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    因为JAVA的自动装箱与拆箱机制,不需要根据场景来区分数据类型。 D .所有的局部变量推荐使用基本数据类型。 多选 12.关于索引的设计,下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对varchar类型的字段...

    超级有影响力霸气的Java面试题大全文档

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double ...

Global site tag (gtag.js) - Google Analytics