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 ...
随机推荐
- 模式识别实验:基于主成分分析(PCA)的人脸识别
前言 本文使用Python实现了PCA算法,并使用ORL人脸数据集进行了测试并输出特征脸,简单实现了人脸识别的功能. 1. 准备 ORL人脸数据集共包含40个不同人的400张图像,是在1992年4月至 ...
- Florr 从新手到大佬
Florr 从新手到大佬 新手上路 首先在这里,你会遇到一些简单的教程.按照教程完成,也可以参考链接里的内容. 装备分为一下几种: $ \color{#7eef6D} \text{Common} $ ...
- 《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(中)
第 7 章 高级主题 7.2 并发 当两个用户获取同一个资源后,再同时修改该资源,就会导致并发问题 常见实现并发的方法有以下两种: 保守式并发控制,每次修改资源,都锁定资源 开放式并发控制,每次修改资 ...
- .NET Core开发实战(第28课:工作单元模式(UnitOfWork):管理好你的事务)--学习笔记
28 | 工作单元模式(UnitOfWork):管理好你的事务 工作单元模式有如下几个特性: 1.使用同一上下文 2.跟踪实体的状态 3.保障事务一致性 我们对实体的操作,最终的状态都是应该如实保存到 ...
- NC207569 牛牛爱奇数
题目链接 题目 题目描述 在牛牛面前放着 \(n\) 个数,这些数字既有奇数也有偶数,只不过牛牛对奇数情有独钟,他特别想让这些数都变成奇数. 现在牛牛获得了一种能力,他可以执行一种操作:每次选中一个偶 ...
- 51单片机(STC89C52)在Ubuntu下的开发
简介 都是8051衍生的8位单片机, STC单片机有89/90/10/11/12/15这几个大系列, 每个系列的特点如下 89系列是传统的8051单片机, 烧录方法有区别, 但是功能上可以和AT89系 ...
- 【OpenGL ES】渲染管线
1 前言 渲染管线是指图形渲染流程,涉及到的概念非常多,主要包含图元.片段.光栅化.空间.变换.裁剪.着色器.片段测试.混合等.渲染管线主体流程如下: 为方便读者理解渲染管线,本文将先介绍顶点 ...
- HTTP协议发展历程
HTTP协议发展历程 HTTP超文本传输协议是一个用于传输超文本文档的应用层协议,它是为Web浏览器与Web服务器之间的通信而设计的,HTTP协议到目前为止全部的版本可以分为HTTP 0.9.HTTP ...
- 虚拟化技术VirtualBox和vagrant基本使用
虚拟化技术VirtualBox和vagrant基本使用 1.首先安装VirtualBox 可以去官网下载 https://www.virtualbox.org/ 2.安装vagrant(根据自己电脑得 ...
- String--cannot convert from 'const char *' to 'LPTSTR'错误
这种错误,很多情况下是类型不匹配 LPTSTR表示为指向常量TCHAR字符串的长指针 TCHAR可以是wchar_t或char,基于项目是多字节还是宽字节版本. 看下面的代码,代码来源:Example ...