类型转换,运算符

1、基本类型的转换

1.1、自动类型转换

  • 当数据类型不一样的时候,将会发生类型换换

  • 自动类型转换: (隐式转换)

    • 1.特点: 代码不需要进行特殊处理,自动完成
    • 2.规则:数据范围从小到大
  • 例子:

    public class Demo01DateType{
      public static void main(String[] args){
        System.out.println(1024);
        System.out.println(3.14);
        
        // 左边的是long类型,右边的是int类型
        // int类型转为long类型,符合范围从小到大
        long num1 = 100;
        System.out.println(num1);
        
        // 左边的double类型, 右边的是float
        // float转为double类型,符合范围从小到大
        double num2 = 2.5F;
        System.out.println(num2);
        
        // 左边的是float类型,右边的是long类型
        // long类型数据转为float数据,符合范围从小到大
        float num3 = 10L;
        System.out.println(num3);
      }
    }
    

1.2、强制类型转换

  • 强制类型转换

    • 1、特点:代码需要进行特殊的格式处理,不能自动完成
    • 2、格式:范围小的类型,范围小的类型变量名 = ( 范围小的类型)范围大的类型
  • 注意事项:

    • 1、强制类型转换一班不推荐使用,因为有可能发生精度损失,数据溢出
    • 2、byte/short/char 这三种可以发生数学运算, 进行运算的时候先提升为int类型,在进行计算
    • 3、布尔类型不能发生数据类型转换
  • 例子

    public class DemoDataType{
      public static void main(String[] args){
        
        // 左边的是int类型, 右边的是longleix
        // long ---> int 不是从小到大, 强制转换
        // 格式:范围小的类型,范围小的类型变量名 = ( 范围小的类型)范围大的类型
        int num = (int)100L;
        System.out.println(num);
        
        // 数据溢出
        // long类型转为int类型
        int num2 = (int)1000000000000000L;
        System.out.println(num2);
        
        // double转为int类型数据, 强制类型转换
        int num3 = (int) 3.5;
        System.out.println(num3);
        
        char zifu1 = 'A'; // 这是一个字符型数据
        System.out.println(zifu1+1); // 先将A提升为int类型数据,即阿斯克编码,在进行int类型数据计算
        
        byte num4 = 50;
        byte num5 = 40;
        // byte result = num4 + num5; 报错,运算的时候先将byte提升为int类型,然后再计算
        int result = num4 + num5;
        System.out.println(result);
        
        // 使用强制类型转换
        short result2 = (short) (num4 + num5);
        System.out.println(result);
      }
    }
    

2、运算符

  • 运算符:进行特定操作的符号
  • 表达式: 用运算符连接起来的式子

2.1、数学运算符

  • 四则运算:加减乘除, 取模(余数) %

  • 注意事项:

    • 1.一旦运算中有不同类型的数据,那么将会是数据类型大的那种
  • 例子

    public class DemoPerator{
      public static void main(String[] args){
        int num1 = 10;
        int num2 = 20;
        int result = num1 + num2;
        System.out.println(result);
        System.out.println(num2-num1);
        System.out.println(num2*num1);
        System.out.println(num2/num1);
      }
    }
    
  • 四则运算中的 + 用法

    1. 对于数值来讲,那就是直接相加

    2. 对于字符来讲,char类型字符,向将字符提升为int类型,在进行计算

    3. 对于字符串来讲,就是拼接字符串操作

    4. 任何数据和字符串相加都是字符串

      public class Demo{
        public static void main(String[] args){
          int a=10;
          int b=12;
          System.out.println(a+b);
          String str;
          str = "hello world";
          System.out.println(str+5);
          char zifu = 'a';
          System.out.println(zifu + 10);
        }
      }
      

2.2、自增,自减运算符

  • 含义:让一个变量增减一个数字

  • 使用格式: 写在变量名称前面或者写在变量名称后面;num++,++num

  • 使用方式:

    1. 单独使用:不和其他的运算操作,自己就是一个步骤
    2. 混合使用:和其他操作一起使用,比如for循环
  • 使用区别:

    1. 在单独使用的时候,前和后没有区别
    2. 混合使用的时候有本质的区别:
      1. 如果是前++, 这个变量立刻马上加1, 然后拿着结果进行使用 先加后用
      2. 如果是后++,那么首先使用变量本来的值,然后变量+1, 先用后加
  • 注意事项:只用变量才能使用自增自减,常量不可以使用,常量不可变

    public class Perator{
      public static void main(String[] args){
        int num = 10;
        System.out.println("未使用前++的值"+num);
        ++num;
        System.out.println("使用前++的值是"+num);
        
        int num2 = 20;
        System.out.println("未使用后++的值"+num);
        num2++;
        System.out.println("使用后++的值是"+num);
        
        System.out.println("联合使用");
        int num3 = 30;
        System.out.println(++num3);
        System.out.println(num3);  // 先加后用
        
        int num4 = 40;
        System.out.println(num4--);
        System.out.println(num4);  // 先用后减  
        
        // 题目来了
        int a = 10;
        int b = 20;
        int result = ++a + b--;
        // a先加  11, b先用20---》 31
        System.out.println("值是"+result);
        System.out.println(a);
        System.out.println(b);
      }
    }
    

2.3、赋值运算符

  • 基本运算符: =

  • 符合运算符:+=, -=, *=, /=, %=

  • 注意事项:

    1. 只有变量才能使用赋值运算符,常量不可以使用
    2. 符合运算符其中隐藏了一个强制类型转换
    public class DemoPerator{
      public static void main(String[] args){
        int a = 10;
        a += 5;
        System.out.println(a);
      }
    }
    
    

2.4、比较运算符

  • >, <, >=, <=, ==, !=

  • 注意事项:

    1. 比较运算符的结果是一个boolean类型
    2. 多次判断不可以使用 1<a<10; 不建议
    public class Demo{
      public static void main(String[] args){
        int a = 10;
        int b = 20;
        System.out.println(a>=b);
      }
    }
    

2.5、逻辑运算符

  • 与:&& 左右两边全部为true则成立

  • 或:|| 左右两边又一边为true则成立

  • 非: ! 取反,true变为false,false变为true

  • 例子

    public class Demo{
      public static void main(String[] args){
        System.out.println(true&&true);
        System.out.println(true||true);
        System.out.println(!true);
        int a = 10;
        System.out.println(0<a&&a>2);
      }
    }
    

2.6、三元运算符

  • 格式:数据类型 变量名称 = 条件判断 ?表达式A : 表达式B

  • 流程:

    • 首先判断条件是否成立:
      1. 如果表达式成立 true, 那么将表达式A的值赋值给左侧的变量;
      2. 如果不成立false, 那么将表达式B的值赋值给左侧的变量; 二者选其一
    • 注意事项: 1.必须同时保证表达式A和表达式B都符合左侧数据类型的要求. 2.三元运算符的结果必须使用
    public class Demo{
      public static void main(String[] args){
        int a = 10;
        int b = 20;
        int max= a>b ? a:b;
        System.out.println(max);
      }
    }
    

3、方法的入门

  • 方法:将功能性的代码进行封装

  • 定义方法格式:

    public static void 方法名称(){
      方法体
    }
    
  • 方法名称的命名和标识符是一样的

  • 注意事项

    1. 方法定义的先后顺序不重要
    2. 方法的定义不能产生嵌套关系包含关系
    3. 调用方法的使用才是执行; 方法名称()
    public class Method{
      public static void main(String[] args){
        	PrintHello();
      }
      public static void PrintHello(){
        System.out.println("hello world");
      }
    }
原文地址:https://www.cnblogs.com/liudemeng/p/11338384.html