Java数据类型

一,八大基本类型

分为四大类分别为
1.整形:byte short int long
2. 浮点型:float double
3.字符型:char
4.布尔型:boolean(true,false)

数据类型详细介绍

整型(byte、short、int、long)

虽然byte、short、int、long 数据类型都是表示整数的,但是它们的取值范围可不一样。

byte 的取值范围:-128~127(-2的7次方到2的7次方-1)
short 的取值范围:-32768~32767(-2的15次方到2的15次方-1)
int 的取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1)
long 的取值范围:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)

由上可以看出 byte、short 的取值范围比较小,而long的取值范围最大的,所以占用的空间也是最多的。int 取值范围基本上可以满足我们的日常计算需求了,所以也是我们使用的最多的一个整型类型。

浮点型(float、double)

float 和 double 都是表示浮点型的数据类型,它们之间的区别在于精确度的不同。

float(单精度浮点型)取值范围:3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,而e-45 表示乘以10的负45次方)
double(双精度浮点型)取值范围:1.797693e+308~4.9000000e-324(同上)

double 类型比float 类型存储范围更大,精度更高。

带小数点的字面量默认属于double类型,所以声明一个float类型的变量时,都要在数字后面加上 "F" 或 "f"。

在Java中,对浮点型数据使用基本的加减乘除运算符,计算的数据可能不是完全精确的,有时候可能出现小数点后几位浮动。对于金融行业或者和钱有关的业务来说,这是不可接受的,当出现与金钱数值相关的场景,建议使用BigDecimal 进行运算。

字符型(char)

char 有以下的初始化方式:

// 可以是汉字,因为是Unicode编码
char ch = 'a'; 
// 可以是十进制数、八进制数、十六进制数等等。
char ch = 1010; 
// 可以用字符编码来初始化,如:'\0' 表示结束符,它的ascll码是0,这句话的意思和 ch = 0 是一个意思。
char ch = '\0'; 

Java是用 unicode 来表示字符,“中” 这个中文字符在 unicode 就是两个字节。

unicode / gbk / gb2312 是两个字节,utf-8 是3个字节。

对于字符串(String),可以通过 String.getBytes(encoding) 方法,获取指定编码类型的byte数组。

布尔型(boolean)

boolean 型只有两个取值 true 和 false

它的默认值是 false

对于布尔型占用的空间,得看JVM对于它的具体实现,有些JVM底层其实是使用0和1来表示true和false,那么就是4字节。

二.引用数据类型

  1. 类类型:(例String)

  1. 枚举类型:enum

  1. 接口:interface

  1. 数组:array

  1. 注解

引用数据类型的变量不是具体的值,而是指向的内存地址

  • 具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址

如果把一个人比作内容,那么这个人的住所就是内存地址,改变内存地址不能改变内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值