社区
Java SE
帖子详情
newInstance()这个有没有 有什么影响?
kroda
2008-08-20 05:54:47
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
先问一下newInstance()是不是仅是Class的方法?
...全文
240
13
打赏
收藏
newInstance()这个有没有 有什么影响?
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 先问一下newInstance()是不是仅是Class的方法?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
milooxu
2008-08-21
打赏
举报
回复
就是相当于new 了一个无参构造器,当然前提是反射的这个类要有无参构造器,其他的诸如:Method,Constructor里也有newInstance方法,需要可变长的参数的
Java_Chaos
2008-08-21
打赏
举报
回复
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") 是加载com.microsoft.sqlserver.jdbc.SQLServerDriver这个类。。
newInstance()则创建com.microsoft.sqlserver.jdbc.SQLServerDriver类得对象
火龙果被占用了
2008-08-21
打赏
举报
回复
去掉,没有丝毫用处,我不知道为什么有好多人喜欢画蛇添足地加上 .newInstance()
JDBC 使用 Class.forName("xxx.xxx.Driver"); 来注册驱动程序,根本没有要求将其进行实例化。
就算要求实例化,这样写也是不对的,这样只产生了一个匿名对象,而这个对象没有被引用,也就是
说这样做是无用功,吃力不讨好的行为。
kroda
2008-08-21
打赏
举报
回复
[Quote=引用 8 楼 milooxu 的回复:]
就是相当于new 了一个无参构造器,当然前提是反射的这个类要有无参构造器,其他的诸如:Method,Constructor里也有newInstance方法,需要可变长的参数的
[/Quote]
请问newInstance跟反射有什么关系..不太明白
MajorZQ
2008-08-21
打赏
举报
回复
Class.forName(String className) ---- 根据className来生成一个类型为Class的对象.
Class这个类中有一个newInstance()方法,这个方法会调用该对象所代表类(在你的例子中就是com.microsoft.sqlserver.jdbc.SQLServerDriver)的缺省构造方法,并返回一个对象。这种新建对象的方法就叫反射了。
这种方法的效果和:
new com.microsoft.sqlserver.jdbc.SQLServerDriver();
是一样的。
沉沦
2008-08-21
打赏
举报
回复
[Quote=引用 11 楼 bao110908 的回复:]
去掉,没有丝毫用处,我不知道为什么有好多人喜欢画蛇添足地加上 .newInstance()
JDBC 使用 Class.forName("xxx.xxx.Driver"); 来注册驱动程序,根本没有要求将其进行实例化。
就算要求实例化,这样写也是不对的,这样只产生了一个匿名对象,而这个对象没有被引用,也就是
说这样做是无用功,吃力不讨好的行为。
[/Quote]
milooxu
2008-08-21
打赏
举报
回复
一般在数据库驱动实现是会加一个static的代码块,然后你反射这个类的时候,会帮你在静态代码块里完成注册驱动这些事情的。
panhf2003
2008-08-20
打赏
举报
回复
我想这里的newInstance()是不需要的,因为这里的forName的作用是加载这个jdbc驱动,只要Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") 就能加载成功jdbc驱动了,后面就可以连接db了
kroda
2008-08-20
打赏
举报
回复
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
那我直接写成这样 也不影响连接数据库啊。。连接也正常的
加了一个newInstance()作用是什么?就这点不明白
kroda
2008-08-20
打赏
举报
回复
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
那我直接写成这样 也不影响连接数据库啊。。连接也正常的
加了一个newInstance()作用是什么?就这点不明白
liujiaqwer
2008-08-20
打赏
举报
回复
不是单例的意思。。这是两回事。。
简单地说就是创建一个新实例。。
这有什么不明白吗?
kroda
2008-08-20
打赏
举报
回复
API里是这么说的:创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的 new 表达式实例化该类。如果该类尚未初始化,则初始化这个类。
太官方 看不明白啊
换句话怎么理解?
是只创建一个实例吗?就是单例?
API解释的 。。哎
laorer
2008-08-20
打赏
举报
回复
....为什么不去查查api呢,
它是Class的方法,不过你的题目没读懂,有没有 有什么影响?
主要用在反射中
Java实例化
new
和
new
Instance
反射 性能对比测试
new
Instance
比
new
最好慢7倍, 最差慢4000倍
new
在十万次到二十亿次都是5毫秒左右不再增加,
new
基本没有等比增加耗时, 可能与虚拟机优化有关
new
Instance
在一千万次前并没有等比增加耗时, 一千万次后等比增加耗时...
反射扩展:
new
Instance
与
new
之间的比较与讨论
new
Instance
: 弱类型。低效率。只能调用无参构造。
new
: 强类型。相对高效。能调用任何public构造。
new
Instance
()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,
new
只能实现具体类的实例化,不适合于接口编程。 里面就是通过这个类的默认构造函数构建了一个对象,如果没有默认构造函数就抛出InstantiationException, 如果没有访问默认构造函数的权限就抛出IllegalAccessException 在初
正确使用Fragment之创建/传参——
new
Instance
方法(native)
使用频率如此之高的Fragment,你的使用姿势,真的正确吗? 如果你还在
new
Fragment(), 不妨来看看谷歌默认推荐的Fragment.
new
Instance
()吧
有人在jdk源码里下毒【class.
new
Instance
() bug复现】
不好,有人在源码里下毒
Unity3D中
Instance
创建实例问题详解
在Unity3D开发中,对象的创建和管理是一个基础且重要的环节。
Instance
(实例)和Singleton(单例)是两种常见的对象创建方式,它们在Unity3D中有不同的应用场景和实现方法。本文将详细解析Unity3D中如何通过
Instance
创建实例,并给出相应的技术详解和代码实现。对惹,这里有一个游戏开发交流小组,大家可以点击进来一起交流一下开发经验呀!
Java SE
62,634
社区成员
307,266
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章