JAVA基础复习之变量与相关运算


概述:java中表示一个值可以用变量来表示,也可以用常量来表示,这里主要就是对这二者的总结。

常量:常量,顾名思义就是值为固定的量,这与数学中的常数相似,在java中分为以下几种常量:

1.整型常量:程序中使用的所有整数;

2.小数型常量:程序中使用的所有的小数;

3.字符型常量:程序中使用的字符,用单引号表示的单个字母数字特殊符号等;

4.字符串型常量:由双引号代表的多个字符表示的字符序列;

5.布尔常量:false和true;

6.空常量:null;

变量:变量就是值可以改变的量和数学中的函数变量类似,JAVA中的变量用来保存数据,当一个变量声明是JVM会在栈内存中分出对应大小的空间用来存储变量。

变量的三要素:数据类型,变量名,变量值;

变量遵循先声明再赋值最后使用的规则;

数据类型分为引用类型和基本类型,引用类型主要是由:数组,接口和类这几种组成;

数据的基本类型有8种,这8种可以分为4类:

1.整型:byte(存储空间为1字节,存储范围:-128~127),short(存储空间为2字节,存储范围:-32768~32767),int(存储空间为4字节,存储范围:-2.1*1010~2.1*1010),long(存储空间为8字节);

2.浮点型:flout(存储空间为4字节),double(存储空间为8字节);

3.字符型:char(存储空间为2字节);

4.布尔型:boolean;

1Byte(字节)= 8bit(位)

数据类型间的转换:

1.隐式转换/自动类型装换:把小的类型赋值给大的类型时会发生类型的自动转换;一个整型的可以直接赋值给一个非整型的变量,当这个整型的数比较大时非整型的变量比较小可能无法保证转换后的精度;把一个char类型的值赋值给int类型的变量时会发生自动类型的转换;

下图是在基本类型中类型自动转换的关系图:


2.强制类型转换:当需要把一个大类型转换为小类型的时候直接赋值的方式会引发错误,这时候需要使用强制类型转换;

jvm在编辑的时候会检查变量和赋值的类型是否一致或兼容,如果无法满足则会报出异常。

在利用变量进行计算时需要注意0的问题,当一个整数/0时会报出算数错误的异常;当小数/0或者是一个非0的数/0时结果是无限大;而0/0.0会得到NAN。

取模运算:%    在取模运算中如果有负号,结果的正负看的是被除数,被除数为正结果就为正,被除数为负结果就为负;

自增/减运算: ++/--    自增/减的运算重点是看符号在变量的哪边,当符号位于变量之后时,代表先使用变量进行运算,再实现变量的自增/减;当符号位于变量之前时,会先对变量进行自增/减,然后再进行其他运算。

public class Test {
	public static void main(String[] args) throws Exception{
		int i = 1;
		i = i++;
		System.out.println(i);
	}
}

该程序结果为1,并不是2,这与Java运算中的先后顺序有关,++的优先级是大于=的,并且后++表达式的结果是一个值而不是一个变量。可以这样来理解,后++将自己的值先存储起来,然后对变量进行++,之后再取出值进行赋值操作,这就导致i的值被置为了1。

位运算:位运算符有:&,|,^,>>,<<,>>>,~

位运算操作的是数据都是整数,并且都是数据的补码;

原码:32位的二进制表示的数,可以转化为十进制,最高位是符号位,正数的原码最高位为0,负数的原码最高位为1;

反码:正数的反码和原码一致,负数的原码保持最高位不变,其余各位按位取反就好;

补码:正数的补码与原码一致,负数的补码就是在其反码的基础上加1;

注:正数的原码,反码,补码三者相等,负数的原,反,补满足以上规则。

取反运算:~,将操作数据转化为二进制,所有位按位取反

规则: ~i = -i - 1

三目运算:逻辑值?表达式1 : 表达式2

当逻辑值为真时选择表达式1的值,逻辑值为假时选择表达式2的值

猜你喜欢

转载自blog.csdn.net/qq_41606584/article/details/80330692