javaSE(基础一) 变量
常量
字面值常量
在java程序执行过程中,其值不会发生改变的量就是常量
booleal常量:true, false 空常量:null
自定义常量
被final 关键字修饰的变量为常量
注意: 符合标识符的命名规范,驼峰命名原则 常量全部大写,多个单词之间 _ 连接
变量
变量: 可变的量
在程序执行过程中,其值可以发生改变的量
相当于造盒子 盒子就是变量 盒子的名字是变量名 盒子中存的内容 是变量的值
变量的作用: 存储数据 存储单个数据
变量就是: 在内存中开辟一个块内存空间,用来存储对应类型的数据
语法:
数据类型 变量名 = 变量值; --声明的同时赋值
数据类型 变量名 ; --先声明一个变量
变量名 = 赋值; --后赋值
* 等号是java中唯一一个自右向左运算的符号
同时声明多个变量 int a,b,c;
定义变量的时候需要关注的点:
1.数据类型
2.变量名严格满足标识符的规则|规范
3.数据值 与 数据类型保持一致
4.作用域 : 能使用的范围 -->{}
变量的分类:
1.局部变量 : 定义在{}中的变量,方法,语句块..
必须要先声明后赋值才能使用
2.成员变量 : 类中方法外
只声明不赋值存在默认值: 整数->0 小数 ->0.0 字符->' ' 布尔->false 字符串->null
数据类型
java是强类型语言
基本数据类型
基本数据类型: 4类8种
整型
类型名字 表现形式 大小 范围
字节型 byte 1byte = 8bit [-128,127]
短整型 short 2byte = 16bit [-32768,32767] +-3万
***整型 int 4byte = 32bit +-21亿
长整型 long 8byte = 64bit 非常大
在java中整数的字面常量值默认int类型
如果表示long类型的字面常量值的数据需要在数据的后面添加L|l 推荐使用大写
如果为byte或者short类型赋值的时候,如果在其范围内的常量就可以直接赋值
浮点型
单精度 float 4个字节 能够表示小数点后7位左右
***双精度 double 8个字节 能够表示小数点后16位左右
小数字面常量值在 java中默认数据类型为double
float类型 的数据值需要在数据的后面添加f|F
浮点类型在进行运算的时候不精确,转换成二进制时存在数据丢失
字符型
字符型 char 2byte
字符型的 表现形式:
1)'单个字符'表示字符型数据
2)通过0~65535之间的整数表示任意一个字符 对应Unicode字符集 一共65536个 去ASCII表中查询
布尔型
boolean 布尔类型 1bit true|false
引用数据类型
类 数组 接口
数值型的表现形式
整型:
二进制 : 由0,1组成 添加0B|0b开头 java7中新增二进制整数表现
八进制 : 由0~7组成 添加0开头
十进制 : 由0~9组成 默认表示
十六进制 : 由09,af任意组合而成 不区分大小写 添加0x|0X开头
转换: (了解)
其他进制数据转为十进制:
从数据的最后一位开始,当前位置的数据*当前的进制数(次方从0开始,每次+1),继续+向左每一位置的数据*进制(...) ,最终结果为十进制表示数据
十进制转为其他进制:
不停的使用当前数据除以要转为要转为的进制数,得到余数,从下往上,就是其它进制表示的数据
浮点型
1) 如果整数位为0,零可以省略 0.15->.15
2) 科学计数法 e->10
1.23E3 ->1.23*10^3 =1230
1.23E-3 ->1.23/10^3 =0.00123
数据类型转换
自动类型转换
基本数据类型由小到大顺序是:byte–>short–>int–>long–>float–>double
小范围数据类型自动转换为大范围数据类型
java:整型默认为int, 浮点型默认为double.
强制类型转换
语法:
小范围数据类型 变量名 = (转换为变量名对应的数据类型)大范围数据值;
浮点型转换为整型数据精度会发生损失,小数点后面的数据会丢失.
boolean不参与类型转换,如果需要将布尔类型转换成数字形式该怎么办呢?
采用三目运算符:
boolean a = true;
int b = a?1:0;
转义字符
有一些字符,在java中具有特殊含义,如果想要这些字符只代表字符本身,可以使用转义字符 "
转义字符从\开始 +要转义的字符
\b 退格 光标往前回一格 ,删除一个内容
* \t 制表符 一个制表符位代表8个空格 如果前面的内容满制表符位的整数倍,重新开辟一个制表符位,如果不满那就布满一整个制表符位
一个字母,数字,符号占一个空格位,一个汉字占2个空格位
* \n 换行
\r 光标回到行首
\r之后如果没有内容,源字符串内容不受影响,如果\r后面存在字符,之前清空