一、数据类型
1.1整数类型
Java中的整数类型简称整形,即没有小数部分的整数。当然,它表示的数可正可负。整形数据根据它所占内存大小的不同,分为byte、short、int、long4种类型。它们具有不同的取值范围。
数据类型 | 内存空间(8位等1字节) | 取值范围 |
byte | 8位 | -128~127 |
short | 16位 | -32768-32767 |
int | 32位 | -2147483648-21474883647 |
long | 64位 | -9223372036854775808-923372036854775807 |
以下是博主个人对这四种数据类型的介绍:
int型
定义int型变量有以下四种语法:
int x; //定义一个int型变量x;
int x,y; //同时定义两个int型变量x,y;
int x=0,y=1; //定义同时赋值;
int x=5+23; //赋计算结果初值。
int变量在内存中占4字节,也就是32位,在计算机中bit是由0和1来表示的,所以int类型在计算机中在计算机中是这样表示的:
00000000 00000000 00000000 000001010
int类型是Java整形类的默认数值。当多个尚未定义数据类型的整形运算时,默认结果为整型:
System.out.print(23+34);
输出结果为整形。
byte型、long型、short型的定义方法与int型定义方法相似,不再过多介绍。
1.2 浮点类型
浮点类型简称浮点型,用来存储含有小数部分的数值。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围。
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.797693138623157E308 |
*浮点值属于近似值,在系统中运算后的结果可能与实际有偏差。
在那默认情况下,小数都被看做double类型。使用float型小数则需要在小数后面添加F或f。另外,同样的,也可以加d或D声明这是一个double类型。
Java语言的浮点型有两种表示形式:
十进制数形式:简单的浮点数,例如2.56、6.534、546.0。浮点数必须包含一个小数点,否则会被当成int型处理;
2、科学计数法形式:例如5.25e2(即5.25*10^2)。
需要提一下的是:只有浮点类型的数值才能用科学计数法形式表示。
1.3字符类型
char类型
char类型用于存储单个字符,占用16位的内存空间。在定义字符串型时要以单引号表示,如’s‘表示单个字符。
char x='a';
由于字母a在Unicode表中的排序位置是97,因此允许将上面的语句写成:
char x=97;
2、String类型
String类型为字符串类型,可以用来保存多个字符组成的文本内容,其用法与字符串类似,但文本内容需要双引号标注。
3、转义字符
转义字符是一种特殊的字符串变量,它以\开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的含义。
Java中的常见转义字符有:
转义字符 | 说明 | Uniclode表示方式 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\b | 退格 | \u000a |
\t | 制表 | \u0009 |
\" | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜线 | \u005c |
字符串值三种表示形式:1、直接用单个字符表示;
2、通过转义字符表示;
3、直接用Unicode值来表示字符型值,格式是‘\uXXXX',其中XXXX表示一个十六进制的整数。
1.4布尔类型
布尔类型只有一个boolean类型,用于表示逻辑上的真或假。Java中没用明确规定boolean类型所占用的内存空间,虽然boolean类型的变量或值只要1位就可以保存,但由于大部分计算机的最小内存分配单元是字节,所以bit大部分实际上占用8位。
以下定义两个boolean类型的变量,并指定初始值:
//定义b1的值为true
boolean b1=true;
//定义b2的值为false
boolean b2=false;
字符串“true”和"false"不会直接转为boolean类型,但如果使用一个boolean类型的值和字符串进行连接运算,则boolean的值可以直接埃尔转为字符串。
String str=true+"";
System.out.println(str);
1.5基本数据类型的转换
显示转化
int x=(float)A;
int s=(int)'A';
显示转换又称为强制转换,语法格式为(targetType)value,强转的运算符是圆括号()。进行强制类型转换时,类似于把一个大瓶子里的水装进一个小瓶子,如果大瓶子里的水不多还好,但如果大瓶子里的水很多就会溢出来,从而造成数据损失。这种数据类型也叫“缩小转换”。
隐式转化
int a=12;
double x=a+2;
隐式转换又叫自动转换,把某种基本数据类型的值直接复制给另一种基本数据类型。当把一个表述范围小的值赋值给一个表数范围大的值时,系统进行自动类型转换;否则就需要强制类型转换。
1.6直接量
并不是所有的数据类型都可以指定直接量,能指定直接量的通常只有三种类型,基本类型,字符串类型和null类型,具体而言,Java支持如下8种类型的直接量。
1),int类型的直接量:在程序中直接给出的整数数值
2),long类型的直接量:在整形数值后添加l或者L就变成了long类型的直接量
3),float类型的直接量:在一个浮点数后增加f或F就变成了float类型的直接量,这个浮点数可以是标准的小数形式,也可以是科学计数法形式
4),double类型的直接量:直接给出一个标准小数形式或者科学计数法形式的浮点数就是double类型的直接量
5),double类型的直接量:这个类型的直接量只有true和false
6),char类型的直接量:char类型的直接量有三种形式,分别是用单引号括起来的字符,转义字符和Unicode值表示的字符
7),String类型的直接量:一个用双引号括起来的字符序列就是String类型的直接量
8),null类型的直接量:这个类型的直接量只有一个值,即null