【初心者】Java質問・相談スレッド109【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0458デフォルトの名無しさん
2007/12/02(日) 19:43:21インターフェースとその実装クラスに関することです。
ArrayListを使う場合、↓のように宣言する事が多いけど、これはListであればArrayListだろうがLinkedListだろうが良い場合ですよね。
List list = new ArrayList();
たとえばArrayListにしかないtrimToSize()を使いたい場合は上記の場合ダウンキャストしないといけないから、↓のように書くと思います。
ArrayList list = new ArrayList();
JDBCでMySQLに接続したい時は、
registDriverなりClass.forName()すればDriverManagerのgetConnectionがMySQLのJDBCの実装クラスを返してくれるけど、
java.sql.*に定義されているインターフェースのみで操作できますよね。
com.mysql.jdbc.Connection、com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
みたいに実装クラスをソース上に記述して使用するメリットとデメリットを教えていただけませんか?
com.mysql.jdbc.*にしかないメソッドを使いたい場合は前述のArrayList.trimToSize()みたいになるから理解できるのですが、
最適化のために使うと教えられました。
どういう最適化がなされるのでしょうか。識者の方々ご教授くださいm(。_。)m
■ このスレッドは過去ログ倉庫に格納されています