ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java学习day03

2022-07-08 21:00:36  阅读:126  来源: 互联网

标签:10 java day03 ++ System 学习 int println out


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

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

标签:10,java,day03,++,System,学习,int,println,out
来源: https://www.cnblogs.com/muamuspace/p/16459633.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有