您的位置 首页 java

「Java基础-03」java运算符及类型转换

目录

  • 1. 运算符
    • 1.1 算数运算符
    • 1.2 字符和字符串+操作
      • 1.2.1 字符+操作
      • 1.2.2 字符串+操作
    • 1.3 赋值运算
    • 1.4 自增和自减
    • 1.5 关系运算符
    • 1.5 逻辑运算符
    • 1.6 三元运算符
  • 2. 类型转换
    • 2.1 自动类型转换
    • 2.2 强制类型转换

1. 运算符

1.1 算数运算符

这些符号和小学学的运算符一样,并没有什么高大之初,上过学的基本都会,内容如下:

符号

作用

+

*

乘同以往符号不同,但是功能一致

/

%

取余

在java程序中,不同的是除法,整数相除为整数,混合除法取最大类型,示例:

 public static void main(String[] args) {
    int a = 5;
    int b = 2;
    double x = 2.0;
    // 结果为2
    System.out.println(a / b);

    // 结果为2.5
    System.out.println(a / x);
}
  

1.2 字符和字符串+操作

1.2.1 字符+操作

char基础类型参与的是算数运算,采用十进制的底层运行算。在这里大家肯定很疑惑char表示的为单个字符并非字符,是如何参加运算的呢。那大家就需要了解一下ASCALL码,它将每个字符和一个数值产生对应,这样就实现了算数运算。常见的字符十进制数:

字符

十进制数

0

48

A

65

a

97

在这里会遇到类型自动提升问题,后面详解,示例如下:

 public static void main(String[] args) {
    char x = 'A';
    char y = 'a';
    // 显示的为162
    System.out.println(x + y);
}
  

1.2.2 字符串+操作

当表达式中出现字符串时,+表示为字符串连接符否则为算数运算符,从左向右依次计算,能算则算。示例如下:

 public static void main(String[] args) {
    // 结果为3LessAnn
    System.out.println(1 + 2 + "LessAnn");

    // 结果为1LessAnn2
    System.out.println(1 + "LessAnn" + 2);
}
  

1.3 赋值运算

赋值运算符用的是=,这和我们生活中的=是有一定差别的。生活中会把计算结果返回到=右边,在程序当中,会把=右边计算结果赋值给=左边。示例如下:

 public class AssignmentTest {
    public static void main(String[] args) {
        // 声明变量
        int a;
        // 为变量赋值
        a = 1 + 2;
        //输出结果为3
        System.out.println(a);
    }
}
  

以上为简单的赋值语句格式,在程序当中还有一些简化的赋值格式,如下(a=1):

符号

说明

示例

+=

自身与数相加后赋值给自己

a+=1,结果为2

-=

自身与数相减后赋值给自己

a-=1,结果为1

*=

自身与数相乘后赋值给自己

a*=5,结果为5

/=

自身与数相除后赋值给自己

a/=2,结果为2

%=

自身与数取余后赋值给自己

a%=5,结果为2

1.4 自增和自减

一种简化的变量操作(a=1)

符号

说明

示例

++

变量自增1

a++,结果为2

变量自减1

a–,结果为0

此符号需要注意的是,可以放在变量的左右两边,对变量本身来说没有区别,都是使变量加减1,但是对与整个表达式存在区别。符号在右侧表示先用变量后再自加减,在左侧表示先自加减再使用。示例如下:

 public class AutoincreateTest {
    public static void main(String[] args) {
        int a = 1, b = 5;
        // 结果为4
        System.out.println(++a + a++);
        // 结果为8
        System.out.println(b-- + --b);
        // 结果为3
        System.out.println(a);
        // 结果为3
        System.out.println(b);
    }
}
  

1.5 关系运算符

小学知识,只是符号不同,符号如下:

符号

说明

==

等于

!=

不等于

>

大于

>=

大于等于

<

小于

<=

小于等于

所有的比较结果之都为boolean值(true,false),需要注意的是等于为==并非=,=是赋值符号。

1.5 逻辑运算符

符号

作用

说明

&

逻辑与

a&b,a和b都是true,结果为true,否则为false

|

逻辑或

a|b,a和b都是false,结果为false,否则为true

^

逻辑异或

a^b,a和b结果不同为true,相同为false

!

逻辑非

!a,结果和a的结果正好相反

&&

短路与

a&&b,a为true并且b为true则结果为true,a为false则b不会执行直接返回false

||

短路或

a||b,a为false并且b为false结果为false,a为true则b不会执行直接返回true

在这里需要注意的是短路与或,这是比较特殊的逻辑运算符。示例如下:

 public class LogicTest {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        // false
        System.out.println(a++ > 5 && b++ > 1);
        // 2
        System.out.println(a);
        // 2
        System.out.println(b);
    }
}
  

1.6 三元运算符

三元运算符语法:

关系表达式返回为boolean值,为true执行表达式1,false执行表达式2。
示例:

 public class TernaryTest {
    public static void main(String[] args) {
        // B
        System.out.println(1 > 2 ? 'A' : 'B');
        // 成立
        System.out.println(1 < 2 ? "成立" : "不成立");
    }
}
  

2. 类型转换

在程序中肯定会存在类型混合操作,这时就出现输出类型问题,下面将分类解释。

2.1 自动类型转换

在程序中类型小的可以直接赋值给大类型,示例如下:

 public class TypeConversion {
    public static void main(String[] args) {
        byte a = 1;
        short b = 2;
        int y = a;
        System.out.println(y);
        System.out.println(a + b);
    }
}
  

在这里需要注意的是,byte,short和char在运行过程中会自动转换成int类型,所有在程序中很少使用这些类型。

2.2 强制类型转换

强制类型转换是把大类型转换成小类型。

语法:类型1 变量1 = (类型1)变量2;

示例如下:

 public class TypeTest {
    public static void main(String[] args) {
        int x = 1;
        // 这样直接赋值会出错
        // byte y = x;
        // 前面需要添加转换类型
        byte y = (byte) x;
    }
}
  

本章结束,用于个人学习和小白入门,大佬勿喷!

源码 【GitHub】 【码云】

文章来源:智云一二三科技

文章标题:「Java基础-03」java运算符及类型转换

文章地址:https://www.zhihuclub.com/176874.shtml

关于作者: 智云科技

热门文章

网站地图