Java暑期学习Day06
今天是第6天,希望能支持下去ps.写了一个多小时的突然崩了我的心是崩溃的{:10_291:}
① 使用标准类之java.util.Scanner
package tankwar;
import java.util.Scanner;
public class A {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = (int) (Math.random() * 10);
int guess;
do {
System.out.println("猜数字(0~9):");
guess = scanner.nextInt();
} while (guess != number);
System.out.println("猜中了...XD");
}
} A. 在建立Scanner实例时,必须传入java.io.InputStream的实例
System.in就是一种InputStream
B. Scanner的nextInt()方法会看着标准输入中,有没有输入下一个字符串(以空格或换行分隔),有的话会尝试将之剖析为int类型。
Scanner对每个基本类型,都会有对应的nextXXX()方法,如nextByte()、nextShort()、nextBoolean()等
如果直接取得上一个字符串(以空格或换行分隔),则使用next(),如果想取得用户输入的整行文字,则使用nextLine()(以换行分隔)
② 使用标准类之java.math.BigDecimalpackage tankwar;
import java.math.BigDecimal;//取得更好的精确度
public class A {
public static void main(String[] args) {
BigDecimal operand1 = new BigDecimal("1.0");
BigDecimal operand2 = new BigDecimal("0.8");
BigDecimal result = operand1.subtract(operand2);
System.out.println(result);//0.2
}
}
A. Java(包括其他程序语言)遵守IEEE 754浮点数运算规范,使用分数与指数来表示浮点数
B. BigDecimal提供有plus()、substract()、multiply()、divide()等方法,可以进行加、减、乘、除等运算,这些方法都会返回代表运算结果的BigDecimal
③ 对象指定与相等性
package tankwar;
import java.math.BigDecimal;
public class A {
public static void main(String[] args) {
int x = 1;
int y = 1;
int z = x;
System.out.println(x == y);// true
System.out.println(x == z);// true
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("1.0");
System.out.println(a == b);// false
System.out.println(a.equals(b));// true
}
}
区别点: 1.“==”对于基本数据类型,判断两个变量的值是否相等。
“equals”不能用于基本数据类型。只能用于类变量。对于基本数据类型要用其包装类。
2.“==”用于比较两 个变量的值是否相等,而不是变量引用的对象是否相等 。
(因为对象变量的存储的是对象在内存中的路径,即内存地址。所以用“==”比较时,即使对象的值相等,但是他们的内存地址不同。)
3.“==”比较的是值【变量(栈)内存中存放的对象的(堆)内存地址】
equals用于比较两个对象的值是否相同【不是比地址】
4.如果一个类没有自己定义equals方法,它默认的equals方法(从Object类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果
页:
[1]