一.变量
变量:在程序的执行过程中,其值发生改变的量!
*
* 变量的三要素:
* 1):数据类型2)变量名;3)初始化值
*
* java变量的数据类型的分类:
* 数值类型
* 引用类型(面向对象部分讲解)
*
* 数值类型:4类8种
* 整数类型: 占用字节数 范围
* 字节类型:byte 1 -128~127(考点)
* 短整型:short 2
* 整数类型(默认):int 4
* 长整型:long 8
*
* 浮点类型:默认类型:double类型
* 单精度:float 4
* 双精度double 8
* 字符类型:
* char类型: 2
* 布尔类型:boolean 1
* true/flase
*
*
*
* 注意事项:
* 定义long类型,必须在值末尾加上L或者l,推荐还用L,因为整数类型默认int类型
* 定义一个float类型,由于浮点类型默认是double,所以在定义float类型的时候,要在后面加上F/f,推荐使用F
*
*
* 数值类型:4类8种:默认值
* 整数类型:默认int类型:默认值0
* 浮点类型:默认类型:double:默认值0.0
* //字符类型:默认值:单引号:斜杠u000
* 布尔类型:默认值:false
*
* */
public class DataTypeDemo {
public static void main(String[] args) {
//测试4类8种数据类型
//1)字节类型
byte b = 10 ;
// byte b = 20 ;
b = 20 ;
System.out.println(b);
System.out.println("----------------");
//2)短整型
short s = 100 ;
System.out.println(s);
//3)int类型:整数类型:默认int类型
int a = 10000 ;
System.out.println(a);
//int i = 1000000000000;//int类型已经超出范围:
long L = 1000000000000L;
System.out.println(L);
System.out.println("----------------");
//浮点类型:默认double
float f = 12.34F ;
System.out.println(f);
double b2 = 12.34 ;
System.out.println(b2);
System.out.println("-----------------");
//字符类型
char ch = 'A' ;
System.out.println(ch);
System.out.println("-----------------");
//布尔类型:一般情况:实际开发中,使用布尔类:判断/做一些业务逻辑
boolean flag = true ;//flag:旗帜,标记
System.out.println(flag);
}
}
二.比较的运算符:
==,!=,>=,<=,>,<比较运算符中的表达式,无论是简单的表达式还是复杂的表达式,都是boolean类型;
注意事项:
==不能写成=
public class OperatorDemo {
public static void main(String[] args) {
//定义变量
int x = 3 ;
int y = 4 ;
int z = 3 ;
System.out.println((x>y));
System.out.println((x<y));
System.out.println((x>=y));
System.out.println((x<=y));
System.out.println("------------");
int m = 10 ;
int n = 20 ;
boolean flag = (m==n) ;//
// boolean flag2 = (m=n);//==不能写成=
System.out.println(flag);
}
}
三.赋值运算符;
/*
* 赋值运算符:
* 基本的赋值运算符:=
* int a = 10 ;把10赋值给一个int类型的变量a
*
* 扩展的赋值运算符:
* +=,-=,*=,/=,%=
* 把符号左边的数据和右边的数据相加,在赋值给左边
* */
public class OperatorDemo {
public static void main(String[] args) {
//定义变量
int a = 10 ;
int b = 20 ;
System.out.println("a:"+a+",b:"+b);
//扩展的赋值运算符
int y = 10 ;
y += 20 ;//相当于:y = y + 20 ;
System.out.println(y);
}
}
四.逻辑运算符;
/*
* 逻辑运算符链接的表达式无论简单还是复杂也是一个boolean类型
* 简单的表达式:x+y
* 基本的逻辑运算符:
* 逻辑单&:并列的关系
* 特点:有false,则false
* 逻辑单|
* 特点:有true,则true
* 逻辑异或:^
* 特点:相同则为false,不同则为true
* 简单记:男男,女女,男女,女男
* 非!:非false,则true,非true则false,
* 偶数个!,是它本身!
*
* 扩展的逻辑运算符:
* 开发中常用:逻辑双&&
* 逻辑双||:
* 开发中常用:逻辑双与&&
* 逻辑双或||
*
* 面试题:
* 逻辑双与&&和逻辑单与&的区别?
*
* 共同特点:都是表示并列关系
* 逻辑双与&&:特点:连接的表达式,如果&&前面的表达式如果是false,后面的表达式不执行,具有短路效果
* 逻辑双或||,如果前面的表达式是true,后面不执行!
五.三元运算符(三目运算符)
*
* (表达式) ? true的结果: false的结果;
*
* 执行流程:
* 如果这个表达式成立:执行true的结果
* 如果表达式不成立,执行false的结果
六.算术运算符:
* 基本的算术运算符:+ ,-,*,/,%(取模)
*
* 注意:/:取整,如果就要输出小数,在分母或者分子上乘以1.0(浮点类型)得到一个结果就是小数类型
* %:取的是余数..
七.位运算符:了解部分:计算机底层通过补码进行计算
* 位&,位|,位异或^(重点),~:反码
*
* 位与&
* 位或|
* 位异或:^
+的用法:
* 作为拼接符号
* 作为运算符
* 作为表示一个正整数
*
* 算术运算符扩展的运算符:(用在流程控制语句中的:循环语句(for循环))
* ++
* --
* 单独使用:不管++在前面还是在后面,都是自增1或者自减1
* 参与运算使用:
* ++或者--在前面:首先先自增1或者自减1,然后在进行计算(赋值)
* ++或者--在后面:首先先运算(赋值),然后在自增1或者自减1;
* 位异或的特点:(重点)
* 一个数据被另一个数据位异或两次,结果是其本身!
* */
public class OperatorDemo2 {
public static void main(String[] args) {
//定义两个变量
int a = 10;
int b = 20 ;
System.out.println(a ^ b ^ a);
System.out.println(a ^ b ^ b);
}
}
位运算符的另一些用:有符号的数据表示
* <<:最高符号位符号位丢弃掉,在右边补齐0(左移动)
* >>:最高符号位是1,左边补齐1,最高符号位如果是0,左边补齐0
* >>>:无符号右移,无论最高符号位是1还是0,左边补齐0
*
* 特点:把<<符号左边的数据乘以2的移动次幂:
* 特点:把>>符号左边的数据除以2的移动次幂