• jdk中个别类的介绍Object、Class、Arrays


    1.java.lang.Object是类层次结构的根类,每个类都使用Object作为超类。所有对象(包括数组)都实现这个类的方法。

    常用方法:

    protected Object clone():创建并返回此对象的一个副本。JDK中的解释让我不明所以,在此直接给出如何使用该方法:1.类实现Cloneable接口;2.重写Object.clone()方法,并声明为public;3.在此方法中,对新返回对象中的非基本类型的属性和可变字段进行修改。(api是如此说,如果一个类只包含基本字段或对不变对象的引用,那么通常不需要修改 super.clone 返回的对象中的字段。)

    import java.util.Date;
    
    class Person implements Cloneable
    {
        private int age;//基本类型
        private String name;//字符串是常量,不能修改,name为对不变常量的引用
        private Date birth;//可变对象
        public Person(int a,String n,Date b){ 	
            age=a;	name=n;	birth=b;
        }
        @Override
        public Object clone() throws CloneNotSupportedException{
            Person p = (Person)super.clone();
            //Date实现了Cloneable接口,直接调用即可
            p.birth=(Date)this.birth.clone();
            return p;
        }
    }

    protected void finalize():当垃圾回收器确定不存在对该对象的更多引用时,就调用此方法。子类可以重写来执行其他清除等操作。finalize 的主要目的是在不可撤消地丢弃对象之前执行清除操作。任何给定对象,Java虚拟机最多只调用一次finalize。

    其他有:toString(),equals(Object),getClass()等。

    2.个人把java.lang.Class<T>理解为一个模板,它的实例表示正在运行的java应用程序中的类和接口。常可以obj.getClass()或obj.class得到Class实例。

    反射用到的方法有:static Class forName(String className);Constructor getConstructor(Class... parameterTypes);Field getField(String name);Method getMethod(String name,Class...parameterTypes)。

    public T newInstance():创建此Class对象所表示的类的一个新实例。等同于new T()。

    public boolean isInstance(Object obj):判断obj是否与此Class所表示的对象赋值兼容,相当于instanceof运算符

    其他的有isArray(),isInterface(),isPrimitive()等系列方法,判断Class对象的类型

    public URL getResource(String name):结合当前类的路径和name,查找资源。它是以顶层package作为根目录,比如在Web应用中,WEB-INF下classes目录为根目录。如果name以“/"开头,则以根目录为起始目录进行查找;否则,为相当于当前类的路径。

    //返回顶级目录下的test.txt
    File file1=Test.class.getResource("/test.txt").getFile();
    //返回test.class所作目录下的文件test1.txt
    File file2=Test.class.getResource("test1.txt").getFile;
     


    3.java.util.Arrays用来操作数组,包括排序、搜索等静态方法。

    List<T> asList(T... a):参数可以是个数组,也可以是多个实例(如asList("abc","def","ghi"))。注意:asList返回的List类型是Arrays的内部类ArrayList,所以不能直接赋值给java.util.ArrayList类型的变量,只能转为AbstractList(抽象类)。api说返回的是指定数组的列表视图,对List的操作会反映到对应的数组上,而且是定长的,不支持remove/add操作。

    int binarySearch(T[],T key)系列方法,T可以为各种基本数据类型,使用二叉搜索法查询key。

    T[] copyOf(T[],int newLength):复制数组,不足用0或null补充。类似的有copyOfRange()。

    boolean equals(T[],T[]):判断两个指定数组是否彼此相等。

    void fill(T[],T):用指定值填充指定数组。

    void sort(T[]):升序排序。


  • 相关阅读:
    springBoot启动异常 Failed to load ApplicationContext
    mysql存储过程
    springBoot集成Swagger
    groupmems命令:更改和查看组成员 和 usermod命令修改组
    javaBean简介
    Angular获取dom元素,以及父子组建之间相互传值
    Lambda表达式
    坐标转换
    扩展方法
    Binding的Path(路径)
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982065.html
Copyright © 2020-2023  润新知