Java中8种基本数据类型及其默认值

Java语言中有8种基本数据类型,基本情况汇总如下:

Java中8种基本数据类型总结

序号数据类型存储需求大小/位封装类默认值可表示数据范围
1byte(位)1字节8位Byte0-128~127
2short(短整数)2字节16位Short0-32768~32767
3int(整数)4字节32位Integer0-2147483648~2147483647
4long(长整数)8字节64位Long0-9223372036854775808~9223372036854775807
5float(单精度)4字节32位Float0.01.4E-45~3.4028235E38
6double(双精度)8字节64位Double0.04.9E-324~1.7976931348623157E308
7char(字符)2字节16位Character0~65535
8boolean1字节8位Booleanfalsetrue或false

Java 中char无论中英文数字都占用2字节,是因为 Java 中使用 Unicode 字符,所有字符均以2个字节存储。

整型
int :整数类型
short :短整型
long :长整型
byte :字节类型

浮点型
float :浮点类型(单精度)
double :浮点类型(双精度)

逻辑型
boolean :布尔型

字符型
char :字符型


package com.test;
 
abstract class Other {
    
    static byte a;
    static short b;
    static int c;
    static long d;
    static float e;
    static double f;
    static char g;
    static boolean h;
    
    //String不是基本类型
    static String str1 = "";//生成一个String类型的引用,而且分配内存空间来存放"";
    static String str2; //只生成一个string类型的引用;不分配内存空间,默认为null
 
    public static void main(String[] args) {
      
      System.out.println("byte的大小:"+Byte.SIZE+" byte的默认值:"+a+" byte的数据范围:"+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);   
      System.out.println("short的大小:"+Short.SIZE+" short的默认值:"+b+" short的数据范围:"+Short.MIN_VALUE+"~"+Short.MAX_VALUE);   
      System.out.println("int的大小:"+Integer.SIZE+" int的默认值:"+c+" int的数据范围:"+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);   
      System.out.println("long的大小:"+Long.SIZE+" long的默认值:"+d+" long的数据范围:"+Long.MIN_VALUE+"~"+Long.MAX_VALUE);   
      System.out.println("float的大小:"+Float.SIZE+" float的默认值:"+e+" float的数据范围:"+Float.MIN_VALUE+"~"+Float.MAX_VALUE);   
      System.out.println("double的大小:"+Double.SIZE+" double的默认值:"+f+" double的数据范围:"+Double.MIN_VALUE+"~"+Double.MAX_VALUE);   
      System.out.println("char的大小:"+Character.SIZE+" char的默认值:"+g+" char的数据范围:"+Character.MIN_VALUE+"~"+Character.MAX_VALUE);   
      System.out.println("boolean的大小:"+Byte.SIZE+" boolean的默认值:"+h+" boolean的数据范围:"+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);   
      
      System.out.println("String字符串的默认值:"+str1+"str的默认长度:"+str1.length());   
      System.out.println("String字符串的默认值:"+str2);   
      
 
    }
 
}

输出

byte的大小:8 byte的默认值:0 byte的数据范围:-128~127
short的大小:16 short的默认值:0 short的数据范围:-32768~32767
int的大小:32 int的默认值:0 int的数据范围:-2147483648~2147483647
long的大小:64 long的默认值:0 long的数据范围:-9223372036854775808~9223372036854775807
float的大小:32 float的默认值:0.0 float的数据范围:1.4E-45~3.4028235E38
double的大小:64 double的默认值:0.0 double的数据范围:4.9E-324~1.7976931348623157E308
char的大小:16 char的默认值:
boolean的大小:8 boolean的默认值:false boolean的数据范围:-128~127
String字符串的默认值:str的默认长度:0
String字符串的默认值:null

基本数据类型自动转换
byte -> short
char -> int -> long
float -> double
int -> float
long -> double

重要的一点:小可转大,大转小可能会失去精度
低数据类型可以直接赋值给高数据类型,反之,高数据类型转换为低数据类型必须强转,即提前制定数据类型,例 int a = (int) 0.0F


而如果需要识别字符是否为中文,可以使用正则匹配式:

String _regex = "[\\u4e00-\\u9fa5]";   //中文的范围

Java有一个能够表示任意精度的算数包,通常称为“大数值”(big number)。虽然被称为大数值,但它并不是一种Java类型,而是一个Java对象。

如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigIntegerBigDecimal(Android SDK中也包含了java.math包以及这两个类)这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。具体的用法可以参见Java API。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值