目录

  • 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码,它将每个字符和一个数值产生对应,这样就实现了算数运算。常见的字符十进制数:

字符十进制数
048
A65
a97

在这里会遇到类型主动晋升问题,前面详解,示例如下:

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)

符号阐明示例
++变量自增1a++,后果为2
变量自减1a–,后果为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 三元运算符

三元运算符语法:

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

关系表达式返回为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】 【码云】