【初心者】Java質問・相談スレッド100【大歓迎】 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
07/03/31 13:57:18
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
URLリンク(www.wikiroom.com)

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

前スレッド
【初心者】Java質問・相談スレッド99【大歓迎】
スレリンク(tech板)

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。URLリンク(pc10.2ch.net)

次スレは>>980あたりで。

2:デフォルトの名無しさん
07/03/31 14:49:16
>前995
個人で良いなら以前にprototype.jsのObject.prototype汚染とクラスベースなアプローチが嫌いなので
自前のクロスブラウザライブラリ+netscapeデバッガで開発した。


3:デフォルトの名無しさん
07/03/31 15:49:56
100乙記念

4:デフォルトの名無しさん
07/03/31 19:52:45
javaの入門書を読み終わったんですが、今度は何を読んだ方がいいでしょうか?


5:デフォルトの名無しさん
07/03/31 19:59:24
>>4
どっかのオープンソースプロジェクトのソースコード

6:デフォルトの名無しさん
07/03/31 21:05:13
>>5
分かりました。
探してみます。

7:デフォルトの名無しさん
07/04/01 05:13:45
その前にjdkについてるソース読んだ方が良いよ。

8:デフォルトの名無しさん
07/04/01 05:53:43
>>4
- Effective Java
 Javaやるなら、まあまず読め

- Java並行処理プログラミング
 スレッドが言語仕様に組み込まれてるJavaなのだから、
 ダグリーが共著のこれをとりあえず読んどけ

- アジャイルソフトウェア開発の奥義
 ロバート・C・マーチンの書いたもの。
 ここに書いてある「原則」を知らずに、
 オブジェクト指向の何たるかを語ることなかれ

- 達人プログラマー - システム開発の職人から名匠への道
 猫がソースコードを食べちゃった!
 とりあえず、ソフトウェア一般的な心構えの話

- 達人プログラマー - ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化
 上記の続編あるいは実践編っぽい
 ソフトウェア開発の回りの環境についての本
 コーディング技術だけではだめなのです
 
- Subversion実践入門
 上記のCVSの説明をSubversionに置き換えたもの


9:デフォルトの名無しさん
07/04/01 09:49:15
基本的に最適な順は
@言語仕様(これがないと始まらない)
A言語に付属するAPI・フレームワーク(仕事で必ず使う)
B言語に関連するシステム(Tomcat・Apache・Database)
C言語の開発環境(eclips・JBuilder等)
これだけ覚えないと仕事で使い物にならないからな。

10:951
07/04/01 11:12:59
掲示板のサンプル作ってみたんですがvewerの見た目が宜しくありません。
何かアドバイスください。
<h1>掲示板</h1>
<form action="../servlet/myplay.BbsController" method="post">
<table border="false">
<tr>
<td>名前</td>
<td><input type="text" name = "name" maxlength="10" size="40"></td>
</tr>
<tr>
<td>題名</td>
<td><input type="text" name="title" maxlength="50" size=40"></td>
</tr>
<tr>
<td>本文</td>
<td><textarea name="text" cls="40" rows="5"></textarea></td>
<input type="submit"value="送信">
</tr>
</table>
</form>
<br>
<%
ResultSet rs = (ResultSet)request.getAttribute("crs");
while(rs.next())
{
%>
<table border="true">
<tr>
<td><%=rs.getInt("id")%></td><td><%=rs.getString("name")%></td></tr>
<tr><td><%=rs.getString("title")%></tr></td>
<tr><td><%= rs.getString("context")%></td></TR>

11:デフォルトの名無しさん
07/04/01 11:23:27
PentiumIII 1GHzくらいで軽い動作の開発環境は何ですか?
GUIを作成出来るものが良いです。

12:デフォルトの名無しさん
07/04/01 11:43:59
P3-1GHzだとコンパイルしまくりの開発スタイルは厳しいな。


GPLは注意しないと困る事に成るよ。

13:デフォルトの名無しさん
07/04/01 11:50:48
うちでは、あるプログラマが、GPLなJavaScriptをコピペして使って
「どう?いいでしょ?」とかやったことがあった。
GPLについて説明してから、そのコードは破棄した。ちょっと不満そうではあったが。

14:10
07/04/01 12:53:44
javascript板の方で質問しました。失礼しました

15:デフォルトの名無しさん
07/04/01 13:15:05
>>前999
時間でカウントアップじゃなくて、
Statefulで頭の時間を持っていて
アクセスある度にカウントを計算して返せばいいんじゃないか?

16:デフォルトの名無しさん
07/04/01 16:28:23
家でjavaとかC言語とかでプログラミングしてお金ってもらえないの?
在宅勤務みたいな形で働ける会社ってあるの?

17:デフォルトの名無しさん
07/04/01 16:35:21
可能だが、相当の腕が必要。分からなくて聞く同僚も居ないしね。


18:デフォルトの名無しさん
07/04/01 16:37:28
在宅勤務みたいな形で働ける会社ってあるの?>ググると結構あるよ。

19:デフォルトの名無しさん
07/04/01 16:58:53
>18 なんのキーワードでぐぐるの?

20:デフォルトの名無しさん
07/04/01 17:01:50
自分で考えぃ!そんなんじゃ在宅プログラマとか無理だぞ。教えてくれる人間は
居ないんだからそれを考慮して物言えよ。

21:デフォルトの名無しさん
07/04/01 17:09:13
>>19
自分でそれを調べられない人間には無理、という仕組みになっている

ようは、素人には道はありませんということです

22:デフォルトの名無しさん
07/04/01 17:16:46
まぁ、俺も4ヶ月前はこうだった。気を落とさずに精進しな。

23:デフォルトの名無しさん
07/04/01 17:39:26
SOHO

24:前999
07/04/01 17:55:10
>>15さん
ありがとうございます。
実際にはタイマーで定期的に他サーバーのデータを参照して内容を
変えたいといったところなんです。
JavaEEでは、java.util.Timerではなく、quartzあたりを使うのが
常套のようですが、、こちらも、なかなか難しくて。
やりたいことは、結構単純なことだと思うんですが、意外と敷居が
高いです。。

25:デフォルトの名無しさん
07/04/01 17:59:43
>>24
俺はspring+quartzが多いかな?
URLリンク(www.springframework.org)


26:デフォルトの名無しさん
07/04/01 18:13:46
>>24
あまり大げさでなければ、別プロセスに分ければいいんじゃないか?
実装も、Javaにしなくてcronでよかったりとか。
それとも、earに含めないと駄目とかそんな事情が?

27:デフォルトの名無しさん
07/04/01 18:48:40
サーブレットまたはJSPを使用して、入力されたデータを
Excel形式で出力することは可能ですか??

28:デフォルトの名無しさん
07/04/01 18:53:13
>>27
つ jexelapi or poi
可能です。後は頑張りなさい。

29:デフォルトの名無しさん
07/04/01 18:55:07
>>27
URLリンク(jakarta.apache.org)


30:hsrtfghdf
07/04/01 21:41:39
誰か教えて
URLリンク(www.javaroad.jp)

31:27
07/04/01 23:24:14
ありがとう御座います。
Javaアプリやアプレットは作成経験がある程度あるのですが、サーブレット
/JSPは初心者同然です。そこでお勧めの書籍などあればご紹介くださいませ。

32:デフォルトの名無しさん
07/04/01 23:30:59
Strutsやってれば自然とおぼえる。

33:デフォルトの名無しさん
07/04/02 00:00:42
>>31
javaでアプリが作れるなら本はいらんと思う
実際に、何個か書けばわかる
tomcatやフレームワークのサンプルを見るだけで十分だろう

また、j2eeならBluePrintというsunの教科書がある
URLリンク(sdc.sun.co.jp)

それより、どのフレームワークでいくのかを決めるのが大変だろう
jspかjsfかに加えて
springかstrutsかseaserか
jsfならshaleとseamもあるし、faceletsもある
あるいは使わないってのもあるし、組合せもある

で、こいつらのドキュメントは英語が多いし、
seamなんかの日本語を読んでも意味わからんかもしれん(翻訳の問題ではなく)

開発の内容や規模も関係あるだろうし、ajaxなんかも考えなきゃいかんかもしれん

そう考えると本より
1)英語力
2)実際に環境を構築する実行力とスキル
3)調べることの出来るスキル
が必要だろう

j2eeという前提で書いているが、そこまでは・・って感じならスルーしてくれ


34:デフォルトの名無しさん
07/04/02 00:49:50
swingについて質問です。

JFrame上にJButton、JLabelが一つづつあったとします。
そして、JButtonを押下したときのイベントに以下のソースを
コーディングしました。
*button,labelはそれぞれJButton,JLabelのインスタンス

public void actionPerformed(ActionEvent ae){
if (ae.getSource().equals(button)) {
for( int i = 0; i <= 10; i++ ){
label.setText( i + "個目の結果を表示");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {}
}

}
}

35:34
07/04/02 00:53:31
34の続き

自分が期待している動作は
5秒ごとにラベルに表示される文字が
1個目の結果を表示
2個目の結果を表示
3個目の結果を表示
・・・
と変化していくものでした。

だけど、結果は50秒後に「10個目の結果を表示」
と表示されるだけです。

僕が期待するような動作にするためにはどのような方法がありますか?

一応、サンプルソースをここにあげときました。
URLリンク(www.uploda.org)

お願いします

36:デフォルトの名無しさん
07/04/02 01:53:57
javax.swing.Timer
UI スレッドはさっさとお家に帰してあげましょう

37:デフォルトの名無しさん
07/04/02 02:06:12
あと、API に書いてあるように、UIスレッドでコンポーネントを作った方がいいと思うぞ
URLリンク(java.sun.com)

38:デフォルトの名無しさん
07/04/02 02:39:49
ごめんなす(:D)| ̄|_
今LOST見てるのですが、
入出力処理の際catch文でprintStackTraceを書くけどprintStackTraceって何?
リファ見てもよく分かんない…

39:デフォルトの名無しさん
07/04/02 02:43:18
>>38
.printStackTraceの左にはなにか変数があるはずだが?


40:デフォルトの名無しさん
07/04/02 02:44:39
載ってる場所が分からないんじゃなくて何をするものか分からないのか。

そこに至るまでに、どのソースのどの行のどのメソッドが呼ばれたかの
経歴を出力している。



41:デフォルトの名無しさん
07/04/02 04:04:49
認定ガイドに書いてあった(:D)| ̄|_

printStackTrace()メクソは『例外が起こった時点でのスタックトレースが出力される』のかぁーズ。
コールスタック(現在のメソッドに到達するまでにそのプログラムで実行されてきた一連のハナクソ)をスタックの巻き戻し(下りながら、めっとも新しく呼び出されたミクソを先頭に、上から下に向かって各メソッドの名前)を出力。

SJC-Pの範囲やん。
デバッグに役立つんですね!
プログラムが完成してもprintStackTraceは残したままにしたほうがいいのかな?

42:前999
07/04/02 04:42:05
ありがとうございます。24です
>>25さん
Springは更に規模が大きそうで。。部分だけつかうのにも理解が届いてない
状況でした。。

>>26さん
Javaで利用するデータなので、できればJavaで完結したいというのが
あったんですが、おっしゃるとおりですね。別プロセスも考えてみますです。

43:デフォルトの名無しさん
07/04/02 04:49:01
日経ソフトウェアDに、

FileReaderクラスを使ってファイル内の文字列を1文字ずつ読み込むプログラムと、

BuffedReaderでバッファリングしながら1行ずつ読み込むプログラムがあります。

前者は
while文が-1で停止、
後者は
while文でnullで停止、
です。

-1とヌルの使い分けがよくわかりません

44:デフォルトの名無しさん
07/04/02 05:14:53
>>43
たぶん、前者はFileReader#read()(InputStreamReader#read())で読み込んで、
後者はBufferedReader#readLine()で読み込んでるんだろうけど、
それぞれのメソッドがストリーム終端で何を返すかは、
それを使う者が使い分けるというよりも、メソッドごとに決まってるからとしか言いようがない。

read()の方は一文字ずつ読み込んで、その文字を返すメソッドなので、
通常の文字ではありえない-1をストリーム終端で返すようにしているんだろうし、
readLine()の方は1行分をStringで返すメソッドだから-1を返すわけにいかないし、
未定義のインスタンスを表すnullを返すようになっているんだと思うが。

45:デフォルトの名無しさん
07/04/02 05:56:29
だよな(:D)| ̄|_
そうなんじゃないかと思った。

46:デフォルトの名無しさん
07/04/02 08:28:54
>>41
例外はできるだけキャッチして処理すべき。
処理できない例外をログファイルに書き込んでおくのが
一般的だと思われるが。

47:デフォルトの名無しさん
07/04/02 10:31:14
自分で対処できない例外までcatchして投げない奴って氏んだ方がいいよね







↓いつものループ

48:デフォルトの名無しさん
07/04/02 18:19:15
(:D)| ̄|_日経ソフトDで、あるプログラムに

Set<String> set=new HashSet<String>();

と書いてあるのですが、エクリプスでは、式がステートメントとして無効です。と出ます。なぢぇ?そもそも<>って何?

49:デフォルトの名無しさん
07/04/02 18:24:07
(:D)| ̄|_

50:デフォルトの名無しさん
07/04/02 18:27:53
(:D)| ̄|_

51:デフォルトの名無しさん
07/04/02 18:28:24
(:D)| ̄|_


52:デフォルトの名無しさん
07/04/02 18:37:00
(:D)| ̄|_

53:デフォルトの名無しさん
07/04/02 18:43:47
(:D)| ̄|_

54:デフォルトの名無しさん
07/04/02 18:51:31
(:D)| ̄|_


55:デフォルトの名無しさん
07/04/02 18:53:18
(:D)| ̄|_

56:デフォルトの名無しさん
07/04/02 18:55:50
えくりぷすで1.6使えますか?いま1.5で使ってます。

57:デフォルトの名無しさん
07/04/02 18:57:40
(:D)| ̄|_

58:デフォルトの名無しさん
07/04/02 19:01:33
(:D)| ̄|_

59:デフォルトの名無しさん
07/04/02 19:03:59
J2SDK1.4.2とEclipse2.1.2だが?(:D)| ̄|_

60:デフォルトの名無しさん
07/04/02 19:06:08
(:D)| ̄|_

61:デフォルトの名無しさん
07/04/02 19:08:02
(:D)| ̄|_

62:デフォルトの名無しさん
07/04/02 19:10:07
(:D)| ̄|_

63:デフォルトの名無しさん
07/04/02 19:12:26
(:D)| ̄|_

64:デフォルトの名無しさん
07/04/02 19:12:43
(:D)| ̄|_

65:デフォルトの名無しさん
07/04/02 19:13:30
(:D)| ̄|_

66:デフォルトの名無しさん
07/04/02 19:17:41
(:D)| ̄|_

67:デフォルトの名無しさん
07/04/02 19:18:55
(:D)| ̄|_

68:デフォルトの名無しさん
07/04/02 19:19:48
(:D)| ̄|_

69:デフォルトの名無しさん
07/04/02 19:22:35
(:D)| ̄|_

70:デフォルトの名無しさん
07/04/02 19:24:39
(:B)| ̄|_

71:デフォルトの名無しさん
07/04/02 19:24:57
(:D)| ̄|_

72:デフォルトの名無しさん
07/04/02 19:26:26
(:D)| ̄|_

73:デフォルトの名無しさん
07/04/02 19:26:44
NGワードにされるまでやるつもりだな(:D)| ̄|_

74:デフォルトの名無しさん
07/04/02 19:28:22
(:D)| ̄|_

75:デフォルトの名無しさん
07/04/02 19:29:26
(:D)| ̄|_

76:デフォルトの名無しさん
07/04/02 19:30:26
(:D)| ̄|_

77:デフォルトの名無しさん
07/04/02 19:31:18
(:D)| ̄|_

78:デフォルトの名無しさん
07/04/02 19:31:55
(:D)| ̄|_

79:デフォルトの名無しさん
07/04/02 19:32:40
(:D)| ̄|_

80:デフォルトの名無しさん
07/04/02 19:36:49
(:D)| ̄|_

81:デフォルトの名無しさん
07/04/02 20:41:17
この中に一人、バカボンのパパがおる

>>70やろ

82:デフォルトの名無しさん
07/04/02 20:44:07
(:D)| ̄|_

83:デフォルトの名無しさん
07/04/02 20:53:13
(:D)| ̄|_

URLリンク(pya.cc)

84:デフォルトの名無しさん
07/04/02 20:57:01
どうしちゃったのこのすれ

85:デフォルトの名無しさん
07/04/02 21:05:30
(:D)| ̄|_

86:デフォルトの名無しさん
07/04/02 21:12:29
(:D)| ̄|_

87:デフォルトの名無しさん
07/04/02 21:15:24
(:D)| ̄|_

88:デフォルトの名無しさん
07/04/02 21:20:28
(:D)| ̄|_

89:デフォルトの名無しさん
07/04/02 21:30:47
(:D)| ̄|_

90:デフォルトの名無しさん
07/04/02 21:35:45
全力で(:D)| ̄|_

91:デフォルトの名無しさん
07/04/02 21:36:58
(:D)| ̄|_

92:デフォルトの名無しさん
07/04/02 21:38:35
(:D)| ̄|_

93:デフォルトの名無しさん
07/04/02 21:54:17
あのさあ
FOMAのアプリ作りたいんだけど、参考になる本ってどんなのある?

ちなみに当方のプログラム経験履歴は
MSC6.0
MASM
PLM
F-BASIC HG
VB6
VB2005
とこんな感じ。

スレ違いだったら誘導よろ

94:デフォルトの名無しさん
07/04/02 22:56:20
(:D)| ̄|_

95:デフォルトの名無しさん
07/04/02 23:24:44
(:D)| ̄|_

96:デフォルトの名無しさん
07/04/02 23:26:41
(:D)| ̄|_

97:デフォルトの名無しさん
07/04/02 23:46:52
(:D)| ̄|_

98:デフォルトの名無しさん
07/04/02 23:49:38
(:D)| ̄|_

99:デフォルトの名無しさん
07/04/02 23:55:50
>>93
本でも情報が古かったりするから俺が見た中では人に勧めれるものはなかったな。

公式のAPIリファレンスとチュートリアルとそこら辺にある講座サイトで問題ない気がする。

俺はMIDP使いだがJava ME全般に言えるのは端末の制限とか縛りがきつ過ぎてSEのノウハウが使い物にならないなぁ。

Java知らないならまずはSEでJava流儀のOOPを覚えた上でMEのお勉強コード書いた後にMEの実践的コードを書くの流れがお薦めだが・・・。

MEがコンフィギュレーションとプロファイルとオプションAPIに分かれてるってのを知っておかないと変な勘違いするかも・・・。

DojaやMIDPはプロファイルの一種ね。
DojaとMIDPじゃエントリポイントとかの規約が違ったり、
メソッド名が同じでも仕様が違うとかあるんで
片方のやり方が片方で通じなかったりするから
仕事で移植せにゃならんとき以外はどっちかに特化する事になるのかな?

自分である程度分かるようになってから本を探すのが安全な気がする。

因みにdojaなら本スレはこっち。
スレリンク(tech板)l50

エミュレータが全く使いモンにならんほど機種依存が酷いよ・・・。

(:D)| ̄|_

100:デフォルトの名無しさん
07/04/02 23:55:55
(:D)| ̄|_

101:デフォルトの名無しさん
07/04/02 23:57:11
(:D)| ̄|_

102:デフォルトの名無しさん
07/04/03 00:03:12
(:D)| ̄|_

103:デフォルトの名無しさん
07/04/03 00:08:27
荒らしてるわりにはsageてるんだな

104:34
07/04/03 00:10:30
>>36-37
亀レスですけど、レス有難うございました。
TimerとかUIスレッドとかまだ良く解りませんが
ちょっと勉強してがんばって見ます。

105:デフォルトの名無しさん
07/04/03 00:15:54
どういたしまして (:D)| ̄|_

106:デフォルトの名無しさん
07/04/03 00:18:51
(:D)| ̄|_

107:デフォルトの名無しさん
07/04/03 00:22:12
ところで (:D)| ̄|_ ←ってどういう処理をあらわしてるの?

108:デフォルトの名無しさん
07/04/03 00:27:27
(:D)| ̄|_

109:デフォルトの名無しさん
07/04/03 00:55:15
(:D)| ̄|_

110:デフォルトの名無しさん
07/04/03 01:01:05
同じスレッド同士の処理は必ず同じ順番で実行されるけど
違うスレッドの場合、その順番は保障されない。(これは高速化に貢献している)
結果的に複数のスレッドから変更を受けるフィールドの状態がおかしくなったり、
適切に同期処理をしなくてはならなくてはいけなくなるんだが、GUIでこれをやるのは思いのほか大変。

だからUIスレッドを経由して実行することで、全てのGUIオブジェクトが一つのスレッドから変更を受ける状態になり
スレッドセーフ性を確保するわけ。(逆にこの規約が守られていない場合の動作は保障されていない)
ただしrepaintとかの場合はこれはいらない。これはrepaint自体が「UIスレッドを経由して実行」をやってくれるから。

111:デフォルトの名無しさん
07/04/03 01:11:56
(:D)| ̄|_

112:デフォルトの名無しさん
07/04/03 01:15:46
(:D)| ̄|_

113:デフォルトの名無しさん
07/04/03 01:40:16
>>48
この流れでは無理だろうが、Generics
j2se5以降で使える
環境をたしかめてみ?

いちおう、下は「ジェネリックス」で最初に出ただけで中はしらん
URLリンク(www.stackasterisk.jp)


114:デフォルトの名無しさん
07/04/03 02:50:03
>>113
荒しに親切にしてやっても良いことは何もないぞ

115:デフォルトの名無しさん
07/04/03 05:03:17
(:D)| ̄|_

116:デフォルトの名無しさん
07/04/03 05:09:31
(:D)| ̄|_

117:デフォルトの名無しさん
07/04/03 05:46:10
(:D)| ̄|_

118:デフォルトの名無しさん
07/04/03 06:16:09
(:D)| ̄|_

119:デフォルトの名無しさん
07/04/03 06:56:16
(:D)| ̄|_

120:デフォルトの名無しさん
07/04/03 07:24:27
(:D)| ̄|_

121:デフォルトの名無しさん
07/04/03 07:43:44
(:D)| ̄|_

122:デフォルトの名無しさん
07/04/03 08:50:37
(:D)| ̄|_

123:デフォルトの名無しさん
07/04/03 10:02:34
よろしくお願いします。
ConcurrentSkipListMapのsubmap()で返されるmapもやっぱり、
順序が整列されているConcurrentSkipListMapと考えたいんですが,,
URLリンク(java.sun.com.)
返り値には明示されていないので、それを期待するのはまずいでしょうか。

124:デフォルトの名無しさん
07/04/03 11:05:05
ClassLoaderで遊んでるんですが、ClassLoaderでロードしたクラスって更新で
きないですか? 具体的には、

hoge.class を defineClass でロードした後、
javac hoge.java で hoge.class を更新して
もういっかい defineClass で新しいクラスを導入したいと思っています。

findLoadedClass じゃ古い方取ってきちゃうし。それともjavaじゃ
動的なクラス定義の更新とかできないのかな‥‥‥。


125:デフォルトの名無しさん
07/04/03 11:37:18
>>123
subMap では、防衛的コピーとかじゃなくてビューが返されるはずだから
順序付けされてると考えて良いとは思うが。

明示されてるわけじゃないから石橋叩いて渡りたいなら期待しない方が良い。

126:デフォルトの名無しさん
07/04/03 11:40:29
>>124
その辺の事がやりたければ、1.5以降で追加された java.lang.instrument かな。

127:デフォルトの名無しさん
07/04/03 11:45:41
>>123
ConcurrentSkipListMap の submap() で返される ConcurrentNavigableMap の実装クラスは
SortedMap の実装クラスでもあるから順序付けされてる事は期待して良いのでは?

128:デフォルトの名無しさん
07/04/03 11:50:24
sjc-pの教科書のネストクラスの特徴を記述した中に、
・外部クラス内のstaticメソッドと同様、staticネストクラスの内側から外部クラスの非static変数またはメソッドに直接アクセスできる。

こうあるんですが、staticメソッドと同様ならstaticなメンバにしかアクセスできないと思うんですが違うんでしょうか?

129:デフォルトの名無しさん
07/04/03 11:51:06
>>124
1.5より前だと、更新するclass一個に対してClassLoaderのインスタンス生成して、
class を更新するたびに、古いClassLoaderを古いclass定義ごと捨てて、
新しいClassLoaderを新しいclass定義とともに生成する、みたいな力技使うとか。

130:デフォルトの名無しさん
07/04/03 11:58:45
>>128
「直接アクセス」ってのを どーゆー意味で使ってるか分からんから なんとも言えないけど。

class Outer {
 private instanceField;
 static class C { void method(Outer outer){
  outer.instanceField = 10; //取り囲むクラスのprivateなインスタンスフィールドにもアクセスできる。
  //Outer.this.instanceField = 10; は内部クラスでないので、これは無理。
 } }
}

131:デフォルトの名無しさん
07/04/03 11:59:54
× private instanceField;
○ private int instanceField;

132:128
07/04/03 12:16:55
すいません出版してるとこのサイトで正誤表あったので一応見てみたら誤植だったみたいです。
非static変数または...→static変数または...

>>130
そういう方法ならアクセスもできるんですね。参考になります。

133:124
07/04/03 15:49:37
>126

見てみる。ありがとう。

>130

うぉ力技だな。上手につくらないとメモリドカ食いしたりするのかね。
とはいえ参考になった。ありがとう。


134:デフォルトの名無しさん
07/04/03 16:55:29
staticなメソッドがオーバーライドできないのはなぜですか?

135:デフォルトの名無しさん
07/04/03 17:29:58
>>134
staticなメソッドをサブクラスでstaticなメソッドとして再定義すると、
メソッドはオーバーライドでなく隠蔽される。
隠蔽の場合は静的バインディングが行われるので、
そのメソッドを呼び出したインスタンスの静的な型情報にしたがって呼ばれるメソッドが決まる。
だから、SuperClass o = new SubClass(); o.staticMethod();だとすると、
oの静的型であるSuperClassのstaticMethod()が呼ばれる。

136:123
07/04/03 17:31:50
>>125
>>127

ありがとうございます。整列済みは期待しても大丈夫そうでしょうか。
お騒がせしました。。

137:デフォルトの名無しさん
07/04/03 17:50:49
>>135
つうかなんでo.staticMethod();って書けるんだろう?
SuperClass.staticMethod();で十分じゃん

138:デフォルトの名無しさん
07/04/03 18:57:17
>>137
SuperClass o = new SubClass(); o.method();だとすると、
SubClassのmethod()が呼ばれることの対比を明確にしたかったからでは?

139:135
07/04/03 19:04:27
>>138
そういうつもりで書いた。

動的バインドと静的バインドがごちゃごちゃするから、
できればクラスメソッドは>>137の言うようにクラス名.メソッド名で呼んだ方がいいと思う。

140:デフォルトの名無しさん
07/04/04 00:20:05
文字列:c:/hoge/poge.javaのpoge.javaを得るとか
パス分解関係の関数ってどこにあるんだったけか?

141:デフォルトの名無しさん
07/04/04 00:30:16
java.io.File#getName()

142:デフォルトの名無しさん
07/04/04 00:50:35
それってよくないんじゃなかったかな。
File.dirnameとかFile.basenameみたいなメソッドないのかな。

143:デフォルトの名無しさん
07/04/04 01:14:39
> それってよくないんじゃなかったかな。
具体的には?

> File.dirname
java.io.File#getParent() java.io.File#getParentFile()

> File.basename
java.io.File#getName()

144:デフォルトの名無しさん
07/04/04 01:23:18
すまん、気のせいだった。それでいいです。ども。

145:デフォルトの名無しさん
07/04/04 11:13:51
for(int k = 1; k <= 100; k++)
{
if(k <= 10)
{
l1 = (l1 * 1000L) / 6554L;

}
l1 = (l1 * 6544L) / 6554L;

          }


例えばこんな文があったとき、
kが10以下の場合は「 l1 = (l1 * 6544L) / 6554L; 」
この計算はされるんでしょうか。

10以下の時にこの計算をしたくないときにはelseを入れるんでしょうかということです。


146:デフォルトの名無しさん
07/04/04 11:16:53
ヒント:break

147:デフォルトの名無しさん
07/04/04 11:32:56
>>145
continueもしくは普通にif...else...で。
breakするといきなりループを抜ける。

148:デフォルトの名無しさん
07/04/04 11:46:02
つまりこのままだと10以下の時に計算されてしまうわけですね?


149:デフォルトの名無しさん
07/04/04 12:07:06
そういうことだ。k>10が無難かと。

150:デフォルトの名無しさん
07/04/04 12:20:27
ありがとうございました。
continueがイマイチ良くわからなかったので
おとなしくelseつけます。

151:デフォルトの名無しさん
07/04/04 14:11:05
(:D)| ̄|_

152:デフォルトの名無しさん
07/04/04 15:55:45
(:D)| ̄|_

153:デフォルトの名無しさん
07/04/04 16:25:02
(:D)| ̄|_

154:デフォルトの名無しさん
07/04/04 16:40:34
(:D)| ̄|_

155:デフォルトの名無しさん
07/04/04 17:40:16
(:D)| ̄|_

156:デフォルトの名無しさん
07/04/04 18:26:53
_| ̄|(O:)

157:デフォルトの名無しさん
07/04/04 19:09:32
)
:)
O:)
(O:)
 |(O:)
 ̄|(O:)
| ̄|(O:)
_| ̄|(O:)

158:デフォルトの名無しさん
07/04/04 19:10:02
(:D)| ̄|_

159:デフォルトの名無しさん
07/04/04 19:16:48
(:D)| ̄|_

160:デフォルトの名無しさん
07/04/04 19:29:11
Dに興味持ってコンパイラ、win用リンカ、windowsモジュール、IDE、SDL/OpenGLポーティング、日本語マニュアル一式落としても
まだ、ビルドツール、ドキュメントツール、GUIツールキット、リソースエディタ、XML APIとか揃ってない
javaは恵まれてるんだなぁとつくづく思った今日この頃。

言語仕様もjavaの名前空間であるimportが一番スマートな印象を受けた。

javaもやろうと思えばJOGL,JOAL,JInput,JSDL,JMFがあるんだよね。

GC使いながら自分でメモリ管理したい・・・orz
エンドユーザーとしてはやっぱりVM必須は導入の障害らしいし・・・


161:デフォルトの名無しさん
07/04/04 19:49:24
独り言を聞いてほしいのかい?

162:デフォルトの名無しさん
07/04/04 19:50:27
(:D)| ̄|_=3 (X<)| ̄|_

163:デフォルトの名無しさん
07/04/04 20:41:30
(:D)| ̄|_

164:デフォルトの名無しさん
07/04/04 21:25:35
(:D)| ̄|_

165:デフォルトの名無しさん
07/04/04 21:40:14
(:D)| ̄|_

166:デフォルトの名無しさん
07/04/04 21:44:21
(:D)| ̄|_

167:デフォルトの名無しさん
07/04/04 21:46:53
(:D)| ̄|_

168:デフォルトの名無しさん
07/04/04 22:00:31
(:D)| ̄|_

169:デフォルトの名無しさん
07/04/04 23:03:45
(:D)| ̄|_

170:デフォルトの名無しさん
07/04/05 00:09:53
java.io.WinNTFileSystem
java.io.Win32FileSystem.canonicalize

それぞれどういう例外か教えていただけないでしょうか?
よろしくお願いいたします。

環境:
OS : WinNT4.0Server
eclipse3.2.0
Tomcat5.5.20

171:デフォルトの名無しさん
07/04/05 00:19:41
>>170
それは例外クラスではない
java.io.WinNTFileSystemはクラス名で、canonicalizeはそのメソッド名

172:デフォルトの名無しさん
07/04/05 00:24:12
winのファイルシステムで扱えない文字がパスに含まれるとか

173:171
07/04/05 00:24:19
間違って送信した
java.io.WinNTFileSystemはjava.io.Fileの実装に関わるクラスの名前で
canonicalizeはjava.io.File#getCanonicalPathとかを呼んだ時にFileクラスからさらに呼ばれるメソッド
例外クラス名はそのメッセージが出ている前のあたりにないか?

174:デフォルトの名無しさん
07/04/05 00:32:08
>>173
ありがとうございました。(:D)| ̄|_

175:170
07/04/05 00:54:55
>>171-173
早速のレス、ありがとうございます。
申し訳ありませんが、友達から聞かれたことなので自分では解りません。

申し訳ありませんが、確認は明日になりますので、
よろしければ、引き続き心当たりを教えていただけないでしょうか?

176:デフォルトの名無しさん
07/04/05 02:25:55
(:D)| ̄|_はオレの顔文字だ!使うなッ!

177:デフォルトの名無しさん
07/04/05 05:03:46
(:D)| ̄|_

178:デフォルトの名無しさん
07/04/05 05:46:09
(:D)| ̄|_

179:デフォルトの名無しさん
07/04/05 07:58:05
>>176
(:D)| ̄|_拒否

180:デフォルトの名無しさん
07/04/05 10:01:43
(:D)| ̄|_

181:デフォルトの名無しさん
07/04/05 11:15:04
(:D)| ̄|_

182:デフォルトの名無しさん
07/04/05 11:31:56
(:D)| ̄|_

183:デフォルトの名無しさん
07/04/05 11:56:16
(:D)| ̄|_

184:デフォルトの名無しさん
07/04/05 11:57:36
toString()が明示的に実装されていないクラスの場合、
System.out.println()などでそのクラスのインスタンスを表示すると
「TestInstance@1a46e30」みたいに、そのインスタンス独自のアドレス
またはIDみたいなものが表示されるよね?
あるクラスにtoString()を実装してしまった場合、
この文字列を取得する方法ってどうやればいいの?
JavaAPIにあるのかな?

185:デフォルトの名無しさん
07/04/05 11:59:31
toStringで親のtoString呼ぶとか

186:デフォルトの名無しさん
07/04/05 12:01:27
>>184
java.lang.Integer.toHexString(java.lang.System#identityHashCode(Object x))

187:デフォルトの名無しさん
07/04/05 12:08:09
>>185-186 ありがとうございました。(:D)| ̄|_


188:デフォルトの名無しさん
07/04/05 12:28:34
>>186
Object#hashCode()ではなく?

189:184
07/04/05 12:30:36
>>187
こらこら。人の質問の答に勝手にお礼を言うな!

190:184
07/04/05 12:36:24
>>186
ありがとう。できました。
でも、「#」じゃなくて「.」だよね?
「#」使う高度な書き方ってあるの?Javaでは見たこと無いけど。

191:デフォルトの名無しさん
07/04/05 12:46:45
>>190
staticな呼び出し(静的バインド)を「.」で記述するから
インスタンスを作って呼ぶ場合ドキュメントでは「#」を代わりに使う

192:デフォルトの名無しさん
07/04/05 13:19:53
>>190
javadoc コメントの@see タグや {@link}タグで
<クラス名> # <メソッド名> ( <引数型リスト> ) って書く癖が混じっただけ。

>>191
インスタンスメソッド/クラスメソッドは関係ない。

193:デフォルトの名無しさん
07/04/05 15:01:12
別にあんた固有の癖じゃないだろ

194:デフォルトの名無しさん
07/04/05 15:20:27
そもそもtoStringオーバーロードするのはやめたほうがいい気がする。
のちのちハマリの元。

195:デフォルトの名無しさん
07/04/05 15:29:07
>>194
ハマリって、例えばどんな?

196:デフォルトの名無しさん
07/04/05 15:32:33
>>194
は?

197:デフォルトの名無しさん
07/04/05 16:08:14
swingについて質問です。

JLabelに表示される文字列にリンクを張ることはできますか?
htmlファイルの<a href = ・・・>みたいな感じです。
JLabelに表示されている文字列をクリックすると
指定のブラウザが起動されるイメージで作りたいんですが。
もし解るか方いましたら教えてください。
お願いします。

198:デフォルトの名無しさん
07/04/05 16:23:21
tomcatとかwablogicみたいなアプリケーションサーバのメモリ上(VM上?)に
永続的にデータを保持しておく事ってできますか?

199:デフォルトの名無しさん
07/04/05 16:56:30
初歩的な質問ですがお願いします。

jdk1.5.0_01とjreをアンインストールして、jdk1.5.0_04をインストールして
環境変数も新たに設定しなおしたんですけど、javacコマンドがコマンドプロンプトに認識されなくなりました。

インストールしたフォルダ(C:\jdk1.5.0_04)をシステム環境変数pathに追加(;C:\jdk1.5.0_04\bin)しました。
設定後コマンドプロンプトの再起動もしました。
ユーザー環境変数のところに追加してみたり、FAQ的なものを読んでいろいろやってみたんですがうまくいきません。

200:デフォルトの名無しさん
07/04/05 17:00:46
>>198
DB使え

201:デフォルトの名無しさん
07/04/05 17:10:16
>>200
パフォーマンス的な問題でDBは使えないのです。

202:デフォルトの名無しさん
07/04/05 17:15:07
メモリ上に永続化って無理だろう…常識的に考えて。

203:デフォルトの名無しさん
07/04/05 17:16:36
>>199
コマンドプロンプトで
PATH > hoge.txt
ってやってhoge.txtの内容をここに晒す

204:デフォルトの名無しさん
07/04/05 17:25:52
>>201
「性能上の問題」というが、
問題はCPU使用率やメモリで、DBプロセスがメモリやCPU食うのが問題、というのなら、
hsqldbなどの、軽量で、インプロセスで動くDBを使えばいい。

問題は応答速度で、DB使うと遅いというのなら…どうやっても無理だ。
マシンを買い換えよう。

205:デフォルトの名無しさん
07/04/05 17:49:04
>>203
ありがとうございます。ファイル見ると変更したとこがこうなってました↓
...;C:\jdk1.5.0\bin
フォルダ名を上のものに変えると動きました。
確かにC:\jdk1.5.0_04\binにしてるんですけどなんでこうなってるんでしょうか。。。

206:デフォルトの名無しさん
07/04/05 18:05:58
>>197
クリックはマウスイベント



207:デフォルトの名無しさん
07/04/05 18:34:10
>>201
ってどんな要件だ?
pkを使ってmysqlから検索するのに何msかかる?
>>204の言う通りだと思う

208:デフォルトの名無しさん
07/04/05 19:18:29
>>201
パフォーマンスって言うよりDB選択・導入する権限がYOUに無いからとかじゃないか?

俺の場合はそれでORACLEになったりDB2になったりその他やるたびにDBが代わるんで悲しい。

209:デフォルトの名無しさん
07/04/05 19:32:13
>>205
環境変数の設定に失敗してるんじゃないのか

210:デフォルトの名無しさん
07/04/05 20:17:13
DBがダメか・・・
ファイルに出力、java.util.prefs.Preferencesでレジストリに格納もダメっぽいね。

パフォーマンスが速度の問題であれば
VMを落さずにずっと起動しておけばいいんじゃね?

211:デフォルトの名無しさん
07/04/05 21:19:08
Java上で日本語変換を行うInput Method Frameworkで質問です。
Swingなどのウインドウアプリ以外で日本語変換をJava内で行いたいのですが可能ですか?
IMFのドキュメント URLリンク(java.sun.com) には
「「インプットメソッドクライアント API」のインタフェースとクラスを使うと、"テキスト編集コンポーネント"でインプットメソッドとやり取りでき・・」
と"テキスト編集コンポーネント"と書いてあります。
やりたいことはコマンドライン上などでkonnitiha[スペース]と入力すると
「こんにちは」や「今日は」など日本語テキストとその変換候補を取り、またその変換で確定処理をすると言うことをしたいです。

Swingなどのウインドウ以外で、このようなことはできますか?

212:デフォルトの名無しさん
07/04/05 21:27:00
jni

213:デフォルトの名無しさん
07/04/05 21:41:25
>>212>>211へのお答えでしょうか。jniでぐぐっみます。(:D)| ̄|_


214:デフォルトの名無しさん
07/04/05 22:06:37
>>211
InputMethod Client API は AWT のイベントシステムに組み込まれてるから無理だと思われ。

ダミーのAWT or Swingコンポーネントを作って、
そこに java.awt.Toolkit.getSystemEventQueue で取った
EventQueue に InputEvent を流し込むよーな事をすれば、
上手く行けば InputMethodEvent を発生させられるかもしれん。
それが出来れば、って感じだけど……

仮に それで Windows で動いても Unix で動く保証とかないし、
そもそもに コマンドラインで文字消したりって
標準APIの機能でサポートしてないから諦めた方が無難。

215:デフォルトの名無しさん
07/04/05 22:11:49
例外の質問です。
呼び出し先メソッドで、throws宣言やthrow文で呼び出し元に例外をスローして例外処理をする
というのはわかりましたが、throws、throwの記述がない呼び出し先メソッドで、
ArrayIndexOutOfBoundsExceptionが発生した場合も、呼び出し元で例外処理をしている様なのですが
これは呼び出し元に例外がスローされているのですか?

216:デフォルトの名無しさん
07/04/05 22:17:20
>>215
ArrayIndexOutOfBoundsExceptionはjava.lang.RuntimeExceptionを継承したクラス。
あとは「非検査例外」か「非チェック例外」でぐぐってみればわかると思われ。


217:211
07/04/05 22:26:36
>>214
むむむ、はやりAWTに依存してますか・・・。
コマンドラインは例で、コマンドライン以外でもaとかoとかのデータから日本語を組み立てて、候補を出してその中から選択ってしたかったのですが・・・。
複数OSに対応したかったのでJNIは使いたくないんですよね。

「いや、こうすればできるよ」などあれば引き続きアドバイスお願いします。

218:デフォルトの名無しさん
07/04/05 22:39:13
>>197

他のテキストを表示するタイプのコンポーネントを初期化する前に

new JLabel("<html><a href="hoge">linkee text</a>");

じゃ無理?
流石にハイパーテキストリンクはサポートしてないかも知れん。

219:デフォルトの名無しさん
07/04/05 22:49:41
>>218
無理。ハイパーリンククリックのイベントを拾うには、
標準ではJEditorPaneが必要になる。

220:デフォルトの名無しさん
07/04/05 22:59:49
>>219
やっぱ無理なのか。
見た目の問題ならCSS食わせれば一通りの事は出来るのにな。


221:デフォルトの名無しさん
07/04/05 23:03:52
>>220
JLabelをカスタマイズして作ったら?
「クリックすると指定のブラウザが起動するJLabel」
という仕様で。

222:デフォルトの名無しさん
07/04/05 23:15:46
今だとDesktop#browseに食わせるのが簡単かも。


223:デフォルトの名無しさん
07/04/05 23:29:21
コマンドライン引数で入力した文字列を列数ではなく、文字数を数えたいのですが
どうすればいいでしょうか?

文字列は数えられても、文字数がどうしてもできないのです。

224:デフォルトの名無しさん
07/04/05 23:46:08
argv.lengthじゃなくて、argv[0].length(), argv[1].length()...の和を
求めたいという意味かね?


225:デフォルトの名無しさん
07/04/05 23:47:18
>>223
>>223 の考える文字数」の定義がわからんので答えようがない。

String#length() じゃダメなん?

226:223
07/04/06 00:12:12
10>A、11<B って感じです。
if文で表したいのですが、args.lengthで文字列の数は取得できても
あああああ で 5文字と数えたい
if文に10より小さいならとかの指定がうまくいかないす。
つまり、○○java 2222555aaaaa
B 
ということです。 わかるでしょうか?

227:デフォルトの名無しさん
07/04/06 00:16:59
>>226
いや、1行目から分からん

228:223
07/04/06 00:17:33
書き方がわかりずらいのでもう1度書かせてもらいます。
例えば
ssss aaaaa vvvv
で3列とは数えられる args.length で
でも
aaaaaa
を6文字と数えらない if( ? < 10 ) {
の ? の部分がどうしてもわからないのです・・


229:223
07/04/06 00:22:15
DOSでコマンドライン引数で入力した文字数を表示させて
なおかつ、文字数によって出力の結果をわけたいわけです。
つまり、10までなら A と表示させ、
11以上なら B と 表示させたい。
で、if文を使うのだろうと思いましたがうまくいかないわけです。

230:デフォルトの名無しさん
07/04/06 00:25:35
long変数の値が計算した結果
9223372036854775807を超えたらどういう扱いになりますか?

超えたらエラー表示を出したいんですが。

231:デフォルトの名無しさん
07/04/06 00:28:42
>>229
>>224で答えが出ている

232:デフォルトの名無しさん
07/04/06 00:30:24
>>229
main(String[] args){}
のargsは、Stringの配列だとは、認識できるよな?

つまり、
{"aaa","bbb"}
のような配列が入ってくるわけだ

args.lengthには、上場合は2がかえる。
つまり、配列に入っているStringの数が帰る

だから、配列の最初の要素を取り出して、
そのStringの文字数を数えれば言い訳だ

233:デフォルトの名無しさん
07/04/06 00:46:23
Stringのlengthはメソッドであり、()を付ける必要がある。
配列のlengthは不要。

どうにか出来なかったものかと思うが、今更だな。


234:デフォルトの名無しさん
07/04/06 00:49:11
>>230
オーバーフローして、演算結果としては long であらわせる範囲(要するに下位64bit)が返る。

例外とかは一切無し。検出は自前でやんないとダメ。

235:223
07/04/06 01:06:50
class TestArgs {
public static void main(String[] args) {
if(args[0].length() < 11 ) {
System.out.println("A");
}
else {
System.out.print("B");
}
}
}

コンパイルはできたけどだめでした・・例外処理も加えないとダメですか、

236:223
07/04/06 01:08:26
いや、OKでした 訂正します。なんとまぬけな、

ありがとうございました!

237:197
07/04/06 01:51:20
>>206
レス有難うございます。
おお、確かにそうですね。
ラベルは表示するだけって思い込んでたので
イベントハンドラの事をぽっくり忘れてました。

>>218-221
レス有難うございました。

クリックのイベントで実装してみたいと思うのですが
javaからURLを指定してブラウザを起動する事はできますか?
解るかたいましたら教えてください。

238:デフォルトの名無しさん
07/04/06 01:55:07
>>237
つ java.awt.Desktop

239:197
07/04/06 01:56:08
すいません。連続して質問します。

JLabelに表示される文字列を
スクロールして流れるように表示させたいです。
自分ではTimerクラスを使って文字列を
少しずつ編集すれば出来るかと思ってますが、
重そうであまり賢い方法とは思えません。
そういった機能を持つクラスや別の方法はありますか?

240:197
07/04/06 01:56:51
>>238
うっす。どうもっす。
早速調べてみます。

241:デフォルトの名無しさん
07/04/06 02:53:28
>>239
環境にもよるし編集内容にもよると思うが全然重くなかった
public class MarqueeLabel extends javax.swing.JLabel implements java.awt.event.ActionListener {
private StringBuilder sb = new StringBuilder();
public MarqueeLabel(String text) {
sb.append(text);
setText(sb.toString());
new javax.swing.Timer(40, this).start();
}
public void actionPerformed(java.awt.event.ActionEvent e) {
char c = sb.charAt(0);
setText(sb.deleteCharAt(0).append(c).toString());
}
public static void main(String[] args) {
javax.swing.JFrame f = new javax.swing.JFrame();
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
f.add(new MarqueeLabel("abc def ghq jkl mno pir stu vwx yz@ "));
f.pack();
f.setVisible(true);
}
}


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4857日前に更新/223 KB
担当:undef