java学习day03
2022/7/9 14:23:59
本文主要是介绍java学习day03,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
10.类型转换
自动提升,手动下降
10.1自动类型转换
自动类型转换
1.两种类型要兼容 数值与数值类型兼容 char类型也可以存储数值2.目标类型(等号左边)取值范围大于源类型(等号右边)
提升规则:byte、short、char----->int ------>long------>float------->double
byte、short、char之间运算提升为int
public class Test1{ public static void main(String [] args ){ //自动类型转换 //1.目标类型(等号左边)取值范围大于源类型(等号右边) byte b1 = 20; short s1 = b1; System.out,println(s1); short s2 = 2356; int i1 = s2; System.out.println(i1); int i2 = 12345; long l1 = i2; System.out.println(l1); long l2 = 123456L; float f1 = l2; System.out.println(f1); float f2 = 123.0F; double d1 = f2; System.out.println(d1); } }
public class Test2{ public static void main(String [] args){ //自动类型转换中 byte、short、char之间运算,自动提升为int型 byte b2 = 23; short s2 = 56; int i3 = b2 + s2; System.out.prinitln(i3); char ch1 = '天'; short s3 = 12; int i4 = ch1 + s3; System.out.println(i4); } }
10.2强制类型转换
强制类型转换
1.两种类型要兼容
2.目标类型(等号左边)取值范围小于源类型(等号右边)整数长度足够,数据完整。
整数长度不够,数据截断。(符号位变化,可能变为负数)
public class Test1{ public static void main(String [] args){ System.out.println("----------------强制类型转换------------------"); //强制类型转换 //1.两种类型要兼容 //2.目标类型(等号左边)取值范围小于源类型取值范围(等号右边) System.out.println("================范围内强制转换=================="); //范围内强制转换不损失 short s11 = 120; byte b11 = (byte)s11; System.out.println(b11); int i11 = 5689; short s22 = (short)i11; System.out.println(s22); long l11 = 567845; int i22 = (int)l11; System.out.println(i22); float f11 = 3.14F; long l22 = (long)f11; System.out.println(l22); double d11 = 20.5; float f22 = (float)d11; System.out.println(f22); int a = 23; byte b = (byte)a; System.out.println(b); System.out.println("=================超范围强制转换================="); //超范围强制转换补码损失 short ss1 = 257; byte bb1 = (byte)ss1; System.out.println(bb1); short ss3 = 128; byte bb2 = (byte)ss3; System.out.println(bb2); short ss4 = 129; byte bb3 = (byte)ss4; System.out.println(bb3); char ch1 = 'A'; System.out.println(ch1 + 1); // 66 B System.out.println(ch1 -1); } }
11.运算符
11.1算术运算符
++或者-- 如果单独作为一条语句书写 在前在后没有区别
++或者-- 如果不是单独一条语句
如果++或者--在前 先执行++或者-- 再执行其他的
如果++或者--在后 先执行其他的 再执行++或者--
public class Test1{ public static void main(String [] args){ System.out.println("-----------算术运算符 -----------------"); System.out.println("----------- + - * / %---------------"); //两个操作数 算术运算符+ - * / % int a = 10; int b = 20; int c = 30; System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println(a / b); // 不能保存小数 System.out.println(a % c); System.out.println("----------- ++(自增) --(自减)---------------"); //一元算术运算符++(自增) --(自减) // ++或者-- 如果单独作为一条语句书写 在前在后没有区别 int a1 = 10 ; a1++; System.out.println(a); int c1 = 10; ++c1; System.out.println(c1); int b1 = 15; b1--; // b = b - 1; System.out.println(b1); int d1 = 15; --d1; System.out.println(d1); // ++或者-- 如果不是单独一条语句 // 如果++或者--在前 先执行++或者-- 再执行其他的 // 如果++或者--在后 先执行其他的 再执行++或者-- int e = 10; int f = e++; System.out.println(f); System.out.println(e); int k = 10; int m = ++k; System.out.println(m); System.out.println(k); int h = 15; int j = h--; System.out.println(j); System.out.println(h); } }
11.2赋值运算符
public class Test1{ public static void main(String [] args){ System.out.println("================赋值运算符================"); // 赋值运算符 int a = 10; // 将等号右边赋值给等号左边 a += 10; // a = a + 10; System.out.println(a); a -= 5; // a = a - 5; System.out.println(a); a *= 6; // a = a * 6; System.out.println(a); a /= 3; // a = a / 3; System.out.println(a); a %= 2; // a = a % 2; System.out.println(a); System.out.println("---------- a +=10; 与 a = a + 10;的区别----------------"); short s1 = 10; s1 += 10; //类型不会提升 int s2 = s1 + 10; //自动类型提升 System.out.println("short型:\t" + s1); System.out.println("int型:\t" + s2); byte b1 = 10; b1 += 10; //类型不会提升 int i2 = b1 + 20; //自动类型提升 System.out.println("byte型:\t" + b1); System.out.println("int型:\t" + i2); } }
11.3关系运算符
关系运算符 最终结果都为布尔类型
public class RelationOpreator{ public static void main(String [] args){ System.out.println("================关系运算符================"); //关系运算符 最终结果都为boolean类型 int a = 40; int b = 50; System.out.println(a > b); System.out.println(a < b); System.out.println(a >= b); System.out.println(a <=b ); System.out.println(a == b); System.out.println(a != b); } }
11.4逻辑运算符
//逻辑运算符
&& 短路与 同真为真(其他为假)第一个假短路
& 逻辑与 同真为真(其他为假)
|| 短路或 同假为假(其他为真)第一个为真短路
| 逻辑或 同假为假(其他为真)
public class Test1{ public static void main(String [] args){ //逻辑运算符 // && 短路与 要求两个或多个表达式都成立 则结果为真 // 短路与 有短路的效果 如果第一个条件不成立 则后续的条件不再执行 // & 逻辑与 要求两个或多个表达式都成立 则结果为真 没有短路效果 // || 短路或 要求两个或者多个表达式有一个成立 则结果为真 // 短路或 有短路的效果 如果第一个条件已经成立 则后续的条件不再执行 // | 逻辑或 要求两个或者多个表达式有一个成立 则结果为真 没有短路效果 int a = 15; int b = 20; int c = 22; System.out.println("--------短路与---------"); System.out.println(a < b && b < c); //true System.out.println(a > b && b < c);//false System.out.println("--------逻辑与---------"); System.out.println(a < b & b < c);//true System.out.println(a > b & b < c);//false System.out.println("======================="); System.out.println("--------短路或---------"); int d = 22; int e = 33; int f = 44; System.out.println(d > e || e < f); //true System.out.println(d > e || e > f); //false System.out.println("--------逻辑或---------"); System.out.println(d > e | e < f); //true System.out.println(d > e | e > f); //false int x = 6; int y = 7; int z = 7; System.out.println((y-- == x) && (--y != x));//false System.out.println(y); //6 System.out.println((z-- == x) & (--z != x));//false System.out.println(z); //4 int j = 10; int k = 11; int l = 10; System.out.println((++j == k) || (++j == k));//true System.out.println(j); //11 System.out.println((++l == k) | (++l == k));//true System.out.println(l); //12 } }
public class Test2{ public static void main(String [] args){ // ! 非 boolean bl1 = !true; boolean bl2 = !false; System.out.println(bl1); System.out.println(bl2); System.out.println(!true); System.out.println(!false); // 三目(三元)运算符 布尔表达式 ? 结果1 : 结果2 System.out.println(20 == 20 ? "条件成立" : "条件不成立"); int age = 19; System.out.println(age >= 18 ? "成年了" : "未成年"); int a = 20; int b = a >= 20 ? 55 : 66; System.out.println(b); } }
11.5
public class Test1{ public static void main(String [] args){ // 位运算符 // 左移:在有效的范围以内,左移几位表示乘以2 的几次方 System.out.println(1 << 1); System.out.println(1 << 2); System.out.println(1 << 3); System.out.println(1 << 4); System.out.println(1 << 5); System.out.println(1 << 32); System.out.println("------------------------------------------"); // 右移:在有效的范围内 右移几位 表示除以2的几次方 System.out.println(8 >> 2); System.out.println(8 >> 10); System.out.println(-1 >> 100); System.out.println(-20 >> 2); // -5 // >>> 无符号右移 System.out.println(-20 >>> 2); System.out.println(20 >>> 3); // & 与 二进制相同位 都为1 结果为1 其他都为0 System.out.println(10 & 30); // | 或 二进制相同位 有一个为1 或者两个都为1 结果为1 其他为0 System.out.println(10 | 30); // ^ 异或 二进制相同位 相同为0 不同为1 System.out.println(10 ^ 30); // ~ 取反 每一位 0改为1 1改为0 System.out.println(~30); // 整数的四种表示形式 // 二进制 0B binary int i1 = 0B11; System.out.println(i1); int i2 = 20; // 八进制 以0开头 int i3 = 012; System.out.println(i3); // 十六进制 0X开头 int i4 = 0XA3DF; System.out.println(i4); } }
12.变量的命名规范
字下美人数骆驼
字:字母
下:下划线
美:美元符号$
人:人民币符号¥
数:数字
骆驼:驼峰命名 studentNameAndAge
可以以字母、下划线、美元符号、人民币符号开头,可以包含数字,不能以数字开头,见名知义,有意义
这篇关于java学习day03的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26手写消息中间件:从零开始的指南
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解