常量与变量

一、常量(不能改变的数值)
1.整数常量(byte short int long
2.小数常量:(float double )
3.布尔型常量:只有ture,false
4.字符常量:单引号,只能有一个字符(char)
5字符串常量:双引号(String)
6.null常量:
7.为什么要定义不同的数据类型?
数据取值范围的不同
为了在内存中更好的分配所占用的空间大小
8.数据类型之间的相互转化:
java数据类型之间是可以相互转化的
当从大字节变为小字节时,java的内存中存在数据上的丢失,及精度的缺失
当从小字节变为大字节时,由于java在内存中是在小字节的前面加了N个零,从而使系统变为大字节,所以就没有精度的缺失, 但换来的是内存的增大,但是在当今硬件过剩的时代,这点浪费也是可以的。
9.java代码的运行,严格遵从从上到下,从左到右的执行顺序,所以有时候即使是同样的代码,但是代码前后的顺序不一样,运行出来的结果也不一样。//特别注意一行代码的数据类型是否一样。

二、变量
1.概念:在一定范围内可以改变的量。(内存中的一个存储区域该区域有自己的名称(变量名)和类型(数据类型)该区域的数据可以在同一类型范围内不断变化)
2.变量类型:定义数据类型(字符、字符串、整数、小数等)
3.变量名称:在一定范围内(一对{}中)是唯一的。
4.变量值
5.申明变量: 定义时赋值:变量类型 变量名称=变量值; byte by = 127
使用前赋值: byte by2
by2 =1
6.作用范围:在一对{}中
7.定义时必须赋初始化值
8.变量名可以多次赋值,不可以多次被定义。
9.基本数据类型

整数类型:
byte 1字节 -128~127
short 2字节 -2^15~ 2^15-1
int 4字节 -2^31~2^31-1
long 8字节 -2^63~2^63-1
小数类型:
float: 4字节 -3.403E38~3.403E38
double:8字节 -1.798E308~1.798E308
整数默认:int ,小数默认:double
三、变量的申明、测试和使用
1. byte
8个字节,每个字节有0和1两种状态,故byte包含2^8=256个数
2.short(65536)
3.int(byte short char 可自动转换为int 类型)
4.long:数值过大时,在数据后加L
5.char
6.float(小数默认的为double类型,要转换为float就要在数值后面加F)
314e2 = 314*10^2 = 314 00 314e-2 = 314*10^-2 = 3.14
7.double
浮点数存在舍入误差,好多数不能精确表示,如果需要进行不产生舍入误差的精确数字计算,使用BigDecimal类。
整数过大用BigInteger类
8.可赋值多次,但只可申明一次
四、运算
1.java中参与运算的数据必须保持类型一致
2.隐式转换:小数据转大数据(.当byte(1字节)类型与int(4字节) 类型相加时,计算机将byte类型自动转换为int/类型,并相加。)
3.强制转换:大数据转小数据(前头加小数据类型)
格式:(转换类型)被转换数据

int是整数类型,除以1000后取整数4,都是先乘以1.0后,可以转换为小数类型,除以1000后取4.325.
4.boolean不能参与运算。
5.char能参与运算,如果输出字符,则打印出字符。如果字符参与运算,计算机会使用字符对应的ASCII码表里的数值进行计算。
用类型强制转换的方式可以将参与运算的字符转换为数字。
6.字符串运算:
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
五、算数运算符( 就是对常量和变量进行操作的符号。 )

1./ 取商, % 取余
2.int 类型的除法(/)会损失小数,为了避免损失,可以强制转换为double类型的(*1.0)。

3.用逗号隔开可同时申明多个变量 int a = 1,b=3;
4.++ a++先用再加,++a 先加再用
5.-- a--先用再减,--a 先减再用
六、赋值运算符
1. += 是将左右便的值相加赋值给左边 (有自动强制类型转换的功能)
2.强制转换:如果数据超出被强制转换的类型范围,系统会报错

七、比较运算符(左右都是数字)
返回结果为boolean类型

八、逻辑运算符(左右两边是boolean类型)
1.& 有假则假
2.| 有真则真
3.^ 两边相同结果假,两边不同结果真。
4.&& 短路功能:左边为真,右边才运算。左边为假,右边不运算,直接返回假值。
5.|| 左边为真,右边不需要运算,直接返回真。左边为假,才会根据右边真假返回结果

九、条件运算符
1.格式(条件运算符)?表达式1:表达式2;
如果条件为ture,执行表达式1
如果条件为false,执行表达式2
2.嵌套条件运算:

十、位运算符(左右两边是数字)

1.直接对二进制进行运算,0为假,1为真。
2.& 有0 则0.
3.| 有1 则1.
4.^ 相同取0,不同取1.(任何相同二进制位进行 ^ 运算,结果是0;不相同二进制位 ^ 运算结果是1。)
5.<< 数据*基数^左移次数(空位补0,被移除的高位丢弃)
6.>> 数据/基数^右移次数 (被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,最高位1。)
7.>>>无符号右移(被移位二进制最高位无论是0或者是1,空缺位都用0补。)

十一、原码 反码 补码
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
* 通过一个字节,也就是8个二进制位表示+7和-7
* 0(符号位) 0000111
* 1(符号位) 0000111
反码: 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码: 正数的补码与其原码相同;负数的补码是在其反码的末位加1。
Java中的默认转换规则:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值