5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

★★Java質問・相談スレッド145★★

1 :デフォルトの名無しさん:2011/06/01(水) 00:53:04.44
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド144★★
http://hibari.2ch.net/test/read.cgi/tech/1300950228/

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

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

2 :デフォルトの名無しさん:2011/06/01(水) 00:53:22.63
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 9
http://hibari.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://hibari.2ch.net/test/read.cgi/tech/1164877399/

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
http://hibari.2ch.net/test/read.cgi/tech/1295766416/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
http://hibari.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part8
http://hibari.2ch.net/test/read.cgi/tech/1297616354/

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 70 ★★
http://hibari.2ch.net/test/read.cgi/tech/1300067785/


3 :デフォルトの名無しさん:2011/06/01(水) 00:53:33.15
■ NetBeansに関する雑談は --
NetBeans Part6
http://hibari.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
clipse統合M30【Java/C++/Ruby/Python/Perl】 ←検索にかからなかったので下のスレが立て直したスレッド
http://hibari.2ch.net/test/read.cgi/tech/1280027133/
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/


**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
http://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
http://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
http://www.java.com/ja

4 :デフォルトの名無しさん:2011/06/01(水) 01:36:07.82
Java SE 7(Early Access)
http://jdk7.java.net/download.html

5 :デフォルトの名無しさん:2011/06/01(水) 01:46:37.09
リスナー系オブジェクトは別として、引数のオブジェクトを弄る事で結果を返すのってJava的にナシなん?
戻り値で返すと型情報が減るから返すとObjectになるようなケースで無闇に返したくないんだけど。


6 :デフォルトの名無しさん:2011/06/01(水) 02:18:33.75
>>5
JavaみたいなOOPLに限らずあんまり好まれはしないだろう…
どういう状況を想定してんのかわからんから何とも言えんが。

7 :デフォルトの名無しさん:2011/06/01(水) 02:20:18.22
Oracle JRockit
http://www.oracle.com/technetwork/jp/middleware/jrockit/downloads/index.html

8 : 【東電 55.7 %】 忍法帖【Lv=2,xxxPT】 :2011/06/01(水) 03:48:17.38
勉強を兼ねていくつかextends jappletなサンプルプログラムをjframeで動く様に描き変えてみてるけど結構描き直しが必要で面倒だね。
extends jframeだけで動く様になぜ互換性を持たせなかったのだろう?

9 :デフォルトの名無しさん:2011/06/01(水) 05:46:36.15
アプレットはパネルの一種だからトップレベルウインドウのフレームと互換性を持たせてないのは当然。
アプレット自体を書き直すんじゃなく、アプレットのスタブとコンテキストを用意して動作環境を整え、
フレームにaddしてinit、start、stop、destroyを必要な時点で呼び出してやるという、
要はブラウザやアプレットビュアがやってるようなことを行うアプリケーションを書けばいい。
それも汎用性のあるものにする必要はなく目的のアプレットに合わせて手抜きすればいい。
単純なアプレットならスタブとか自前で用意せずに動作するものも多いと思うし、
initとかもオーバーライドされてないメソッドは呼ぶ必要がない。

10 :デフォルトの名無しさん:2011/06/01(水) 12:00:00.32
valueOf(3) とかをかいてもエラーにならないんですけどこれってどこのメソッドなんですか?

11 :デフォルトの名無しさん:2011/06/01(水) 12:56:25.64
>>10
コードはれ

12 :デフォルトの名無しさん:2011/06/01(水) 13:20:31.79
ServerSocketでpostデータを受信したいのですが、なぜかヘッダしか取得できません。
bodyを取得するのはどうすればよいのでしょうか?

13 :デフォルトの名無しさん:2011/06/01(水) 13:55:47.65
>>10
java.lang.Integer#valueOf(int) の事ならJDK1.5以降に追加されたメソッドだから
1.4以前だと使えないよ。

14 :デフォルトの名無しさん:2011/06/01(水) 14:14:59.74
>>13
お前質問ちゃんと嫁よ

15 :デフォルトの名無しさん:2011/06/01(水) 14:18:33.12
youtubeの動画ダウンロードするのにJAVAをインストールしろ言われたからインストールしたのにまだダウンロードできない

16 :デフォルトの名無しさん:2011/06/01(水) 14:20:28.21
騙されたんだな

17 :デフォルトの名無しさん:2011/06/01(水) 14:26:32.87
>>10
エスパーすると、static importしてんじゃないの?

18 :デフォルトの名無しさん:2011/06/01(水) 15:02:34.51
BEANとMAPでアクセスのパフォーマンスがどのくらい違うかと思って、以下を各々10万回ループしたけど、
両方共ほぼ0.4sくらいで差がないです。
MAPはパフォーマンス悪いからやめろと言われたけど、これを突きつけてやろう。

ちなみにリフレクションでも2倍増えただけでおもったより重たくないな。
5倍くらい違うと思ったでけど。

user = new TestUserBean();
user.setValue1("value1");
user.setValue2("value2");
user.setValue3("value3");
user.setValue4("value4");
user.setValue5("value5");

map = new HashMap<String, String>();
map.put("value1", "value1");
map.put("value2", "value2");
map.put("value3", "value3");
map.put("value4", "value4");
map.put("value5", "value5");

user = new TestUserBean();
MethodUtils.invokeExactMethod(user, "setValue1", "value1");
MethodUtils.invokeExactMethod(user, "setValue2", "value2");
MethodUtils.invokeExactMethod(user, "setValue3", "value3");
MethodUtils.invokeExactMethod(user, "setValue4", "value4");
MethodUtils.invokeExactMethod(user, "setValue5", "value5");

19 :デフォルトの名無しさん:2011/06/01(水) 15:14:06.88
>>18
中から情報取り出すときのパフォーマンステストしたか?

20 :デフォルトの名無しさん:2011/06/01(水) 15:21:38.15
前は何も問題なくダウンロードできたのにこの1年で何がどうなったのか

21 :デフォルトの名無しさん:2011/06/01(水) 15:38:02.29
>>19
はい、取り出しも含めてセットでループです。
気を以下のように長くしても変わらずで

 map.put("valueAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyz1", "value1")

ハッシュ値計算するので時間かかるかなと思ったけど。
その面では心配なく使えそうです。

個人的にはリフレクションがそんなに遅くないのに気づけて大きいです。

22 :デフォルトの名無しさん:2011/06/01(水) 15:40:17.67
リフレクションてそんなに速くなってたのか。
昔は単なるメソッド呼び出しと比べて10倍とかかかってたような。

23 :デフォルトの名無しさん:2011/06/01(水) 15:40:46.93
>>21ですが、

ちなみに

synchronized (lock) {
さっきのやつ
}

でもほぼ0.4くらいで変わらなかったです。

もちろん当然他からロック取得するスレッドがないけど、あるないにかかわらず、ロックかけに行くことでパフォーマンスが変わると思ったけど…
これまた驚きでした。

24 :デフォルトの名無しさん:2011/06/01(水) 15:46:17.29
>>23
なんか昔桜庭さんが解説してたけど、
それだと本当のロックのコストは検証できなかったはず。

25 :デフォルトの名無しさん:2011/06/01(水) 16:57:20.10
Thread.currentThread().getStackTrace()[n]で
getMethodName()を使いメソッド名取れますが
各スタックの引数にアクセスが出来ないようです。

引数にアクセスできる手法って何かありますかね?

データセンターのテスト機で動くtomcatにFireWallでeclipseでリモート接続できないので、
printStackTrace()で情報だししてるんですけど、引数情報が見えないないので何とか手法を探ってます。

26 :デフォルトの名無しさん:2011/06/01(水) 18:24:29.08
XML形式で作成した設定ファイルを読み込ませる機能を作りたいです。
DOMというもので実装しようと思うのですが、DOMって商用利用しても大丈夫なものですか?
MySQLみたいにライセンス問題が絡んできたりしませんか?

27 :デフォルトの名無しさん:2011/06/01(水) 18:56:14.97
Javaで書くならおとなしくbeanで書けよと思う

28 :デフォルトの名無しさん:2011/06/01(水) 19:59:10.64
>>6
active(FTP protocol);
active(SSH protocol);
active(HTTP protocol);

こういうメソッドをもったインターフェースが有ったとして、
Xporter xp = new Xporter();//インターフェースを実装
connect.activeProtocolTo(xp);//指定したホストのポートが使用しているプロトコルがxpに入る
こんな感じの事をする。

これを戻り値でやると、
Object protocol = connect.getProtocol();
if(protocol instanceof FTP) ・・・;
if(protocol instanceof SSH) ・・・;
if(protocol instanceof HTTP) ・・・;
ってな感じになるわけじゃん。
ダウンキャストしたくないと。

29 :デフォルトの名無しさん:2011/06/01(水) 20:20:15.85
1乙です

ところで、eclipse で、利用していないpublicなメソッドや変数があるかどうかは、どうやって調べるんでしょうか。
privateならデフォで簡単に分かるのですが。

よろしくです。

30 :デフォルトの名無しさん:2011/06/01(水) 20:22:06.50
>>29
呼び出し階層。

検索対象はワークスペースで開いてるプロジェクト群が最大。当たり前だが。

31 :デフォルトの名無しさん:2011/06/01(水) 20:27:08.68
メソッド、変数を選択してCtrl+H

32 :デフォルトの名無しさん:2011/06/01(水) 20:39:08.18
>>30
おお。
ありがとうです。
コンテキストメニューがコンテキストなんで、フィールドとかを指定したりすると、
当たり前ですが、[呼び出し階層を開く]メニューが出ないですな。ちょいとあわてましたが。

33 :デフォルトの名無しさん:2011/06/01(水) 20:41:23.95
>>29
単にpublicをprivateにしたら?
クラス外で呼ばれていなければエラーにならないし、
クラス内で呼ばれていなければ警告がでるだろ。

34 :デフォルトの名無しさん:2011/06/01(水) 20:57:52.36
>>27
JavaBeanならライセンス問題はありませんか?
貧乏なので、ライセンス料とか払えないです(><)。

35 :デフォルトの名無しさん:2011/06/01(水) 21:03:46.47
シリアライズに関して質問があります。

FileOutputStreamと、ObjectOutputStreamを組み合わせることでファイルへの格納はできたのですが
これをStringやbyte配列に格納することは可能でしょうか?

一度ファイルへ書き込めばでますが、できれば一時ファイルみたいなものは使いたくないです
ぐぐってもあまり出てこないので、そもそもこんなことをやりたいと思うのがおかしいのかもしれませんが…

それでは、よろしくお願いします。

36 :デフォルトの名無しさん:2011/06/01(水) 21:12:49.79
>>35
ByteArrayOutputStream
ByteArrayInputStream
こいつらを
ObjectOutputStream
ObjectInputStream
に渡してやれば運用できる。

37 :デフォルトの名無しさん:2011/06/01(水) 21:32:31.73
>>12
あなたのコードのバグを直しなさい。
何も特殊なことしないで取れるよ。


38 :デフォルトの名無しさん:2011/06/01(水) 21:40:36.60
xmsとxmxの値を増やしたら
xmnの値も自動的に増える?
デフォルトでxmsの何分の一とか決まってるんだろうか

39 :デフォルトの名無しさん:2011/06/01(水) 21:58:56.51
>>36
ありがとうございます

40 : ◆kYBG55jDt/1J :2011/06/01(水) 22:09:53.07
public class HogeSuper{
HogeSuper(){
}

public class HogeSub{
}

41 : ◆kYBG55jDt/1J :2011/06/01(水) 22:13:43.92
すいません、途中で書き込んでしまいました。

スーパークラスでprotected変数の値を与え、
スーパークラスのコンストラクタでサブクラスをnewして、
スーパークラスでサブクラスのメソッドを呼び出し、
サブクラスでスーパークラスのprotected変数を見ると、
与えた値になっていないのですが、どうすればいいでしょうか。

これまではstaticを付けて回避していたのですが、
newする方法も試したいと思っていました。

42 :デフォルトの名無しさん:2011/06/01(水) 22:15:53.45

Java課題です。お願いします。
複素数クラスを作り、二次方程式の虚数解を求めるプログラムを書け。
以下、本プログラムの仕様。

メソッドとして以下の四則演算を定義すること。
Complex plus(Complex c)
Complex minus(Complex c)
Complex mul(Complex c)
Complex div(Complex c)
また、複素数の平方根を計算するメソッド
Complex sqrt()
も定義すること。虚数部が 0 の場合(実数の場合)のみに対応すればよい。
実数の平方根はMath.sqrtを使ってよい。
二次方程式の解を求めるプログラムでは 3 つの係数(実数)を入力
させ、その数値から複素数オブジェクトを作って計算を行うこと。


43 :デフォルトの名無しさん:2011/06/01(水) 22:22:07.51
問題出してやるから、お前ら答え書いて
俺に見せろといいたいの?
それとも実装方法が解らない部分があって
それを聞きたかったけど書き忘れただけなの?

44 :デフォルトの名無しさん:2011/06/01(水) 22:23:08.77
前者じゃない?笑

45 :デフォルトの名無しさん:2011/06/01(水) 22:37:49.61
class Super
{
    protected int value = 0;
    Super(boolean trap)
    {
       if(!trap) return;
       Sub sample = new Sub();
       sample.value = 10;
    }
}
class Sub extends Super
{
     Sub()
     {
         super(false);//再起止め
         System.out.println("Superの中でSub作るなよ 値:"+value);
     }
}
>>41の内容でコード起こそうと思ったが、
あー分けが解らん。

46 : ◆kYBG55jDt/1J :2011/06/01(水) 22:49:39.30
>>45
ありがとうございます。まさにそんな感じです。
出力文字の「Superの中でSub作るな」という事なんですかね。

そのSuperも始めのMainでnewしているのですが、
SubもMainでnewして、Superのメソッドを呼び出す時に
引数で渡すとかするんでしょうか。

47 :デフォルトの名無しさん:2011/06/01(水) 23:11:19.37
そうだといえばそうね。
ただし、Superの{}の中に一個足りとも
Subにあたるクラス名を書くなよ。
あと、protectedで変数を渡すのは止めなさい。



48 :デフォルトの名無しさん:2011/06/01(水) 23:13:48.76
>>42
わざわざCommonsにあるものを実装する気にならないなぁ。

いっそCommonsのComplex参考にしちゃえば?
ttp://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/complex/Complex.java?view=markup

49 : ◆kYBG55jDt/1J :2011/06/02(木) 00:12:32.35
>>47
分かりました、ありがとうございます。

50 : 【東電 65.3 %】 忍法帖【Lv=3,xxxP】 :2011/06/02(木) 00:53:37.23
これ教えてる人いまいちだな。
高校の授業か大学院の授業化に寄っても違うけど。

コンプレックスありそうな問題w
(これが言いたかったw

51 :デフォルトの名無しさん:2011/06/02(木) 01:50:54.46
ttp://okwave.jp/qa/q6777971.html

52 :デフォルトの名無しさん:2011/06/02(木) 07:41:10.82
>>33
返信ありがと

Abstractでクラスを作ってると、publicにせざるを得ない

53 :デフォルトの名無しさん:2011/06/02(木) 08:17:39.78
>>52
一時的にprivateにするって事なんじゃね?

54 :デフォルトの名無しさん:2011/06/02(木) 10:05:46.74
>>53
手間はかかるけど、確実ってやつね。
一気に検索風にと思ったけど、当面はそれも使わせてもらうかな。

ありがとう

55 :デフォルトの名無しさん:2011/06/02(木) 11:25:28.31
javaの参照渡しについてど忘れして、ぐぐっても全く分からない…

int a = 10;
clearA(a);

public void clearA(int a) {
a = 0;
}

といった流れにしたいんだけど、これだと値渡しだから
結局aは10のまま

returnは使いたくないんだがどうしたらいいのだろうか?
調べると大体がnew ウンタラしてるけどnewして削除用のオブジェクト作らないとだめなの?

C++だったら
public void clearA(int &a)
で確かポインタ使わずに参照渡し出来て
そのまま変更出来たと思うんだが…

56 :デフォルトの名無しさん:2011/06/02(木) 11:40:17.92
素直にC++をつかってdくさおえい

57 :デフォルトの名無しさん:2011/06/02(木) 11:41:55.87
そんなあなたにC#

58 :デフォルトの名無しさん:2011/06/02(木) 11:44:47.79
新氏?

59 :デフォルトの名無しさん:2011/06/02(木) 11:45:52.39
はいはい、参照の値渡し参照の値渡し

60 :デフォルトの名無しさん:2011/06/02(木) 11:47:10.75
>>55

× a = 0;
○ this.a = 0;

javaはポインターの意識が希薄だし、
CやC++だとしても、同じ事やってもスコープが違うので値は変更できんでしょ。
ポインターを渡せないんだから、上のような工夫で対応できないこともない場合もある。

ただ、return を使いたくない、とか
なんかオブジェクト指向を履き間違えてコードを書いているような予感。

thisを使いまくるとデバッグが大変だよ

61 :デフォルトの名無しさん:2011/06/02(木) 12:22:38.93
>>60
サンクス

62 : 【東電 81.2 %】 忍法帖【Lv=3,xxxP】 :2011/06/02(木) 12:36:19.56
return(0);
して
a=cleara()
しちゃえばいいのにと思った。

ruby的にa.clearとしたくはなるけどw

63 :デフォルトの名無しさん:2011/06/02(木) 13:31:54.23
>>55
そもそもreturn使いたくない理由ってなに?
それによっては別の解決策を出せるかも知れない

64 :デフォルトの名無しさん:2011/06/02(木) 13:47:21.50
>>63
あー、android(JAVA)勉強中でメモリ管理が厳しくて
別関数で受け皿作ったのをリターンしてたら、容量食うかな?と
実際out of memory多発で少しでも減らしたいなー…と

取得してきたデータ画像が2560x1920とかいう超サイズだったから
これを640x480にしたら、余裕再々になったっていうね…

あとの処理は1行のものを態々関数にしようとしてたアホな感じだったんで…(returnシタクナイノハココ)
ただのアホの子でした。
呼び出し
registerCompressBitmap(offBitmap, out, bos);

関数
private void registerCompressBitmap(Bitmap offBitmap, FileOutputStream out, ByteArrayOutputStream bos) {
offBitmap.compress(CompressFormat.JPEG, 70, bos);
try {
out.write(bos.toByteArray());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
之に関してはobjなんで、out.closeでoutに関してはmainの方でも
閉じられてるって感じでいいんですよね

65 :デフォルトの名無しさん:2011/06/02(木) 13:58:34.14
>>64
むしろ、returnしたほうが、GCが勝手に掃除してくれてメモリの節約になると思うが、気のせいか?

66 :デフォルトの名無しさん:2011/06/02(木) 14:03:27.33
>>65
なるほどー、イメージ的には
ポットA&BをバケツAにいれた後に
returnで、バケツAをBに入れるってイメージだったから
その間AとBが両方存在して多いよなーと思ったけど
よくよく考えて見れば、完全コピーじゃなくて、移動だったら 50 と 50になって全体量は変わらないですよね・・

67 :デフォルトの名無しさん:2011/06/02(木) 14:08:04.23
>>66
まず、ちゃんとプロファイラ使って実際の状況を確かめる事を勧める

68 :デフォルトの名無しさん:2011/06/02(木) 14:22:11.85
JEditorPaneで、HTML5って表示できますか?

もしくは、できるコンポーネントはないですか?

69 :デフォルトの名無しさん:2011/06/02(木) 14:24:11.72
JavaFXのwebコンポーネントがHTML5に対応を謳っていたはず。まだベータ版だけど。

70 :68:2011/06/02(木) 14:29:37.04
>>69
おお。どうもありがとうございます。

そいつで、やってみます。JavaFXって何気にいいっすよね。

71 :デフォルトの名無しさん:2011/06/02(木) 14:37:57.81
>>26
commons configuration

72 :デフォルトの名無しさん:2011/06/02(木) 15:26:08.85
ttp://www.is.titech.ac.jp/~kishi/classes/java11/java09.html
課題1〜3の解答お願いします。

73 : 【東電 80.8 %】 忍法帖【Lv=3,xxxP】 :2011/06/02(木) 15:39:19.35
先輩の管ミンス政権が不信任案を決議された日に、後輩が丸投げw

74 :デフォルトの名無しさん:2011/06/02(木) 16:04:41.94
双方向リストとか懐かしいな

75 :デフォルトの名無しさん:2011/06/02(木) 18:05:46.14
JAVAでプログラムの課題出されたんですけど
Mathとキャストを使わずに下のプログラム書くとどうなりますか?

ちなみに使わずにというのはまだ習ってないので使うとNGなんです


四捨五入ノプログムなんですが

入力
1 四捨五入される数値
2 四捨五入をされる小数点の位置

出力
3 四捨五入の計算をした数値

で書いてくるように言われたんですがざっくりすぎて分からないんです


76 :デフォルトの名無しさん:2011/06/02(木) 18:22:50.39
>>72
ぬかしおる

77 :デフォルトの名無しさん:2011/06/02(木) 18:32:14.21
>>75
マルチ乙です、乙です

パソコン初心者総合質問スレッド Part1965
641 名前:ひよこ名無しさん [sage]: 2011/06/02(木) 18:01:47.96 ID:???
ここで合ってるのか分かりませんが

JAVAでプログラムの課題出されたんですけど
Mathとキャストを使わずに下のプログラム書くとどうなりますか?

四捨五入

入力
1 四捨五入される数値
2 四捨五入をされる小数点の位置

出力
3 四捨五入の計算をした数値

78 :75:2011/06/02(木) 18:36:52.72
マルチというか誘導されたからこっちに来たんですけど

79 :デフォルトの名無しさん:2011/06/02(木) 18:48:52.68
お得意のBASICとかCのコードを見てこいよ
やることはどうせ一緒だから

80 :デフォルトの名無しさん:2011/06/02(木) 18:49:43.62
>>78
アンタあっちで活動中ジャン

パソコン初心者総合質問スレッド Part1965
650 名前:641 [sage]: 2011/06/02(木) 18:33:23.67 ID:???
>>648
アンタだれ?

81 :75:2011/06/02(木) 18:55:13.46
>>80
なんかID出さずに書き込んだせいで偽者が出てしまいました
ちなみにそのスレだと>>648が僕でそれ以降は書き込んでません

82 :デフォルトの名無しさん:2011/06/02(木) 18:58:34.31
>>81
もう分からないよ
アンタが偽ものの可能性が高いかな、本人はもうトンズラ

83 :75:2011/06/02(木) 19:00:37.94
いやいやいや
ほんとに>>75で悩んでるんですけど

84 :デフォルトの名無しさん:2011/06/02(木) 19:05:39.46
>>81
ID有る板でのID出さずの質問ー>典型的なネタスレですね

85 :デフォルトの名無しさん:2011/06/02(木) 19:39:33.96
プリミティブ>値渡し
プリミティブの配列>参照渡し
オブジェクト型>参照渡し

という理解であってますか?

86 :デフォルトの名無しさん:2011/06/02(木) 19:46:54.55
Javaでint[]を1埋めしたい時、
int[] data = new int[999];
for(int e : data){
e = 0xffff;
}

ってやってもdata変わりませんよね?
どうしたらいいですか?

87 :デフォルトの名無しさん:2011/06/02(木) 19:58:43.03
>>85
プリミティブ>値渡し
プリミティブの配列>値渡し
オブジェクト型>値渡し

88 :デフォルトの名無しさん:2011/06/02(木) 20:00:50.46
>>86
Arrays.fill(data, -1); じゃダメなん?

89 :デフォルトの名無しさん:2011/06/02(木) 21:22:15.61
最近の質問の傾向から考えて、どれだけ機能してなくても宿題スレは立てておいたほうがいいのかもな

90 :デフォルトの名無しさん:2011/06/02(木) 22:58:30.33
初歩の初歩ですみませんが、馬鹿な私にデクリメントと演算子の仕組みを分かりやすく教えて下さい…

特に後者の意味がよく分かりません。



91 : ◆mqYi3P8KvrvX :2011/06/03(金) 01:50:52.13
パッケージ内のファイルから、mainのあるクラスMainの
static変数にアクセスするにはどうすればいいでしょう。

92 :デフォルトの名無しさん:2011/06/03(金) 03:12:19.57
頼みますから質問者もコードを書いてくださいよ・・・

93 : ◆mqYi3P8KvrvX :2011/06/03(金) 03:46:25.84
>>92
意味としてはこんな感じです。
importするにもスタートファイルの位置なのでフォルダがなくできないです。

//Main.java
import Folder.*;
public class Main{
static final int num = 10;
public static void main(String[] args){
Hoge hoge = new Hoge();
hoge.Print();
}}

//Hoge.java (Folderフォルダ)
package Folder;
public class Hoge{
public Hoge(){}
public void Print(){
System.out.printf("%d\n", Main.num);
}}

94 :デフォルトの名無しさん:2011/06/03(金) 06:38:42.04
Mainも何かのパッケージに入れてimportする

95 :デフォルトの名無しさん:2011/06/03(金) 06:59:11.17
>>72
リスト構造自作すんだなw

96 :デフォルトの名無しさん:2011/06/03(金) 10:27:06.70
>>72
こういうページを外部に漏らしてもokなん?

97 :デフォルトの名無しさん:2011/06/03(金) 10:28:55.61
OKかどうかなんて俺達が心配することじゃないだろう

98 :デフォルトの名無しさん:2011/06/03(金) 10:59:43.23
>>72
先輩の総理大臣にでも聞けよ

99 :デフォルトの名無しさん:2011/06/03(金) 11:06:04.08
質問です。

mainClassである

public class main {

}
があり、

別クラスに
public class sub {

100 :デフォルトの名無しさん:2011/06/03(金) 11:08:09.82
途中押しにorz

mainClassである
public class main {
}
があり、

別クラスに
public class sub {
}

があった場合、class subの変数データをclass mainに持ってきたい場合
どうすれば良いのでしょうか?

継承に関しては、main / subともに違うものを継承しているためextendsは出来ない状態です。

public int getVal() {
return val;
}
といったゲッター?をclass sub 内に作ればいいのだと思うのですが
それをmainからの呼び出し方法が分からないorz

101 :デフォルトの名無しさん:2011/06/03(金) 11:17:32.93
ごめん自己解決した

mainのほうで、new
して.で取り出せた(´・ω・`)

102 : ◆mqYi3P8KvrvX :2011/06/03(金) 11:40:43.75
>>94
ありがとうございます。
Main(mainがあるスタートクラス)をパッケージに入れる事はできるのでしょうか。

jmEditorで"C:\\Java\\jdk1.6.0_17\\bin\\javac.exe " + edi.FileName;
と与えてコンパイルしていて(edi.FileNameはMain.javaのフルパスになる)
そのMainの位置と比べてフォルダが奥ならパッケージに入れられますが、
Mainだけは出来ないと思っていました。

103 :デフォルトの名無しさん:2011/06/03(金) 12:14:04.17
>>102
クラスパスについて調べるといい
CLASSPATH環境変数は使わずに-classpath又は-cpオプションを使って設定する
あと、Main.javaのnumはpublicにするかgetterメソッドを定義しないといけない

104 :デフォルトの名無しさん:2011/06/03(金) 12:58:19.90
public class Main {
Sub sub = new Sub();
int a = sub.getX();
}
public class Sub {
int x;
private int getX(){
 return x;
}
}
これでも取り出せるよ

105 :デフォルトの名無しさん:2011/06/03(金) 13:08:57.85
private int getX

106 :デフォルトの名無しさん:2011/06/03(金) 13:14:08.68
いいだろ

107 :デフォルトの名無しさん:2011/06/03(金) 13:20:11.15
>publicクラスはひとつのソースファイルにつきひとつと決められている。

これか

108 :デフォルトの名無しさん:2011/06/03(金) 14:07:33.91
ググって勉強してると、いろいろな描き方があって混乱するなあ。統一しろよw

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 王道?
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) これも結構多い
WindowAdapter.windowClosing()をaddWindowListener() 一番面倒w

ttp://download.oracle.com/javase/tutorial/uiswing/start/index.html
Lesson: Getting Started with Swing

ここが一番まとも?

109 :デフォルトの名無しさん:2011/06/03(金) 15:13:27.36
むかしはaddListenerしかなかったから。それだけ

110 :デフォルトの名無しさん:2011/06/03(金) 15:31:21.35
>>25
JAVAのデバッグアクセス機能を使ってスタックにアクセスするしかないんじゃない?

111 :デフォルトの名無しさん:2011/06/03(金) 15:55:53.13
>>108 それぞれ役割が違う。

112 :デフォルトの名無しさん:2011/06/03(金) 16:07:23.92
MultipartEntity.addPartにて画像を送信したいのですが、
メモリ上に作成したbyte配列を送信する方法がわかりません。
FileBody fileBody = new FileBody(???);
MultipartEntity.addPart("file", fileBody);
の(???)中にどのようにすればbyte配列を指定できるかご教授お願いいたします。

113 :デフォルトの名無しさん:2011/06/03(金) 16:12:42.26
Javadoc読んだらByteArrayBodyとかあるんだけど。

114 :デフォルトの名無しさん:2011/06/03(金) 16:23:05.83
>>133
ありがとうございます。
ByteArrayBodyで解決できそうです!

115 :デフォルトの名無しさん:2011/06/03(金) 21:18:54.13
クラス設計について

よく説明されていないところが多いんだが、
さてどんなクラス設計が正しいんだろうか?

ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1240923307
ttp://oshiete.goo.ne.jp/qa/1425727.html
ttp://www.aerith.net/design/class-j.html#class_design

このあたりを含めて、ほとんど言及されていないのが、セキュリティ。
んで、

俺のとりあえずの結論は、

クラス設計とは、
ライブラリと再利用を区別しつつ、Need To Knowの方針で作っていく隠蔽作業

だと思うんだが、どう思う?

116 :デフォルトの名無しさん:2011/06/03(金) 21:46:06.89
お前には class MyProgram がお似合い

117 :デフォルトの名無しさん:2011/06/03(金) 21:55:13.41
jsoupでhtml(4.01)を書き換えて出力しているのですが、
空要素がすべてxhtml仕様(<br />等)に変換されてしまいます。
これをhtml4.01仕様のまま出力できないでしょうか
設定できるのかなと思いjavadocも読んだのですが
(英語力不足かもしれませんが)それらしき所が見当たらないです

118 :デフォルトの名無しさん:2011/06/04(土) 00:09:51.17
>>115
お前にはチンチンがお似合いw

119 : ◆mqYi3P8KvrvX :2011/06/04(土) 01:20:38.27
>>103-105
ありがとうございます。
試してみたいと思います。

120 :デフォルトの名無しさん:2011/06/04(土) 01:34:34.86
>>118
>>116

うんまあ、プログラマーにはメモリを意識して書いている人が少ないってのは、
このレスで大いに感じられるね。
レベルが低いのに、わざわざ、そんなことしなくても。。。

121 :デフォルトの名無しさん:2011/06/04(土) 02:00:50.00
メモリ管理ができたらこんな低能専用言語使いません><

122 :デフォルトの名無しさん:2011/06/04(土) 02:47:18.46
>>120
お前にはチンチンがお似合いw

123 :デフォルトの名無しさん:2011/06/04(土) 08:36:28.91
ここで聞くべきなのかわからんけど質問。
PDF帳票ウェブアプリ作成中、ほぼできている。
itextライブラリ使う。で、最近知ったのだけど、最新の5系はAGPLライセンス、一個前の2系ははLGPLライセンスだとか。
…やっぱり2系使うべきかな。
一応5系版と2系版と両方作ってる。


124 :デフォルトの名無しさん:2011/06/04(土) 13:21:08.10
迷うぐらいならどっちでもいいってことでしょ

125 :デフォルトの名無しさん:2011/06/04(土) 13:33:06.79
CLASSPATHについての質問があります。

自分の作った実行ファイルをjavaコマンドで実行するときは、カレントディレクトリを
クラスパスに含めれば実行できます。

しかし、本やネットをみていると、必要な.jarファイルがあるときは、その.jarファイルを
クラスパスに含めています。このファイルがあるディレクトリをクラスパスに含めるのでは駄目なんでしょうか?

パスの場合、binディレクトリを指定するとその中のコマンドが全部使えるみたいなんですが・・

126 :デフォルトの名無しさん:2011/06/04(土) 13:51:51.69
>>124
まあ、そうなのかもしれんけど、itext AGPLでぐぐってみるとそれが問題5避けてる人もいるようなんだよな。
うちの会社にそんなもんに詳しい奴がいるわけもなく、
(上司に相談しようとしたら、ライセンス?何か問題っと言われた、ガクッ。)
今日一日考えこんでるが、不安要素を排除するなら2の方かなってのに傾きつつある…。


127 :デフォルトの名無しさん:2011/06/04(土) 13:53:16.59
>>126
問題5避けてる→問題で5避けてる

連投すまぬ

128 : 【東電 75.5 %】 :2011/06/04(土) 14:00:29.84
>>125
> しかし、本やネットをみていると、必要な.jarファイルがあるときは、その.jarファイルを
> クラスパスに含めています。このファイルがあるディレクトリをクラスパスに含めるのでは駄目なんでしょうか?
>
だめ。
クラスパスはクラスファイルを探しに行く場所を教えるもの。
jarの中にあるならjarを指定しないと。

129 :デフォルトの名無しさん:2011/06/04(土) 15:11:22.51
>>125
Java6ではクラスパスにワイルドカードが使えるからそれを使っても良い
ただし注意点があるから詳細はググって調べて

130 :デフォルトの名無しさん:2011/06/04(土) 17:30:07.19
多数のファイルからなるプログラムを扱っているのですが、
各ファイルが関係している(インクルード・関数コールされているetc...)もの同士
を"線"などで視覚的に確認できるツールを探しています。

131 :デフォルトの名無しさん:2011/06/04(土) 20:45:50.40
>>130 ispaceとかeclipseで。

132 :デフォルトの名無しさん:2011/06/04(土) 22:37:19.96
>>130
意味は解るけど、何でそんなことしたいの?
目的によってはツール使うより手っ取り早い方法があるかもよ。>>33みたいな方法とか。

133 : 【東電 74.2 %】 :2011/06/04(土) 23:03:59.63
>>130
こんなの?
http://www.syboos.jp/eclispe/bookmark/detail/relo.html

134 :130:2011/06/05(日) 00:00:27.85
>>131-133
返信ありがとうございます。
紹介されたものについて、調べてみます。

このようなツールを探している理由ですが、
とある関数でバグが発見された場合に、
どのファイルに影響するかを即座に視認したいためです。

※検索で追っていけばいいのですが、量が膨大になると解りにくいので今回のようなツールを探していました。


135 :デフォルトの名無しさん:2011/06/05(日) 00:09:38.76
javaだとクラスをあちこちで使い回して影響大きく成るから、ツール使っても膨大に成りすぎて置い描けるの大変だと思うけどなw
mainメゾットとかコンストラクタでミスってると影響が大規模に成ると思うよ。

136 :デフォルトの名無しさん:2011/06/05(日) 00:18:33.76
メゾットって書くくらいだからいつも影響大のミスしてるんだろうなw

137 :デフォルトの名無しさん:2011/06/05(日) 00:34:15.84
リゾットみたいで美味しそう>メゾット


138 : 忍法帖【Lv=2,xxxP】 :2011/06/05(日) 01:07:02.66
>>134
何かを継承してオーバーライドしている場合は、はっきり言って完全な依存性を見つけることは無理。
コンストラクタを一時的にprivateにしてエラーが起きた場所を探すのが関の山。
何もオーバーライドしてないのであれば、>>33の方法が手っ取り早い。

139 :デフォルトの名無しさん:2011/06/05(日) 03:07:31.41
Rhinoのjava側の質問です。genericなクラスをRhinoで使いたいです。リフレクションを
使えばできるかもと思っていますがweb上にいいサンプルがないようです。
どなたか簡単なサンプルを教えていただけないでしょうか?

140 :デフォルトの名無しさん:2011/06/05(日) 03:17:44.98
>>139
ようしらんけど、genericsなクラスなら<>引数省くとObject型なるんだから
それ使えばいいんじゃねぇの?

141 :デフォルトの名無しさん:2011/06/05(日) 03:48:15.69
Main ┳Count ┳ Data
    ┗Show ┛

MainクラスからCount、Showクラスのメソッドを呼び出し、
Count、ShowクラスからDataクラスの変数を扱う場合、
アクセスレベルなどはどうするのがいいでしょうか。

思いつくやり方だと、MainでCount、Show、Dataをnewし、
Count、Showメソッドを呼び出す時にDataを引数で渡す方法ですが、
あまりスマートな感じがしません。

Mainからは直接Dataの変数を扱わないので、
Count、ShowでDataをnewできればいいのですが、
2箇所でnewすると別々のデータになり、データを共有できません。

142 :デフォルトの名無しさん:2011/06/05(日) 04:05:20.87
最適化の問題で可読性を犠牲にしてでも処理を早くするには

・シフト演算を使う
・final使う
・コレクションクラスの動的変化を抑える
・ヒープ領域へのアクセスを減らす
・オブジェクトの生成は極力ループ内

の他になんかありますかね

143 :デフォルトの名無しさん:2011/06/05(日) 04:14:31.41
オブジェクトを作らない

144 :デフォルトの名無しさん:2011/06/05(日) 04:16:59.13
見直したらオブジェクトの生成がループ内とかアホやな。外ですね

オブジェクト作らないってその縛りきつすぎるんですが

145 :デフォルトの名無しさん:2011/06/05(日) 04:53:54.38
小手先なことをやるとVMの最適化が阻害される


146 :デフォルトの名無しさん:2011/06/05(日) 05:17:58.01
並行処理する

147 :デフォルトの名無しさん:2011/06/05(日) 05:54:30.18
>>141
書いたとおりの事を実現しようとすると、Mainクラスの中にCountとShowクラスを書く。
そしてMainクラスのフィールドにDataのオブジェクトを持たせる。

まぁ、CountとShowをControl,Viewの形で切り出せないしロクな作りじゃ無いけどな。

>>142
最初から使用するメモリーを全て確保し、スタックフレームを構成する。
特に線形代数は飛躍的に速度が伸びる。

148 :デフォルトの名無しさん:2011/06/05(日) 08:49:17.49
>>141
DIとか使ってDataをSingletonにしてCountとShowで呼び出す
CountをObservable、ShowをObserverにしてDataの変更を通知する仕組みにする
とかそんな感じかな?小さいプログラムなら大袈裟だから、適当でいいと思うけど

149 :デフォルトの名無しさん:2011/06/05(日) 10:06:22.67
>>142
あと、static使うとか?実際、最近のマシン早いからよっぽど酷い実装しない限りはあんまり気にはならないけどさ。
何万件単位のバッチとかなら別だが。だから早くしようとする気が起こらずグダグダなものになっていく…

150 :デフォルトの名無しさん:2011/06/05(日) 10:10:19.31
>>142
例外処理

151 :デフォルトの名無しさん:2011/06/05(日) 12:05:24.80
>>142
そういう小手先の最適化は、いらない
書きやすい読みやすい最適化ならいいけど コードが長くなるならやんないほうがいい

それよりも、ボトルネックをちゃんと見極めて、
そこを調整することのほうが大事

152 :141:2011/06/05(日) 12:19:39.53
>>147>>148
ありがとうございます。
それらのやり方を試してみたいと思います。

153 :デフォルトの名無しさん:2011/06/05(日) 12:27:43.85
ボトルネックを充分に潰して更にパフォーマンスを上げたくても、そういう小手先まで踏み込むのは考えないほうがいいの?

メモリ管理のほうは自分で確保して使ったほうが面倒だけどやっぱりパフォーマンスいいのか。
標準実装されてるのは汎用的なメモリ管理手法だろうから当然の結果だろうけど。

154 :デフォルトの名無しさん:2011/06/05(日) 12:48:56.94
>>153
たとえば、ネットワークがからむ部分で、最適化だなんだっていっても、
結局、出て行くネットワークストリームは、IP層ではバラバラにパケット
は分割されて、必死に最適化する人間にとっては途方もない無駄な処理が
ルーターでなされる(笑)

そういうシーンでギリギリの最適化など片腹痛い

155 :デフォルトの名無しさん:2011/06/05(日) 12:51:45.41
>>153
「コードが長くなるなら」って前提抜きにしてるのはなんで?

156 :デフォルトの名無しさん:2011/06/05(日) 12:55:56.68
少しでも短く、読みやすく、少ないクラス数で必要な機能を実装するべきだ。
クラス、メソッドは有限の希少な資源である。あればあるだけ管理コストが増す。
無駄なアクセサメソッドだらけのクラスはどんどん削除せよ!

157 :デフォルトの名無しさん:2011/06/05(日) 12:59:49.40
goto

158 :デフォルトの名無しさん:2011/06/05(日) 13:02:57.28
>>153
プロジェクトでは基本ある程度のパフォーマンス目標たてて、
それなりの結果が出たらあんまりそれ以上のパフォーマンス追求などしないんじゃないか?
よっぽど酷いコード(昔引き継いだStringでnewしまくりコードとか)でも最近の性能だとそんなにネックにならないほどだし。
(さすがにあれだけは直したいが…)
大量処理バッチでもない限りはそこまでは気を使わないことが多いんじゃ?。
後のメンテしやすさの方が何百倍も大切だって。
もっとも、俺のコードが他人がメンテしやすいとはいまだにあんまりあまり思わんけど。



159 :デフォルトの名無しさん:2011/06/05(日) 13:04:20.06
そもそも、javaそのものはトリッキーな高速化はあんまり出来ない気が。。。
C/C++ならトリッキーで見にくい代わりに速いコードも書けるけど


160 :デフォルトの名無しさん:2011/06/05(日) 13:08:55.99
最適化とかいうなら、そもそも

int getFoo() {
return foo;
}

みたいなのもメソッド呼び出しコストとかであんまりよくないんだろうけど、
さすがに Java の API がみんなちゃんとアクセサメソッドを
通じて値にアクセスするのに、身内のコードだけ直アクセスは格好悪いw
だから、これくらいはいいだろう

161 :デフォルトの名無しさん:2011/06/05(日) 14:00:59.36
>>160
それだけだと大抵はJITでインライン化されるから最適化する価値ほとんどないぞ。

162 :デフォルトの名無しさん:2011/06/05(日) 14:25:22.97
事前にjitで機械語に変換済みのものを実行時にロードするだけにしたほうが速いのにね。
毎回jitしてるのって馬鹿みたい。

163 :デフォルトの名無しさん:2011/06/05(日) 14:58:05.83
事前コンパイルは実行時より最適化するための情報減るからなぁ。
例えば>>160のでgetFooがオーバーライドされる可能性消せないとインライン展開されなかったりするし。

164 :デフォルトの名無しさん:2011/06/05(日) 15:10:26.53
みなさんたくさんの情報どうも。

初心者なんで小手先の最適化(笑)しかできないんで勉強になりました。

165 :デフォルトの名無しさん:2011/06/05(日) 15:11:45.58
良いか悪いかは別にして・・・

パフォーマンスに関係は無いと思って
if 文で書けるところを極力 switch 文で書いている。

可読性が極端に上がるような。


てか、昔
if( a && b && c && d && e && d && f && g || h ) { ...
} else { ..... }

とか、

if( ){ if () { if () { if () { if () { if () {}

見たいなアフォなコードを書きまくられて、
デバッグも分けワカメ状態。

166 :デフォルトの名無しさん:2011/06/05(日) 15:29:49.53
JAVAでbyte型の動的配列の確保ってどうやってやるんですか?

167 :デフォルトの名無しさん:2011/06/05(日) 15:41:07.03
動的配列っつか、可変長配列はないな。
標準ライブラリだけでやるならByteArrayOutputStreamあたりで代用するしか。

動的に確保された配列だったらnew byte[1024] とか。

168 :166:2011/06/05(日) 15:54:04.10
>>167
可変長の配列の確保は無いとは・・・
どうにかByteArrayOutputStreamで対応できないか、プログラムを書き直して見ます。
レスありがとうございました。

169 :デフォルトの名無しさん:2011/06/05(日) 16:00:33.71
>>142
http://adgjm.net/its/java/pa.htm
これ全部実践してみれば?周りからは死ねって言われると思うけど。

ところで
> オブジェクトの生成は極力ループ内
って都市伝説としても聞いたこと無いんだけど、どういう理屈で速くなるの?


170 :デフォルトの名無しさん:2011/06/05(日) 16:02:28.00
>>168
List<>とかと組み合わせてて使ったらいいやん

171 :デフォルトの名無しさん:2011/06/05(日) 16:12:56.60
>>169
ループ外、の間違いなんじゃね?

172 :166:2011/06/05(日) 16:31:21.71
>>170
ラップしても試してみたのですが、上手くいかず他に方法はないかと思い、ここで質問してみたんです。
やったことに関しても書くべきでした、すいません。

173 :デフォルトの名無しさん:2011/06/05(日) 17:42:19.57
>>169
>>144

174 :デフォルトの名無しさん:2011/06/05(日) 18:12:17.58
ソートのプログラムを作成中分からないことが出てきたので質問です。

class A{
int a,b,c;
}
class B{
int a,b,c;
void getvalue(int a,int b,int c){
this.a = a;
this.b = b;
this.c = c;
}
}


175 :174:2011/06/05(日) 18:19:46.06
MAIN内

A、Bを宣言、Aの中身をいじる。
for(int i=0;i<MAX;i++){b[i].getvalue(a[i].a,a[i].b,a[i].c);}
for(int i=0;i<MAX;i++){(クラスA内のaの変数を元にソート)}



176 :174:2011/06/05(日) 18:23:12.76
この場合、Bに渡されたのはAのアドレス値でBをソートするとAの中身も変わってしまいますよね?
ソートによってもとのデータを変更されるのを防ぎたいのですが、調べたところオブジェクトは参照のアドレス渡ししかできないようなことが書いてあったので手詰まり状態です。
オブジェクトの値渡しをするにはどうすればいいのでしょうか?
忍法帖うぜぇ

177 :デフォルトの名無しさん:2011/06/05(日) 18:24:48.86
このような場合、直接値をいじるのではなく、結果をコピーして返す方法を取る。

178 :デフォルトの名無しさん:2011/06/05(日) 18:30:04.05
というかよく読んでなかった。
そのコードだったら、値が渡されると思う。

179 :デフォルトの名無しさん:2011/06/05(日) 18:53:36.84
オブジェクトの参照の値渡し!(キリッ
というか、プリミティブはオブジェクトではない

180 :デフォルトの名無しさん:2011/06/05(日) 19:08:35.43
>>176
> Bに渡されたのはAのアドレス値で
a, b, c の何れかがアドレス値でなければNO。

> BをソートするとAの中身も変わってしまいますよね?
A[] a; B[] b; a == b が成立しないなら変わらない。

181 :デフォルトの名無しさん:2011/06/05(日) 19:37:10.36
>>173
さんくす

182 :デフォルトの名無しさん:2011/06/05(日) 20:42:40.47
オブジェクトの参照の値渡しを世間では参照渡しと呼ぶ

183 :デフォルトの名無しさん:2011/06/05(日) 20:45:19.33
世間が狭いんだな

184 :デフォルトの名無しさん:2011/06/05(日) 20:48:24.45
参照渡しと言えば、C++の参照や.net系言語のoutだろ。
Delphiやら他の言語でも参照と言えば大概その系統のものを言う。
制限付きのポインターを参照と言ってるのはJava系統の言語ぐらい。

185 :174:2011/06/05(日) 21:04:43.41
>>177,178,179,180
ありがとうございます。
ソースとは全然関係のないところのバグでした・・・orz

186 :デフォルトの名無しさん:2011/06/06(月) 12:26:56.54
最適化の話が出てたんで便乗してソース見てもらっても大丈夫かな?

進化計算とやらで遺伝アルゴリズム書いたんだがもっとうまくできそうなんでアドバイスをもらいたい。

187 :デフォルトの名無しさん:2011/06/06(月) 14:31:08.08
出来るだけ少ないクラス数でプログラムするって
オブジェクト指向に反してないか?
無駄なクラスを作らないって意味なら良いんだけど

188 :デフォルトの名無しさん:2011/06/06(月) 17:59:30.56
JavaでGUIのふるいチュートリアル(Sunにあったやつ)の日本語版みたいんだけど、
もうないのかな・・・

知ってる人いたら、教えてくださいm(_ _)m

189 :デフォルトの名無しさん:2011/06/06(月) 18:26:12.98
>>186
そんなもんCみたいに書けばいいよ
遺伝アルゴリズムクラス作って入出力のインターフェイスはしっかりカプセル化
でもそのクラスの中では割り切ってオブジェクト指向とか無視でおk
数値計算なんかで本質的なアルゴリズムの部分にオブジェクト指向持ち込むと
設計も実装も面倒だし後で変更しにくいし最適化もしにくいし

190 :デフォルトの名無しさん:2011/06/06(月) 19:42:32.00
汎用化するよりも条件固定したほうが最適化効くからなあ。
ほとんど継承されることのないクラスが出来上がるw

191 : 忍法帖【Lv=3,xxxP】 :2011/06/06(月) 20:18:22.05
スレチかもしれませんがAndroidスレが消化されたためここで質問させて頂きます。
一つのTextViewに大きい文字列を入れ改行をし、
小さい文字列を入れたいのですがどういう考えをすればいいでしょうか。
Stringの文字列自体にフォントサイズの情報を入れることってできましたっけ?

192 :デフォルトの名無しさん:2011/06/06(月) 21:34:09.56
for (int i = 1; i <= 10; i++){
sum += i;


この文の「+=」の演算子の意味って何でしたっけ?

193 :デフォルトの名無しさん:2011/06/06(月) 21:47:29.68
sum = sum + i;

194 :デフォルトの名無しさん:2011/06/06(月) 21:50:28.16
>>193
サンクスコ

195 :デフォルトの名無しさん:2011/06/07(火) 02:28:31.25
>>192
個人的には・・・

どーせ最適化されるんだから、
sum = sum + i;
って書いておいたほうが分かりやすいような。

sum ++;

ならまだしも、

196 :デフォルトの名無しさん:2011/06/07(火) 08:53:27.45
おバカな外人に困ってます。

int a = 10;
int b;
b = a / 3 * 3;

これをバカな外人が「clean up」と称して b = a; と書き換えてしまうのです。
b が 10 ではなく 9 になる、ってことを外人に教えたいんですけど
javaの仕様として公式にアナウンスしているページを教えてください。
外人に「read this. http://〜〜〜」って言ってやれば説明する手間が省けますもん。

197 :デフォルトの名無しさん:2011/06/07(火) 09:03:43.07
>>196
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.17.3
> The remainder operation for operands that are integers
> after binary numeric promotion (§5.6.2) produces
> a result value such that (a/b)*b+(a%b) is equal to a.

この辺かな

198 :デフォルトの名無しさん:2011/06/07(火) 09:13:05.16
>>196
かんなおと

199 :デフォルトの名無しさん:2011/06/07(火) 09:39:14.99
import java.lang.Math;

public class NewtonMethod {
public static void main(String args[]){
double x = 0.785;
while (true){
double x2 = x * 2;
double xN = x - (Math.cos(x2) - x2 + 1)/(- 2 * Math.sin(x2) - 2);
if (xN >= x){
break;
}
x = xN;
}
System.out.println(x);
}
}

これを複数のクラスにするにはどうしたらいいんですか?



200 :デフォルトの名無しさん:2011/06/07(火) 10:21:18.13
OracleJREとOpenJREの同じjavaバージョンで、xml関連の処理で動く動かないの差があります。

そもそも、Oracle問わずJREと言われる範囲はjava.*javax.*のパッケージで、org.*はオプションで入ってるからJREの仕様ではないということでしょうか。

201 :デフォルトの名無しさん:2011/06/07(火) 14:32:07.20
オラクルのサポート受けたいだけならオラクルに連絡しないと。

202 :デフォルトの名無しさん:2011/06/07(火) 16:47:23.83
>>199
複数のクラスに分ける

203 :デフォルトの名無しさん:2011/06/07(火) 17:55:38.30
動的に作成したlistViewを他のボタン等が押された時に、画像やテキストを変えたいのですがどうすればいいのでしょうか。

listView自体をタップした時はsetOnItemClickListenerに処理を書いて、
onItemClickの引数のparent,view,positionでgetItemAtPositionを使えば押された部分のリストを処理できますが、
ボタンなどを押された時の処理でlistView.getItemAtPosition(x)として、xが1だろうが2だろうがlistViewの0番目を処理してしまいます。

204 :デフォルトの名無しさん:2011/06/07(火) 17:57:12.82
すいませんandroid質問スレと間違えましたので無視してください。


205 :デフォルトの名無しさん:2011/06/07(火) 20:07:08.82
Java(tm)plug-in 2 SSV Helper
ってなんの為にあるの?

206 :デフォルトの名無しさん:2011/06/07(火) 20:22:03.66
JDBCについて質問です。
必ず一件以上のレコードが格納されている筈のResultSetオブジェクトがあるのですが、
そのオブジェクトのgetRowsメソッドを呼ぶと結果として0が返ってきます。
どうしてこうなるのでしょうか?

207 :デフォルトの名無しさん:2011/06/07(火) 21:19:41.00
>>206
RsultSetに、1件以上格納されていることをどうやって確認したのでしょう?

208 :デフォルトの名無しさん:2011/06/07(火) 21:25:55.54
>>206
getRowsなんてメソッドないぞ
getRowメソッドのことだとして

getRowは現在行だからnextして現在のポジションが取れるだけ
行数がほしいならlastしてからgetRowすれば取れるけど
ふつーは件数取得するクエリは別で流すかな

209 :デフォルトの名無しさん:2011/06/07(火) 23:37:07.77
JavaMail ( javax.mail.* ) は、自由に使用して良いものですか?
商用目的で Servlet に組み込んだ場合、ライセンス違反となりますか?

210 :デフォルトの名無しさん:2011/06/08(水) 00:27:11.89
JavaMail のライセンスを読むと、

> 3. Permitted Use.



> Commercial Use.
> You may use Software internally for your own commercial purposes.

と書かれており、商用利用も可能なように思いましたが・・・どうでしょうか?

211 :デフォルトの名無しさん:2011/06/08(水) 02:37:39.85
>>129
知らんかった…てか前方互換気にしてか、他所のプロダクトでも
そんなの見たことないな…

212 :デフォルトの名無しさん:2011/06/08(水) 09:48:26.72
class.getResourceAsStreamのストリームはクローズしなくても良いのでしょうか?

213 :デフォルトの名無しさん:2011/06/08(水) 10:03:08.71
してね

214 :デフォルトの名無しさん:2011/06/08(水) 12:00:38.67
>>213
これってメモリ系Streamじゃないの?

215 : 【東電 80.2 %】 :2011/06/08(水) 12:27:04.58
>>214
ファイルをクラスローダーが知るクラスパスから探して開くもの

216 :デフォルトの名無しさん:2011/06/08(水) 13:45:27.43
eclipseにスナップショットみたいな機能は無いの?

217 :デフォルトの名無しさん:2011/06/08(水) 14:01:34.57
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1238911707/
【日本語不自由】Eclipse Pleiades プラグイン
http://hibari.2ch.net/test/read.cgi/tech/1292073293/
emacsでeclipseと同等の開発環境は作れるのか?

218 :デフォルトの名無しさん:2011/06/08(水) 18:07:55.44
本屋さんで、JavaScriptがJavaコーナーに並んでいると、HTMLとかのWeb製作のコーナーに
直してしまうよね(´・ω・`)

219 :デフォルトの名無しさん:2011/06/08(水) 18:18:58.51
何病だよ?

220 :デフォルトの名無しさん:2011/06/08(水) 18:47:50.15
俺のブレークポイント設定方法www

int a=1/0;

221 :デフォルトの名無しさん:2011/06/08(水) 19:37:40.28
>>218
やっちゃうなぁ。。。
javaとjavaScriptは別だ!!!ってのも在るけど、自分は本好き故の職業病(職業本屋じゃ無いのにw)


222 :デフォルトの名無しさん:2011/06/08(水) 19:49:51.80
>>221
業務妨害罪で逮捕

223 :デフォルトの名無しさん:2011/06/08(水) 20:01:50.83
>>218
気持ちわかる
おいらハード本業だから verilog や VHDL の本が C とかの棚に置かれてると
置きなおしたくなる

224 :デフォルトの名無しさん:2011/06/08(水) 20:15:56.53
ある文字列がメールアドレスの書式として正しいことをチェックしてくれる標準メソッドはありませんか?
存在しない場合、メールアドレスの書式として正しいか確認するための正規表現を教えてくださいですm(__)m。
自前で書いてみたのですが、次から次に漏れるメールアドレスが出てきて、涙目状態です。

225 :デフォルトの名無しさん:2011/06/08(水) 20:20:42.72
boolean String#isMailAddress(String s)


226 :デフォルトの名無しさん:2011/06/08(水) 20:27:10.04
>>225
おお!凄い!
ありがとうございます!

227 :デフォルトの名無しさん:2011/06/08(水) 20:52:41.41
>>222
むしろ、しっかり業務果たせと言いたい


228 :デフォルトの名無しさん:2011/06/08(水) 22:25:31.93
JAXBで質問です。

abstract class Fruit{...}
class Apple extends Fruit{...}
class Orange extends Fruit{...}

class FruitPair{
 Fruit fruitA;
 Fruit fruitB;
}

で、このFruitPairと言うコンテナクラスを次のようなXMLに
marshall、unmarshallしたいのです。
<fruitPair>
 <fruitA><apple>...</apple></fruitA>
 <fruitB><orange>...</orange></fruitB>
</fruitPair>

次のように子要素を<fruitA>, <fruitB>でラップしないのであれば
@XmlElementRefを使えば出来るのですが、簡単にラップするには
どうすれば良いのでしょうか。
<fruitPair>
 <apple>...</apple>
 <orange>...</orange>
</fruitPair>

あとFruitについてはinterfaceだと上手く@XmlElementRefが動かない
のでabstract classにしているのですが、これもinterfaceにする方法は
無いでしょうか?

229 :デフォルトの名無しさん:2011/06/08(水) 23:41:50.01
教えてください

ExecutorServiceについてですが、一旦shutdown()したインスタンスは再利用不可なのでしょうか?


230 :デフォルトの名無しさん:2011/06/08(水) 23:58:52.12
void shutdown()

順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。シャットダウン後に呼び出しを実行しても、効果はありません。

231 :デフォルトの名無しさん:2011/06/09(木) 00:06:40.96
えと、shutdownしたらexecute等で新規タスクを実行できなくなるのは理解しているのですが、
その後、なんらかの方法で再度タスク実行可能状態に復帰できるかどうかが知りたいのです。

当方が調べた限り、方法はなさそうでした。
shutdown要求から、実際に処理が完了するまで間があるので、再利用は考慮されていないのでしょうかね?

232 :デフォルトの名無しさん:2011/06/09(木) 02:43:55.66
shutdownを呼んだからといって、実行中のタスクが即座に終了されるわけではないから、
そのタスクが走っている間に、一度shutdownしたExecutorServiceをshutdownしていない状態にできないかってこと?
それをやる意味がよくわからないけど。

233 :デフォルトの名無しさん:2011/06/09(木) 03:11:58.20
>>186
コードは?

234 :デフォルトの名無しさん:2011/06/09(木) 03:14:36.41
>>224
commons の validatorのソース見てみるとか(ちゃんとチェックしてんのかは知らん)、
他にもサンプルゴロゴロしてるだろ…

235 :デフォルトの名無しさん:2011/06/09(木) 03:15:38.78
>>216
君の考えてるスナップショットってのがどういう機能かわからんが
ローカルで履歴管理はしてる。

236 :デフォルトの名無しさん:2011/06/09(木) 03:33:29.06
FreeBSDでJavaやろうと思うんだけど
OracleJDKかOpenJDKのどっちか入れたいんだけど
何か違いに関する注意点とかあったらおせーて

237 :デフォルトの名無しさん:2011/06/09(木) 04:42:55.85
オラクルのサポートが必要かどうか程度。
オラクル公式対応してるのか。とはいえweblogicもoracledbも対応してなさ層だからマク並に意味無さそうだけど。

238 :デフォルトの名無しさん:2011/06/09(木) 06:46:45.05
>>218
wwwww
スレ違い本ネタだが、

昔Windowsの棚にTRONの本が何冊か並んでる事があってな、
その中に一冊だけパーセプトロンの理論の本がまじっとったんじゃ。

どうしたものかとwwww

239 :デフォルトの名無しさん:2011/06/09(木) 08:35:41.08
>>232
わかりにくくてすみません
やりたいのは、ExecutorServiceに複数タスクをexecute後、awaitterminationで全タスク
完了まで待機
→全タスク完了後、次の複数タスクをexecute、全完了待機を繰り返すことです。

この場合、awaitterminationのため、ExecutorServiceをshutdownする必要があるのですが、
ExecutorServiceは使いまわししたいなぁということです。


240 :デフォルトの名無しさん:2011/06/09(木) 10:17:03.13
>>236
いやぜんぜん違う。
xmlの使用されるパーサーが違ったりとか、バンドルされてるクラスが違う。
以前xmlのドキュメントをシリアライズで送ったら、違うOSでそのクラスがないからと行ってエラーになった。

241 :デフォルトの名無しさん:2011/06/09(木) 10:23:27.97
>>236
FreeBSDにOracleJDKってあったっけか?

242 :デフォルトの名無しさん:2011/06/09(木) 10:43:52.99
>>235
ありがとう。

いついつの何時の状態に戻す、とかの機能ってあるのかなぁ、と。

243 :デフォルトの名無しさん:2011/06/09(木) 11:42:18.59
>>242
Eclipse自体の?
それは無いんじゃないかなあ。
Eclipseディレクトリ全部をバージョン管理に突っ込むとか。

244 :デフォルトの名無しさん:2011/06/09(木) 11:50:18.78
>>237
Oracleのサポートはビジネス版じゃないと無いぞ。
>>240
そら非標準機能だからじゃないの?

>>236
がしかし、標準機能でも実際に違いはあるのでOracleJDK使っといた方が無難。

245 :デフォルトの名無しさん:2011/06/09(木) 12:21:38.15
>>239
完了待ちにshutdown&awaitTerminationを使わなくてもよいのでは?
繰り返して待つだけなら、CyclicBarrierを使うというのもいいと思う。

246 :デフォルトの名無しさん:2011/06/09(木) 12:31:38.17
柵杭問題について、質問

結果的にコードの中に-1がたくさん出てきてデバッグができなくなってきてます。
要素の数に関しては、要素の数-1を基本としてますか?要素の数を基本としてますか?


たとえば、
要素の数を数える場合は普通

int count = 0 ; //ゼロからはじめる

で数えるときは
count ++ ;   //カウント

とすると思うのですが、それを配列にそのまま突っ込むとNG

h[count] = 0 ;   // NG
h[count-1] = 0 ;  //OK

for の場合も
for(int i=1 ; i<count-1 ; i++){}  //NG
for(int i=0 ; i<count ; i++){}  //OK

配列を0からでなく、1から始めるとするなら、
for(int i=0 ; i<count ; i++){}  //NG
for(int i=1 ; i<count+1 ; i++){}  //OK

・・・で
数を数えてそれを利用し表示するケースが多々の場合は配列は1からはじめ
標準的なコード(マイナスが多く出ないとか、あまり考えなくても良い)の場合は配列は0から始めると。

結局どちらがよいのかとか、指針とか方針とか、なにかあったら教えてください。

247 :デフォルトの名無しさん:2011/06/09(木) 13:25:48.21
>>244
非標準機能の範囲の定義は?
java.*だけとか?

248 :236:2011/06/09(木) 20:55:17.43
>>237,240,244
レスありがとうございます
参考になりました

>>241
FreeBSD Java? Project: How To Install
http://www.freebsd.org/java/install.html
これに書いてあったもので

249 :デフォルトの名無しさん:2011/06/09(木) 22:40:03.85
>>246
何がいいたいのか分からんが、配列のインデックスが「0」開始は、ほとんどの言語で常識だぞ…

250 :デフォルトの名無しさん:2011/06/09(木) 22:45:13.65
>>249
たとえば、10個の配列を使いたい場合、0の配列をすてて

int h[] = new int[11]

としたほうが、アルゴリズムを組むときに分かりやすい場面が多いんじゃないかということ

251 :デフォルトの名無しさん:2011/06/09(木) 22:52:11.33
>>250
オナニーするときはそれでいいけど、
セックスの時は止めた方がいい。
混乱するだけだw

252 :デフォルトの名無しさん:2011/06/09(木) 23:07:41.02
>>251
上手い例えだなぁ。

>>250
日本だとビルの地上階は1階だけれども欧州だと0階だったりする、
その程度の違い。7階建てのビルでも欧州だと最上階は6階とか。

日本人にとっては解りにくいなぁと思っても、そういう番号付けに
慣れた現地の人にとっては全く問題は無い。むしろ勝手に日本式の
番号付けを持ち込まれるとかえって混乱する。

というわけで、郷に入れば郷に従え。世の中の大半のJavaプログラマ
は0番要素開始に慣れていると思うから、それに従った方が良いよ。

253 :デフォルトの名無しさん:2011/06/09(木) 23:09:21.91
250はprologプログラマになるべき

254 :デフォルトの名無しさん:2011/06/09(木) 23:10:14.04
VBなんかまさに>>250のような考え方だし
FortranとかCOBOLみたいに添字が1から始まる言語もけっこうあるぞ
実際書籍に載ってる擬似コードなんてほとんど添字は1からだし
数学の数式で使う添字だってほとんどがそう

255 :デフォルトの名無しさん:2011/06/09(木) 23:31:15.86
>>245
遅レスすみません。
CyclicBarrierというものがあるのですね。検討してみます。

256 :250:2011/06/10(金) 00:54:04.17
>>251
俺も上手いとおもったw

>>252
日本式かどうかは分からんけど、
0からはじめても、1からはじめても、プログラム中に+1や-1が多々出てくることには変わりない。

CのStringみたいに、10文字だけど int h[11]とせねばならないときもあるし、
0にプロパティや情報を含めたいので敢えて0をあける場合もある。

一番の問題は、配列だけを使っているときではなく、
添字に対する演算やアルゴリズムが絡んでくるとき。
この場合すべての添字の演算に+1か-1が絡んでくる
1からはじめるとそれが激減する。

その方がいい場面もあるんじゃないかと。
みんな無理して0から使っているのかなぁ。

257 :250:2011/06/10(金) 01:04:40.18
>>254
数学なんかで「実数」的に使う場合は、1からはじめないと不具合が多々でるよねぇ、
と思っているんだけど。どうなんだろ。>>253


>>253
Prologは、538kmくらい遠くに離れてると思う。

258 :デフォルトの名無しさん:2011/06/10(金) 01:14:05.71
境界条件とかを置くならまだしも、あえて0番目を無駄にして1番目から始めようとは思わないな

259 :デフォルトの名無しさん:2011/06/10(金) 01:25:19.34
Java→Native(JNI)の呼び出しで、引数に文字列領域設定して
Native側でそこに文字列設定するのってどうやるんですか?
(Native関数のポインタ渡しみたいなイメージ)
#Native側でのSetObjectArrayElementによる文字列配列渡しなら見つけたんですが。。。

260 :デフォルトの名無しさん:2011/06/10(金) 02:28:25.11
>>259
配列渡し以外の何を期待してるの?

261 :デフォルトの名無しさん:2011/06/10(金) 02:42:51.97
>>250
真面目な話すると、配列の添字ってのは、
配列先頭要素からの距離を表してる。
だから0から始まる添字は距離や位置に関する
アルゴリズムと相性がいい。
あと、数字はマイナスは無視できても、
0の状態が必要なケースが多い。
実数なんかは0〜1によく正規化される。
その関係でも、添字は0から始まる方が手間がかからなくて良い。
例えば、時間は、0時を24時で読み替える事はまず無い。
なので1時間毎の予定を配列に詰め込む場合はschedule[時]=予定で済む。

あと>>246だが
h[count++]じゃだめなのか?

262 :デフォルトの名無しさん:2011/06/10(金) 07:16:11.84
ある文章の特定の文字列に対して、
色をつけるため文字列置換(<font>タグをつける)を行っています。

内容は
大文字、小文字を区別しない
hello, Hello, heLlo全て置換

姓名の間に空白があっても置換
山田太郎, 山田 太郎の両方置換

大文字、小文字区別なしは
Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(text).replaceAll(変換文字列);
でできました。
が、空白が含まれる場合ができません。

どのように処理すればよいでしょうか?

263 :デフォルトの名無しさん:2011/06/10(金) 10:36:58.61
Calendarの月も0ベースなのは閉口した

264 :250:2011/06/10(金) 13:09:48.71
>>261
>配列先頭要素からの距離を表してる。
javaはそうかもしれないけど、
添字 0 がその配列の格納しているアドレスをさしていることもあるよね。
アルゴリズムというより、プログラム言語依存なんじゃないかな。

あと、
時計と距離は、まさに柵杭問題
特に時計は、柵杭問題の、円状になっている柵杭だから、
杭と柵の数が同じになっている。
この場合は多くの場合、+1だとか-1だとかを考慮する必要がない。

count % 12 とか count % 24とかでスマートに対応できる。

>h[count++]じゃだめなのか?
ループ無いで複数h配列を参照する場合、添字の記載が異なるのはミスを誘発するので絶対NGだと思う。

265 :250:2011/06/10(金) 13:18:32.47
>>263
0月って無いもんねぇ。
細かい話をすると、

それをいつ修正するんだ?

と言う問題に常に悩まされる。
内部処理ではずーーーと0のままで表示のタイミングで+1とするのか、

final static Shinnendo = 4: //新年度

としているのでアルゴリズムの中では+1が前提でアルゴリズムを組むのか。。。
たとえば、8月は国民の休日がないってことで

boolean isKyujitsu( int month){
  if ( month == 8 ){ return false }
  return true;
}

としなきゃならないところ、配列を0から始めるとするなら

boolean isKyujitsu( int month){
  if ( month == 7 ){ return false }
  return true;
}

これじゃ、あとでプログラムを読んだとき、
「あれ?7月って休日なかったっけ?」
みたいなシンプルな問題が発生する。

266 :デフォルトの名無しさん:2011/06/10(金) 13:26:35.89
列挙体置いといて
月 == 8月的にすればよいのでは

267 :250:2011/06/10(金) 13:40:34.35
つっこまれそうなので、念のため。

Calendar系なんかでもよくあるんだが、
配列は0で始めて、すべて月数は、−1で処理すりゃいいじゃないか、と思う人も多いと思うが、
場合によっては、「すべて0から始めるー1」で処理できないこともある。

例えばこんな関数はどうだろうか?

int nextMonth( int month, int input ) { //inputはユーザ入力
  return ( month+input ) % 12 ;
}

この際、input と言う変数には、−1された数字が入っているのか、
そのままの数字が入っているのか不明瞭。
アルゴリズムが複雑になれば、このようなケースが頻発する。
すべての変数、式に対して+1されるべきなのか、−1されるべきなのか、そのままで良いのか
全部考えにゃならん。
だったら、1から始めた方が・・・となるのもよくわかる。

268 :250:2011/06/10(金) 13:53:16.94
>>266
そりゃ、まずいと思うよ。

コードの中で月が0〜11なら、列挙型で扱うとしても
0〜11としておかないと、
どの変数のどの位置が0〜11で、どこが1〜12なのかが混乱してバグの温床になる。

269 :デフォルトの名無しさん:2011/06/10(金) 14:25:51.65
>>266
Calendar.JANUARYとちゃんと定義されとるがな

270 :デフォルトの名無しさん:2011/06/10(金) 14:27:16.07
>>267
ドキュメント書け読め、で済む話のような。

271 :デフォルトの名無しさん:2011/06/10(金) 14:42:05.64
アホスレだとは思っていたがとうとう配列の添え字までレベル落ちてきたか

272 :デフォルトの名無しさん:2011/06/10(金) 15:15:49.10
固定長の配列なんて積極的に使うものじゃないよね。
Collectionを使うよね、普通。

273 :デフォルトの名無しさん:2011/06/10(金) 15:21:25.62
おしっこ

274 :250:2011/06/10(金) 15:24:55.74
>>270
月で、
0〜11の場合、潜在的なアルゴリズムバグの可能性が大きくなる

ので、

1〜12の方があんぜんなんじゃない?と言う話。
ドキュメントを書くのはどっちでも良くて、書いても書かなくても、結局どっちが良い?って話デス

>>272
パフォーマンスが悪すぎるのと、
たとえば、13月みたいなバグが露見せず潜在的なバグとなる方が致命的だと思うけど。

275 :デフォルトの名無しさん:2011/06/10(金) 15:40:18.48
内部的には0のままがいいんじゃない?
表示するときに変換

276 :デフォルトの名無しさん:2011/06/10(金) 15:42:11.29
それが嫌だって話では

277 :デフォルトの名無しさん:2011/06/10(金) 15:49:05.58
カプセル化とはなんだったのか

278 :デフォルトの名無しさん:2011/06/10(金) 15:52:39.13
ゆとり乙

279 :デフォルトの名無しさん:2011/06/10(金) 15:59:57.52
計算するときに1足すのはいいんじゃないの?

280 :デフォルトの名無しさん:2011/06/10(金) 16:10:29.74
その例だと普通はinputは1から始まるんじゃね?その前に
javadoc書いとけ

281 :デフォルトの名無しさん:2011/06/10(金) 17:11:08.17
>>274
>>267に書いてあるような問題点なら、ドキュメント書け読めで十分だな。
CalendarならaddやrollがあるからnextMonthみたいのを
自分で作ってバグだすのって単なる間抜けとしか思えないし。

282 :デフォルトの名無しさん:2011/06/10(金) 17:12:25.17
そもそも+1 -1を忘れるだけのものをアルゴリズムバグとか阿呆すぎんだろ

283 :デフォルトの名無しさん:2011/06/10(金) 17:24:42.76
ゆとりってばかだな

284 :デフォルトの名無しさん:2011/06/10(金) 17:47:44.03
>>265
0-12までの数字に、英語読みの定数割り当てれば良いだろ


285 :デフォルトの名無しさん:2011/06/10(金) 17:51:35.30
間違えた
0-11だった


286 :デフォルトの名無しさん:2011/06/10(金) 17:54:57.17
Calendarなら既に定数定義してあるが……

287 :デフォルトの名無しさん:2011/06/10(金) 19:57:44.79
標準APIにあるのに新しく定義しちゃう人って…

というか0開始で問題になるのって具体的にどんな時なんだよ

288 :デフォルトの名無しさん:2011/06/10(金) 20:05:49.32
>>287
だから>>265なんだろ


289 :デフォルトの名無しさん:2011/06/10(金) 20:14:48.11
数値は自然数。計算するから
連番ラベルは0から。オフセットがわかりやすいから
と習った。

290 :デフォルトの名無しさん:2011/06/10(金) 20:20:55.65
>>288
if(calendar.get(MONTH) == AUGUST) return false;

でOK。

291 :250:2011/06/10(金) 22:19:32.34
>>290
ポーカーの場合、5枚目って名前を付けるのかい?

292 :デフォルトの名無しさん:2011/06/10(金) 22:29:08.95
なんだCalendarについては間違いでしたと認めるのか

293 :デフォルトの名無しさん:2011/06/10(金) 22:34:22.09
ポーカーの一枚目がhand[0]で何か問題あんの?

294 :デフォルトの名無しさん:2011/06/10(金) 23:07:25.91
頼むからJavaの話をしてくれ

295 :デフォルトの名無しさん:2011/06/10(金) 23:37:44.20
JavaFXって将来性あるの?

296 :250:2011/06/10(金) 23:48:47.28
>>292
君が最初からずれてるよ。
別段Calendarの話をしているわけじゃない。
Calendarは、柵杭問題において、ほとんど問題にならない「はず」の事例だけど、
それでも問題がおこるよね???って話だよ。

べつに、ポーカーだって麻雀だって良い。

麻雀のドラは、柵杭問題がまったく問題にはならないが、
それ以外のほとんどは、柵より杭が1つ多いって話だ。

Calendarで鬼の頭をとったと思わないように。

297 :デフォルトの名無しさん:2011/06/11(土) 00:10:24.05
ではイテレータとはなんだったのか

298 :デフォルトの名無しさん:2011/06/11(土) 00:10:55.68
>>296


299 :デフォルトの名無しさん:2011/06/11(土) 00:30:33.43
>>295
ゼロ
というかとっくに流産して終わっている

300 :デフォルトの名無しさん:2011/06/11(土) 00:33:42.03
イテレータをもっと普及させたい
拡張for文撲滅活動にさんかしないか?

301 :デフォルトの名無しさん:2011/06/11(土) 00:35:27.16
鬼は首を取るもんだ

302 :250:2011/06/11(土) 00:57:54.54
>>301
いや、首すら取れてないって意味なんだけどw

303 :デフォルトの名無しさん:2011/06/11(土) 08:30:03.09
まんこ

304 :デフォルトの名無しさん:2011/06/11(土) 09:30:39.66
ファイルの文字コードを変換するプログラムを作りたいんだけど、
一行ずつ読み込んでから、outputStreamで文字コード指定してやらないとダメ?
なにか便利なAPIは無いのかな、と。Javaで完結したいんでnkfコマンドはあんまり
使いたくない

305 :デフォルトの名無しさん:2011/06/11(土) 10:04:57.81
Reader r = new InputStreamReader(new FileInputStream("in.txt"), "EUC-JP");
Writer w = new OutputStreamWriter(new FileOutputStream("out.txt", "UTF-8"));
char[] buf = new char[999999];
int n;
while ((n = r.read(buf)) > 0) {
w.write(buf, 0, n);
}
w.close();
r.close();

306 :デフォルトの名無しさん:2011/06/11(土) 10:06:59.23
括弧まちがえた
× Writer w = new OutputStreamWriter(new FileOutputStream("out.txt", "UTF-8"));
○ Writer w = new OutputStreamWriter(new FileOutputStream("out.txt"), "UTF-8");

307 :デフォルトの名無しさん:2011/06/11(土) 11:10:27.43
メモリ取りすぎだろ・・・と思ったけど最近だとそうでもないのかね。

308 :デフォルトの名無しさん:2011/06/11(土) 11:11:58.04
おー! ありがとう!
入力には謎のファイルを読み込みたいんでEUC-JPをJISAutoDetectにしてみました――けど
これってUTF-8,16には対応してないんだね。この辺はちょっと自分で考えてみるよ

309 :デフォルトの名無しさん:2011/06/11(土) 11:33:54.85
sound APIでマイクの入力についてやってるんだけど、
マイクで録音した音声ってどうやって合成できる?
それに加え、再生するときにFloatControl.Type.MASTER_GAIN取得して音量調整しようとしても
java.lang.IllegalArgumentException: Unsupported control typeとエラー吐くんだが、対処法ってあるの?

310 :デフォルトの名無しさん:2011/06/11(土) 11:57:00.21
今更だけどその世界の常識(=言語仕様)に従えば良いんじゃね
ソース扱う人ならJavaは0-11ってみんな分かってんだから
JavaのCalendarの問題どころじゃ無い明らかに筋違いの仕様とかもあるじゃん
決めてんのは欧米人だから感覚の違いもあるんだろう

311 :デフォルトの名無しさん:2011/06/11(土) 12:01:12.99
>>295
JavaFXは299の言うとおり終わってる。
JavaFX2.0はひょっとしたら普及するかも。まだベータのはずなのでなんとも言えない。

ちなみにJavaFXとJavaFX2.0はもはや別もの。
JavaFX2.0ではスクリプトが使えなくなって、ライブラリベースになってる。


312 :デフォルトの名無しさん:2011/06/11(土) 12:05:32.87
配列の添字は、由来はアドレス計算のオフセットなんだから、
一つ目の要素が0番目なのは、すごく気持ちがいいと思ってたんだけど、
そうでもない人もいるんだな。

313 :デフォルトの名無しさん:2011/06/11(土) 12:29:08.17
JavaFXってそんなんなっちゃってたのか
知らなかった
Swingに取って代わるのか?

314 : 【東電 78.7 %】 :2011/06/11(土) 12:42:15.40
>>312
世の中なんでも1からなのに、プログラムの世界だけ0だからね。
初めてプログラム組む輩にとっては不自然で耐え難きモノかと思うよ。

315 :デフォルトの名無しさん:2011/06/11(土) 12:47:38.28
単に慣れの問題っつーだけだな。

316 :デフォルトの名無しさん:2011/06/11(土) 12:49:05.10
添字に1って書くと、元の場所から1離れた場所ってイメージだからなぁ。

317 :デフォルトの名無しさん:2011/06/11(土) 13:33:29.30
さいころ

318 :デフォルトの名無しさん:2011/06/11(土) 13:42:10.65
字面の問題と格納場所の問題は違る

319 :デフォルトの名無しさん:2011/06/11(土) 13:53:47.19
気に食わなければ、他の言語に乗り換えれば良いだけだろ


320 :デフォルトの名無しさん:2011/06/11(土) 13:57:11.20
別に添え字が0スタートだと紛らわしい場合があるよね
って話をしてるだけなのに他の言語に乗り換えろはないだろ
スレ違いってなら同意するが

321 :デフォルトの名無しさん:2011/06/11(土) 14:02:43.88
配列とか時代遅れ

322 :デフォルトの名無しさん:2011/06/11(土) 14:20:39.44
>>296

323 :デフォルトの名無しさん:2011/06/11(土) 15:39:08.15
他の言語に乗り換えるほうが手っ取り早く解決できて皆幸せだと思うが。

324 :デフォルトの名無しさん:2011/06/11(土) 16:19:06.06
>>313
SwingのスレッドとJavaFXのスレッドが別だと聞いて戦慄した

325 :デフォルトの名無しさん:2011/06/11(土) 16:21:23.82
というか今JavaFXちゅーとすでにJavaFX2.0のことで、
1.xのころのはJavaFX Scriptっていう名前に先祖返りして呼ばれてる。


326 :デフォルトの名無しさん:2011/06/11(土) 16:30:07.31
javafxの記事でよく出てくるんですけど、adobeのようなデザイナーツールって例えばどういうのを言うんですか?

327 :デフォルトの名無しさん:2011/06/11(土) 16:56:12.81
すいません。対応できないので、教えてください。
使用OS Xp Pro Sp3

java1.3.0がインストールされているようなんですが、
プログラムの追加と削除を見ても見当たりません。
このバージョンのjavaがインストールされているために、
あるサイトが正常に起動できません。
アンインストールしたいのですが、どのようにしたらよいでしょうか?

328 :デフォルトの名無しさん:2011/06/11(土) 17:05:17.88
一番確実なのはOS再インストールだな

329 :デフォルトの名無しさん:2011/06/11(土) 18:20:19.17
>>326
1.xの頃はProduction Suiteっていうのがあった。
http://download.oracle.com/javafx/1.3/reference/production-suite-install/index.html
使ったこと無いけど、IllustratorやPhotoShopのプラグインが含まれてたみたいね。
あとはNetBeans6.8(かな?)〜6.9.1にはSwingでいうところのMatisseみたいなGUIポトペタツールが含まれてた。
これも1.x用ね。


330 :デフォルトの名無しさん:2011/06/11(土) 19:30:06.75
http://www.death-note.biz/up/r/24395.jpg

これで円を塗りつぶさないで、輪郭だけを黄色くすることはできますか?

331 :デフォルトの名無しさん:2011/06/11(土) 20:05:28.08
できます

332 :デフォルトの名無しさん:2011/06/11(土) 20:15:35.44
よろしければやり方を教えてください

333 :デフォルトの名無しさん:2011/06/11(土) 20:29:55.78
それは自分で調べてください

334 :デフォルトの名無しさん:2011/06/11(土) 20:42:33.34
fillがあるならdrawもある

335 :デフォルトの名無しさん:2011/06/11(土) 20:45:07.07
>>334
おおthx!

336 :250:2011/06/11(土) 21:14:02.32
>>312
いやいや、
確かにメモリを意識すると、0からが良いんだから、
アセンブラ上がりの人とかは0じゃないと許せないんだろうけど、


これが偶数を意味するんだよ

if( a % 2 == 1 ) {}

337 :デフォルトの名無しさん:2011/06/11(土) 21:21:20.75
だからなんだというのだね

338 :250:2011/06/11(土) 21:26:39.46
これはどうだね?

ある値が偶数なら、find () 関数で得られた数字に対応する配列 h[] をもってくる、と


public class Test{
 int a;
Test ( int a ){
 this.a = a;
}

int getH( int a ){
 if ( a % 2 == 0 ) {
  return h[ Class.find (a) ] ;
}

ところが、この a 自体も別の配列 g[] を呼び出す添字になっているなら、
この a を計算するすべての場所において 実数-1ですべてを計算しなければならないよね??

339 :デフォルトの名無しさん:2011/06/11(土) 21:43:06.84
日本語でもまともに説明できない
サンプルでもマトモに説明できない

340 :デフォルトの名無しさん:2011/06/11(土) 22:10:19.87
カプセル化とはなんだったのか

341 :250:2011/06/11(土) 22:30:14.47
>>340
カプセル化の中は、0なのかい?1なのかい?って話。

基本、0から
というのであれば、隠蔽されたクラスの中でも偶数は
a % 2 == 1
だよね?????

342 :デフォルトの名無しさん:2011/06/11(土) 22:31:40.30
偶数の定義は?

343 :デフォルトの名無しさん:2011/06/11(土) 22:37:25.14
arrayの先頭が奇数アドレスであれば、index % 2 == 1 のとき
array[index]でアクセスする場所は偶数アドレスである、とか。

344 :デフォルトの名無しさん:2011/06/11(土) 22:38:30.13
カプセル化すら満足にできていないコードを出されても困るんだが

345 :デフォルトの名無しさん:2011/06/11(土) 22:39:14.63
>>343
Javaの場合はユーザ側で値型定義できないからそうなるのはbyte[]だけだな。

346 :デフォルトの名無しさん:2011/06/11(土) 22:44:52.95
カプセル化どころか問題点の指摘すら満足にできてない……

347 :デフォルトの名無しさん:2011/06/11(土) 22:55:05.21
>>296

348 :デフォルトの名無しさん:2011/06/11(土) 22:57:26.96
>>329
javafxにはデザイナーツールがないないとかよく書いてあるけど、それならjavafx 1.xのころから用意されてるんじゃないの。

349 :250:2011/06/11(土) 23:18:27.25
>>344
だ〜か〜ら〜

カプセル化で隠蔽した中身は、0ベースなの?1ベースなの?って聞いているのよん

350 :デフォルトの名無しさん:2011/06/11(土) 23:23:35.64
そんなもん自分で決めろよ

351 :デフォルトの名無しさん:2011/06/11(土) 23:38:07.44
カプセル化したんなら隠蔽した中身がどうなっていようがどうでもいいことだろう。
350が言うように実装は自分が決めればいい。

352 :デフォルトの名無しさん:2011/06/11(土) 23:42:50.29
偶数が1, 3, 5 ... だったとしてもいいじゃん

353 :デフォルトの名無しさん:2011/06/11(土) 23:47:29.13
エスパーにトライしてみる。

配列のいちばん最初が1番目として
偶数番目の要素はインデックスには奇数を使わなくてはならない。
これはオカシイ!


354 :デフォルトの名無しさん:2011/06/12(日) 00:55:06.14
自分であとから見ても理解出来無い様な実装は避けたほうがいいかと。
カレンダは別に、連想配列とかにすればいいだけな気がする。

355 :デフォルトの名無しさん:2011/06/12(日) 02:04:57.00
つか偶数奇数で何を別けたいの?
概念的に次元をもう一つ増やせば
すむだけの話だったりすんじゃね?

getH(int a) → getH(int a,int b)//bは0か1

356 :250:2011/06/12(日) 02:18:15.79
>>353
いやいや、エスパーがビンゴでございます。
念のため。

別段偶数奇数に限定しているわけでも、カレンダーに限定しているわけでも無いです。
ようは、

自然数と、0で始まる配列には1個のズレがある、ということです。
アルゴリズムを考える時に、常にマイナス1を意識しないといけないのはバグの温床では?ということです。

問題なのは、
常に意識しつつ
マイナス1をしないといけない場面と、
プラス1をしないといけない場面と、
プラマイゼロでもいい場面がある、
ということです。

表示や最終的な値に直すときに修正すればよいという考え方もありますが、
自然数で扱うと、アルゴリズムの部分は難しく考える必要がまったくなくなります。

コードバグとアルゴリズムバグの分離をしたほうが良いのでは?
という話です。

357 :デフォルトの名無しさん:2011/06/12(日) 02:24:09.76
人間の値と、PC内の値を分離してる限り悩むことはないけどな。
そもそも。index<sizeの概念が基本なんで。1から考えるときはindexじゃなく
sizeで考えとけばいいだけの話。普段からindexとsizeを身長と体重ぐらい
別概念で考えとけばいい。

358 :250:2011/06/12(日) 02:27:10.05
>>351
実際に、
その実装者の決めた内容と、
ドキュメントを読んで実装した人に齟齬があったおかげで
バグが発生するケースは今まで結構あったでしょ???

例えば
5C問題なんて有名な話。

すべてのjavadocの配列を扱う関数に、
配列は0から始まります、とか
コードはUnicodeで扱います、とか
マイナスは考慮してません、とか
0は扱えません、とか
1から始めても構いません、とか(検証を含めて)
この関数は自然数で扱います、とか、
自然数は扱えません、とか

書いている?????

359 :250:2011/06/12(日) 02:28:33.82
>>357
ああ、

いままでで2番目(ごめんなさい)にすっきりする回答だわwww
ちなみに一番目は、>>251


360 :250:2011/06/12(日) 02:33:29.01
すまん、
>>357のおかげで少し頭ん中がまとまった。
( ということは一番良いレスということかw )


1.レスは馬鹿が多かった
2.Sizeで宣言した配列に、indexでアクセスできるから問題なんだ


なるほど。

361 :デフォルトの名無しさん:2011/06/12(日) 02:39:56.14
コボルに並ぶアホ向け言語だけあってスレのレベルもなかなかのもん

362 :デフォルトの名無しさん:2011/06/12(日) 02:56:50.58
だからあれだよ。
1番目の位置にアクセスしたいなら、size==1の配列の末尾要素にアクセス
すると捉えりゃいいいんだよ。

363 :250:2011/06/12(日) 06:59:13.43
>>361-362
勘違いかな?

なんで1番目の要素が0やねん、と言っているわけじゃないことは理解できるかな?
別に、0だろうと、1だろうと構わないんだけど・・・

364 :デフォルトの名無しさん:2011/06/12(日) 09:25:32.44
学校の課題です。2時間かけましたが、できなかったので諦めてここで聞かせてもらいます。
一応、自分でオリジナルのクラスを作るという授業の課題です。

電卓のクラス 簡単な計算ができる電卓のクラス Calculator を作りなさい。下に示す
CalculatorMain クラスが正しく実行できるようなクラスにしなさい。
public class CalculatorMain{ public static void main(String argv[]){ Calculator c = <Calculator クラスのインスタンスを作成する>;
//現在の値を 0 で初期化する
c.plus(3); //現在の値 +3
c.minus(1); //現在の値-2
c.times(5.5); //現在の値× 5.5
c.divide(2); //現在の値÷ 2
System.out.println("現在の値:"+c.getValue());//現在の値を出力 } }

365 :デフォルトの名無しさん:2011/06/12(日) 09:33:56.70
>>364
初心者にもか関わらずたかが2時間で諦めたか・・・。
で、2時間で何が解らなかった?
何につまづいた?
どこまでが把握できてる?
それぐらい書き込めないんなら、同級生に土下座して
答え教えてもらえよ。ここで答え聞こうが、同級生に土下座しようが、
お前の将来の問題解決に対する態度はかわらんし、
職業プログラマになったとしても派遣になるのが見えてる。

366 :デフォルトの名無しさん:2011/06/12(日) 09:37:07.59
>>296

367 :デフォルトの名無しさん:2011/06/12(日) 09:50:46.16
>>364
取り合えずguiで作るか、cuiで作るか決めようか
それすら無い状態ではアドバイスも何も、用意する変数の数が全然違って来る


368 :デフォルトの名無しさん:2011/06/12(日) 10:05:29.75
>>364
class Calculator{
double value;
public void setValue(double v){ value = v; }
public double getValue(){ return value; }
public void plus(double v){ value += v; }
public void minus(double v){ value -= v; }
public void times(double v){ value *= v; }
public void divide(double v){ value /= v; }
}
public class CalculatorMain{
public static void main(String argv[]){
Calculator c = new Calculator();
c.setValue(0);
c.plus(3); //現在の値 +3
c.minus(1); //現在の値-2
c.times(5.5); //現在の値× 5.5
c.divide(2); //現在の値÷ 2
System.out.println("現在の値:"+c.getValue());//現在の値を出力
}
}

369 :デフォルトの名無しさん:2011/06/12(日) 10:06:16.02
> c.minus(1); //現在の値-2
これはこのままでいいのか?

370 :デフォルトの名無しさん:2011/06/12(日) 10:09:45.88
>>368
キーボードかguiのボタンからから入力しなくて良いの?


371 :デフォルトの名無しさん:2011/06/12(日) 10:19:11.60
>>368さん、ありがとうございます。
でもこれだけではプログラムは動きませんよね?もしよければ完全なプログラムを教えてもらってもいいですか?
setvalueでとりあえず初期値doubleで設定して、その下の

---------
(double v){ value /= v; }
---------

などでクラスの働きを設定しているのですか?


372 :デフォルトの名無しさん:2011/06/12(日) 10:22:48.92
C:\>javac CalculatorMain.java

C:\>java CalculatorMain
現在の値:5.5

C:\>

373 :デフォルトの名無しさん:2011/06/12(日) 10:26:51.38
C:\>javac CalculatorMain.java
C:\>java CalculaotrMain

374 :デフォルトの名無しさん:2011/06/12(日) 10:27:03.00
>>368
こういうレベルでつまづくのって、やっぱ専門学校とか
Fラン大の奴なの?

375 :デフォルトの名無しさん:2011/06/12(日) 10:28:48.99
>>371
mainで>>368さんが実際に動かして見せてる訳だが。。。

計算機作った時のメソッドなんて、そんなもんよ?
自分はてっきり数字とオペレーターを別々に入力して、答えを表示するプログラム作る授業かと思ってたんだけど
(そこまで実装しても大して難しくないよ)


376 :デフォルトの名無しさん:2011/06/12(日) 10:32:05.35
>でもこれだけではプログラムは動きませんよね?
エラーを詳しく

377 :デフォルトの名無しさん:2011/06/12(日) 10:39:41.07
ゆとりおつ

378 :デフォルトの名無しさん:2011/06/12(日) 10:47:25.24
ttp://www.csg.is.titech.ac.jp/~chiba/lecture/cur/cs2/cs10.html
課題が分かりません。。解答をお願いします。

379 :デフォルトの名無しさん:2011/06/12(日) 10:50:48.79
java.util.Hashtable や HashMap のソース見ればいいじゃん

380 :デフォルトの名無しさん:2011/06/12(日) 10:51:26.05
だから同級生に土下座しろって。
そもそも、友達居ればこの程度解る奴1人以上は居るはずだし。
ここでそれを聞くってことは友達が居ない、または、学校でドヤ顔したいだけ。

381 :デフォルトの名無しさん:2011/06/12(日) 10:53:49.41
>>378
東京工業大学ってレベル低いの?
専門卒、最低辺を自認する俺でも解るんだが・・・。

382 :381:2011/06/12(日) 11:06:46.08
方法だけ説明する。
1.自分のクラスへの参照と1次元の配列を持を持つクラスを作る。
2.そのクラスはputでキーと値を取ると、キーのhashCodeを呼び出す。
3.hashCodeで得た値 % 1次元配列の長さで配列の添字を得る。
4.1次元配列[さっきの添字]がnullである事を調べる。
5.nullあればここに値のオブジェクトを入れる。nullならここで終わり。
6.1次元配列[さっきの添字]がnullなら、自分のクラスへの参照がnullでないか調べる。
7,自分のクラスへの参照がnullで無いなら、自分のクラスへの参照に対し受け取った引数をput
自分のクラスへの参照がnullで無いならここで終わり。
8.自分のクラスへの参照がnullなら、new 自分のクラス();で得たオブジェクトを、自分のクラスの参照へ渡す。
 そして7へ戻る。


383 :デフォルトの名無しさん:2011/06/12(日) 11:08:27.90
底辺プログラマなら方法じゃなくてコードを書けや
書けないなら回答すんな

384 :デフォルトの名無しさん:2011/06/12(日) 11:17:45.23
>>383
ここまで書いてもらってコードも何も無いような。。。
これで自力でコード書けなかったら、入門レベルでも勉強不足って言われるレベルだぞ


385 :デフォルトの名無しさん:2011/06/12(日) 11:19:56.62
コード欲しいなら金だせよ東工大。
自分に無いものがただで貰えるとおもうなよ。

386 :デフォルトの名無しさん:2011/06/12(日) 11:25:44.58
>>364です!解決しました!ありがとうございます!


387 :デフォルトの名無しさん:2011/06/12(日) 11:26:40.60
ゆとり(笑)

388 :デフォルトの名無しさん:2011/06/12(日) 11:35:10.68
ファイル名だなw

389 :381:2011/06/12(日) 11:35:51.65
そういやequalsいれ忘れたわ。
まぁ、hash値の意味を調べりゃ自分で直せるよな。

390 :デフォルトの名無しさん:2011/06/12(日) 11:37:27.33
>>378
class HashTable <K, V> {
private Map.Entry<K,V>[] table;
public HashTable(){ this(10); }
public HashTable(int capacity){ table = (Map.Entry<K,V>[])new Map.Entry[capacity]; }
public boolean put (K key, V value) {
for (int i = 0; i < table.length; i++) {
final int index = (key.hashCode() + i) % table.length;
if (table[index] == null) {
table[index] = new AbstractMap.SimpleImmutableEntry<K, V>(key, value);
return true;
}
if (table[index].getKey().equals(key)) return false;
}
throw new IllegalStateException("full");
}
public V get (K key) {
for (int i = 0; i < table.length; i++) {
final int index = (key.hashCode() + i) % table.length;
if (table[index] == null || table[index].getKey().hashCode() != key.hashCode()) break;
if (table[index].getKey().equals(key)) return table[index].getValue();
}
return null;
}
public void merge (HashTable<? extends K, ? extends V> other) {
for (Map.Entry<? extends K, ? extends V> entry : other.table) {
if (entry != null) put(entry.getKey(), entry.getValue());
}
}
}

391 :デフォルトの名無しさん:2011/06/12(日) 11:49:04.08
× if (table[index] == null || table[index].getKey().hashCode() != key.hashCode()) break;
○ if (table[index] == null) break;

だな。

392 :デフォルトの名無しさん:2011/06/12(日) 11:49:37.53
>>296

393 :デフォルトの名無しさん:2011/06/12(日) 11:50:58.75
>>348
されてるよ。
2.0のものは、今はないけど正式版が出る頃には準備されるんじゃない?

394 :デフォルトの名無しさん:2011/06/12(日) 11:58:37.31
宿題スレでやれ

395 :デフォルトの名無しさん:2011/06/12(日) 12:06:30.89
>>363
会社の新人教育とか学校で、配列の何番目から取り出すとか、
あたかも箱のように説明し、かつ、一番初めは1じゃなく0なんです。
とか、本質を説明しないことがとっても問題な気がするよ。

396 :デフォルトの名無しさん:2011/06/12(日) 12:20:44.40
JavaFXにとって今後のAdobe AIR/Flashは強そうですか?

397 :デフォルトの名無しさん:2011/06/12(日) 12:32:24.65
>>395
配列や変数を箱で表現と言うのは、確かに値が書き換わるのを上手く表現出来ないから、良い表現は無いかと思うけど、配列は説明したところで、0から始まるのに変わりないからな。。。

アドレスも0番地から始まるし、OSとか作るのに0から始まる方が都合が良いとかの背景は有りそうだけどな

普段のプログラミングには
場所指定の入力用変数 n
に対して
配列の添字 index = n-1

って変換してあげれば済む話だし


398 :デフォルトの名無しさん:2011/06/12(日) 12:44:38.15
日本語でおか

399 :デフォルトの名無しさん:2011/06/12(日) 12:54:26.54
>>398
簡単な例えだと、カレンダー関数の引数とは別に、それを元に配列のインデックスで使う為の変数を別に作ればええヤンって話

何も難しい事あらへん


400 :デフォルトの名無しさん:2011/06/12(日) 12:59:18.34
>>296

401 :デフォルトの名無しさん:2011/06/12(日) 13:56:22.86
>>400
だから、変換用変数用意すればおkで解決
これにて終了



402 :デフォルトの名無しさん:2011/06/12(日) 13:57:33.80
なんだ、概念が違うことすら理解できていなかったのか。

403 :デフォルトの名無しさん:2011/06/12(日) 14:32:12.33
ゆとり(笑)

404 :デフォルトの名無しさん:2011/06/12(日) 14:33:25.41
おまえら無駄な話には食いつきいいなw

405 :デフォルトの名無しさん:2011/06/12(日) 15:11:13.97
>>368のプログラムについて
なぜ+valueや*valueではなくて
以下のようにvalue+とかvalue /とかなのですか?

lass Calculator{
double value;
public void setValue(double v){ value = v; }
public double getValue(){ return value; }
public void plus(double v){ value += v; }
public void minus(double v){ value -= v; }
public void times(double v){ value *= v; }
public void divide(double v){ value /= v; }
}
public class CalculatorMain{
public static void main(String argv[]){
Calculator c = new Calculator();
c.setValue(0);
c.plus(3); //現在の値 +3
c.minus(1); //現在の値-2
c.times(5.5); //現在の値× 5.5
c.divide(2); //現在の値÷ 2
System.out.println("現在の値:"+c.getValue());//現在の値を出力
}
}



406 :デフォルトの名無しさん:2011/06/12(日) 15:17:16.76
valueを変化させたいのではないのか

407 :デフォルトの名無しさん:2011/06/12(日) 15:51:12.76
>>406なるほど、プログラミングではそのように考えるのですね!ありがとうございます!

408 :250:2011/06/12(日) 16:11:33.70
>>395
ポインターを積極的に使うCとかなら、配列はオフセットの考え方の方が間違いが少ないとは思う。
汎用性を持たせ、オレオレルールを勝手に持ち込まないと言う意味では、
箱は0から〜でも良い様な気もしなくはない。



409 :250:2011/06/12(日) 16:12:22.61
>>397
自然数を使うのは、入力と出力だけ???
いろいろあるでしょう。

410 :デフォルトの名無しさん:2011/06/12(日) 16:19:42.02
ゆとり(笑)

411 :デフォルトの名無しさん:2011/06/12(日) 17:00:13.00
>>405
value += v;

value = value + v;
のことで、
value ← ( value + v ) ;
という意味だから


412 :デフォルトの名無しさん:2011/06/12(日) 17:12:45.20
>>396
JavaFX(2.0)とAIRを比較するのは筋違いにになっちゃったような。
上にもちょっと書いてあるけど、多分Swingの代替として捉えるべきなんじゃないかなあ。

Flash vs Applet(with JavaFX) がどうかってことになると思うんだけど、
現状から想像するに、強そう、とかいう以前に全く歯が立たないと思うぜよ。


413 :デフォルトの名無しさん:2011/06/12(日) 17:15:05.14
なんで筋違いだと思うんですか?

414 :デフォルトの名無しさん:2011/06/12(日) 17:26:09.65
非同期プログラミングと並行並列プログラミングの違いって何ですか?

415 :デフォルトの名無しさん:2011/06/12(日) 17:27:53.10
待つか/待たないか

416 :デフォルトの名無しさん:2011/06/12(日) 17:28:49.27
>>414
並行/並列プログラミングの中にも、同期プログラミングと非同期プログラミングに別れてるってだけ


417 :デフォルトの名無しさん:2011/06/12(日) 17:29:32.63
javaをアンイントールしてしまったのですが、http://www.java.com/ja/のダウンロードしても途中でエラーになってしまいます・・・
どうすれば



418 :デフォルトの名無しさん:2011/06/12(日) 17:35:16.87
オフラインインストール版を試すべし
http://javadl.sun.com/webapps/download/AutoDL?BundleId=49024

419 :デフォルトの名無しさん:2011/06/12(日) 17:37:35.78
javafxに最適なデザイナーツールがもう既にあるからadobeなんか瞬殺ですよね?(オラクルの資金力から見ても)

420 :デフォルトの名無しさん:2011/06/12(日) 17:39:47.18
>>381

421 :デフォルトの名無しさん:2011/06/12(日) 17:44:09.99
オフラインインストールをやると代替パス入力してってでます・・・

422 :デフォルトの名無しさん:2011/06/12(日) 17:55:11.16
今更だけど、箱に例えると、普通0の箱なんて作らないから余計混乱すると思う。
番号降るのに000の箱とか見た事無いわw

c言語でポインタ習った時は0始まりのヨウ素ってイメージできたけどね。
思い出してみると、フォートランとかアセンブラでも0始まりで当時は疑問に思うこと無くcpuってそんな処理なんだと思うって棚。


最近のハードだとmmu内蔵で実際のメモリアドレスなんて遮蔽されて見えないからあんまり順序に意味はないと思うけど。
メモリ割当的には、n(0),n(3),n(2),n(1)って順番に並んでるかもしれないし。
ググったらmmu単体のlsiとかあるのね。z80やh8用の外部mmuがあればプリエンティブなos実装できて楽しいかなとちょっと妄想したw

423 :デフォルトの名無しさん:2011/06/12(日) 17:55:54.69
>>421
http://oshiete.goo.ne.jp/qa/5821571.html
これ同じ感じにやったらどうなりますか?

424 :デフォルトの名無しさん:2011/06/12(日) 18:05:22.48
やってみます


425 :デフォルトの名無しさん:2011/06/12(日) 18:11:20.48
>>412
2011年のジャバについてもうちょっと勉強してもいいと思いますが、もし比べるならアプレットというよりもjws,pluginあたりのテクノロジーだと思いますよ。

426 :デフォルトの名無しさん:2011/06/12(日) 20:07:30.40
>>422
でもサイコロふるうとき、1が出たら1マス進むだろ?
今のマスに立ち止まったらシバかれる。

427 :デフォルトの名無しさん:2011/06/12(日) 20:14:55.67
だれにシバ苅れるんですか?

428 :デフォルトの名無しさん:2011/06/12(日) 20:17:36.19
javaを勉強したいと思うのですが、ガイドブックやガイドサイトはどれもこれもコマンドラインベースのサンプルプログラムばかりでやる気が出ません
GUIを作れるのが最終目標なのですが、適切なガイドブック、サイト、アドバイスください

429 :デフォルトの名無しさん:2011/06/12(日) 20:17:45.65
群馬県高崎市に住む39歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。

とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。

復興支援アニメ.mp4
http://www.youtube.com/watch?v=yn4uTiN8vvM

湾岸鉄道キャンペーンCM(カラー).mp4
http://www.youtube.com/watch?v=g3PlX1OAhug&feature=channel_video_title


これは力作で、にしおかすみこさんにも是非見てもらいたかったため彼女のブログにコメントしたんですが無視されました。
http://blog.watanabepro.co.jp/nishiokasumiko/archives/2008/02/22_15_post_22.html
(下の方にあります。投稿者: hekeneko | 2008年03月24日 22:54)
やはり私の才能に気づいてくれる人は中々いないみたいですね(苦笑)。


題名”ラダニアムの翼”
A wing of radaniam_partU.mp4
http://www.youtube.com/watch?v=keSK70uqDJY
A wing of radaniamu part_V.mp4
http://www.youtube.com/watch?v=-LRZbXbirR0

題名”hekeneko honey”
http://www.youtube.com/watch?v=kATwf6fAkG8
私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。

430 :デフォルトの名無しさん:2011/06/12(日) 20:18:42.45
>>427
姉貴とその親友のめめちゃんに決まってんだろ。

431 :デフォルトの名無しさん:2011/06/12(日) 20:20:36.74
そりゃ、スゴロクでは、サイコロで1が描かれた面がでたら、一つ進むという意味だからな。

432 :デフォルトの名無しさん:2011/06/12(日) 20:20:42.39
>>428
2001年頃に採れた、浅いり珈琲でも飲んでろ。

433 :デフォルトの名無しさん:2011/06/12(日) 20:23:24.68
>>428
Java SwingとかJava SWTとかで調べればよいのでは。
Java GUIはあんまり流行ってないらしいけど。

434 :デフォルトの名無しさん:2011/06/12(日) 20:27:38.42
>>381

435 :デフォルトの名無しさん:2011/06/12(日) 20:29:11.61
>>429
>会社を追われ
そりゃこの程度でプロレベルを自負するぐらいだから会社も追われるわなぁ・・・。
しかもこの曲自作してない or 発注じゃないだろ。

436 :デフォルトの名無しさん:2011/06/12(日) 20:30:44.36
>>433
Swing、SWTのサンプルサイトはいくつか見てみたのですが
http://www.geocities.jp/h2fujimura/appendix/Layout/FlowLayout/index.html
http://www.tohoho-web.com/java/awt.htm
基礎をやっていないからコードの意味がわからない→基礎をやろうにもGUIじゃないからやる気が・・・という悪循環に陥ってしまっています

437 :デフォルトの名無しさん:2011/06/12(日) 20:33:41.86
>>436
高い金だしてVisual ブヴィ.netとかVisual C丼 でも買えば?
今はタダでも買えるんだっけ?おっさんとしちゃどうでもいいから知らんけど。

438 :デフォルトの名無しさん:2011/06/12(日) 20:34:16.31
>>436
そこでドトネットですよ

439 :デフォルトの名無しさん:2011/06/12(日) 20:38:06.84
>>436
てのは半分冗談で、EclipseならWindowBuilderとか使ったら?
とりあえずGUIコードは生成してくれるからとっかかりにはいいんじゃない?
俺はEclipseのコンソールで十分Javaの勉強はできるとおもうけど。
とくにJavaの必要性がないでGUIなら正直C#でもやったほうが早いよ。

440 :デフォルトの名無しさん:2011/06/12(日) 20:42:30.80
昔はやたらGUIに拘った事が有ったけど、
今は仕事か、グラフィックスやりたいときじゃなけりゃ
コマンドラインツールばっか作ってるなぁ。
GUIってプログラムの本質じゃねぇから書いてて面倒い。

441 :デフォルトの名無しさん:2011/06/12(日) 20:43:44.31
とりあえずEclipseを入れてから基礎を学んでくれとしか。
スレッド周りの知識なしでGUIをやりたいって言われても
難しいんじゃないのとしか言えない。

442 :デフォルトの名無しさん:2011/06/12(日) 20:46:36.76
群馬県高崎市に住む39歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。

とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。

復興支援アニメ.mp4
http://www.youtube.com/watch?v=yn4uTiN8vvM

湾岸鉄道キャンペーンCM(カラー).mp4
http://www.youtube.com/watch?v=g3PlX1OAhug&feature=channel_video_title


これは力作で、にしおかすみこさんにも是非見てもらいたかったため彼女のブログにコメントしたんですが無視されました。
http://blog.watanabepro.co.jp/nishiokasumiko/archives/2008/02/22_15_post_22.html
(下の方にあります。投稿者: hekeneko | 2008年03月24日 22:54)
やはり私の才能に気づいてくれる人は中々いないみたいですね(苦笑)。


題名”ラダニアムの翼”
A wing of radaniam_partU.mp4
http://www.youtube.com/watch?v=keSK70uqDJY
A wing of radaniamu part_V.mp4
http://www.youtube.com/watch?v=-LRZbXbirR0

題名”hekeneko honey”
http://www.youtube.com/watch?v=kATwf6fAkG8
私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。

443 :デフォルトの名無しさん:2011/06/12(日) 20:49:19.48
>>437-441
他の言語に切り替えるとか、開発環境しっかり整えてやれ という事ですか。
ありがとうございます

444 :デフォルトの名無しさん:2011/06/12(日) 20:51:41.07
>>443
NetBeansなら比較的Swingもとっつきやすいかも。
でも、初学者ならC#をおすすめする。

445 :デフォルトの名無しさん:2011/06/12(日) 21:16:22.36
>>444
どうもです
今までスクリプト言語ばっかやってたから開発環境なるものがどうしても苦手で
これはしようがないか

446 :デフォルトの名無しさん:2011/06/12(日) 21:26:42.64
>>445
統合開発環境になれたら、エディタで編集に戻れなくなると思うww というかおれは統合開発環境ない開発なんてダルくてできない。

447 :デフォルトの名無しさん:2011/06/12(日) 21:37:40.87
>>446
開発環境はガイドサイトに乗っているバージョンと少しでも違うと動かなくなるから困る

448 :デフォルトの名無しさん:2011/06/13(月) 00:46:14.04
読める・・・!
私にもプログラムがよめるぞ・・・!

449 :デフォルトの名無しさん:2011/06/13(月) 01:20:42.62
>>425
で?>>396の疑問についてはどう考えてるの?

450 :デフォルトの名無しさん:2011/06/13(月) 01:21:08.58
>>428
創るJava

451 :デフォルトの名無しさん:2011/06/13(月) 09:22:16.84
ジェネリクスのキャストってunchecked毎回書いてる?
汚いよね?

452 :デフォルトの名無しさん:2011/06/13(月) 13:10:11.89
ideに成れるまでが敷居が高い。
テキストエディタなら昔から使ってノウハウの蓄積があるもの。

つーか自分でアプリ作れるんだから自分のテキストエディタ使いたいよね。
オープンソースのテキストエディタがあれば自分でも弄れて違うのだろうけど。

453 :デフォルトの名無しさん:2011/06/13(月) 13:12:26.82
テキストエディタにこだわる奴も
IDEにこだわる奴も総じてカス
両方つかいこなせ

454 :デフォルトの名無しさん:2011/06/13(月) 13:25:54.34
テキストエディタのノウハウってのは具体的になんのことか分からん

455 :デフォルトの名無しさん:2011/06/13(月) 16:29:23.85
両方使いこなすのはよいのだが、
言語によって道具を使い分けるのが普通なんじゃないの。

456 :デフォルトの名無しさん:2011/06/13(月) 16:34:48.30
JavaってJava2になってから変更が加えられたそうで、古い入門書だと対応できない部分があるみたいですが、
J2SE 1.2(1998年12月8日)以降に出た本を買えば大丈夫なんでしょうか?

457 :デフォルトの名無しさん:2011/06/13(月) 16:41:07.50
>>456
追記
J2SE 5.0(2004年9月30日)でも大幅な拡張が加えられたみたいですが、この拡張された部分まで入門書が踏み込むことがあるのでしょうか?
たとえば現行のJavaSDK、JREで、古い入門書の内容を実行するとエラーになるとかありますか?

458 :デフォルトの名無しさん:2011/06/13(月) 17:06:01.62
まずはやってみて、だめだったら考えればいいんだよ

459 :デフォルトの名無しさん:2011/06/13(月) 18:06:10.45
Stringクラスのあるメソッドにブレークで止めてみると、行番号情報はあるけど引数がarg0、arg1と表示され、実際の変数名と異なります。
またローカル変数情報も見れません。

JDK/bin/javaからJRE/bin/javaで同じことをすると行番号情報がなくなっています。

これは-g月でコンパイルしたかしないかの差だと思いますが、JDKでローカル変数が見れないのはなぜでしょうか?

460 :デフォルトの名無しさん:2011/06/13(月) 18:10:37.08
>>455
お前日本語ちょっとおかしいぞ
>>456
Java1.6対応って書いてある本買えば良いんじゃない
Javaの大幅な仕様の拡張は多くの場合、過去のバージョンで不便なところを便利にする変更が多いから
新しかろうが何だろうがやって置いた方が良い

461 :デフォルトの名無しさん:2011/06/13(月) 18:19:37.42
>>438

462 :デフォルトの名無しさん:2011/06/13(月) 21:42:11.03
JavaからPostgreSQLにアクセスして使いたいです
そこで気になったのはJDBCドライバのライセンスです
ライセンス(英文)を翻訳サイトで翻訳したのを解釈すると、
個人だろうと商用だろうと、とりあえず改版しなければ好きに使ってよし
というふうに認識したのですが、あっていますか?

463 :デフォルトの名無しさん:2011/06/13(月) 23:20:44.32
自分もJava+posgre8について質問です。
SQLインジェクションの対策をしたいですが、どうやるのがベターですか?

464 :デフォルトの名無しさん:2011/06/13(月) 23:27:49.08
>>381

465 :デフォルトの名無しさん:2011/06/13(月) 23:31:49.35
>>463
普通にフレームワークにあるだろ

466 :デフォルトの名無しさん:2011/06/13(月) 23:52:45.22
>>465
ありがとうございます
標準のAPIではないですか?

467 :デフォルトの名無しさん:2011/06/13(月) 23:59:38.77
jdbcのpreparedstatement

468 :デフォルトの名無しさん:2011/06/14(火) 00:03:15.97
>>467
え、あれってプリコンパイルするやつですよね?
あれを間に挟むと安全になるのですか?

469 :デフォルトの名無しさん:2011/06/14(火) 00:08:23.25
使ってみてから言え。
そこまで教えといてもらって聞くな。

470 :デフォルトの名無しさん:2011/06/14(火) 02:10:02.84
お初。JSPは此処でよいのでしょうか。駄目なら誘導をば。

参考ページ
ttp://www.javaroad.jp/servletjsp/sj_jsp11.htm

このページのサンプルにある画面遷移処理を行いたいのですが
どうにも思った通りに作る方法がわからず難儀しています。

exPageContext.jspでは、画面表示直後にpageContext.setAttribute()、pageContext.forward()と
走らせてexPageContext2.jspに遷移しています。
これを、「ボタンが押されたら」画面遷移するという形に変えたいのですが
●<form> <submit> の形だと<form>に遷移先が記載されているので駄目
●<button onClick> だとonClick要素はjavascriptなので駄目
と、いう感じに詰まってます。
何か妙案がありましたらお願い致します。

471 :デフォルトの名無しさん:2011/06/14(火) 02:11:38.47
>>463
文字列連結でSQL文を作らない。

String query = "SELECT age FROM t WHERE name = \"" + user.name + "\"";

こういうことをしなくてもどうにかなる仕組みがフレームワークなり
jdbcのpreparedStatementなり用意されている。

472 :デフォルトの名無しさん:2011/06/14(火) 02:14:00.89
>>469
すみませんでした
使って試してみます

473 :デフォルトの名無しさん:2011/06/14(火) 02:14:50.81
>>471
ありがとうございます
調べてみます

474 :デフォルトの名無しさん:2011/06/14(火) 02:53:56.59
ググって場当たり的にアプローチするより、jdbcやフレームワークの本買って来て順序建ててアプローチしたほうがいいレベルだな。

jdbcで組んだのにソニーや任天堂の様に個人情報汚もらしとかやってしまいそう。

475 :デフォルトの名無しさん:2011/06/14(火) 03:14:15.89
>>413
Flashに追い付け追い越せ!って1.0出るころいってた機能、例えば
http://gihyo.jp/dev/serial/01/javafx/0010?skip
http://gihyo.jp/dev/serial/01/javafx/0008?skip
みたいなのが2.0では悉く無くなっちゃうから。

476 :デフォルトの名無しさん:2011/06/14(火) 03:18:14.36
>>462
http://jdbc.postgresql.org/license.html
どこにそんなことが書いてあるんだ。
BSDライセンスってメジャーだからググればいくらでも解説サイト出てくるだろ。

477 :デフォルトの名無しさん:2011/06/14(火) 03:29:35.69
そういやMySQLのはなんちゃってプリペアードステートメント(内部で文字連結してるだけ?だったかな)だからヤバい、
って聞いたことがあるんだけど、JDBC経由でもやっぱり危ないんだろうかね?

…と思ってググったらこれのことか
ttp://d.hatena.ne.jp/mir/20081224/p2


478 :デフォルトの名無しさん:2011/06/14(火) 07:22:02.12
PreparedStatement って DBMS によっては LIKE とかでうまく防げないとか何とか聞いたことがある。
PostgreSQL なら大丈夫なのだろうか?
バージョン 7 だか 8 だかから日本語の対応が入ったとも聞いたけど、気になるね。

479 :デフォルトの名無しさん:2011/06/14(火) 07:35:42.25
PreparedStatementでSQLインジェクションしちゃうなんて
知らなかった。もう何も信じられないorz

480 :デフォルトの名無しさん:2011/06/14(火) 07:38:49.77
>>470
formで遷移先をServletにするのはだめ?

481 :デフォルトの名無しさん:2011/06/14(火) 07:40:41.90
>>479
真偽は不明だが日本語が絡むと厄介なようだ

482 :デフォルトの名無しさん:2011/06/14(火) 10:33:27.86
これはもう、このスレの誰かが、SQLインジェクションを防いでくれるライブラリを開発するしかない。

483 :デフォルトの名無しさん:2011/06/14(火) 11:50:18.90
Class<? extends A> subclassOfA = ("Aのサブクラス名文字列").class;
ということをするにはどう書けばいいんでしょうか?
(Class<? extends A>) Class.forName("Aのサブクラス名文字列");
としたらできたんですが、これだとAのサブクラスを初期化してしまうのですが
要は初期化したくないのです。

484 :デフォルトの名無しさん:2011/06/14(火) 12:09:27.65
>>483
初期化したくないだけなら
Class.forName("Aのサブクラス名文字列", false, this.getClass().getClassLoader())

485 :デフォルトの名無しさん:2011/06/14(火) 12:23:15.05
>>484
できました!ありがとうございます。

486 :デフォルトの名無しさん:2011/06/14(火) 13:24:24.51
すいませんとんでもない課題を出されてしまったのでご協力お願いしてもよろしいですか?

ニュートン・ラプソン法で下記の式の根を有効数字6桁で求めるプログラムを作成する。プログラムは複数のクラスを定義して作成すること。

4x∧3+3x∧2‐2x+2.5=0

自分でも何とか努力してみますが、教えて頂けませんか?お願いします。

487 :デフォルトの名無しさん:2011/06/14(火) 14:45:32.91
わしゃ、中卒や。

488 :デフォルトの名無しさん:2011/06/14(火) 14:53:19.80
>>486
宿題スレでどうぞ。

489 :デフォルトの名無しさん:2011/06/14(火) 14:56:07.71
>>478
likeつっても只の文字列じゃん
他と比べて何か特殊なわけでもなさそうだけど…?

490 :デフォルトの名無しさん:2011/06/14(火) 15:32:10.29
>>489
俺もわからないから何とも言えないけど
俺が調べるのは面倒だから実際に吐き出されるLike文を調査して検証してきてよ

491 :デフォルトの名無しさん:2011/06/14(火) 15:40:03.86
>>381

492 :デフォルトの名無しさん:2011/06/14(火) 17:26:07.41
ライブラリ作るの面倒だから適当な商用フレームワークに丸投げでいいじゃん。
strutusとか無料フレームワーク使ってる乞食はこの際phpにでも移ればいい。

runtime.execでphpに処理してもらっても良い鴨だがw

493 :デフォルトの名無しさん:2011/06/14(火) 17:50:34.04
String str = "幼女";
if(str == "幼女")
{
  System.out.println("えっ?");
}
えっ?が表示されてしまいます。

これで一つ目の幼女と2つ目の幼女が、同じ参照として扱われるのは、
javaでは同じ文字リテラルは同じオブジェクトとして扱われるということですか?


494 :デフォルトの名無しさん:2011/06/14(火) 18:04:43.42
>>493
yes

String str = new String("幼女").intern();
if (str == new String("幼女").intern()) System.out.println("えっ?");
でも同じ参照として扱われる。

495 :デフォルトの名無しさん:2011/06/14(火) 18:27:00.82
>>493
ディープコピー java
でググってみよう


496 :デフォルトの名無しさん:2011/06/14(火) 18:36:26.21
>>494
なるほど、ありがとうございます。
また、こんなメソッドもあるんですね!
>>495
この書きかただと、つまりVM上から参照を貰うだけでディープコピーは
されないということですよね

497 :495:2011/06/14(火) 18:43:59.50
>>496
うい

"=="は値が同じかどうかしか見てないです


498 :デフォルトの名無しさん:2011/06/14(火) 18:47:40.35
>>490
まず>>477を読むといいよ。

499 :デフォルトの名無しさん:2011/06/14(火) 18:48:41.41
>>493
VM境界越えなければ。

500 :デフォルトの名無しさん:2011/06/14(火) 18:51:48.92
簡単な質問するとたくさんレスがいただけて嬉しいです

501 :デフォルトの名無しさん:2011/06/14(火) 19:08:14.58
intern()したオブジェクトはどうやって削除またはいつ削除されるんですか?

502 :デフォルトの名無しさん:2011/06/14(火) 19:49:28.53
>>501
VMが死ぬとき。

503 :デフォルトの名無しさん:2011/06/14(火) 19:51:15.01
>>500
煽っても同じ効果があるよ。
そういうのレス乞食って呼ぶんだけどね。

504 :デフォルトの名無しさん:2011/06/14(火) 20:01:16.85
「javacが見つかりません」と文字列の問題ならまかせとけ!

505 :デフォルトの名無しさん:2011/06/14(火) 20:02:31.28
intern()しまくってVMを殺すことは出来ますか?

506 :デフォルトの名無しさん:2011/06/14(火) 20:27:08.69
ウィンドウ内にボタンと描画させるための領域を用意して、
ボタンを押すとJFileChooserをつかってファイルを選択し、
そのファイルの内容についてMyCanvasでグラフを描画するプログラムを組んだのですがうまく描画されません。
選択後何もしなければ何も表示されず、ウィンドウサイズをちょっとでも弄ると表示されます。
また、新たにファイルを開いた時も初めは前のグラフのままで、ウィンドウサイズをグラフより小さくするなどすると、
はみ出した部分だけ新しいファイルのものに再描画されます。
MyCanvas内でrepaintをすると、新たにファイルを開いた時に新しいグラフになってくれるのですが、
代わりにずーっと点滅しているような状態になり、また、何もしなければ表示されないのも直りません。
MyCanvas外だと効果はないようです。

507 :デフォルトの名無しさん:2011/06/14(火) 20:34:04.68
>>506
ボタンの中でファイル読んだ後、repaint呼んだらいいと思う


508 :デフォルトの名無しさん:2011/06/14(火) 20:36:40.65
書き換えてるパネルとかは常にトップのJFrameとつながってる?
交互につなげて表示とかしてないよね?

509 :デフォルトの名無しさん:2011/06/14(火) 20:46:09.67
>>506
>>507書いた理由は、

>選択後何もしなければ何も表示されず、ウィンドウサイズをちょっとでも弄ると表示されます。
>また、新たにファイルを開いた時も初めは前のグラフのままで、ウィンドウサイズをグラフより小さくするなどすると、
>はみ出した部分だけ新しいファイルのものに再描画されます。

という症状から、ファイルを読み込んだ直後にはpaintメソッドが呼ばれてないと予想してる


510 :デフォルトの名無しさん:2011/06/14(火) 21:02:51.91
>>508
常につなげるやり方がわかりません・・・


>>507,509
自分のpaintメソッドの記述がおかしいのかもしれませんが、変わりませんでした。

511 :デフォルトの名無しさん:2011/06/14(火) 21:11:22.83
原因追跡のためにログファイル出力をしたいのですが、
既存で便利なクラスはありませんか?
なければ自作になりますが、サイクリック処理や世代管理まで自作するとなると、
それが新たなバグ要因になりかねないので、実績のある既存のがあれば使いたいです。

512 :デフォルトの名無しさん:2011/06/14(火) 21:12:36.20
何もしなければ表示されない、という部分に関しては自己解決しました。
Canvasのあとにshow();と呼ぶのを忘れていました。

513 :デフォルトの名無しさん:2011/06/14(火) 21:25:59.93
Java 6でSSL通信をする場合の証明書更新について、質問があります。

証明書更新した際にプログラムを止めずに、キーストアの更新を読み込む
or新しいキーストアの読み込みなどが行えるでしょうか?


514 :デフォルトの名無しさん:2011/06/14(火) 21:29:44.17
教えていただいた通り、PreparedStatement を使って SQL インジェクション対策をしてみました。
PreparedStatement を toString して吐かせてみたところ、
「'」が「''」に、「\」が「\\」にエスケープされていることを確認できました。
(それぞれ念のため全角の記号も試してみましたが大丈夫でした。)
ということは、これで万全ということでしょうか?
LIKE による部分一致やそのた特殊記号大丈夫でしょうか?

515 :デフォルトの名無しさん:2011/06/14(火) 21:35:35.59
無料のDB&2chの回答にそこまで求めるな

516 :デフォルトの名無しさん:2011/06/14(火) 21:42:47.63
そこでオラ来るの登場か

javaでは自社のDBしか利用できないとか細工しないよな。。。


517 : 【東電 75.2 %】 :2011/06/14(火) 21:46:21.18
>>514
そこから先はドライバの実装によるんじゃね?
どこのDB使ってるかは知らんが、素直にサポートへ投げたらどうですか。

518 :デフォルトの名無しさん:2011/06/14(火) 22:01:20.81
>>515
すみません、人に頼りすぎました。

このサイト構築は個人の趣味プロなので、サポート窓口の利用には抵抗があります。
ちなみに、データベースは PostgreSQL 9.0 で CentOS 上に構築しています。
いろいろな記号を入れて、エスケープの有無を調べてみます。

519 :デフォルトの名無しさん:2011/06/14(火) 22:03:21.43
アンカを間違えました。
正しくは >>515-517 です。

520 :デフォルトの名無しさん:2011/06/14(火) 22:22:59.55
Javaのジェネリクス関連で、質問があります。
本文の長さに引っかかってしまったので、内容は↓に書きました。
もしよろしければ、お力をお貸しください。。
http://codepad.org/qDjOwSg4

521 :デフォルトの名無しさん:2011/06/14(火) 22:24:01.57
>>505
君の想像している方法ではできない。

522 :デフォルトの名無しさん:2011/06/14(火) 22:27:37.56
>>480
なるほど!ありがとうございます。外部サーブレット呼び出すのか
試して見ます

523 :デフォルトの名無しさん:2011/06/14(火) 22:40:45.99
>>520
generics導入する前にできなかったことが導入したからといってできるようになったわけじゃない。
メソッドシグネチャ、イレイジャでググろう。

524 :デフォルトの名無しさん:2011/06/14(火) 22:46:50.64
>>521
out of memory errorになっったとしてもJVMは不死身なんですか?

525 :デフォルトの名無しさん:2011/06/14(火) 22:54:21.42
>>524
そんなことは言っていないよ?

526 :デフォルトの名無しさん:2011/06/14(火) 22:58:33.96
>>520
引数と戻り値の両方、FloatのメソッドとDoubleのメソッドの2つ用意するだけじゃだめなの?

527 :デフォルトの名無しさん:2011/06/14(火) 23:18:56.24
>>526
戻り値の型はメソッドシグネチャに関係ない。

引数の型がFloatのとDoubleのとなら確かにオーバロードだけど、
今回はClass<Double>とClass<Float>なので型消去(イレイジャ)されてコンパイル時には
どっちもClass<Object>になる。
つまりfunc(Class<Object>)というシグネチャのメソッドを4行目と8行目で2重に定義してる。
なのでコンパイルエラー。

15行目の、呼び出し側も同様にイレイジャ後は func(Object.clss) だね。

528 :デフォルトの名無しさん:2011/06/14(火) 23:50:49.50
>>523
できるだろw

public static void main(String[] args) {
System.out.println(func(Double.class));
System.out.println(func(Float.class));
}
@SuppressWarnings("unchecked")
public static <T> T func(Class<T> arg){
if(arg.equals(Double.class)){
return (T) new Double("0.001");
}else if(arg.equals(Float.class)){
return (T) new Float("0.002");
}
return null;
}


529 :デフォルトの名無しさん:2011/06/14(火) 23:52:16.19
それは質問者の意図と違う気がするんだが、それでもいいのだろうか。

530 :528:2011/06/14(火) 23:55:05.91
>>520
func(Class<Float> arg)
func(Class<Double> arg)
を定義したいわけじゃないんだよね?
そこはどうでもよくてfunc()内で分岐したいってことだよね?

531 :デフォルトの名無しさん:2011/06/14(火) 23:58:00.59
>>528
引数追加していいんならそりゃそうだ
問題は、Class<T> arg を受け取れない場合

532 :デフォルトの名無しさん:2011/06/14(火) 23:59:12.02
>>528

>>520のリンク先
> 戻り値の型によって、呼び出す処理を変更したい
ってのもできてないし、
>>523
> generics導入する前にできなかったこと
もできてないですよ?


533 :デフォルトの名無しさん:2011/06/15(水) 00:00:23.98
>>530
いや戻り値で多態を表現できないか、っていう質問だろ…

534 :デフォルトの名無しさん:2011/06/15(水) 00:04:41.86
すまん。
>戻り値の型によって、呼び出す処理を変更したいのですが
っていうのは、戻り値の型を指定せずにってことなのか。


535 :デフォルトの名無しさん:2011/06/15(水) 00:14:05.00
戻り値がどちらかわからない状態では、どちらを呼んで欲しいのかな?

536 :523=527:2011/06/15(水) 00:16:46.15
ああ、>>520=>>526かと思って回答しちゃってました…

537 :デフォルトの名無しさん:2011/06/15(水) 00:18:15.13
イベントリスナというものは、

「イベントの発火を期に処理が記述されたスレッドをスタートするもの」
だと思っていたのですが、間違っているでしょうか。

詳しい方に説明をいただきたいのです。


538 :デフォルトの名無しさん:2011/06/15(水) 00:18:56.09
処理自体は同じで戻り値の型だけ変えたければ、戻り値もジェネリクスにすれば良いんじゃないの?


539 :デフォルトの名無しさん:2011/06/15(水) 00:20:43.92
>>537
直訳すると、イベントを聞く者
その意味を考えて見てね


540 :デフォルトの名無しさん:2011/06/15(水) 00:21:16.39
>>537
スレッドはスタートしないよ

541 :デフォルトの名無しさん:2011/06/15(水) 00:21:18.31
>>538
それもまた質問者の意図と違う気がするが、
これ以上は質問者が登場せんことにはなんとも

542 :デフォルトの名無しさん:2011/06/15(水) 00:22:24.20
>>537
「特定イベントの発火を期になんらか処理を実行するメソッドをもつクラス」かな。


543 :デフォルトの名無しさん:2011/06/15(水) 00:23:54.84
結局、戻り値でオーバーロードできない限りは不可能だよ
ジェネリクスは言語の能力を上げるものじゃない

544 :537:2011/06/15(水) 00:27:28.18
スレッドでないということは、メインの処理をブロックして
イベントの処理が始まるということでしょうか。

イベント内の処理で無限ループが始まると、メイン処理が進まなくなる?

545 :デフォルトの名無しさん:2011/06/15(水) 00:36:15.05
>>537
イベント≠スレッド

シングルスレッドでも多くのイベント処理する


546 :デフォルトの名無しさん:2011/06/15(水) 00:36:50.07
>>544
イエス


547 :デフォルトの名無しさん:2011/06/15(水) 00:44:37.88
>>520
Float f = ClassA.<Float>func();
Double d = ClassA.<Double>func();

こんな使い方をイメージしているんなら、いっそDIでどうだろ。

548 :デフォルトの名無しさん:2011/06/15(水) 00:48:43.59
>>544
その通り。
ただ>>544の表現はちょっと微妙。

イベントドリブンなアプリ(Swingアプリはユーザがボタンを押すことで
何らかの処理を行うので典型的な例だね)は、>>544の表現で言うと
「イベント内の処理」=「メイン処理」なんだよね。

だから、「イベント内の処理」と「メイン処理」がお互い並行して実行され邪魔し合う、
っていうイメージじゃなくて単純に次のイベントが処理できないイメージ。

メソッドを2つ呼ぶような処理を書いたとき、1つめのメソッドが終わらないと
2つめのメソッドが呼ばれないじゃない?それと同じ。

549 :デフォルトの名無しさん:2011/06/15(水) 00:57:03.07
>>543

引数が全く同じ型だと戻り値をオーバーロード出来ないけど、それ意外ならオーバーロード出来るだろ?


550 :デフォルトの名無しさん:2011/06/15(水) 00:59:03.20
>>543
>ジェネリクスは言語の能力を上げるものじゃない
VMの能力を上げるものじゃない。なら同意

551 :537:2011/06/15(水) 01:04:32.05
確かに、処理は止まってるっぽいんだけど…。
コンソール出力が出続けるのは私の環境の問題なのかしら。

public class EventTest extends MouseAdapter {
int press = 0, loop = 0;
public void mousePressed(MouseEvent arg0) {
while(true){
press++;
try{ Thread.sleep(1000); }catch(Exception e){ System.out.println("Exception:Sleep."); }
}
}
public static void main(String[] args) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(100, 100, 300, 200);
JLabel lbl = new JLabel();
lbl.setBounds(10, 10, 100, 50);
EventTest listener = new EventTest();
window.add(lbl);
window.addMouseListener(listener);
window.setVisible(true);
while(true){
listener.loop++;
System.out.print("roop");
lbl.setText("loop=" + listener.loop + " press=" + listener.press);
try{ Thread.sleep(1000); }catch(Exception e){ System.out.println("Exception:Sleep."); }
}
}
}

552 :デフォルトの名無しさん:2011/06/15(水) 01:06:24.94
>>551
javawコマンドで起動汁


553 :548:2011/06/15(水) 01:15:34.22
>>551
書きかけてややこしくなるから説明するの止めた部分だw

Swingのイベントを処理するスレッドはいわゆるメインスレッド(mainメソッドが実行されるスレッド)じゃない。
SwingのイベントはEDT(Event Dispatch Thread)というスレッドで処理される。
そういういう意味ではCUIアプリとは違いマルチスレッドだね。

ただし、メインスレッドは、画面起動する以外は何もせずに終わらせちゃう。普通はね。
だからEDT一本しかスレッドを意識する必要は無い。

invokeLater、イベントディスパッチスレッドでググろう。


554 :537:2011/06/15(水) 01:34:23.00
イベントではなく、Swingのイベントがマルチスレッドだった、と。

main()のループは別スレッドだから動いていたが、
EDTが動いている間、Swingのメインがブロックされるから描画は変化せず。

と、こんな感じでしょうか。

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

555 :デフォルトの名無しさん:2011/06/15(水) 01:40:44.64
>>549
>>520のは引数の型が違うからオーバーロードだ、って言ってんの?

556 :デフォルトの名無しさん:2011/06/15(水) 01:47:04.44
>>555
うん

本人に確認しないと何とも言えないが、見た限り、>>538であってる気がする


557 :デフォルトの名無しさん:2011/06/15(水) 02:18:51.34
>>511
SLF4J + Logback

558 :デフォルトの名無しさん:2011/06/15(水) 02:39:30.70
>>556
#func(Class<Float>)と#func(Class<Double>)が同居できないじゃん。

559 :デフォルトの名無しさん:2011/06/15(水) 05:27:26.87
>>555
イレイズされて引数は同じObject型になる

560 :デフォルトの名無しさん:2011/06/15(水) 06:16:02.67
>>556
おっけー>>537詠め

561 :デフォルトの名無しさん:2011/06/15(水) 06:17:30.06
ちがった>>527

562 :デフォルトの名無しさん:2011/06/15(水) 07:36:38.40
>>558
floatとdpubleって暗黙的にキャストされなかったっけ?
メソッド分ける必要有るの?


563 :デフォルトの名無しさん:2011/06/15(水) 08:01:32.80
プログラム中でバイトコードを生成し、それを実行したいと思っています。
どうすればできますか?

564 :デフォルトの名無しさん:2011/06/15(水) 08:07:14.07
ソースコードをファイルに吐き出してjavacして
java.exeで動かせばいいのでは?

565 :563:2011/06/15(水) 08:10:42.23
実行時にバイトコードを生成するという話です

566 : 【東電 60.5 %】 :2011/06/15(水) 08:22:46.28
クラスローダーのdefineClassをリフレクションで強引に呼び出すか、
自前クラスローダー作ってdefineClassするとか

567 :563:2011/06/15(水) 08:39:20.70
>>566
defineClassでできそうです
どうもでした

568 :デフォルトの名無しさん:2011/06/15(水) 09:08:54.01
バイトコードはどうやって生成するの?

569 :250:2011/06/15(水) 09:25:32.87
>>482
ライブラリじゃだめだよ。

基本的にUniCodeを先に処理するシステムが無いと、
同じ問題がそこかしこに発生する。

それに対応するのはJava側でもあるけど、
たとえばDBやWebServer、OS側の責任。

てか、昔から在る基本的な問題、かついまだに潰しきれていない問題、
かつ、ありふれた問題。

570 :デフォルトの名無しさん:2011/06/15(水) 09:39:16.04
最新のアップデード _26 で不具合発生。
当方環境はp4とチョット古いが、

JAVA対応アプリにてリロードすると画面が真っ白になってハングアップする。
(ソフトはマーケット ワーカー)

以上。


571 :デフォルトの名無しさん:2011/06/15(水) 09:40:28.84
SQLなんざやめちまえー

RandomAccessFile 一つありゃじゅうぶんだ


572 :デフォルトの名無しさん:2011/06/15(水) 09:47:36.73
>>562
>>520から読み直そう!

573 :デフォルトの名無しさん:2011/06/15(水) 10:49:22.47
>>506について質問した者です
とりあえずrepaintを至る所に挿入してみたのですが変化ありませんでした。
paint部分がおかしいのでしょうか?


574 :563:2011/06/15(水) 11:01:47.37
>>568
ネットワークやDBから取得します。

575 : 【東電 78.7 %】 :2011/06/15(水) 12:27:38.90
>>568
バイトコードの仕様は公開されてるんじゃなかったっけ。
cglibとか実在するし。

576 :デフォルトの名無しさん:2011/06/15(水) 13:49:10.29
>>573
至る所にというのは具体的にはどこだろう。
上でも書かれているように、ボタンを押したときにrepaintすれば十分な気がする。
あと、点滅したようになるっていうのも気になるんだけど、どこかでループしていたりはしない?

できることなら今あるコードを見せてもらえると早いんだけども。

577 :デフォルトの名無しさん:2011/06/15(水) 15:04:48.19
>>576
ごめんなさい、自己解決しました。
show()の前にhide()を使うことで再描画のように使えるのですね。
ちなみに至る所にというのは、メソッドが呼ばれた時やファイルを読み込む前後、Canvasメソッドを呼び出す前後など
重要そうな所の前後にぶちこんで、解決したら一つずつ消して挿入すべき所を割り出そうと思っていました。

578 :デフォルトの名無しさん:2011/06/15(水) 15:08:13.21
それと点滅するのは、paint内でrepaintしちゃってたからかなと思います

579 :250:2011/06/15(水) 17:41:53.10
てか、年間予算6億じゃ、こんなもんじゃね?

580 :デフォルトの名無しさん:2011/06/15(水) 17:42:33.76
>>579
誤爆

581 :デフォルトの名無しさん:2011/06/15(水) 18:26:41.13
>>506
アプレットだけどなんとなく動くよ。参考にしたらどうかな

ttp://www.age2.tv/rd05/src/up2489.zip.html

582 :デフォルトの名無しさん:2011/06/15(水) 19:32:58.35
InterruptedExceptionについてくわしくおしえてください

583 :デフォルトの名無しさん:2011/06/15(水) 20:14:13.21
>>582
つ ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/InterruptedException.html

584 :デフォルトの名無しさん:2011/06/15(水) 21:12:19.45
>>575
cglibならjavassistだな

585 :デフォルトの名無しさん:2011/06/15(水) 21:36:59.48
JSP についての質問はここでいいですか?

JSP の記述は、ページを開いたときに必ず実行されますか?
リンクから移動したとき、ブラウザの戻るボタンで戻ったとき、などです。

586 :デフォルトの名無しさん:2011/06/15(水) 21:46:28.34
>>585
POST で表示されたページの場合
→ブラウザに「再送信しますか?」ときかれて「いいえ」と答えた
 場合は実行されない。

GET で表示されたページの場合
→なんか http のヘッダでごにょごにょすれば、ブラウザの挙動
 にもよるかもだか、再実行しない場合もありうる。

587 :デフォルトの名無しさん:2011/06/15(水) 22:35:58.66
>>585
ありがとうございます。
ちょっとしたページを作っているのですが、
キャッシュが邪魔をしてうまくいかないのです。
※アクセス時のセッション変数の値で処理を分ける画面です。

588 :デフォルトの名無しさん:2011/06/15(水) 22:37:19.37
no-chaceヘッダをだしとけばいいよ

589 :デフォルトの名無しさん:2011/06/15(水) 23:44:48.39
oh...

590 :デフォルトの名無しさん:2011/06/15(水) 23:52:35.65
>>588
モバイル機器向けブラウザだと無視するの多いらしいけどね。

591 :250:2011/06/16(木) 00:08:44.59
>>588
no-chace??????


592 :デフォルトの名無しさん:2011/06/16(木) 00:51:31.81
勉強し始めて1ヶ月くらい経つんだけどマジでセンスないww
誰かこのプログラム作ってみてくれ

2つの整数を入力し、その2つの整数の間に存在する3の倍数を小さいほうから順に画面に表示するメソッド1を作成し、
画面から受け取った2整数に対してメソッド1を実行するプログラム2を作成せよ。
倍数が存在しない場合には"倍数は存在しません"と表示せよ

Main使って作る超基礎的なプログラムだと思うんだけど
手も足もでない
Scanner使うのか?

593 :デフォルトの名無しさん:2011/06/16(木) 01:02:47.53
>>588
頂いた回答を参考にして、ちょっと調べてみました。
以下のようなコードをレスポンスに設定すれば良いようなのですが、
ちょっと気になることがあります。

<%
try {
 // キャッシュの有効期限をいじる
 Calendar cal1 = Calendar.getInstance();
 Calendar cal2 = Calendar.getInstance().set( 1970, 0, 1, 0, 0, 0 );
 response.setDateHeader( "Last-Modified",cal1.getTime().getTime() );
 response.setDateHeader( "Expires", cal2.getTime().getTime() );
 // ヘッダデータをいじる
 response.setHeader( "pragma", "no-cache" );
 response.setHeader( "Cache-Control", "no-cache" );
} catch ( Exception e ) {
 // キャッシュ無効化を諦める
}
%

cal1 は現在の日時を取っているらしいのですが、
その日時というのはサーバの日時という認識で合ってますか?
もしクライアントのだとしたら、パソコンの日時を 1970 年より前にされた時が不安ですので。
※最悪でも例外が発生するくらいだとは思いますが。

594 :デフォルトの名無しさん:2011/06/16(木) 01:09:53.63
よく見たら、cal2 のところが間違ってましたね(汗)。

Calendar ocal2 = Calendar.getInstance();
cal2.set( 1970, 0, 1, 0, 0, 0 );

にします。
ボケてました。

あと、最悪なのはキャッシュされてしまうことでしたね。
例外が発生しても同じかもしれませんが。

595 :デフォルトの名無しさん:2011/06/16(木) 01:27:27.67
ゆとりうざい

596 :デフォルトの名無しさん:2011/06/16(木) 01:33:35.17
>>592
http://hibari.2ch.net/test/read.cgi/tech/1276873238/

597 :デフォルトの名無しさん:2011/06/16(木) 02:00:22.36
>>596
ありがとう聞いてみる
でもそこ過疎もいいところだな
人がいて、特にまともに回答くれる人がいるスレなんてこことかぐらいなんじゃないの?

598 :デフォルトの名無しさん:2011/06/16(木) 02:05:52.82
>>592
System.out.println("hello world");

599 :デフォルトの名無しさん:2011/06/16(木) 02:07:40.24
明日あたりno-chaseヘッダつけても効果がなかったレスが頻発するな

600 :デフォルトの名無しさん:2011/06/16(木) 02:08:01.03
>>598
さすがにそのくらいはできるわwww
1つ1つのプログラムはできるんだけど
いくつかの処理が混ざったようなのになると途端にできなくなる

やっぱプログラミングってセンスの問題だよな

601 :デフォルトの名無しさん:2011/06/16(木) 02:56:10.61
一生かかってもおまえじゃ無理

602 :デフォルトの名無しさん:2011/06/16(木) 03:58:45.00
>>600
入力ってところをみるといい。

http://oku.edu.mie-u.ac.jp/~okumura/java2/io.html

603 :デフォルトの名無しさん:2011/06/16(木) 04:11:28.78
はっきり言って欲しいんだけど
1ヶ月やってこんなプログラミングもできないようじゃ
最終的に応用情報合格とか無理かな

今まで簿記やってて次で日商1級取るから情報系にも手を出してみようと思ったんだ
けど無理そうならそのまま簿記で上目指す

604 :デフォルトの名無しさん:2011/06/16(木) 04:20:35.16
>>603
さぁ、1ヶ月っていっても掛けた時間はわからないし。
ネットで調べてることしかしてなさそうな雰囲気だけど、
初学者向けの入門書で学習するのが一番効率いいと思う。

サンプルがのっている入門書があったとして、実際そのサンプルを入力して動かすことが楽しかったり、
微妙に変更して、動きを変更したりすることを楽しいと感じるなら、向いていると思う。

ちなみに応用情報はプログラム知識あまりなくても受かる。過去問重要。

605 :デフォルトの名無しさん:2011/06/16(木) 04:25:20.39
>>604
どう勉強してるかとかわかるのかすごいな
実際その通りです参考書とか使ってません
ただ既存のプログラムを入力して動かすみたいなのはやってる
それでちょっと自分で考えてやってみろっていわれた問題が>>592でごらんの有様

応用情報ちょっと希望持てたらわ
まあ基本情報受かったらまた考える

606 :デフォルトの名無しさん:2011/06/16(木) 06:55:45.81
>>592
1.ある数より大きい3の倍数をみつけるしくみを考える
2.1.を3つみつけるまで続ける
3.2.にもうひとつの数を越えないように制限する
4.間にひとつもないときに表示する
5.入力された2つの数を都合の良い用に入れ替える仕組みを考える

プログラムは問題解決をプログラミングに向くように制限しつつ考える事だから、ある程度やらないと向いているかはわからんね
プログラミングに向くようにの部分は経験だから時間を掛ければ上達する

607 :デフォルトの名無しさん:2011/06/16(木) 07:16:54.54
<%
response.setHeader("Expires", "-1");
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
%>

でいいよ

608 :デフォルトの名無しさん:2011/06/16(木) 07:22:39.53
>>607
有効期限やヘッダ値を見ないブラウザには無効だけどな

609 :デフォルトの名無しさん:2011/06/16(木) 07:35:15.33
ブラウザに依存しない部分でガードするのが正しいよな
セッション変数に特別な意味を持たせた値を格納しといて、
毎回それで判断するようにするとか
AJAXでサーブレットに毎回なげて判断あおぎゃそれでいいじゃん

あと、キャッシュ無効だけど、
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META EQUIV="expires" CONTENT="-1">
じゃ駄目なのか?

610 :デフォルトの名無しさん:2011/06/16(木) 08:03:26.08
JavaServletでファイルをダウンロードしたいです。
調べたところ、応答をapplication/octet-stream形式にすればよいことが分かりました。
しかし、エラーが発生した場合やアクセス拒否をしたい場合、どのような応答を返せばよいのか分かりません。
まさか、不正アクセス者にはウィルスを返す・・・とかやる訳にはいきませんしね・・・。

611 : 【東電 59.2 %】 :2011/06/16(木) 08:16:17.11
>>610
システムの仕様に従って作ればいいんですよ。
まさか、仕様も決めずにに実装してる?

612 :デフォルトの名無しさん:2011/06/16(木) 08:28:54.69
>>611
趣味的なプログラム開発なので・・・。
ファイルのアプロダを作ってみたいのです。
出来がよかったら、公開もしてみたいです。

613 : 【東電 64.3 %】 :2011/06/16(木) 09:36:57.53
>>612
エラーに対応したページ作って、web.xmlに記載すればいい。

614 :デフォルトの名無しさん:2011/06/16(木) 09:46:53.35
>>606
こういうレス待ってた
2345は作れるんだけど、まず1ができない
3で割ればいいのか?

自分で考えてたのは
1.2つの整数x,yを入力
2.2つの整数を引き算するx - y = n
3.nに含まれる3の倍数を表示する
的な処理でやろうとしたんだけどそのときも3の倍数を抜き出せなかった

615 :デフォルトの名無しさん:2011/06/16(木) 10:19:54.72
よく読んでないけど%使っちゃだめなの?

616 :デフォルトの名無しさん:2011/06/16(木) 10:34:03.76
>>614
関数型言語に引っ越せ

617 :デフォルトの名無しさん:2011/06/16(木) 10:34:08.14
>>615
まだプログラミングで%は使ったことないです
使ってるのはScanner double int if Main return print newぐらい

でも%できるならちょっとやってみる
別に教えてくれてもいいんだぜ( 'ー`)

618 :デフォルトの名無しさん:2011/06/16(木) 10:35:45.45
>>614
>>606見て書いてみた。参考程度にどうぞ。
もう少しまとめられそうな気もするけど一応ちゃんと動く。
Scanner初めて使ったけどそこそこ便利だね。
行数自体はBufferedReaderで読んでInteger.parseIntで変換したのと
そんなに変わってないけどソースコードが読みやすいと思った。

http://www1.axfc.net/uploader/Sc/so/245379

619 :デフォルトの名無しさん:2011/06/16(木) 10:48:12.97
>>618
それだと、入力に負の整数が入ると動作がおかしくなるぞ
開始に-5とか入れると、-3も出るはずなのが出てこない

620 :デフォルトの名無しさん:2011/06/16(木) 10:51:34.75
>>618
>>619

これから学校だから休み時間にでも見てみる
ありがとう


621 :デフォルトの名無しさん:2011/06/16(木) 11:19:16.89
>>620
負の範囲を考えてなかった。
あとループの終了条件が to以下 でなく to未満 になってた。
それと負の範囲と非負の範囲に分けて処理するように修正。
これで大丈夫なはず。

http://www1.axfc.net/uploader/Sc/so/245385

622 :デフォルトの名無しさん:2011/06/16(木) 12:26:55.32
hoihoi

623 :デフォルトの名無しさん:2011/06/16(木) 12:27:04.84
>>621
ちゃんとできました!!
でもI0Exceptionとかbooleanとかはまだなので参考にしながら使える関数で簡単に作る
最終的にcmdで
javac a.java
java aMain
で実行の形にしたい\(^O^)/

624 :デフォルトの名無しさん:2011/06/16(木) 12:45:24.51
>>623
Javaはファイル名とクラス名は同じじゃないといけない。
このプログラムの場合同じにしていれば変えても動くよ。
だから a もしくは aMain のどっちかしか無理だと思う。
課題か何かでファイル名指定されてるの?

625 :デフォルトの名無しさん:2011/06/16(木) 13:05:15.11
>>623
気になって調べてみた。結果>>624は誤りだった。
実際に試してもみたんだけど、public と宣言についているクラスは
1ファイルに1つのみ宣言できて、宣言のあるファイルは
そのクラス名と同名にしなくてはならない。
でも public をつけなければその必要がない。
だからクラス宣言の public をはずせば
ファイル名を a に、クラス名を aMain にできる。

参考URL
http://www.ne.jp/asahi/hishidama/home/tech/java/class_def.html

626 :デフォルトの名無しさん:2011/06/16(木) 13:26:05.46
>>635
おお、本当だ
つーか public をつけないクラスとかは知ってるしよく使ってたけど
その中の public static void main() が起動できる事は知らなかったわ

627 :デフォルトの名無しさん:2011/06/16(木) 17:19:45.62
>>625>>621の人かな?
なんか今やってるのは1つのファイルに2つのクラスを記述するってやつなんだ
インスタンスとコンストラクタってのかな?
そんで関数もあまり使わずにすげー簡単に作ってる
習ったプログラムを参考にしたのをあげると



628 :デフォルトの名無しさん:2011/06/16(木) 17:19:56.81
class Inu {

   String voice;

   void bark(){
      System.out.println(voice);
   }
}

class InuMain{
   public static void main(String[] args){
      Inu Inu = new Inu();
      Inu.voice = "にゃんにゃん";
      Inu.bark();
   }
}

こんな感じ
作ったってか改変しただけだけど

ここで教えてもらったプログラムを参考にいろいろ考えたんだけど
この形に当てはめることがどうしてもできない
1つ目のクラスで数値の入力、
2つ目のMainのほうで3の倍数の抽出処理にすればいいのかな
逆か?


629 :デフォルトの名無しさん:2011/06/16(木) 18:33:55.03
class heikin {
public static void main(String args[]) {
int kokugo[] = {85, 55, 92};

for (int i = 0; i < 3; i++) {
}
System.out.println();
}
}

こう書いた場合、国語の合計はどう表示させればいいんですかね?
85点、55点、92点の合計ですけど

630 :デフォルトの名無しさん:2011/06/16(木) 18:38:19.22
合計用に変数用意して初期化して加算代入して表示じゃだめなんです?

631 :デフォルトの名無しさん:2011/06/16(木) 18:40:50.89
mysqlに保存して合計する

632 :デフォルトの名無しさん:2011/06/16(木) 18:44:01.43
>>629
クラス名が平均で、実際の処理は合計なの?

取り合えず合計はkokugo[]の下にkokugo_sunとでもint型の変数作って、書く要素を+=すれば良いよ


633 :デフォルトの名無しさん:2011/06/16(木) 18:46:09.60
class heikin {
public static void main(String args[]) {
int kokugo[] = {85, 55, 92};
int sum = 0

for (int i = 0; i < 3; i++) {
}
System.out.println(sum);
}
}

ループのところで足したいんだけどどう書けばいいんですか?
馬鹿なんで分からんのですよ

634 :デフォルトの名無しさん:2011/06/16(木) 18:48:47.14
>>632
とりあえず5教科の教科ごとの合計と教科ごとの平均を生徒に見立てたiを使ってやろうとしているのですよ
合計出せないんで平均までいかんのですよ

635 :デフォルトの名無しさん:2011/06/16(木) 18:49:02.32
>>633
えーと、驚愕すればいいんですか?

636 :デフォルトの名無しさん:2011/06/16(木) 18:49:52.25
>>633
だから、ループの中で

sum += kokugo[i]

するだけだって言ってんだろ


637 :デフォルトの名無しさん:2011/06/16(木) 18:51:10.90
>>634
だろうと思ったから、kokugo_sumって変数で作れって言ったのに。。。。


638 :デフォルトの名無しさん:2011/06/16(木) 18:52:19.00
>>636
ああああああああ

そういえばそうですね
いやもう何か最近書いてて何やってるのか分からなくなってくるんですよね

639 :デフォルトの名無しさん:2011/06/16(木) 18:54:59.48
JDBCの勉強にオヌヌメのDBと本とサイトおせーてくれませんか?

640 :デフォルトの名無しさん:2011/06/16(木) 18:55:09.94
sum += kokugo[i];
または
sum = sum + kokugo[i];

641 :デフォルトの名無しさん:2011/06/16(木) 18:57:11.70
Javaスレのはんぶんくらいは優しさでできています

642 :デフォルトの名無しさん:2011/06/16(木) 19:01:05.65
>>628
たぶん逆だね。
外部から与えられた情報で何かするクラスを宣言して、
Mainの方でそのインスタンスに情報与えて利用する。


643 :デフォルトの名無しさん:2011/06/16(木) 19:03:22.45
>>641
C#の方が使いやすいんだけど、自分でも答えられそうな簡単な質問がjavaスレでしか出ないだけだったりする


644 : 【東電 78.6 %】 :2011/06/16(木) 19:15:03.55
>>638
デスマに陥った時ってそうなるよな

645 :デフォルトの名無しさん:2011/06/16(木) 19:33:49.07
クロスサイトスクリプティング対策を行うための既存機能ってありませんか?

646 :デフォルトの名無しさん:2011/06/16(木) 19:55:26.15
bean:writeとか?

647 :デフォルトの名無しさん:2011/06/16(木) 20:01:21.14
ありがとうございます。
それについて調べてみます。

648 :デフォルトの名無しさん:2011/06/16(木) 20:28:41.75
それくらい自前で作ればいいのに。
確認画面とかで HTML に吐く前に & < > " ' の5つを単純に置換するだけだろ。
hidden とかからデータとして取り出したときは逆の置換をするだけだ。
置換したのを忘れて更に置換とかそういう馬鹿をやらなきゃ狂わない。




まあ、俺は昔何度かやっちまったけどな。
文字列が長くなったせいでデータベースが更新できなくなって焦った。

649 :デフォルトの名無しさん:2011/06/16(木) 20:43:43.15
ifの判定について質問なのですが
==で判定するのと、equalsで判定するのはどっちでもいいんでしょうか?
こういうときにこっちを使ったほうがいいとかそういうのはあるのでしょうか?


650 : 忍法帖【Lv=9,xxxP】 :2011/06/16(木) 21:28:35.71
質問です。

intent.putExtra("key","一");
アクティビティで"一"という文字を別のアクティビティに送りました。

String s = intent.getStringExtra("key").toString();
textview.setText(s);
とやったところTextViewに"一"と表示されるのですが、

if(s == "一"){
    textview.setText(key);
}
とif文を囲ってみたら何も表示されなくなりました。
sはif文の中の"一"とは別物なのでしょうか?
また、if文の"一"と同じにするにはどうすればいいでしょうか?
長文すみません。

651 :デフォルトの名無しさん:2011/06/16(木) 21:31:05.47
>>613
ありがとうございました。
web.xml は盲点でした。
仕様を調べてみます。

652 :デフォルトの名無しさん:2011/06/16(木) 21:32:36.60
class heikin {
public static void main(String args[]) {
int kokugo[] = {85, 55, 92};
int suugaku[] = {64, 77, 80};
int rika[] = {98, 69, 88};
int syakai[] = {70, 60, 95};
int eigo[] = {72, 52, 85};
int sum[] = new int[5];
doubule avg[] = new double[5];

for (int i = 0; i < 3; i++) {
sum[0] = sum[0] + kokugo[i];
sum[1] = sum[1] + suugaku[i];
sum[2] = sum[2] + rika[i];
sum[3] = sum[3] + syakai[i];
sum[4] = sum[4] + kokugo[i];
}
System.out.println(sum[0]);
System.out.println(sum[1]);
System.out.println(sum[2]);
System.out.println(sum[3]);
System.out.println(sum[4]);
}
}

これ短くするのって2次元配列とかいうの使わないと駄目なの?

653 :デフォルトの名無しさん:2011/06/16(木) 21:38:44.29
>>652
ループを入れ子にすればいいのに

654 :652:2011/06/16(木) 21:40:40.12
風邪ひいてるのに知恵熱でさらに頭痛くなってきた
生徒毎の、合計点と平均点
教科毎の、合計点と平均点
やらんといかんのに


655 :652:2011/06/16(木) 21:51:04.53
for (int i = 0; i < 3; i++) {
for (int j =0; i < 5; j++) {


}
}

こういうことですか?

656 :650:2011/06/16(木) 21:59:03.92
ごめんなさい、スレ間違えてました。

657 :デフォルトの名無しさん:2011/06/16(木) 22:11:56.26
うざい死ね

658 :デフォルトの名無しさん:2011/06/16(木) 22:21:06.19
>>649
同一性、同値性でググろう!

659 :デフォルトの名無しさん:2011/06/16(木) 23:28:23.78
>>649

"text" == "text" → true
("te" + "xt") == "text" → false

"text".equals("text") → true
("te" + "xt").equals("text") → true

660 :デフォルトの名無しさん:2011/06/16(木) 23:48:24.87
>>659
> ("te" + "xt") == "text" → false

気持ちはわかるが、これもtrueなんだよ…

661 :デフォルトの名無しさん:2011/06/17(金) 00:07:19.22
>>659
"te".concat("xt") == "text" → false

2つ目の例で言いたかったのはこういうことかと。
Stringクラスのconcatメソッドは結合した文字列を新たに生成する。

たしか "te" + "xt" みたいに定数同士の結合は
コンパイラが自動で結合済み("text")の状態にしていたと思う。
メソッドなどで動的に生成するとインスタンスが別に作られる。

662 :デフォルトの名無しさん:2011/06/17(金) 00:12:55.56
>>660
昔から疑問に思ってたんだが、

結局、これって
ポインターを見せないための
まやかし、というか
まがいもの、というか
付け刃だよねぇ。

663 :デフォルトの名無しさん:2011/06/17(金) 00:20:21.36
>>662
ごめん、もうちょっと詳しく。

664 :デフォルトの名無しさん:2011/06/17(金) 00:35:42.64
>>663
俺の勝手に思っている印象をそんなに聞きたいのか?
まあいいけど。


ひとことで言えば、ポインターを意識すりゃ、アドレスなのか、
間接参照なのかで明確に区別できることを、
==なんぞで一緒くたに判断させてるって感が否めないってことだけど。

665 :デフォルトの名無しさん:2011/06/17(金) 00:40:13.34
>>664
ん?んん?>>649が言ってるような、==とequalsの使い分けが(初心者にとって)
わかりづらいのは、Javaがポインタを隠蔽してるから、と言っている?

ポインタのあるCでも同じような質問は繰り返されてきたと思うけど…?

666 :デフォルトの名無しさん:2011/06/17(金) 00:46:23.83
>>665
C++でも、ポインターがあるから、理解がしやすい、とでも言おうか?
ポインターが希薄だから無理があるというか、やっちゃいけないような気がする、と思うんだけど

667 :デフォルトの名無しさん:2011/06/17(金) 01:11:05.61
equalsはオーバーライドしてるものだからクラス毎に振る舞いが違うだけです
Stringクラスのequalsは文字シーケンスが等しいか判断するのに対して
==はObjectクラスのequalsと同じくオブジェクトが等しいかを判断するものです
オーバーライドされてる意味を考えれば参照型で==を使うことはよくない

668 :デフォルトの名無しさん:2011/06/17(金) 01:13:04.31
まあ正直な所、Javaの設計ミスの一つ
==は同一性比較でなければならないなんてルールはない
GroovyやScalaではちゃっかり修正してあるし

669 :デフォルトの名無しさん:2011/06/17(金) 01:40:49.47
>>667
そもそも次元が違うから、override云々のセオリーは関係なくね。
==はequalsよりメタな存在だし。こういう事ができなくなる。

private final Descriptor
option1 = new Descriptor(),
option2 = new Descriptor(),
option3 = new Descriptor();

Map<Descriptor,String> map = 略;
map.put(option1,"a");
map.put(option2,"b");
map.put(option3,"c");
map.get(option1);
map.get(option2);
map.get(option3);

これ、単に文字比較するより早い。


670 :デフォルトの名無しさん:2011/06/17(金) 01:46:04.11
相談させてください。

複数スレッドで同期を取りたい設定Aを管理するため、管理用のクラスAを用意し
この中で、設定変更メソッド内にてsynchronizedで同期を取るようにしています。

各スレッドごとに、この設定Aの変更と同期して行いたい処理があるため、クラスAの
設定変更メソッドに、同期処理内容を引き渡しして、クラスAの設定変更メソッドの
synchronizedブロック内で実施させることを考えています。

質問一つ目
上記の方法は適切でしょうか?

質問二つ目
適切な場合、同期処理内容の引渡しはどのように行うべきでしょうか?
RunnableのrunをOverrideしたものを引き渡すとかでもよいのでしょうか?
それとも、専用クラスを作成すべきでしょうか?

よろしくお願いします。

671 :デフォルトの名無しさん:2011/06/17(金) 01:50:15.46
適切かどうかは実際にどうやるかによる
移譲使ってAからインターフェイス経由で呼べばいいよ

672 :デフォルトの名無しさん:2011/06/17(金) 02:33:46.97
>>669
Mapのキーが等しいか==を使って判断してるってこと?
Descriptorが同じ値を返すhashCodeとtrueを返すequalsをオーバーライドすれば
Mapのキーは同じものとして扱われるから関係なくもないと思うが

673 :デフォルトの名無しさん:2011/06/17(金) 06:05:52.84
>>649です
みなさん回答ありがとうございます
なんか難しそうな話してるのでとりあえずは==でやっていこうとおもいます
もうちょっと勉強してきます!

674 :デフォルトの名無しさん:2011/06/17(金) 06:10:50.53
そこはむしろ == はなんか違うと、代替方法を模索して欲しいけどな。
まあ課題作れれば十分なんだろうけど。

675 :デフォルトの名無しさん:2011/06/17(金) 07:38:45.29
ヌルバイト攻撃には、サーブレットで対処できますか?

676 :デフォルトの名無しさん:2011/06/17(金) 08:55:47.55
JavaMail ってライセンスを気にせず使ってよいものですか?
サーバ上に置いて使ったり再配布(改版なし)してもよかですか?

677 :デフォルトの名無しさん:2011/06/17(金) 09:53:36.79
また君か。
検索すれば直ぐ出てくるじゃないか。
http://www.oracle.com/technetwork/java/faq-135477.html#free

678 :デフォルトの名無しさん:2011/06/17(金) 10:41:05.04
いちいち小言言わずに黙って検索してください

679 :デフォルトの名無しさん:2011/06/17(金) 12:55:33.74
いちいち小言言わずに黙ってスルーしてください

680 :デフォルトの名無しさん:2011/06/17(金) 13:27:13.06
いちいち個ごと言わずにオラクルの有料サポート受けてくれw

681 :デフォルトの名無しさん:2011/06/17(金) 14:33:57.59
Javaのクラス間の変数を受け渡したいんだけどどうやればいい?

main.javaの中で

String name = "aiueo";
このnameを

Output.java
の中で、使いたいんだけど

main m = new main();
m.nameって感じには出てこないし、

Getterを作って
String getName(String name) {
return name;
}

m.getName();
とも出てこない

どうしたらいいの?ちなみにこのサンプルは適当に作ったから実際はちゃんとしたデータを引き取りたい

682 :デフォルトの名無しさん:2011/06/17(金) 14:42:01.58
すまん、出来たわ

publicクラス内じゃ出てこないのな・・・
関数内でやったらでてきたお騒がせなり

683 :デフォルトの名無しさん:2011/06/17(金) 14:55:04.43
うわーん、出来なかった…nullで渡される…

main mm = new main();
して

とあるクラス内に
String a = mm.name;
↑null

String a = mm.getName()
↑これ出てこない

(´・ω・`)なにゆえ

684 :デフォルトの名無しさん:2011/06/17(金) 15:05:09.42
(´・ω・`)スマン出てこない言うたのは、関数名間違ってただけ見たいだ
でもやっぱりnullしか帰って来ない

685 :デフォルトの名無しさん:2011/06/17(金) 15:12:59.13
うざい

686 :デフォルトの名無しさん:2011/06/17(金) 15:14:32.76
>>685
じゃあ教えておくれよん・・・

687 :デフォルトの名無しさん:2011/06/17(金) 15:17:04.26
クラス間の変数の受け渡しではなくて、MainからのOutputのクラスの呼び出しじゃないの?

688 :デフォルトの名無しさん:2011/06/17(金) 15:20:15.63
>>687
ふむ、 A.java と B.javaがあったとしてAがメインクラスとする。
B.javaから、A.javaにある nameっていう変数の中にあるものを取り出したい。
その時どうすればイイ?って話です。

extends A以外の方法で知りたい

689 :デフォルトの名無しさん:2011/06/17(金) 15:23:33.28
javaファイルを跨ったクラスのやり取りは

パッケージ java

でググってみてはどうだろう?


690 :デフォルトの名無しさん:2011/06/17(金) 15:48:23.79
>>675
対応できるように実装してくださいね。

691 :デフォルトの名無しさん:2011/06/17(金) 15:53:56.33
>>689
thx,メインクラスをimport したら、コール入った

692 :デフォルトの名無しさん:2011/06/17(金) 17:05:48.51
>>91 >>99 うーん

693 :デフォルトの名無しさん:2011/06/17(金) 17:10:24.62
(´・ω・`)
先生、import jp.test.*じゃなくて、mainにして
main mm = new main();       ←※1
nameB = mm.getName();
って取り出そうとしてもnullが入る(´・ω・`)

呼び出しはA.javaの関数いってるんだけど、その中身がnullになってる…
なにゆえですか(´・ω・`)
参照するのに※1でnewしてるからですかね。

694 :デフォルトの名無しさん:2011/06/17(金) 17:22:18.18
>>693
小文字のmainは予約語だから、使っちゃイヤン


695 :デフォルトの名無しさん:2011/06/17(金) 17:25:57.05
と言うか、今思い出した
クラス名は大文字で始めないとエラーになるんだよ

逆にメソッドは小文字で始めないとエラーになる

。。。大分忘れてるなぁ


696 :デフォルトの名無しさん:2011/06/17(金) 17:27:15.29
そんなバナナ

697 :デフォルトの名無しさん:2011/06/17(金) 17:32:24.03
>>694
あ、いや実際は別名になってます。

jp.test.java;

A.java
public class MyA {
public gName;
中略
public とあるクラス {
setName();
}

private void setName(String name) {
gName = name;
}
public String getName {
return gName;  ←呼ばれる前には ”あいうえお”が入ってる、呼ばれるとnullになってる
}
}

B.java
jp.test.java
import jp.test.java.MyA

public MyB {
MyA mm = new MyA();
とあるクラス{
String a = mm.getName(); ←nullが来る
}
}
こんな感じです

698 :デフォルトの名無しさん:2011/06/17(金) 17:33:49.86
とあるクラスじゃなかった、とある関数
ブレークポイントポチりながら動きみてったので、確かにMyA.javaの
getNameまでは行ってるんですが、その時みたら中身null(´・ω・`)

699 :デフォルトの名無しさん:2011/06/17(金) 17:39:34.01
javaで何を作りたいの?

700 :デフォルトの名無しさん:2011/06/17(金) 17:44:04.51
>>695
コンパイルエラーになるのではなく公式のAPIの命名規則がそうなだけ。
クラス名は単語の先頭が大文字、
メソッド名は一番最初以外の単語の先頭を大文字。

コーディング規約の和訳版の命名規則の章
http://numata.designed.jp/javacodeconv/CodeConventions.doc8.html#367

701 :デフォルトの名無しさん:2011/06/17(金) 17:44:29.65
本当に呼ばれる前には、文字が入っているのかい?
もうちょっと具体的にコードを晒して欲しいところだがエスパーすると、
同じ名前の別のクラスのインスタンスを作っているとか、別のインスタンスのgetNameを呼んでるとか

702 :デフォルトの名無しさん:2011/06/17(金) 17:47:57.58
>>697
多分、初期化してる場所に問題があるんじゃ無いかな
使う時には、すでにmmの寿命が尽きてて、空っぽになってる可能性がある

変数の寿命の範囲(スコープ)を見直してみては?


703 :デフォルトの名無しさん:2011/06/17(金) 17:58:55.47
>>701-702
A.javaからB.javaを呼び出す前までは
そこに保存データまでのリンクパスが残ってるんだけど "/うんたら/かんたら/これこれ/データ.jpg"
みたいな感じで(ブレークポイントをその場所に設定して、中身確認済み)

で、B.javaの方でその保存パスが欲しくて
○ String a = mm.getName(); // ○はブレークポイント
で潜っていくと、 A.javaにいって、 return 部分のデータを覗いてみると
name = null;
になってる感じですね。

初期化に関してはしていないというか、gNameの部分は毎回nameによる上書きをしているので
新しくname内に生成されない限りは問題ないはずなんですが…実際そこは通ってないですし
(2回目勝手に走ってるのか確認のためブレークポイントいれてみたけど、2回目通ってる形跡なし)
宣言部分もgNameに関してだけいえば、クラス直下なので、起動直後しか通らない(´・ω・`)

704 :デフォルトの名無しさん:2011/06/17(金) 18:21:52.32
速攻で、抜粋してみたけど
http://ideone.com/TAopo

こんな感じ?ですかね
クラス直下に、gName;があって
関数内で作った、nameをgNameに保存

で、B.javaで呼び出す感じ
MyA a = new MyA();
の部分に関しては、MyB直下で宣言しても変わらないかな

705 :デフォルトの名無しさん:2011/06/17(金) 18:23:23.31
>>703
上のコード断片見て、まさかとは思うけど、setNameがprivete宣言なのかな?
実際のコードではpublic宣言されてる事を祈るけど
(でも、それだとMyBでsetName使おうとするとエラーになるか。。。)

とにかくね、gNameかMyAクラスのどっちかが、すぐに寿命になってると思うから、コードを見直してみて


706 :デフォルトの名無しさん:2011/06/17(金) 18:38:58.13
>>704
うろ覚えで悪いけど、int,charとかの基本型以外は参照渡しだったと思うんだ

つまり、tekitouメソッド内のnameが消滅した時点でgNameはnullになってるんじゃないかな



707 :デフォルトの名無しさん:2011/06/17(金) 19:35:50.63
>>705
publicにしてます。

>>706
Class直下に、gNameと同様に、name宣言をおいてみましたが
やはりgetNameするときにはnullになってました。
なぜ保存されない…

708 :デフォルトの名無しさん:2011/06/17(金) 19:46:12.70
>>707
うーん
多分、nameと言うより、"あいうえお"みたいな文字列そのものの寿命がメソッド内で消滅するんじゃないかなぁ

コンストラクタでnameに代入しちゃダメなのかい?


709 :デフォルトの名無しさん:2011/06/17(金) 20:13:08.20
ヌルバイト攻撃ってJavaのサーブレットにも関係しますか?
Google先生で検索してもPHPの情報しか出てこなかったので、
もしかして関係ないのかなー、と。

710 :デフォルトの名無しさん:2011/06/17(金) 20:49:45.63
>>709
Web系知らんので、方針しか言えないけど、ヌルバイト攻撃とはどう言う攻撃かを知れば、php独自の問題か、Web系全体共通の問題かが分かると思う


711 :デフォルトの名無しさん:2011/06/17(金) 21:05:39.88
JavaMailとsendmail(SMTPサーバ)を使って、メール送信機能を実装したいです。
前者の使い方は何となく分かりましたが、後者が分かりません。
とりあえず、CentOSにyumでインストールした直後のところです。
この段階からどうすればよいのでしょうか?
同じマシン上からなので、JavaMailに設定するSMTPサーバのアドレスはlocalhostでよいとは思うのですが、
その他の送信元アドレスやら認証やらが分かりません。
スパム送信機にされないよう、セキュリティ高めの設定を教えてください。

712 :デフォルトの名無しさん:2011/06/17(金) 21:20:02.23
>>709
うん。具体的にはFileクラス周りが拙いらしい。CのIOを叩くからね。
具体的にはrequest.getParameterで取ってきた文字列を直接Fileクラス
にファイル名として突っ込んだりすると拙いらしい。
ただそんな設計はヌルバイト攻撃以前の問題だと思うのであまり話題に
ならないのかもしれない。

713 :デフォルトの名無しさん:2011/06/17(金) 21:51:34.41
>>707
とういかソースちゃんとはらないと、わかんないよw
697にしたって「public String getName {」とか文法おかしいしw コピペみすってるとしか思えない。


714 :デフォルトの名無しさん:2011/06/17(金) 21:57:40.55
ソース見て思った。
もう釣られないクマー

715 :デフォルトの名無しさん:2011/06/17(金) 22:46:12.15
>>677
m(_ _)m

716 :デフォルトの名無しさん:2011/06/17(金) 22:50:37.38
>>680
個人の趣味でプログラミングしてると、有料サポートってのは受け難いですよ
そりゃ仕事のときは、必要ならサポート受けますよ、会社のお金で
(もっとも最近はプログラミングやらないので、システムの構築ばっかの質問ですけどね)

717 :デフォルトの名無しさん:2011/06/17(金) 22:54:30.47
>>709
PHPだろうがJavaだろうが、入力値をちゃんとチェックしておけばNULLバイト攻撃は防げるよ。
ユーザーからの入力値をそのまま信用しなければ、PHPでもJavaでも問題にはならない。
ちょっと調べた感じ、フレームワークにはNullバイトチェックの仕組みが実装されていそうだけど、
全く無関係かどうかはちょっとわからないね。

718 :709:2011/06/17(金) 23:25:18.96
ありがとうございます。

>>710
文字列の途中に\0を挿入することで、
その後に続く文字列のチェックを回避する攻撃らしいです。
Javaで起きるとしたら、起きないはずのところで例外発生とかが出て、
サーブレットが落ちたりDBやファイルから情報抜かれたりするのかなー、
というくらいの認識です。
ただ、Javaって\0以降の文字列なんてのを認識したっけ?
という疑問がありますね。
Cだとchar型のバッファ領域確保して、\0までを文字列として扱っていたので、
それ以降にも値が存在する訳ですが。
Stringだと持っているのか捨てているのかクリアしているのか分からないですね。

>>712
ファイル名絡みは確かに怪しいですね。
ウェブでユーザからの入力値のチェックをしないことはないですが、
ファイル名に使わないように特に注意します。

>>717
了解しました。
入力値チェックの強化をアレコレ考えてみます。
うーん、ウェブは難しいですね・・・。

719 :デフォルトの名無しさん:2011/06/17(金) 23:36:59.47
うざい

720 :デフォルトの名無しさん:2011/06/18(土) 00:49:08.92
>>704
まさかとはおもうけど、MyAのTeKiTouを呼んでないって落ちじゃないよね?

721 :デフォルトの名無しさん:2011/06/18(土) 01:27:58.12
>>718
混乱するようなことを書いて申し訳ないが
結局

SQLインジェクションも
XSSも
ヌルバイト攻撃も

基本的には同じなんだよね。
で、Java側で防げるものとも限らないし、
OS、Webサーバ、DB側での対応も必要なケースもあったりするし。

多分今後10年UniCodeあたりで同じような問題が
雨後のたけのこのように出てくるだろうね。

722 :デフォルトの名無しさん:2011/06/18(土) 01:46:04.27
>>717
こんな馬鹿が大勢居るから、問題が解消できないんだよ。
ユーザの入力を信用しないところまではOKだけど、
入力値をちゃんとチェックしておけばOK・・・なんてアフォなwww

723 :デフォルトの名無しさん:2011/06/18(土) 01:48:37.61
なら指針をちゃんと書いてやれよ

724 :デフォルトの名無しさん:2011/06/18(土) 01:51:51.95
>>723
そんなん、具体的に書けないから問題なんだろwww
馬鹿?

例えば、
安全なパスワード入力用Class作りました。
記号は全部NGです、

ってなw
馬鹿を通り越してんなwww

725 :デフォルトの名無しさん:2011/06/18(土) 01:54:25.20
アプリケーションの要件と話をごちゃごちゃにするなよ

726 :デフォルトの名無しさん:2011/06/18(土) 01:55:41.04
>>718
>ただ、Javaって\0以降の文字列なんてのを認識したっけ?
試せば良いじゃん。

System.out.println("a\0b");
System.out.println(("a\0b").length());

結果は"a b"、3。
Javaはヌル文字も一文字として数えるし、ヌル文字のあとの文字列も無視
しない。Stringはバイト列と文字列長の両方を保持しているわけで。

なので本来はJavaではヌル文字問題はそれほど気にしなくて良い。
注意しなければならないのは文字列をファイルIOなどCの関数を叩くAPI。
Cの関数だけにバイト列だけを渡すものだからヌル文字問題が起きる。

ちょっと面倒だけどシェルコマンドを実行するexecも同じ問題があるから
試してみると良い。

Process p = Runtime.getRuntime().exec("cmd /c echo a\0b");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
p.waitFor();
System.out.println(reader.readLine());

Windows上のOracleのJREだと"a"しか表示されないよ。

727 :デフォルトの名無しさん:2011/06/18(土) 02:03:27.61
>>726
俺が攻撃者で、かつ
a\0b がユーザ任意に入力できるデータなら
このデータに続けて
\3b
を追加するw
意味は分かるよなwww

728 :デフォルトの名無しさん:2011/06/18(土) 02:04:59.65
>>718
ただ、まともなプログラマならクライアントから受け取ったdirtyな文字列を
サーブレット内で切った貼ったしてファイル名やシェルコマンドを組み立て
たりはしないと思う。
なんつうか、ヌル攻撃に絞った対策を気にする前にある程度基本的な作法を
守っておけば大半は回避出来るのではという印象。

729 :デフォルトの名無しさん:2011/06/18(土) 02:06:41.54
まじめに書こうか。

追加データは
0x3b 0x64 0x69 0x72 0x20 0x5c

730 :デフォルトの名無しさん:2011/06/18(土) 02:09:07.35
だから入力値チェックが効くって話だろ
バリデーションで防げないっていうのか?

731 :デフォルトの名無しさん:2011/06/18(土) 02:11:10.24
>>728
そうかなぁ。
SQL文なんかは、普通に切り貼りしてるけど。
その切り貼りの仕方を工夫して安全度を少し高めてるだけのような気がするけど。
むしろ、ユーザ入力データからシェルコマンドが実行できるシステム
って言うだけで垂涎のターゲットだから論外だろってなら
よく分かる

732 :デフォルトの名無しさん:2011/06/18(土) 02:19:12.05
>>730
君は、安全のためパスワード入力には記号は使えません、
と宣言しているのなら、言いたいことはよく理解できる

が、そんなシステム、パスワードクラックしてくださいなシステムだけどなw

733 :デフォルトの名無しさん:2011/06/18(土) 02:20:35.12
>>732
記号は使えませんなんて一度も書いた覚えがないんだが?
君はバリデーション=記号をはじくこととでも思っているのかい?

734 :デフォルトの名無しさん:2011/06/18(土) 02:24:06.47
>>730
うん。バリデーションで防げると思う。やるべきだと思う。
ただ消毒済みだからヌル値は気にしなくていいや〜とか気を抜いてホイホイ
文字列連結してIOに渡したりしていると今度はディレクトリトラバーサルや
コマンドインジェクションを食らったりすると思うw

なのでヌル値問題の対策だけじゃなくて、入力された文字列は基本的に信用
しない、直接IOに食べさせない作法も伴わないとダメかなと。

>>731
PreparedStatement使わないのと? と書こうとして、DBのAPI周りのヌル
文字の扱いがちと気になった。どうなんだろう。

735 :デフォルトの名無しさん:2011/06/18(土) 02:24:29.24
>>733
バックエンドの仕様も無しにバリデーション

そもそもバリデーションで防げると思っている方が
おめでたい。

そんなもんで防げるんだったらOSやWebサーバ、DB側での
対応は不要なはずだが、現実は必須だ

危険なものをなぜに安全と言いたいのだ?

736 :デフォルトの名無しさん:2011/06/18(土) 02:25:46.33
今はNULLバイト攻撃の話をしているのではないのか・・・?

737 :デフォルトの名無しさん:2011/06/18(土) 02:31:45.34
>>736
たとえば、だ
ユーザがUTF8エンコードしたデータを投げた場合、
バリデーションが出来ないケースや、
バリデーションしてもヌルバイト攻撃が発生する可能性は十分ある

738 :デフォルトの名無しさん:2011/06/18(土) 02:34:38.34
>>737
例えは文字コードの問題だろう。
文字コードによっては入力値チェックを突破する場合もあるだろうが、
それはバリデーションの前に行うことではないのか?

739 :デフォルトの名無しさん:2011/06/18(土) 02:41:25.04
>>738
文字コードチェックはまさにバリデーションだよ。
その後サニタイジングした値を別の関数やシステムに転送するのが普通

じゃ、該当関数やクラスが
文字コードやバリデーションが行なわれた結果かどうかなんて認識できるのかい?

740 :デフォルトの名無しさん:2011/06/18(土) 02:43:49.90
MineCraftっていうゲームをやっているときに画像のようなエラーが出るんですが
原因がわかる方いらっしゃいますか?

http://petite-soeur.dyndns.org/cgi-bin/up2/src/ps28455.png


スレ違いだったらすみません

741 :デフォルトの名無しさん:2011/06/18(土) 02:46:50.36
もっと書こうか?

パスワードのようにRawなデータを転送しなければならない場合に、
0xC0 0x80 のようなデータが来たとき、
システムはどう反応するんだろうね???

フロントエンドのJavaで対応するのかい?
バックエンドで対応するのかい?

バックエンドで対応しちまったときに、
場合によってはそのデータがNullと認識するシステムもあるんだぜ。
ま過去に少なくともそういうシステムがあったけどな
(バグフィックスという形で改修されたが)

こんなデータを含めて様々なバリエーションをバリデーションできるのかい?

742 :デフォルトの名無しさん:2011/06/18(土) 02:50:11.88
>>739
情報を付加することはできるだろうけどそのままでは認識できない。
言いたいことがよくわからないのだが、
汎用なメソッドでは汚染されているかどうかの確認がされないから、
バリデーションは無駄だというのかい。

743 :デフォルトの名無しさん:2011/06/18(土) 02:54:15.45
>>741
なんとなく言いたいことがわかってきたが、
rawなデータを扱う場合にNULLバイト攻撃を意識するのかっていう話にならないの?
その場合は、フロントエンドはすべてバイナリセーフにする以外に方法はないじゃない。

744 :デフォルトの名無しさん:2011/06/18(土) 02:54:58.56
>>742
入力チェックは最重要だが、
ヌルバイト攻撃が完全に防げるわけじゃない

防げると思っている人がいるなら、
そりゃおめでたいねぇ
と言いたい

745 :デフォルトの名無しさん:2011/06/18(土) 02:58:42.55
>>744
思うに、あんまり意見は食い違っていないような気がする。
入力チェックではヌルバイト攻撃を完全には防げないっていうのには同意。
ヌルが入る必要がないような場合では、入力値のチェックだけでどうにかなる・・・よね?

746 :デフォルトの名無しさん:2011/06/18(土) 03:01:02.62
>>743
いや、全てとは言わんが、
常識的に、
ユーザが任意で(ツール使用の有無を問わず)
入力できるデータには、少なくともバイナリセーフなコードが必要でしょ。

そうであっても解釈の問題云々でいろいろ問題が発生するんだから。
それを入力チェックだけでOKなんて
口が裂けても言えねぇwww

747 :デフォルトの名無しさん:2011/06/18(土) 03:03:28.95
>>746
とりあえずサニタイズしとけばOKはダメって話なだけだったのか・・・
色々と再確認できてよかったよ。トンクス

748 :デフォルトの名無しさん:2011/06/18(土) 03:03:54.08
>>745
入力チェックだけじゃ無理だろ。
パスワードの場合で

0xC0 0x80

をどうやって入力チェックで弾くの???
ウイルススキャナーにでも頼る????

749 :デフォルトの名無しさん:2011/06/18(土) 03:06:08.06
>>747
業務的な話だが、

みんなそんなにシビアにやっていないから、
そんなにシビアに考えることも無いよ、という結論も無いことも無い。
まあ、防げなかったときの事を考えてなにがし保険を掛けとくのは良い考え方かも。

750 :デフォルトの名無しさん:2011/06/18(土) 03:07:41.81
そこは念には念を入れるべきだと思うけどね。

利用者からの入力を処理する所で注意を払う。
実際の処理をする段階でも再度チェックする。
一度でもチェックすれば、もう安全なんて過信するから事故は起きる訳で。
想定外の津波が来ることはナイト過信してメルトダウンした放射能事故から全く学んでない。

751 :デフォルトの名無しさん:2011/06/18(土) 03:08:02.96
>>748
冗長なUnicodeの話?

752 :デフォルトの名無しさん:2011/06/18(土) 03:17:22.66
>>750
そそ

>>751
冗長なUTF8の問題
ただ、将来的にはそれとは別にUniCodeの問題が発生するかも。

少なくともJavaのClassにもライブラリにもDLLにも、
Rawデータを扱うことが前提のものと、
UTF8、UniCodeの処理後の値を扱うものと混在している。
将来的にプログラマがそれらを正しく扱ってくれるかどうかは、
不 明
だよ


753 :デフォルトの名無しさん:2011/06/18(土) 03:22:23.57
あ、
もう少し正しく書くと、

今回は文字コードを例に取っただけで、
それ以外にも潜在的に問題を発生させる原因は多々ある。
HTMLしかり、SQLしかり、

そもそも、TCP/IPでデータの大きさをあらかじめ通知する機能が無い
という時点でかなり潜在的な問題が発生する可能性が否定できない。

754 :デフォルトの名無しさん:2011/06/18(土) 09:32:16.43
なんかPHPのスレッドみたいwww

755 :デフォルトの名無しさん:2011/06/18(土) 10:01:21.13
jarファイル(a.jar)内のクラス(hoge.Class)を
別のjarファイル(b.jar)のクラスでインポートして
b.jarのクラスのmainメソッドでhoge.Classのインスタンスを生成してるんだけど、
実行すると NoClassDefFoundError: hoge/Class が発生します。
実行時に-cpでカレント、a.jar、b.jarにクラスパスを通してます。
a.jarを解凍してhoge/Classをカレントに配置すると正常に動作します。
jreのバージョンは1.6.0_26です。
原因がわかる人いますか?

756 :デフォルトの名無しさん:2011/06/18(土) 10:18:54.27
JAVAにデリゲートってないの?

757 :デフォルトの名無しさん:2011/06/18(土) 10:59:43.60
>>754
入力チェックさえしてればヌルバイト攻撃は大丈夫って寝言言う人が居るから・・・


758 :デフォルトの名無しさん:2011/06/18(土) 11:50:06.29
>>756
ないない
次のバージョンで追加されるという話もあったけど
結局全く話がまとまらずに企画倒れ

759 :デフォルトの名無しさん:2011/06/18(土) 11:52:22.45
>>755 OSとコマンドラインをさらしてみては?

760 :デフォルトの名無しさん:2011/06/18(土) 12:21:04.30
>>753
> TCP/IPでデータの大きさをあらかじめ通知する機能が無い
え?

761 :デフォルトの名無しさん:2011/06/18(土) 12:29:57.40
デリゲートなんていらん。内部クラスで十二分

762 :デフォルトの名無しさん:2011/06/18(土) 12:46:42.93
ポーカーの役を判定するプログラムを書いているのですが、
どうも思った結果が出なくて困っています
どこがおかしいか指摘していただきたいです

配列numberListはインデックスと同じ番号のカードの枚数のリストです
(10,11,12,13)と(1~8)の組み合わせでtrueになってしまいます
//ロイヤルストレートフラッシュか否かを判定
boolean royal(int[] numberList) {
boolean result;
int count = 0;
for (int i = 2; i < 10; i++)
if (numberList[i] == 0)
count = 0;
else
count = count + numberList[i];
if (count == 0)
result = true;
else
result = false;
return result;
}
ロイヤルストレートフラッシュは1,10,11,12,13
絵柄は判定済みなので省いています

763 :デフォルトの名無しさん:2011/06/18(土) 12:54:20.86
もうひとつお願いします
改行が多すぎます、と怒られました

連続した5枚でもfalseになってしまいます
//ストレートフラッシュか否かを判定
boolean straight(int[] numberList) {
boolean result;
int count = 0;
for (int i = 1; i < (numberList.length - 1); i++)
if (numberList[i] == numberList[i + 1])
count++;
if (count == 4)
result = true;
else
result = false;
return result;
}

764 :デフォルトの名無しさん:2011/06/18(土) 13:03:41.09
>>762
numberList[i] == 0の時にcountを0にリセットするのはまずいと思う
たとえばnumberList[9]の中身が0だったら他の数字と無関係にresult=trueになっちゃうだろ

765 :デフォルトの名無しさん:2011/06/18(土) 13:20:58.16
>>763
numberList[i] == numberList[i + 1]という条件は間違ってる
たとえば1,2,3,4,5という手札だったとしても、numberList[6]とnumberList[7]も中が0で等しいのでcountが増加してしまう
同様に他の比較でもcountが増加するので、count==4の条件が満たされない

766 :デフォルトの名無しさん:2011/06/18(土) 14:11:29.14
>>764
>>765
ありがとうございます
指摘されてみると単純なミスですね・・・

767 :デフォルトの名無しさん:2011/06/18(土) 15:09:52.26
>>760
>> TCP/IPでデータの大きさをあらかじめ通知する機能が無い
>え?
え?

Total Lengthの話をしてる?
シーケンス番号の話をしてる?
Windowサイズの話をしてる?
どれにしたってデータの大きさをあらかじめ通知する機能じゃ無い

ネットワークスレだからあまりうだうだ言いたかないが、
>>724あたりで馬鹿にされたからって、無理して背伸びするんじゃないよwww

768 : 忍法帖【Lv=10,xxxPT】 :2011/06/18(土) 15:56:03.35
IP にはあるじゃん
とウザイことを言ってみるテスト


769 :デフォルトの名無しさん:2011/06/18(土) 15:56:14.70
>>766
ヒントを出そう
ロイヤルの方の判定では「2〜9までの連続した手札がない」ことを手札の枚数を合計させて計算させている
ならばストレートフラッシュの方でも「i〜i+4までの連続した手札がある」ことを合計で求めることができるんじゃないか?

770 :デフォルトの名無しさん:2011/06/18(土) 16:17:55.89
うざい

771 :デフォルトの名無しさん:2011/06/18(土) 16:28:33.10
>>769
当たり前だが、最善の答えがすでにネットで調べればすぐわかるんだから、
わざわざヒントとか言わんでも
http://www.suffecool.net/poker/evaluator.html
http://www.senzee5.com/2006/06/some-perfect-hash.html

完全ハッシュでの探索 これが最速らしい

772 :デフォルトの名無しさん:2011/06/18(土) 16:33:49.87
>>771
それじゃ相手の身につかないだろ


773 :デフォルトの名無しさん:2011/06/18(土) 16:37:56.74
低学歴が人に何かを教えようとするとこうなる

774 :デフォルトの名無しさん:2011/06/18(土) 16:54:20.84
ゆとり乙

775 :デフォルトの名無しさん:2011/06/18(土) 17:02:12.00
>>761
やっぱラムダ式欲しいわw
いまの似非クロージャは、なんか無理してる感が。

776 :デフォルトの名無しさん:2011/06/18(土) 17:29:17.28
>>768
馬鹿をさらけ出してるお前はマゾ?
ウザイが、馬鹿丸出しなのがおもろいwww

777 :デフォルトの名無しさん:2011/06/18(土) 18:08:06.55
>>776
プ

778 :デフォルトの名無しさん:2011/06/18(土) 18:43:16.64
ゆとり乙

779 :Perl忍者:2011/06/18(土) 19:08:24.56
みんなこれフォロー
http://d.hatena.ne.jp/sugyan/20110616/1308203734

ここに乗ってるのフォローしてくださいお願いします

お願いですjavascriptのみなさんおねがいです

おねがいです>>776さんフォローしてください
僕はゆとりですよろしく

780 :デフォルトの名無しさん:2011/06/18(土) 21:12:38.49
ゆとりはPHPつかってろ

781 :755:2011/06/18(土) 21:21:14.09
>>759
OSはWindows XP SP3です。
コマンドは以下のように入力しました。
java -cp .;b.jar;a.jar; Test

ソースはこんな感じです。
<hoge/Classs.java> → a.jar
package hoge;
public class Classs {
public void execute() {
}
}

<Test.java> → b.jar
import hoge.Classs;
public class Test {
public static void main(String[] args) {
Classs c = new Classs();
c.execute();
}
}

たーすけてー

782 : 忍法帖【Lv=5,xxxP】 :2011/06/18(土) 21:48:18.98
javaの文法でコマンドプロンプトを呼び出す命令+javaファイルをコンパイルさせるやつとかない?


783 :デフォルトの名無しさん:2011/06/18(土) 21:49:56.69
>>755
jar tf a.jar
で hoge/Classs.class が存在するか確認するといいと思う。

784 :755:2011/06/18(土) 22:35:32.44
>>783
確認しましたが存在しました。
ちなみに、jar -xf a.jar でクラスを抽出して
実行するとエラーが発生しないんです。
なんでですかねー???

785 :デフォルトの名無しさん:2011/06/18(土) 22:36:54.54
配列の番地を返す方法ってどうすればいいですか?
たとえば、
String[] a = {a,b,c,d,e};
って入っていたとして、
cの番地(上のでは2)を探す方法です。

786 :デフォルトの名無しさん:2011/06/18(土) 22:45:24.81
>>785
cを検索して、見つかった時のインデックス(番地?)を返せば良いだけじゃね?

番地と聞くとメモリのアドレスの方が浮かぶから、配列の添字は番地って言って欲しくないな。。。


787 :デフォルトの名無しさん:2011/06/18(土) 23:19:27.46
>>783でなくてすまんが、俺のところではXP SP3, JRE 1.6.0_26で動くぞ

788 :デフォルトの名無しさん:2011/06/18(土) 23:24:11.57
>>785
ソートされているんであればArrays.binarySearch
されていないんであれば逐次探索
StringならListに入れてindexOf

789 :デフォルトの名無しさん:2011/06/18(土) 23:44:27.03
配列使う必要がない

790 :デフォルトの名無しさん:2011/06/18(土) 23:46:59.32
答えられねーなら黙ってろよアスペ

791 :デフォルトの名無しさん:2011/06/19(日) 00:56:34.58
すいません、javaの正規表現について、教えていただけませんでしょうか。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String str = "あいう第一倉庫えお第二倉庫かきく第一倉庫けこ";
Pattern p = Pattern.compile(".*(第.+倉庫?).*");
Matcher m = p.matcher(str);

if(m.matches())
{
 for(int i = 0; i < m.groupCount(); i++)
  System.out.println(m.group(i));
}

792 :デフォルトの名無しさん:2011/06/19(日) 01:00:16.58
>>790の続き

ここで、出力結果として

第一倉庫
第二倉庫
第一倉庫

と出てほしいのですが、現状は

あいう第一倉庫えお第二倉庫かきく第一倉庫けこ
第一倉庫

となってしまいます。
期待する結果となるようにするには、どのようにすれば良いでしょうか。
どなたかわかる方いらっしゃいましたらご教授ください。


793 :デフォルトの名無しさん:2011/06/19(日) 01:35:18.79
>>791
http://codepad.org/seprWfue

794 :デフォルトの名無しさん:2011/06/19(日) 01:37:48.01
ゴミが混じってる///


795 :デフォルトの名無しさん:2011/06/19(日) 01:38:07.98
>>793
Otherクラスかわゆすw

796 :デフォルトの名無しさん:2011/06/19(日) 01:57:39.05
>>793
ありがとうございます!
ばっちり出来ました。

Other ///

はともかく、本当に助かりました。


797 :デフォルトの名無しさん:2011/06/19(日) 03:16:14.91
tcpヘッダには描かれてると思うけどね。
描かれてないのに再送すべきか判断できないものw

cgiとかでhttpレベルでcontent-lengthが無いよwww
ってのはあり得るとは思うがw


ググったら、content-lengthで0を返す糞実装も世の中にはあるみたいねw

HTTP:Content-lengthを"0"と偽るWebサーバからのダウンロード時の検索動作
ttp://www.trendmicro.co.jp/esolution/solutionDetail.asp?solutionId=3784

798 :デフォルトの名無しさん:2011/06/19(日) 05:49:18.86
で?

799 :デフォルトの名無しさん:2011/06/19(日) 06:58:51.93
>>797
>tcpヘッダには描かれてると思うけどね。
思うけどね。って何だよwww
tcpには無いよ。
あるのはシーケンス番号だけだ

揃いも揃って馬鹿麦価だなwww


800 :デフォルトの名無しさん:2011/06/19(日) 07:46:15.41
>>797
未だにTCP/IPが主流なんだから、
TCPパケットの構造くらいは読んだ方がいい
っていうか、仕様が公開されてて、
解説も腐るほどあるものに対して
思うけどね。
とはw

801 :デフォルトの名無しさん:2011/06/19(日) 08:23:56.72
ラベルを2つ用意して、
上のラベルには
23+3*5=
というように入力した通りに表示ささって、
下のラベルには、"="が押されたら23+3*5の計算結果を表示する
電卓プログラムを作っています。
もし、"="が押された際式の中に*があったら
その前後の数字をDouble型に変換して、計算するようなプログラムにしたいのですが、
どんな方法がありますか?
ちなみに、入力はすべてボタンで、
if (e.getSource() == this.button0) {
value = "0";
sourse.setText(sourse.getText() + button0.getText());
}
のように処理します。


802 :デフォルトの名無しさん:2011/06/19(日) 11:01:52.66
>>801
基本、入力不可なラベル2つ用意して、別に入力用のテキストボックス用意するのか?

何のためにラベルが二つも必要なのか分からん


803 :デフォルトの名無しさん:2011/06/19(日) 11:22:07.88
>>801
構文解析でググれ

804 :デフォルトの名無しさん:2011/06/19(日) 11:30:31.36
evalでググれ

805 :デフォルトの名無しさん:2011/06/19(日) 11:52:08.21
ググったらほとんどのことは解決するからにちゃん要らないよなw

806 :デフォルトの名無しさん:2011/06/19(日) 12:03:27.70
ググり方を教えてくれること。
キーワードを教えてくれること。
これだけでも素人にはありがたい。
RTFMwww
とか書かれて、なにがなにやらだったw

807 :デフォルトの名無しさん:2011/06/19(日) 12:55:42.91
キーワードはあるな。
雑談から派生することもあるし。

808 :デフォルトの名無しさん:2011/06/19(日) 13:12:24.22
JSP/Servletでログファイル出力をするにはどうすればいいですか?
自分なりに調べたらjava.util.logging.FileHandlerが使えるかもしれない気がしましたが、
多くの端末からアクセスされる(マルチスレッド?)ことから使えるのか不安があります
また、接続元のIPアドレスを出力するのは基本だと思いますが、取得できますか?

809 :デフォルトの名無しさん:2011/06/19(日) 13:24:23.22
>>806
Fuck か Fullかは、議論の分かれるところwww

810 :デフォルトの名無しさん:2011/06/19(日) 13:25:15.59
>>797
こいつの涙目っぷりは、どこからきているんだい?

811 :デフォルトの名無しさん:2011/06/19(日) 14:07:02.11
http://en.wikipedia.org/wiki/Multiton_patternにあるように
Multitonってsynchronizedを使うべき?
マルチスレッド環境なんだけど。

812 :デフォルトの名無しさん:2011/06/19(日) 14:30:17.73
httpsurlconnectionにcookie喰わせたいんですが

//cookie取得
String cookieValue = null;
try{
cookieValue = urlconn.getHeaderField("Set-Cookie");
}catch (Exception e) {

}
System.out.println( " cookieValue: " + cookieValue);
urlconn.setRequestProperty("Cookie", cookieValue);
urlconn.connect();


だと上手く喰ってくれず落ちます。
cookie喰わすのってconnect前なんでしょうか?

813 :デフォルトの名無しさん:2011/06/19(日) 14:46:33.19
>>809
Fineという説も。

814 :デフォルトの名無しさん:2011/06/19(日) 14:59:52.27
>>813
Fine がありえないからFuckだのFullだの見たいな話になるんじゃないのかなぁ。
FineなMがあったら見てみたいwww

815 :デフォルトの名無しさん:2011/06/19(日) 15:01:31.66
日本、仮設住宅のほとんどを韓国に発注…韓国に1兆の経済効果
http://hatsukari.2ch.net/test/read.cgi/news/1308458713/

関連ニュース
迷走政権のツケずしり だぶつく仮設住宅、資材の在庫山積 住宅業界が悲鳴

政府は震災直後からプレハブ建築協会に仮設住宅の供給を要請。必要な戸数は4月上旬、
約7万2千戸に達し、専門のプレハブリース業者のほか、通常はプレハブを扱っていない
住宅メーカーも含めて、住宅業界が総掛かりで対応した。

 そんな状況がみなし仮設導入後に一変。必要戸数が激減し、約2万1千戸分が宙に浮いた。
各社は発注済み資材のキャンセルを強いられ、間に合わない分は大量在庫となった。

 住宅メーカー幹部は「仮設用に通常の住宅資材を短く切断して利用したり、
ユニットバスも小型のものを特別に注文したりして対応してきた。
今さら通常の顧客向けに転用することはできない」と指摘。
「最終的に廃棄処分も考えなければならない」(大手住宅メーカー)との声もある。

http://sankei.jp.msn.com/economy/news/110616/biz11061622440036-n1.htm


816 :デフォルトの名無しさん:2011/06/19(日) 16:30:08.94
JDKに標準で含まれているものは、
どう使うにしてもライセンスを気にしなくて大丈夫ですか?
例えば、XML解析にSAXを使ったとして、
その解析をサービスの一部として提供したりです。

817 :755:2011/06/19(日) 16:55:49.58
>>787
動きますか!?
動かーんっていう人いませんか?

818 :デフォルトの名無しさん:2011/06/19(日) 17:30:46.60
例外処理がわからない

自分で例外処理を作れるらしいがifと何が違うのよ

819 :デフォルトの名無しさん:2011/06/19(日) 17:35:21.70
>>818
お前は、マウスを動かした瞬間にif 文を発動するイベントドリブンができるとでもいうのか?
ある意味すげーな

820 :デフォルトの名無しさん:2011/06/19(日) 17:40:54.13
日本語でおけ

821 :デフォルトの名無しさん:2011/06/19(日) 18:24:16.69
あいかわらず質問も回答もずれてますなー

822 :デフォルトの名無しさん:2011/06/19(日) 18:56:24.22
ゆとりとコミュ力不足しかいないからな

823 :デフォルトの名無しさん:2011/06/19(日) 19:01:57.37
WindowsでDLNAサーバーのps3mediaserverをビルドを仕方を教えてください。
ソースは下記からTortoiseSVNでチェックアウトしましたl。
http://ps3mediaserver.googlecode.com/svn/tags/1.23.0/

build.xmlをantを使うみたいなのですが、「build install」と実行しても反応なしでした。

824 :デフォルトの名無しさん:2011/06/19(日) 19:25:04.03
>>797
ようやく戻ってきた。

あらあら。みんなにフルボッコされてんじゃん


825 :デフォルトの名無しさん:2011/06/19(日) 20:02:53.86
javaの宿題スレがないんですがここで聞いても答えてくれますか

826 :デフォルトの名無しさん:2011/06/19(日) 20:12:47.38
宿題スレを立ててそこで聞いてみれば?
回答されるとは限らないけど

827 :デフォルトの名無しさん:2011/06/19(日) 20:15:13.91
質問だったらこたえるんじゃない?
丸投げだったら、暇なやつがいたらプログラムつくってくるかもねぇ。
場合によっては、スレ違いだよ。と言われる。

828 :デフォルトの名無しさん:2011/06/19(日) 20:41:32.60
>>811
使わない理由が思いつかんが

829 :デフォルトの名無しさん:2011/06/19(日) 20:53:54.51
javaをアンインストールしてしまいました。 ダウンロードしても途中で終わってしまいます。どうしたら・・・64bit


830 :デフォルトの名無しさん:2011/06/19(日) 21:00:38.10
どうも最近ふいきんが変だと思ったら、宿題スレが消えてたのか…

831 :デフォルトの名無しさん:2011/06/19(日) 21:11:18.91
あと、ネットワークを知らないのに背伸びして恥かいているやつとかね。

832 :デフォルトの名無しさん:2011/06/19(日) 21:36:28.78
>>823
antははいっているの?そしてパスは通っているの?

833 :デフォルトの名無しさん:2011/06/20(月) 01:14:38.37
>>811
HashMapの実装を目を凝らして見てみないと正確なことはいえないが
Javaのサンプルにおけるdouble-checked lockingバージョンは間違ってるので
参考にしない方がいい。
今は上手く動いても、将来的に実装が変わるかもしれないしな。

イラっと来たので落書き

834 :823:2011/06/20(月) 02:12:25.95
>>832
「build install」ではなくて、「ant」コマンドでビルドできました。

835 :デフォルトの名無しさん:2011/06/20(月) 06:27:58.33
>>825
http://hibari.2ch.net/test/read.cgi/tech/1307166756/

836 :デフォルトの名無しさん:2011/06/20(月) 10:03:28.88
int[]の任意の位置のデータを取りたい場合どうすればいいんですか?
substring()みたいに開始位置、終了位置を指定できると理想なんですが

837 :デフォルトの名無しさん:2011/06/20(月) 10:33:14.30
int[]の任意の位置のデータならint[i]なんじゃねーの?

838 :836:2011/06/20(月) 10:33:38.95
あー・・・ctrl+spaceで出てこないんで勘違いしてました
普通に括弧でやるだけですね

839 :デフォルトの名無しさん:2011/06/20(月) 10:51:44.80
ServletからQRコードを出力したいのですが
オススメのライブラリは何でしょうか?

840 :デフォルトの名無しさん:2011/06/20(月) 11:13:41.56
>>839
Googleの中の人たちが作ってるZXingとか
http://code.google.com/p/zxing/

841 :デフォルトの名無しさん:2011/06/20(月) 12:05:13.95
>>833
そう。そこら辺の話。シングルトンで常識なんだから、書いてなかったけど、マルチトンもだよね?ってことでConcrrentHashMap使うことにした。

842 :デフォルトの名無しさん:2011/06/20(月) 13:55:04.10
>>841
マルチトンってなんだよ…

843 :デフォルトの名無しさん:2011/06/20(月) 14:08:40.78
>>842
飛べない豚のこと

844 :デフォルトの名無しさん:2011/06/20(月) 15:05:18.02
すっかり養豚場スレ。

845 :デフォルトの名無しさん:2011/06/20(月) 16:16:10.08
>>842
読み方ちがう??>multiton

846 :デフォルトの名無しさん:2011/06/20(月) 17:10:27.20
もともと便所スレだろ

847 :デフォルトの名無しさん:2011/06/20(月) 21:09:54.64
実行中のjarファイルのファイル名を変更することってできますか?

848 :デフォルトの名無しさん:2011/06/20(月) 21:45:42.90
だいぶ前からあるがmultitonはまだ日本じゃ認知されてないんじゃないだろうか?
ttp://en.wikipedia.org/wiki/Multiton_pattern

849 :デフォルトの名無しさん:2011/06/20(月) 22:35:10.26
さっきアップデートしたらインターネットがブチブチ

850 :デフォルトの名無しさん:2011/06/20(月) 23:38:03.17
Multitonという名前は認知されていないかもしれないが手法自体は
Singletonのバリエーションとして広く使われていると思う。

851 :デフォルトの名無しさん:2011/06/21(火) 00:00:30.24
タスクトレイに格納するのはできたけど、タスクバーから消すのができません・・

やっぱ、Javaじゃできないんでしょうか・・・

852 :851:2011/06/21(火) 00:37:36.30
自己解決しました。

853 :デフォルトの名無しさん:2011/06/21(火) 19:19:11.43
今からJavaの勉強をします。
環境構築の解説があるサイトを教えてください。

854 :デフォルトの名無しさん:2011/06/21(火) 19:21:18.97
ググればいくらでも出てくるだろう
情報の古いサイトも多いけどな

855 :デフォルトの名無しさん:2011/06/21(火) 19:28:20.13
200年代前半のサイトばかりでそのまま信用していいのか不安なんです

856 :デフォルトの名無しさん:2011/06/21(火) 20:14:24.28
>>855
そのサイトを教えてくれ。古すぎるにもほどがある。

857 :デフォルトの名無しさん:2011/06/21(火) 20:59:37.23
OracleのJavaSEのページ行って
「JDK 6 Update 26 with NetBeans 7.0」
のインストーラをダウンロードするのが楽かな。

200年代の話はしらんが、環境変数 CLASSPATH にはなるべく頼らない方がいい。

858 :デフォルトの名無しさん:2011/06/21(火) 21:57:43.71
>>855
そりゃ、奈良時代にjavaがあったなんて新説もいいところだな。

素人の俺で良ければwww

まあ、
javaの道 か
浅煎り珈琲

最終的にはこのあたりに行き着くんだろうね。

eclipseさえ使ってれば、シンプルなsyntaxエラーは逐次随時に教えてくれるから、
その辺から修行をしたいんだったら、逆にeclipseは使うな。
手っ取り早くっていうなら絶対にeclipse使え。

859 :デフォルトの名無しさん:2011/06/21(火) 22:56:53.73
jakarta commons は、ライセンスを明記したテキストファイルを同梱しさえすれば、
それを使ったプログラムを公開したり配布したり売ったりしても良いのですか?

860 :デフォルトの名無しさん:2011/06/21(火) 23:04:51.08
入門書一冊終わらせた程度ですがここからSJC-P目指すとどれ位時間が掛かるでしょうか

861 :デフォルトの名無しさん:2011/06/21(火) 23:09:46.62
>>860
Pは簡単だよ
あっという間さ
Dは面倒

862 :デフォルトの名無しさん:2011/06/22(水) 00:31:04.62
XMLファイル読み込みにDOMを使うのは時代遅れですか?
XML形式の設定ファイルを読み込むためにorg.w3c.domパッケージのDOMを使っています
ちょっとした設定ファイルで、多くてもせいぜい30〜40ノード程度です

また、ネットで調べていると、DOMはメモリ消費量や速度が問題だと書いてあります
JDK標準のDOMを使った場合、SAXやXercesよりもどのくらい劣りますか?

863 :デフォルトの名無しさん:2011/06/22(水) 00:57:50.32
メモリ嬢に全展開する時点でオワットル。

864 :デフォルトの名無しさん:2011/06/22(水) 01:09:30.48
やはり、SAXを使用するべきなのですね?

865 :デフォルトの名無しさん:2011/06/22(水) 02:39:21.40
まあ最近はデータベースをメモリ上に載っける技術も有るしねえ。

866 :デフォルトの名無しさん:2011/06/22(水) 04:19:59.03
速度とメモリの両立ならStAXじゃないだろうか?

867 :デフォルトの名無しさん:2011/06/22(水) 07:28:58.63
StAXとは何ですか?
DOMとSAX以外にも処理方法があるのですか?

868 :デフォルトの名無しさん:2011/06/22(水) 09:32:31.27
数十ノードのアプリ設定ファイルにSAXとかおおげさすぎる。DOMで十分。

869 :デフォルトの名無しさん:2011/06/22(水) 15:07:44.35
どういうアプリケーションなのでそんなにメモリや速度を気にする
必要があるのか、あるいは単にパフォーマンス厨なのかよく判らん。

870 :デフォルトの名無しさん:2011/06/22(水) 15:12:06.21
というか設定ファイル程度ならJAXBで良いのでは。

871 :デフォルトの名無しさん:2011/06/22(水) 15:32:42.70
>>866
>速度とメモリの両立ならStAXじゃないだろうか?
わけわからん。SAXと比べて速度やメモリの使用量の点でStAXは
何かそんなに違うのか?

872 :デフォルトの名無しさん:2011/06/22(水) 18:57:59.66
ログ出力したいんですけど、便利なクラスはないですか?
アクセスログとかそういうのを出したいです

873 :デフォルトの名無しさん:2011/06/22(水) 19:27:24.26
AccessLog 使えばいいよ 便利だし

874 :デフォルトの名無しさん:2011/06/22(水) 19:39:24.66
log4jはスレッドセーフじゃないから気をつけて

875 :デフォルトの名無しさん:2011/06/22(水) 20:17:14.32
>>872
標準API
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/logging/Logger.html
あとはlog4j以外だとslf4j
http://www.slf4j.org/

使い方は各々ググろう。

876 :デフォルトの名無しさん:2011/06/22(水) 21:47:45.46
SAX を使おうと思ったのですが、DTD のところでエラーになりました。
調べてみると、フルパスでないとファイルを識別できないとか。
ウェブアプリで使うのにどないしろと?
どうしようもないので、DOM に戻しました。

877 :デフォルトの名無しさん:2011/06/22(水) 21:49:33.23
どうしようもないのはおまえの頭だけだ。

878 : 【東電 80.5 %】 :2011/06/22(水) 22:32:15.07
>>876
DOMの時は検証OFFにしてただけではないのか?
どうしたいの?


879 :デフォルトの名無しさん:2011/06/22(水) 23:02:40.04
システムやブラウザソフトなど様々な場面で、マウスカーソル下の文字を辞書から
検索ししポップアップウィンドウに表示するlingoesというソフトがあります。
http://all-freesoft.net/document10/translation/lingoes/m-lingoes5.png
この、「様々な場面におけるマウス下の文字を取得する機能」と「その状態から
ポップアップウィンドウを表示する機能」をjavaのプログラムで実装したいのですが
出来ますか?もし出来るのなら方法を教えて頂けないでしょうか?

個人的にはシステム寄りな機能なので厳しいかなと思うのですが

880 :デフォルトの名無しさん:2011/06/22(水) 23:06:04.25
>>879
関係ないかも試練が、
入力されたパスワードが*で表示されているのを暴露するハッキングツールならいくつか存在してる。
C++ならOKってことだ。
Javaは知らんけど

881 :デフォルトの名無しさん:2011/06/22(水) 23:08:01.52
自己レス
fuckしてんのかな?
だったら、javaでフックできるかどうか、じゃないか?

882 :879:2011/06/22(水) 23:19:49.61
>>880-881
こういうのをフックと言うんですか。
調べてみるとグローバルフックと言うやつみたいですね。
しかもjavaのみでは無理でJNIとやらを使わないといけないみたいですね。
遠回りすることになりそうなのでC++でやってみます、ありがとうございました。

883 :デフォルトの名無しさん:2011/06/22(水) 23:38:00.71
>>877

884 :デフォルトの名無しさん:2011/06/23(木) 00:47:59.27
>>873-875
ありがとうございます。
検索して調べてみます。

885 :デフォルトの名無しさん:2011/06/23(木) 00:59:45.43
>>878
eclipse 使っているので、DTD はファイル編集時のテンプレとしてだけ使ってます。
読み込むときには不要なのですが、記述を消すわけにもいかず厄介です。

886 :デフォルトの名無しさん:2011/06/23(木) 01:24:33.43
>>885
java関係ないからxmlスレ行ったほうがいいんじゃないか?

887 :デフォルトの名無しさん:2011/06/23(木) 01:49:42.65
>>886
使用する言語は Java なので・・・^ ^;

888 :デフォルトの名無しさん:2011/06/23(木) 01:50:31.39
>>875
SLF4Jってスレッドセーフだっけ?

889 :デフォルトの名無しさん:2011/06/23(木) 03:03:46.78
スイングの時は、SwingUtilities.invokeLaterみたいな仕組みがあったけど、
他のスレッドセーフな呼び出し使う時にもそれぞれ個別にinvokeLaterが用意されてたりするの?

890 :デフォルトの名無しさん:2011/06/23(木) 07:33:32.25
簡単なロギングならjava.util.Loggingでいいと思うけどな
導入当初(JDK1.4)から「マルチスレッドセーフ」って書いてあるし
標準APIだからSLF4Jみたいにライセンスとか気にしなくていいし

891 :デフォルトの名無しさん:2011/06/23(木) 09:12:09.94
ネットの情報よりも自分を信じようぜ
つまり、試して確認しろってこと

892 :デフォルトの名無しさん:2011/06/23(木) 12:54:14.14
test

893 :デフォルトの名無しさん:2011/06/23(木) 13:36:56.98
Processingの教本でお勧めのものなどございますでしょうか?
初心者にも優しめのがいいんです。

894 :デフォルトの名無しさん:2011/06/23(木) 14:26:09.09
javaで、変数の書き換えを関数でやるにはどうしたらよいでしょうか?
C++では*を使ったポインターや、&で、そのまま書き換えが出来ましたが…

int a,b,cというデータがあり
関数呼び出し(a,b,c);

private 戻り値 関数名 ( int a, int b, int c) {
a = 1; b = 2; c = 3;
}

とやったところで、コピーされたaに値が入るだけで、呼び出しに使ったa,b,cは変動していませんよね。
例えば、これを戻り値にintを指定したとしたら、 return a で、 a = 関数(a );とやれば変更出来ますが
その場合1つしか値を変更出来ません。

どうしたらよいでしょうか

895 :デフォルトの名無しさん:2011/06/23(木) 14:34:33.39
>>894
参照型渡して状態書き換えるとか。

private void method (int[] a, int[] b, int[] c) {
a[0] = 1; b[0] = 2; c[0] = 3;
}

896 :デフォルトの名無しさん:2011/06/23(木) 14:39:38.22
>>895
なるほど、配列?にして渡せば良いのですね
有難うございます。

897 :デフォルトの名無しさん:2011/06/23(木) 16:04:09.19
>>896
いやいやいやいやいやいやw まともに受けるなよ。
(>>895もネタで書いているよね?)

実際のところ>>895みたいなコードは滅多にみないよ。
ではどんな方法が適切かというと、>>894で書かれた変数a, b, cの意味が
判らないと何とも言えない。クラス設計の問題であって単純な文法の問題
ではないと思う。

898 :デフォルトの名無しさん:2011/06/23(木) 16:12:48.87
そうやってすぐ設計のせいにするし

899 :デフォルトの名無しさん:2011/06/23(木) 16:20:50.74
文句言う前に自分なりの解答書けよ。

900 :デフォルトの名無しさん:2011/06/23(木) 16:27:13.21
こうだな。

private int a;
private int b;
private int c;
private void method () {
this.a = 1; this.b = 2; this.c = 3;
}



901 :デフォルトの名無しさん:2011/06/23(木) 16:45:06.78
char ch = '5';
int i = 12;
二つを足して表示させると65になりました。
どういう理屈なんでしょうか?

902 :デフォルトの名無しさん:2011/06/23(木) 16:48:30.73
charも数値

903 :デフォルトの名無しさん:2011/06/23(木) 17:11:01.45
static int a;
static int b;
static int c;

public void main(){
...
}

これは?www

904 :デフォルトの名無しさん:2011/06/23(木) 17:14:01.78
>>897
冗談はさておき、
すげー同意するなぁ。

そもそも、変更できないのには理由があるのに、
なぜ、大半の人は、どうやったら変更できるのか、という疑問にたどり着くのかが良く分からない。
変更できないことがすばらしい事だと実感できて無い人も多いようだし。

変更できるようにセッターゲッターロボ大量発生みたいな寝言みたいなコードを書く人も居るし。

905 :デフォルトの名無しさん:2011/06/23(木) 17:31:16.26
>>904
俺もセッターゲッターロボって言い回し使わせてもらおう。

906 :デフォルトの名無しさん:2011/06/23(木) 17:32:27.23
>>901
char ch = '5'; //0x35 == 53

907 :デフォルトの名無しさん:2011/06/23(木) 18:21:07.49
privateメソッドだから>>900が正解か
それだとC++でも似た書き方できるじゃんっていう
そもそもC++すら満足に理解できてない臭が…

908 :デフォルトの名無しさん:2011/06/23(木) 18:28:14.03
てか、
言語を知らない段階で暮らす設計 あ
クラス設計を教えるのは重要なことだと思うけどね。

いまだにいくら教えても、実装チューリングマシンなコードを書く奴もいるだろ?

909 :デフォルトの名無しさん:2011/06/23(木) 18:31:23.04
例えば・・・

ポーカーのプログラムで、Yama、Control、Tenouchi
の3つのクラスを作ったとして、
deal というメソッドをどこにどのように実装するか、見たいなね。

910 :デフォルトの名無しさん:2011/06/23(木) 18:39:32.95
実装チューリングマシンなコードというと例えばどういう動きをするんですか?

911 :デフォルトの名無しさん:2011/06/23(木) 18:47:36.70
>>910
10回繰り返す場合、
10コードをコピーペーストする
みたいな

912 :デフォルトの名無しさん:2011/06/23(木) 19:11:58.02
>>909
Controlが何をさすか判らん。

913 :デフォルトの名無しさん:2011/06/23(木) 19:13:07.93
>言語を知らない段階で
単語知らない段階で文法叩き込むぐらい不自然に聞こえる

クラス設計なんて理解しなくても動くものが作れる
現場でも保守性や可読性を差し置いて動くものを早急に求められる
ってのが原因じゃないのかな
納期までに死人が出ずどうやら動くものが完成するだけで精一杯の日本のIT産業じゃあ無理も無い
終電帰りの毎日でコードレビューやリファクタリングをしつつ技術向上ってのは夢の話だ

914 :デフォルトの名無しさん:2011/06/23(木) 19:19:57.96
>>912
cards という変数がある。トランプの山札に相当する。

cards はYama にpublicで定義されている (この段階で、え????と言える人が増える必要があるけど)

Tenouchi は参加者の手の内のカード

Control は YamaクラスからTenouchクラスにカードを配る役割のクラス

915 :デフォルトの名無しさん:2011/06/23(木) 19:43:59.49
>>914
俺様的完璧設計を披露したいのか例題としてわざと自爆設計を例示
したいのかはっきりしてくれ。

クラス名として日本語英語の混在は良いけれども動詞をクラス名に
するのはちょっと簡便だ。あとdealメソッドの要件定義もよろしく。

916 :デフォルトの名無しさん:2011/06/23(木) 20:00:37.75
事情によりやむを得ず1.4で開発してますが、5や6のサンプルが使えないのが辛いですね

917 :デフォルトの名無しさん:2011/06/23(木) 20:07:56.71
>>911
いまいち意味が分からないんですけど

918 :デフォルトの名無しさん:2011/06/23(木) 21:22:51.56
>>894
クラスのフィールドにする


919 :デフォルトの名無しさん:2011/06/23(木) 21:49:28.25
極力ライセンスを気にしたくないのと、
ドキュメントでマルチスレッドセーフと明言されている点を考慮して、
とりあえず java.util.logging.Logger クラスを使用することにしました。
設定ファイルをかまして何とかファイルに出力できたのですが、フォーマットがダメダメです。
ミリ秒まで表示できるフォーマッターはありませんか?

920 :デフォルトの名無しさん:2011/06/23(木) 22:07:02.61
>>915
指摘ごもっともだなwww
クラス名は名詞だ。

Yamaクラス:シャッフルしたカードを保有するクラス。shuffle()でカードを混ぜたりすることができる
cardsクラスはシャッフルしたカードの配列

Controlクラス:YamaとTenouchiのクラスを仲立ちし、権限が正しいかどうかを確認する(ここがみそかも)

Tenouchiクラス:ユーザに配られる5枚のカードの配列とそれを処理するクラス。throw()でカードを捨てたりcall()で上がりを宣言したりする。

921 :デフォルトの名無しさん:2011/06/23(木) 22:08:18.58
>>920
deal() は、新たなカードを配布して欲しいという要求を出すメソッド。
問題はこのdeal()をどこにどのようにおくか、ということ。
ただし、要求はTenouchiクラスから一番最初に行われる。

922 :デフォルトの名無しさん:2011/06/23(木) 22:09:25.30
>>918
多分、クラスのメンバーフィールドにするかどうかも、その変数の要件、要求によりけりだと思う。

923 :デフォルトの名無しさん:2011/06/23(木) 22:10:35.41
もう一つ追加で質問させてください。
java.util.logging.Logger と FileHandler を使って、
ログファイルを出力ができるようになったのは良いのですが、
ログ出力レベル(設定ファイルの .level)を FINEST や ALL にすると、
Tomcat 再起動時に数 MB 程度のテキストを吐き出してくださっちゃいます。
どうにかして、自分のログだけにできないものでしょうか?

924 :デフォルトの名無しさん:2011/06/23(木) 22:15:49.57
一応Javaについての質問なのでこちらでさせていただきます。

Webサイトからvalueの一部(value = "aaa,sss,ddd,fff,ggg"のfffのような感じ)をとってDB(またはテキスト管理)に保存しようと考えております。
その際にURLクラスを用いてHtmlコードを丸々取得したのちテキストとして処理するのと
JavaScriptのDOMで取得するのだとどちらの方が処理が早いでしょうか?
若干抽象的な質問ですがよろしくお願いしたします。

925 :デフォルトの名無しさん:2011/06/23(木) 22:32:38.60
お断りさせていまだきます。

926 :デフォルトの名無しさん:2011/06/23(木) 22:41:14.03
毎度礼の一言も言わずにネットの執事たちからいつも沢山の回答をもらえる
ゆとり>>894の一人勝ちってことでおk?

927 :デフォルトの名無しさん:2011/06/23(木) 22:43:56.26
>>926
遊ばれてるレスもあるけどな。

928 :デフォルトの名無しさん:2011/06/23(木) 22:44:02.31
>>926
すみません、遅くなりました。
ありがとうございました。

929 :デフォルトの名無しさん:2011/06/23(木) 22:44:09.26
そんなケチ臭いこと言わずに、自分で計測してみろとくらい答えてやれよ

930 :デフォルトの名無しさん:2011/06/23(木) 22:46:28.63
>>926
ちなみに、>>920-921の課題を>>894が解いたなら、
Yamaクラスなんて作らなくてもいいじゃん。Controlクラスだけでよくね?

って言いそうwww


931 :デフォルトの名無しさん:2011/06/23(木) 23:13:13.61
気持ち悪い変数名は使わないこと

932 :デフォルトの名無しさん:2011/06/23(木) 23:13:46.56
>>926
ゆとり乙

933 :デフォルトの名無しさん:2011/06/23(木) 23:16:48.37
>>931
別段変数やクラス名にこだわりは無い。好きに変えても怒りはしないよ。
ま、
君には過ぎた課題だからな。無理しなくてもいいよ。ってか無理だな。

934 :デフォルトの名無しさん:2011/06/24(金) 00:11:58.46
>>933
てか、あれだな。
>>931は人に教えたことが無いんだよ。
課題を出す場合には、理想よりも問題の趣旨が分かりやすいクラスや変数名を使わないと
頓珍漢な解答をしてくる人が必ず居る。

>>931は一人でコーディングしてる人なんだよ。ほっときなよ

935 :デフォルトの名無しさん:2011/06/24(金) 00:21:33.29
そうなのか?

936 :デフォルトの名無しさん:2011/06/24(金) 00:29:24.32
普通にControlにdeal()を作るだろ、アホか。

937 :デフォルトの名無しさん:2011/06/24(金) 00:38:15.92
>>936
素人発見www

938 :デフォルトの名無しさん:2011/06/24(金) 00:39:27.63
プログラムってセンスデルからなあ。

仕事頼むとすぐ出来る奴と何日も描けて音沙汰無しってのも居るからな。

939 :デフォルトの名無しさん:2011/06/24(金) 00:53:57.18
ヒントだ。
ほれ
http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/info_sec_tech/c-2-2.html

940 :デフォルトの名無しさん:2011/06/24(金) 07:27:52.92
自作したログ出力のフォーマッターを認識しないのですが、どうしてですか?
java.util.logging.Formatter を継承したクラスを作成し、format メソッドを実装しました。
そして、logManager の readConfiguration メソッドで

java.util.logging.FileHandler.formatter = sample.SampleFormatter

という記述のある properties ファイルを読み込んでいます。
しかし、出力されたログファイルを見てみると、なぜか XMLFormatter の内容になっています。
同フォーマッター記述を

java.util.logging.SimpleFormatter

にするとテキスト形式になるので、ファイル自体は認識されているのです。
ちなみに、例外やエラーは何も発生していないです。

941 :デフォルトの名無しさん:2011/06/24(金) 07:41:50.58
>>874
http://www.jajakarta.org/log4j/jakarta-log4j-1.1.3/docs/FAQ.html#thread-safety

942 :デフォルトの名無しさん:2011/06/24(金) 07:50:50.57
>>919
グーグル検索枠にその単語入力してみろ

>>923
>>875と↓のページ内をを"名前"で検索
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/logging/overview.html#1.8

943 :デフォルトの名無しさん:2011/06/24(金) 10:31:40.65
>>939
俺は知ってるぞ的な自慢厨か?


944 :デフォルトの名無しさん:2011/06/24(金) 11:37:34.61
Adapter(アダプタ)クラスってなんでAdapterっていうんですか?

Adapterってなんかと接続とかそんな感じだとおもうんですが・・

Inner(インナー)クラスとかAbstract(抽象)クラスとかはニュアンスがわかるんですが。
Adapterはどうもわかりません。

直接文法の質問ではないですが、知ってる人おしえてください。

945 :944:2011/06/24(金) 11:40:05.73
英和で検索したら
2 改作者, 翻案者, 編曲者.
ってでました。

この改作者って感じが一番近いんでしょうか・・

946 :デフォルトの名無しさん:2011/06/24(金) 11:41:38.70
>>945
適合させるもの

あたりが近いと思うよ

947 :944:2011/06/24(金) 11:47:29.47
>>946
なるほど、「適合させるもの」ですか。

なんか、「接続機」とかしか思い浮かばなかったんですが、英和辞典でしらべると
色々ありますね。っていうか、そっちが原義なんでしょうね。

ありがとうございました。ニュアンスがわかりました。

948 :944:2011/06/24(金) 11:50:44.99
色々、ネットの辞書を調べてみると、
「適合させるもの」とか「改作者」とかが1番目の用例で出てくる方が多いですね。
で、2番目が「接続機」とかの意味です。

どうも、本来の意味は「適合させるもの」とかみたいです。

949 :デフォルトの名無しさん:2011/06/24(金) 12:18:45.23
>>948
接続機も、適合させるもの、だよ。

接続させるためには接続元と接続先の形状やプロトコル、仕組み、などなどを一致させなければならない。
電源のコンセントなんかも、
銅線ケーブルと、壁のコンセントという別のものを適合させてあげる必要があるだろ。

950 :デフォルトの名無しさん:2011/06/24(金) 15:54:04.06
初心者で申し訳ないのですが質問させてください。
ArrayList を使用する時、

List list = new ArrayList();

とすることが多いですが、

ArrayList list = new ArrayList();

としない理由はなぜでしょうか。
List の呼び出し側が List の実装クラスを気にする必要がないようにしたり(抽象化プログラミング)
実装クラスの選択肢を多くしたりするためなのでしょうか

951 :デフォルトの名無しさん:2011/06/24(金) 15:56:30.90
>>950
かっこつけるため

952 :デフォルトの名無しさん:2011/06/24(金) 16:28:48.37
>>951
ArrayListでもカッコ付いとるがな、
なんつってな

953 :デフォルトの名無しさん:2011/06/24(金) 16:42:06.13
ローカル変数の話だよね?
設計上の意味はまったくない
ArrayListじゃなくて他のListを使いたくなったときに
new ArrayList();のところだけ修正すればもしかしたら動くかもしれない程度
まあ>>951と思っておけばいい

954 :デフォルトの名無しさん:2011/06/24(金) 16:50:19.52
読む人が楽。
Listの機能しか使わないって言ってるわけだから。

955 :デフォルトの名無しさん:2011/06/24(金) 17:15:28.21
確かに、Listの機能しか使わないとわかると読む時に楽ですね。
皆さんありがとうございました。

956 :デフォルトの名無しさん:2011/06/24(金) 17:23:37.12
>>952
腹抱えて笑ったよ。

957 :デフォルトの名無しさん:2011/06/24(金) 20:09:42.19
ログのフォーマットですが、どうにも解決できないので、構成ファイルを使うのをやめました。
なんというか、自作したフォーマッタークラスの存在を認識しないんですよね。(クラスローダーが糞なのですかね?)
仕方がないので、直接 FileHandler のインスタンスを生成して、そのメソッドから設定するようにしました。
ただ気に入らないのは、親 Logger のレベルも設定してやらないと fine などの低優先度のログが出ないことですね。
変えてやると、トムキヤット起動時にウィンウィンいって重くなって最悪ですよ。

958 :デフォルトの名無しさん:2011/06/24(金) 20:15:33.26
マルチスレッドの場合、シンクロナイズドの指定は必須ですか?

959 :デフォルトの名無しさん:2011/06/24(金) 20:21:32.78
>>957
チラ裏は日記でやれ

960 :デフォルトの名無しさん:2011/06/24(金) 20:25:15.32
タスクトレイにしまった状態で、
アクティブなウィンドウの画像をキャプチャしたいんですが、(要するにalt+prtsc)
Javaでできますか?

画面全体のキャプチャなら方法はネットに載っていました。

961 :960:2011/06/24(金) 20:39:24.91
JNAでWinAPIつかってやるしかないっすかね?

962 :デフォルトの名無しさん:2011/06/24(金) 20:44:44.36
>>960
SWT使えばアクティブウィンドウ取れなかったっけか?

963 :960:2011/06/24(金) 20:47:49.03
>>962
まじですか?
すごいですね。SWTはそんなことまでできるんですか・・
ちょっとしらべてみます。ありがとう。

964 :デフォルトの名無しさん:2011/06/24(金) 20:48:18.10
>>958
そんな単純じゃない。
タグリー、ゲーツ、結城あたりの本でも嫁。

965 :デフォルトの名無しさん:2011/06/24(金) 20:53:42.09
>>963
org.eclipse.swt.internal.win32.OS#GetActiveWindow()

Eclipse使ってるなら、pluginsフォルダのSWT使えばJNA使う手間省けるってだけ。
3.6.2にはあるけど本来公開されてない部分だから過去将来もあるって保証はないし。

966 :デフォルトの名無しさん:2011/06/24(金) 21:00:08.39
swtはどこが使いやすいんですか?イベントとかも

967 :960:2011/06/24(金) 21:00:18.18
>>965
おお、どうもありがとうございます。
そいつでやってみます!ありがたや〜

JNAとかめんどうだから、助かります!

968 :デフォルトの名無しさん:2011/06/24(金) 22:51:30.64
IT土方な>>953に幸あらんことを。

969 :デフォルトの名無しさん:2011/06/24(金) 23:06:11.21
>>965
できるよ。
以上。
はい次の方。

970 :デフォルトの名無しさん:2011/06/24(金) 23:27:57.47
>>958じゃないけどJavaマルチスレッドの備忘録的な本でお勧めある?
言語変わるとき混乱するからJavaの絵本的な流し読みできるのがあると捗るから

971 :デフォルトの名無しさん:2011/06/24(金) 23:40:43.95
並列処理の本質は言語に依存しないと思うけど。

ま、君にはこれがお似合いだよ
http://www.hyuki.com/dp/dp2.html


972 :デフォルトの名無しさん:2011/06/24(金) 23:41:52.99
winvistaです
http://d.hatena.ne.jp/miyohide/20100317/1268828739 このサイトに書いてある事をやろうと思って
上記のサイトのコードをC:\JdbcAccess.java に保存
上記のサイトに記入してあるライブラリをC:\sqlitejdbc-v056.jar に保存しました
この状態でどうコマンドプロンプトを叩けば、上記のサイトの「実行してみる。」の後の通りのコードが表示されるのでしょうか

javac C:\JdbcAccess.java
java -classpath C:\sqlitejdbc-v056.jar C:\JdbcAccess
では通りませんでした


973 :デフォルトの名無しさん:2011/06/25(土) 00:11:03.29
>>971
同じJava言語ユーザでも読解力は個人に依存する様だね。

って、レス貰っといてこんな言い草も無いわなw
いくら概念は頭に入ってても、
「あれ?書き方こんなんで良かったけ」って不安になる事が良くあるだろ
複数言語ローテーションで掛け持ちしてると、次の言語入る前に軽く総復習がいる

974 :デフォルトの名無しさん:2011/06/25(土) 00:41:27.33
環境変数classpathにセットしたjarファイルって
実行中のjavaでインポートしてなくてもファイルがロックされますか?
実行中のjavaでバージョンチェックして更新されてたら
jarファイルを更新しようと思うのですが、名前が変更できませんでした。

JRE:1.6.0 update 26
OS:Windows XP SP3

975 :デフォルトの名無しさん:2011/06/25(土) 03:51:57.07
Windowsは使用中のファイルを名前変更できない
Unix系はできる

976 :975:2011/06/25(土) 04:01:53.37
そういうことではなかったか
そのクラスを使用してなくてもロードしたいクラスがどの jar にあるかは全部開いてみないとわからないからクラスパス全部開いちゃうんじゃない、たぶん
標準の URLClassLoader は閉じるタイミングを制御できないから自前のクラスローダを作るといいよ

977 :デフォルトの名無しさん:2011/06/25(土) 10:16:20.99
>>972
そういうときはどんなエラーが出たのかも書こう!

C:\ にいる状態で
java -classpath sqlitejdbc-v056.jar JdbcAccess
(リンク先はmiyohideパッケージに入ってるけど)
かな?最後はファイルパスじゃなくてクラス名を指定するんだ!

978 :デフォルトの名無しさん:2011/06/25(土) 11:17:37.15
>>977さんは、親切だなあ

979 :デフォルトの名無しさん:2011/06/25(土) 11:56:52.66
ドライブルートにそんなファイル散らかすなよ。

980 :デフォルトの名無しさん:2011/06/25(土) 11:58:52.17
田舎の方にはドライブスルーとか言う代物はまだあるんですか?

981 :デフォルトの名無しさん:2011/06/25(土) 12:02:44.46
どザえもんの間違いだろ

982 :デフォルトの名無しさん:2011/06/25(土) 17:03:31.23
都会に住んでることが唯一の自慢かwww

産め。

983 :デフォルトの名無しさん:2011/06/25(土) 17:23:19.27
まあ田舎は都会のおかげで食っていけてるわけだし

984 :デフォルトの名無しさん:2011/06/25(土) 17:23:57.12
うちは坪単価360万だから田舎だな


生め

985 :デフォルトの名無しさん:2011/06/25(土) 17:26:48.57
前回(>>950)はありがとうございました。
お手数おかけしますが今回も質問させてください。

標準入力の数字一桁を変数に格納したいのですが、
↓のコードでは別の値が取得できてしまいます。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = br.read();
System.out.println(num);

例えば、標準入力の数字一桁を 1 とすると、num は 49 となってしまいます。
read() メソッドを使わず、readLine() メソッドを使って

int num = Integer.parseInt(br.readLine());

とすると num は期待通りの 1 となってくれます。
read() メソッドの使い方をどのように直せば良いのでしょうか

986 :デフォルトの名無しさん:2011/06/25(土) 17:37:07.97
read は文字を読むもの
文字とは ' ' で囲ったもの
49 と '1' は等しい
つまり read は正しく '1' を返している
数値が欲しいのなら、文字を数値に変換しなければならない
つまり readLine のときに使った parseInt に相当することをしなければならない
例えば
int num = Integer.parseInt(String.valueOf((char) br.read()));
とか
int num = Character.digit(br.read(), 10);
とか、あるいはもっと安直に
int num = br.read() - '0';
とか
int num = br.read() - 48;
とか

987 :デフォルトの名無しさん:2011/06/25(土) 19:06:26.23
今、JFreecharを使って折れ線グラフを作っています。

グラフの値によって、横軸、縦軸の目盛りが入って来るのですが、
目盛のあの数値は非表示にしたいのですが、
どこで設定してよいか見つかりません。

もし、よろしければ教えてください。

988 :デフォルトの名無しさん:2011/06/25(土) 19:53:38.19
すいません。参考書にこんな継承のプログラムがあるんですが、コンパイル出来ません
(※スーパークラスは省略します)

class Human extends Ape {
}
class HumanMain {
public static void main(Stritg args[]) {
Human h = new Human();
System.out.println(h.favorite);
h.sleep();
}
}

これは昔の文法なのでしょうか?

989 :デフォルトの名無しさん:2011/06/25(土) 19:58:35.52
>>986
ありがとうございます! 教えていただいた通り、
int num = Integer.parseInt(String.valueOf((char) br.read()));
で 1 が取得できました。

もともと、下記ページの API リファレンスに
read() メソッドの戻り値は int と書かれているので
int num = br.read()
と書いたのですが、API リファレンスをよく読むと
「0 〜 65535 (0x00-0xffff) の範囲の整数としての、読み込まれた文字」
と書いてあるんですね。納得できました。

BufferedReader (Java 2 Platform SE 5.0)
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/BufferedReader.html#read()

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

990 :デフォルトの名無しさん:2011/06/25(土) 20:30:22.93
>>988
favoriteが定義されていないとかいうオチじゃないだろうな?
本を引用するなら書名とISBNを晒せばいいのに。

991 :デフォルトの名無しさん:2011/06/25(土) 20:30:48.38
>>988
エラー内容がわからないが、sleepの部分をtry-catchで囲むとか。

992 :デフォルトの名無しさん:2011/06/25(土) 20:31:45.42
うへ、スレッドと勘違いした、>>991は無視してくれ。

993 :デフォルトの名無しさん:2011/06/25(土) 20:35:04.65
>>988
エラーが出るなら、エラーの内容を晒せばいいのに。

994 :デフォルトの名無しさん:2011/06/25(土) 20:49:07.99
>>990
書名:基礎からのJava
ISBN978-4-7973-4129-4

>>993
java.lang.NoSuchMethodError: main
Exception in thread "main"

995 :デフォルトの名無しさん:2011/06/25(土) 21:19:52.98
>>994
それコンパイルエラーじゃねえええ
実行したコマンドは?

996 :デフォルトの名無しさん:2011/06/25(土) 21:24:20.01
>>995
javac Human.java
だけです

997 :デフォルトの名無しさん:2011/06/25(土) 21:26:03.96
>>995
あ、まちがえました
java Human
です

998 :デフォルトの名無しさん:2011/06/25(土) 21:29:07.96
Human に main はあるのか?
何を実行しようとしているんだ

999 :デフォルトの名無しさん:2011/06/25(土) 21:36:37.18
>>998
>>988です
見ての通りHumanにはmainはありません

ああ・・スレ落ちちゃう・・・


1000 :デフォルトの名無しさん:2011/06/25(土) 21:36:45.88
HumanMainクラスはHuman.javaではなくHumanMain.javaに
記述してこれもコンパイル。実行時はjava HumanMain

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

265 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)