举例一。1:最简单加减法运算
举例一。2:变量赋值
public class OperateDemo01
{
public static void main(String args[]){
int num = 22;
System.out.println("第一次输出:num" + num);
num = num - 3; // 修改变量内容
System.out.println("第二次输出:num" + num);
}
}
举例二:正、负、取反
public class OperateDemo02
{
public static void main(String args[]){
boolean b = false;
int x = 10;
int y = -30;
System.out.println("b = " + b + ", !b = " + !b); // 取反操作
System.out.println("x = " + x +", -x = " + -x); // 使用负号
System.out.println("y = " + y +", +y = " + +y); // 使用正号
}
}
算术运算符
加减乘除
public class OperateDemo03
{
public static void main(String args[]){
int i = 10;
int j = 3;
System.out.println(i + " + " + j + " = " + (i + j)); //加法操作
System.out.println(i + " - " + j + " = " + (i - j)); //减法操作
System.out.println(i + " * " + j + " = " + (i * j)); //乘法操作
System.out.println(i + " / " + j + " = " + (i / j)); //除法操作
System.out.println(i + " % " + j + " = " + (i % j)); //取模操作
}
}
举例四:大于小于
public class OperateDemo04
{
public static void main(String args[]){
System.out.println("3 > 1 = " + (3 > 1)); //使用大于号
System.out.println("3 < 1 = " + (3 < 1)); //使用小于号
System.out.println("3 >= 1 = " + (3 >= 1)); //使用大于等于号
System.out.println("3 <= 1 = " + (3 <= 1)); //使用小于等于号
System.out.println("3 == 1 = " + (3 == 1)); //使用等于号
System.out.println("3 != 1 = " + (3 != 1)); //使用不等
}
}
举例五:
public class OperateDemo05
{
public static void main(String args[]){
if(5>2){
System.out.println("条件成立:5大于2");
}
if(true){
System.out.println("直接写的true");
}
if((3+6)==(3-6))
System.out.println("这是不可能成立的"); // 如果只有一条语句可以不写括号。
}
}
举例六
public class OperateDemo06
{
public static void main(String args[]){
int a = 3 , b = 3; // 定义两个变量a和b
System.out.println("a = " + a);
// a++ 先计算,后自增
System.out.println("\t a++ = " + (a++) + ", a = " + a);
// ++b 先自增,后计算
System.out.println("\t ++b = " + (++b) + ", b = " + b);
}
}
++x,--x尽量不要出现
&&,||,真值表
举例七
public class OperateDemo07
{
public static void main(String args[]){
boolean a = true;
boolean b = false;
System.out.println("a || b = " + (a || b));
System.out.println("a | b = " + (a | b));
System.out.println("a && b = " + (a && b));
System.out.println("a & b = " + (a & b));
}
}
举例八
public class OperateDemo08
{
public static void main(String args[]){
int score = 50; //定义成绩
if((score<0) || (score>100)){
System.out.println("输入的成绩有错误");
}
if((score<60) && (score>49)){
System.out.println("成绩不及格准备补考吧!");
}
}
}
典型错误举例九
public class OperateDemo09
{
public static void main(String args[]){
int x = 10/0; //定义变量
System.out.println("x = " + x);
}
}
与的举例十
public class OperateDemo10
{
public static void main(String args[]){
if(10!=10&10/0==0){
System.out.println("条件满足");
}
}
}
短路与的举例十一
public class OperateDemo11
{
public static void main(String args[]){
if(10!=10&&10/0==0){
System.out.println("条件满足"); // 使用&&短路与
}
}
}
“短路与”只要第一个条件满足,之后的程序代码都不再执行了。
或的举例十二
public class OperateDemo12
{
public static void main(String args[]){
if(10!=10|10/0==0){
System.out.println("条件满足"); // 使用“|”非短路或
}
}
}
短路或的举例十三
public class OperateDemo13
{
public static void main(String args[]){
if(10==10||10/0==0){
System.out.println("条件满足"); // 使用“||”短路或
}
}
}
经过以上分析之后,可以总结出,短路与和短路或是最经常使用到一种代码。
作用可以改变优先级
3+5+4*6-7 //默认是先乘除后加减
(3+5+4)*(6-7)
举例十四
public class OperateDemo14
{
public static void main(String args[]){
int result1 = 3 + 5 + 4 * 6 -7;
int result2 = (3 + 5 + 4) *(6 - 7);
System.out.println("3 + 5 + 4 * 6 -7 = " + result1);
System.out.println("(3 + 5 + 4) *(6 - 7) = " + result2);
}
}
如果要想时行位操作,则需要先将十进制的数据变为二进制数据,除以2的形式,求余数。
异或:相反为1,相同为0
举例十五
public class OperateDemo15
{
public static void main(String args[]){
int x = 3; //3的二进制数据 00000000 00000000 00000000 00000011 3
int y = 6; //6的二进制数据 00000000 00000000 00000000 0000110 6
System.out.println(x & y); //与 00000000 00000000 00000000 00000010 2 这里容易出错
System.out.println(x | y); //或 00000000 00000000 00000000 00000111 7 这里容易出错
System.out.println(x ^ y); //异或 00000000 00000000 00000000 00000101 5 这里容易出错
}
}
int x = 3; // 3的二进制数据: 00000000 00000000 00000000 00000011
int y = 6; // 6的二进制数据: 00000000 00000000 00000000 00000110
System.out.println(x & y); //与 00000000 00000000 00000000 00000010
System.out.println(x | y); //或 00000000 00000000 00000000 00000111
System.out.println(x ^ y); //异 00000000 00000000 00000000 00000101
还可以通过“~”取反码
举例十六
public class OperateDemo16
{
public static void main(String args[]){
int x = -3; //应该以补码的形式存在,补码 = 反码 + 1
/*
学习汇编必备知识
求-3的补码
方法:
->求原码(第一位为1,其余位按二进制形式表示)
->求反码(除第一位之外,其余位数全部取反)
->求补码(在反码的基础之上再加1)
->求反码(整体位数取反)
1|0000000 00000000 00000000 00000011 -> -3的原码
1|1111111 11111111 11111111 11111100 -> -3的反码
1|1111111 11111111 11111111 11111101 -> -3的补码 //也就是说这就是-3的二进制码
0|0000000 00000000 00000000 00000010 -> ~3 = 2
注意:
第一位为1表示负数
除第一位之外其余位数表示二进制数字
*/
System.out.println(~x);
}
}
int x = -3; // 应该以补码的形式存在
取反码的方法:找一下最精确的解释方法
左移与右移的方法
举例十七
public class OperateDemo17
{
public static void main(String args[]){
int x = 3; // 3的二进制数据:00000000 00000000 00000000 0000011
System.out.println(x + "左移2位之后的内容:" + (x << 2)); //x=12
}
}
x<<2
// 3的二进制数据: 00000000 00000000 00000000 00000011
// 3的左移2位据: 00000000 00000000 00000000 00001100
举例十八
public class OperateDemo18
{
public static void main(String args[]){
int x = 3; // 3的二进制数据:00000000 00000000 00000000 0000011
int y = -3; // 3的二进制数据:10000000 00000000 00000000 0000011
/*
求-1的二进制码(哇塞牛比)
10000000 00000000 00000000 00000001 原码 = 第一位为1其余位按二进制处理
11111111 11111111 11111111 11111110 反码 = 除第一位全部取反
11111111 11111111 11111111 11111111 补码 = 反码+1
*/
System.out.println(x + "右移2位之后的内容:" + (x >> 2));
System.out.println(y + "右移2位之后的内容:" + (y >> 2));
}
}
x>>2
学习汇编必备资料
无符号右移
举例十九
public class OperateDemo19
{
public static void main(String args[]){
int x = 3; // 3的二进制数据:00000000 00000000 00000000 0000011
int y = -3; // 3的二进制数据:10000000 00000000 00000000 0000011
System.out.println(x + "右移2位之后的内容:" + (x >>> 2));
System.out.println(y + "右移2位之后的内容:" + (y >>> 2));
}
}
x>>>2
位操作实际上在基本的开发中使用较少,对于一些底层的加密,MD5等才会用到。
SimpleExpress
在java中提供了以下几种运算符,
+=
-=
x=
/=
%=
b++
与++b
b--
与--b
public class SimpleExpressDemo01
{
public static void main(String args[]){
int a = 5, b= 1;
System.out.println("改变之前的数是:a = " + a + ", b = " + b);
a += b; //等价于a = a + b
System.out.println("改变之后的数是:a = " + a + ", b = " + b);
}
}
以上的运算实际上操作起来更加简便,但是这样的操作在现在开发中已经不提倡。
TypeChangeDemo
当Java发现程序中表达试中有类型不相符的情况时,会依据下列的规则来处理类型的转换。
1.占用字节较少的类型转换成占用字节较多的类型。
2。字符类型会转换成int类型。
3.int 类型会转换成float类型。
4.表达式中若某个操作数的类型为double,则另一个操作数字也会转换成double类型。
5.布尔类型不能转换成其它类型。
举例:
public class TypeChangeDemo{
public static void main(String args[]){
char ch = 'a';
short a = -2;
int b = 3;
float f = 5.3f;
double d = 6.28;
System.out.println("(ch / a) - (d / f) - (a + b) = ");
System.out.println((ch / a) - (d / f) - (a + b) );
}
}
只要数据操作中出现了double类型,则肯定是最大的类型,最终的操作结果以此类型为准备。
一般来讲开发中一定要写简单代码。