数据类型转换、运算符、方法入门(8.9)

本文详细介绍了Java中的数据类型转换,包括自动转换和强制转换,并给出了相关示例,强调了转换可能带来的精度损失和数据溢出风险。此外,文章还探讨了算术运算符、赋值运算符、比较运算符、逻辑运算符和条件运算符的使用,以及方法的定义和调用。通过实例展示了各种运算符的用法和方法在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

1.1 自动转换

package demo01;

/**
 * @author 王旭阳
 */
public class ZiDong {
    /**
    当数据类型不一样时,将会发生数据类型转换
    自动类型转换(隐身)
      1.特点:代码不需要进行特殊处理
      2.规则:数据范围从小到大。
     */
    public static void main(String[] args){
        //这是一个整数类型,默认值就是int类型
        System.out.println(1024);
        //这就是一个浮点数,默认就是double类型
        System.out.println(3.14);
        //   long   int
        //符合小范围到大范围,发生自动转换
        long num1 = 100;
        System.out.println(num1);

        //     double  float
        //符合小范围到大范围,发生自动转换
        double num2 = 2.5F;
        System.out.println(num2);

        //    float  long
        //符合小范围到大范围,发生自动转换
        float num3 = 100L;
        System.out.println(num3);
    }
}

1.2 强制转换

package demo01;

/**
 * @author 王旭阳
 */
public class QiangZhi {
    /**
     * 强制类型转换
     * 1. 特点:代码需要进行特殊的格式处理,不能自动转换
     * 2. 格式:范围小的类型 范围小的变量名 = (范围小的)原本范围大的数据
     */
    public static void main(String[] args) {
        //int num = 100L;
        //不兼容的类型: 从long转换到int可能会有损失
        //long类型不能自动转为int类型 需要强制类型转换
        int num = (int) 100L;
        System.out.println(num);
    }
}

1.3 注意事项

1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
2.byte/short/char这三种类型都可以发生数学运算,例如加法“+”
3.byte/short/char这三种类型在运算时,都会被首先提升成为int类型,在运算。
4.boolean类型不能发生数据类型转换

//强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
//long强制转换成int类型
int num1 = (int) 6000000000L;
//运行结果1705032704
System.out.println(num1);

//double强制转换int类型
//运行结果 3    精度损失
int num2 = (int) 3.5;
System.out.println(num2);

//byte/short/char这三种类型都可以发生数学运算,例如加法“+”
char zifu = 'A'; //ASCIIS中是65
System.out.println(zifu+1); //结果66

//byte/short/char这三种类型在运算时,都会被首先提升成为int类型,在运算。
byte num3 = 40;
byte num4 = 50;
//byte num5 = num3 + num4;
//不兼容的类型: 从int转换到byte可能会有损失
byte num5 = (byte) (num3 + num4);
System.out.println(num5);

二、 运算符

2.1 算数运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

表格中的实例假设整数变量A的值为10,变量B的值为20:

操作符描述例子
+加法 - 相加运算符两侧的值A + B 等于 30
-减法 - 左操作数减去右操作数A – B 等于 -10
*乘法 - 相乘操作符两侧的值A * B等于200
/除法 - 左操作数除以右操作数B / A等于2
取余 - 左操作数除以右操作数的余数B%A等于0
++自增: 操作数的值增加1B++ 或 ++B 等于 21
自减: 操作数的值减少1B-- 或 --B 等于 19
public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //ctrl+d
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
    }
}
2.1.1 “+”运算符的用法

“+”常见的三种用法
1.对于数值来说,就是加法
2.对于字符来说,在计算机之前,char会被升级为int,然后计算
3.对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作
任何数据类型和字符串进行链接的时候,都会变成字符串

//字符串类型的变量基本使用
//数据类型 变量名称 = 数据值
String str1 = "hello";
System.out.println(str1); //hello
System.out.println("hello"+"world");//helloworld
//任何数据类型和字符串进行链接的时候,都会变成字符串
String str2 = "java";
System.out.println(str2 + 10);//java10

//优先级问题
//当String+int+int时
//=String + int
//=String
System.out.println(str2 + 20 +30);//java2030
2.1.2 自增自减

++自增: 操作数的值增加1

–自减: 操作数的值减少1

++ –
a++ 先赋值在加减
++a 先加减在赋值

2.2 赋值运算符

基本赋值运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量

int a = 30

赋值运算符:

​ += a += 3 相当于 a = a + 3

​ -= a -= 3 相当于 a = a - 3

​ *= a *= 3 相当于 a = a * 3

​ /= a /= 3 相当于 a = a / 3

2.3 比较运算符

下表为Java支持的关系运算符

表格中的实例整数变量A的值为10,变量B的值为20:

运算符描述例子
==检查如果两个操作数的值是否相等,如果相等则条件为真。(A == B)为假。
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。(A != B) 为真。
>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。(A> B)为假。
<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。(A <B)为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。(A> = B)为假。
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。(A <= B)为真。
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符
        int a = 10;
        int b = 20;
        System.out.println(a==b);
        System.out.println(a>b);
        System.out.println(a<b);
    }
}

2.4逻辑运算符

下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

操作符描述例子
&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。(A && B)为假。
| |称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。(A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。!(A && B)为真。
public class Demo05 {
    public static void main(String[] args) {
        //与  或  非
        boolean a = true;
        boolean b = false;
        System.out.println("a && b:"+(b&&a)); //逻辑运算符:两个变零都为真,结果为true
        System.out.println("a || b:"+(b||a));//逻辑或运算符:两个变零有一个为真,则结果为true
        System.out.println("!(a && b):"+!(b&&a));//如果为真则为假,如果为假则为真

        //短路运算符
        int c = 5;
        boolean d = (c<4)&&(c++<4);  //在与运算符中第一个值为假 不执行后面的值  (c++<4)未执行
        System.out.println(d);
        System.out.println(c);  //结果为5
    }
}

2.5 条件运算符

格式:

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

流程:

首先判断条件是否成立:

​ 如果成立true,那么将表达式A值赋值给左侧的变量

​ 如果不成立为false,那么将表达式B的值赋值给左侧的变量;

二者选其一。

注意事项:

  1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求
  2. 三元运算符的结果必须被使用
int max = a > b ? a : b;

三、方法入门

3.1 概述

java方法类似于其他语言的函数,是一段用来完成特定功能的代码片段

//点外卖
//用户
System.out.println("打开外卖软件");
System.out.println("选菜");
System.out.println("下单");
//商家
System.out.println("商家收到信息");
System.out.println("制作");
System.out.println("出餐");
//外卖员
System.out.println("外卖员取餐");
System.out.println("配送");
//用户
System.out.println("收到外卖");
System.out.println("吃");

3.2 方法定义

定义一个方法格式
public static void 方法名称(){
方法体
}
方法名称的命名规则和变量一样,使用小驼峰。
方法体:也就是大括号当中可以包含任意条语句

public class FangFa {
    public static void main(String[] args) {


    }
    public static void user(){
        //用户
        System.out.println("打开外卖软件");
        System.out.println("选菜");
        System.out.println("下单");
    }
    public static void business(){
        //商家
        System.out.println("商家收到信息");
        System.out.println("制作");
        System.out.println("出餐");
    }
    public static void takeout(){
        //外卖员
        System.out.println("外卖员取餐");
        System.out.println("配送");
        System.out.println("收到外卖");
    }

}

4.3 方法调用

调用 格式:
方法名称();

public static void main(String[] args) {
    user();
    business();
    takeout();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值