6. 精确使用浮点数BigDecimal
调用BigDecimal类的subtract()方法实现减法运算。
import java.math.BigDecimal;
public class AccuratelyFloat {
public static void main(String[] args) {
double money=2;
double price=1.1;
double result=money-price;
System.out.println("非精确计算:");
System.out.println("剩余:"+result);
BigDecimal money1 = new BigDecimal("2");
BigDecimal price1 = new BigDecimal("1.1");
System.out.println("精确计算:");
BigDecimal result1 = money1.subtract(price1);
System.out.println("剩余金额:"+result1);
}
}
非精确计算:
剩余:0.8999999999999999
精确计算:
剩余金额:0.9
实现俩个BigDecimal类实例对象加法运算方法声明
public BigDecimal add(BigDecimal augend)
减subtrcat,乘mutiply,除divide
7. 高效率的位运算
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("输入一个整数:");
long number=scan.nextLong();
System.out.println("该数乘2的结果为:" + (number << 1));
System.out.println("该数乘4的结果为:" + (number << 2));
System.out.println("该数乘8的结果为:" + (number << 3));
System.out.println("该数乘16的结果为:" + (number <<4));
System.out.println("该数除4的结果为:" + (number>>2));
}
}
//左移运算n次,相当于这个整数乘以2的n次方。如果执行右移n次,相当于除以2的n次方
- 不借助第三方实现2个变量(整数)的互换
import java.util.Scanner;
public class VairableExchange {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("输入变量A的值:");
long A=scan.nextLong();
System.out.println("输入变量B的值:");
long B = scan.nextLong();
System.out.println("A=" + A + "\tB=" + B);
System.out.println("变量互换");
A=A^B;//执行变量互换
B=B^A;
A=A^B;
System.out.println("A=" + A + "\tB=" + B);
}
}//异或^和其他位运算符并不改变变量本身的值,必须将其运算结果赋值给一个变量。
A=20 B=6
变量互换
A=6 B=20
- 判断是否为闰年
能被4整除且不能被100整除的为闰年,或者能被400整除的为润年。
import java.util.Scanner;
public class LeapYear {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("输入一个年份:");
long year = scan.nextLong();
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println("是闰年");
}else{
System.out.println("不是闰年!");
}
}
}
三元运算符(?:)是if else的一个简洁写法,可根据需求决定使用哪种。前者常用于赋值判断,后者常用于业务流程。
9. 验证登陆信息的合法性
使用 if else 进行多条件判断实现登陆信息验证。
import java.util.Scanner;
public class CheckLogin {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("输入登陆名:");
String username = scan.nextLine();
System.out.println("登陆密码:");
String password = scan.nextLine();
if (!username.equals("name")) {
System.out.println("用户不存在!");
} else if (!password.equals("pass")) {
System.out.println("密码错误!");
}else{
System.out.println("登陆成功!");
}
}
}
- switch语句的使用
import java.util.Scanner;
public class Example2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("新员工的语言为:");
String language = scan.nextLine();
switch(language.hashCode()){
case 3254818://Java的哈希值
case 2301506:
case 2269730:
System.out.println("被分配到java开发");
break;
case 3104:
case 2112:
System.out.println("被分配到C#项目组。");
break;
default:
System.out.println("不需要" + language);
}
}
}