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 修饰的。可以直接通过枚举类型名使用它们

注意:

  • 当你需要定义一组常量时,尽量枚举类型
  • 另外尽量不要使用枚举的高级特性

例子:

  1. 定义枚举
  2. 变量定义为枚举类型
  3. 枚举变量的赋值
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的更多相关文章

  1. Java基础 —— Java常用类

    Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...

  2. Java常用类之要点总结

    Java常用类之要点总结

  3. Java常用类:包装类,String,日期类,Math,File,枚举类

    Java常用类:包装类,String,日期类,Math,File,枚举类

  4. Java常用类学习笔记总结

    Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...

  5. Java 常用类总结(SE基础)

    本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...

  6. Java常用类的使用

    Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...

  7. 第十四章 Java常用类

    14.常用类 14.1 字符串相关的类 1课时 14.2 JDK 8之前时间日期API 1课时 14.3 JDK8中新时间日期API 1课时 14.4 JDK8中的Optional类 1课时 14.5 ...

  8. Java常用类详解

    目录 1. String类 1.1 String的特性 1.2 String字面量赋值的内存理解 1.3 String new方式赋值的内存理解 1.4 String 拼接字面量和变量的方式赋值 1. ...

  9. Java常用类之String类、Stringbuffer和Random类练习

    定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...

  10. java常用类-上

    一,常用类之一包装类 java开发中习惯把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lan ...

随机推荐

  1. 营销(marketing)、推广(Promotion)和 运营(Operation)的概念分别是什么?

    首先要明确的原则: 1.你得承认"讨论任何事情之前不弄清楚概念定义就是耍流氓" 2.你得承认"由于每个人的经验学识和理解力的不同,我们常对概念定义产生分歧" 3 ...

  2. Visual Studio 2022 企业版 离线包 下载

    今天安装了Visual Studio 2022 企业版工具,觉得改进还是有一定的,下面提供下载及序列号: 链接:https://pan.baidu.com/s/1qvzg8WtsgaCxrD3M4Y0 ...

  3. Java开发学习(二十)----AOP总结

    一.AOP的核心概念 概念:AOP(Aspect Oriented Programming)面向切面编程,一种编程范式 作用:在不惊动原始设计的基础上为方法进行功能增强 核心概念 代理(Proxy): ...

  4. 小知识:杜绝明文密码,OGG的credentialstore特性

    之前OGG配置文件中都会明文记录密码,而在OGG12c及以上版本中,有一个特性credentialstore,可以用来杜绝明文密码,提升安全性. 这里测试添加credentialstore并配置数据库 ...

  5. SVC服务的发现

    目录 服务的发现 发现的方式 1. ClusterIP 2. 通过变量 3. 通过DNS(推荐) 服务的发现 发现的方式 服务的发现说的就是svc的ip只有集群内的资源可以访问到,比如集群内的节点,p ...

  6. JS script脚本async和defer的区别

    壹 ❀ 引 我在 google recaptcha 谷歌人机身份验证使用教程 一文中有引用这样一段外部资源代码,如下: <script src="https://www.google. ...

  7. Python枚举类型enum

    为什么需要枚举 枚举(Enum)是一种数据类型,也是一种特别的类,是绑定到唯一值的符号表示,可以使用它来创建用于变量和属性的常量集枚举类可以看成是一个下拉菜单,给出特定的选项且这些选项不可修改,更贴近 ...

  8. P2P通讯方式

    概述 实现p2p通讯我们提供两种方式,这两种方式分别是通过客户端直接互通和p2p映射: 无论哪一种,首先设备两端都得部署好fastnat客户端,NAT类型不能是对称类型NAT(Symmetric),否 ...

  9. fgrep命令

    fgrep命令 当需要搜索包含很多正则表达式元字符的字符串时,例如$.^等,fgrep很有用,其通过指定搜索字符串包含固定字符,从而无需对每个字符进行转义用反斜杠,如果搜索的字符串包含换行符,则每行将 ...

  10. 我的小程序之旅八:基于weixin-java-mp实现微信公众号被动回复消息

    在微信里有这样一个公众号[华为运动健康],当点击最新排行的时候,公众号就会发送今天最新的运动步数给你.如下图: 这里有两种格式的消息 1.有头像框,有聊天框--普通消息 2.消息有样式.颜色等--模板 ...