Java学习

Math

是一个帮助我们用于进行数学计算的工具类
私有化构造方法,所有的方法都是静态的

***Math的常用方法***
public static int abs(int a)获取参数绝对值
public static double ceil(double a)向上取整
public static double floor (double a)向下取整
public static int round(float a)四舍五入
public static int max(int a , int b)获取两个int值中的较大值
public static int min(int a , int b)获取两个int值中的较小值
public static double pow(double a,double b)返回a的b次幂
public static double random()返回值为double的随机值,范围为[0.0,1.0 )

system

public static void exit(int status)
//终止运行当前Java虚拟机
public static long currentTimeMillis()
//返回当前系统的时间毫秒值形式
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)
//数组拷贝 

注:如果数据源数组和目的地数组都是基本数据类型,那么两者数据类型要保持一致,否则会报错

runtime

runtime表示当前虚拟机的运行环境

public static Runtime()
//当前系统的运行环境对象
public void exit(int status)
//停止虚拟机 
public int availableProcessors
//获得cpu的线程数
public void maxMemory()
//JVM能从系统中获取总内存大小
public long totalMemory()
//JVM已经从系统中获取内存总大小
public long freeMemory()
//JVM剩余内存大小
public Process exec(String command)
//运行cmd命令

常用cmd命令
关机:shutdown
加上参数才能执行
-S:默认一分钟后关机
-s -t 指定关机时间
-a ;取消关机操作
-r :关机并重启

Object

Obgect的构造方法
方法名:public Object()
Object的成员方法

public String toString()
//返回对象的字符串表示形式
public boolean equals(Object obj)
//比较两个对象是否相等
protected Object clone(int a)
//对象克隆

toString方法的结论:
如果我们打印一个对象,想要看到属性值的话,那么就要重写toString方法就可以了
在重写方法中,把对象的属性进行拼接
equals方法的结论:
如果没有重写equals方法,那么默认使用Object中的方法进行比较,比较的是地址值是否相等,重写后比较的是内部属性值

对象克隆

浅克隆:不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来
深克隆:基本数据类型拷贝过来;字符串复用;引用数据类型会创建新的

Objects

public static boolean equals(Object a, Object b)
//先做非空判断
public static boolean isNull(Object obj)
//判断对象是否为null,为null返回true,反之
public static boolean nonNull(Object obj)
//判断对象是否为null,跟isNull的结果相反 

BigInteger构造方法

public BigInterger(int num, Random rnd)
//获取随机大整数,范围[0~3的num次方-1]
public BigInterger(String val)
//获取指定大整数
public BigIntergerString val, int radix)
//获取指定进制的大整数
public static BigInterger valueOf(long val)
//静态方法获取BigInterger的对象,内部有优化
//1.在表示范围比较小时,只能在long的范围之内,如果超出long的范围就不行了
//2.在内部对常用的-16~16进行优化

对象一旦创建,内部记录的值不能发生改变

public BigInteger add(BigInteger val)加法
public BigInteger subtract(BigInteger val)减法
public BigInteger multiply(BigInteger val)乘法
public BigInteger divide(BigInteger val)除法,获取商
public BigInteger[] divideAndRemainder(BigInteger val)除法,获取商和余数
public Boolean equals(BigInteger val)比较是否相同
public BigInteger equals(BigInteger val)次幂
public BigInteger max/min(BigInteger val)返回较大值/较小值

BigDecima

1.用于小数的精确计算
2.用于表示很大的数

//通过字符串来创建对象
BigDecimal bd3 = new BidDecimal("0.01")
//通过静态方法获取对象
BigDecimal bd6 = BigDecimal.valueOf(10)

细节:
如果数字较大用静态方法
如果数字较小用构造方法
弱国是0~10之间的整数,那么方法会自己创建好对象,不会重新new

BigDecima的使用
public static BigDecima valueOf(double val)
//获取对象
public BigDecima add(BigDecima val)
//加法
public BigDecima subtract(BigDecima val)
//减法
public BigDecima multiply(BigDecima val)
//乘法
public BigDecima divide(BigDecima val)
//除法
public BigDecima divide(BigDecima val,精确几位,舍入模式)
//除法

up:远离零方向的舍入模式
down:向零方向舍入的舍入模式
ceiling:向正无限大方向舍入的舍入模式
floor:向负无限大方向舍入的舍入模式
half_up:四舍五入

正则表达式

Java学习_第1张图片

爬虫

public String[] matches(String regex)
//判断字符串是否满足正则表达式的规则
public String replaceAll(String regex,String newStr)
按照正则表达式的规则进行替换
public String split(String regex)
//按照正则表达式的规则切割字符串

replaceAll细节:
方法在底层跟之前一样也会创建文本解析器的对象
然后从头开始去读取字符串中的内容,只要有满足的,那么就用第二个参数去替换。

分组

//1.需求:判断一个字符擦胡你的开始字符和结束字符是否一致?只考虑一个字符
举例:a123a b456b 17891 &abc&
String regex1="(.).+\\1";
System.out.println("a123a".matched(regex1));
System.out.println("b456b".matched(regex1));
System.out.println("17891".matched(regex1));
System.out.println("&abc&".matched(regex1));
System.out.println("a123b".matched(regex1));
//2.需求:判断一个字符串的开始部分和结束部分是否一致?可以有多个字符
举例:abc123abc b456b 123789123 &!@abc&!@
String regex2="(.+).+\\1";
System.out.println("abc123abc".matches(regex2));
System.out.println("b456b".matches(regex2));
System.out.println("123789123".matches(regex2));
System.out.println("&!@abc&!@".matches(regex2));
System.out.println("abc123abd".matches(regex2));
//3.需求:判断一个字符串的开始部分和结束部分是否一致?开始部分内部每个字符也需要一致
//(.):把首字母看作一组
//\\2:把首字母拿出来再次使用
//*:作用于\\2,表示后面重复的内容出现0次或多次
String regex3="((.)\\2)*.+\\1"
System.out.println("aaa123aaa".matches(regex3));
System.out.println("bbb456bbb".matches(regex3));
System.out.println("111789111".matches(regex3));
System.out.println("&&abc&&".matches(regex3));
System.out.println("aaa123aab".matches(regex3));


捕获分组:
后续还要继续使用本组的数据。
正则内部使用:\组号
正则外部使用:$组号
非捕获分组:
分组之后不需要再用本组数据,仅仅是把数据括起来
(?:正则)----获取所有
(?=正则)----获取前面部分
(?!正则)----获取不是指定内容的前面部分

时间

Date----时间
SimpleDateFormat----格式化时间
Calendar----日历

//1、如何创建日期对象?
Date date = new Date();
Date date = new Date(指定毫秒值);
//2、如何修改时间对象中的毫秒值
setTime(毫秒值);
//3、如何获取时间对象中的毫秒值
getTime();

SimpleDateFormat

public SimpleDateFormat()
//构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern)
//构造一个SimpleDateFormat,使用指定格式
public final String format(Date date)
//格式化(日期对象->字符串)
public Date parse(String source)
//解析(字符串->日期对象)

Java学习_第2张图片

你可能感兴趣的:(java)