Java语言基础知识-类型转换,运算符

Java语言基础知识-类型转换,运算符

类型转换

一, 自动类型转换

  1. 为什么要进行自动类型转换?
    存在不同类型的变量赋值给其他类型的变量。
  2. 自动类型转换是什么样的?
    类型范围小的变量,可以直接赋值给类型范围的大变量。
  3. 案例
package com.itheima.type;

public class TypeDemo1 {
    //主方法
    public static void main(String[] args) {
        // 目标:理解自动类型转换
        byte a = 20;
        int b = a; // 发生自动类型转换
        System.out.println(a);
        System.out.println(b);


        int age = 23;
        double db = age; // 发生自动类型转换
        System.out.println(age);
        System.out.println(db);

        char ch = 'a';
        int code = ch;
        System.out.println(code);


    }
}

二,表达式的自动类型转换

  1. 表达式的自动类型转换是什么样的?
    小范围的类型会自动转换成大范围的类型运算
  2. 表达式的最终结果类型是由谁决定的?
    最终类型是由表达式中最高的类型决定的
  3. 表达式有哪些类型转换是需要注意的?
    byte,short,char是直接转换成int类型参与运算的
  4. 案例
package com.itheima.type;

public class TypeDemo2 {
    //主方法
    public static void main(String[] args) {
        // 目标:表达式的自动类型转换规则
        byte a = 10;
        int b = 20;
        double c = 1.0;
        double d = a + b +c;
        System.out.println(d);

        d = a + b - 2.3;
        System.out.println(d);

        // 面试题
        byte i = 10;
        byte j = 20;
        int k = i + j;
        System.out.println(k);
    }
}

三,强制类型转换

  1. 什么是强制类型转换
    可以强行将类型范围大的变量,数据赋值给类型范围小的变量
    数据类型 变量 = (数据类型 )变量, 数据
  2. 强制类型转换有哪些需要注意的?
    可能出现数据丢失
    小数强制转换成整数是直接截断小数保留整数。

运算符

一,基本算数运算符

  1. 算数运算符有哪些?
    +,-,*,/,%
  2. /需要注意什么,为什么?
    如果两个整数做除法,其结果一定是整数,因为最高类型是整数。
    3.案例
    需求:一个三位数,将其拆分为个位,十位,百位后,打印在控制台
package com.itheima.operator;

public class OperatorTest2 {
    //主方法
    public static void main(String[] args) {
        // 需求:拆分3位数,把个位,十位,百位分别输出
        int data = 598;

        // 1. 个位
        int ge = data % 10;
        System.out.println("个位:" + ge);

        // 2. 十位
        int shi = data / 10 % 10;
        System.out.println("十位:" + shi);

        // 3. 百位
        int bai = data / 100;
        System.out.println("百位:" + bai);

    }

}

二,+符号做连接符

  1. +除了做基本数学运算,还有哪些功能?
    与字符串做+运算时会被当成连接符,其结果还是字符串;
    能算则算,不能算就在一起
  2. 案例
package com.itheima.operator;

public class OperatorDemo3 {
    //主方法
    public static void main(String[] args) {
        // 目标:+符号做连接的识别
        int a = 5;
        System.out.println("abc" + 'a'); // abca
        System.out.println("abc" + a); // abc5
        System.out.println(5 + a); // 10
        System.out.println("abc" + 5 + 'a'); // abc5a
        System.out.println(15 + "abc" +15); // 15abc15
        System.out.println(a + 'a');// 5 + 97 = 102
        System.out.println(a + " " + 'a'); // 5 a
        System.out.println(a + 'a' + "itheima"); // 102itheima
        System.out.println("itheima" + a + 'a'); // itheima5a
        System.out.println("itheima" + (a + 'a')); // itheima102
    }
}

三,自增自减运算符

  1. 自增,自减运算符有什么作用?
    ++ ,–。对当前变量值+1, -1
  2. 自增,自减运算符在变量前后有什么区别?
    如果单独使用放前后是没有区别的
    非单独使用:在变量前,先进行变量自增/自减,在使用变量。
    非单独使用:在变量后,先使用变量,再进行变量自增/自减。
  3. 案例
package com.itheima.operator;

public class OperatorDemo4 {
    //主方法
    public static void main(String[] args) {
        // 目标:学会用自增自减运算符:++ --
        int a = 10;
        a++; // a = a + 1;
        ++a; // a = a + 1;
        System.out.println(a);

        int b = 10;
        // b--; //b = b - 1;
        System.out.println(b);


        System.out.println("-------------------------------------------");
        // 在表达式中或者不是单独操作的情况,++ -- 在变量前后存在的区别
        // ++ -- 在变量前面, 先+1,-1在使用
        int i = 10;
        int j = ++i;
        System.out.println(i); // 11
        System.out.println(j); // 11

        // ++ -- 在变量的后面,先使用再+1 -1
        int m = 10;
        int n = m++;
        System.out.println(n); // 10
        System.out.println(m); // 11

        System.out.println("-----------拓展案例---------------");

        int k = 3;
        int p = 5;
        // k 3 -> 4-> 5-> 4
        // p 5 -> 4 -> 3 -> 4
        // rs 3 + 5 - 4 + 4 - 5 + 4 + 2
        int rs = k++ + ++k - --p + p-- - k-- + ++p + 2;
        System.out.println(k);
        System.out.println(p);
        System.out.println(rs);

    }
}

四,赋值运算符

  1. 赋值运算符有哪些?
    =,+=,-=,*=,/=,%=
  2. 作用是什么?
    基本作用是赋值
    +=还可以实现数据的累加,把别人的数据加给自己
  3. 案例
package com.itheima.operator;

public class OperatorDemo5 {
    //主方法
    public static void main(String[] args) {
        // 目标:学会使用赋值运算符:= += -= *= /= %=
        int a = 10;
        int b = 200;
        // a = a + b;
        a += b; // a = (int)(a + b)
        System.out.println(a);

        byte i = 10;
        byte j = 20;
        i += j; //   i = (byte) (i + j);
        System.out.println(i);


        int m = 10;
        int n = 5;
        // m += n;
        //m -= n; // 等价于 m = (int)(m-n)
        //m *= n; // 等价于 m = (int)(m*n)
        //m /= n; // 等价于 m = (int)(m/n)
        m %= n; // 等价于 m = (int)(m%n)
        System.out.println(m);
    }
}

五,关系运算符

在这里插入图片描述

六,逻辑运算符

1.逻辑运算符有哪些,有什么特点?
逻辑与“&”:有一个为false,结果是false
短路与“&&”:一个为false,结果是false。前一个为false,后一个条件不执行了
逻辑或“|”:有一个为true,结果是true
短路或“||”:一个为true,结果是true。前一个为true,后一个条件不执行了
逻辑非“!”:!false=true,!ture= false
逻辑异或“^”:相同是false,不同是true
注意:实际开发中,常用的逻辑运算符还是:&&,||,!

七,三元运算符

在这里插入图片描述
案例

package com.itheima.operator;

public class OperatorDemo8 {
    //主方法
    public static void main(String[] args) {
        // 目标:学会使用三元运算符,理解其流程
        double score = 98;
        String rs = score >= 60 ? "考试通过" : "挂科";
        System.out.println(rs);


        // 需求:从两个整数中找出最大值
        int a = 100000000;
        int b = 2000;
        int max = a > b ? a : b;
        System.out.println(max);


        System.out.println("------------------------");

        int i = 10;
        int j = 30;
        int k = 50;
        // 1. 找出两个整数中的最大值
        int temp = i > j ? i : j;
        // 2. 拿临时变量与第二个变量的值继续比较
        int rsMax = temp > k ? temp : k;
        System.out.println(rsMax);

        System.out.println("-------拓展知识----------");
        int rsMax1 = i > j ? i > k ? i : k : j > k ? j : k;
        System.out.println(rsMax1);
    }
}

八,运算符优先级

在这里插入图片描述
案例:

package com.itheima.operator;

public class OperatorDemo9 {
    //主方法
    public static void main(String[] args) {
        // 目标:看看Java是否存在优先级,大家以后需要注意优先级
        System.out.println(10 > 3 || 10 > 3 && 10 < 3);
        System.out.println((10 > 3 || 10 > 3 )&& 10 < 3);

    }
}

九,键盘录入技术

在这里插入图片描述
案例

package com.itheima.scanner;

import java.util.Scanner;

// 1. 导包操作(通过IDE导包)
public class ScannerDemo {
    //主方法
    public static void main(String[] args) {
        // 目标:学会使用键盘录入技术
        // 2. 得到一个键盘扫描器对象
        Scanner sc = new Scanner(System.in);

        // 3. 调用sc对象的功能等待接收用户输入的数据
        // 这个代码会等待用户输入的数据,直到用户输入完数据并按回车键会把数据拿到
        System.out.println("请输入年龄:");
        int age = sc.nextInt();
        System.out.println("你的年龄是:" + age);

        System.out.println("请输入名字:");
        String name = sc.next();
        System.out.println("欢迎:" + name);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值