Java基本数据类型默认值、取值范围及所占字节位数

基本情况汇总如下:

序号

数据类型大小/位封装类默认值可表示数据范围
1byte(位)8Byte0-128~127
2short(短整型)16Short0-32768~32767
3int(整数)32Integer0-2147483648~2147483647

4

long(长整数)

64

Long

 0L

-9223372036854775808~9223372036854775807

5

float(单精度)

32

Float

0.0f

1.4E-45~3.4028235E38

6

double(双精度)

64

Double

0.0

4.9E-324~1.7976931348623157E308

7

char(字符)

16

Character

'/uoooo'(null)

0~65535

8

boolean

8

Boolean

flase

true或false

  当变量作为作为类成员使用时,java才确保给定其初始值,防止程序运行时错误。但是这些初始值对你的程序来说是不正确的。所以必须明确指定初始值。

  然而以上所诉并不适用于“局部”变量(即:非某个类的字段)。因此在某个方法中定义int i,那么变量i可能得到的是任一值。不会被初始化为0。所以使用前先付一个适当的值。如果忘记了,java会在编译时返回一个错误。告诉你此变量没有初始化。在类中定义一个对象的引用时,如果没有给定初始化值,此引用会默认为null值。也就是说在java中基本类型的默认值是0,引用类型会默认为null。

  大家注意! char类型数据作为成员变量时默认值是' '(空字符)。另外'\u0000'表示的符号是空字符,'\ uxxxx' x属于0到f可以表示很多字符,可以理解为字符编码。


测试代码:

package com.test.basedatatype;

public class Test {
	int a;
	double b;
	boolean c;
	char d;
	float f;
	byte e;
	long h;
	short j;
	
	public static void main(String []args){
		getDefault();
		getSize();
	}

	public static void getDefault() {
		Test a = new Test();
		System.out.println("整型的默认值是:" + a.a);
		System.out.println("双精度浮点型的默认值是:" + a.b);
		System.out.println("布尔型的默认值是:" + a.c);
		System.out.println("字符型的默认值是:" + a.d);
		System.out.println("byte的默认值是:" + a.e);
		System.out.println("单精度浮点型的默认值是:" + a.f);
		System.out.println("短整型的默认值是:" + a.j);
		System.out.println("长整型的默认值是:" + a.h);

	}
	
	  public static void getSize() {
		  System.out.println("--------------------");
          //byte类型所占的字节数求法
          System.out.println("byte的二进制位数为:" + Byte.SIZE);
          System.out.println("byte所占的字节数为:" + Byte.SIZE/8);     //一个字节占8个二进制位        
          System.out.println("--------------------");
          //short类型所占的字节数求法
          System.out.println("short的二进制位数为:" + Short.SIZE);
          System.out.println("short所占的字节数为:" + Short.SIZE/8);
          System.out.println("--------------------");
          //int类型所占的字节数求法
          System.out.println("int的二进制位数为:" + Integer.SIZE);
          System.out.println("int所占的字节数为:" + Integer.SIZE/8);
          System.out.println("--------------------");
          //long类型所占的字节数求法
          System.out.println("long的二进制位数为:" + Long.SIZE);
          System.out.println("long所占的字节数为:" + Long.SIZE/8);
          System.out.println("--------------------");
          //float类型所占的字节数求法
          System.out.println("float的二进制位数为:" + Float.SIZE);
          System.out.println("float所占的字节数为:" + Float.SIZE/8);
          System.out.println("--------------------");
          //double类型所占的字节数求法
          System.out.println("double的二进制位数为:" + Double.SIZE);
          System.out.println("double所占的字节数为:" + Double.SIZE/8);
          System.out.println("--------------------");
          //char类型所占的字节数求法
          System.out.println("char的二进制位数为:" + Character.SIZE);
          System.out.println("char所占的字节数为:" + Character.SIZE/8);
  }  

}

默认值输出结果:

 

所占字节数输出结果:

 

原贴,表示感谢

https://blog.csdn.net/strggle_bin/article/details/70194840

https://www.cnblogs.com/yjh123/p/5694341.html

https://www.cnblogs.com/aiwuzhi/p/7335111.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值