首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
Java
J2SE / 基础类
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
newInstance()这个有没有 有什么影响?
[已结贴,结贴人:kroda]
加为好友
发送私信
在线聊天
kroda
等级:
可用分等级:
中农
总技术专家分:
6
总技术专家分排名:
242095
揭帖率:
95.33%
发表于:
2008-08-20 17:54:47
楼主
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
先问一下newInstance()是不是仅是Class的方法?
问题点数:
20
回复次数:
13
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
laorer
堕落佛
等级:
可用分等级:
掌柜
总技术专家分:
10755
总技术专家分排名:
1791
发表于:
2008-08-20 17:58:00
1
楼 得分:
0
....为什么不去查查api呢,
它是Class的方法,不过你的题目没读懂,有没有 有什么影响?
主要用在反射中
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kroda
等级:
可用分等级:
中农
总技术专家分:
6
总技术专家分排名:
242095
发表于:
2008-08-20 18:01:03
2
楼 得分:
0
API里是这么说的:创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的 new 表达式实例化该类。如果该类尚未初始化,则初始化这个类。
太官方 看不明白啊
换句话怎么理解?
是只创建一个实例吗?就是单例?
API解释的 。。哎
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
liujiaqwer
小鬼
等级:
可用分等级:
贫农
总技术专家分:
17
总技术专家分排名:
190639
发表于:
2008-08-20 21:08:45
3
楼 得分:
0
不是单例的意思。。这是两回事。。
简单地说就是创建一个新实例。。
这有什么不明白吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kroda
等级:
可用分等级:
中农
总技术专家分:
6
总技术专家分排名:
242095
发表于:
2008-08-20 21:33:23
4
楼 得分:
0
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
那我直接写成这样 也不影响连接数据库啊。。连接也正常的
加了一个newInstance()作用是什么?就这点不明白
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kroda
等级:
可用分等级:
中农
总技术专家分:
6
总技术专家分排名:
242095
发表于:
2008-08-20 21:33:35
5
楼 得分:
0
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
那我直接写成这样 也不影响连接数据库啊。。连接也正常的
加了一个newInstance()作用是什么?就这点不明白
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
panhf2003
等级:
可用分等级:
中农
总技术专家分:
86
总技术专家分排名:
97550
发表于:
2008-08-20 22:43:27
6
楼 得分:
0
我想这里的newInstance()是不需要的,因为这里的forName的作用是加载这个jdbc驱动,只要Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") 就能加载成功jdbc驱动了,后面就可以连接db了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Java_Chaos
头疼-->迷失
等级:
可用分等级:
短工
总技术专家分:
10
总技术专家分排名:
212472
发表于:
2008-08-21 00:24:37
7
楼 得分:
0
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") 是加载com.microsoft.sqlserver.jdbc.SQLServerDriver这个类。。
newInstance()则创建com.microsoft.sqlserver.jdbc.SQLServerDriver类得对象
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
milooxu
miluxu
等级:
可用分等级:
贫农
总技术专家分:
125
总技术专家分排名:
97989
发表于:
2008-08-21 00:59:29
8
楼 得分:
0
就是相当于new 了一个无参构造器,当然前提是反射的这个类要有无参构造器,其他的诸如:Method,Constructor里也有newInstance方法,需要可变长的参数的
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
milooxu
miluxu
等级:
可用分等级:
贫农
总技术专家分:
125
总技术专家分排名:
97989
发表于:
2008-08-21 01:01:12
9
楼 得分:
0
一般在数据库驱动实现是会加一个static的代码块,然后你反射这个类的时候,会帮你在静态代码块里完成注册驱动这些事情的。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kroda
等级:
可用分等级:
中农
总技术专家分:
6
总技术专家分排名:
242095
发表于:
2008-08-21 09:48:14
10
楼 得分:
0
引用 8 楼 milooxu 的回复:
就是相当于new 了一个无参构造器,当然前提是反射的这个类要有无参构造器,其他的诸如:Method,Constructor里也有newInstance方法,需要可变长的参数的
请问newInstance跟反射有什么关系..不太明白
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
bao110908
火龙果@宝家族
等级:
可用分等级:
富农
总技术专家分:
26483
总技术专家分排名:
384
2
3
发表于:
2008-08-21 10:01:23
11
楼 得分:
10
去掉,没有丝毫用处,我不知道为什么有好多人喜欢画蛇添足地加上 .newInstance()
JDBC 使用 Class.forName("xxx.xxx.Driver"); 来注册驱动程序,根本没有要求将其进行实例化。
就算要求实例化,这样写也是不对的,这样只产生了一个匿名对象,而这个对象没有被引用,也就是
说这样做是无用功,吃力不讨好的行为。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
m582445672
沉沦
等级:
可用分等级:
贫农
总技术专家分:
52
总技术专家分排名:
122849
发表于:
2008-08-21 14:01:40
12
楼 得分:
0
引用 11 楼 bao110908 的回复:
去掉,没有丝毫用处,我不知道为什么有好多人喜欢画蛇添足地加上 .newInstance()
JDBC 使用 Class.forName("xxx.xxx.Driver"); 来注册驱动程序,根本没有要求将其进行实例化。
就算要求实例化,这样写也是不对的,这样只产生了一个匿名对象,而这个对象没有被引用,也就是
说这样做是无用功,吃力不讨好的行为。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
MajorZQ
major
等级:
可用分等级:
短工
总技术专家分:
89
总技术专家分排名:
96249
发表于:
2008-08-21 16:22:32
13
楼 得分:
10
Class.forName(String className) ---- 根据className来生成一个类型为Class的对象.
Class这个类中有一个newInstance()方法,这个方法会调用该对象所代表类(在你的例子中就是com.microsoft.sqlserver.jdbc.SQLServerDriver)的缺省构造方法,并返回一个对象。这种新建对象的方法就叫反射了。
这种方法的效果和:
new com.microsoft.sqlserver.jdbc.SQLServerDriver();
是一样的。
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友