zoukankan      html  css  js  c++  java
  • JAVA获取对象的四种方式

    1.使用new创建对象

    2.通过反射的方式

    3.通过clone的方式

    4.通过反序列化的方式

    一.使用new创建对象

      使用new会增加耦合度,所以要尽量减少使用new的频率。并且new是使用强引用方式来创建对象的。

    Hello hello = new Hello();

    二.使用反射的方式创建对象

          1.使用Class类的newInstance方法来创建对象

    Class class = Class.forname("com.heyjia.test.Hello");
    Hello hello = (Hello)class.newInstance();

          2.使用Constructor类的newInstance方法来创建兑现

        Class class = Class.forName("com.heyjia.test.Hello");
        Constructor constructor = class.getConstructor();
        Hello hello = (Hello)constructor.newInstance();

    三.使用clone的方式创建对象

       前提:需要有一个对象,使用该对象父类的clone方法可以创建一个内存大小跟它一样大的对象

    Hello hello1 = new Hello();
    Hello hello2 = (Hello)hello1.clone();

    四.使用反序列化的方式创建对象

       在通过实现序列化serializable接口将对象存到硬盘中,通过反序列化可以获取改对象

    public class Serialize
    {
        public static void main(String[] args)
        {
            Hello h = new Hello();
    
            //准备一个文件用于存储该对象的信息
            File f = new File("hello.obj");
    
            try(FileOutputStream fos = new FileOutputStream(f);
                ObjectOutputStream oos = new ObjectOutputStream(fos);
                FileInputStream fis = new FileInputStream(f);
                ObjectInputStream ois = new ObjectInputStream(fis)
                )
            {
                //序列化对象,写入到磁盘中
                oos.writeObject(h);
                //反序列化对象
                Hello newHello = (Hello)ois.readObject();
    
                //测试方法
                newHello.sayWorld();
            }
            catch (FileNotFoundException e)
            {
                e.printStackTrace();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            catch (ClassNotFoundException e)
            {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    使用json-lib进行Java和JSON之间的转换
    PHP实现RabbitMQ消息队列(转)
    PHP错误日志和内存查看(转)
    linux下安装python3(转)
    如何在Linux上设置SSH密码以进行无密码登录(转)
    事务的ACID特性(转)
    PHP之缓存雪崩,及解决方法(转)
    php字符串统计次数的各种方法(转)
    php批量检测和去掉bom头(转)
    go延时队列
  • 原文地址:https://www.cnblogs.com/heyjia/p/11319942.html
Copyright © 2011-2022 走看看