Java数据类型、运算符

数据类型转换

自动类型数据转换
1、特点:代码不需要进行特殊处理,自动完成。
2、规则:数据范围从小到大。

public class test3 {
    public static void main(String[] agrs){
        System.out.print(1024);//这是一个整数,默认就是int整型
        System.out.print(3.14);//这就是一个浮点数,默认就是double类型
        //左边是long类型,右边是默认的int类型,左右不一样
        //一个等号代表赋值,将右侧的int常量,给左侧的long进行变量存储
        //发生了自动类型转换
        long num1=100;
        System.out.print(num1);//100
        double num2=2.5F;
        System.out.print(num2);//2.5
        float num3=30L
        System.out.print(num3);//30.0

    }

强制类型转换

1、格式:代码需要进行特殊格式处理,不能自动完成
2、格式:范围小的类型,范围小的变量名=(范围小的类型)原本范围大的数据;

注意事项:
1、强制类型转换可能会发生,数据溢出、精度损失
2、byte/short/char这三种类型都可以发生数学运算。
3、byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后再进行计算。
4、boolean类型不能发生数据类型转换

代码展示

public class test3 {
   public static  void main(String[] args){
       //格式:范围小的类型 范围小的变量名=(范围小的类型)原本范围大的数据;
       int num=(int)100L;
       System.out.print(num);
       //long强制转换成int类型
      // int num2=(int)60000000000;
       //System.out.print(num2);数据溢出,显示整数过大

       //double---int,强制类型转换
       int num3=(int)3.99;
       System.out.print(num3);//结果:3.导致精度溢出

       char zifu1='A';//这是一个字符变量,里面是大写字母A
       System.out.print(zifu1+1);//66 ASCII:A代表65、a代表的是97、0代表的是4
   }
}

运算符
1、对于一个整数来说,除法用的是整除,整数除以整数只看商,不看余数。对于有整数的除法来说,取模运算才有余数的意义 `

public class test3 {
   public static  void main(String[] args){
       //两个常量之间可以进行数学运算
     System.out.print(20+30);
     int a=20;
     int b=30;
     System.out.print(a-b);//-10
       //变量之间可以混合使用
       System.out.print(a*10);//200

       int x=10;
       int y=3;
       int result1=x/y;
       System.out.print(result1);//3
       int result2=x % y;
       System.out.print(result2);//余数,%为1
       //数据类型不统一,首先是将数据类型统一,结果将会是数据类型范围大的一方
       double result3=x+2.5;
       System.out.print(result3);//12.5
   }
}

四则运算当中“+"常见的三种用法

  1. 对数值来说是加法。
  2. 对于字符char类型来说,在计算之前,char会被提升为int,然后再计算。char类型字符,和int类型数字,之间的对照关系表,ASCII、Unicode
  3. 对于字符串String(首字母大写)并非是关键字,加号代表的是连接作用。任何数据类型和字符串连接的时候都会变成字符串
  4. 小括号优先于其它运算符,小括号可以无限嵌套
public class test3 {
   public static  void main(String[] args){
   String str1="hello";
   System.out.print(str1);//hello

       System.out.print("Hello"+"world");//Helloworld

       String str2="java";
       //String+int---String
       System.out.print(str2+20);//java20

       /*
       优先级问题
       String +int +int
       String      +int
       String
        */
       System.out.print(str2+20+30);//java2030
       System.out.print(str2+(20+30));//java50
   }
}

自增运算符:++
自减运算符:–
注意事项:只有变量可以使用自增自减运算符常量不可以使用,常量不可以改变

/*
基本含义:让一个变量张一个数字1,或者让一个变量降数字1
使用格式:写在变量名称之前,或者写在变量名称之后,++num1或这num1++
使用方式:
    1.单独使用
    2.混合使用
 使用区别 :
    1.在单独使用的是时候,前++和后++没有什么区别,完全一致
    2.在混合使用的时候有区别
        A如果前++,那么变量立刻马上加1
        B如果后++,那么首先使用变量本来的数值,
 */
public class test3 {
    public static void main(String[] args){
        int num1=10;
        System.out.print(num1);//10
        ++num1;//单独使用
        System.out.print(num1);//11
        num1++;//单独使用,后++
        System.out.print(num1);//12

        //与打印操作混合的时候
        int num2=20;
        System.out.print(++num2);//21
        System.out.print(num2);//21

        int num3=30;
        //混合使用后,后++,首先使用变量本来的30,然后再让变量+1得到31
        System.out.print(num3++);//30
        System.out.print(num3);//31 
    }
   }

赋值运算符
基本赋值运算符,就是一个“=”,代表将右侧的数据交给左侧的变量
int a =30
复合赋值的运算符:
+= 、-=、*=、/=、%=
注意事项:
1、只有变量才嫩使用赋值运算符,常量不能进行赋值运算符
2、复合赋值运算符隐含了一个强制类型转换
代码演示

public class test3 {
    public static void main(String[] args){
      int a =10;
      /*
      a=10+5
      //a本来是10,现在重新赋值得到15
       */
      a +=5;
      System.out.print(a);

      int x=10;
      /*
      x=x%3;
      x=10%3
      x=1
      x本来是10,现在重新赋值得到1
       */
      x %=3;
      System.out.print(x);//1
    }
   }

比较运算符
大 于 >
小 于 <
大于等于 >=
小于等于 <=
相 等 ==
比 较 !=
注意事项

  1. 比较运算符一定是个boolean值,只有ture和false。
  2. 如果进行多次判断不能连着写
    代码展示
public class test4 {
   public static void main(String[] agrs){
       System.out.print(50>30);//ture

       int num1=10;
       int num2=12;
       System.out.print(num1<num2);//ture
       System.out.print(num2>=100);//false
       System.out.print(num2<=12);//true
       System.out.print(num2==12);//true
       System.out.print(num1!=num2);//true
   }
}

逻辑运算符
与(并且) && 全都是true,才是true,否则就是false
或(或者) || 至少一个是true,就是true;全都是false,才是false
非(取反) ! 本来是true,变成false;本来是false,变成true
与“&&“,或“||”,具有短路效果;如果根据左边已经可以判断得到最终的结果,那么右边的代码将不再执行,从而节省一定的性能。
注意事项:逻辑运算只能用于boolean值
与和或需要,左右都有一个boolean值,取反只需要有唯一一个boolean值即可。

public class test4 {
    public static void main(String[] agrs){
    System.out.print(true&&false);//false
         System.out.print(3<4||10>5);//true
        System.out.print(true||false);//true
        System.out.print(false||false);//false
        //取反!
        System.out.print(true);
        System.out.print(!true);//false
        int a=10;
        //false&&...
        System.out.print(3<4&&++a>100);//true
        System.out.print(a);//10
        
    }
}

一元运算符:只需要一个数据就可以进行操作的运算符。举例:自增,自减,取反。
二元运算符:需要两个数据才可以进行操作的运算符。举例:加法+、赋值=、
三元运算符:需要三个数据才可以进行操作的运算符。
格式
数据类型 变量名称 =条件判断 ?表达式 A : 表达式B;
流程
首先判断条件是否成立:
如果不成立为ture,那么将表达式A的值赋值给左侧的变量;
如果不成立为false,那么将表达式的B值赋值给左侧的变量;
注意事项
1、必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
2、三元运算符的结果必须被使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值