Math 类
数学类
Java 提供用来处理和计算复杂数学运算的类,Math
Math 类常见方法
需要说明的是 Math 类是被 final 修饰的,因此我们无法通过书写子类来继承它,同时 Math 也无法创建,因为它的构造方法为私有
/**
* Don't let anyone instantiate this class.
*/
private Math() {}
可以开发 Math 方法的人并不像让使用者对它进行实例化,那么我们该如何使用其中的方法呢,好在 Math 类的所有方法提供了 static 静态访问,因此我们可以在不创建对象的情况下,调用这些静态方法。
- PI // 圆周率
- E // 自然常数,属性
- abs(num) // 返回num值的绝对值
- ceil(a) // 向上取整
- floor(a) // 向下取整
- sqrt(a) // 获得到平方根
- cbrt(a) // 开立方根
- random() // 获取一个 [0, 1) 的值(可以的到 0 是因为可能会随机到 0.00000000 000001 位数太多只取前面的值)
public static void main(String[] args) {
System.out.println(Math.PI);
System.out.println(Math.E);
System.out.println(Math.abs(-1));
System.out.println(Math.abs(1));
System.out.println(Math.ceil(4.4));
System.out.println(Math.floor(4.4));
System.out.println(Math.sqrt(9));
System.out.println(Math.cbrt(27));
System.out.println(Math.random());
}
3.141592653589793
2.718281828459045
1
1
5.0
4.0
3.0
3.0
0.08017803379567279
Math.random() 类的应用
获取到 [10~30) 之间的随机数
public class Test {
public static void main(String[] args) {
test(10, 30);
}
public static void test(int a, int b) {
for (int i = 0; i < 100; i++) {
int random = (int)(Math.random() * 20) + 10;//Math.random() * (b-a)*a
System.out.println(random);
}
}
}
Scanner 类
Scanner 是个 IO 流,使用完毕需要关闭。
Scanner 类和 Math 类一样也是用 final 进行修饰的,因此他也无法被子类继承。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();//接收一个整型
String s = scanner.nextLine();//接受一段字符串
double v = scanner.nextDouble();//接收浮点型
boolean b = scanner.nextBoolean();//接收布尔型
}
Random 类
随机数:计算机中随机数都是伪随机数(是通过特定得算法得到得虽然这个算法得到得数足够离散)
Random random = new Random(100);
for (int i = 0; i < 100; i++) {
double v = random.nextInt();
System.out.println("v = " + v);
}
Random 提供一个构造方法,seed 表示生成的随机数的离散状态。
String 类(字符串对象)
java.lang.String
字符串:字符连在了一起,形成了字符串。
人的肉眼可以识别分符号
在 Java 中,一般表现为 “”,引号的内部内容就是字符串
在 Java 中,字符串是引用数据类型(对象)
定义字符串:
String s = “this is a book!”;
第二种定义方式
new String() // 获取字符串
String ss = new String(); // 等价于 “”
注意:字符串不要使用等于 String ss = new String(“a”) 中创建了几个对象?
答案:一个或者两个,如果在常量池中存在 “a” 就会创建一个对象,如果没有就会创建一个 “a” 同时又会在堆中创建一个 ss 对象的地址。