- 1 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 01:02:31 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 ttp://pc11.2ch.net/hp/ Webプログラミング ttp://pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 ttp://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド ★★Java質問・相談スレッド133★★ ttp://pc12.2ch.net/test/read.cgi/tech/1251630161/ 次スレは>>950あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 ttp://www.wikiroom.com/java/
- 910 名前:886 mailto:sage [2009/11/20(金) 00:06:24 ]
- >>906
長い上に上手く説明できませんが、 あるサイトを参考に、IDなどを通じてグローバルに参照できるオブジェクト群を管理するクラスを作ろうとしています。 このクラスは、外部からの要求に応じてオブジェクトを生成し譲渡するのですが、その生成したオブジェクトは自身のフィールドに保持します。 そして次に同じ要求があった場合は、新たに生成せずに保持していた同じオブジェクトを渡します。 一つのオブジェクトを不特定多数の外部で共有するためです。 問題は、保持しているオブジェクトが管理クラス以外のどこからも参照されなくなった時は、それを削除せねばなりません。 そのタイミングを知るために参照カウンタが必要なのです。 >>904 弱参照は使ったことないのですが、上記のような場合でもGCしてくれるものなのでしょうか。 Reference関連は勉強不足で何もわかりません。その辺も調べてみます。
- 911 名前:デフォルトの名無しさん [2009/11/20(金) 00:15:02 ]
- ある書籍のwait/notifyのメカニズムの問題で
正解が下記のようになってるんですが、 consumerメソッドでwaitの下の isFlag=falseがどうしても理解できません。 ここでfalseを代入してしまうと 上のproduceでisFlag=trueでnotifyを呼びだし waitを呼び起こしてもすぐにまたfalseになり いつまで経ってもwhileから抜け出せないと思うんですが・・・ 私の見解が間違っているんでしょうか? class MySync{ boolean isFlag = false; public synchronized void produce(){ isFlag = true; notify(); } public synchronized void consumer(){ while(!isFlag){ try{ wait(); isFlag = false; }catch(Exception e){} } } }
- 912 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:19:13 ]
- >>910
昔、そういうの使ったことあるよ。 FacesContext.getCurrentInstace().getExternalContext() の下にあるメソッドだったと思う。任意のクラスに対する、別クラスからのバインディングを取り扱う道具があるはず。
- 913 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:20:05 ]
- >>910
なるほど・・・ シングルトンを強制しつつも、参照されなくなったらGCに回収させるのですね。
- 914 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:22:24 ]
- なるほど。要はキャッシュの仕組みが作りたいわけね。
その用途ならソフト参照がいいかもね。 実際のところ弱参照は相応のライフサイクルが期待される オブジェクトのキャッシュ方法としては適していない場合が多い。 www.ibm.com/developerworks/jp/java/library/j-refs/index.html あたりを読んでみるとわかりやすいよ。
- 915 名前:デフォルトの名無しさん [2009/11/20(金) 00:25:57 ]
- ウィークもいいけど、参照カウンタなんかCOMっぽくていいかもw
ほっといた方がよさそうだww
- 916 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 02:35:06 ]
- いちいちaddRefとかもういやだお
- 917 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 02:41:51 ]
- >>916
もしc/c++でもjvmでも、gcとかautoリソース解法とかの概念を使えるならそれをデストラクタに入れとくといいよw
- 918 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 06:37:05 ]
- 項目と値があるTableをjavaで扱う時、
CollectionInterfaceか配列どのような方法を使うのがいいのでしょうか? Tableからの情報を使って、別のTableの中から同じ文字列を持つものを検索したいと考えています。 ArrayListの二次元配列で作っていたのですが、 うまくピンポイントの情報が取得できません。 Array.get(int )はObjectのため、ArrayListのように指定しての取得ができないように思われます。 まだまだ勉強不足で見当違いの事を書いているのかもしれませんが、 それも含めてご指摘ご意見頂ければと思います。 よろしくお願いします。
- 919 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 08:37:57 ]
- >>918
HashMap を使わない理由は?
- 920 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 08:45:52 ]
- なにこのデジャブ
- 921 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 11:47:18 ]
- >>911
お前が正しい そんな本は窓から投げ捨てろ
- 922 名前:デフォルトの名無しさん [2009/11/20(金) 14:09:16 ]
- なんか、Javaの技術で面白ものってないですか?
面白いサイトとか本とか教えてくれるとありがたいっす。 今、経理やってるんだけど、2年くらいJavaやってました。 久しぶりにJavaやりたくなったんです。 よろしく><;
- 923 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 14:10:24 ]
- iTextとかおすすめ
PDF作れる WebならApache
- 924 名前:922 mailto:sage [2009/11/20(金) 14:21:01 ]
- >>923
ありがとう。もう両方やったんです><; J2EEの青い分厚い本でも今からかってこよっと・・あれなら、新しいEJBとか載ってそうだ。
- 925 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 17:10:57 ]
- Web系ならWicketとか
- 926 名前:886 mailto:sage [2009/11/20(金) 20:01:26 ]
- >>914
リンク先参考になりました。 有難うございます。 >>922 JOGLかProcessingはいかがでしょうか。 ゲームやプログラミングアートに興味があれば是非。
- 927 名前:デフォルトの名無しさん [2009/11/20(金) 20:06:54 ]
- Javaの長所と短所を教えてください。
- 928 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:20:50 ]
- 長所:Write Once, Run Anyware.
短所:リッチクライアント周りでは↑が嘘になる
- 929 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:21:37 ]
- Anywhere.だた。恥ずかし−
- 930 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:33:18 ]
- 長所
ともかく色々なプラットフォームで動く マニアックでない素直なOO言語 強い型付け 短所 玉虫色器用貧乏GUI、SWTなんてネイティブ移植しなけりゃ動かないし 強い型付け
- 931 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:39:31 ]
- Map<String, ? extends MyInterface> map = new HashMap<String, ? extends MyInterface>();
これには閉口する。 var map = new HashMap<String, ? extends MyInterface>(); ってならんかな。提案レベルならすでにJSRにあるんだとは思うが。
- 932 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:40:55 ]
- そんなあなたに、はいScala
- 933 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:47:47 ]
- >>931
逆はjdk7からできるようになる予定だよ。 Map<String, ? extends MyInterface> map = new HashMap<>();
- 934 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:51:21 ]
- >>933
なるほど。IDEとの連携を考えてもそっちのが柔軟か。
- 935 名前:806 mailto:sage [2009/11/20(金) 22:06:28 ]
- >>905
ソースさっくりみたけど DLLたたいてるね。 携帯でMP3って意外と敷居高いな・・・
- 936 名前:デフォルトの名無しさん [2009/11/20(金) 22:12:47 ]
- 最新のJAVA2EEをインストールして暫くしたらパソコン起動するたびにコマンドプロンプトが起動しSUNのフォルダのdomain01内にログを作り出します。
サーバー?なのか不明なんですが、これ止めるには何処をどうしたら良いでしょうか。 よろしくお願いします。
- 937 名前:806 mailto:sage [2009/11/20(金) 22:13:08 ]
- >>886
RMIとか使ってプロセス間通信でもしてるわけじゃないのかな? 単独の仮想マシン上で動いてる場合、参照されなくなったらGC対象になるのはご承知だろうし。 弱参照しているばあい、他の参照がないとGC対象になるってだけなので、今回の件には使うところはないかも。 ちょっと違うことを想定してしまったので、わすれてOK(弱参照
- 938 名前:806 mailto:sage [2009/11/20(金) 22:26:26 ]
- 長所と短所の話は 俺の好きな話題だったので・・・
長所 メモリ開放処理が自動なので簡単である。 そのためソースコードはCなどと比べると、とてもシンプルになり可読性がよい。 java専用高性能エディタが存在するため、生産性は高い(キリ 標準のライブラリがこれでもかってくらいそろってる。 短所 メモリ開放処理は自動だが、オブジェクトの開放契機などに注意を払わなくなるため。 イージーミスでメモリリークが発生する。 javaSE javaEE と javaMEは別物過ぎる、携帯電話などの端末でもSEで書いたものが動くことを期待する。
- 939 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 22:52:32 ]
- JLayerMEがDLL叩く?
そんなもん叩いてないがMMAPIのフルセットが実装されてないとJLayerMEは動かないからMIDPベースでは無理。
- 940 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 22:55:54 ]
- >>938
>>短所 >>メモリ開放処理は自動だが、オブジェクトの開放契機などに注意を払わなくなるため。 >>イージーミスでメモリリークが発生する。 あんまり見たことないけどね・・・ どんなの?
- 941 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:04:30 ]
- 独自に配列スタックを作ろうとして、popされた時にnullで掃除しない場合とかか?
しかしArrayDequeueとか適切なクラスがあるしなぁ。
- 942 名前:918 mailto:sage [2009/11/20(金) 23:24:26 ]
- >>919
ありがとうございます。 ArrayListにHashMapを格納することで、解決できました。
- 943 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:28:20 ]
- >>941
うん。そういう教科書とかに載ってそうなのはわかるんだが、 実装レベルのイージーミスで起こるメモリリークってどんなの?
- 944 名前:デフォルトの名無しさん [2009/11/21(土) 01:17:22 ]
- ライブラリにポインタ渡す時はライブラリを信頼しきってるから
あとでしっぺ返しされると超こまる
- 945 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 01:23:54 ]
- >>943
staticな変数にデカいコレクション突っ込んだまま放置してメモリを馬鹿食いするとか? メモリリークというのは正しくないけど、症状はメモリリークに近いな。
- 946 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 01:53:48 ]
- Tomcatのコネクタか何かがログをそんな感じでほったらかしにしてたってのがあったな
- 947 名前:806 mailto:sage [2009/11/21(土) 14:30:28 ]
- イージーミスの話だけど
コレクションにぶち込みっぱなしで放置とか、そんなレベルの実装ね。 現実あったはなしだから、ソースレビューとかちゃんとやろうね
- 948 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:49:58 ]
- JTableがクリックされた時に、選択されている行の情報を取得するにはどうすればいいのでしょうか?
- 949 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:20:07 ]
- すみません、コンパイルできるんですが何も表示されません、助けてください
見にくいかと思いますが、お願いします //<applet code="SnakeProg2.class" width="300" height="300"></applet> import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SnakeProg2 extends JApplet implements KeyListener { int actiontype = 0, count = 0; int x[] = new int[99]; int y[] = new int[99]; public void init() this.addKeyListener(this); this.setFocusable(true); } public void paint(Graphics g) { super.paint(g); x[count] = 0; y[count] = 0; for (count = 1; count <= x.length; count++) { switch (actiontype) { case 0: count--; break; case 1: x[count] = x[count-1] + 10; g.drawPolyline(x, y, count); break; case 2: y[count] = y[count-1] + 10; g.drawPolyline(x, y, count); break; case 3: x[count] = x[count-1] - 10; g.drawPolyline(x, y, count); break; case 4: y[count] = y[count-1] - 10; g.drawPolyline(x, y, count); break; } } } public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if(keyCode == KeyEvent.VK_RIGHT) { if(x[count] == 300 || count == 100) { actiontype = 0; } else {actiontype = 1;} } else if(keyCode == KeyEvent.VK_DOWN) { if(y[count] == 300 || count == 100) { actiontype = 0; } else { actiontype = 2; } } else if(keyCode == KeyEvent.VK_LEFT) { if(x[count] == 0 || count == 100) { actiontype = 0; } else { actiontype = 3; } else if(keyCode == KeyEvent.VK_UP) { if(y[count] == 0 || count == 100) { actiontype = 0; } else { actiontype = 4; } } repaint(); } public void keyTyped(KeyEvent e) { public void keyReleased(KeyEvent e) { }}
- 950 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:33:59 ]
- >>948
public void mouseClicked(MouseEvent e) { int idx = tbl.rowAtPoint(e.getPoint()); } あとはお好きに。
- 951 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:49:53 ]
- >>948
JTableで文字列をクリックした場合だけセルを選択状態にする ttp://terai.xrea.jp/Swing/CellAtPoint.html MouseInputAdapter ma = new MouseInputAdapter() { public void mousePressed(MouseEvent e) { Point pt = e.getPoint(); int row = table.rowAtPoint(pt);
- 952 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:53:13 ]
- >>949
不味い点が多すぎて。 とりあえず初期状態でpaint()が動くと、countでのforループの中でcount--して無限ループ。
- 953 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:57:00 ]
- ん、踏んだか。次立ててくるね。スレ立てるのひさびさだな。
- 954 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:00:17 ]
- 次は
★★Java質問・相談スレッド134★★ pc12.2ch.net/test/read.cgi/tech/1258793926/
- 955 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:01:20 ]
- 乙
- 956 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:05:44 ]
- 乙
- 957 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:18:26 ]
- >>949
わからん
- 958 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:20:52 ]
- >>950-951
とんくす
- 959 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:27:50 ]
- 誰か2chにソース貼るとき整形するツール作れよ
|

|