数据类型、变量、运算符
数据类型
数据存储
数据在计算机中是以二进制数据存储的,其中
程序:
是可执行文件,一堆命令的集合,属于静态,一般保存在硬盘中。
进程:
是正在执行的程序,保存在内存中。进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作中,进程既是基本的分配单元,也是基本的执行单元。
线程:
是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中实际运作单位。
数据存储方式
内存
可以理解为两端无限延伸的线,线上的每一个空间(电子位),统称位,bit
硬盘
螺旋线
为了保存负数,最高位变成符号位,1为负数,0为正数。
数据类型
基本数据类型
整数型
字节 byte=8bit 范围 -128~127
短整型 short=2Byte=16bit 范围 -32678~32767
整型 int=4Byte=32bit 范围 -2147483648~2147483647
长整型 long=8Byte=64bit 范围 很长
浮点型
float=4Byte=32bit 范围3.4e-38~3.4e+38
double=8Byte=64bit 范围 1.7e-308~1.7e+308
字符型
char=2Byte=16bit 范围 0~65535
布尔型
boolean
引用数据类型
字符串(String)
类(class,abstrct class)
数组(array)
接口(Interface)
注意事项
1.字符串不是基本型,而是引用类型。
2.浮点数可能只是一个近似值,并非精确值
3.数据范围与字节数不一定相关,例如float的数值范围比long更广泛,但是float是4字节,long是8字节
4.浮点数默认是double型,如果一定要使用float,要在后面加F
如果是整数,默认int类型,如果一定要使用long类型,需要加上一个后缀L,推荐是用大写字母后缀。
变量
局部变量:
在方法中声明的变量称为局部变量,改变量只能在该方法中被使用,并且直接通过名字调用该变量即可,且局部变量没有默认值,必须赋值。
静态变量
在类体中使用Static声明的变量,和方法是平级关系,并且需要通过 类名.静态变量名 调用,另外在当前类中调用当前类的静态变量时可以省略类名。有默认值。默认值 : 整数 默认是 0 , 小数 默认 0.0 , 布尔型 默认 false , 字符型 默认 \u0000 , 引用类型 默认 null
成员变量
在类体中,没有使用Static声明的变量,和方法是平级,并且成员变量需要 对象引用.成员变量 才能使用。有默认值。默认值 : 整数 默认是 0 , 小数 默认 0.0 , 布尔型 默认 false , 字符型 默认 \u0000 , 引用类型 默认 null
声明变量:
数据类型 变量名称;
变量赋值:
变量名称 = 数据值;
也可以边声明边赋值:
数据类型 变量名称=数据值;
注意事项
1.如果创建多个变量,那么变量之间不可以重复
2.对于flloat和long类型来说,字母后缀F和L不要丢掉
3.如果使用byte或者short类型的变量,那么右侧的数值不能超过左侧类型的范围
4.对于局部变量来说没有进行赋值的变量,不能直接使用,一定要赋值后,才能使用
5.变量使用不能超过作用域的范围。
拓展:
全局变量:允许在类外创建变量,和类同级别,所有类都可以直接访问这个变量,不需要二次引用
所谓二次引用,就是指 没有使用 . 操作符 xxx.xxx
而在java中类之外是不允许写变量的,但是可以把一个变量的访问权限设置为public,然后通过类名进行引用调用即可
全局的缺点 就是命名冲突问题
数据类型转换
自动类型转换
代码不需要特殊处理,自动完成
byte->short->int->long->float->double
char->int->long->float->double
强制类型转换
范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据
会损失精度
注意事项:
1.整数保存二进制,而浮点数是科学计数法,虽然long32位但是其表示的范围比float小
2.byte/short/char这三种类型在运算的时候,都首先被提升成为int类型,然后再计算,所以byte、short、char、int四种类型中任意运算,结果都为int类型
3.boolean 类型不能发生数据类型转换
4.不同数据类型运算时,运算结果是精度最大的类型
运算符
小数相加可能是近似值,0.1转换成二进制只有近似值,不要判断小数相等。
加法
1.对于数值来说,普通的加法
2.对于字符char类型来说,在计算之前,char会被提升为int,然后再计算,char类型字符,和int类型数字,之间的关系对照表:ASCII,Unicode。
3.对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作,任何数据类型和字符串进行连接的时候,结果都会变成字符串。
减法
普通的减法,平平无奇
乘法和除法
同样平平无奇
自增自减
++num 先自增
num++ 后自增,进行复杂运算时需要占用两个空间。
自增自减后变量的值会发生变化
赋值运算
普通赋值
“=”
复合赋值
a+=3 a=a+3
b-=4 b=b-4
c*=5 c=c*5
d/=6 d=d/6
e%=7 e=e%7
关系运算符
"=="等于,基本类型比较值,引用类型比较地址;
"!="不等于
“<”
“>”
“<=”
“>=”
位运算
& 位与 数字(按位与)
| 位或 数字(按位或)
! 位非
^ 位异或
~ 按位非
“>>” 右移 考虑符号位 正数左边补零负数左边补一
<< 左移 考虑符号位 正数右边补零负数右边补零
“>>>” 右移运算符,不考虑符号数,符号位之前补零只补零
逻辑运算符
逻辑运算符只能用于boolean值
&& 与 前半部分不满足条件,后边部分不再执行
|| 或 前半部分满足条件,后半部分也不执行
!非
三元运算符
数据类型 变量名称 = 条件判断 ?表达式A :表达式B;
首先判断条件是否成立
如果成立为true 将表达式A赋值给变量
如果不成立为false 将表达式B赋值给变量
注意事项
1.必须同时保证表达式A和表达式B都符合左侧的数据类型
2.结果必须被使用