热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java基础概览:数字类型及其运算符

本文详细介绍了Java编程语言中的基本数字类型,包括各类运算符(算术、关系、逻辑、位运算)的使用方法,以及Math和Random类的功能与应用。

本文深入探讨了Java中的数字类型及相关的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符,并介绍了Math和Random类的应用。


文章目录

  • 一、运算符
    • 1、算术运算符
    • 2、关系运算符
    • 3、逻辑运算符
    • 4、位运算符
  • 二、数学工具类
    • 1、Math类
    • 2、Random类

一、运算符

Java语言中提供了多种运算符以支持不同的数据处理需求,主要包括算术运算符、关系运算符、逻辑运算符和位运算符。

1、算术运算符

Java中的算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)。其中,取模运算用于计算两数相除后的余数。此外,Java还支持自增(++)和自减(--)运算符,用于快速增加或减少变量的值。

注意事项:
1. 加法运算符在字符串拼接时会将数字转换为字符串。
2. 整数除法结果为整数,而浮点数除法则返回浮点数。
3. 取模运算对浮点数无效,结果的符号与被除数相同。
4. 任何数除以0将导致错误,但浮点数除以0会产生无穷大(Infinity),对0取模则返回非数字(NaN)。

2、关系运算符

关系运算符用于比较两个值,包括等于(==)、不等于(!=)、小于(<)、大于(>)、小于等于(<=)和大于等于(>=)。这些运算符的结果总是布尔值true或false。

注意事项:
1. 字符之间的比较基于它们的ASCII值。
2. 浮点数与整数比较时,若值相等,则返回true。

3、逻辑运算符

逻辑运算符用于组合多个条件表达式,包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。其中,&&和||具有短路特性,即在第一个操作数已能决定最终结果时,不会评估第二个操作数。

注意事项:
1. &&是短路与运算符,若第一个条件为false,则不评估第二个条件。
2. ||是短路或运算符,若第一个条件为true,则不评估第二个条件。
3. &和|是非短路版本,无论第一个条件如何都会评估第二个条件。
4. ^表示异或,当两个条件一个为true另一个为false时结果为true。

4、位运算符

位运算符直接操作数字的二进制位,包括按位与(&)、按位或(|)、按位非(~)、按位异或(^)、左移(<<)、右移(>>)和无符号右移(>>>)。

注意事项:
1. &按位与,仅当两位都为1时结果为1。
2. |按位或,仅当两位都为0时结果为0。
3. ~按位非,对每一位取反。
4. ^按位异或,相同为0,不同为1。
5. >>右移,正数高位补0,负数高位补1。
6. <<左移,高位溢出部分舍弃,低位补0。
7. >>>无符号右移,无论正负数,高位均补0。


二、数学工具类

1、Math类

Math类提供了一系列静态方法,用于执行常见的数学运算,如求平方根、指数、对数、三角函数等。以下是部分常用方法:

方法名方法说明方法名方法说明
Math.sqrt(x)计算x的平方根Math.rint(x)四舍五入到最近的整数(浮点型)
Math.ceil(x)向上取整Math.floor(x)向下取整
Math.pow(base, exp)计算base的exp次方Math.round(x)四舍五入到最近的整数(整型)
Math.random()生成0到1之间的随机浮点数Math.abs(x)返回x的绝对值
Math.max(a, b)返回a和b中的较大值Math.min(a, b)返回a和b中的较小值
Math.signum(x)返回x的符号值(-1, 0, 1)

Math类还提供了三角函数方法:

Math.sin(3.14); // 约等于0.00159...
Math.cos(3.14); // 约等于-0.9999...
Math.tan(3.14); // 约等于-0.0015...
Math.asin(1.0); // 约等于1.57079...
Math.acos(1.0); // 约等于0.0

Math类定义了一些常用的数学常量:

double pi = Math.PI; // π,约等于3.14159...
double e = Math.E; // 自然对数的底数e,约等于2.7182818...
Math.sin(Math.PI / 6); // 计算sin(π/6),结果为0.5

2、Random类

Random类用于生成伪随机数,支持多种数据类型的随机数生成。以下是一些常用方法:

方法名方法说明方法名方法说明
nextInt()生成一个int类型的随机数nextInt(n)生成一个0到n-1之间的int类型随机数
nextLong()生成一个long类型的随机数nextFloat()生成一个0.0到1.0之间的float类型随机数
nextDouble()生成一个0.0到1.0之间的double类型随机数

推荐阅读
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细解析了Java中throw和throws的关键区别,同时涵盖了JDK的定义、Java虚拟机的关键约定、Java的跨平台性、自动垃圾回收机制、源文件结构、包的概念及作用等多个核心知识点,旨在帮助学生更好地准备Java期末考试。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细介绍了C语言中的指针,包括其基本概念、应用场景以及使用时的优缺点。同时,通过实例解析了指针在内存管理、数组操作、函数调用等方面的具体应用,并探讨了指针的安全性问题。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文探讨了在Java中如何正确地将多个不同的数组插入到ArrayList中,避免所有数组在插入后变得相同的问题。我们将分析代码中的问题,并提供解决方案。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文将详细探讨 Java 中提供的不可变集合(如 `Collections.unmodifiableXXX`)和同步集合(如 `Collections.synchronizedXXX`)的实现原理及使用方法,帮助开发者更好地理解和应用这些工具。 ... [详细]
  • 本文详细介绍了Java库XChart中的XYSeries类下的setLineColor()方法,并提供了多个实际应用场景的代码示例。 ... [详细]
  • ▶书中第四章部分程序,包括在加上自己补充的代码,有边权有向图的邻接矩阵,FloydWarshall算法可能含负环的有边权有向图任意两点之间的最短路径●有边权有向图的邻接矩阵1 ... [详细]
author-avatar
ythg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有