IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 运算符与表达式 -> 正文阅读

[Java知识库]运算符与表达式

运算符与表达式

算术运算符

算术操作符:+,-,*,/,%,++,–表示加减乘除,取余(求模),自增和自减
/运算,两个操作数都是整数时,表示整数除法
否则,表示浮点除法
整数被0除将产生一个异常,浮点数被O除得到无穷大或者NaN

image-20211204194254593

public class Test{
    public static void main(String[] args){
        int i = 3;
        int j = 2;
        System.out.println(i/j); // 结果为1
        double k = 2System.out.println(i/k); // 结果为1.5    
    }
}

image-20211204194330432

// 例如: 
int i = 3;
int i2 = i++System.out.print("i=" + i);
System.out.print("i2=" + i2);
/**输出
    i=4
    i2=3
因为++在后时,先取值再运算,先把i的值赋给i2,在对i进行++
*/

关系运算符、逻辑运算符

关系运算符,求值结果为布尔型
==检测是否相等 ,如3 ==7的值为false
!=检测是否不等,如3!7的值为true
image-20211204195057163

三元运算符

condition ? exp1 : exp 2

condition为真是计算exp1的值,为假时计算exp2的值。

public class Test{
    public static void main(String[] args){
        int score = 80;
        String isOk = score >=60 ? "及格""不及格"//三元运算符还可以嵌套使用    
        String isOk = score >=60 ? (score >=85 ? "优秀""合格")"不及格"System.out.println("score=" +score+ "时,我们认为成绩:"+isOK); 
        //score =80时,我们认为成绩:及格
    }
}

位运算符

在处理整形数值时,可以直接对组成整形数值的各个位进行操作。这意味着可以使用屏献技术获得整数中的各个位
image-20220304200317007

位运算的奇巧淫技

image-20220304202153582

2->8最高效的方式? 答:2<<2

判断奇偶数

只需要判断最低位是0是1即可 与1做与运算

public class Test{
    public static void main(String[] args){
        int num = 99;
        System.out.println(num + "是" +(((num&1)==0 ? "偶数""奇数"))); //加法优先级高于三元运算符,所以还需要加个括号
        //99是奇数
    }
}

获取二进制为是1还是0(两种方案)

例如给定 x = 86 问第五位是1还是0?

方案1:先把1左移四位与x做与运算,然后把结果第5位右移四位,看是0还是1

 //方案1 
  System.out.println(num + "二进制数的第5位是:" +(((num &(1<<4))>>4)==0 ? "0" :"1"))//方案2
  System.out.println(num + "二进制数的第5位是:" +(((num>>4)&1)==0)?"0":"1")

交换两个整数变量的值

对于任何数x,都有x^x=0, x^0=x 同自己求异或为0,同0求异或为自己

int num1 = 10;
int num2 = 20;
num1 = num1^num2;
num2 = num1^num2;
num1 = num1^num2;
System.out.println("num1=" + num1 +",num2=" + num2);//num1=20,num2=10

不用判断语句,求整数的绝对值

与-1做异或相当于取反

image-20220304203652370

num2 = -20;
System.out.println("num2的绝对值为"((num2^(num>>31))+(num2>>>31)));

赋值运算符

当“=”两侧数据类型不一致时,可以使用默认类型转换或使用强制类型转换进行处理
注意:可以将整型常量直接赋值给byte,short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围

image-20211207221806864

类型转换

java数据类型转换分为

自动类型转换

强制类型转换

image-20220305202320311

byte,char和short 型参与运算时自动提升为int型

对于表达式

  • 如果一个操作数为long型,则整个表达式提升为long型
  • 如果一个操作数为float型,则整个表达式提升为float型
  • 如果一个操作数为double型,则整个表达式提升为double型

image-20220305203843194

/**
 * case2 放回当前系统时间
 * 已知  System.currentTimeMillis()返回1970-1-1零点至今的毫秒数,类型为long
 */
public class case2_Time {
    public static void main(String[] args) {
        long m = System.currentTimeMillis();
        long totalSecond = m / 1000;            //毫秒转成秒 得到总秒数
        long second = totalSecond % 60;         //当前秒数
        long totalMinute = totalSecond / 60;    //得到总分钟数
        long minute = totalMinute % 60;         //当前分钟数
        long totalHour = totalMinute / 60;      //得到总小时数
        long hour = totalHour % 24 + 8;             //当前小时

        System.out.println("系统当前时间:"+hour +":"+ minute +":"+ second);
    }
}

任意范围随机数

Math.random() 随机返回 [0,1) 之间的一个double型浮点数

(int)(Math.random() *10) --> 返回0~9之间的一个随机整数

a + Math.random()*b --> 返回 a ~ a+b之间的一个随机整数,不包括a+b

常见错误

  • 未声明,未初始化变量
  • 整数溢出 byte -18~127
  • 取整错误
  • 整数除法
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-03 09:21:59  更:2022-05-03 09:22:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:39:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码