Java基础笔记002
今日内容1. 【理解】数据类型转换 2. 【掌握】五种运算符类型 3. 【掌握】数据录入 4. 【掌握】流程控制语句-IF语句一. 类型转换
- 1、自动类型转换
从范围小的数据类型转换到数据范围大的数据类型时类型自动转换。
- 2、强制类型转换
从范围大的数据类型转换到数据表示范围小的数据类型时使用强制转换。
//整数类型转换为字符类型 char ch = (char)95;
-
int类型强制转换为byte
当转换类型int变量的值超出byte范围(-128 ~ 127)时,会发生溢出,转换为后值的规律:
当int变量为正时,转换后的值 = int变量值 - 256(2的8次方);
当int变量为负时,转换后的值 = int变量值 + 256; -
byte、short、char类型运算
//举例: byte a = 20 , b = 30; byte c = a+b; //改行会报错! byte e = a+=b; //改行不会报错! byte d = 20 + 30;
原因:由于Java语言机制中,byte、short、char三种数据类型的变量在参与运算时会自动变为int类型,但赋值运算符参与的运算除外,因为赋值运算符会自动进行强制转换。
boolean数据类型不能和其他数据进行转换!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5kwJmOOb-1633927977077)(assets/image-20201031231735168.png)]
-
- 1、定义:
**运算符:**对常量或变量进行操作的符号。
**表达式:**用运算符将常量或变量连接起来的符合Java语法的式子。 - 2、算术运算符
-
包括: + - * / %
-
字符的char运算
//字符的加减乘除预算都是对字符的编码值进行的 char c1 = 'a'; //ASCII码97 char c2 = 'b'; //ASCII码98 int i3 = c2/c1; //输出结果:i3 = 1
-
算术表达式
算术表达式中出现不同类型的数据时,会自动将类型提升
-
提升规则
-- byte、short、char类型会被提升到int类型,不管是否有其他类型参与运算 -- 整个表达式类型自动提升到与表达式中操作数最高的同类型 -- 等级顺序:byte/short/char < int < long < float < double
-
-
字符串的” + “ 运算
对于字符串而言,+ 表示的是连接符,用于拼接字符串。不同的数据类型参与进来时,根据谁在前谁来决定+作用String str1 = "aaaa"; String str2 = "bbbb"; String str3 = str1 + str2; System.out.println("1"+1+1); //输出:111 System.out.println(1+1+"1"); //输出:21
-
- 3、赋值运算符
- 包括 : = += -= /= %=
- 注意: 除” = “外其他赋值运算符隐含了强制类型转换。
- 4、自增自减运算符
- 包括:++(自加一) --(自减一)
- 5、关系运算符
- 包括:== ,!=,<=,>=,>,<
- 关系运算符的运算结果都是boolean类型
- 对于基本数据类型比较的是数值,对于引用数据类型比较的是数值和引用地址!
- 6、逻辑运算符
-
包括:
& 与运算,存假即为假 | 或运算,存真即为真 ^ 异或运算,不同为真,相同为假 ! 非运算,取反 结果均为boolean类型
-
短路逻辑运算符:
&& 与运算,存假即为假 || 或运算,存真即为真 短路特性:当运算符左边结果已经能够决定最终结果,右边表达式则不再执行!
-
- 7、三元运算符
-
表达式:
布尔表达式 ? 表达式1 : 表达式2; int max = a > b ? a : b; //a>b为真,则max=a,否则max=b
若表达式为真,则执行表达式1,否则执行表达式2,两个中只会执行一个。
-
- 8、位运算符
-
原理:将操作数转换为二进制(0、1)再按位比照进行操作
-
包括:
& 按位与,同为1才为1 | 按位或,有1即为1 ~ 按位非,1变0,0变1 ^ 按位异或,相同为0,不同为1.a^b ^b =a,a ^ a=0,a^ 0= a >> 将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃 << 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0),每多左移1位相当于乘2 >>> 无符号右移,运算时,左边空位全补0(不考虑原数正负)
//按位异或举例 //6^5 = 3 0110 ^ 0101 -------- 0011 ---> 3
-
扩展:不使用中间变量的情况下,互换两个数的值
- 加减法,可以对整型和浮点型数据进行操作,但对于浮点型可能会丢失精度
a = a + b; b = a - b; a = a - b;
- 按位异或,只能对整型数据操作
a = a ^ b; b = a ^ b; a = a ^ b;
- 乘除法,可以对整型和浮点型数据进行操作,但对于浮点型可能对丢失精度
a = a * b; b = a / b; a = a / b; // b必不能为0
-
-
从控制台输入数
-
据有三种方式:
-
使用系统类System中的in属性的read方法,in就是InputStream对象。
int n = System.in.read(); //输入a ----> 输出 97 //注意:System.in.read()返回的是输入数据的ASCII码
-
使用Scanner工具类,该类对象使用时需要一个System.in对象。
Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //输入 3 ----> 输出 3
常用方法 方法功能 next() 获得用户输入的字符串 nextInt() 获取输入字符串转换为整数型 nextBoolean() 获取输入字符串转换为布尔型 nextDouble() 获取输入字符串转换为双精度浮点型 -
使用BufferedReader类
BufferedReader bb = new BufferedReader(new InputStream(System.in)); String read = null; read = bb.readLine(); //输入 ajdkfla df34 rdff&yy //输出 ajdkfla df34 rdff&yy
- 分类:
顺序结构
分支结构(if , switch )
循环结构(for , while, do…while) - 1. 顺序结构
Java程序默认的代码执行顺序就是顺序结构,从上到下,从左到右。
- 2.分支结构
2.1 分支结构之if
常见格式:关系表达式结果必须是boolean类型
if(关系表达式){ 代码块; }if(关系表达式){ 代码块; }else{ 代码块; }if(关系表达式){ 代码块; }else if(){ 代码块; } …… else if(){ 代码块; }else{ 代码块; }
Java基础笔记001
-



