1.Math类
java.lang.Math提供了一系列的方法用于科学计算,而且都是静态的。
- Math类的静态属性:
Math.PI圆周长与其直径的比率,也就是圆周率。
【示例】计算圆周长
// 半径
double radius = 5.0;
// 计算圆周长
double circumference = 2*Math.PI*radius;
// 圆周长:3.141592653589793
System.out.println("园周长:" + circumference);
- Math类的静态方法:
Math.ceil():返回大于参数的最小整数(天花板取整)。
Math.floor():返回小于参数的最大整数(地板取整)。
Math.round():返回四舍五入的整数。
【示例】小数取整案例
// 地板取整
System.out.println(Math.floor(12.56)); // 输出:12.0
// 天花板取整
System.out.println(Math.ceil(12.56)); // 输出:13.0
// 四舍五入取整
System.out.println(Math.round(12.56)); // 输出:13
Math.max(data1, data2):返回两个数的最大值。
Math.min(data1, data2):返回两个数的最小值。
【示例】获取两个数的最值案例
// 获取两个数的最大值
System.out.println(Math.max(12.0, 5.0)); // 输出:12.0
// 获取两个数的最小值
System.out.println(Math.min(12.0, 5.0)); // 输出:5.0
Math.abs(data):取绝对值。
Math.pow(a, b):a的b次方幂。
Math.sqrt(double a):开平方根。
【示例】abs、pow和sqrt案例
// 取绝对值
System.out.println(Math.abs(-11.2)); // 输出:11.2
// a的b次方幂
System.out.println(Math.pow(2, 3)); // 输出:8.0
// 开平方根
System.out.println(Math.sqrt(9.0)); // 输出:3.0
Math.random(): 返回 0.0(包含) 到 1.0(不包含) 的随机数。
【示例】获取1到10之间的随机数
// 获取区间为[1, 10]的随机整数(方式一)
double num1 = Math.ceil(Math.random() * 10);
// 获取区间为[1, 10]的随机整数(方式二)
int num2 = (int)(Math.random() * 10 + 1);
我们还可以通过java.util.Random类提供的成员方法来获取一个随机整数,例如rand.nextInt(10)产生的是[0, 1]的随机整数。。
【示例】获取1到10之间的随机数
// 创建一个Random对象
java.util.Random random = new java.util.Random();
// 获取区间为[1, 10]的随机整数
int num = random.nextInt(10) + 1;
2.UUID类
UUID是通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件构建的标准,其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,不需要通过中央控制端来做辨识信息的指定。它由一组32位数的16进制数字所构成。
【示例】Java中生成UUID方式
import java.util.UUID;
public class Test {
public static void main(String[] args) {
// 生成一个随机的UUID对象
UUID uuid = UUID.randomUUID();
// 把UUID对象转化为字符串
String code = uuid.toString();
System.out.println(code);
}
}
3.枚举类
枚举(enum)类型是JDK1.5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
枚举类型的定义包括枚举声明和枚举体。格式如下:
enum 枚举名 {
枚举体(常量列表)
}
枚举体就是放置一些常量,多个常量用逗号分隔。
【示例】创建枚举类型
enum Season {
SPRING, SUMMER, AUTUMN, WINDER;
}
enum的语法结构尽管和class的语法不一样,但是经过编译器编译之后产生的是一个class文件,所有的枚举类型隐性地继承自java.lang.Enum,枚举实质上还是类。而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的(可以通过反编译查看)。
【示例】枚举的简单使用
// 枚举
enum Gender {
MAN, WOMAN;
}
// Person类
class Person {
// 姓名属性
String name;
// 性别属性:男或女。保证数据的安全性,选用枚举
Gender sex;
// 构造方法
public Person(String name, Gender sex) {
this.name = name;
this.sex = sex;
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 创建Person对象,并对属性赋值
Person p = new Person("小明", Gender.MAN);
// 输出:"name: 小明 sex: MAN"
System.out.println("name: " + p.name + " sex: " + Gender.MAN);
}
}
【示例】枚举遍历
enum Week {
星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日;
}
// 测试类
public class Test {
public static void main(String[] args) {
// 遍历所有的枚举
for(Week week : Week.values()) {
System.out.println("week: " + week);
}
}
}
【示例】枚举在switch中的使用
enum Season {
SPRING, SUMMER, AUTUMN, WINDER;
}
// 测试类
public class EnumDemo {
public static void main(String[] args) {
// 获取0到3之间的随机数
int num = new java.util.Random().nextInt(4);
System.out.println(num);
// 根据随机数,得到枚举值
Season season = Season.values()[num];
switch(season) {
// 在switch中Season.SPRING可以简写为SPRING
case SPRING:
System.out.println("春天");
break;
case SUMMER:
System.out.println("夏天");
break;
case AUTUMN:
System.out.println("秋天");
break;
case WINDER:
System.out.println("冬天");
break;
}
}
}
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。