Java运算符

一、变量

1.1 定义

  • 内存中开辟的一片空间,需要执行数据的类型

1.2 定义变量

数据类型 变量名称 = 变量值;

int num = 99;

============

int num;

... ...

num = 99;

==============

int a=10,b=20,c;

二、数据类型

  • 整型
    • 字节
      • byte
    • 短整型
      • short
    • 整型
      • int
    • 长整型
      • long
  • 浮点型
    • 单精度
      • float
    • 双精度
      • double
  • 字符型
    • char
  • 布尔型
    • boolean
类型 type size round
字节型 byte 1 -128~127
短整型 short 2 -215~215-1
整型 int 4 -231~231-1
长整型 long 8 -263~263-1
单精度 float 4 -2128~2128
双精度 double 8 -21024~21024
字符型 char 2 0~65535
布尔型 boolean 1 true false
class Demo03 {
	public static void main(String[] args) {
		/**
		 * 
		 java基本数据类型
			 整数
				字节型	byte	1	-128--127		-2^7--2^7-1
				短整型	short	2	-32768--32767	-2^15--2^15-1
				整型	int		4	-2^31  -- 2^31-1
				长整型	long	8	-2^63---2^63-1

			 小数--浮点型
				单精度	float	4
				双精度	double	8

			 字符型
				char			2
			 布尔型
				boolean			1
		  引用数据类型
			String
			System
			String[]
			Object
		 * 
		 */

		byte b = -110;
		System.out.println("byte b = " + b);

		short s = 32767;
		System.out.println("short s = " + s);

		int i = 2147483647;
		System.out.println("int i = " + i);

		long l = 21474836470L;
		System.out.println("long l = " + l);

		double d = 3.141592353589793;
		System.out.println("double d = " + d);
		
		// java中的小数默认的类型是double,定义float类型变量的时候,需要在值的后面加上F
		float f = 3.141592353589793F;
		System.out.println("float f = " + f);
	
		// char类型数据的值必须是一个字符,不能多也不能少
		char c = '\'';
		System.out.println("char c = " + c);

		boolean bb = true;
		System.out.println("boolean bb = " + bb);
	}
}

三、ASCII

3.1 定义

  • 美国标准信息交换码
  • 定义了128个基本的字符

3.2 Unicode

  • 在ASCII码表的而基础上进行了扩展,包含了各国的基本字符
  • 被称为万国码

四、转义字符

4.1 定义

  • 转变字符原有的含义
  • \字符
转义字符 含义
\t 制表符tab
\n 换行newLine
\\ 斜线
\" 单个双引号

五、数据类型转换

5.1 自动类型转换

  • 向上转型
  • 范围小的转换成范围大的
class Demo06 {
	public static void main(String[] args) {
		// 定义变量b,赋值110
		byte b = 110;

		// 定义变量c,赋值变量b,执行的占用2个字节的b中的110
		short c = b;
		System.out.println("short c = " + c);

		short cc = 7985;
		byte bb = (byte)cc;
		// 0000 0000
		// 0000 0000 0000 0000
		// 0011 0001
		System.out.println("byte bb = " + bb);
	}
}

5.2 强制类型转换

  • 向下转型
  • 范围大的转换成范围小的
class Demo07 {
	public static void main(String[] args) {
		// 强转无损失
		int i = 110;
		byte b = (byte)i;
		System.out.println("byte b = " + b);

		// 强转有损失
		int ii = 7985;
		byte bb = (byte)ii;
		System.out.println("byte bb = " + bb);

		// 小数转整数
		double d = 3.9;
		int id = (int)d;
		System.out.println("int id = " + id);

		// 字符和数字转换
		int ic = 65;
		char c = (char)ic;
		System.out.println("char c = " + c);
	}
}

六、算术运算符

名称 符号 案例
+ a+b
- a-b
× a×b
/ a/b
取余数 % a%b
自增 ++ a++
自减 -- a--
class Demo08 {
	public static void main(String[] args) {
		int a = 15;
		int b = 20;
		System.out.println("Hello World!");

		System.out.println("a + b = " + (a + b));
		System.out.println("a - b = " + (a - b));
		System.out.println("a * b = " + (a * b));
		System.out.println("a / b = " + (a / b));
		System.out.println("10.0 / 3 = " + (10.0 / 3));
		// 比如10除以3,结果是3,余数是1,取模就是取余数
		System.out.println("a % b = " + (a % b));
		System.out.println("18.4 % 4 = " + (18.4 % 4));
		// 字符串的拼接
		System.out.println("a + b = " + a + b + true);

		
	}
}

class Demo09 {
	public static void main(String[] args) {
		int a = 15;
		int b = 20;
		// ++   --难点
		a++;
		System.out.println("a = " + a);

		++b;
		System.out.println("b = " + b);

		int c = 15;
		int d = 20;

		// ++在后,先把自己的值赋给e,再自增
		int e = c++;  // c++ ===  c = c+1

		// ++在前,先自增,再把自己的值赋给e
		int f = ++d;
		System.out.println("c = " + c);
		System.out.println("d = " + d);
		System.out.println("e = " + e);
		System.out.println("f = " + f);
	}
}

七、赋值运算符

名称 符号 案例
赋值 =
加法赋值 +=
减法赋值 -=
乘法赋值 *=
除法赋值 /=
取余赋值 %=
class Demo10 {
	public static void main(String[] args) {
		// 赋值运算符
		int a = 10;
		int b = 15;

		a+=b;	// a = a + b
		System.out.println("a += b === " + a);

		a-=b;	// a = a - b
		System.out.println("a -= b === " + a);

		a*=b;	// a = a * b
		System.out.println("a *= b === " + a);

		a/=b;	// a = a / b
		System.out.println("a /= b === " + a);

		a%=b;	// a = a % b
		System.out.println("a %= b === " + a);
	}
}

八、关系运算符

名称 符号 案例
大于 >
小于 <
等于 ==
不等于 !=
大于等于 >=
小于等于 <=
class Demo11 {
	public static void main(String[] args) {
		// 关系运算符====比较运算符
		int a = 10;
		int b = 15;
		System.out.println("a > b ? " + (a > b));
		System.out.println("a < b ? " + (a < b));
		System.out.println("a == b ? " + (a == b));
		System.out.println("a != b ? " + (a != b));
		System.out.println("a >= b ? " + (a >= b));
		System.out.println("a <= b ? " + (a <= b));
	}
}

九、逻辑运算符

名称 符号 案例
逻辑与 &
短路与 &&
逻辑或 |
短路或 ||
取反 !
class Demo12 {
	public static void main(String[] args) {
		/**
			性别不同
			并且年龄符合条件
			
			逻辑与  只有两边的条件都是true,结果才是true
			
			true	&	true	===	true
			true	&	false	===	false
			false	&	true	===	false
			false	&	false	===	fasle
			遇到false结果就是false
			&&,短路与,只要遇到一个false,就返回false,后面的内容将不再执行
			yAge >= 22 & xAge >= 20

		*/

		int yAge = 22;
		int xAge = 20;
		boolean result = yAge >= 22 & xAge >= 20;
		System.out.println("符合办证的条件吗?" + result);
		
		// 没有车票 或者 有没有违禁物品
		int ticket = 1;
		boolean isSafe = false;
		// 逻辑或,有一个条件是true,结果就是true

		/*
			true	|	true	===	true
			true	|	false	===	true
			false	|	true	===	true
			false	|	fales	===	false
			遇到true,结果就是true

			||	短路或,只要遇到一个true,后面的内容将不再执行,直接返回true
		*/
		result = (ticket < 1) | (isSafe == false);

		System.out.println("会不会无法进站 ?" + result);

		System.out.println("!true == " + (!true));
		System.out.println("!false == " + (!false));
	}
}

十、三元运算符(三元表达式)

判断语句/布尔值 ? 条件成立的时候返回的结果 : 条件不成立返回的结果;

class Demo13 {
	public static void main(String[] args) {
		int ticket = 0;
		String result = ticket >= 1 ? "检票成功,请经过安检" : "请先去购买车票";
		System.out.println(result);

		int a = 10;
		int b = 30;
		int max = a > b ? a : b;
		System.out.println("比较大的数字是:" + max);

		// 不引入第三个变量,交换a和b的值---作业
		int a0 = 15;
		int b0 = 20;
		// 35
		int temp = a0 + b0;
		a0 = temp - a0;
		b0 = temp - b0;

	}
}

十一、键盘录入--人机交互

11.1 定义

  • 获取用户输入的内容

  • 使用到Scanner

11.1 使用过程

1、导入Scanner

2、创建Scanner对象

3、提示输入内容

4、获取对应类型的内容

5、使用获取到的内容

// import java.util.Scanner;
import java.util.*;
class Demo15 {
	public static void main(String[] args) {
		/*
			1、导入Scanner
			2、创建Scanner的对象
			3、提示用户输入name
			4、获取用户输入的name
			5、提示用户输入age
			6、获取用户输入的age
			7、输出用户输入的name和age
		*/
		// 2、创建Scanner的对象
		Scanner sc = new Scanner(System.in);

		// 3、提示用户输入name
		System.out.println("请输入名字:");
		// 4、获取用户输入的name
		String name = sc.nextLine();

		// 5、提示用户输入age
		System.out.println("请输入年龄:");
		// 6、获取用户输入的age
		int age = sc.nextInt();

		// 7、输出用户输入的name和age
		System.out.println("我的名字是:" + name + ",今年:" + age);
	}
}

十二、进制

  • 二进制
    • 0b
  • 八进制
    • 0
  • 十进制
  • 十六进制
    • 0x
class Demo16 {
	public static void main(String[] args) {
		System.out.println("Hello World!");
		/*
			1Byte
			0000 0000
			1111 1111

			0011 1100


			123   为什么是一百二十三
			100 + 20 + 3  为什么是这样

			3 = 3 * 1 = 3 * 10^(1-1)
			20 = 2 * 10 = 2 * 10^(2-1)
			100 = 1 * 100 = 1 * 10^(3-1) 


			0011 1100
			0 * 2^0 = 0 * 1 = 0
			0 * 2^1 = 0 * 2 = 0
			1 * 2^2 = 1 * 4 = 4
			1 * 2^3 = 1 * 8 = 8
			
			1 * 2^4 = 1 * 16 = 16
			1 * 2^5 = 1 * 32 = 32
			========================
			4 + 8 + 16 + 32 == 60

			2684 0000 0000

			000	==	0
			111	==	7

			一个八进制位范围是0--7

			00 111 100
			0	7	4

			0011 1100
				3	C

			二进制快速转换成十进制
			1	1	1	1	1	1	1	1
			128	64	32	16	8	4	2	1


			0	0	32	0	8	0	2	0
			0	0	1	0	1	0	1	0


			十进制快速转换成二进制===》计算器===》除积倒取余

		*/
	}
}
posted @ 2021-03-01 15:30  x_kzZ  阅读(135)  评论(0)    收藏  举报