一、什么是数据类型
大家都知道,每台电脑都有一块内存,内存就好比人类的大脑,它可以用来存各种数据,当数据存入时,jvm虚拟机将在内存中开辟一块区域用来存储数据。我们需要先给数据定义一个名称,这就是标识符了,也就是变量名,Java标识符有四条规则,1、Java标识符由字母,数字,_,$ 组成,首字母不能是数字。2、不能把Java关键字作为标识符。3、标识符没有长度限制。4、标识符对大小写敏感。定义好变量名后,jvm根据我们定义的数据类型在内存中开辟一块特定大小的区域用来存储数据,不同的数据类型分配的空间也是不同的。
二、基本数据类型
数据类型分为基本数据类型和引用数据类型
引用数据类型:
类,接口,数组,枚举,注解
基本数据类型:
整型(4种):
byte(1字节):范围(-128~127);
short(2字节):范围(-32768~32767);
int(4字节):范围(-2147483648~2147483648 )
long(8字节):若数据超过了int类型的范围长度,需要在数字后面加“L”或“l”(数据默认int,超过会报错,不
过一般在long类型数据后面加上l以防报错)
浮点类型(2种):
float(4字节):第一位为符号位,接下来8位表示指数,再接下来23位表示尾数;若指定浮点类型为float必须在数
字后加f,如:float price=12.5f;(默认为double,否则编译时可能会损失精度)
double(8字节):第一位为符号位,接下来11位表示指数,再接下来52位表示尾数;
字符型(1种):
char(2字节):字符型采用Unicode编码,一个Unicode编码占2个字节(16位),由于字符型不存在正负,所以其表示范围为(0~65535),char类型还可以存储汉字,例如:char lets='唐';可以使用ASCII码表示字符,如:char a=97;输出为“a”,也可以使用英文单引号括起来十六进制字符表示单个字符,例如char a='\u0061';也表示“a”;
布尔型:
boolean():布尔型,又称为逻辑型,只有true和false两个取值,默认初始值为false。
整型的4种表示形式:
十进制整数:如12,-127。
二进制整数:以0b开头,例如0b011(十进制中的3)
八进制整数:以0开头,例如014(相当于十进制12)
十六进制整数:以0x或0X开头,例如0xc(对应十进制12)
基本数据类型转换:
基本数据类型转换分为自动类型转换和强制类型转换,当表示范围小的数据类型赋值给范围大的数据类型时,Java使用自动类型转换,范围从小到大的排序是:byte——>short/char——>int——>long——>float——>double。当把级别高的变量赋值给级别低的变量时,必须用显示类型转换,格式为:int x=(int)23.45; long y=(long)34.4f; byte z=(byte)(88+99);z的值超过了byte的最大范围结果为溢出,所以强制类型转换可能导致数据溢出,谨慎使用。
变量和常量:
变量是Java 程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。格式通常为:[访问控制符] [修饰符] 数据类型 变量名 [=初始值](中括号括起来的为可有可无的)。在Java语言中,主要是利用final关键字来定义常量。当常量被设定后,一般情况下就不允许再进行更改。变量的命名规则是首字母小写之后每个单词首字母大写。常量的命名规则是所有字母大写,单词与单词间用下划线分隔。
原码、反码、补码:
我们都知道,计算机只认识二进制数,但计算机存储时是存储二进制补码的,原因是:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。原码就是我们将十进制数转换为二进制,正数的原码、反码、补码都一样,负数的反码是将原码除符号位外取反(1变成0),补码是将反码加上1。
Java运算符:
Java中有六种运算符:算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,三目运算符。
算术运算符:+、-、*、/、%、++(自增,操作数加一)、--
赋值运算符:=、+=:左右两边相加赋给左边,-=、*=、/=、%=
关系运算符:>、<、>=、<=、==、!=
逻辑运算符:&&:两边为真时,结果为真、||:两边有一个为真时,结果为真、!:条件为真,结果为假。
三目运算符:语法格式为:<逻辑表达式>?<表达式一>:<表达式二> 当逻辑表达式为真时,表达式一有效,当逻辑表达式为假时,表达式二有效。
位运算符:
&:按位与。
规则:全一则一,否则为0;
如:a 00000011
b 10101001
c 00000001 a&b=c
|:按位或。
规则:全0则0,否则为1;
~:按位非。
规则:遇1则0,遇0则1;
^:按位异或。
规则:相同为0,不同为1;
<<:左位移运算符。
将二进制数进行左移运算。例如5<<2(byte)
5 00000101
结果: 00010100 为20
>>:右位移运算符。
将二进制数进行左移运算。
<<<:无符号右移运算符。
无符号右移规则和右移运算是一样的,只是填充时不管左边的数字是正是负都用0填充,无符号右移运算只针对负数运算,因为对于正数来说这种运算没有意义。
运算符的优先级:
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | () [] . | 从左到右 |
| 2 | ! +(正号) -(负号) ~(取补) ++(自增) - -(自减) | 从右向左 |
| 3 | * / % | 从左到右 |
| 4 | +(加号) -(减号) | 从左到右 |
| 5 | << >> >>> | 从左到右 |
| 6 | < <= >= > instanceof | 从左到右 |
| 7 | ==(等于) != | 从左到右 |
| 8 | & | 从左到右 |
| 9 | ^ | 从左到右 |
| 10 | | | 从左到右 |
| 11 | && | 从左到右 |
| 12 | || | 从左到右 |
| 13 | ?: | 从右向左 |
| 14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 从右向左 |
总结一下,优先级次序如下:
括号>算术运算符>移位运算符>关系运算符>位运算符>逻辑运算符>三目运算符>赋值运算符
看到一个口诀感觉不错:单目乘除为关系,逻辑三目后赋值。
本文详细介绍了Java中的数据类型,包括基本数据类型与引用数据类型,深入解析了整型、浮点型、字符型及布尔型的特点与应用。此外,还探讨了数据类型的转换规则、变量与常量的区别,并介绍了原码、反码、补码的概念。
&spm=1001.2101.3001.5002&articleId=79686417&d=1&t=3&u=0e43c39b5e2d4ba8a0748a28290ace49)

被折叠的 条评论
为什么被折叠?



