目录
一、Math
是一个帮助我们用于进行数学计算的工具类
私有化构造方法,所有的方法都是静态的
package cn.nwafu.Math;
public class Test1 {
public static void main(String[] args) {
//判断一个数是否为只质数
//要求:提升效率
System.out.println(isPrime(997));
}
//分析:
//997 2~996 995次
//30次
public static boolean isPrime(int number) {
int count = 0;
for (int i = 2; i <= Math.sqrt(number); i++) {
count++;
if ( number % i == 0){
return false;
}
}
System.out.println(count);
return true;
}
}
二、System
System也是一个工具类,提供了一些与系统相关的方法
时间原点: 1970年1月1日0:0:0,我国在东八区,有8小时时差。
三、Runtime
Runtime表示当前虚拟机的运行环境
四、Object与Objects
Object:
0bject是Java中的顶级父类。所有的类都直接或间接的继承于Object类。
object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法。
package cn.nwafu.Object;
//一道面试水题
public class test1 {
public static void main(String[] args) {
String s = "abc";
StringBuilder sb = new StringBuilder("abc");
System.out.println(s.equals(sb));//false
//因为equals方法是被s调用的,而s是字符串
// 所以equals要看string类中的
//字符串中的equals方法,先判断参数是否为字符串
//如果是字符串,再比较内部的属性
//但是如果参数不是字符串,直接返回false
System.out.println(sb.equals(s));//false
//因为equals方法是被sb调用的,而sb是stringBuilder
//所以这里的equals方法要看stringBuilder中的equals方法
//那么在StringBuilder当中,没有重写equals方法
//使用的是object中的
//在object当中默认是使用==号比较两个对象的地址值
//而这里的s和sb记录的地址值是不一样的,所以结果返回false
}
}
总结:浅克隆
不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来
深克隆
基本数据类型拷贝过来
字符串复用
引用数据类型会重新创建新的
Object总结:
- Object是Java中的顶级父类。
所有的类都直接或间接的继承于Object类。
- tostring():一般会重写,打印对象时打印属性
- equals():比较对象时会重写,比较对象属性值是否相同
- clone():默认浅克隆。
如果需要深克隆需要重写方法或者使用第三方工具类。
Objects
objects是一个工具类,提供了一些方法去完成一些功能。
五、BigInteger和BigDecimal
BigInteger
在Java中,整数有四种类型:byte,short,int,long。
在底层占用字节个数: byte1个字节、short2个字节、int4个字节、long8个字节。
Biglnteger构造方法小结:
如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。
如果BigInteger表示的超出long的范围,可以用构造方法获取。
对象一旦创建,BigInteger内部记录的值不能发生改变。
只要进行计算都会产生一个新的BigInteger对象
BigInteger 常见成员方法
BigDecimal
BigDecima的作用
用于小数的精确计算
用来表示很大的小数
负号存储,正号不存储