java学习day03

博客 动态
0 167
羽尘
羽尘 2022-07-08 21:01:30
悬赏:0 积分 收藏

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算术运算符

++或者-- 如果单独作为一条语句书写 在前在后没有区别
++或者-- 如果不是单独一条语句
如果++或者--在前 先执行++或者-- 再执行其他的
如果++或者--在后 先执行其他的 再执行++或者--

image

image

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赋值运算符

image

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关系运算符

关系运算符 最终结果都为布尔类型

image

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逻辑运算符

//逻辑运算符

&& 短路与 同真为真(其他为假)第一个假短路

& 逻辑与 同真为真(其他为假)

|| 短路或 同假为假(其他为真)第一个为真短路

| 逻辑或 同假为假(其他为真)

image

image

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

image

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

可以以字母、下划线、美元符号、人民币符号开头,可以包含数字,不能以数字开头,见名知义,有意义

posted @ 2022-07-08 20:53 木0_0木 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员