一、java.util.Object的个人理解
1.主类方法
Object()
clone
//创建并返回此对象的副本
//一般用于保存或者对其原对象进行更矮时保存
clone();
实例演示
(待解决!idea中Object暂未能使用)
Object
//判断是否相等,返回值为boolean
equals(Object obj);
public class Text{
public static void main(String[] args) {
Object a = "霞";
Object b = "云";
Object c = null;
//可用,返回false
System.out.println(a.equals(b));
//可用,返回true
System.out.println(a.equals(a));
//系统报错
System.out.println(c.equals(a));
//可用,返回false
System.out.println(a.equals(c));
}
}
getClass
//返回此Object的运行时类
getClass();
Object a = "霞";
System.out.println(a.getClass);
//此时显示为:
//class java.lang.String
Object b = 10;
System.out.println(b.getClass);
//此时显示为:
//class java.lang.Integer
hashCode
//返回对象的哈希码值
hashCode();
Object a = "霞";
System.out println(a.hashCode);
//显示为38686
//可想象成身份证,在同一次执行中相同对象哈希码相同
toString
//返回对象的字符串表示形式
toString();
Object a = "霞";
//此时"霞"为Object
Object b = a.toString();
//"霞"转为String类型
System.out.println(a+a);
//进行报错 同为Object不可进行此操作
System.out.println(a+b);
//输出为"霞霞"
notify
//唤醒等待此对象监视器上等待的单个线程
notify();
暂未涉及使用
wait
//导致当前线程等待它被唤醒,通常是通知或中断
wait();
wait(long timeoutMillis);
wait(long timeoutMillis,int nanos);
子类Math
字段
E :double值更接近e
pi :double值跟接近于圆周率
ads
//返回绝对值
abs(double a)
abs(float a)
abs(int a)
abs(long a)
addExact
//返回参数总和(不可超过原类型否则抛出异常)
addExact(int x,int y)
addExact(long x,long y)
max
//返回较大值
max(int a,int b)
max(double a,double b)
max(long a,long b)
max(float a,float b)
//在不同类型中也可使用
int a = 10;
long b = 20;
System.out.println(Math.max(a,b));
//输出:
20
min
//返回较小值
//同max
min(int a,int b)
min(long a,long b)
min(double a,double b)
min(float a,float b)
multiplyExact
//返回参数乘积
multiplyExact(int x,int y)
//不能过int
multiplyExact(int x,long y)
multiplyExact(long x,long y)
//不能过long
random
//返回double值(0,1)
random()
//只返回最小值,因对其进行强转,不遵循四舍五入,直接舍去小数
int a = (int) (最小值+Math.random());
System.out.println(a);
//int b = (int) (最小值+Math.random()*(最大值-最小值+1));
//返回值为10-100间的随机整数
int b = (int) (20+Math.random()*(100-10+1));
System.out.println(b);
子类Array
get
//返回指定数组对象中索引组件的值
get(Object array,int index)
//获得数组长度
getLength()
int[] a = {1,2,3,4,5,6,7};
System.out.println(Array,get(a,2));
//输出为3
System.out.println(Array.getLength(a));
//输出为7
newInstance
类似于继承
//创建具有指定组件类型和长度的新数组
newInstance(类<?> componentTYpe,int length)
//创建具有指定组件类型和尺寸的新数组
newInstance(类<?> componentTYpe,int...dimensions)
set
//将指定组件数组的索引组件的值设置为指定的新值
set()
set(Object array,int index,Object value)
子类Arrays
asList
//返回由指定数组支持的固定大小的列表
asList(T... a)
Integer[] a = {1,2,3,4,5,6,7,8,9};
List<Integer> list = Arrays.asList(a);
//输出异常,不可使用
System.out.println(a);
//转列表后可输出
System.out.println("列表为:"+list);
//以Integer类为例,转列表原元素个数不变
System.out.println("列表大小为:"+list.size());
System.out.println("类型为:"+list.getClass());
//对数组进行扩充
Integer[] b = Arrays.copyOf(a,10);
b[9] = 10;
System.out.println(Arrays.asList(b));
System.out.println("------------");
int[] c = {1,2,3,4,5};
List<int[]> list2 = Arrays.asList(c);
//进行报错,int不可用
System.out.println(list2);
//检查只有一个元素
System.out.println(list2.size());
System.out.println("-------------");
String[] d = {"霞","洛"};
List<String> e = Arrays.asList(d);
System.out.println(e);
//输出:
[Ljava.lang.Integer;@7c30a502
列表为:[1 2 3 4 5 6 7 8 9]
列表大小为:9
类型为:class java.util.Arrays$ArrayList
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
------------
[[I@49e4cb85]
1
-------------
[霞, 洛]
toString
//返回指定数组的“深层内容”的字符串表示形式
deepToString(T a)
//返回指定数组的字符串表示形式
toString(T a)
String[] b= new String[]{"1", "2", "3", "4"};
String a = Arrays.deepToString(b);
String c = Arrays.toString(b);
System.out.println(a);
System.out.println(c);
//输出为:
[1 2 3 4]
[1 2 3 4]
copyOf
//一般用于数组扩充
//使用零复制指定的数组,截断或填充(如有必要),以使副本具有指定的长度。
copy(类型[] 名字,int newLength)
int[] a = {1,2,3,4,5,6};
int[] b = Arrays.copyOf(a,7);
System.out.println(b.length);
//此用Arrays将数组转化为字符串形式
//否则输出为“乱码”
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
//输出为:
7
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 0]