JAVA数据类型、运算符

本文详细介绍了Java中的数据类型转换,包括自动类型提升和强制类型转换,并通过示例展示了转换过程。同时,文章讲解了算术运算符、赋值运算符、比较运算符和逻辑运算符的用法,以及三元运算符的条件判断和结果返回。此外,还强调了运算符的执行顺序和数据精度可能存在的问题。
摘要由CSDN通过智能技术生成

数据类型转换

boolean类型不参与数据类型转换

自动类型提升(隐式)

小范围的数据赋值给大范围的数据变量时,将会进行自动类型提升

public class Demo{
	public static void main(String[] args){
		//定义short类型数据
		short s = 1;
		//将小范围short类型赋值给大范围int类型时,数据类型自动提升
		int i = s;
		//打印输出i
		System.out.println(i);
		
	}
}

强制类型转化(显示)

大范围类型的数据赋值给小范围的数据类型变量

小范围数据类型 变量名 = (小范围数据类型)大范围数据类型;

public class Demo{
	public static void main(){
		//定义int类型变量i
		int i = 1;
		//将int类型强转为byte类型
		byte b = (byte) i ;
	}
}

说明:强制类型转换时先转换类型后赋值

​ 容易导致数据损失精度,不准确

注意:

  • 变量存储单个数据的盒子

  • 如果参与运行时候,最后会统一提升为最大的类型

  • byte,short,char类型计算时候,最后的结果会类型自动提升为int类型

  • 在为byte,short,char类型赋值的时候,只要在其范围内的"常量"都能成功赋值

  • byte short int float double

  • char类型参与四则运算,先转为整数再参与运算

    byte b = 5;
    
    shor s = 4;
    
    char c = 'a';
    
    int i = b + s + c;
    

运算符

算数运算符

  • +:

    • 正号: + 3; + 10;

    • 加法运算:int c = a + b;

    • 字符串的连接:当运算符左右两边一旦出现字符串,+就作为字符串的连接符使用,最终把两边数据拼接,得到一个新的字符串

      public class Test{
              public static void main(String[] args){
              	//字符拼接
                  String str = "HelloWorld! " + 'a';
      
      ​			System.out.println(str);//HelloWorld!a
      			//字符拼接
      ​			String str1 = "hello" + 1;
      
      ​			System.out.println(str1);//hello1
              }
              
          }
      
      	
      
  • -:

    • 负号: - 10;
  • *,/数学乘除

  • %:取模(取余数)

    • 当第一个数小于第二个操作数,结果为第一个操作时
  • ++:自增1

    • a++:表示数值a + 1,a++ --> a = a + 1;
    • ++a:表示数值a + 1, ++ a --> a = a + 1;
  • –;自减少1

a++与++a(a–与--a)的异同:

++放在操作数的前面或者后面,都是自身+1

–放在操作数的前面或者后面,都是自身减1

​ a++先运算后自增1

​ ++a先自增1后进行运算

public class Test1{
    public static void main(String[] args){
        int a = 5;
        int b = 6;
        int c;
        c = a++ + b;//先a和b进行和运算赋值给c,然后a自增1,
        System.out.println(c);//11
        int d = 5;
        c = ++d + b;//d先自增1,然后d和b进行和运算赋值给c
        System.out.println(c);//12
    }
}

赋值运算符

基础赋值运算符: =

等号时java中唯一一个自右向左运算的符号

扩展赋值运算符

  • += a += b a = a + b;

  • -= a -= b a = a - b;

  • *= a *= b a = a * b;

  • /= a /= b a = a / b;

  • %= a %= b a = a % b;

    推荐使用

    优点:

    • 执行效率高
    • 帮助自动做强制类型转换 (++可以实现自动强制类型转换)

    缺点:

    • 不够直观

比较运算符 | 关系运算符

< :小于 > :大于 <= :小于等于 >= :大于等于

基本数据类型的比较

== !=

基本数据类型,引用数据类型

最终比较运算符得到的结果为boolean类型的结果

逻辑运算符

  • &:逻辑与,一个为false则为false,两个都为true才是true
  • |:逻辑或,一个为true则为true,两个都为false才是false
  • ^: 异或,相同则为false,不同则为true
  • !:非,取反 !true = false !false = true
  • &&:短路与,与&逻辑判断一致,不同的是,&&的第一表达式如果为false,则不会运行第二表达式
  • ||:短路或,与|逻辑判断一致,不同的是,||的第一表达式如果为true,则不会运行第二表达式

一般的,表达式中使用短路逻辑运算符,短路逻辑运算符效率更高

注意:逻辑运算符的操作数只能为值为boolean类型的表达式或者值

条件运算符:三元运算符

表达式 ? 值1 : 值2;

表达式的结果为boolean类型

执行流程:

  • 表达式结果为true:结果为值1
  • 表达式结果为false:结果为值2

注意最终肯定能得到一个结果两个值中间得到一个

public class Demo{
	int a = 10;

	int b = 5;

	int c = a > b ?  a : b;//三元运算符执行运算

	System.out.println(c);//10

	String str = a > b ? "a大","b大";
	System.out.println(str);//a大
	//判断a是否为偶数
	str = a % 2 == 0 ? "偶数" : "奇数";
	System.out.println(str);//偶数

}

注意:最终肯定能得到一个结果,两个值中间得到一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值