|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
唉!都是钱闹的1.Swing和.net网页编程开发比较------从市场份额看.net网页编程开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具
Java.sql包中的java.sql.Driver,jdbc.sql.Connection等供应给程序开辟职员一致的开辟接口,数据库供应商供应响应的完成,对程序开辟职员来说只需晓得这些接口都有哪些办法就能够了。但我们能够深切一些看看究竟这内里都做了那些事,同时也能够进修个中的编程形式(如Interface形式等)。
1、Class.forName(Stringclassname)的源码为:
publicfinal
classClassimplementsjava.io.Serializable{
...
publicstaticClassforName(StringclassName)
throwsClassNotFoundException{
returnforName0(className,true,ClassLoader.getCallerClassLoader());
}
...
}
关于forName0请本人检察jdksource.
的是把指定的Class装载到JVM中来。(注重class的装载、初始化历程)在装载过程当中将实行被装载类的static块(以下)
2sun的JdbcOdbcDriver源码:
publicclassJdbcOdbcDriverextendsJdbcOdbcObject
implementsJdbcOdbcDriverInterface
{
...
/**
*connecttoDB
*/
publicsynchronizedConnectionconnect(Strings,Propertiesproperties)
throwsSQLException
{
if(JdbcOdbcObject.isTracing())
JdbcOdbcObject.trace("*Driver.connect("+s+")");
if(!acceptsURL(s))
returnnull;
if(hDbc!=0)
{
disconnect(hDbc);
closeConnection(hDbc);
hDbc=0;
}
if(!initialize())
{
returnnull;
}
else
{
JdbcOdbcConnectionjdbcodbcconnection=newJdbcOdbcConnection(OdbcApi,hEnv,this);
jdbcodbcconnection.initialize(getSubName(s),properties,DriverManager.getLoginTimeout());
jdbcodbcconnection.setURL(s);
returnjdbcodbcconnection;
}
}
static
{
if(JdbcOdbcObject.isTracing())
JdbcOdbcObject.trace("JdbcOdbcDriverclassloaded");
JdbcOdbcDriverjdbcodbcdriver=newJdbcOdbcDriver();
try
{
DriverManager.registerDriver(jdbcodbcdriver);
}
catch(SQLExceptionsqlexception)
{
if(JdbcOdbcObject.isTracing())
JdbcOdbcObject.trace("Unabletoregisterdriver");
}
}
}
publicinterfaceJdbcOdbcDriverInterface
extendsDriver
{
...
}
<p>
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试) |
|