Java基础:Java数字类型

Java 中包含多种运算符:算数运算符、关系运算符、逻辑运算符、位运算符。在 Math 类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。要生成一个随机数,可以使用 Random 对象。

本篇主要记录内容包括:运算符、数学工具类


  • 上一篇内容:Java基础:Java数据类型
  • 下一篇内容:Java基础:Java流程控制
  • 更多知识学习:全网最全的 Java 技术栈内容梳理(持续更新中)

文章目录

    • 一、运算符
        • 1、算数运算符
        • 2、关系运算符
        • 3、逻辑运算符
        • 4、位运算符(与逻辑运算符不是同一个概念)
    • 二、数学工具类
        • 1、Math 数学类
        • 2、Random 类


一、运算符

Java 中包含多种运算符:算数运算符、关系运算符、逻辑运算符、位运算符。

1、算数运算符

在 Java中,使用算术运算符 + - * / 表示加、减、乘、除运算。整数的求余操作(有时称为取模)用 % 表示。

程序员都知道加 1、减 1 是数值变量最常见的操作。在 Java 中,借鉴了 C 和 C++ 的做法,也提供了自增、自减运算符:n++ 将变量 n 的当前值加 1,n-- 则将 n 的值减1。

注意事项:①加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串;②当参与 / 运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。③%为整除取余符号,小数取余没有意义,结果符号与被取余符号相同;④整数做被除数,0 不能做除数,否则报错;⑤小数做被除数,整除 0 结果为 Infinity,对 0 取模结果为 NaN

2、关系运算符

Java 包含丰富的关系运算符。要检测相等性,可以使用两个等号 ==。例如,3==7 的值为 false,另外可以使用 != 检测不相等。例如,例如,3!=7 的值为 true。最后,还有经常使用的 <(小于)、>(大于)、<=(小于等于)和 >=(大于等于)运算符。

注意事项:①结果只能是truefalse;②字符间的比较,比较的是其ASCII值;③浮点数与整数比较,只要值相等,就返回true

3、逻辑运算符

Java 沿用了 C++ 的做法,使用 && 表示逻辑 “与” 运算符,使用||表示逻辑 “或” 运算符。从 != 运算符可以想到,感叹号 ! 就是逻辑非运算符。&&|| 运算符是按照 “短路” 方式来求值的:如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。

注意事项:①&& : 又叫短路运算符,A&&B,如果A为假,不会去计算B的值,直接得到结果为 false;②& : A&B,即使A为假,也会计算B的值;③|| : 也是短路运算符,A||B,如果A为真,不会去计算B的值,直接得到结果为 true;④| : A|B,即使A为真,也会计算 B 的值;⑤^ : 异或,左右两边条件结果相同,结果就为 false,左右两边结果不同,结果就为 true。

4、位运算符(与逻辑运算符不是同一个概念)

处理整型类型时,可以直接对组成整型数值的各个位完成操作。这意味着可以使用掩码技术得到整数中的各个位。位运算符包括:& | ~ ^ >> << >>>

注意事项:①&:“与” 运算符,两个都为 1 时才为 1,其他情况均为 0;②|:“或” 运算符,两个都为 0 时才为 0,其他情况均为 1;③~:“非” 运算符,取反,即 1 变为 0,0 变为1;④^:“异或” 运算符,相同值为 0,不同值为 1 ;⑤>>:“右移” 运算符,m>>n,把 m 的二进制数右移 n 位,m 为正数,高位全部补 0,m 为负数,高位全部补 1;⑥<<:“左移” 运算符,m<<n,把 m 的二进制数左移 n 位,高位超出 n 位都舍弃,低位补 0 (此时可能出现正数变负数);⑦>>>:“无符号右移” 运算符,m>>>n,整数 m 表示的二进制右移 n 位,不论正负数,高位都补 0。


二、数学工具类

1、Math 数学类

在 Math 类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。下面的汇总了一部分最常用的方法。

方法名方法说明方法名方法说明
Math.sqrt(i);求平方根Math.rint(f);奇数向上,偶数向下取整(浮点型)
Math.ceil(f);向上取整Math.floor(f);向下取整
Math.pow(m, n);m 的 n 次幂Math.round(i);四舍五入取整(整形)
Math.random();0-1 的随机数(浮点型)Math.abs(-i);取绝对值
Math.max(a, b);返回大值Math.min(a, b); 返回小值
Math.signum(i)小于 0 返回 -1 / 等于 0 返回 0 / 大于 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; // 2.7182818...
Math.sin(Math.PI / 6); // sin(π/6) = 0.5

2、Random 类

要生成一个随机数,可以使用 Random 对象。下面的汇总了一部分最常用的方法。

方法名方法说明方法名方法说明
nextInt();随机生成 int 数据类型范围的数nextInt(i);从0开始,左闭右开随机生成
nextLong()随机生成 long 数据类型范围的数nextFloat()生成一个 [0,1) 之间的 float
nextDouble()生成一个 [0,1) 之间的 double

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础:Java流程控制

块&#xff08;即复合语句&#xff09;是指由一对大括号括起来的若干条简单的 Java 语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。但是&#xff0c;不能在嵌套的两个块中声明同名的变量。使用块&#xff08;有时称为复合语句&#xff09;可以在Java程序结构中原本…

Java基础:Java类与对象

面向对象程序设计&#xff08;简称OOP&#xff09;是当今主流的程序设计范型&#xff0c;它已经取代了20世纪70年代的“结构化”过程化程序设计开发技术。Java是完全面向对象的&#xff0c;必须熟悉OOP才能够编写Java程序。面向对象的程序是由对象组成的&#xff0c;每个对象包…

SVN备份脚本

#!/bin/bash #svn全量备份脚本 wwytcode_path/home/wwytcode/project backup_path/home/bak Datedate %Y%m%d cd $backup_path echo date >> $back_path/svn_backup.log svnversionsvnlook youngest $wwytcode_path svnadmin dump --revision 0:$svnversion $wwytcode_pa…

Java基础:Java面向对象

面向过程的优点是性能比面向对象高&#xff0c;不需要面向对象的实例化&#xff1b;缺点是不容易维护、复用和扩展。面向对象的优点是具有封装、继承、多态的特性&#xff0c;因而容易维护、复用和扩展&#xff0c;可以设计出低耦合的系统&#xff1b;缺点是由于需要实例化对象…

薪资生成

import openpyxl from openpyxl.styles import Font,Alignment,Side,Border#设置字体样式 fontFont(name宋体,size20,boldTrue) font2Font(name宋体,size12,boldTrue) alignmentAlignment(horizontalcenter,verticalcenter,wrap_textTrue) sideSide(stylethin ,color000000) …

Java基础:Java抽象接口

在Java中&#xff0c;一个没有方法体的方法应该定义为抽象方法&#xff0c;而如果一个类中含有抽象方法&#xff0c;则该类必须定义为一个抽象类。接口是功能的集合&#xff0c;同样可看做是一种特殊的数据类型&#xff0c;是比抽象类更为抽象的类&#xff0c;接口只描述所应该…

13 张图带你学懂 Kubernetes Service(转载)

在 Kubernetes 中 Service 主要有4种不同的类型&#xff0c;其中的 ClusterIP 是最基础的&#xff0c;如下图所示&#xff1a; 当我们创建一个 NodePort 的 Service 时&#xff0c;它也会创建一个 ClusterIP&#xff0c;而如果你创建一个 LoadBalancer&#xff0c;它就会创建一…

Java基础:Java异常机制

异常是程序运行过程中出现的错误。Java 把异常当作对象来处理&#xff0c;把异常信息封装成了一个类&#xff0c;并定义一个基类java.lang.Throwable作为所有异常的超类。Throwable : 它是所有错误与异常的超类&#xff08;祖宗类&#xff09;,有两个子类 Error 和 Exception。…

JavaWeb:Servlet的应用及接口介绍

广义的 Servlet 泛指在服务器上运行的 Java 程序&#xff0c;但是这个 Java 程序&#xff0c;并不能独立运行&#xff08;因为 Servlet 没有 main 方法&#xff09;&#xff0c;需要部署在相应的 Servlet 容器中&#xff0c;比如 Tomcat 和 Jetty。Servlet 主要功能在于交互式地…

DOCKERFILE参数注解

Dockerfile由一行行命令语句组成&#xff0c;并且支持以#开头的注释行。 一般的&#xff0c;Dockerfile 分为四部分&#xff1a;基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 Dockerfile的指令是忽略大小写的&#xff0c;建议使用大写&#xff0c;使用 # 作为…

Zookeeper:分布式过程协同技术

Zookeeper 是一个高性能的分布式一致系统&#xff0c;在分布式系统中有着广泛的应用。基于它&#xff0c;可以实现诸如“分布式同步”、“配置管理”、“命名空间管理”等众多功能&#xff0c;是分布式系统中常见的基础系统。Zookeeper 主要用来解决分布式集群中应用系统的一致…

面试题2021-2-24

给某CentOs6虑拟机添加了新的数据盘&#xff0c;设备名为/de/sdd.写命令格式化满加的效的并挂载到指定目录/opt fdisk -l mkfs.ext4 /de/sdd mount /de/sdd /opt 如何查看与RabbtMQ服务器之间的establish状态连接数&#xff1f;netstat -an |grep ESTABLISHED |grep tcp |wc -l…

Zookeeper:在三种模式下的部署

zookeeper 安装模式有三种&#xff1a;单机模式&#xff1a;单机单 server&#xff1b;集群模式&#xff1a;多机多 server&#xff0c;形成集群&#xff1b;伪集群模式&#xff1a;单机多 server&#xff0c;形成伪集群。 ~ 本篇内容包括&#xff1a;Zookeeper 官网下载、Zook…

Linux namespace概述

操作系统通过虚拟内存技术&#xff0c;使得每个用户进程都认为自己拥有所有的物理内存&#xff0c;这是操作系统对内存的虚拟化。操作系统通过分时调度系统&#xff0c;每个进程都能被【公平地】调度执行&#xff0c;即每个进程都能获取到CPU&#xff0c;使得每个进程都认为自己…

Zookeeper:Zookeeper的主从选举机制

ZAB 协议&#xff0c;全称 Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子广播协议&#xff09;&#xff0c;是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的一致性协议。基于该协议&#xff0c;ZooKeeper 实现了一种主从模式的系统架构来保持集群中各个副…

Linux namespace之:uts namespace

理解uts namespace uts(UNIX Time-Sharing System) namespace可隔离hostname和NIS Domain name资源&#xff0c;使得一个宿主机可拥有多个主机名或Domain Name。换句话说&#xff0c;可让不同namespace中的进程看到不同的主机名。 例如&#xff0c;使用unshare命令(较新版本L…

Zookeeper:事件监听和通知机制

Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听&#xff0c;当服务端的一些指定事件触发了这个 Watcher&#xff0c;服务端会向指定客户端发送一个事件通知来实现分布式的通知功能&#xff0c;然后客户端根据 Watcher 通知状态和事件类型做出业务上的改变。 …

Linux namespace之:mount namespace

理解mount namespace 用户通常使用mount命令来挂载普通文件系统&#xff0c;但实际上mount能挂载的东西非常多&#xff0c;甚至连现在功能完善的Linux系统&#xff0c;其内核的正常运行也都依赖于挂载功能&#xff0c;比如挂载根文件系统/。其实所有的挂载功能和挂载信息都由内…

Linux namespace之:network namespace

理解network namespace network namespace用来隔离网络环境&#xff0c;「在network namespace中&#xff0c;网络设备、端口、套接字、网络协议栈、路由表、防火墙规则等都是独立的」。 因network namespace中具有独立的网络协议栈&#xff0c;因此每个network namespace中都…

Kubernetes 的原理

kubernetes 已经成为容器编排领域的王者&#xff0c;它是基于容器的集群编排引擎&#xff0c;具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 kubernetes &#xff0c;了解我们谈论 kubernetes 都是在谈论什么。 kuberne…