`
sqlxx
  • 浏览: 17463 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

生成对象的方法比较

 
阅读更多
<script type="text/javascript"><!-- google_ad_client = "pub-2141342037947367"; google_ad_width = 125; google_ad_height = 125; google_ad_format = "125x125_as"; google_ad_channel ="3662469727"; google_color_border = "CCCCCC"; google_color_bg = "FFFFFF"; google_color_link = "000000"; google_color_url = "666666"; google_color_text = "333333"; //--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>



这是我学习中的一些体会的总结,希望大家提意见指正,同时也希望能给对这个问题感兴趣的朋友一些帮助。
java中至少有三种方式可以生成一个对象,new,Class.ForName(StringclassName)和ClassLoader.loadClass(Stringname)。让我们来分析和比较他们。

1,用关键字new生成对象:这是最常用的一种方式,例如newString("hello")用new生成对象的特点是,这个对象的类必须在编译时就在classpath中,如果没有特别的理由和要求,这是我们生成一个对象的第一选择;

2,Class.forName(StringclassName)。例如Classc=Class.forName("com.company.jdbc.Driver");这种方法的特点是在编译的时候不需要包含这个类在classpath中,而可以推迟到运行时再到claspath中找。这种方式的典型运用时加载JDBC驱动程序的时候。因为不同的数据库有不同的JDBC驱动程序,所以对于需要得到某种数据库连接的应用程序,可能需要到运行时才知道连接的是哪种数据库,所以采用这种方式加载数据库驱动程序。而且这用有利于编写通用数据库的连接池程序,因为一个数据库的连接池并不需要在编译时就需要各种数据库的驱动程序的类;

3,ClassLoader.loadClass(Stringname);这种方式更加灵活,它不仅可以从classpath中加载类,而且也可以在运行时通过自定义一个ClassLoader来加载类。例如可以从某个http或者ftp服务器加载类,更可以从任意的byte[]来加载类。如果我们写一个自己的类加载器MyClassLoaderextendsClassLoader,那么我们可以通过重载父类中的protectedClassfindClass(Stringname)方法来让它具有我们期待的行为,ClassLoader的loadClass方法会调用findClass来的到一个Class类型的对象,而findClass可以通过调用ClassdefineClass(Stringname,byte[]b,intoff,intlen)来通过byte[]构造一个Class类型的对象。这种方式的特点是即使载运行时也不需要这个类在classpath中。

分享到:
评论

相关推荐

    模仿json,根据对象生成json字符串,根据字符串生成对象

    本文将深入探讨如何模仿JSON,根据对象生成JSON字符串,以及如何根据JSON字符串反向生成对象。 首先,我们要理解JSON的基本结构。一个JSON对象以大括号`{}`包围,其内部由键值对组成,键用双引号`""`包裹,值可以是...

    扩展MyBatisPlus代码生成器实现自定义源码生成,可生成前端页面、vo对象、dto对象等代码

    然而,对于VO对象、DTO对象以及前端Vue页面等非预置的代码生成需求,就需要我们对默认的代码生成器进行扩展和定制。 在MyBatisPlus 3.5.3版本中,代码生成器主要有两种类:`AutoGenerator`和`FastAutoGenerator`。`...

    C++动态生成对象

    在C++编程中,动态生成对象是指在程序运行时创建对象,而不是在编译时确定。这通常是通过使用new运算符来实现的。动态生成对象的主要优点是可以在运行时根据需要分配内存,增加代码的灵活性和可扩展性。在描述中提到...

    数据库表生成对象工具

    数据库表生成对象工具是一种高效实用的开发辅助软件,主要用于帮助程序员快速将数据库中的表结构映射为编程语言的对象模型。这种工具广泛应用于多种数据库系统,包括Oracle、SQL Server和MySQL等,大大简化了数据...

    在反射动态机制生成对象的实体

    ### 在反射动态机制生成对象的实体 #### 概述 反射是Java编程语言的一个核心特性,它允许程序在运行时检查、操作类的信息以及创建对象。通过反射,开发者可以实现高度灵活的应用程序,例如框架、插件系统等,其中...

    数据库实体生成 C#对象生成 JAVA对象生成

    生成的实体类通常包含了属性(对应数据库字段)和方法(如CRUD操作),使得代码更规范且易于维护。 2. C#对象生成: 在C#开发中,对象的生成通常指从数据库模式创建等效的C#类。这可以通过使用ORM(对象关系映射)...

    测试迭代.zip,迭代器、可迭代对象、生成器、生成器表达式的实验代码

    本资源"测试迭代.zip"包含了关于迭代器、可迭代对象、生成器和生成器表达式相关的实验代码,旨在帮助Python学习者深入理解这些核心概念。 1. **可迭代对象**:在Python中,一个对象如果可以被迭代,即它可以依次...

    c# 循环生成XML方法

    在C#中,生成XML文档的第一步是创建一个`XmlDocument`对象。这个对象充当了整个XML文档的容器,所有的节点(包括元素、属性、注释等)都将被添加到这个容器中。例如,在给定的代码片段中,首先实例化了一个`Xml...

    SpringBoot+mybatis+MySQL对象生成器

    本项目“SpringBoot+mybatis+MySQL对象生成器”旨在自动化处理数据库表与Java对象之间的映射,提高开发效率。 SpringBoot是由Pivotal团队维护的一个基于Spring框架的启动器,它简化了Spring应用的初始搭建以及开发...

    bean对象生成数据表

    "bean对象生成数据表"这一技术就是利用这种对应关系,反向工程将Bean类转化为实际的数据库表结构,从而简化数据库设计和开发流程。这种方法在快速开发或者基于已有Bean模型构建数据库时非常实用。 首先,我们需要...

    Java生成PublicKey方法

    Java 生成 PublicKey 方法 Java 生成 PublicKey 方法是 Java 开发语言中一个重要的知识点,本文将对其进行详细的讲解。 首先,需要了解什么是 PublicKey?PublicKey 是一种加密算法中使用的公钥,用于加密和解密...

    精简版本实体类生成工具(可选择是否生成构造方法)

    选择生成构造方法可以方便地在创建对象时一次性设置所有属性,提高了代码的可读性和可维护性。如果不生成构造方法,开发者可能需要通过setter方法逐个设置,这在处理大量属性时会显得较为繁琐。 使用这个工具连接...

    mybatis实体对象生成(代码生成器).zip

    本压缩包“mybatis实体对象生成(代码生成器).zip”提供了一个工具,能够自动生成MyBatis项目的DAO层、Model层以及Mapper映射文件,极大地提高了开发效率。 首先,我们来看“generatorConfig.xml”文件。这是...

    VB的GET SET方法批量生成加使用说明书

    批量生成GET和SET方法通常是针对具有大量属性的类或对象而言的,这可以极大地提高开发效率。在VB中,虽然没有内置的工具来自动创建这些方法,但可以通过编写脚本或者使用第三方工具来实现。在提供的文件`VBToGS.exe`...

    javaScript 生成DOM 对象(html标签).rar

    生成DOM对象主要有两种方式:一是使用`document.createElement()`方法,二是利用innerHTML属性。`document.createElement()`允许我们创建指定标签名的新元素,例如: ```javascript var newElement = document....

    com对象源码生成器

    `使用说明.txt`文件则包含了关于如何使用这个工具的详细指导,可能包括安装步骤、配置选项、生成源码的方法以及常见问题解答等内容。阅读并遵循这个文件的说明,用户可以更好地理解和使用COM对象源码生成器。 总的...

    C# 生成xml文件,编码为utf-8方法

    在 C# 中,生成 XML 文件可以使用 XmlSerializer 类,该类提供了 serialize 方法,可以将对象转换为 XML 字符串。为了将生成的 XML 文件编码为 UTF-8,需要使用 MemoryStream 和 StreamWriter 类。 首先,需要创建...

    利用反射生成泛型类对象

    此代码是一个生成泛型对象的类。 比如: Pool&lt;Point&gt; pool = new Pool(){}; Point p = pool.get(x, y); //在此构造Point对象 ... pool.put(p); 希望能帮助那些为查找泛型构造器、非静态内部泛型类的对象生成而烦恼的...

    Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作.docx

    这些方法使用了Java反射机制来获取JavaBean对象的信息,然后根据这些信息生成对应的sql语句。 例如,在getBeanName方法中,使用了Java反射机制来获取JavaBean对象的类名,然后根据类名生成对应的表名。在...

    xml对象 代码生成器

    XML对象代码生成器是一种工具,它能够自动生成针对XML文档操作的类,这些类支持对XML文档中的节点进行增加、删除和修改等操作。在软件开发中,处理XML数据时,手动编写这样的代码可能会非常繁琐且容易出错。通过使用...

Global site tag (gtag.js) - Google Analytics