欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

java中Class.forName方法的作用是什么

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)java中Class.forName方法的作用是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、松山網(wǎng)站維護(hù)、網(wǎng)站推廣。

Java的特點(diǎn)有哪些

Java的特點(diǎn)有哪些 1.Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。 2.Java具有簡單性、面向?qū)ο?、分布式、安全性、平臺獨(dú)立與可移植性、動態(tài)性等特點(diǎn)。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。

java中Class.forName的作用

連接數(shù)據(jù)庫幾大步.看以下代碼

 import com.MySQL.jdbc.Driver;
  import java.sql.*;
  public class JdbcDemo {
  public static void main(String[] args) throws SQLException, ClassNotFoundException {
  String url = "jdbc:mysql://127.0.0.1:3306/mydb";
  String username = "root";
  String password = "redhat";
  Class.forName("com.mysql.jdbc.Driver");
  Connection connection = DriverManager.getConnection(url, username, password);
  String sql = "SELECT * FROM msg";
  PreparedStatement prepareStatement = connection.prepareStatement(sql);
  ResultSet resultSet = prepareStatement.executeQuery();
  resultSet.next();
  String address = resultSet.getString("address");
  System.out.println(address);
  }
  }

其中第一步,搞的我有點(diǎn)想不通.為啥Class.forName傳入了一段字符串之后,就知道我連接的數(shù)據(jù)庫是mysql? 有點(diǎn)不科學(xué)啊.Class.forName到底做了啥.下面就開始到源碼中,一探究竟.

@CallerSensitive
  public static Class forName(String className)
  throws ClassNotFoundException {
  Class caller = Reflection.getCallerClass();
  return forName0(className, true, ClassLoader.getClassLoader(caller), caller);
  }

發(fā)現(xiàn)它調(diào)用了forName0方法,繼續(xù)跟蹤再看看

private static native Class forName0(String name, boolean initialize,

ClassLoader loader,

Class caller)

throws ClassNotFoundException;

native方法,源碼也只能到此結(jié)束了.看下官方文檔,怎么說吧.

發(fā)現(xiàn)官方文檔,還是描述的很清楚的.

Returns the Class object associated with the class or interface with the given string name,

using the given class loader.

Given the fully qualified name for a class or interface (in the same format returned by getName)

this method attempts to locate, load, and link the class or interface.

The specified class loader is used to load the class or interface.

If the parameter loader is null, the class is loaded through the bootstrap class loader.

The class is initialized only if the initialize parameter is true and if it has not been

initialized earlier.

嗯,描述的還算是很清楚.返回一個給定類或者接口的一個Class對象,如果沒有給定classloader,那么會使用根類加載器.如果initalize這個參數(shù)傳了true,那么給定的類如果之前沒有被初始化過,那么會被初始化.我們在JDBC第一步的時候,傳入的參數(shù)是com.mysql.jdbc.Driver. 也就是說這個類會被初始化.我們看一下這個類里面的內(nèi)容.

public class Driver extends NonRegisteringDriver implements java.sql.Driver {

static {

try {

java.sql.DriverManager.registerDriver(new Driver());

} catch (SQLException E) {

throw new RuntimeException("Can't register driver!");

}

}

public Driver() throws SQLException {

// Required for Class.forName().newInstance()

}

}

我們發(fā)現(xiàn)這個類也是超級簡單的.一個構(gòu)造函數(shù)和一個靜態(tài)代碼塊.我們知道,類在初始化的時候,靜態(tài)代碼塊的內(nèi)容會被執(zhí)行的.也就是說我們Class.forName和直接寫DriverManager.registerDriver(new Driver)兩者功能是等同的.我們換成這種寫法.再試試看.

  public class JdbcDemo {
  public static void main(String[] args) throws SQLException, ClassNotFoundException {
  String url = "jdbc:mysql://127.0.0.1:3306/mydb";
  String username = "root";
  String password = "redhat";
  //Class.forName("com.mysql.jdbc.Driver");
  DriverManager.registerDriver(new Driver());
  Connection connection = DriverManager.getConnection(url, username, password);
  String sql = "SELECT * FROM msg";
  PreparedStatement prepareStatement = connection.prepareStatement(sql);
  ResultSet resultSet = prepareStatement.executeQuery();
  resultSet.next();
  String address = resultSet.getString("address");
  System.out.println(address);
  }
  }

上述就是小編為大家分享的java中Class.forName方法的作用是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文題目:java中Class.forName方法的作用是什么
網(wǎng)址分享:http://aaarwkj.com/article32/pjdpsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)網(wǎng)站制作、App開發(fā)、網(wǎng)站設(shè)計公司、App設(shè)計網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
久久五十路初次拍五十路| 夜夜春国产精品不卡一区二区| 97国产精品视频在线观看| 精品一级人片内射视频| 亚洲国产精品久久久精品| 熟妞人妻精品一区二区视频| 欧美亚洲精品一区在线观看| 未满十八周岁禁看视频| 成人免费中文字幕电影| 91久久高清国语自产拍| 国产一区二区三区不卡av| av一区二区三区网站| 欧美另类精品一区二区| 欧美午夜一级特黄大片| 成人做爰片免费看视频| 精品亚洲一区二区在线| 亚洲男人天堂在线播放| 日韩一区二区三区av在线 | 四虎最新在线播放视频| 操你啦夜夜操狠狠躁天天爽| 国产在线精品不卡一区| 欧美日本一道本一区二区三区| 国产乡下三级_三级全黄| 成人黄色片久久久大全| 中文字幕乱码高清欧美日韩| 福利在线视频一区二区| 国产av高清视频在线| 国产一区二区三区本色| 欧美三级高清视频在线播放| 少妇激情一区二区三区免费视频| 日本一区二区高清在线观看| 久久国产精品一区免费观看| 国产性做爰片免费视频| 国产黄色片网站在线观看| 人妻久久久久久精品99| 日产中文乱码字幕无线观看| 亚洲一区二区三区日韩精品| 国产亚洲无线码一区二区| 国产精品亚洲精品欧美| 四虎精品国产一区二区三区| 日本精品女优一区二区三区四区|