Java数据类型
Java的数据类型分为2类:
1、基本数据类型
2、引用数据类型
一、基本数据类型的分类:
整型
byte:占1个字节存储空间
short :占2个字节存储空间
int :占4个字节存储空间
long:占8个字节存储空间
浮点型
float :占4个字节存储空间
double:占8个字节存储空间
字符型:
char:占2个字节存储空间
布尔型
boolean:占1个字节存储空间
注:1字节等于1个四位二进制数,即1111。2字节等于1个8位二进制数,即 1111 1111。以此类推。
二、引用数据类型
引用数据类型:使用自己或者其他程序员创建的非基本数据类型。
注: 创建一个class类的时候就相当于创建了一个数据类型,我们使用这些class类的方法就叫引用。
引用数据类型的使用步骤:(以Scanner类为例)
1、导入类(也称导包):
使用import关键字;格式是 import java.util.Scanner;
2、创建对象:
使用关键字new;
Scanner 类型名 = new Scanner(System.in);
3、引用对象中的属性或者方法:
使用引用字符 “.” ; sc.方法名;
算术运算符
算数运算符是用于数据与数据之间进行算数运算的符号。
主要有 +、-、*、/、%
注:
1、byte、short、char、只要参与算数运算,都会自动转换成int类型
2、自动类型转换规则:
范围小的类型向范围大的类型提升:
byte、short、char → int → long → float → double
byte、short、char 在运算时自动转换成int。
int + double = double +double
问:long占8字节,float占4字节,为什么自动类型转换却是long转float?
答:因为float的存储方式和long类型不一致,float的32位bit中,1位表示符号位,后面8为表示指数位,剩下的23位表示小数位,所以在存储数值范围上,float比long大。
float的表示形式是: 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节
3、“%”:叫做取余运算符。
什么叫取余:取余就是两个数相除,取最后的余数。
例:5%2 = 1 → 5/2=2…余1,这个1不能被2除,所以1是余数
或者 5%3 = 2 → 5/3=1…余2,这个2不能被3除,所以2是余数
或者 6%3 = 0 → 6/3=2……余0,6被3整除了,没有余数,所以结果是0。
取余的作用:
1、判断整数的奇偶性:
偶数都能被2整除,所以余数都是0。
例:4%2=0、8%2=0、16%2=0、18%2=0等
奇数余2的结果都为1。
例:5%2=1、7%2=1、13%2=1等
2、判断一个数是否能被另一个数整除。
如果能被整除,那么余数就为0,反之则余数不为0。
关系运算符
关系运算符是用于判断运算符两边的数据之间的关系。
主要有 ==、!=、<、<=、>、>= 等。
a==b,判断a和b的值是否相等,成立为true,不成立为false
a!=b,判断a和b的值是否不相等,成立为true,不成立为false
a>b,判断a是否大于b,成立为true,不成立为false
a>=b,判断a是否大于或等于b,成立为true,不成立为false
a<b,判断a是否小于b,成立为true,不成立为false
a<=b,判断a是否小于或等于b,成立为true,不成立为false
注:
1、不管关系表达式多么简单或者多么复杂,最终的结果只有两个,要么是true,要么是false
2、
= : 表示的是赋值……赋值运算符
== : 表示的是判断是否相同……关系运算符
逻辑运算符
说明:连接条件表达式,筛选多条件共同作用的结果。
分类:
与(&)、或(|)、非(!)、异或(^)
短路与(&&)、短路或(||)
&:逻辑与,两个条件表达式中有一个为false,结果为false
|:逻辑或,两个条件表达式中有一个为true,结果为true
!:逻辑非,把条件表达式的结果取反
^:逻辑异或,两个条件表达式结果相同为false,反之为true
&&:短路与,作用和&相同,但是如果第一个条件为false,则第二个条件不执行。
||:短路或:作用和|相同,但是如果第一个条件为true,则第二个条件不执行
注:运算的最终结果只有true或者false。