[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/12 09:33 / Filesize : 268 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

 【初心者】Java質問・相談スレッド118【歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:21:51 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド116【歓迎】
pc11.2ch.net/test/read.cgi/tech/1213347130/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/


51 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 10:07:20 ]
おまえに聞いてない

52 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 10:34:47 ]
appletに関する質問なのですが

・JDK1.2以降のAPIが使えない(java.util.jarやjavax.*が使えない)
・applet格納jarとは別の.auファイルをまとめたjarなりzipなりがある
・アーカイブは後付で読み込む(起動後に読み込むものが決まる)

という状態で、外部アーカイブ内の.auファイルから音声オブジェクトを作成する方法ってありますでしょうか?
自分で考えた限りでは2通りのアプローチかなと思ったのですが他に何かいい方法があるかなと思いまして…

1)読み込んだアーカイブをclasspathに追加する
classpathに追加できればApplet#getAudioClip(URL)で読み込めるが、追加方法がわからない
(System.setProperty()でjava.class.pathをsetしても意味がないらしい)

2)sun.audio.AudioStreamを使う
ZipInputStream→ZipEntry→byte[]→ByteArrayInputStream→AudioStreamで
読み込み&再生には成功したが非公開APIなので互換性の心配がある

53 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 11:01:01 ]
>>47
44は「遅い」って書いてあるように俺には読めるんだが

54 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 11:42:20 ]
以下のパディングで、全角を半角2文字分として処理させる手段はあるでしょうか。

System.out.format("%3s_", "あ");
結果: あ_ ※スペースが前に2つ入ってしまう。これを1つにしたい。

55 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 12:11:29 BE:104062526-2BP(2)]
>>48-49
数値微分、数値積分だったらできる。
差分法、区分求積法、リーマン積分、台形公式、シンプソンの三分の一則、ロンバーグ積分でググれ。
というか数値計算や数値解析の本読め。
ただし連続関数の微分、積分は一筋縄ではいかない。
正規表現が必要になってくる。


56 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 12:32:17 ]
正規表現はいらないだろw
なにいってんだこいつは。

57 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:00:45 ]
>>55
そこに書いてないようだけど、数値微分はどうやるの?

58 名前:デフォルトの名無しさん [2008/08/12(火) 13:26:14 ]
JavaMailで質問です。
プログラム内でPDFを作成して添付ファイルとして送りたいのですが、
作成したPDFをファイルシステムに保存したくありません。

今はこんな感じでやってます。
//PDFファイルを一時ファイルとして書き出し
File tmpFile = File.createTempFile("foo", ".pdf");
//PDFをOutputStreamに書き出す独自クラス
report.renderPDF(new FileOutputStream(tmpFile));

MimeBodyPart attachedPart = new MimeBodyPart();
attachedPart.setFileName("filename.pdf");
attachedPart.setDataHandler(new DataHandler(new FileDataSource(tmpFile)));

File.createTempFile を使わずに添付ファイルを送るいい方法はありますか?

59 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:29:55 ]
Thread.sleepとwaitって何が違うんですか?



60 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:35:25 ]
waitはnotifyされたときに起きる

61 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:38:22 ]
>>58
FileOutputStreamの代わりにByteArrayOutputStream使って
FileDataSourceの代わりにDataSourceの自前の実装を使えばいいんじゃない

62 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:53:35 ]
main()の戻り値を返す方法はありませんか
Cならreturnで戻せるのですが・・・

63 名前:58 mailto:sage [2008/08/12(火) 13:55:46 ]
>>61
ありがとうございます。やっぱり自前で何かやらないとダメですか…

64 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:12:11 ]
>>62
System#exit(int)

65 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:15:48 ]
>>64
thx

66 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:36:14 ]
正規表現でパスワードをチェックしたいのですが、
半角数字、アルファベット大文字、小文字が混在していることを
条件にする方法がわかりません。


67 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:07:12 ]
>>66
無理に正規表現にするのはどうかと思うが・・・これでどう
(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])

68 名前:66 mailto:sage [2008/08/12(火) 15:39:38 ]
私も最初にその方法で確認したのですがだめでした

String str = "Hoge0123";
System.out.println(str.matches("(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])"));

falseになります。

69 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:56:47 ]
定数の扱い方について教えてください。
クラスの中にprivate finalをたくさん定義するのはよい方法なのでしょか。
C言語では、ヘッダーファイルに定数をまとめたりしますが、
javaではどうなのでしょうか。



70 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:00:23 ]
>>68
それだけだとゼロ文字にしかマッチしない
(?= ) は1文字も食わないから

71 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:02:20 ]
>>69
よい方法
少なくともコード中にマジックナンバを書くよりは

用途によってはenumを使え

72 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:19:23 ]
>>71
レスありがとうございます。
ただ、あまりにも定数が増えてくるといいますか、
どこまで定数として定義したらよいかの判断が難しいです。
たとえば、"ファイルの読み込みに失敗しました。"という文字列が
コード上で一回しか出てこないのなら、定数にする必要もないのかなと思います。


73 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:28:58 ]
>>72
文字列は国際化を考えてResourceBundleに入れるのが望ましい・・・けどまぁ面倒いよな
お好きにどうぞ

74 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:57:37 ]
>>55
入門編の地雷じゃないヤツを教えて。

75 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:40:37 ]
>>56
sin(x)をcos(x)に
log(x^2)を2x/x^2 = 2/x
と表示するにはなにかしら正規表現が必要

>>57
差分法と書いてあるだろう

>>74
地雷? 意味がわからない。
まずは数値計算の本を読め。
『Javaによるアルゴリズム事典』でも読め。

76 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 20:06:50 ]
>>75
正規表現って何か知ってる?

77 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 21:44:16 ]
せいきひょうげんだと……?

78 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:05:38 ]
もしかしてノーマライズのこといってる?

79 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:06:50 ]
ワロタww



80 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:07:22 ]
Regular representationだろ

81 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:54:25 ]
regular expressionだろ

82 名前:デフォルトの名無しさん [2008/08/13(水) 00:35:19 ]
>>75
どうせ独学でしょ。sin[x]をcos[x]にするとかいってて、全然分かってないようだしw

83 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 00:38:50 ]
>>78
いや? 約分という正規化もしたいけどそれとは別に。
正確には文字列処理というべきだったか。
正規表現というから唐突過ぎたみたいだ。

だが合成関数など複雑な数式になると微分するときに正規表現も必要になるんじゃないのかって言いたかった。

84 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 00:40:33 ]
>>82
何が? あと、それだと配列になるぞ。
数値微分だったら簡単にできるだろ。
それとは別の、連続関数の微分のことを言ってるんだが。


85 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 00:41:53 ]
正規表現という用語は文字列のマッチング用パターンを指すのでややこしいから別の用語を使ってくださいお願いします

86 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 00:47:29 ]
MatheticaだったかMATLABだったか忘れたけど

y = diff(sin(x))
と入力すると


y = cos(x)
と表示してくれる言語があった気がする

87 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 01:04:46 ]
結局、ただの夏いやつだったんだよ・・・

88 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 01:08:25 ]
>>83
SICPの Symbolic Differentiation みたいなのをやりたいということかな?

Schemeみたいに簡単にはいかないよ。自分で構文解析する必要がある。
構文解析してS式なり、構文木作ってしまえば、Schemeと大差は無いよ。

89 名前:デフォルトの名無しさん [2008/08/13(水) 01:16:50 ]
>>84
配列とか言ってるようだけど、独学だとしても最低限mathmaticaぐらいは使えるようになってくれ。
それとその数値微分だと、入力が10^-12なら出力は10^-6の半分程度の精度しかないんじゃないか?



90 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 01:19:57 ]
>>89
javaスレだぞ・・・

91 名前:デフォルトの名無しさん [2008/08/13(水) 01:23:00 ]
数値計算はjavaでやるのが一番面倒がないね。ライブラリもそろってるし。
javaは、予約語だらけとかの他の複雑な言語に比べて簡単だからアルゴに集中できるけどね。

92 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 01:44:06 ]
>>88-89
そういえばMATLABを思い出したよ
>>86
symbolic(x);
y = diff(sin(x),x)
と入力すると
y = cos(x)
になるやつだったかな。

SchemeとMathematicaは良く知らないがMATLABはよく触っていたから覚えている。
Javaで同じことができるライブラリをどこかで見つけたが有料だったので
諦めた記憶がある。どこのサイトだったかまでは覚えていない。

93 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 02:55:25 ]
>>91
アルゴリズムをアルゴと略す奴は、MZユーザではないだろうな。
気持ち悪い略し方だ。アルクワリズミが草葉の陰で泣いてるぞ。

94 名前:デフォルトの名無しさん [2008/08/13(水) 03:07:34 ]
流れをきって質問です・・・
Java自体が始めてまだ数ヶ月なのですが、ウィンドウアプリケーションを初めて作ってみました。
そこで、たとえば3秒ごとにウィンドウに今の時間を更新して表示するプログラムを作りたいのですが、いままでならスレッドで
for(;;){
min=calender.get(Calendar.MINUTE);
System.out.println(min);
Thread.sleep(3000);
}
と書いたスレッドを実行させておけばよかったのですが、ウィンドウ型になるとどうしていいかわからなくなってしまいました・・・
説明が下手で申し訳ないですが、
「3秒ごとに今の時間を取得してそれをウィンドウに表示させる」
というプログラムを作りたいです

95 名前:デフォルトの名無しさん [2008/08/13(水) 03:15:15 ]
正規表現とか使ってシンボリックに微分をやったり数値計算するよりも、その結果を数学の自然表記にする方が難しいんだけどね。
積分や分数を教科書どおりにウインドに表示するとか。

96 名前:デフォルトの名無しさん [2008/08/13(水) 03:25:44 ]
>>93
アルコイズミとか出してきて、おまえのほうがキモイ

97 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 09:33:54 ]
>>94
1.時刻表示ができる窓を作る。

2.時刻を更新するメソッドを書く。

3.2を定期的に呼ぶスレッドを書く。

4.3のスレッドの生成と実行を書く。


だいたいこんな感じ。

98 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:03:16 ]
>>96
アルゴリズムの語源になった人だぞ < アルクワリズミ

99 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:15:49 ]
すみません、>>52なのですが
アプローチがそもそも間違っているとかこういう質問はこのスレへ行くのがいいとか
そういった感じのことでもよいのでよろしくお願いします……

>>94
>>97さんの内容でいけると思いますが、表示をJTextBoxなどのswingコンポーネントでやる場合は
SwingUtilities.invokeLater()を使わないと表示処理が正しく行われないので注意してください。。
(swingコンポーネントの大半のメソッドは、イベントディスパッチスレッド以外から呼んではいけないという決まりがある)
homepage3.nifty.com/satoshis/java/swingtips/swing.html



100 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:44:55 ]
>>95
texとか知らないのか

101 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:50:35 ]
そのTeXという言語を作る仕事がものすごく難しい

102 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:58:59 ]
>>101
その難しいは、個人の能力が低い場合だろ・・・

103 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 10:59:28 ]
>>101
技術的に難しいという意味じゃねーじゃん

104 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:40:43 ]
>>101
そりゃ言語を作るのは、並大抵の難易度じゃないだろう。
けど、そういう話?

105 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:46:01 ]
5.0から追加されたイグゼキュタって、時間を戻すと止まりませんか?
指定した遅延後に実行されるだけだと思うのですが、
どうもIO周りでブロックされているような気がします。
これだとNTPで時間を戻された時とかに使えないような?

public class TestA implements Callable {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) { new TestA().start(); }
public void start() { future = pool.schedule(this, 1, TimeUnit.MILLISECONDS); }
private void run_() {
System.out.println(sdf.format(new Date()) + ": running"); // !!!これがないと止まらないで動く
ScheduledFuture<?> future2 = pool.schedule(new Runnable() { // 再スケジュール用のタスクセット
public void run() {
if (future.isDone()) {
try {
future.get();
future = pool.schedule(TestA.this, 1, TimeUnit.MILLISECONDS); // ユーザタスクの再スケジューリング
} catch (InterruptedException e) { e.printStackTrace();
} catch (ExecutionException e) { e.printStackTrace(); }
}
}
}, 0, TimeUnit.MILLISECONDS);
}
public Object call() throws Exception {
run_();
return future;
}
}

106 名前:デフォルトの名無しさん [2008/08/13(水) 12:59:59 ]
>>97
レスありがとうございます。
その、表示する窓についてですが、時間を更新する3秒ごとに描画し直さなくてはならず、
g.drawString(時間)
も3秒ごとに実行させる必要があると思っています。このdrawStringもスレッドに組み込むのでしょうか?

質問が悪く、初歩的で申し訳ないです

107 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:02:33 ]
>>104
そういう話だった
Yacc/flexで言語作っている奴のコードを見ていたら
くそやばかった記憶がある。あれは並大抵の努力じゃ実現できないものだと思った。

108 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:20:33 ]
>>106
描画はpaintもしくはpaintComponentでする
スレッドは3秒ごとにrepaintを呼ぶ

109 名前:デフォルトの名無しさん [2008/08/13(水) 13:42:27 ]
>>102-104

ひまなんでしょww



110 名前:デフォルトの名無しさん [2008/08/13(水) 13:51:43 ]
>>107
努力してるのかどうかよりも、何がくそやばかったのか分からないんだけど

111 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 15:35:45 ]
くそやばかったかどうかよりbison/flexでもyacc/lexでもない件
ていうかjavaスレなんだからどうせなら標準でjavaを吐くパーザジェネレータの話をしようぜ

112 名前:デフォルトの名無しさん [2008/08/13(水) 17:06:24 ]
質問です。
最近Javaをはじめたのですが
配列を今勉強していて、
ArrayListに突っ込み、それを拡張する方法はわかったのですが

例えば
int[] num_array = new int[5];
とかやった場合に
num_arrayの大きさ自体を変える事は出来ないのでしょうか?


113 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 17:07:49 ]
できない
新しく大きな配列を作って中身を移すしかない

114 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 19:14:22 ]
>>112
新規に大きな配列を作って中身をコピーする時に、
使っているのがJDK6以降ならjava.util.ArraysクラスにcopyOfというメソッドがあって、
num_array = java.util.Arrays.copyOf(num_array, 10); // サイズ10の配列を新たに作って中身をコピーしたものを返す
みたいにできるのでちょっと便利。
元のnum_array自体を拡張するのではなく、サイズが変更されたコピーを返すところに注意。
配列は固定長であることに変わりはないので。
JDK5以前なら配列の作成とコピーのコードを自分で書かないといけない。

115 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 19:41:06 ]
>150
使い方が色々間違っているような気がする
あとstdはどこに変数宣言あるんだ?
future.get(); も激しくデットロックの香り

116 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:14:07 ]
>>115
縮めてみた。
import java.util.*;
import java.util.concurrent.*;
import java.text.SimpleDateFormat;

public class TestA implements Callable<Object> {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) {new TestA().start();}
public void start() {future = pool.schedule(this, 1, TimeUnit.MILLISECONDS);}
public Object call() throws Exception {
System.out.println(sdf.format(new Date()) + ": running");
ScheduledFuture<?> future2 = pool.schedule(this, 1, TimeUnit.MILLISECONDS);
return future;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" , Locale.JAPAN);
}

遅延を0にすればとまらないのだから、デッドロックと言うことは無いだろう。
時刻に達したら制止が外れるようなので、
1,2秒さかのぼった程度なら、問題にならないだろうけど、
夏時間とかはどうなるだろ。

また、時計を巻き戻して、処理が止まってから、時計を戻してみた。
すると、1分間ほど経ってから処理が再開した。

117 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:45:02 ]
ThreadGroupのactiveCount()でグループに属するスレッドの数が取得できないのですが
これは仕様ですか?

// スレッドグループツリーの作成
ThreadGroup g1 = new ThreadGroup("g1");
Thread t1 = new Thread(g1, "t1");
Thread t2 = new Thread(g1, "t2");
ThreadGroup g2 = new ThreadGroup(g1, "g2");
ThreadGroup g3 = new ThreadGroup(g1, "g3");
Thread t3 = new Thread(g2, "t3");
ThreadGroup g4 = new ThreadGroup(g2, "g4");
Thread t4 = new Thread(g4, "t4");

// g1スレッドグループに含まれるスレッドの数
System.out.println("g1.activeCount() = " + g1.activeCount());

上記のプログラムを実行すると
g1.activeCount() = 0
と表示されます。

参考書を見ると
g1.activeCount() = 4
と表示されるとなっています

ご教授お願いします

118 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:47:41 ]
startしていないthreadはカウントされない

119 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:48:33 ]
>>118
ありがとうございます

もう一度試してみます



120 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 00:07:48 ]
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■

「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」

「仕事無いんだ・・・・・・」

「やろうぜ!」

「みんなでサイトつくろうぜwwwww」

gacco.o0o0.jp/
ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
今日トップ絵作ったんだぜ!
興味沸いたらきてください!

121 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 00:09:23 ]
みんなでサイトつくろうぜwwwwwwwwww

みんなで本気でつくる気です。 がんばりましょう。
サイトのイメージはSNS×学校みたいな感じ。
サイトデザイン(案)
ttp://www36.atwiki.jp/vipvipschool?cmd=upload&act=open&pageid=12&file=title.jpg
ttp://www36.atwiki.jp/vipvipschool?cmd=upload&act=open&pageid=12&file=viploader744102.jpg
ttp://www.vipper.org/vip900611.png

技術を持ってる人はパー速へ!
ttp://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/

wiki:

vipでサイトつくろーぜ
ttp://www26.atwiki.jp/netschool/


詳細はwiki参照


122 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 00:15:41 ]
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■

「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」

「仕事無いんだ・・・・・・」

「やろうぜ!」

「みんなでサイトつくろうぜwwwww」

gacco.o0o0.jp/
ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
今日トップ絵作ったんだぜ!
興味沸いたらきてください!

123 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 00:16:29 ]
>>120
あれ。。俺がいる。
ホントすまなかった。

124 名前:デフォルトの名無しさん [2008/08/14(木) 01:54:38 ]
相変わらずキモイな
C#と同じくどんどん糞スレになってくれ

125 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:01:18 ]
掲示板を作ってるのですが、書き込んだ日時としてデータベースに
Calendar#getTimeInMillis()で取れる値を入れて、
そのlong値を取得して何月何日何時何分何秒に書き込んだか表示したいのですが、
Calendar cal=Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
cal.setTimeInMillis(//データベースから取得したlong値);
System.out.println(cal.get(Calendar.YEAR));
で比較すると後者のprintlnで表示される値が何を入れても常に1970になります。
setTimeInMillisをAPIドキュメントで見ると
>Calendar の現在時刻を、指定された long 値から設定します。
と書いてあるのでこれで良いかと思ったのですが、これはどこを間違っているのでしょうか??

126 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:24:21 ]
>>125
データベースから取得したlong値は正しい値で取得されている?
秒単位でなくてミリ秒単位だからだいたい 31500000000 より小さい値なら1970年になる。

127 名前:デフォルトの名無しさん [2008/08/14(木) 03:39:42 ]
アクセス修飾子について質問です。

protected:
 同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。

なし(デフォルト):
 そのインスタンス、または同一パッケージに所属するクラスのインスタンスからアクセス可能。

となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
インスタンスからは、アクセスすることができないのですか?

128 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:42:45 ]
うん

129 名前:デフォルトの名無しさん [2008/08/14(木) 03:48:49 ]
では、アクセス就職子の序列が

public > なし(デフォルト) > protected > private

となっている参考書は間違いなのですか?

「protected」の場合にアクセスできるものに
「なし(デフォルト)」の場合にアクセスできないので。



130 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:49:10 ]
>>127
protectedは同一パッケージ内のクラスからもアクセス可能。

131 名前:デフォルトの名無しさん [2008/08/14(木) 03:50:59 ]
protectedの説明が
> 同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
になっているのなら、その参考書の説明は間違い。

132 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:53:18 ]
あー逆だ
public > protected >> なし(デフォルト) private
が正しい。
protectedの方が公開の範囲が広い。

133 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:58:09 ]
public > protected >> なし(デフォルト) private
は、
public > protected > なし(デフォルト)> private
ね。だから、
> となっている参考書は間違いなのですか?
は間違いで正しい。
まとめると、
> となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
> インスタンスからは、アクセスすることができないのですか?
は正しい。
> public > なし(デフォルト) > protected > private
> となっている参考書は間違いなのですか?
も正しい。つまり間違ってる。

134 名前:デフォルトの名無しさん [2008/08/14(木) 04:13:16 ]
>>130-133
了解です!
ありがとうございます!

135 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 04:22:01 ]
そんな糞参考書は窓から投げておk

136 名前:デフォルトの名無しさん [2008/08/14(木) 05:11:35 ]
糞はおまえw

137 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 06:24:30 ]
会話が成り立っていない

138 名前:105 mailto:sage [2008/08/14(木) 10:10:40 ]
>>115
書き込みが入りきるよう縮めていたら消していました。
使い方おかしいですか?
やりたいのはその都度実行する遅延を計算しなおしたいのです。
ここでは止まるのを確認するのに1msで常にやってます。

>>116
printlnでIOがブロック?と書きましたが違ったようです。
↓のように、止まるのは遅延を待機しているのではないかと。
ただその遅延が指定したものでなく、
おっしゃるように戻した時間が経過して戻す以前の時間+遅延になると動くようです。
もしかしたら遅延を指定しているにも関わらず、
内部で時刻を取得し直して計算しているのかとも思うのですが。

スレッド [pool-1-thread-1] (中断中)
Unsafe.park(boolean, long) 行: 使用不可 [ネイティブ・メソッド]
LockSupport.parkNanos(long) 行: 使用不可
AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) 行: 使用不可
DelayQueue<E>.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor(ThreadPoolExecutor).getTask() 行: 使用不可
ThreadPoolExecutor$Worker.run() 行: 使用不可
Thread.run() 行: 使用不可


139 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:52:28 ]
どなたか>>52(>>99)をお願いします…
何か質問の仕方マズかったでしょうか



140 名前:デフォルトの名無しさん [2008/08/14(木) 12:35:08 ]
やっぱ"Ruby"ですよ!

141 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:04:24 ]
>>139
1.2以前でっていう限定がきつい。
古すぎてだれも答えられないと思う。

142 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:10:54 ]
>>141
初心者の宿題出なければ、appletを作っているやつ自体いないのでは

143 名前:デフォルトの名無しさん [2008/08/14(木) 13:43:41 ]
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
gacco.o0o0.jp/
yutori.2ch.net/test/read.cgi/news4vip/1218673130/
ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
 *サーバー側
  言語はRubyかPerlの予定ですが、Perlが有力候補。
  ・チャット
   定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
   通信するときのフォーマットは未定。
  ・ログイン・アカウント管理
   ログイン認証、各アカウントの点数などの管理。データベースは未定。
  ・お絵描き
   未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
 *クライアント側
  はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
 「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
 挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
 サイトのデザインを考えてくれる人、作ってくれる人募集中。
 できればphotoshop illustrator使える人(プロジェクト共有しやすいので)


144 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 14:09:09 ]
>>139
1) java.util.zip 使って外部アーカイブを読める自前の URLStreamHandler 作って、
URL.setURLStreamHandlerFactory してみるとか……
セキュリティマネージャに怒られてダメかもしれんが。

2) 1.1レベルでは互換性の高そうな標準API使う方法だと
1)のアプローチぐらいしかないので、それがダメなら
外部jar使うの諦めるか、互換性諦めるか、音出す事を諦めるか選ぶしかないと思うぞ。

145 名前:デフォルトの名無しさん [2008/08/14(木) 14:20:42 ]
たぶんwebで公開のappletじゃないと思うけど、Class.getResouceAsInputStream()とかかな。
javaのデスクトップは、アプレットに適したライブラリが全くなかった他の技術に先を越されたけど、それを補うように進化してきたから、1.2以前だといろいろ出来るわけじゃないよ。


146 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 15:47:14 ]
回答ありがとうございます!

>>141,142,145
うーんやっぱ今時Appletでしかも1.1縛りなあたりがネックですよねぇ。
自分としては1.2以降のAPI使いたいんですが、MRJに対応しなくてはならない事情があるものでして。
無理そうなら環境によって動作切り替える方向で進めてみようと思います。

>>144
なるほど、URLStreamHandlerは今まで全く見てませんでした。
URL指定をメモリ内のByteArrayInputStreamにリダイレクトできればあるいは、のような感じですね。
光明が見えたような気がしてきました。この方向で色々トライしてみます。

147 名前:デフォルトの名無しさん [2008/08/14(木) 16:47:01 ]
ライブラリは進化してきたといってるのに、自作しちゃう人がまた一人・・

148 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:54:55 ]
実行中にアプリから、あるインスタンスがどこから参照されているかを確認する術はあるでしょうか?

149 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:08:10 ]
プロファイラで辿れない?



150 名前:デフォルトの名無しさん [2008/08/14(木) 17:28:42 ]
このままライブラリ、というか、部品化が進んでいったら、
やがてプログラマが必要なくなるのではなかろうか?
部品をちょちょいと選択すればプログラムができてしまわないだろうか?
そのとき、元プログラマの人は、どうやって食っていくのだろうか?

151 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:35:50 ]
>>149
稼動サーバーでのみリークが発生するようで、アプリ内で何とかしろといわれているので、
JDTとか見たんですけどまったく理解できずに断念です。
やはりツールを使用しないと無理ですかね・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<268KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef