原码 反码 补码
原码
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码
正数的补码与其原码相同;负数的补码是在其反码的末位加1。
变量
在程序执行的过程中,在某个范围内其值可以发生改变的量,实际上就是内存中的一小块区域
定义变量的目的就是为了不断的存放同一种类型的常量方便重复使用
定义格式: 数据类型 变量名 = 变量值 ;
例如:int a=1;
注意事项
-变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
-没有初始化值不能直接使用
-可以定义多个,但是不建议
数据类型
Java中数据类型的分类
(1): 基本数据类型
(2): 引用数据类型(后面讲解): 数组 , 类 , 接口
基本数据类型
数值型:
整数型 | 字节数 | 范围 |
---|---|---|
byte | 1(8bit) | -128 ~ 127 |
short | 2(16bit) | -2^15 ~ 2^15 - 1 |
int | 4(32bit) | -2^31 ~ 2^31 - 1 |
long | 8(64bit) | -2^63 ~ 2^63 - 1 |
浮点数 | ||
float | 4(32bit) | -3.40310^38 ~ 3.40310^38 |
double | 8(64bit) | -1.79810^308 ~ 1.79810^308 |
字符型 char 2(16bit) 0 ~ 2^16 - 1 = 65535
布尔型 boolean 1
整数默认是int类型的 , 浮点数默认是 double类型的
数据类型转换
强制转换
例如:在编写
byte a=1
byte b=a+1;
的时候会报错,需要进行强制转换
强制转换的格式
目标数据类型 变量名=(目标数据类型)(被转换的数据);
以上的例子继续举例,改写成 byte b=(byte)(a+1);
字符和字符串参与运算
字符参与运算的时候,会以ASCII码表上对应的数值参与运算
例如:System.out.println(‘a’ + 1);
结果为98,a在ASCII码表上对应的数值为97
+在有字符串参与中被称为字符串连接符
System.out.println(“hello” + ‘a’ + 1);
结果为helloa1
算数运算符
对常量和变量进行操作的符号称为运算符
运算符的分类:
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三目运算符
算数运算符主要有:+ , - , * , / , % , ++ , –
注意事项:
a:整数相除只能得到整数。如果想得到小数,请使用浮点数
b:/获取的是除法操作的商,%获取的是除法操作的余数
%运算结果的符号,取决于参与运算是左边的符号
++,–运算符的作用
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,再自增或者自减。
A:案例演示
请分别计算出a,b,c的值?
int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c--;
a=9
b=10
c=8
B:案例演示
请分别计算出x,y的值?
int x = 4;
int y = (x++) + (++x) + (x*10);
x=6 , y=70
赋值运算符的基本用法
赋值运算符:=, +=,-=,=,/=,%=
基本的赋值运算符:=
把=右边的数据赋值给左边。
扩展的赋值运算符:+=,-=,=,/=,%=
例如:+= 把左边和右边做加法,然后赋值给左边。
关系运算符的基本用法及其注意事项
关系运算符:== ,!= , < , > , <= , >= , instanceof
==等于,!=不等于,<小于, >大于 , <= 小于等于, >= 大于等于
注意事项:
无论你的操作是简单还是复杂,结果是boolean类型。
“==“不能写成”=”。
逻辑运算符的基本用法
逻辑运算符有
&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
-
&逻辑与:有false则false。
-
|逻辑或:有true则true。
-
^逻辑异或:相同为false,不同为true。
举例:情侣关系。男男,男女,女男,女女
-
!逻辑非:非false则true,非true则false。 特点:偶数个不改变本身。
注意事项:
a:逻辑运算符一般用于连接boolean类型的表达式或者值。
在Java中我们要表示一个数大于3并且小于6 ,不可以写成3<x<6,应该写成 x>3 & x<6 。
b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
算术表达式:a + b
关系表达式:a == b
&&和&的区别
最终结果一样,但是&&具有短路效果。左边是false,右边不执行。
||与|同理
位运算符的基本用法
位运算符有哪些
&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0
注意事项:位运算是直接对二进制补码进行运算。
^的特点:一个数据被另一个数据位异或两次,该数本身不变。
<<:左移 空位补0,被移除的高位丢弃。
-
:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。
*>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。
三元运算符的基本用法
三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
例如:int a=(10>20)?30:50; a=50
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;