数据类型转换和运算符的分类

一.隐式转换

1.byte,short,char参与运算的时候,会自动提升为int类型

2.多种数据类型参与运算,结果以大的数据类型为准

3.数据类型从小大到的顺序为: byte,short,char,int,long,float,double

举例1: byte a=3; byte b=4; //byte c=a+b;//错误:a,b会自动提升为int,a+b的结果为int类型,不能用byte接收。 int c=a+b;//正确

//byte c=a+b;//错误:a是byte类型,会自动提升为int,a+b的结果为int类型,

//正确:a会提升为int,a+b的结果也为int类型

//char c1=a+1;//错误:a是char类型,也会自动提升为int,'a'的ASCII值为97,97+1结果为98,

//正确,结果为98

二.强制类型转换

格式:数据类型 变量名=(数据类型)被转换的数据;
  • 3;
  • 4;
  • //注意:强制转换可能改变数据大小

  三.Eclipse的配置

1)设置字体大小
    windows-->Perference-->General-->Appearance-->Color And Font-->Basic-->Text Font-->选中字体大小
2)重置窗口
    windows-->Perspcetive-->reset Perspcetive

3)窗口不见了
    windows-->show View-->选择你需要的窗口

  四.Eclipse的快捷键

(1)功能辅助键:alt+/
    可以在写代码的时候,给我们提示
    main+alt+/  补全main方法
    Syso+alt+/  补全输出语句

(2)其他快捷键【重点】
    ctrl+/
        添加(取消)单行注释
    ctrl+shift+/
        添加多行注释
    ctrl+shift+
        取消多行注释
    ctrl+d  
        删除代码
    ctrl+alt+下  
        复制代码(可能和Intel显他软件冲突)
    ctrl+shift+F(可能和搜狗输入法冲突了)
        格式化代码
    ctrl+shift+o
        导包
    alt+上/下
        向上,向下移动代码
    ctrl+1
        自动修正(哪里有错,就在哪里ctrl+1)   


更改快捷键:
    window-->preference-->General-->keys-->搜索快捷键并更改-->apply-->OK

五.导入和删除项目

1)导入项目
    【注意】具有项目结构的目录,才能导入到Eclipse中
    右键-->Import-->existing projects into workspace-->browse--选择项目路径-->finish
    选中copy projects into workspace  表示从工作空间中删除

2)删除项目
    选中项目-->右键-->delete

运算符分类

数据类型转换和运算符的分类

  • + - * / % ++ --
    
    /(除法):整数相除只能得到整数
        如: int a=5;
            int b=2;
            int c=a/b;//c的结果是2
    
    %(取余):取余数
        如: int a=5;
            int b=2;
            int c=a%b;//c的结果是1
    
    +符号的几种用法
        1)加法运算
            int sum=3+4;//加法,sum=7
    
            char c='a'; //'a'对应的整数是97
            int d=c+1;//'a'会自动转换为int,结果也是int类型
            System.out.println(d);//结果:98
    
        2)字符串的连接符
            任何数据类型和字符串做“+”运算,其实就是拼接
            System.out.println("java"+10);//结果:java10
            System.out.println(true+"java");//结果:truejava
            System.out.println(10+3+"true"+"java");//结果:13truejava
    
    ++和--:表示自增1或者自减1
        单独使用:
            ++(--)放在操作数的前面和后面,结果都是一样的,都要自增1(自减1)
            举例:
                int a=3;
                int b=5;
                a++; 或者 ++a//自增1后,a的结果为4
                b--; 或者 --b//自减1后,b的结果为4
    
        参与其他运算
            1)++(--)放在操作数的前面,先自增(自减),再去做其他运算
                int a=3;
                int b=++a;//先让a自增1,a=4;再把a的结果赋值给b,b=4
                          //等价于a++; b=a;
                System.out.println("a="+a);//a=4;
                System.out.println("b="+b);//b=4;
    
            2)++(--)放在操作数的后面,先做其他运算,后自增(自减)
                int a=3;
                int b=a++;//先把a的值3赋值给b,b=3;再让a自增,a=4
                          //等价于int b=a; a++;
                System.out.println("a="+a);//a=4;
                System.out.println("b="+b);//b=3;
    
            总结:不管++(--)放在操作数的前面还是后面,最终都得+1或者-1
    
  • 2.赋值运算符【重点】

    基本的赋值运算符:=
    扩展的赋值运算符:+= -= *= /= %=
    运算规律:
        把左边和右边的运算结果赋值给左边
        举例:
        int a=3;
        a+=3;//a的结果就是6
    
    注意事项:
        short s=1;  
        s+=1; 等价于   s = (short)(s+1);
    
  • 3.关系运算符【重点】

    > >= < <= == !=
    注意==和=的区别
    ==:比较是否相等
    =:赋值运算
    
  • 4.逻辑运算符【重点】

    逻辑运算符必须是对boolean类型进行运算,结果也是boolean类型
    
    &与  |或  ^异或 !非
        &与:两边都是true,结果才是true;否则结果是false
        |或:两边都是false,结果才是false;否则结果是true
        ^异或:相同为false,不同为true
        !非:true则false,false则true
    
    &&和||
        &&和&的区别
            &&有短路效果:左边为false,右边不执行
            &左右两边都要执行
        ||和|的区别
            ||有短路效果:左边为true,右边不执行
            |左右两边都要执行
    
    总结:实际开发中用&&和||,就欧了!!!
    
  • 5.三元运算符【重点】

    格式:关系表达式?表达式1 : 表达式2

    执行流程:
        A:先判断关系表达式的结果是true,还是false
        B: 如果是true,就执行表达式1
           如果是false,就执行表达式2
    
        //举例1:定义两个变量a=3,b=4;求a和b的最大值
        public class Test1{
            public static void main(String[] args){
                //定义两个变量a=3,b=4;
                int a=5;
                int b=10;
    
                //求a和b的最大值,把结果赋值给mm
                int mm=(a>b?a:b);
                System.out.println("最大值为:"+mm);
                System.out.println("最大值为:"+(a>b?a:b));
    
                //求a被b的最小值,把结果赋值给nn
                int nn=a<b?a:b;
                System.out.println("最小值为:"+nn);
                System.out.println("最小值为:"+(a<b?a:b));
            }
        }
    
        /*
            案例2:定义三个变量a=3,b=4,c=5;求a和b,c的最大值
            分析:
                A:先比较a和b的最大值,赋值给max
                B:再让max和c进行比较,重新赋值给max
        */
        class Test2{
            public static void main(String[] args){
                //定义三个变量a=3,b=4,c=5
                int a=3,b=4,c=5; //可以在一行定义多个变量,用","隔开
    
                //求a和b,c的最大值
                //A:先比较a和b的最大值,赋值给max
                int max=a>b?a:b;//max=4
                //B:再让max和c进行比较,重新赋值给max
                max=max>c?max:c; //max=5
    
                System.out.println("三个数最大值为:"+max);
            }
        }
    
  • 运算符练习

    重要:写代码其实就是一个翻译的过程,把题意中主要的信息摘出来,用代码去逐条翻译

    • 1.从题干中摘取有用信息
    • 2.用代码取翻译

      /*
          中百超市苹果的价格为3块一斤,现在有78块钱
          问:你最多能买几斤苹果?还剩多少钱?
              如果剩下的钱多余10块,就输出true;
              如果剩下的钱少于10块,就输出false
      */
      public class Test{
          public static void main(String[] args){
              //苹果的价格为3块一斤
              int applePrice=3;
      
              //现在有78块钱
              int money=78;
      
              //你最多能买几斤苹果?
              int count=money/applePrice;//数量=总价/单价
              System.out.println(money+"块钱可以买"+count+"斤苹果");
      
              //还剩多少钱?
              int shengYu=money%applePrice;
              System.out.println(money+"块钱买了"+count+"斤苹果,还剩"+shengYu+"块钱");
      
              // 如果剩下的钱多余10块,就输出true;
              System.out.println(shengYu>10);
          }
      }
      

四、键盘录入【重点】

  • 1.键盘录入的步骤

    1)导包
        import java.util.Scanner;
    2)创建键盘录入对象
        Scanner sc=new Scanner(System.in);
    3)获取键盘录入数据
        int num1=sc.nextInt(); //等待用户键盘录入数据,只能录入int类型的数据
    
  • 练习1:键盘录入2个整数,求两个整数的和

    import java.util.Scanner;
    public class Test1{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入第一个整数:");
            int a=sc.nextInt();
            System.out.println("请输入第二个整数:");
            int b=sc.nextInt();
    
            //求a和b的和
            System.out.println(a+"+"+b+"="+(a+b));
        }
    }
    
  • 练习2: 键盘录入2个整数,求两个整数的最大值

    import java.util.Scanner;
    public class Test2{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入第一个整数:");
            int a=sc.nextInt();
            System.out.println("请输入第二个整数:");
            int b=sc.nextInt();
    
            //求a和b的最大值
            int max=a>b?a:b;
            System.out.println("a和b的最大值为:"+max);
        }
    }
    
  • 练习3:键盘录入3个整数,求三个整数的最大值

    import java.util.Scanner;
    public class Test3{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入第一个整数:");
            int a=sc.nextInt();
            System.out.println("请输入第二个整数:");
            int b=sc.nextInt();
            System.out.println("请输入第三个整数:");
            int c=sc.nextInt();
    
            //先求a和b的最大值,赋值给max
            int max=a>b?a:b;
            //再让max和c进行比较,把大的值重新赋值给max
            max=max>c?max:c;
            System.out.println("a和b,c的最大值为:"+max);
        }
    }
  • 位移运算符

 数据类型转换和运算符的分类

数据类型转换和运算符的分类