运算符顺序

4-咸鱼学Java-Java简单的运算符_位或

[]运算符

int[] array = {1,2,3,4}; //[] 声明一个数组
array[0] = 2; //[] 属性获取,下标所指内容
System.out.println(array);
System.out.println(array[2]);
int length = array.length; //获取数组长度
System.out.println(length);

运行结果

4-咸鱼学Java-Java简单的运算符_System_02


.运算符

4-咸鱼学Java-Java简单的运算符_System_03


()运算符

在算数逻辑里面遇到()要先运算()内的,在其他地方比如函数,()内的为形参列表。

!运算符

!运算符进行非运算

boolean t = true;
System.out.println(!t);

结果为 false。
~运算符
~运算符用于按位取反。

short i = 11;
System.out.println(~i);

4-咸鱼学Java-Java简单的运算符_位或_04

++运算符

//  ++ 后置++  前置++
int a = 10;
int a1 = a++; // //temp = a; a ++; a1=temp;
int a2 = ++a; // a++; a2=a;
System.out.println(a1);
System.out.println(a2);

a++在运算时候,先取当前a的值,再进行自加操作。
++a在运算时候,先进行自加,再取当前的值。
- -运算符
、- -运算和++运算类似
/,*,%运算符
/运算符为除法运算,当两个数都为Int型的时候,为整除;当两个数之中有一个double或者float类型的时候,为算数除法。

double s = 14/3;
System.out.println(s);
s = 14.0/3;
System.out.println(s);

结果为

4-咸鱼学Java-Java简单的运算符_运算符_05


*运算符就是算数运算符中的X,运算规则也一样。

%运算符为取余运算符,其计算的两个数都必须为Int型。

int s = 10%3;
System.out.println(s);

结果

4-咸鱼学Java-Java简单的运算符_运算符_06

+,-运算符
+ - 运算符和数学中的+ - 相同
<<,>>,>>>运算符
<<运算符为左移位
每左移一位结果大多情况等于原数乘2。

byte s = 11;
System.out.println((byte)(s<<1));

结果为22。

原因是

4-咸鱼学Java-Java简单的运算符_运算符_07


在位数不足的情况下可能变成负数

byte s = 11;
System.out.println((byte)(s<<4));

结果我-80

原因为short只有8位,在左移过程中可能变成负数。

4-咸鱼学Java-Java简单的运算符_位或_08

.>>运算符为右移位
每右移1为结果大约为整除2。

byte s = 11;
System.out.println((byte)(s>>1));

结果为5。

原因为

4-咸鱼学Java-Java简单的运算符_运算符_09


在位数不足的情况下可能变成0。

byte s = 11;
System.out.println((byte)(s>>4));

结果为0

原因为

4-咸鱼学Java-Java简单的运算符_System_10

.>>>运算符为无符号右移
相对于>>,>>>在右移的时候高位全部补0,所以对于正数来说>>和>>>没有区别,对于负数来说

int s=-1;
System.out.println(-1>>>1);
System.out.println(Integer.MAX_VALUE);

结果都为2147483647(int的最大值)

在其为-1时,无符号右移一位等于获取了其最大值。

原因

4-咸鱼学Java-Java简单的运算符_System_11


<,<=,>,>=,instanceof运算符

<,<=,>,>=皆为比较运算符,结果为boolean值。

Instanceof为比较类的一种运算符。

//instanceof  只能比较类(引用)  左边操作类声明的类型与右边操作类必须是同种类或有继承关系
String s=new String("javaisland");
String a = "ssss";
if(a instanceof String)
{
}

必须要有继承关系,不然java编译会不通过。

==,!=运算符
.==,表示的是是否相等,也是比较运算符,但是这个运算符在比较类的时候,比较的是类的引用。
!= 同上
&运算符
&运算符为按位与(1 1为1,其余为0),也为非中断式与。

public static void main(String[] args) {
byte a = 11;
byte b = 0;
//按位与
System.out.println(a&b);
//非中断式与
System.out.println(f1()&f2()&f3());
}
private static boolean f1() {
System.out.println("f1");
return true;
}
private static boolean f2() {
System.out.println("f2");
return false;
}
private static boolean f3() {
System.out.println("f3");
return true;
}

结果为

0
f1
f2
f3
false

两个数与为0的原因为

4-咸鱼学Java-Java简单的运算符_System_12


打印出来f1,f2,f3的原因为,非中断式与在碰到false的时候并不会停止执行。

^运算符
^按位异或(一样的位0,不一样的为1)

byte a = 11;
byte b = 0;
//按位异或
System.out.println(a^b);

4-咸鱼学Java-Java简单的运算符_运算符_13

|运算符
| 按位或(见1为1),也为非中断式或。

public static void main(String[] args) {
byte a = 11;
byte b = 0;
//按位或
System.out.println(a|b);
//非中断或
System.out.println(f1()|f2()|f3());
}
private static boolean f1() {
System.out.println("f1");
return true;
}
private static boolean f2() {
System.out.println("f2");
return false;
}
private static boolean f3() {
System.out.println("f3");
return true;
}

结果为

11
f1
f2
f3
true

按位或结果为11的原因为。

4-咸鱼学Java-Java简单的运算符_System_14


打印出来f1,f2,f3的原因为,非中断式或在碰到true的时候并不会停止执行。

&&运算符
中断式与,在碰到false的时候,后面的不执行

public static void main(String[] args) {
System.out.println(f1()&&f2()&&f3());
}
private static boolean f1() {
System.out.println("f1");
return true;
}
private static boolean f2() {
System.out.println("f2");
return false;
}
private static boolean f3() {
System.out.println("f3");
return true;
}

结果

f1
f2
false

||运算符
中断式或,在碰到true的时候,后面的不执行。

public static void main(String[] args) {
System.out.println(f1()||f2()||f3());
}
private static boolean f1() {
System.out.println("f1");
return true;
}
private static boolean f2() {
System.out.println("f2");
return false;
}
private static boolean f3() {
System.out.println("f3");
return true;
}

结果

f1
true

?:运算符

System.out.println(1>2?1:2);

结果

2

表达式?结果1:结果2
如果表达式为真,输出结果1,负责为2。

混合赋值运算符
+=,-=,*=。。。。。。

//以+=为例子
int i =0;
i += 1;
System.out.println(i);

int t = 0;
t = t+1;
System.out.println(t);

上面的代码等于下面的代码,只是混合赋值运算符减少了一些代码的书写。

其他
函数简介

//int 当前方法的返回值
//Max2 函数名
//(int a,int b) 形式参数
//{ 方法体 }
//return 返回值
public static int Max2(int a,int b)
{
if(a>b)
{
return a;
}
else
{
return b;
}
}