初心者歓迎! Java相談室 その5
■ このスレッドは過去ログ倉庫に格納されています
00011
NGNG|| ̄ ̄| ∧_∧
||Java| ( ) ∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||__| ( ○ ) ( ) < 俺達の旅はここから始まる。
|| │ | │ / | \___________
((二二)) .(_(__)〜(___ノ
( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
00021
NGNGJAVA厨房
http://piza.2ch.net/tech/kako/966/966391052.html
Java相談室
http://piza.2ch.net/tech/kako/971/971960169.html
Java相談室 Part2
http://piza.2ch.net/tech/kako/980/980858322.html
Java相談室 Part3
http://piza2.2ch.net/tech/kako/994/994150280.html
Java相談室 Part4
http://pc.2ch.net/tech/kako/997/997791189.html
Java相談室part5
http://pc.2ch.net/test/read.cgi/tech/1003567552/
ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://pc.2ch.net/test/read.cgi/tech/993358225/
ネタ心者歓迎! 今更ながらにJava相談室
http://pc.2ch.net/test/read.cgi/tech/1003569074/
ネタ心者歓迎! 今更ながらにJava相談室 その2
http://pc.2ch.net/tech/kako/1006/10064/1006408230.html
ネタ心者歓迎!今更ながらにJava相談室 その3
http://pc.2ch.net/tech/kako/1007/10078/1007802486.html
ネタ心者歓迎!今更ながらにJava相談室 その4
http://pc.2ch.net/test/read.cgi/tech/1010545421/
00031
NGNGQ: クラスの使い方が分かりません。
A: Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html
Q: SDKの仕様や、Javaの使い方、コマンドの使い方を教えて下さい。
A: Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html
Q: Javaの言語仕様が知りたいです。
A: Java言語規定
http://www.y-adagio.com/public/standards/tr_javalang/index.htm
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html
Q: 「僕以外の人も、同じ疑問を持ったはず」と思えるような質問があります。
A: Java House ML Topics / Java FAQ / Java Tips
http://java-house.etl.go.jp/ml/topics/
http://www.gimlay.org/~javafaq/
http://www.javaworld.com/columns/jw-tips-index.shtml
Q: 僕、サルなんですけど・・・。
A: サルにはわかるヒアリングJava入門(マルチランゲージ対応)
http://www.asahi-net.or.jp/~rc4t-ishr/Saru/index.html
00041
NGNGJAVAサーブレットQ&A
http://pc.2ch.net/test/read.cgi/tech/972229341/
JavaサーブレットQ&A LV2
http://pc.2ch.net/test/read.cgi/tech/1012728608/
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/test/read.cgi/tech/1004972840/
iアプリ
http://pc.2ch.net/test/read.cgi/tech/1000723476/
i‐MODEのJAVA
http://piza2.2ch.net/tech/kako/975/975428633.html
iアプリでゲーム
http://game.2ch.net/test/read.cgi/gamedev/1005042631/
[Java]JBuilder5[Java]
http://pc.2ch.net/test/read.cgi/tech/995044723/
Pure Java Mail Server
http://pc.2ch.net/test/read.cgi/tech/1009991622/
クライアントサイドJavaどうよ?
http://pc.2ch.net/test/read.cgi/tech/1002160815/
【祝】 JDK 1.4 βリリース
http://pc.2ch.net/test/read.cgi/tech/990949654/
IBM VisualAge for JAVA
http://pc.2ch.net/test/read.cgi/tech/989931658/
Pure Java Mail Server
http://pc.2ch.net/test/read.cgi/tech/1009991622/
00051
NGNGCとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/test/read.cgi/tech/1009707596/
Java撲滅委員会
http://pc.2ch.net/test/read.cgi/tech/996848309/
●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
●●JAVAって死滅しちゃうの???? PART3●●
http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGお疲れさん >>1
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGAとB という2つの対象VMがあって、それぞれ環境依存なAPIがあります。
そこで、環境依存な部分と環境に依存しない部分にわけて開発しています。
で、環境に依存しない部分を package kaihatsu.main、依存する部分を
package kaihatsu.A、package kaihatsu.B としてわけています。
kaihatsu.A、kaihatsu.BはAPIの表面はどちらも同一にしています。
ところがこの分け方だと結局環境依存な部分のパッケージを呼び出す部分が
そもそも環境に依存する形になるので、それぞれへリリースするとき
import文を書き換えてからコンパイルすることになり、なんだかスマートじゃありません。
根本的な考え方が間違っていると思うんですけど、どうもいい考えが
浮かびません。だれかヒントください。
0012デフォルトの名無しさん
NGNGファクトリを使え。
デザインパターンな。
0013デフォルトの名無しさん
NGNGファクトリクラス以下をコンパイルするときに差し替えるってことですか?
VMが違う上JDKも同じものを使えないので実質共通化できるのは
環境非依存な分のソースだけなんで・・・
0014デフォルトの名無しさん2
NGNGFactoryパタソ使うんなら、実行しているVMがAなのかBなのかをシステムからGetして、その情報をFactoryに渡せば対応するパッケージのオブジェクトを返す、ってやればいいんじゃないでしょうか?
マジレススマソ
0015デフォルトの名無しさん
NGNGシステムプロパティとかpropertiesファイルとかに環境依存のクラス名を指定するようにする。
ファクトリではそれを読んでリフレクションを使ってインスタンスを生成。
java.lang.refrection
あたりを見てみな。
001611=13
NGNGそれをするためには、全パッケージをあらかじめ用意する必要が
ありますよね?
ファクトリの中に使われない場合の選択肢があるから。
>>15
プロパティが使えればいいんだけど、環境Bでは
使えない(制限されている)のでちょっと無理です。スマソ
0017デフォルトの名無しさん
NGNGファイルも
java -Dhoge.hoge=foo
ってのも使えないの?
0020デフォルトの名無しさん
NGNGデータベースもだめ?
そしたら>>14しかないんでないの。
002111=13
NGNGかならずしも実行ファイルを共通化しようとしてるわけではないです。
0022デフォルトの名無しさん
NGNG共通の親クラスとなる抽象クラスを共通部分でつくって
環境毎に各サブクラスを実装する。
その抽象クラスにstatic な getInstance()とかの関数作って
その関数のなかで適宜環境に合わせたインスタンスを生成して返す。
各サブクラスではコンストラクタをpublicにしないで自由にnewさせない。
getInstanceするときリフレクション使えばさらに汎用性増。
参考↓とか
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/text/Collator.html
0023デフォルトの名無しさん
NGNGんじゃ、プリプロセッサを使えば?
0024デフォルトの名無しさん
NGNGデフォルトのpropertyから環境を特定する事は出来ないの?
それが出来たら、”環境A”なら kaihatsu.A.Hogeのインスタンスを作成、BならB。Hogeを作成って感じで作る。
(完全修飾名で書けば import 〜 って指定は要らないのでコンパイルエラーにはならない)
0025烏龍茶
NGNGちょっと長いけど俺ならこんな感じになるだろうな。
HogeFactory の HOGE_CLASS はハードコードじゃなくてプロパティリソース
から読み出すとか修正する必要があるけど。VM 依存ってのが何を意味する
のか分からなかったので Win 系と Linux 系と置き換えてみたけど、意味
分かるよね。
----------[インターフェース]----------
package kaihatsu;
public interface Hoge{
public abstract void foo();
public abstract void bar();
}
----------[実装クラス1]----------
package kaihatsu.A;
import kaihatsu.*;
public class WinHoge implements Hoge{
public void foo(){/* Win 固有の処理 */}
public void bar(){/* Win 固有の処理 */}
}
----------[実装クラス2]----------
package kaihatsu.B;
import kaihatsu.*;
public class LinuxHoge implements Hoge{
public void foo(){/* Linux 固有の処理 */}
public void bar(){/* Linux 固有の処理 */}
}
----------[ファクトリ]----------
package kaihatsu;
public class HogeFactory{
private static final String[][] HOGE_CLASS = {
{"windows", "kaihatus.A.WinHoge"},
{"linux", "kaihatus.B.LinuxHoge"},
};
public Hoge getInstance(){
String os = System.getProperty("os.name");
for(int i=0; i<HOGE_CLASS.length; i++){
if(os.indexOf(HOGE_CLASS[0]) >= 0){
try{
return (Hoge)Class.forName(HOGE_CLASS[1]).newInstance();
} catch(Exception ex){/* */}
}
return null;
}
}
----------[クライアントコード]----------
import kaihatsu.*;
…
HogeFactory factory = new HogeFactory();
Hoge hoge = factory.getInstance();
hoge.foo():
hoge.bar();
002611=13
NGNGファクトリの実装の仕方が問題だと考えてます。
import kaihatsu.B;
public class HogeFactory{
public Hoge create(){
return new Hoge();
}
ここで、Hogeは kaihatsu.A、kaihatsu.B ともに実装していて
それを使う人は意識せずにつかうことが可能なのですが
このHogeFactoryをコンパイル時に差し替えるのに
いい方法がないかと考えてるところです。
0029デフォルトの名無しさん
NGNGこれなら融通がききそうなStringBufferの方が
便利に見えてしまいます。
それでもStringと使い分けるメリットって何でしょう?
どうぞよろしくお願いします。
003114=24
NGNGつかそのFactoryの置き場所がオカシイ(依存パッケージ内に入ってちゃ抽象化にならんやん...
0032デフォルトの名無しさん
NGNGその理由を明確にしなければココの連中はまともな
解答を出さないと思われ。
003311=13
NGNG>>25でのファクトリ内でのシステム識別を
コンパイルで実行ファイルをつくるときにやれればいいわけですが・・・
あと、ここで散々実行ファイルといってるのは hoge.jar という
jarファイルと考えてください。
003411=13
NGNGシステムプロパティを読むまでもなく
コンパイル時(実行ファイル作製時)に
ターゲットとなるVMはわかってるから
そのときに処理したい(中で判断させたくない)
からです。
003524=26
NGNGじゃあ妥協案として、main、A、Bそれぞれのパッケージを分けて、
コンパイルで環境依存で引っかかる部分を、Antで定義ファイル2つ作ってそれぞれ必要なパッケージのみコンパイルすればイイかも。
003811=13
NGNG今まで main に A,B をそれぞれインクルードするようなイメージでしたが
逆に A,B にmainをインクルードするイメージで
それぞれの実行ファイルを作ればいいのかな?
皆様方、つまらない話につきあわせてスンマソン
参考になりました。
0039デフォルトの名無しさん
NGNGいや、だからマジでプリプロセッサを使えって。
0041山 ◆q/UzXBMk
NGNGなにかいい書籍やHPがあったら教えて下さい。
0042デフォルトの名無しさん
NGNGCのヤツでいいじゃん。
004311=13
NGNGgcc -DVM_FLG=B -E HogeFactory_.java > HogeFactory.java
みたいな感じでやるってことですか?
IDEを使ってコード書き→コマンドラインで実行ファイル作製
という方法で開発してるのでちょっと実験してみます。
0044デフォルトの名無しさん
NGNGべつにmakeでもいいけどさ。
004511=13
NGNG0046デフォルトの名無しさん
NGNGcppな。
antつかってんなら>>44でもいいぞ。
0048デフォルトの名無しさん
NGNGHTMLの解析はSwingに取り込まれていたはず。
それを利用できそうかどうかは知らんが。
でも、JAVAでブラウザ作るメリットって…
0049デフォルトの名無しさん
NGNGマウスで画像をドラッグすることで、JScrollPane内での
画像の移動(=スクロールバーも追従)をしたいと思ってます。
現在、MouseMotionで実現しようとしてるのですが、
スクロールバーとは無関係に画像が動いてしまう上に、
マウスの位置情報がふらついていて画像がちらついてしまいます。
何かサンプルソースがあるサイトをご存じの方、教えてください。
また、こういう動作に便利なライブラリがあるのでしょうか?
Googleで検索してるんですが、なかなか見つけられなくて。。。
0050デフォルトの名無しさん
NGNGマ板開いたら、
アラートダイアログ「クソスレは無視して下さい」
が表示されるのですが、なんか荒し注意報とかでてるんでしょうか?
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGWEBPG辺りに居るんだよ
0053デフォルトの名無しさん
NGNGStringBufferは、インスタンス内部の値が変更される可能性がある。
また、内部では配列を持っていて、しかも動的にサイズ拡張再確保
などを行うので、インスタンスが重い。
Stringはインスタンス内部の値が変更されることが絶対にない。
「絶対にない」ことで、安全なライブラリを作る為に利用できる。
また、Stringインスタンスの内部の値はFlyweightが適用されている
ので、StringBufferに比べてメモリ使用量などのコストが軽い事
が多い。
Immutableオブジェクトの効用について勉強せよ。
0054デフォルトの名無しさん
NGNGMouseMotion全てを拾って再描画繰り返せば、そりゃちらつくわ。
イベントの発生数が多すぎて再描画が間に合ってないんちゃう?
適当に捨てるか、Windowのドラッグのようにドラッグリリース
するまで再描画しないようにしたほうがいいと思うよ。
ドラッグリリースイベントなら、ドラッグ一回につき一回しか
起きないから、描画ロジックも軽く出来るでしょ?
0055デフォルトの名無しさん
NGNGjavax.swing.text.html.HTMLDocumentをModelに与えた
javax.swing.JTextPaneは、そのまんまHTMLブラウザとして使えないでしょうか?
0056前スレの952
NGNGアドバイス求む!
0057デフォルトの名無しさん
NGNGなんだっけ?
ここに書いてくれ。
0058デフォルトの名無しさん
NGNGttp://developer.java.sun.com/developer/bugParade/bugs/4327364.html
これかな?実行環境側の問題なのかもね。
0060デフォルトの名無しさん
NGNG<%for(int i = 0; i < 10; i++){%>
hoge<%=i%>
moge<%=i%>
koge<%=i%>
<%}%>
のような形でループを書くと、なぜかループの途中でiの値が
おかしくなって、無限ループになってしまうことがあります。
これってJAVAのバグなんでしょうか?
ご存知の方がいたら教えていただけると嬉しいです。
0061烏龍茶
NGNGサーブレットコンテナは何をお使いで?
それと Java のコードに変換されたファイルの中身は確認した?
0062デフォルトの名無しさん
NGNGJSPが変換されたサーブレットは確認しましたが、
ループの途中に何も処理を挟んでいないので
iが勝手に変わるわけはないのですが・・・。
なぜか、実行すると、
hoge2
moge2
koge1
hoge2
moge2
koge1
hoge2
moge2
koge1
...
のような感じで無限に文字列が出力されます。
0063烏龍茶
NGNG調査中となっている。-classic オプション付けて HotSpot 切るか、
-Xint 付けてインタープリタモードで動かしてみては。ただ JRE には
Classic VM 付いてないみたいだし、両方とも HotSpot の意味が無く
なるけど。
0064デフォルトの名無しさん
NGNGmoge<%=i%>などを
moge<%=""+i%>という感じに書き換えると普通に実行されました。
0065烏龍茶
NGNGその JSP の実行クラスを見つけて jad で逆コンパイル。
逆コンパイルした結果が真っ当なコードなら… バグかな…。
後は Tomcat に変更か。とりあえずサーブレットのコードの
ループ部分だけでも貼り付けられませんか。
所で今の JServ って JSP 使えるんですか?
0066デフォルトの名無しさん
NGNG見にくいからスペースを入れて
<%= i %>
ぐらいに変えたら?もしかしたら直るかも。
<% for (int i = 0; i < 10; i++) { %>
や
<%
for (int i = 0; i < 10; i++) {
%>
とかね。JSPパーサーのバグに引っかかり易い書き方なんじゃないかな。
0067デフォルトの名無しさん
NGNG後ろが連番になっている状態で出力したい文字列が7個あって、
それを6回ループでまわしているだけです・・・。
iを""+iのようにして文字列扱いにすると直るので
コンパイルして実行する側のバグだと思っているのですが・・・。
ところで、JServがJSPを取り扱えるかどうかですが、実はあまり知識が無いので、
現在JServがJSPを実行しているのか、それとも他の何かがJSPをサーブレットに変換して
それをJServが実行してるのかわからないです。申し訳ないです。
0068デフォルトの名無しさん
NGNG実は、本物ではきちんとスペースを入れているのですが、無限ループになってしまいます。
サーブレットに変換された状態で見てもおかしなところは無いので
非常に気になっています。
0069ほげほげ
NGNGそのまま実行させてみましたが正常に動作しました。
Win98 + Tomcat3.2.2です。
余計なコードは無しで、>60だけのコードで実行しても駄目ですか?
0070デフォルトの名無しさん
NGNGサーブレットコンテナとバージョン確認するのが先かな
>>66 みたいな簡単なコードでも再現するの?
0071ほげほげ
NGNGjavaファイルに変換されたjspが有るから、
そのコードを見てみると良いのではないでしょうか?
0072ほげほげ
NGNG>JOptionPaneでのエラー
あ、それは僕も経験が有ります。
たしか1.3.0でVMのエラーが発生し、1.3.1で回避できました。
VMを替えれば発生しなくなると思います。
0074デフォルトの名無しさん
NGNGうちの会社に、EJBを使えば(再利用等により)プログラミングの負荷
を軽減できると抜かす奴が説明に来るそうだ。
EJBの目的はそんなんじゃないだろと漏れは思うんだが、意見くれ。
EJBの短所を考えれば安易に導入するものじゃないと思うんだが。。。
スレ違いか?
0075デフォルトの名無しさん
NGNGEJBはクラスタリングやら分散トランザクションが必要なときには有用だけど
小(〜中)規模なシステムには逆効果。CGI代替とかね。
EJBの記事とか見たら分かると思うけどコード記述量は増えるし、
EJB故の制限事項も多い。(staticフィールド使用禁止とか)
EntityBeanはパフォーマンス悪い。
あと、もし使うんならツール使用は必須。JBuilderとかVisualAgeとかね。
あれをエディタでシコシコ手書きする奴がいるんだよ。
もうバカかとアホかと・・・
0076デフォルトの名無しさん
NGNGバカSヨは、よく分かってないくせに流行しているというだけで(高く売れるとか、
売り込みのネタになるとか言うアホな理由で)導入するわけだが、まさか「流行っ
てるから」などという理由をあからさまに言うのはいくらなんでも間抜けなので、
とりあえず取り繕ってみた、に500ガバス。
0077デフォルトの名無しさん
NGNGビジネスロジックを1からクラスタリング対応するよか EJB 使った
ほうが開発量を軽減できるだろうけど、そんな必要なければ無用の長物も
いいところ。ちゅうかまだ EJB 全能説を信じてる人間がいたとは驚き。
何事も適材適所、林檎の皮剥きに斧使う莫迦はいない。
多分そいつ、次は XML が来ること必須。中でも SOAP を薦めてくるに
1000ペソ。大穴で PDF に 150ペソ。
007856
NGNGとりあえず、1.3.1にしたら会費できたので、これでいきます。
サンクス
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG(構造化したデータ記述の標準のフォーマットがあるというのは、
本気で便利だと思うよ。マーシャリングコストとの兼ね合いで問題
なければ、だけどね。)
手段と目的を混同してメリットも糞もないような使い方を強制する
低級バカが、なんで仕切りの立場には多いんだろね。
0081超初心者
NGNG<H2>教えてください<H2><BR>
<H3>教えてください<H3><BR>
これをfor文で表示したいのですが、教科書とおりにしてたらうまくいきませんでした
誰か教えてください
0082超初心者
NGNG<SCRIPT LANGUAGE="JavaScript">
for(i=1;i<=5;i++);{
document.write<FONT SIZE="+i+">";
document.write("もなちゃん<BR>");
document.write<"/FONT">
}
</SCRIPT>
</BODY>
教科書の文です
0083デフォルトの名無しさん
NGNGカエレ!
0084デフォルトの名無しさん
NGNG008529
NGNGありがとうございます。
早速Immutableオブジェクトについて調べてみました。
なるほど〜こういった考えがあるのですね。
となると、String = 事実上Finalしたのと同じ(定数)
に見えちゃいました。
0086山 ◆q/UzXBMk
NGNGwebブラウザーってサーバーにOS名とかの情報を渡しますよね、
それをユーザーが好きな名前に設定したりとか設定すれば串を自動で
通してくれるとかそういう機能のあるのを作ろうかと思って…
通信やるならCよりJAVAが簡単って言われたので…
>>55
初めて聞く名前のクラスです。
そのクラス調べてみます。
0088山 ◆q/UzXBMk
NGNGJDK1.3?JBuilderとは違うツールなんですよね?探してみます。
>でも JavaScript とか実装する気?
JavaScriptもそうだしフラッシュとかも…何かあるんですか?
0089デフォルトの名無しさん
NGNGおまえは本気で言ってるのか?
0090デフォルトの名無しさん
NGNG>となると、String = 事実上Finalしたのと同じ(定数)
>に見えちゃいました。
これはfinalの意味の取り違えだね。
String s = "sss";
と
final String s = "sss";
の違いを理解しよう。
0091デフォルトの名無しさん
NGNGゴスリングはNetBeansを使ってるらしいし、パワフルなマシンならいいんじゃないか?
0092デフォルトの名無しさん
NGNG俺はForte使ってるけど。エディタとして。
補完使えるから楽じゃん。逆に他の事には使ってないけど。
0093デフォルトの名無しさん
NGNGナイスボケ
0094山 ◆q/UzXBMk
NGNGナイスと言われても…
IEとかっていろんな機能をアドオンしたアプリに割り振りますよね(表現あってる?)、
JavaScript もそうじゃないんですか?(オオボケ?
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGカエレ!
0097デフォルトの名無しさん
NGNG0098山 ◆q/UzXBMk
NGNG自分でJavaScriptのソースを解析して処理しなければならないって事ですか?
0099デフォルトの名無しさん
NGNGJava2のクラスライブラリのソースはどこで公開されているんでしょ?
sunのサイト行ってみたけどわからなかった・・
0100デフォルトの名無しさん
NGNG$JAVA_HOME/src.jar
010185
NGNGクラスについたFinal=これ以上継承不可
メソッドについたFinal=これ以上オーバーライド不可
フィールド(メンバ変数のことですよね?)についたFinal
=書き換えができない
と理解していました。
根本的に間違えているのでしょうか?
よろしければご教授下さい。お願いします。
私の教科書は
http://www.wakhok.ac.jp/~tatsuo/kougi99/grammar/index.html
http://stslabo.sts.co.jp/Java/Tutorial/Primer/index.html
と「コアサーブレット&JSP」です。選択に問題がありますでしょうか?(不安
■ このスレッドは過去ログ倉庫に格納されています