java中类型所占字节数以及可表示的数字个数

基本概念

字节的单位是byte。位的单位是bit。1byte=8bit。

1bit能表示多少个数字——最小0,最大1。2的1次方个。

2bit能表示多少个数字——最小00,最大11。2的2次方个。

3bit能表示多少个数——最小000,最大111。2的3次方个。

依此类推—8bit可以表示2的8次方共256个数字。

若数没有正负之分可表示0—255共256个数字。若有正负之分可表示-128到+127共256个,因为8位里有一个位表示正负。

 

得出结论

java中基本类型内存中所占字节整理

 

整类型

类型 内存中所占字节byte 所占位bit 可表示数字个数
byte 1 8 2的8次方
short 2 16 2的16次方
int 4 32 2的32次方
long 8 64 2的64次方

 

字符类型

类型 内存中所占字节byte 所占位bit 可表示数字个数
char 2 16 2的16次方

 

浮点类型

类型 内存中所占字节byte 所占位bit 可表示数字个数
float 4 32 2的32次方
double 8 64 2的64次方

 

布尔型

类型 内存中所占字节byte 所占位bit 可表示数字个数
boolean 1 2的1次方

 

参考地址:http://cai555.iteye.com/blog/471095

 

时间: 2025-01-31 16:41:45

java中类型所占字节数以及可表示的数字个数的相关文章

java 中new一个对象占多少内存?

问题描述 java 中new一个对象占多少内存?要怎么计算呢? 解决方案 Object o=new Object(): 在java中空对象占八个字节,对象的引用占四个字节.所以上面那条语句所占的空间是4byte+8byte=12byte.java中的内存是以8的倍数来分配的,所以分配的内存是16byte.举个例子:Class O{ int i; byte j; String s;}其所占内存的大小是空对象(8)+int(4)+byte(1)+String引用(4)=17byte,因要是8的整数倍

java中反射机制通过字节码文件对象获取字段和函数的方法

pclass = Class.forName("get_class_method.Person"); //Field ageField = pclass.getField("age");//因为age成员变量是私有的,所以会产生NoSuchFieldException异常 Field ageField = pclass.getDeclaredField("age");//获得该对象反映此 Class 对象所表示的类或接口的指定已声明字段 Obje

浅析Java中对象的创建与对象的数据类型转换_java

Java:对象创建和初始化过程 1.Java中的数据类型    Java中有3个数据类型:基本数据类型(在Java中,boolean.byte.short.int.long.char.float.double这八种是基本数据类型).引用类型和null类型.其中,引用类型包括类类型(含数组).接口类型.     下列语句声明了一些变量: int k ; A a; //a是A数据类型的对象变量名. B b1,b2,-,b10000;// 假定B是抽象类或接口. String s;      注意:从

在Java中使用Lambda表达式的技巧

在本文中,我们将展示一些在 Java 8 中不太为人所了解的 Lambda 表达式技巧及其使用限制.本文的主要的受众是 Java 开发人员,研究人员以及工具库的编写人员. 这里我们只会使用没有 com.sun 或其他内部类的公共 Java API,如此代码就可以在不同的 JVM 实现之间进行移植. 快速介绍 Lambda 表达式作为在 Java 8 中实现匿名方法的一种途径而被引入,可以在某些场景中作为匿名类的替代方案. 在字节码的层面上来看,Lambda 表达式被替换成了 invokedyna

关于Java中bytes到String的转换

    为什么想要写这个,是因为在上周,表格存储的一个客户,告知我们在将数据通过DataX从OTS导出到ODPS后,发现数据『丢失』了.而在调查过后,发现数据并不是所谓的『丢失』了,而是数据被『改变』了.     什么原因导致数据发生了『改变』呢?却是因为一个大部分Java程序员都会忽略的问题导致的,所以我觉得有必要单独拿出来讲讲. 首先看下如下代码: byte[] original1 = new byte[]{(byte)0xef, (byte)0x8f, (byte)0x8f}; byte[

java中如何使用getpixcolor函数

问题描述 java中如何使用getpixcolor函数让他返回一个颜色数字然后转换成int类型getpixcolor取得的颜色是当前屏幕的颜色还是某个图片的颜色技术文档中注解getPixelColorpublicColorgetPixelColor(intx,inty)返回给定屏幕坐标处的像素颜色.参数:x-像素的X位置y-像素的Y位置返回:像素的颜色希望知道的大虾可以告诉我最好是写一个实例出来 解决方案 解决方案二:是屏幕的颜色importjava.awt.AWTException;impor

java中基本类型封装对象所占内存的大小(转)

这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runtime类中有一些简单的能涉及到内存管理的函数: Every Java application has a single instance of class Runtime that allows the application to interface with the environment in

java中一个汉字和一个字母所占内存字节比较以及后台验证的减半处理

  基本概念 我们一般理解java中 一个字符char占2个字节byte 一个汉字占2个字节byte 一个字母占1个字节byte   其他情况 对于汉字来说,采用gbk编码占两字节,采用utf8编码占三个字节.   String的length()方法 String s1 = "aa"; String s2 = "a好"; s1.length() s2.length() 答案都是2,因为该方法是返回字符的个数,并不是内存中的字节数.   数据库应用 java的编码不会

浅谈Java中的存储空间类型

在Thinking in java里,列举了Java的六种存储类型1.寄存器编写过汇编程序的应该对寄存器非常熟悉,那时候用的ax,bx,cx,dx等等.寄存器在CPU里面,所以速度特别快,但是数量非常有限.在java中无法直接和寄存器打交道,不过在c中是可以声明寄存器变量的. 2.栈空间写过汇编的肯定感到非常亲切,在汇编程序里不就是压栈和出栈吗?有一个指针控制栈空间,分配空间是栈指针上移,就是push操作,释放空间指针下移,就是pop操作.当然C和C++也主要是通过栈分配空间的.因为只要压栈和出