java基础之数据类型(变量)
常量:在程序执行的过程中其值不可以发生改变
常量的分类字面值常量字面值常量的分类 常量描述字符串常量用双引号括起来的内容整数常量所有整数小数常量所有小数字符常量用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号布尔常量较为特殊,只有true和false空常量null(数组部分)- - 自定义常量
变量:在程序执行的过程中,在某个范围内其值可以发生改变的量定义格式: 数据类型 变量名 = 变量值;定义变量原因: 用来不断的存放同一类型的常量,并可以重复使用有数据类型原因:Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
Java中数据类型的分类
基本数据类型引用数据类型基本数据类型分类(4类8种)
整数型 数据类型所占字节范围byte占一个字节-128到127 short占两个字-2^15~2^15-1int占四个字节-2^31~2^31-1long占八个字节-2^63~2^63-1- 浮点型
数据类型所占字节范围float占两个字节-3.403E38~3.403E38double占四个字节-1.798E308~1.798E308- 字符型
数据类型所占字节范围char占两个字节0~65535- 布尔型 boolean
**小细节:**boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
自动:小到大 强制:大到小
自动
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算强转
如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同byte <- short <- char <- int <- long <- float <- double
**注意:**float表示的数据范围比long的范围要大 原因
long:2^63-1 float:3.4*10^38 2*10^38 2*8^38 = 2*2^3^38 = 2*2^114 2^63-1
运算符:就是对常量和变量进行操作的符号。 分类: - 算术运算符 - 赋值运算符 - 比较(关系或条件)运算符 - 逻辑运算符 - 位运算符 - 三目(元)运算符
算术运算符:+-*/%,++,– ++/–:自增1/自减1 1.1)单独使用时,在前在后无差别 1.2)若被使用时,在前在后有差别 1.2.1)++在后,先使用,后自增1 1.2.2)++在前,先自增1,后使用
单独使用:
放在操作数的前面和后面效果一样。参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。放在操作数的后面,先参与运算,再自增或者自减。注意事项: - “+”号在java中有三种作用,代表正号,做加法运算,字符串的连接符 - 整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型 - /获取的是除法操作的商,%获取的是除法操作的余数
%运算符 当左边的绝对值小于右边绝对值时,结果是左边当左边的绝对值等于右边或是右边的倍数时,结果是0当左边的绝对值大于右边绝对值时,结果是余数%运算符结果的符号只和左边有关系,与右边无关任何一个正整数%2结果不是0就是1可以用来当作切换条件2.1)>(大于),<(小于)
>=(大于或等于),<=(小于或等于)==(等于),!=(不等于)2.2)关系运算的结果为boolean型,
关系成立则为true,关系不成立则为false||:逻辑或,有一边为真则为真,见true则true 若左边的数为true,则发生短路(右边不走了)
!: 逻辑非,非真则假,非假则真
3.2)逻辑运算都是建立在关系运算基础之上的
逻辑运算的结果为boolean型4.1)简单赋值:=
扩展赋值:+=,-=,*=,/=,%=4.2)建议使用扩展赋值,因其效率高
6.1)格式
boolean ? 数1 : 数26.2)计算boolean的值:
若为true,则整个表达式的结果为数1若为false,则整个表达式的结果为数2