Java基本数据类型

参考资料

[1]. 疯狂Java讲义(第三版) 李刚

整型

基本使用

byte

一个byte类型整数在内存里占8位,默认值是 0;

// 最大值,即2的7次方减1
byte max = 127;
// 最小值,即2的7次方
byte min = -128;

short

一个short类型整数在内存里占16位,默认值是 0;

// 最大值,即2的15次方减1
short max = 32767;
// 最小值,即2的15次方
short min = -32768;

int

一个int类型整数在内存里占32位,默认值是 0;

// 最大值,即2的31次方减1
int max = 2147483647;
// 最小值,即2的31次方
int min = -2147483648;

long

一个long类型整数在内存里占64位,默认值是 0L;

// 最大值,即2的63次方减1
long max = 9223372036854775807L;
// 最小值,即2的63次方
long min = -9223372036854775808L;

其他进制的使用

二进制

以0b或0B开头

int v1 = 0b11010100;
int v1 = 0B11010100;
// 因为int类型是32位,所以最高位是符号位,1为负数,0为整数
int binVal3 = 0B10000000000000000000000000000011;
/** 
定义一个32位的二进制数,最高位是1。
但由于数值后添加了L后缀,因此该整数的实际占64位,第32位的1不是符号位。
因此binVal5的值等于2的31次方 + 2 + 1
*/
long binVal5 = 0B10000000000000000000000000000011L;

八进制

以0开头

int v1 = 013;

十六进制

以0x或0X开头

int v2 = 0x13;
int v2 = 0xaF;

字符型

char

基本使用

字符型通常用于表示单个的字符,字符型值必须使用单引号(’)括起来。Java语言使用16位的Unicode字符集作为编码方式;
字符型有三种表示形式:
直接通过单个字符来指定字符型值

char c1 = '是';

通过转义字符表示特殊字符型值

char c2 = '\r'

直接使用Unicode值来表示字符型值
字符型值也可以采用十六进制编码的方式来表示,范围是'\u0000''\uFFFF',一共可以表示65535个字符,其中前256个(\u0000\u00FF)字符和ASCII码中的字符完全重合。

char c3 = '\u9999';

拓展使用

把char变量当成int类型变量来使用

// 声明
// “是”的数值是26159
char c1 = '是';
char c2 = '是';
// 输出52318
System.out.println(c1+c2);

把int类型赋值给char类型变量,会自动转换为相应的字符串

// 字符串“是”
char c1 = 26159;

浮点型

基本使用

float和double

一个float类型的数值占4字节、32位,一个double类型的数值占8字节、64位
十进制形式

// 5.12
float f1 = 5.12f;
// 512
float f2 = 512.0f;
// 0.512
float f3 = .512f;
// 5.12
double d1 = 5.12;
// 512
double d2 = 512.0;
// 0.512
double d3 = .512;

科学计数法形式

// 510.0,5.12 乘以10的2次方
float f1 = 5.1e2f;
// 510.0,5.12 乘以10的2次方
float f2 = 5.1E2f;
// 510.0,5.12 乘以10的2次方
double f1 = 5.1e2;
// 510.0,5.12 乘以10的2次方
double f2 = 5.1E2;

获取一些特殊的数

// 使用正数除以0将得到正无穷大,Infinity
10.0f/0
// 使用负数除以0将得到负无穷大,-Infinity
-10.0f/0
// 0.0除以0.0会得到非数,NaN
0.0/0.0/
// 对负数开方会得到非数,NaN
Math.sqrt(-1);

在数值中使用下划线分隔

java 7引入了一个新功能,可以使用下划线分隔数值

// 分隔前
int binVal3 = 0B10000000000000000000000000000011;
// 分隔后
int binVal3 = 0B10_000_000_000_000_000_000_000_000_000_011;

布尔型

布尔型只有一个boolean类型,用于表示逻辑上的“真”或“假”。

// 定义b1的值为true
boolean b1 = true;
// 定义b2的值为false
boolean b2 = false;

使用boolean类型的值和字符串进行连接运算,则boolean类型的值将会自动转换成字符串

String str = true + "";

直接量

直接量的类型

能指定直接量的通常是基本类型、字符串类型、null类型。
直接量支持数值之间的自动类型转换,因此允许把一个数值直接赋给另一种类型的变量,这种赋值必须是系统所支持的自动类型转换。

// 把int类型数值赋值给long类型
long s1 = 12122;

String类型的直接量不能赋值给其他类型的变量,null类型的直接量可以直接赋给任何引用类型的变量,包括String类型。boolean类型的直接量只能赋给boolean类型的变量,不能赋值给其他类型。
字符串的直接量,当程序第一次使用某个字符串直接量时,Java会使用常量池(constant pool)来缓存该字符串直接量,如果程序后面的部分需要用到该字符串直接量时,Java会直接使用常量池中的字符串常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值