day17--Java常用类05
Java常用类
5.其他常用类
5.1Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。如果需要更加强大的数学运算能力,计算高等数学中相关内容,可以使用apache commons下面的Math类库。
package li.normalclass.other;
public class TestMath {
public static void main(String[] args) {
System.out.println(Math.PI);//PI
System.out.println(Math.random());//随机数
System.out.println(Math.abs(-5));//absolute 求绝对值
System.out.println(Math.floor(4.5));//向下取整 4.0
System.out.println(Math.ceil(4.5));//向上取整 5.0
System.out.println(Math.round(4.5));//四舍五入 5
System.out.println(Math.pow(2,5));//幂指数 2的5次方 32.0
System.out.println(Math.signum(-50.5));//判断符号-->负数返回-1.0
System.out.println(Math.signum(123));//整数返回1.0
System.out.println(Math.signum(0));//0返回0.0
System.out.println(Math.sqrt(25));//开方 5.0
}
}
5.2Random类
Math中虽然为我们提供了产生随机数的方法Math.random(),但是通常我们需要的随机数并不是[0,1)之间的double类型的数据,这就需要对其进行一些复杂的运算。如果使用Math.random()计算过于复杂的话,我们可以使用额外一种方式得到随机数,即Random类,这个类是专门用来生成随机数的,并且Math.random()底层调用的就是Random类的nextDouble()方法。
构造方法:
Random() 创建一个新的随机数生成器
Random(long seed) 使用单个long种子创建一个新的随机数生成器
只要种子数和nextInt()中的参数一致的话,每次生成的随机数列都是一样的(伪随机数)
例子:
package li.normalclass.other;
import java.util.Random;
/*
Math.random()底层调用的就是Random类的nextDouble()方法
产生[0,1)之间的随机double数
*/
public class TestRandom {
public static void main(String[] args) {
//随机数的生成是从种子值开始。 如果反复使用同一个种子,就会生成相同的数字系列,
// 产生不同序列的一种方法是使种子值与时间相关
Random rand = new Random(System.nanoTime());
for (int i = 0; i < 10; i++) {
//System.out.println(rand.nextDouble());
System.out.println(rand.nextInt(20));//[0,20)
}
//生成一个从[10,20]的随机整数
//思路:即[10,21)----即[0,11)+10
for (int i = 0; i < 10; i++) {
System.out.println(rand.nextInt(11)+10);
}
}
}
5.3枚举
JDK1.5引入枚举类型。枚举类型的定义包括枚举声明和枚举体。枚举体就是放置一些常量。定义枚举要使用关键字enum关键字。对于性别、季节、星期几等内容,如果定义为字符串类型,是很难限制其取值的。采用枚举可以轻松解决该问题。
所有的枚举类型隐形地继承自java.lang.Enum。枚举类型实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,它们默认都是pubilc static final 修饰的。可以直接通过枚举类型名使用它们
注意:
- 当你需要定义一组常量时,尽量枚举类型
- 另外尽量不要使用枚举的高级特性
例子:
- 定义枚举
- 变量定义为枚举类型
- 枚举变量的赋值
package li.normalclass.other;
//性别的枚举定义
public enum Gender {
男,女
}
package li.normalclass.other;
public class Person {
private String name ;
private Gender sex ;//变量定义为枚举类型
public Person() {
}
public Person(String name, Gender sex) {
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Gender getSex() {
return sex;
}
public void setSex(Gender sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
package li.normalclass.other;
public class Application {
public static void main(String[] args) {
// 使用枚举类来定义性别
Person person = new Person("张三",Gender.男);//枚举变量的赋值
System.out.println(person);
}
}

例子2:
package li.normalclass.other;
public enum Season {
春,夏,秋,冬
}
package li.normalclass.other;
public class TestSeason {
public static void main(String[] args) {
//定义一个枚举变量
Season season ;
//给枚举变量赋值
season = Season.冬;
//switch
switch(season){
case 春:
System.out.println("踏青 放风筝 春意盎然");break;
case 夏:
System.out.println("吃西瓜 吃雪糕 夏日炎炎");break;
case 秋:
System.out.println("赏菊 登高 秋高气爽");break;
case 冬:
System.out.println("滑冰 打雪仗 寒冬腊月");break;
}
}
}

day17--Java常用类05的更多相关文章
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类之要点总结
Java常用类之要点总结
- Java常用类:包装类,String,日期类,Math,File,枚举类
Java常用类:包装类,String,日期类,Math,File,枚举类
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
- Java常用类的使用
Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...
- 第十四章 Java常用类
14.常用类 14.1 字符串相关的类 1课时 14.2 JDK 8之前时间日期API 1课时 14.3 JDK8中新时间日期API 1课时 14.4 JDK8中的Optional类 1课时 14.5 ...
- Java常用类详解
目录 1. String类 1.1 String的特性 1.2 String字面量赋值的内存理解 1.3 String new方式赋值的内存理解 1.4 String 拼接字面量和变量的方式赋值 1. ...
- Java常用类之String类、Stringbuffer和Random类练习
定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...
- java常用类-上
一,常用类之一包装类 java开发中习惯把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lan ...
随机推荐
- 群联预告满血PCIe 5.0 SSD主控:飙上14.7GB/s
群联电子将在CES 2024上展示两款新的PCIe 5.0 SSD主控方案,一个定位旗舰,一个面向主流. PCIe 5.0 SSD诞生已经差不多一年了,但是受限于群联E26主控的先天不足,以及闪存技术 ...
- Linux中国开源社区停止运营
layout: post title: "Linux 中国开源社区停止运营" tags: - "Linux" 昨天看到老王发的公众号文章,Linux中国开源社区 ...
- go语言中 字符串 多行字符串 转义
- Idhttp Post https 连接 报“IOHandler value is not valid.”错误
今天研究阿里巴巴的对接,发现IDHTTP 的post 如果是 https 的连接就会报:"IOHandler value is not valid."错误 加载https的站点页面 ...
- CF1826D Running Miles
题目链接 题解 知识点:贪心,前缀和,枚举. 首先考虑一个贪心结论,选择区间端点一定是两个最大值,因此 \(i_1 = l,i_3 = r\) . 考虑变形式子 \((b_l + l) + b_{i_ ...
- NC50493 石子合并
题目链接 题目 题目描述 将n堆石子绕圆形操场排放,现要将石子有序地合并成一堆.规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分. 请编写一个程序,读入堆数n及每堆的石子 ...
- python 中异常类型总结
异常类型: 异常名称 描述BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt ...
- k8s-权限管理
目录 1. 身份认证 node节点操作 创建普通用户并授权 1. 生成私钥 2. 生成zhangsan用户证书请求文件 3. 为zhangsan用户颁发证书 4. 创建命名空间及pod 5. 创建角色 ...
- STM32的串口通信UART/TTL
常用的串口pin STM32的串口是基础通信方式, 每个型号都带多组串口, 一般都使用默认的组, 可以参考芯片的datasheet, 去看pinout and pin definitions, stm ...
- GDI实现透明菜单位图
case WM_CONTEXTMENU: { m_hMenu = CreatePopupMenu(); g_BitMap = (HBITMAP)LoadImage(NULL, L"1.bmp ...