Java:シングルスレッドとマルチスレッドとは?
2005年4月27日 調査予定同時実行可能か、そうでないかという違いですが、もっと具体的の調査をする(特にマルチスレッドのプログラムを作成する方法や注意点)。
参考URL
http://www.atmarkit.co.jp/fdotnet/mthread/mthread01/mthread01_01.html
http://www.javaworld.jp/technology_and_programming/-/10943.html
http://okweb.jp/kotaeru.php3?q=774528
http://wisdom.sakura.ne.jp/programming/java/java36.html
http://www.netgene.co.jp/java/concurrentTips.html
参考URL
http://www.atmarkit.co.jp/fdotnet/mthread/mthread01/mthread01_01.html
http://www.javaworld.jp/technology_and_programming/-/10943.html
http://okweb.jp/kotaeru.php3?q=774528
http://wisdom.sakura.ne.jp/programming/java/java36.html
http://www.netgene.co.jp/java/concurrentTips.html
Swing:スレッドセーフとは?
2005年4月27日 調査予定Swingのコンポーネントは基本的にスレッドセーフじゃないらしい為、開発時にはスレッドセーフになるような仕掛けが必要な予感です。
ぐぐってみたけど、よく分からないので時間を見つけて調査する。
ぐぐってみたけど、よく分からないので時間を見つけて調査する。
レベル上げ:ヘイトコントロールって難しひ
2005年4月27日 FFXI前回のプロジェクトは失敗に終わりましたorz
次回のプロジェクトも厳しそうですorz
正直、転職を考えましたよ(笑)。ま〜、色々ありまして当面残留という形ですが、果たしてどうなる事やら。
次のプロジェクトは又未経験の分野になる為、JavaのSwingというコンポーネントを勉強しています。
とはいってもFFもやりたいので、誘われるまでは勉強!
ちらちら画面を切り替えて確認しています。集中できてないじゃん(笑)。
でもね、誘われない!
さそわれないのよほほ〜。諦めて限界爺さんにクエ貰っちゃった。
うーん、微妙に分からない。
たなさんに一つ教えてもらったので、誘われなかったらいってこよう。
って書いたら、誘いキターーー!
0.2秒(当社比)で返事を出しました。
初めはアットワだったんですが、プロマシア入れてない人がいたので、オンゾゾに変更。
・・・んが、高レベル者等がいて困った。サーチしていったんですが、流石に自分達のレベルまでしか検索しないよねー(笑)。
結局、3時間で7〜8000稼いで終わりました。最後の一時間はみんな帰ったので、そこそこうまかったんですけどね。
でも、ちょうど食事も切れたしタイミングは良かった。0よりは全然いいしね。
でも3時間の食事ってほんと微妙ですね。
次回のプロジェクトも厳しそうですorz
正直、転職を考えましたよ(笑)。ま〜、色々ありまして当面残留という形ですが、果たしてどうなる事やら。
次のプロジェクトは又未経験の分野になる為、JavaのSwingというコンポーネントを勉強しています。
とはいってもFFもやりたいので、誘われるまでは勉強!
ちらちら画面を切り替えて確認しています。集中できてないじゃん(笑)。
でもね、誘われない!
さそわれないのよほほ〜。諦めて限界爺さんにクエ貰っちゃった。
うーん、微妙に分からない。
たなさんに一つ教えてもらったので、誘われなかったらいってこよう。
って書いたら、誘いキターーー!
0.2秒(当社比)で返事を出しました。
初めはアットワだったんですが、プロマシア入れてない人がいたので、オンゾゾに変更。
・・・んが、高レベル者等がいて困った。サーチしていったんですが、流石に自分達のレベルまでしか検索しないよねー(笑)。
結局、3時間で7〜8000稼いで終わりました。最後の一時間はみんな帰ったので、そこそこうまかったんですけどね。
でも、ちょうど食事も切れたしタイミングは良かった。0よりは全然いいしね。
でも3時間の食事ってほんと微妙ですね。
Swing:アプリケーションを終了してもプログラムが終了しない?
2005年4月27日ウィンドウの右上の×をクリックして、ウィンドウを閉じても実はSwingプログラムは終了しないそうです。
本当に終了させるには、WindowListenerクラスのwindowClosedメソッド内でexitメソッドを呼び出すか、JFrameクラスのsetDefaultCloseOperationメソッドを引数(JFrame.EXIT_ON_CLOSE)で呼び出す必要があります。
本当に終了させるには、WindowListenerクラスのwindowClosedメソッド内でexitメソッドを呼び出すか、JFrameクラスのsetDefaultCloseOperationメソッドを引数(JFrame.EXIT_ON_CLOSE)で呼び出す必要があります。
Swing:ListenerとAdapterの違いは?
2005年4月27日 開発イベントを処理するクラスは通常該当のListnerをimplementsしますが、WindowAdaperをextendsしている参考サイトがありました。
Listenerをimplementsする場合、各Listenerクラスで定義されているメソッドを全て実装しなければなりませんので(必要なくても)、それを防ぐ為にAdapterはあるみたいです。
AdapterはListenerの実装が必要なメソッドが空で実装されていますので、自分が必要なメソッドだけオーバーライドするだけで済みます。
WindowAdaper以外にもあるのかは調査中です。
上記の意味では全てのListenerに対してあると思うのですが、ちょっと見当たりません・・・。
見つかり次第追加修正します。
Listenerをimplementsする場合、各Listenerクラスで定義されているメソッドを全て実装しなければなりませんので(必要なくても)、それを防ぐ為にAdapterはあるみたいです。
AdapterはListenerの実装が必要なメソッドが空で実装されていますので、自分が必要なメソッドだけオーバーライドするだけで済みます。
WindowAdaper以外にもあるのかは調査中です。
上記の意味では全てのListenerに対してあると思うのですが、ちょっと見当たりません・・・。
見つかり次第追加修正します。
Swing:Swingって?
2005年4月27日 開発JavaでGUIアプリケーションを作成する為のコンポーネントになります。
フレームとかボタンとかテキストエリア等の部品が用意されているので、それを組み合わせる事でブラウザやエディタ等のアプリケーションを作成する事ができます。
次の仕事先がこれらしいので、勉強しようとぐぐったんですが、これが又いいのがないんですよね。
弱った。
次の休みに書籍を買いに行くとして、それまでどうしよう?
取り合えず参考URL
http://msugai.fc2web.com/java/Swing/
http://www.jx-gluck.jp/Aplt/ApltFr.html
http://www.hellohiro.com/swingevent.htm
http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Java/program.html
http://wisdom.sakura.ne.jp/system/java/swing/swing4.html
http://homepage3.nifty.com/satoshis/java/swingtips/swing.html
http://www.ongs.co.jp/publications/articles/JAVAPRESS/Vol.14/
http://634.ayumu-baby.com/java/#swing
http://www.rsch.tuis.ac.jp/~nagai/GUIswing.html
http://jubilo.cis.ibaraki.ac.jp/~isemba/PROGRAM/JAVA/java.shtml#swing
http://terai.xrea.jp/Swing.html
フレームとかボタンとかテキストエリア等の部品が用意されているので、それを組み合わせる事でブラウザやエディタ等のアプリケーションを作成する事ができます。
次の仕事先がこれらしいので、勉強しようとぐぐったんですが、これが又いいのがないんですよね。
弱った。
次の休みに書籍を買いに行くとして、それまでどうしよう?
取り合えず参考URL
http://msugai.fc2web.com/java/Swing/
http://www.jx-gluck.jp/Aplt/ApltFr.html
http://www.hellohiro.com/swingevent.htm
http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Java/program.html
http://wisdom.sakura.ne.jp/system/java/swing/swing4.html
http://homepage3.nifty.com/satoshis/java/swingtips/swing.html
http://www.ongs.co.jp/publications/articles/JAVAPRESS/Vol.14/
http://634.ayumu-baby.com/java/#swing
http://www.rsch.tuis.ac.jp/~nagai/GUIswing.html
http://jubilo.cis.ibaraki.ac.jp/~isemba/PROGRAM/JAVA/java.shtml#swing
http://terai.xrea.jp/Swing.html
コメントをみる |

レベル上げ:今日の死亡確率60%・・・。
2005年4月25日 FFXIてめーら、みんな、皆殺しだーww
番組中、不適切な発言があった事をお詫び致します・・・というわけでこんばんわ(このネタ分かる人もいないだろうな〜。)♪
先ほど、PTから帰ってきたのですが、いやー、エキサイティングでした(笑)。
外国人はなしだったのですが、外国人PTさながらの無謀さっていうか(笑)。
私のHP真っ赤なのに、後衛さんのケアルが飛んでこない(笑)。
でもみるとMP500台・・・うはwwwおkwww
バースト、フレア、バッチコイ!! 三発は喰らいましたね、よく死ななかったなぁ(古代では)。
HPが赤と橙をいったりきたーり。
でも、楽しかったですよw? 2チェーンで375出したり、単品で275だったり・・・無茶ですよね、やっぱり、これ(笑)。
多分死ぬだろうなーと思ってましたが、やはり二回死んだところで食事が切れたので抜けさせてもらいました。
三時間食事だから三つしか持ってなかったんです。
今までで一番冷や冷やしたPTだったなー。楽しかったけど(笑)。
番組中、不適切な発言があった事をお詫び致します・・・というわけでこんばんわ(このネタ分かる人もいないだろうな〜。)♪
先ほど、PTから帰ってきたのですが、いやー、エキサイティングでした(笑)。
外国人はなしだったのですが、外国人PTさながらの無謀さっていうか(笑)。
私のHP真っ赤なのに、後衛さんのケアルが飛んでこない(笑)。
でもみるとMP500台・・・うはwwwおkwww
バースト、フレア、バッチコイ!! 三発は喰らいましたね、よく死ななかったなぁ(古代では)。
HPが赤と橙をいったりきたーり。
でも、楽しかったですよw? 2チェーンで375出したり、単品で275だったり・・・無茶ですよね、やっぱり、これ(笑)。
多分死ぬだろうなーと思ってましたが、やはり二回死んだところで食事が切れたので抜けさせてもらいました。
三時間食事だから三つしか持ってなかったんです。
今までで一番冷や冷やしたPTだったなー。楽しかったけど(笑)。
Java:SQLを発行する方法は?
2005年4月24日 調査予定データベースの取得からSQLの発行までを調査する。
一部他のと被ってしまうかもしれないが(プリペアードステートメント等)、うまく調整する。
またツールも作成する。
データソースからのコネクション取得やバイナリカラムのアクセスを統合するかは検討の余地がある。
一部他のと被ってしまうかもしれないが(プリペアードステートメント等)、うまく調整する。
またツールも作成する。
データソースからのコネクション取得やバイナリカラムのアクセスを統合するかは検討の余地がある。
Eclipse:CheckStyleの導入方法は?
2005年4月24日 調査予定結構、デフォルトで使用すると具合が悪いのでカスタマイズ方法や、拡張セット(設定ファイル?)みたいなものがあるかもしれないので調査する。
Java:文字化けの対処方法は?
2005年4月24日 開発文字化けは結構悩まされる事が多く、原因もJSP、サーブレット、APサーバ等色々と考えられます。
下記は現時点で調べたメモ書きになりますので、間違っていたりする場合もあるかもしれません。
間違いが分かった時点や不足点はその都度更新したいと思います。
文字コードの設定の優先順位は下記になります。
1.HTTPにおけるContent-Typeヘッダのcharsetパラメータ
2.HTMLのMETA宣言及びhttp-equiv属性で設定された、Content-Typeヘッダのcharsetパラメータ
3.HTMLの各要素のcharset属性
→APサーバの設定もあったような・・・? 分かり次第追加します。
対処例1
下記でJSP内の日本語は文字化けせずに表示されると思います。
JSPにエンコーディングを記述します(JSPファイルをシフトJISで作成した場合)。
<%@ page contentType="text/html; charset=Shift_JIS" %>
→ブラウザにデータを返却する際の文字コード指定します。
<%@ page pageEncoding="Shift_JIS" %>
→JSPをサーブレットに変換する際の文字コード指定します。
※上記の詳細は自分自身まだ良く分かっていないので、分かり次第追加します(笑)。
※JSPファイルをどの文字コードで作成したかによって、該当の文字コードを指定します。
例えばEUCでJSPファイルを作成した場合は、Shift_JISをeuc-jpに変更する必要があります。
下記でStruts(1.1)のリクエストやFormに送信された日本語がサーブレット内で文字化けせずに扱えると思います。
方法1
リクエストからの送信データをどの文字コードで扱うか指定します。
request.setCharacterEncoding("Shift_JIS");
HTMLフォームで入力された日本語文字列はサーブレットエンジンによってISO-8859-1でエンコードされています。
元のバイト列に逆変換してから、文字コードを指定して、Unicodeに変換するようにします。
String input1 = new String(practice1Form.getInput1().getBytes("iso-8859-1"), "Shift_JIS"));
方法2
resetメソッドはFormに値がセットされる前に呼ばれるメソッドです。
ここでエンコード指定を行います。
public void reset(ActionMapping mapping, HttpServletRequest request) {
input1 = "";
input2 = "";
try {
request.setCharacterEncoding("Shift_JIS");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
既にエンコードされているので、特別な処理は必要ないです。
String input1 = practice1Form.getInput1();
Strutsではない場合で特に上記のようなメソッドが用意されていない場合は、1の方を使用するって感じですかね?
※Strutsの場合、フィルタ機能を使用すれば同じようにFormに値がセットされる前に、文字コードの指定ができるようですので、別途調査した後に追加します。
上記でサーブレットから送信された日本語もJSPで文字化けせずに表示されると思います。
参考URL
http://liffey2.ld.infoseek.co.jp/java/japanese/
http://members.at.infoseek.co.jp/ss_yama/java/servlet_japanese.html
http://www2d.biglobe.ne.jp/~msyk/
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
参考書籍
Apache Struts 逆引き大全 345の極意 P67, 71, P404
下記は現時点で調べたメモ書きになりますので、間違っていたりする場合もあるかもしれません。
間違いが分かった時点や不足点はその都度更新したいと思います。
文字コードの設定の優先順位は下記になります。
1.HTTPにおけるContent-Typeヘッダのcharsetパラメータ
2.HTMLのMETA宣言及びhttp-equiv属性で設定された、Content-Typeヘッダのcharsetパラメータ
3.HTMLの各要素のcharset属性
→APサーバの設定もあったような・・・? 分かり次第追加します。
対処例1
下記でJSP内の日本語は文字化けせずに表示されると思います。
JSPにエンコーディングを記述します(JSPファイルをシフトJISで作成した場合)。
<%@ page contentType="text/html; charset=Shift_JIS" %>
→ブラウザにデータを返却する際の文字コード指定します。
<%@ page pageEncoding="Shift_JIS" %>
→JSPをサーブレットに変換する際の文字コード指定します。
※上記の詳細は自分自身まだ良く分かっていないので、分かり次第追加します(笑)。
※JSPファイルをどの文字コードで作成したかによって、該当の文字コードを指定します。
例えばEUCでJSPファイルを作成した場合は、Shift_JISをeuc-jpに変更する必要があります。
下記でStruts(1.1)のリクエストやFormに送信された日本語がサーブレット内で文字化けせずに扱えると思います。
方法1
リクエストからの送信データをどの文字コードで扱うか指定します。
request.setCharacterEncoding("Shift_JIS");
HTMLフォームで入力された日本語文字列はサーブレットエンジンによってISO-8859-1でエンコードされています。
元のバイト列に逆変換してから、文字コードを指定して、Unicodeに変換するようにします。
String input1 = new String(practice1Form.getInput1().getBytes("iso-8859-1"), "Shift_JIS"));
方法2
resetメソッドはFormに値がセットされる前に呼ばれるメソッドです。
ここでエンコード指定を行います。
public void reset(ActionMapping mapping, HttpServletRequest request) {
input1 = "";
input2 = "";
try {
request.setCharacterEncoding("Shift_JIS");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
既にエンコードされているので、特別な処理は必要ないです。
String input1 = practice1Form.getInput1();
Strutsではない場合で特に上記のようなメソッドが用意されていない場合は、1の方を使用するって感じですかね?
※Strutsの場合、フィルタ機能を使用すれば同じようにFormに値がセットされる前に、文字コードの指定ができるようですので、別途調査した後に追加します。
上記でサーブレットから送信された日本語もJSPで文字化けせずに表示されると思います。
参考URL
http://liffey2.ld.infoseek.co.jp/java/japanese/
http://members.at.infoseek.co.jp/ss_yama/java/servlet_japanese.html
http://www2d.biglobe.ne.jp/~msyk/
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
参考書籍
Apache Struts 逆引き大全 345の極意 P67, 71, P404
イベント:占有バリスタ楽しそうかも。
2005年4月24日 FFXI昔超絶さんと普通のバリスタ行ってみましたが、楽しかった♪ PVPは滅多にできないのでかなりドキドキしました。
装備を用意するのが大変なのが、行きづらくしている理由でしょうか。
装備とか貸し出してくれるといいのにね(笑)。
後はもう少し局地戦みたいな感じでもいいかも。
そういう意味では占有バリスタで、身内だけで戦うのは楽しそう。予め作戦とか練ったり、ルールを限定して弛みを引き締めたり・・・。
各チームにリーダー決めて、リーダーがやられたら負けとか、6VS6でガチンコ正面対決とかもいいな〜。
剣道みたいに1VS1で勝ち抜き戦とかもいいかも。外野はemoteで応援合戦だ(笑)。
バリスタだけど、身内だけの占有バリスタなら、いろんな事できそう。
私もバリスタいって、ポイント集めようかな・・・。
装備を用意するのが大変なのが、行きづらくしている理由でしょうか。
装備とか貸し出してくれるといいのにね(笑)。
後はもう少し局地戦みたいな感じでもいいかも。
そういう意味では占有バリスタで、身内だけで戦うのは楽しそう。予め作戦とか練ったり、ルールを限定して弛みを引き締めたり・・・。
各チームにリーダー決めて、リーダーがやられたら負けとか、6VS6でガチンコ正面対決とかもいいな〜。
剣道みたいに1VS1で勝ち抜き戦とかもいいかも。外野はemoteで応援合戦だ(笑)。
バリスタだけど、身内だけの占有バリスタなら、いろんな事できそう。
私もバリスタいって、ポイント集めようかな・・・。
コメントをみる |

Java:データソースを利用したコネクションの取得方法は?
2005年4月23日 開発データソースとはプログラムとデータベースへの接続との間のインターフェースです。
データソースを取得するには通常JNDIを使用し、データベースのドライバやURLの情報は外部の設定ファイルにします。
プログラム上ではデータソース名だけを使用してデータソースを取得します(設定変更でコードを変更しないで済みます)。
Javaプログラム上からデータベースに接続する方法は下記の二種類あります(他にもあるのかもしれませんが)。
・DriverManagerを利用
Class.forName("com.mysql.jdbc.Driver");
String _url = "jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS";
_con = DriverManager.getConnection(_url);
・データソースを利用
InitialContext _ic = new InitialContext();
DataSource _ds = (DataSource) _ic.lookup("java:comp/env/jdbc/MySQL");
Connection _con = _ds.getConnection();
※JNDI上のデータソースが利用可能な場合
例)jboss-3.2.6の場合
1.データソース設定ファイルを作成し、C:jboss-3.2.6serverdefaultdeployにコピーする。
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml,v 1.1.2.1 2003/12/12 19:19:56 starksm Exp $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name></user-name>
<password></password>
</local-tx-datasource>
</datasources>
※&を記述する場合は&に変更する。
2.サーバを再起動する。
3.実際のプログラムは下記のように記述します。
InitialContext _ctx = new InitialContext();
DataSource _ds = (DataSource) _ctx.lookup("java:/MySqlDS");
Connection _con = _ds.getConnection();
※DriverManagerから取得する場合はJDBCドライバをC:jboss-3.2.6libに置いていましたが、データソースから取得する場合はここでは駄目でした。
どうもC:jboss-3.2.6serverdefaultlibに置かなければないないようです。
上記で後は取得したコネクションを元にSQLを発行する事が出来ます。
参考URL
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_05/eclipse05_1.html
http://muimi.com/j/jboss/db/
http://www.hellohiro.com/datasource.htm
http://www63.tok2.com/home2/jd4/defineDS4JBoss.html
データソースを取得するには通常JNDIを使用し、データベースのドライバやURLの情報は外部の設定ファイルにします。
プログラム上ではデータソース名だけを使用してデータソースを取得します(設定変更でコードを変更しないで済みます)。
Javaプログラム上からデータベースに接続する方法は下記の二種類あります(他にもあるのかもしれませんが)。
・DriverManagerを利用
Class.forName("com.mysql.jdbc.Driver");
String _url = "jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS";
_con = DriverManager.getConnection(_url);
・データソースを利用
InitialContext _ic = new InitialContext();
DataSource _ds = (DataSource) _ic.lookup("java:comp/env/jdbc/MySQL");
Connection _con = _ds.getConnection();
※JNDI上のデータソースが利用可能な場合
例)jboss-3.2.6の場合
1.データソース設定ファイルを作成し、C:jboss-3.2.6serverdefaultdeployにコピーする。
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml,v 1.1.2.1 2003/12/12 19:19:56 starksm Exp $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql:///test?useUnicode-true&characterEncoding=SHIFT_JIS</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name></user-name>
<password></password>
</local-tx-datasource>
</datasources>
※&を記述する場合は&に変更する。
2.サーバを再起動する。
3.実際のプログラムは下記のように記述します。
InitialContext _ctx = new InitialContext();
DataSource _ds = (DataSource) _ctx.lookup("java:/MySqlDS");
Connection _con = _ds.getConnection();
※DriverManagerから取得する場合はJDBCドライバをC:jboss-3.2.6libに置いていましたが、データソースから取得する場合はここでは駄目でした。
どうもC:jboss-3.2.6serverdefaultlibに置かなければないないようです。
上記で後は取得したコネクションを元にSQLを発行する事が出来ます。
参考URL
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_05/eclipse05_1.html
http://muimi.com/j/jboss/db/
http://www.hellohiro.com/datasource.htm
http://www63.tok2.com/home2/jd4/defineDS4JBoss.html
例えば文字型で動的に増減する場合、JavaScriptでは一個の場合は非配列で複数の場合は配列として扱われると思ったが、うろ覚えなので確認する。
※Struts等は対応するBeanの要素が文字列型になっていれば、一個でも配列として扱われたと思う(これもうろ覚えだが)。
※Struts等は対応するBeanの要素が文字列型になっていれば、一個でも配列として扱われたと思う(これもうろ覚えだが)。