Object:java中的上帝类,根类
1.是所有类,接口,数组的根类
2.集合了所有类的共性的数据方法
3.常用的方法有
3.1: tostring()方法:提供打印对象位字符串的规则方法
默认的打印方式:类的包所在的全限定名+@+hasCode
Object on = new Object(); System.out.println("将on引用的对象进行打印成字符串:"+on.toString());
3.2: equals():提供判断和另一个对象是否指向同一个地址引用。
注意:(1)用于引用数据类型的判断,不能用于基本数据类型,默认使用object的判断是否相等,可以重写父类的equals方法定义自己的判断相等的标准。
(2)== 比较运算符既可以用于判断基本数据类型的值是否相等。也可以用于判断引用数据类型是否相等(在堆内存中的地址是否是同一个)
@Override public boolean equals(Object obj) {//user1 重写父类的equals方法 User1 O = (User1) obj; return this.name.equals(O.name); }
3.3:hashCode():提供获取对象在堆内存中地址的十进制虚地址值方法 User1 u1 = new
User1 u1 = new User1("苏沐橙",18); System.out.println(u1.hashCode());
3.4:clone(): 提供new之外创建对象副本的方法,注意子类要去实现clone接口才能提供
注意:(1)子类要重写Cloneable接口,扩展复制的能力,在重写object的clone方法就可以复制了。(2)复制的副本是另一个对象
@Override protected Object clone() throws CloneNotSupportedException {//重写clone方法 return super.clone(); }
包:java.lang.object,在lang包下的类无需导包。
package com.hpf;
public class objectDemo {
public static void main(String[] args) {
//object演示
Object on = new Object();
Object to = new Object();
boolean yes = on.equals(to);
System.out.println("yes =" +yes);
yes = (on == to);
System.out.println("yes ="+yes);
System.out.println("将on引用的对象的hascode值转成16进制打印"+Integer.toHexString(on.hashCode()));
System.out.println(Integer.toHexString(to.hashCode()));
System.out.println("将on引用的对象进行打印成字符串:"+on.toString());
System.out.println("将to引用的对象进行打印成字符串:"+to.toString());
//User1子类演示
User1 u = new User1("苏沐橙",19);
int ui = u.hashCode();
System.out.println(ui);
User1 u1 = new User1("苏沐橙",18);
System.out.println(u1.hashCode());
//判断对象是否相等
boolean equals = u.equals(u1);
System.out.println(equals);
System.out.println(u == u1);
int a =6;
int b = 5;
boolean c = a == b;
System.out.println(c);
//查看学生的信息
System.out.println(u);
System.out.println(u.toString());
//对象的克隆演示实例
try {
User1 ucooy = (User1) u.clone();
System.out.println(ucooy.name);
System.out.println(ucooy.age);
System.out.println(u.hashCode() == ucooy.hashCode());//false 判断看了的对象和原本对象不是同一个对象
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
class User1 implements Cloneable{
String name ="女孩";
int age = 18;
public User1() {
}
public User1(String name, int age) {
this.name = name;
this.age = age;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
@Override
public boolean equals(Object obj) {//user1 重写父类的equals方法
User1 O = (User1) obj;
return this.name.equals(O.name);
}
}
Math:算术类
算术运算工具类,为我们提供了算术运算的能力工具
package com.hpf;
public class MathDemo {
public static void main(String[] args) {
int x = -6;
System.out.println(Math.abs(x));//abs:绝对值
double y = -3.6;
System.out.println(Math.ceil(y));//ceil:向上取整
System.out.println(Math.floor(y));//floor:向下取整
System.out.println(Math.round(y));//round:四舍五入
System.out.println(Math.random());//random:产生一个随机小数[0,1]取值范围
System.out.println(Math.min(x,y));//min:获取最小值
System.out.println(Math.max(x,y));//max:获取最大值
System.out.println(Math.PI);//圆周率pi
System.out.println(Math.E);//自然常数
}
}
Arrays:数组操作工具类
package com.hpf;
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
String[] st ={"星期一","星期二","星期三","星期四","星期五","星期六","星期天"};
//打印查看数组
String s = Arrays.toString(st);
System.out.println(s);
int[] arr ={4,3,6,2,7,1,9};
System.out.println(arr);
Arrays.sort(arr);//排序
System.out.println(Arrays.toString(arr));//排好序打印数组
int search = Arrays.binarySearch(arr, 2);//binarySearch:按二分查找法查找key在数组(排好序)a中的位置
System.out.println("查找的值的位置是:"+search);
Arrays.fill(arr,1,5,6);//fill:将数组arr索引为1至5修改为6
System.out.println(Arrays.toString(arr));
int[] ints = Arrays.copyOfRange(arr, 1, 6);//copyOfRange:复制数组arr索引为1-6的元素为新数组
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(ints));
}
}
Random:随机数操作类
package com.hpf;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class RandomDemo {
public static void main(String[] args) {
Random random =new Random();
byte[] st = new byte[5];
for (int i = 0; i < 5; i++) {
System.out.println(random.nextDouble());//[0,1)随机小数 同Math.random()
System.out.println(random.nextInt());//产生int范围的随机数
System.out.println(random.nextInt(10));//产生int范围在0,10的随机数
random.nextBytes(st);
}
System.out.println(Arrays.toString(st));
byte[] b =new byte[1];
random.nextBytes(b);
System.out.println(Arrays.toString(b));
}
}
Date|simpleDateFormat|Calendar:日期类
package com.hpf;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class SimpLeDateFormat {
public static void main(String[] args) throws ParseException {
Date date = new Date();//获取当前系统时间
System.out.println("当前系统时间="+date);
System.out.println(date.getTime());//获取时间距离1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
SimpleDateFormat rq = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//SimpleDateFormat:处理日期格式化的类
System.out.println(rq.format(date));
String st ="2022年4月24日 1时34分23秒";
Date parse = rq.parse(st);//
System.out.println(parse);
//Calender 日历类
//创建一个和当前系统时间构建的日历对象实例
Calendar instance = Calendar.getInstance();
System.out.println(instance.get(Calendar.YEAR));//当前系统时间的年
System.out.println(instance.get(Calendar.MARCH)+1);//当前系统时间的月
System.out.println(instance.get(Calendar.DAY_OF_MONTH));
System.out.println(instance.get(Calendar.DAY_OF_WEEK) - 1);//当前系统时间的周几
int wfm = instance.get(Calendar.WEEK_OF_MONTH);//日历式的第几周
System.out.println("日历式的第几周="+wfm);
int NS = instance.get(Calendar.DAY_OF_WEEK_IN_MONTH);//某月中的第几周
System.out.println("某月中的第几周="+NS);
int wk = instance.get(Calendar.WEEK_OF_YEAR);//一年的第多少周
System.out.println("一年的第多少周="+wk);
int dy = instance.get(Calendar.DAY_OF_YEAR);//一年的第多少天
System.out.println("一年的第多少天="+dy);
System.out.println("时:"+instance.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+instance.get(Calendar.MINUTE));
System.out.println("秒:"+instance.get(Calendar.SECOND));
Date time = instance.getTime();
}
}
BigDecimal类:不可变的,任意精度的有符号十进制,可以解决数据丢失问题
package com.hpf;
import java.math.BigDecimal;
public class BigDecimalDemo {
public static void main(String[] args) {
BigDecimal b = new BigDecimal("0.9");
BigDecimal c = new BigDecimal("0.1");
BigDecimal s = b.add(c);//加法
System.out.println(s);
BigDecimal z =b.subtract(c);//减法
System.out.println(z);
s = b.multiply(c);//乘法
System.out.println(s);
System.out.println(s = b.divide(c));//除法
}
}