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

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)化排名
麻豆国产自拍在线视频| 免费欧美一级黄片播放| 日韩欧美国产麻豆91在线精品| 中文字幕一区二区三区网站| 精品一区二区视频在线观看网站| 久久激情日本人妻av免费| 在线观看中文字幕日韩精品| 精品视频中文字幕天码| 亚洲人的av在线播放| 国产亚洲精品久久久久久| 久久热在线观看免费高清| 一区二区三区免费在线观看视频| 亚洲av永久国产剧情| 国产精品自拍av一区二区| 尤物天堂av一区二区| 91女厕偷拍女厕偷拍| 久久久亚洲精品中文字幕蜜桃| 高潮的毛片激情久久精品| 午夜伦理视频免费观看| 少妇被啪出水在线视频| 国产亚洲中文字幕无线乱码| 亚洲国产丁香综合激情啪| 国产中文字二暮区2021综合| 亚洲av成人在线资源| 一区不卡在线视频免费国产 | 日韩有码中文字幕一区| 亚洲欧洲中文字幕一区二区| 福利一区二区在线视频| 国产手机在线91精品观看| 人人狠狠综合久久亚洲| 国产精品女人毛片在线看| 国产亚洲精品久久综合阿香| 欧美亚洲国产日韩熟女| 精品国产成人一区二区| 亚洲国产欧美日韩国产| 日本久久91跳蛋视频| 熟女精品国产一区二区三区| 欧美一区二区三在线| 日韩欧美国产综合一区二区| 中文字幕久久亚洲一区| 亚洲精品成人久久网|