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

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

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

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

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

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

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

2 :デフォルトの名無しさん:2009/06/09(火) 19:18:13
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
http://pc11.2ch.net/test/read.cgi/tech/1233822965/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50

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

**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

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

3 :デフォルトの名無しさん:2009/06/09(火) 19:21:00
楽天、出店企業に顧客情報…中止表明後も1件10円で
http://www.yomiuri.co.jp/national/news/20090605-OYT1T00623.htm

4 :デフォルトの名無しさん:2009/06/09(火) 20:00:31
そろそろ良い加減にせいよ。

5 :デフォルトの名無しさん:2009/06/09(火) 20:03:53
768 名前:デフォルトの名無しさん 投稿日:2009/06/06(土) 20:46:10
JVMはもともと文字列プールというものを持っていて、
いわゆる文字型リテラルが指定された段階でプールにオブジェクトを作成し、そこへのポインタを返す。
同一の文字列が既にプールに在る場合は、そこへのポインタを返す。

776 名前:デフォルトの名無しさん 投稿日:2009/06/07(日) 02:14:11
たしかに明記されてるな。

String literals-or, more generally, strings that are the values of constant
expressions (§15.28)-are "interned" so as to share unique instances,
using the method String.intern.

文字列定数はString.internを使って得た一意なインスタンス。

6 :デフォルトの名無しさん:2009/06/09(火) 20:05:28
わざとそのポインタを全部に橋渡すテクニックも有るけどな

7 :デフォルトの名無しさん:2009/06/09(火) 20:06:36
だからなんでわざわざ文字列比較しようとすんだよ。
TreeNodeそのもの比較しろや。

8 :デフォルトの名無しさん:2009/06/09(火) 20:14:18
すみません。
SwingのJChoiceクラスがないんですけど
何を使えばよろしいですか?

9 :デフォルトの名無しさん:2009/06/09(火) 20:17:05
JChoiceって何

10 :デフォルトの名無しさん:2009/06/09(火) 20:21:19
ChoiceのSwing版がないんです。
JBottonとかはあります。

11 :デフォルトの名無しさん:2009/06/09(火) 20:23:15
>>10
JComboBox かな

12 :デフォルトの名無しさん:2009/06/09(火) 20:23:29
参考書買え

13 :デフォルトの名無しさん:2009/06/09(火) 20:40:11
>>11
有難うございます。
>>12
買えと命令するのなら、
買う本くらい示したらどうだ?

14 :デフォルトの名無しさん:2009/06/09(火) 20:44:57
俺には君がどのくらいの知識を持っているかわからんだろう

15 :デフォルトの名無しさん:2009/06/09(火) 20:46:08
どれくらいの知識があるのか分からんのなら質問しろよ。
エスパーでもなければ不可能に決まってるだろ。

16 :デフォルトの名無しさん:2009/06/09(火) 20:47:32
引数がおかしな値だったら戻り値に、nullを返そうと思っているんだけど
nullよりも、例外を発生させる事の方が多いの?

17 :デフォルトの名無しさん:2009/06/09(火) 20:47:45
じゃあ、お前さんは何をつくりたいのだ

18 :デフォルトの名無しさん:2009/06/09(火) 20:50:58
ボタンやスイッチなどが100以上並んでいて、初心者が容易に操作できない玄人好みのソフト。

19 :デフォルトの名無しさん:2009/06/09(火) 20:51:43
玄人はコマンドラインを好むってリナ厨のおっさんが言ってた

20 :デフォルトの名無しさん:2009/06/09(火) 20:55:31
ttp://www.amazon.co.jp/SWING-JOY-EGO-WRAPPIN%E2%80%99/dp/B00005F2RO

21 :デフォルトの名無しさん:2009/06/09(火) 21:01:56
>>17
http://pc12.2ch.net/test/read.cgi/tech/1244542623/
http://pc12.2ch.net/tech/dat/1244542623.dat
変換するプログラム

22 :デフォルトの名無しさん:2009/06/09(火) 21:09:46
>>16
とりあえず例外投げとけ。
5行くらい説明を書いていて途中で面倒くさくなった。

23 :デフォルトの名無しさん:2009/06/09(火) 21:18:00
Choiceってのは使う機会今まで10数年間なかったんだが
これってPopupMenuの類なの?

24 :デフォルトの名無しさん:2009/06/09(火) 21:26:18
>>16
プリミティブなintとかが返値の型の時はどうすんのさ。


25 :デフォルトの名無しさん:2009/06/09(火) 21:29:26
>>8
swingに慣れていないのならThe Swing TutorialのUsing Swing Componentsに
swingのコンポーネントが一通り紹介されてるから目を通しておいた方がいい。
というかLearning Swing with the NetBeans IDEは環境の好みの問題もあるだろうから別にしても
他の項目は読んでおいて損はない。
ttp://java.sun.com/docs/books/tutorial/uiswing/index.html

26 :デフォルトの名無しさん:2009/06/09(火) 21:55:46
>>22
わかった、ありがとう

27 :デフォルトの名無しさん:2009/06/09(火) 21:58:06
>>前スレ928
今前スレ見たんだけど、こんな感じのことかな?違ったらスルーで。
無理やり縮めてるけど勘弁して。

// 作成順のインデックスを持つNodeクラス
import javax.swing.tree.DefaultMutableTreeNode;

public class HoldIndexNode extends DefaultMutableTreeNode {
 private static int totalNodeIndex = 0;
 private int nodeIndex;
 
 // コンストラクタ
 public HoldIndexNode() {
  super(); setNodeIndex();
 }
 public HoldIndexNode(Object userObject) {
  super(userObject); setNodeIndex();
 }
 public HoldIndexNode(Object userObject, boolean allowsChildren) {
  super(userObject, allowsChildren); setNodeIndex();
 }
 // インデックス設定
 private void setNodeIndex() {
  nodeIndex = totalNodeIndex; totalNodeIndex++;
 }
 // インデックス取得
 public int getNodeIndex() {
  return nodeIndex;
 }
}


28 :>>27続き:2009/06/09(火) 21:58:58
// HoldIndexNodeテスト用クラス
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

public class Main {
 public static void main(String[] args) {
  HoldIndexNode root = new HoldIndexNode("ルート");
  HoldIndexNode node1 = new HoldIndexNode("子1");
  HoldIndexNode node2 = new HoldIndexNode("子供(文字列同じ)");
  HoldIndexNode node3 = new HoldIndexNode("子3");
  HoldIndexNode node4 = new HoldIndexNode("子供(文字列同じ)");
  root.add(node1); root.add(node2); root.add(node3); root.add(node4);
  JTree tree = new JTree(root);
  tree.addMouseListener( new MouseAdapter() {
   public void mouseReleased(MouseEvent e) {
    JTree tree = (JTree)e.getSource();
    TreePath path = tree.getPathForLocation(e.getX(), e.getY());
    if( path != null ) {
     HoldIndexNode selectNode = (HoldIndexNode)path.getLastPathComponent();
     System.out.println("selectNode.toString() =" + selectNode.toString());
     System.out.println("selectNode.getNodeIndex()=" + selectNode.getNodeIndex() + "\n");
    }
   }
  });
  JFrame frame = new JFrame("HoldIndexNode Test");
  frame.getContentPane().add(tree);
  frame.pack();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);
 }
}

29 :デフォルトの名無しさん:2009/06/09(火) 22:07:29
>>6
全部?
日本語でおk?
ん?どうやるの?

30 :デフォルトの名無しさん:2009/06/09(火) 22:24:03
Stringで文字列連結をすると、オブジェクトが破棄されて新しくオブジェクトを作りなおしますが、
str += "def" + "ghi" + "lmn" + "opq・・・と一行に書いた場合は、
オブジェクトは何度も作り直されるのですか?

31 :デフォルトの名無しさん:2009/06/09(火) 23:33:56
>>30
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html

32 :デフォルトの名無しさん:2009/06/10(水) 00:07:26
ただ=でsetメソッドでフィールドに渡すだけだよ
日本語だけどなあ最近外人多いな

33 :デフォルトの名無しさん:2009/06/10(水) 00:19:23
抽象クラスを継承したとき、実装するメソッドは部分的でいいと
ずっと思っていたけど、全部実装しないといけないんですね?
じゃあ、インターフェイスと同じなんですかね。

34 :デフォルトの名無しさん:2009/06/10(水) 00:21:26
部分的にはね

35 :デフォルトの名無しさん:2009/06/10(水) 00:22:57
ただインターフェースはインプリで複数していできるしね
使い分けないといかんよね

36 :デフォルトの名無しさん:2009/06/10(水) 00:24:19
サブクラスが抽象クラスじゃないなら
継承する抽象クラスのabstractなメソッドは全て実装しないと
いけないんですよね?


37 :デフォルトの名無しさん:2009/06/10(水) 00:27:56
インターフェースは実体が無いから自分自身のメソッドを呼べない。
抽象クラスは自分でインターフェース宣言だけしておいて実体も無いのにメソッドを呼べる。
テンプレパターンってやつだけど、これが目茶苦茶便利なんだぜ。

38 :デフォルトの名無しさん:2009/06/10(水) 00:35:04
>抽象クラスは自分でインターフェース宣言だけしておいて実体も無いのにメソッドを呼べる
この日本語が理解できてないのは俺だけなのだろうか

39 :デフォルトの名無しさん:2009/06/10(水) 00:40:19
抽象一つから何種類か拡張クラス作って
抽象で呼び出してメソッドはそれぞれの拡張クラスのメソッドをなんてことが可能だしな
これ使い出したらやめられなくなるぐらい面白くなる

40 :デフォルトの名無しさん:2009/06/10(水) 00:43:45
Interfaceの具象メソッド持った版としか捉えてないのはダメでつか?

41 :デフォルトの名無しさん:2009/06/10(水) 00:44:29
使い方の違い意外はある意味でそう

42 :デフォルトの名無しさん:2009/06/10(水) 00:46:33
>実体が無いのにメソッド呼べる

まだJava始めて半年だけど
newする時に結局サブクラス意識しないといけないから
あまり利点がわからない

43 :デフォルトの名無しさん:2009/06/10(水) 00:49:13
じゃああれですね。使いたいと思う抽象クラスがあって、
その中に10個の抽象メソッドがあって、使いたいのは9個のときは、
残りの一個もダミーで実装したりするんですか。

44 :デフォルトの名無しさん:2009/06/10(水) 00:50:45
>>37,39
この子なに?最近デザインパターン覚えて浮かれてる子?
そのうち継承しまくることのデメリットにぶち当たって絶望とかするの?

JTreeがどうなったのか気になる

45 :デフォルトの名無しさん:2009/06/10(水) 00:53:00
ぶち当たったのは作りこみ方が悪いんだろw
JTreeの子どうなったのかねえ
その後ぱったりだな
上手くいったのかな

46 :デフォルトの名無しさん:2009/06/10(水) 01:04:14
>>42
まあそんなことはない。

public abstract class Clazz{

abstract String getMessage();

public void send(){
//ここはサブクラスがgetMessage()で何を返そうが知ったこっちゃない
System.println(this.getMessage());
}

}

ただ使うときに当然サブクラス化は必要。
まあこういうのは高階関数とかファーストクラスの関数とかクロージャがある言語だと
本当にクラスを意識する必要はないんだけど。

47 :デフォルトの名無しさん:2009/06/10(水) 01:24:31
月初の曜日を求めたい。
(Calendarクラスより)

48 :デフォルトの名無しさん:2009/06/10(水) 01:29:39
ググればあらゆる言語で出てくるんだが

49 :デフォルトの名無しさん:2009/06/10(水) 14:16:58
テキストファイルを読み込むのに
ScannerやBufferedReaderなどがありますが
どのように使い分けるのが普通なのでしょうか。

50 :デフォルトの名無しさん:2009/06/10(水) 14:29:06
それ別物だよ?

読み込んだテキストを処理するのがScanner
ファイルを読み込む際に効率よく処理するために
バッファを利用するようにするのがBufferedReader

51 :デフォルトの名無しさん:2009/06/10(水) 14:42:38
入出力でStreamが付いているのと付いていないのでは何が違うのでしょうか。


52 :デフォルトの名無しさん:2009/06/10(水) 14:58:15
// "日本"のUTF-8形式のbyte配列
byte[] utf8str = {(byte)0xE6, (byte)0x97, (byte)0xA5, (byte)0xE6, (byte)0x9C, (byte)0xAC};
// Stringオブジェクト生成
String s1 = new String(utf8str);
String s2 = new String(utf8str, "UTF-8");
String s3 = new String(utf8str, "JISAutoDetect");
System.out.println(s1); // 正常
System.out.println(s2); // 正常
System.out.println(s3); // 文字化け

上記のコードで、JISAutoDetectは
UTF-8のバイナリデータを認識できないってことなんでしょうか?
バイナリデータが、SJISやEUCの場合は問題無いのですが。

53 :デフォルトの名無しさん:2009/06/10(水) 14:58:53
reader writerに関しては簡易クラスだから省いて有る
入出力にはstreamと言う仮想の情報の流れが想定されている

54 :デフォルトの名無しさん:2009/06/10(水) 15:12:42
>>52
EUCかJISかShift-JISかを判断するモンだったはず。

55 :デフォルトの名無しさん:2009/06/10(水) 15:13:24
語弊があるかもしれんが、
Streamはバイナリデータの入出力と考えると楽

56 :デフォルトの名無しさん:2009/06/10(水) 15:19:50
>>54
なるほど、ありがとうございます。
JISでも確認できました。

57 :デフォルトの名無しさん:2009/06/10(水) 16:01:41
JISAutoDetectはunicode使ってない日本のエンコードをunicodeにマッピングするのを指示する文字列だぞ。
UTF系が使えないのは当然だろ。
あとMS932は化けるはず。

58 :デフォルトの名無しさん:2009/06/10(水) 16:59:28
現在,日本語入力がonの状態なのかoffの状態なのかわかるメソッドはありませんか?
探してみても,ロックキーがonかどうか返すメソッドしか見つからないんですけど・・・

59 :デフォルトの名無しさん:2009/06/10(水) 17:13:59
何でそんなLocale依存の特殊APIを組み込まなきゃいかんのだ

60 :デフォルトの名無しさん:2009/06/10(水) 17:15:44
PDFファイルを読み込んで(ブラウザに)表示させる方法に悩んでいます。
表示させたいPDFは非公開のディレクトリに置く必要があります。
(PDFを直接リクエストできないようにしたい)

iText等を使う方法はググって見つかったのですが、そうしたのは使わずに
表示するサンプルが見つからずにいます。(jarの追加が許可されないので)

こんな感じでググれカスとか、このURL池とか、何か参考になる情報をお願いします。


61 :デフォルトの名無しさん:2009/06/10(水) 17:46:15
>>58
これのこと?
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/im/InputContext.html#isCompositionEnabled()

62 :デフォルトの名無しさん:2009/06/10(水) 18:05:02
>>60
Mime-Type指定してバイナリのストリームで吐き出す

63 :デフォルトの名無しさん:2009/06/10(水) 18:46:06
抽象メソッドとインターフェイスの違いは、多重継承したいから
インターフェイスがあるという理由だけなのでしょうか?

64 :デフォルトの名無しさん:2009/06/10(水) 19:00:34
>>63
さぁ、C++言語研究者にでも聞いて下さいな。
JavaはC++に最も強い影響を受けていることは、誰しもが認める
ところでしょう。ですんでご質問の事柄等は必ずしもJava内部の
論理で決まったものとは限らないかも知れません。
(例えばC++コード移植性を高める便宜が無かったとは断定できないと
思います)
釘を指しておきたいけれどJavaを誹謗しているのではなく、むしろ
その功績は偉大だと思ってます。色々と言語を見てきましたが
Javaほど中庸で最適な文法は無いと思ってます。
厳密過ぎず、高級過ぎずってとこですね。
Javaが出てなかったら10年前にソフトウェア産業は危機的な状況
に陥ってた可能性が高いと思ってます。

65 :デフォルトの名無しさん:2009/06/10(水) 19:03:39
酔ってるだろ

66 :デフォルトの名無しさん:2009/06/10(水) 19:04:13
>>64
>中庸で最適な文法
とかいうならScalaとかのほうが適当だと思うが。

JMV上でうごくんだけどな。

67 :デフォルトの名無しさん:2009/06/10(水) 19:08:09
>>63
クラスを継承することとインタフェースを実装することとは違う。
だからインタフェースが多重継承のためにあるわけではない。
多重継承ライクなことを行うのにも使えるだけで、
インタフェースを複数実装したからといって、
それはクラスの多重継承とは異なるものだ。
インタフェースはその名の通りオブジェクトに特定のインタフェースが
備わっていることを保証するためにある。
継承という親子関係で保証する仕組みよりも自由度が高い代わりに
実装は一切制約できない。

68 :デフォルトの名無しさん:2009/06/10(水) 19:10:33
>>64
小難しい酔っぱらったような文章ですなw

69 :デフォルトの名無しさん:2009/06/10(水) 19:25:36
63です。なんとなく分かったような気がします。
ありがとうございました。

70 :デフォルトの名無しさん:2009/06/10(水) 19:26:50
いまマルチスレッドのとこを読んでいますけど、
マルチスレッドはあまり使う機会はないですよね?

71 :デフォルトの名無しさん:2009/06/10(水) 19:29:53
短時間で済む処理だけやってるうちはね

72 :デフォルトの名無しさん:2009/06/10(水) 19:31:43
>>70
GUIやり出したら必須

73 :デフォルトの名無しさん:2009/06/10(水) 19:39:19
質問です。
JBossって最近使われてますか?

74 :73:2009/06/10(水) 19:41:15
実は、JBossそのものをわからずに質問してます。

75 :デフォルトの名無しさん:2009/06/10(水) 19:59:33
(本家サイトの状態(メンテナンスが滞ってるとか、消滅したとか、重い
軽いとか)である程度推測出来るのはこの業界の常識)
http://www.jbug.jp/cgi-bin/fswiki/wiki.cgi
(重く無いし、よく更新されてるって感じ)

76 :73:2009/06/10(水) 20:21:38
>>75
大丈夫みたいなので安心しました。
迅速な回答ありがとうございます。

77 :デフォルトの名無しさん:2009/06/10(水) 20:42:49
うーん。一ヶ月くらい前にThreadを読んで、なるほど、わかったよ、
みたいな感じだったんだけど、今見たら全部忘れてる。
殆ど覚えてないなあ。頭のいい人は一回読んだら
自分のものになるんでしょうね。
とほほです。

78 :デフォルトの名無しさん:2009/06/10(水) 20:55:10
プログラムは作ってみないと身につかないきがする

79 :デフォルトの名無しさん:2009/06/10(水) 21:50:24
本でサンプルを
 読むだけ → 何故か覚えられない
 とりあえず自分で打ち込んでみる → 何故か覚えられる

ふしぎ!


80 :デフォルトの名無しさん:2009/06/10(水) 23:04:36
class Work01{
public static MBox mBox = new MBox(); //ココ
public static void main(String arg[]){
MRec rec = new MRec();
こういうとき、ココはいつ実行されるんでしょうか。

81 :デフォルトの名無しさん:2009/06/10(水) 23:08:02
クラスが最初に呼び出される前に1回

82 :デフォルトの名無しさん:2009/06/10(水) 23:09:21
>>81
こういうの初めて見たのですけど、これはどういう仕組みなのでしょうか。
キーワードを教えて頂けないでしょうか。

83 :デフォルトの名無しさん:2009/06/10(水) 23:13:19
 ココはいつ実行

84 :デフォルトの名無しさん:2009/06/10(水) 23:40:48
Work01.<cinit>で実行

85 :デフォルトの名無しさん:2009/06/10(水) 23:43:37
その後にClassLoaderからMethodを経由してmainが起動されるわけだ

86 :デフォルトの名無しさん:2009/06/11(木) 00:33:25
え。と書いたがclass MBoxのmainではないのでおkだった。
実行というか、class MBoxのコンストラクタの呼び出しでいいよね

87 :デフォルトの名無しさん:2009/06/11(木) 00:48:31
>class MBoxのmainではないのでおkだった
日本語でおk

88 :デフォルトの名無しさん:2009/06/11(木) 00:50:28
staticがオブジェクトを生成してるのかな?

89 :デフォルトの名無しさん:2009/06/11(木) 07:58:24
ダメだこいつ

はい次の質問どうぞ

90 :デフォルトの名無しさん:2009/06/11(木) 08:44:58
いかりやチョーさん死んじゃったよね

91 :デフォルトの名無しさん:2009/06/11(木) 10:34:24
随分前からdeprecatedになってるはず
無理矢理使ったところで機能しないと思うぞ

92 :60:2009/06/11(木) 10:40:29
>>62
なるほど、ありがとうございます。
で、JSPを作ってみたところ真っ白なページが表示。
jpgもバイナリだから同じ理屈だろと思って試したところ、それは正常に表示されました。

パケットキャプチャしてPDFを直接リクエストして開いた場合と比較してみたところ、
何故か指定してないcharsetが入っていました。
このcharsetはサーバで制御する以外回避することはできないものですか?


93 :デフォルトの名無しさん:2009/06/11(木) 12:11:55
ファイル入出力はReader、Writer、IutputStream、OutputStreamが
沢山ありますが、通常、この組み合わせで使うのが通常みたいな、
パターンはあるのでしょうか。

94 :デフォルトの名無しさん:2009/06/11(木) 12:25:09
ある と言ったら貴方は次に何を聞く?
ない と言ったら貴方は次に何を聞く?

95 :デフォルトの名無しさん:2009/06/11(木) 12:58:08
わからん奴はとりあえずFileInput/OutputStreamとFileReader/Writerだけ覚えとけ
後はBuffered○○ってのでいい

96 :デフォルトの名無しさん:2009/06/11(木) 13:23:23
極めて直感的に分かり易い気はするんだけどねえ入出力は

97 :デフォルトの名無しさん:2009/06/11(木) 13:30:33
大きく文字ストリームとバイトストリームに分かれているみたいだけど、
バイトストリームはバイナリデータを扱うらしいのですけど
通常のテキストをバイトストリームで読み書きしてもいいのですか。


98 :デフォルトの名無しさん:2009/06/11(木) 13:37:46
ぜんぜんOK
寧ろそうしないと
Charsetなんかの問題が出る

99 :デフォルトの名無しさん:2009/06/11(木) 14:16:35
入出力について、ありがとうございました。

100 :デフォルトの名無しさん:2009/06/11(木) 15:06:56
FileChannel、あれは良いものだ。。。

101 :デフォルトの名無しさん:2009/06/11(木) 15:07:17
iso-8859-1の文字化けの問題は少し厄介だなあれ

102 :デフォルトの名無しさん:2009/06/11(木) 17:15:13
int[] dst = new int[8];
FileInputStream in = new FileInputStream(file);
for(int i=0; i<src.length; i++){
dst[i] = in.read();
}

fileは、8バイトのバイナリデータが入ってます。
それを1バイトづつreadして、dstに入れてるのですが、
for文の部分、これを拡張for文に変えることはできるんでしょうか。
できるとしたら、どのような記述になりますか?

103 :デフォルトの名無しさん:2009/06/11(木) 17:35:32
javaの正規表現って、Perlの正規表現より簡単だと思ったのは俺だけ?

104 :デフォルトの名無しさん:2009/06/11(木) 17:45:38
searchで文字位置見つけたいのとかよく使うのにいちいち糞めんどくね?

105 :デフォルトの名無しさん:2009/06/11(木) 17:53:06
めんどくさい。
おれは自分でよく使うパターン用の
エセ正規表現ライブラリ作って使ってる。

106 :デフォルトの名無しさん:2009/06/11(木) 18:44:08
char ch = ' ';
while (ch != 'Q' && ch != 'q') {
System.out.println("何か入力してください");
try {
ch = (char) System.in.read();
System.out.println("これは標準出力:" + ch);
これで文字一文字 k を入力したら3文字入力されているようにループ
するんですけど、何故なんでしょうか。


107 :デフォルトの名無しさん:2009/06/11(木) 18:53:43
>>106
k が三文字出力される事については解らないけど、
入力で良くあるのは改行コードなどを読み込むことかね。

108 :デフォルトの名無しさん:2009/06/11(木) 18:56:03
>>106
改行コードが入力されているから。WindowsプラットフォームならCRとLFの2文字分。
それとSystem.inを直接使用せずにInputStreamReaderでラップしてReaderとして扱うか、
Scannerでラップするかした方がいいと思う。

109 :デフォルトの名無しさん:2009/06/11(木) 18:59:49
>>107さん、>>108さん。ありがとうございました。

110 :デフォルトの名無しさん:2009/06/11(木) 19:55:34
>>102
無理

for (int i : dst) {
  i = in.read();
}

こう書いても、dstには反映されない

111 :デフォルトの名無しさん:2009/06/11(木) 19:55:35
ホント糞は勘弁して欲しいよな

112 :デフォルトの名無しさん:2009/06/11(木) 19:57:27
>>105
作っても継承できないからあまり役立たないんじゃないの?
どうせOOPとは名ばかりだけでstaticばっかりんなんでしょw

113 :デフォルトの名無しさん:2009/06/11(木) 19:58:16
JAVAで
コメント行である
「/* */」を空行に置換したいのですがひとつだけ例外があって
ヒント句である「/*+ */」だけは空行にしたくないのですが

下記の書き方であってますか?

いろいろテストした結果は問題ないのですが
よろしくお願いします。

間違っているなら正解をすみませんが教えてください。


str = str.replaceAll("/\\*[^\\+].*?\\*/", "");

114 :デフォルトの名無しさん:2009/06/11(木) 20:16:45
良さそうに見えるけど、?を書く意味がわからない
俺が低脳なだけか

115 :デフォルトの名無しさん:2009/06/11(木) 20:27:18
おまえらu14のG1コレクタ搭載どうみる?

116 :デフォルトの名無しさん:2009/06/11(木) 21:19:09
J2SE 5.0で我慢しとけ

OracleのせいでJavaの有償化の流れか・・・

117 :デフォルトの名無しさん:2009/06/11(木) 21:48:11
>J2SE 5.0で我慢しとけ
意味分からん。6でいいだろ

118 :デフォルトの名無しさん:2009/06/11(木) 21:55:08
例えば、ファイルを読み込む処理のクラスで、パスをコンストラクタで指定する場合
後でパスを変更するsetメソッドを普通は作るのか?
それとも、そんなメソッドを作らないで新しくオブジェクトを作り直させるのか?

119 :デフォルトの名無しさん:2009/06/11(木) 21:58:44
>>114
最短一致数量子 (Reluctant quantifiers)
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/regex/Pattern.html

120 :デフォルトの名無しさん:2009/06/11(木) 22:21:20
>>118
設計おかしくないか?
普通、実際に読み込むメソッドにFile,URL,InputStreemなんかを渡す。
まあクラス定義と使い方見てみんと分からんが。

121 :デフォルトの名無しさん:2009/06/11(木) 22:33:07
>>120
脳内乙

122 :118:2009/06/11(木) 22:33:29
あぁ〜、なるほどね。気がつかなかった
今、思えばメソッドの引数&戻り値がStringだらけになっていたよ


123 :デフォルトの名無しさん:2009/06/11(木) 22:59:34
>>121
ん?120って何か変なこと書いてるか?

124 :デフォルトの名無しさん:2009/06/11(木) 23:05:08
>>118が全く意味わからない
setメソッドを作るってどういうこっちゃ。
is-aだかhas-aだかでReaderを拡張してる独自クラス使うってことか?
三行目は質問の意味すらわからない。

125 :デフォルトの名無しさん:2009/06/11(木) 23:14:47
>>120の方が意味不明なんだが、具体的なメソッド宣言はどなる?

126 :デフォルトの名無しさん:2009/06/11(木) 23:28:29
>>118はファイルを読むようなクラスでそのファイルをコンストラクタで指定するようになっている場合、
読むべきファイルを変更するならば、新しいファイルを設定するようなセッターを作るのか?
それとも一旦作成したオブジェクトはコンストラクタで指定したファイルの読み込み専用とし、
別のファイルを読み込むならそれ用の新たにオブジェクトを生成するのか?
どちらが普通か(もしくはいいのか)?
と聞いているんだと思う。

それに対して>>120は、
コンストラクタで読み込む対象を設定するのでなく、
実際に読み込むメソッドでその対象をFileやURLやストリームで指定するのが俺的普通だ。
実際には>>118のクラスがどう使われているのか見てみないとどうするのがベターか分からないが。
と主張しているんだと思う。

127 :デフォルトの名無しさん:2009/06/11(木) 23:31:04
> それ用の新たに
新たにそれ用の

128 :デフォルトの名無しさん:2009/06/11(木) 23:31:30
http://www.dotup.org/uploda/www.dotup.org119052.txt

↑でサーバープログラムを立ち上げて、クライアントプログラムから文字を入力しても
log.txtに書き込みが行われないのですがどうしてでしょうか?

129 :デフォルトの名無しさん:2009/06/11(木) 23:41:32
>>120,122,126
どうでもいいけど、そのメソッドはどういうインターフェイス宣言になるん
設計云々じゃなかったの?

130 :デフォルトの名無しさん:2009/06/11(木) 23:43:35
さすがのエスパーな俺でも、日本語通じない相手にはエスパーできんわ

131 :デフォルトの名無しさん:2009/06/11(木) 23:47:07
中の人は居なくて
実体はごねごねスクリプト

132 :デフォルトの名無しさん:2009/06/11(木) 23:50:04
口だけかw
脳内乙よりひでーなww

133 :デフォルトの名無しさん:2009/06/11(木) 23:57:45
>>129
それは>>118にそのクラスをどういう風に使っているのかを聞かないと分からない。
一気にファイルを読んでクラスの状態を変更したいのか(例えばProperties#loadみたいに)
それともInputStreamやReaderのように読み込む対象は固定で読み込むメソッドを頻繁に呼び出すものなのか。

134 :デフォルトの名無しさん:2009/06/12(金) 00:02:07
情報を出してこない連中に対して
勝手な予測を立てても無駄すぎる

終了

135 :デフォルトの名無しさん:2009/06/12(金) 00:06:18
逆だろw
嘘でも情報を出したやつが勝ちだwww
情報を発信できない情弱は負け

136 :デフォルトの名無しさん:2009/06/12(金) 00:18:43
自己紹介合戦はここまで

次の質問どうぞ

137 :デフォルトの名無しさん:2009/06/12(金) 00:25:50
情報小出しするほど珍しいことをしてるわけじゃないだろ。
何のためのデザインパターンとコードの再利用だか
逆に珍しいことしてる奴の方が数学の難問と同じく価値があると思kjdふぉあぷえおぷ$%%($

嘘でも情報だしたほうが勝ちとか鼻糞みたいなこといえない奴もいるし、っここはレベルも低いな
ここはアホすれだったか

138 :デフォルトの名無しさん:2009/06/12(金) 00:28:24
>>135
おまえみたいな2CH小僧がいるから糞スレ化するんだよな。
VIPで修行して出直してこい。

139 :デフォルトの名無しさん:2009/06/12(金) 00:29:32
>>137-138

>>136

140 :デフォルトの名無しさん:2009/06/12(金) 00:34:33
>>128
とりあえず、スレッドの中でwriteするたびにflushしてみたらどーだろう。
強制終了した時ってfinally動いたっけ?試してみる気もしない。
(なんとなく、動いたら変かなーという脳内会議の結果)

141 :デフォルトの名無しさん:2009/06/12(金) 01:15:00
>強制終了した時ってfinally動いたっけ?試してみる気もしない。
動かないときもある。

142 :デフォルトの名無しさん:2009/06/12(金) 10:49:53
メモ帳でプログラムを作りたいと考えています。
Enterキーを押したら、
「10秒後にTabキーを自動で押し、
 10秒後にEnterキーを自動で押す。」

というものなんですが…。ご教授ください。



143 :デフォルトの名無しさん:2009/06/12(金) 10:52:05
意味が解らない

144 :142:2009/06/12(金) 11:10:59
プログラムのことが分からないで質問してすいません。
昔メモ帳にプログラムを書いている人を見たもので、
C言語?をメモ帳に書くと、メモ帳がプログラムに
変身するのだと思っていました。

そもそも、プログラムで、
キーボードのボタンを押すことなどできないのでしょうか?

…自動でエンターとかタブとかを押すことができれば、
ワンタッチで複数のものがDLできるのではないかと
考えていました。


145 :デフォルトの名無しさん:2009/06/12(金) 11:31:57
>>144
C言語でkeybd_event関数を呼べば

146 :デフォルトの名無しさん:2009/06/12(金) 11:32:53
初心者以前の問題だ
JavaでHello World書ける様になってからこい

そこまでは自力でやれ

147 :デフォルトの名無しさん:2009/06/12(金) 11:38:35
>>142
メモ帳で次の文字列を打ち込む
<html>
<script>

window.alert("Hello Java world");

</script>
</html>

これを「ファイル」→「名前を付けて保存」
で出てくるウィンドウボックス(ダイアログ)で「デスクトップ」フォルダー
を選びhoge.htmという名前を入力し保存ボタンを押す。
デスクトップにhoge.htmというアイコンが出来るからそれをクリックする
とHello java worldという文字列だけが出たウィンドウが開くぞ。
ただJavaまでの距離は相当あるがまぁこれが出来ればあと1ヶ月先には
Javaでプログラムがちょっとした書けてる筈

148 :デフォルトの名無しさん:2009/06/12(金) 12:04:22
>>112
105じゃないけど、俺もURL抽出で似たようなことやってる。
正規表現で複雑なクエリパラメータを含むURLを
完璧に抽出するのって意外と難しい。
RFCで許可されているURL文字列を抽出する
メソッド組んでるよ。速いし。

汎用性と柔軟性を追求するなら正規表現ライブラリで
正解なんだろうけどな。

149 :デフォルトの名無しさん:2009/06/12(金) 13:39:39
>>142
秀丸のマクロでも作ってみたら?
プログラムとは言えない事も無いけど似たようなものではある

150 :142:2009/06/12(金) 13:52:44
>>149
ありがとうございます。
探してみます。

151 :デフォルトの名無しさん:2009/06/12(金) 14:30:25
System.setOut(new PrintStream(new FileOutputStream(args[0])));
こういうように繋げて書いた場合、closeはどう書けばいいのでしょうか。

152 :デフォルトの名無しさん:2009/06/12(金) 14:33:23
>>151
System.out.close();

153 :デフォルトの名無しさん:2009/06/12(金) 14:40:55
151ですけど。本では分けて記述していまして、
一番最初のFileOutputStreamの参照変数に対してcloseしています。
繋げて書いた場合はPrintStreamのメソッドのcloseを使ってOKと
いうことは、closeは、どの段階のものでもいいのでしょうか。
それとも最初か最後のどれとか決まっているのでしょうか。

154 :デフォルトの名無しさん:2009/06/12(金) 14:53:42
>>153
どのcloseを呼び出すのかは、使用するライブラリの実装次第。

java.io.Closeable#close() では、
> このストリームを閉じ、関連付けられているすべてのシステムリソースを解放します。
とあり、一番外側を close すれば、ラップされていても全て解放する仕様、と読み取れる。

155 :デフォルトの名無しさん:2009/06/12(金) 15:02:37
>>152 >>154 ありがとうございました。

156 :デフォルトの名無しさん:2009/06/12(金) 15:29:24
一つの想定される作業群が終了した段階でStreamはまめに閉じるようにしたほうが良いよね

157 :102:2009/06/12(金) 15:32:19
>>110
ありがとうございます。
おとなしく普通のループ使います。

158 :デフォルトの名無しさん:2009/06/12(金) 18:03:36
>>135
ニート死ね

159 :デフォルトの名無しさん:2009/06/12(金) 20:06:55
String filelist[] = cdirectory.list( new MyFilter() );
・・・
static class MyFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return name.endsWith(".TXT") || name.endsWith(".txt");} }
見たこともない仕組みが登場しました。
acceptメソッドとか記述もしてないのに、これでちゃんと動くのですけど
これは特殊な仕組みなのでしょうか。

160 :デフォルトの名無しさん:2009/06/12(金) 20:19:49
>>159
俺にはacceptメソッドを記述しているように見える罠。

161 :デフォルトの名無しさん:2009/06/12(金) 20:23:06
>>160
使う側の、String filelist[] = cdirectory.list( new MyFilter() ); で
呼ばれてないんですよね。読んでいるところが見当たらないんです。

162 :デフォルトの名無しさん:2009/06/12(金) 20:26:16
>>161
cdirectory.list()メソッドの中で呼ばれてると思うが

163 :デフォルトの名無しさん:2009/06/12(金) 20:36:36
class Sample1
{
public static void main(String args[])
{
try{
int test[];
test = new int[5];
System.out.println("test[10]に値を代入します。");
test[5]=【?】;
System.out.println("test[10]に80を代入します。");
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("配列の要素を超えています。");
System.out.println( e +"という例外が発生しました。");
}
finally{
System.out.println("終わりました。");
}
System.out.println("無事終了しました。");
}
}
例外が出ないような値を【?】に入れたいんだけど5以上にしても5以下にしても例外に当てはまってしまう。
いったい何を入れればいいのかな?それともどこか変えなければいけないのかな?


164 :デフォルトの名無しさん:2009/06/12(金) 20:46:33
new MyFilter() でオブジェクト生成はしてますけど、
acceptメソッドは、いつ呼ばれるんでしょうか



165 :デフォルトの名無しさん:2009/06/12(金) 20:51:05
test[5]=【?】; 0〜4までじゃないですか。

166 :デフォルトの名無しさん:2009/06/12(金) 20:55:49
>>163
書いてることがよく分からんが、というか配列を勘違いしてるっぽいが
test = new int[5]; でtest[0]〜test[4] までを確保しているので
test[5] は存在しない。
よって、【?】にどんな値を入れようとしてもエラーになる。

>>164
内部で自動的に呼ばれる

167 :デフォルトの名無しさん:2009/06/12(金) 21:01:12
>内部で自動的に呼ばれる
そうなりますと、listメソッドの中で記述されているということですね。
こういうのが沢山あると、使うほうはわかりにくいですねえ。
出てくるたびに考え込まないといけないですね。
ありがとうございました。

168 :デフォルトの名無しさん:2009/06/12(金) 21:03:56
>>166
基本的なことを忘れてました。
ありがとう

169 :デフォルトの名無しさん:2009/06/12(金) 21:27:38
>>167
考え込みません。
使い方は APIdoc に書いてある。
それが何を意味するのか、を考え込むかもしれないが。

170 :デフォルトの名無しさん:2009/06/12(金) 21:55:18
searchするのも大変だしfinalだからOOP的に継承できないし、なんでこんなにジャバの正規表現は使いにくいんですか?

171 :デフォルトの名無しさん:2009/06/12(金) 22:08:11
クラスライブラリを「正しく」使うのは、言語とかアルゴリズムとかの
知識だけじゃなくそれなりの「教養」も必要かもな

172 :デフォルトの名無しさん:2009/06/12(金) 22:11:01
年寄りだと「コールバック」とか「関数オブジェクト」で通じるんだけどなぁ。

173 :デフォルトの名無しさん:2009/06/12(金) 22:22:30
>>170
RegexpとかOROとか諸々の正規表現ルーチンを開発する楽しみを残すためです。

174 :デフォルトの名無しさん:2009/06/12(金) 22:26:17
コールバックと正規表現は関係ないと思うが、もしかしてビギナー?

175 :デフォルトの名無しさん:2009/06/12(金) 22:43:48
>>174
acceptメソッドに対するレスだろう。

176 :デフォルトの名無しさん:2009/06/12(金) 23:15:03
いや関数オブジェクトは誤解されるかもよ?

177 :デフォルトの名無しさん:2009/06/13(土) 00:28:54
>>176
むー、純粋な関数オブジェクトと誤解されるか。そこまで意識してなかった。
Javaで関数オブジェクトって厳密には実現できなくて、同様の手段としてストラテジ
パターン使ってる別物か。

import java.io.*;
public class Main {
public static void main(String[] args) {
File cdirectory = new File("c:\\usr");
String filelist[] = cdirectory.list(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".TXT") || name.endsWith(".txt");
}
});
for (String name : filelist) {
System.out.println(name);
}
}
}

178 :デフォルトの名無しさん:2009/06/13(土) 00:47:35
ストラテジパターンとかコールバックとか言ってるけど結局ちゃんとわかってないんじゃんw
最近さ、ブログでもデザインパターンの用語ばかり散りばめて自分によってる奴多いんだよね・・・

179 :デフォルトの名無しさん:2009/06/13(土) 10:21:12
人をこき下ろして済む生徒さんはいいでちゅね。

180 :デフォルトの名無しさん:2009/06/13(土) 10:47:04
拡張子tXtやTxTはダメなんですね

181 :デフォルトの名無しさん:2009/06/13(土) 11:32:04
>>180
実装次第。toLowercase()して比較。前スレの914あたりからの話を参照。

182 :デフォルトの名無しさん:2009/06/13(土) 17:54:58
コンポジットパターンだったか、ファイルとディレクトリが典型アレ、
なんか設計というかファイルとデレクトリで使うには適してないと思うですけどどうですか?
ファイルの方は抽象クラスで宣言されてるメソッドを使わないから、例外発生とかですよね。せんせ!

183 :デフォルトの名無しさん:2009/06/13(土) 18:00:36
if (args.length != 1 || args.length == 1 && args[0] == "/?") {
引数のチェックなんですけど、"/?" とは何を入力したときなんでしょうか。

184 :デフォルトの名無しさん:2009/06/13(土) 18:05:37
/?です。

185 :デフォルトの名無しさん:2009/06/13(土) 18:05:42
ヘルプコマンドの定型文だろ

dir /?

みたいな

186 :デフォルトの名無しさん:2009/06/13(土) 18:07:51
引数に、/?を指定しても、このチェックに引っ掛からないんです。

187 :デフォルトの名無しさん:2009/06/13(土) 18:08:57
そりゃ当然だ。

188 :デフォルトの名無しさん:2009/06/13(土) 18:11:12
args = new String[]{ "/?" };

↑じゃ↓が偽になって弾かれるからだろ

args.length != 1

189 :デフォルトの名無しさん:2009/06/13(土) 18:14:20
それじゃ判定文の優先順位がわかんねえだろ
つーか、またStringで==とかの論争が始まるのか、勘弁してくれ

190 :デフォルトの名無しさん:2009/06/13(土) 18:16:35
if (args.length != 1 || args.length == 1 && args[0].equals("/?")) {

191 :デフォルトの名無しさん:2009/06/13(土) 18:19:12
それじゃ判定文の優先順位がわかんねえだろ

192 :デフォルトの名無しさん:2009/06/13(土) 18:21:08
/?については、そのまま/?と入力するので正しいんでしょうか?

193 :デフォルトの名無しさん:2009/06/13(土) 18:28:07
判定文を>>190にしてみ

194 :デフォルトの名無しさん:2009/06/13(土) 18:33:38
&&は||より優先されるが、まあ括弧で囲むのが妥当だろうな

195 :デフォルトの名無しさん:2009/06/13(土) 18:37:04
>>193
190に変更したら、引数に/?を指定してチェックに引っ掛かりました。
よく考えたらStringは==駄目でしたね。本の通り打ったんですけど、
本が間違えているんですね。それから、/?を引数に入れることに
どんな意味があるんでしょうか。

196 :デフォルトの名無しさん:2009/06/13(土) 18:37:38
>>195
>本の通り打ったんですけど
出版社とタイトル、ページ数を教えて欲しい

197 :デフォルトの名無しさん:2009/06/13(土) 18:43:41
ISBNでいいんじゃね
あと版数な

198 :デフォルトの名無しさん:2009/06/13(土) 18:46:46
while ((n = bistream.read()) != EOF) {
System.out.print(convHex((n & 0xf0) >> 4)); //ココ1
System.out.print(convHex(n & 0x0f)); } //ココ2
それから、これはヘキサダンプ作成のコードなんですけど、
文字を4ビットずつ表示してると思うんですけど、
ココ1ではn & 0xf0をしなくても左4ビットに0が埋まるのではないかと
思うんですけど。どうなんでしょうか。
それから本のタイトル等は差し控えたいと思います。

199 :デフォルトの名無しさん:2009/06/13(土) 18:49:42
著者に聞けタコ

200 :デフォルトの名無しさん:2009/06/13(土) 18:51:38
何百回も言われてると思うけど、

情報出さない連中がまともな回答を期待するのが間違い

201 :デフォルトの名無しさん:2009/06/13(土) 18:52:50
どうせあれだろ、自分で書いて動かなくて、
それを突っつかれたくないから「本の通りに書きました><」とか言ってんだろ

202 :デフォルトの名無しさん:2009/06/13(土) 19:22:57
このスレの内容が既に初心者の域を超えている気がする
本当のjava初心者が質問しづらい空気だから、他スレでやって欲しいわ

203 :デフォルトの名無しさん:2009/06/13(土) 19:25:05
202が初心者ブログでも開いてろアフォ

204 :デフォルトの名無しさん:2009/06/13(土) 19:35:29
>>202が勘違いしているのかもしれんが、
【初心者】【歓迎】と書いてあり、初心者が来ること自体は何の問題も無いが、
別に初心者用のスレというわけでもない

初心者専用ならこっちに行ったらどうだろう

Javaやらないか(超初心者向け)
ttp://pc12.2ch.net/test/read.cgi/tech/1228452306/

205 :デフォルトの名無しさん:2009/06/13(土) 19:36:20
すげえ過疎ってるな

206 :デフォルトの名無しさん:2009/06/13(土) 20:20:50
>>198
エスパーしなければならない点
1. bistreamの型
2. nの型
3. ENDの値
4. convHex()の引数の型
・・・情報出してると言えないよね、その聞き方じゃ?

1. BufferdInputStreamとエスパー
2. 1からint
3. 1から-1
4. キャストしていないから、nの型からint
とエスパーすると、BufferdInputStream#read() が返すのはバイト値か-1だけ
だから必要は無いね。
でもSystem.out.print(convHex(n & 0x0f));の行と並べた時に意図が明白になる
から意味はある。個人的シュミだと
System.out.print(convHex((n>>>4) & 0x0f));
System.out.print(convHex((n>>>0) & 0x0f));
とするかな。そんなことまで聞いてない?スマンな、エスパーだからな。

>>202
人のレスに一々ケチつけてるヒマがあるなら、キミが答えてやればいいじゃないか。
それで解決。

207 :デフォルトの名無しさん:2009/06/13(土) 20:29:38
それで先生方は>>182について疑問に思わなかったんですか?
設計(例題)がおかしいんですよ!?

208 :デフォルトの名無しさん:2009/06/13(土) 20:34:05
おそらく日本語がおかしくなけりゃ相手にしてるだろう

209 :デフォルトの名無しさん:2009/06/13(土) 20:35:13
そんなこと言わず、食わず嫌いはいけませんよ!?

210 :デフォルトの名無しさん:2009/06/13(土) 20:39:19
人工無能と会話していることに気が付くと恥ずかしいよね

211 :デフォルトの名無しさん:2009/06/13(土) 20:40:10
>>206
>でもSystem.out.print(convHex(n & 0x0f));の行と並べた時に
>意図が明白になるから意味はある。
すごくよく分かりました。質問ももっと情報を書かないといけないことも
分かりました。ありがとうございました。

212 :デフォルトの名無しさん:2009/06/13(土) 20:40:40
ム板マ板にだけ変なのを仕込んでるんだな

213 :デフォルトの名無しさん:2009/06/13(土) 22:10:37
>198
See JLS 5.6.1

214 :デフォルトの名無しさん:2009/06/13(土) 22:17:28
floatを小数点第一位まで表示したStringにしたいんですが、
一番簡単な方法はなんでしょうか?

こんな感じです。
0.16 → "0.2" (四捨五入)
1 → "1.0"(小数にならない数も.0をつける)

215 :デフォルトの名無しさん:2009/06/13(土) 22:25:50
多分String#format。それがだめならjava.text.NumberFormat。あとはしらね。

216 :214:2009/06/13(土) 22:34:09
どうもありがとうございます。
ググったらDecimalFormatというのがありました。
DecimalFormat pattern = new DecimalFormat("0.0");
String str = pattern.format(0.51);

217 :デフォルトの名無しさん:2009/06/13(土) 23:42:03
>>198はやさしいjavaかhead first javaだった気がする。

218 :デフォルトの名無しさん:2009/06/14(日) 04:16:57
既存のJavaクラスを継承したクラスの、
インスタンスを作るにはどうすればいいですか?

例えば、Stringに追加メソッドが欲しいと思い、
class StringEx extends java.lang.String {
  public void addABC() {
    this += "ABC";
  }
}
こういうクラスを作った場合、
StringExのインスタンスはどうやって作ればいいのでしょうか。

219 :デフォルトの名無しさん:2009/06/14(日) 06:27:39
>>218
String は final宣言されてるから継承できないよ

220 :デフォルトの名無しさん:2009/06/14(日) 09:33:21
サーティファイのjava言語能力検定試験3級を取得する為に勉強中です。
過去問を見ていると分からない記述があったので質問させて下さい。

下記mainクラス内の宣言部に記載されている、
「int a = 0x0f , b = 0x0f」の初期値"0x0f"が何を指しているのか分かりません。
@とAでは15が出力され、Bでは31が出力されました。
インクリメントされたaをxに代入しているにも関わらず、
なぜAでも15が出力されるのですか?
どなたか教えて下さい。

class Increment{
public static void main(String args[]){
int a = 0x0f, b = 0x0f ,x = 10, y = 10;


System.out.println(a); //@

x = a++;

System.out.println(x); //A

y = x + ++b;

System.out.println(y); //B

}
}


221 :デフォルトの名無しさん:2009/06/14(日) 09:43:47
>>220
ヒント
インクリメントにはa++と++aがある

222 :デフォルトの名無しさん:2009/06/14(日) 10:24:28
>>220
ヒント 式の評価順序

223 :デフォルトの名無しさん:2009/06/14(日) 10:43:46
0x0f に関しては3.10.1。
++に関しては15.14.2ならびに15.15.1。
評価順序に関しては15.7全般。

http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html

224 :デフォルトの名無しさん:2009/06/14(日) 11:01:31
16進も知らずに試験とな?

225 :デフォルトの名無しさん:2009/06/14(日) 11:28:27
正規表現にマッチしたら、文字列の一部を抜きだしたいんだけど
どうすればいいの?

226 :デフォルトの名無しさん:2009/06/14(日) 11:37:24
class Kyutuu {
public synchronized void buy() { 〜}
public synchronized void seisan() { 〜}

class Ko1 extends Thread {
void buy() //ココ
void seisan()

class Ko2 extends Thread {
void buy() //コレ
このような感じの場合に、synchronizedを指定すれば
同期が取れるとあるのですけど、synchronizedなメソッドを
呼び出して終わればロックは自動解除されるとあるので、
ココが終わった瞬間に、コレが先に動いて同期が
取れなくなる場合があるように思うんですけど、
どうなのでしょうか。

227 :デフォルトの名無しさん:2009/06/14(日) 11:37:59
>>225
Matcherのgroupでいい

228 :デフォルトの名無しさん:2009/06/14(日) 11:44:37
>>226
何を守って同期したいのか不明。
Kyoutuu は可哀想な子

229 :デフォルトの名無しさん:2009/06/14(日) 11:45:49
>>220
0x0fは0xが16進ですよを表して、一文字(8バイト)を表して、
ofは4ビットずつを、前半4ビットが0000、後半4ビットが1111で、
15になります。x = a++; は、x = a; a = a + 1 と同じ意味です。

230 :デフォルトの名無しさん:2009/06/14(日) 11:47:51
>>228
buy()は金額加算です。同期とれませんよね?

231 :デフォルトの名無しさん:2009/06/14(日) 11:52:13
>>226
synchronized void buy() { /* hoge */ } は
void buy() { synchronized(this) { /* hoge */ } } と同じ。

第二版 8.4.3.6 synchronizedメソッド
ttp://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#260369

232 :デフォルトの名無しさん:2009/06/14(日) 11:55:22
>>230
特に同期を取る必要の無いものだろうから、別に問題ないだろ。

233 :デフォルトの名無しさん:2009/06/14(日) 12:23:49
>>225
Pattern pat = Pattern.compile("a.*?b");
Matcher mat = pat.matcher("abaabbcbacb");
while (mat.find()) {
System.out.print(mat.start());
System.out.print(", ");
System.out.println(mat.end());
System.out.println(mat.group());
}


234 :デフォルトの名無しさん:2009/06/14(日) 13:09:00
226です。テストしたらやっぱり同期は取れませんでした。
ありがとうございました。

235 :225:2009/06/14(日) 16:37:46
>>227,>>233
ありがとう

236 :220:2009/06/14(日) 16:44:44
>>221
>>222
返信ありがとうございます。
a++は処理が行われた後にインクリメントする、
++aは処理前にインクリメントするという認識でした。
この認識が既に誤っているのでしょうか?
なぜ、Aで出力結果が16にならないのかが分からないのです。

>>223
返信ありがとうございます。
リンクを貼っていただいたサイトを拝見しました。
16進数については勉強していたのですが、
お恥かしいことに0x0から始まる形式を見たことが無く、16進数と分かりませんでした。
大変勉強になりました。

>>224
上記の通り、私の勉強が足りませんでした。
試験まであと2週間しかないのですが、精一杯勉強して頑張ってみます。
返信ありがとうございました。


237 :デフォルトの名無しさん:2009/06/14(日) 16:45:35
Javaのリフレクションとは、デバックをする手段と考えても良いのでしょうか?

238 :220:2009/06/14(日) 16:55:28
>>229
解説ありがとうございます。
0xという表記が16進数を意味しているんですね。

返信を下さった皆様、ありがとうございました。
私のバカな勘違いで、Aでaの中身を出力しているつもりで結果を見ていました。
本当に申し訳ありません。0x…の記述については大変勉強になりました。
お世話になりました。

239 :デフォルトの名無しさん:2009/06/14(日) 16:58:03
>>237
否。

java-APIソースでjava.lang.reflectをgrepしてみるといい。
かなり積極的に利用されてる。

240 :デフォルトの名無しさん:2009/06/14(日) 17:27:21
>>236
>Aで出力結果が16にならないのかが分からないのです。

int a = 0x0f // ここでaには15が格納されます
x = a++; // ここでxにaの値(15)が格納されて aに1が+されます。

System.out.println(x); //A つまりここの段階でa=16 x=15となります。



241 :デフォルトの名無しさん:2009/06/14(日) 17:32:36
>>239
ありがとうございます

242 :220&240:2009/06/14(日) 17:33:06
>>236
>>238で自己解決してましたね。失礼。

243 :デフォルトの名無しさん:2009/06/14(日) 17:53:16
>>241
パフォーマンスに激しく影響するし、
バグを実行時まで遅延させることになるから
積極的には使わない方がいいよ。

244 :デフォルトの名無しさん:2009/06/14(日) 18:03:23
private メソッドを実行できたり、色々問題はあるけど、必要になったら使えば良い。
リスクを判ってるなら無理して使わない理由は特に無い。

245 :デフォルトの名無しさん:2009/06/14(日) 18:34:40
Maven 使ってると、コレ関係あるのか?っていうライブラリだけで数十MBとか。
かといって、うかつに除外しちゃうと、動いている途中に大コケ。

これってもう、諦めて全部配備するしかない?

246 :デフォルトの名無しさん:2009/06/15(月) 02:03:33
mavenをまったく理解してないとしか思えない

247 :デフォルトの名無しさん:2009/06/15(月) 08:18:32
使いこなせないのをツールのせいにするのはよくないな。
依存関係も最近はマシになっている

で数十MBを節約しなきゃいけないってどんな過酷な環境なんだw

248 :デフォルトの名無しさん:2009/06/15(月) 08:27:57
>>245
普通に考えて要らないものを入れるような設定書くかな。
というわけで基本は全部入れる。

もちろん例外も有るけど、そこを考えて判断するのは基盤部分に携わる専門技術者の仕事だね。
自分が一般的な開発者の役割なら用意されたものを全部入れるべき。

249 :デフォルトの名無しさん:2009/06/15(月) 13:20:31
Arrays.sortでComparatorインターフェイスを実装して降順にソートする
というのがあるんですけど全然意味がわかりません。o1,o2には何が
渡っているんでしょうか。

String animal[] = {"lion","sai","buta","hyo","kirin","chiita"};
Arrays.sort(animal, new Mysort());
class Mysort implements Comparator<Object> {
public int compare(Object o1, Object o2) {
return -((String)o1).compareTo((String)o2);
}
}
これで降順になるらしいのですが、何と何を比較しているのでしょうか。
解説していただけないでしょうか。

250 :デフォルトの名無しさん:2009/06/15(月) 14:15:34
compare内に↓を書いてコンソールでも見てみ

System.out.println("o1 : "+(string)o1)
System.out.println("o2 : "+(string)o2)

251 :デフォルトの名無しさん:2009/06/15(月) 14:48:02
JPanelの表示・非表示を切り替えるにはどうしたらいいですか?

JFrameのようにsetVisibleというメソッドはなかったし
setOpaqueだと背景色を透明にするだけで駄目でした

252 :デフォルトの名無しさん:2009/06/15(月) 14:55:00
>>250
sortメソッドの中でオブジェクトを参照して比較してるんですね。
returnがマイナスならそのまま、プラスなら左右入れ替えているんですね。
よくわかりました。ありがとうございました。5時間くらい悩んでました。

253 :デフォルトの名無しさん:2009/06/15(月) 15:13:35
現在1グラムモデルでの平均情報量(エントロピー)の計算を行うプログラムを以下のように作ったのですが
これを2グラムモデルでの計算にするためにはどのように変更したらよいでしょうか?
public class Entrp{
public static void main(String args[])throws IOException{

int byteCode;
double p;
int byteFrequency[] = new int[256]; //バイト値ごとの個数 fount.printl
int i;
String virusFileName;

/* ウイルスのファイル名が書いてあるリストをオープン */
BufferedReader fin = new BufferedReader(new FileReader("Virus_list"));
/* ウイルスの出現頻度のファイルを生成 */
  PrintWriter fount = new PrintWriter(new BufferedWriter(new FileWriter("conclusion.F")));
  while(null!=(virusFileName=fin.readLine())){
double e=0;
   /* ウイルスのバイナリファイルをオープン */
DataInputStream bin = new DataInputStream(new BufferedInputStream(new FileInputStream(virusFileName)));
    File virusFile = new File(virusFileName);
    matrixZeroReturn(byteFrequency,256); //バイト値個数の初期化
    getByteFrequency(byteFrequency,bin);//ファイルのバイト値のカウントを行なう





254 :デフォルトの名無しさん:2009/06/15(月) 15:15:31
/* ウイルスのバイト値の出現頻度をファイルに書き込む */
for(i=0;i<=255;i++){
p=(byteFrequency[i]/(double)virusFile.length());
e += -(p*(Math.log(p)/Math.log(2)));
}
fount.println(virusFileName+"の平均情報量は "+e+"です。");
        bin.close();
}
fount.close();
fin.close();
}

public static void getByteFrequency(int array[], DataInputStream bin)throws IOException{
int byteValue;
     while(-1!=(byteValue=bin.read())){
array[byteValue]++;
}
}
public static void matrixZeroReturn(int array[],int matrixNum){
int i;
for(i=0;i<matrixNum;i++)
array[i]=0;
}
}


255 :デフォルトの名無しさん:2009/06/15(月) 15:35:21
>>251
アプレットサーバシステムを使うべし
ただし、あんまり嗅ぎまわると訴えられるから注意した方がいいよ

256 :デフォルトの名無しさん:2009/06/15(月) 17:29:39
>>251
CardLayout使え。
>>255
アッパッパの変なのおしえんじゃねえよ。

257 :デフォルトの名無しさん:2009/06/15(月) 18:31:31
基本型の場合は、Arrays.sortで一行記述すれば昇順ソートできるけど、
Comparatorとかを使わずに、Arrays.sortのように降順ソートを
行う方法はないのでしょうか。

258 :デフォルトの名無しさん:2009/06/15(月) 18:41:27
>>257
昇順ソートしたあと for で移すとか・・・
TheClass[] dst = new TheClass[src.length];
for (int index=0; index<src.length; index++) {
dst[src.length - 1 + index] = src[index];
}

259 :デフォルトの名無しさん:2009/06/15(月) 19:00:45
>251
もうどうでもいいけどJPanelってsetVisibleあるよね・・・

260 :デフォルトの名無しさん:2009/06/15(月) 19:16:38
javaの勉強がしたいので、他の人が書いたソースを読みたい
「codeなにがし」みたいな感じで、日本語コミュニティーのサイト知りませんか?

261 :デフォルトの名無しさん:2009/06/15(月) 19:22:20
目からウロコ
ttp://appletserver.com/

262 :デフォルトの名無しさん:2009/06/15(月) 19:56:00
>>258
ありがとうございました。

263 :デフォルトの名無しさん:2009/06/15(月) 21:01:34
APIを見ると、List<E>のように<E>がついていまして、
他にも<T>が付いているのもあります。
このような、TやEというアルファベットの違いで、
何かのグループ分けとかあるのでしょうか。

264 :デフォルトの名無しさん:2009/06/15(月) 21:03:59
>>263
まずはジェネリックスについて知るところを述べて欲しい

265 :デフォルトの名無しさん:2009/06/15(月) 21:06:37
特許期間が無くなった薬のことですね?

266 :デフォルトの名無しさん:2009/06/15(月) 21:11:03
>>257
Arrays.sortをした上で、末尾から取っていきゃいいんじゃ?

Collections.sort(List<T>, Comparator<? super c>)みたいに、
Collections.reverseOrderとかで手軽にできればいいんだけどね

267 :デフォルトの名無しさん:2009/06/15(月) 21:27:04
>>246
(力強く) サーセン!

>>247
なにぶん、4年前のノートでディスクもメモリもCPUも;;
(開発用じゃなくて報告書などの事務用)

>>248
要らない物がわからない・・・_| ̄|○


Dolteng使ってプロジェクト立ててゴチャゴチャやってるうちに・・・初心者なもんで。
Maven Additional Plugin のせいもあるかも。
・・・なんのカスタマイズもしていないせいか、junitまでlibに配置されてるし・・・

で、その上で、何かコツってあるのかな?と。

268 :デフォルトの名無しさん:2009/06/15(月) 21:35:02
今までStringを意識しないで、String hoge = "hage";と使ってきたけど
なんでStringだけはnewしなくていいわけ?

269 :デフォルトの名無しさん:2009/06/15(月) 21:55:11
>>268
>5 でも触れられているけど、言語規定でそーなってる。
3.10.5 文字列リテラル
4.3.3 クラスString

270 :デフォルトの名無しさん:2009/06/15(月) 22:02:53
>>268
「めんどいからそうした」
が限りなく的を射ている。

271 :デフォルトの名無しさん:2009/06/15(月) 22:13:27
>>269-270
ありがとう
>>270の「めんどいからそうした」
は全然知らんかった

272 :デフォルトの名無しさん:2009/06/15(月) 23:20:50
>>266
Integer[] testobj2 = {0,1,250,-40,600,200,100,500,300,400};
Arrays.sort(testobj2, Collections.reverseOrder());
これで出来ました。ありがとうございました。

273 :デフォルトの名無しさん:2009/06/15(月) 23:22:21
プリミティブの配列の話じゃなかったのか

274 :デフォルトの名無しさん:2009/06/15(月) 23:24:37
プリミティブの配列のラッパークラスで代用できるからいいと思いました。

275 :デフォルトの名無しさん:2009/06/15(月) 23:27:00
自分で
>基本型の場合
と言っておきながら、ラッパークラスはありだとか
質問者に対して鬼畜すぎるだろjk

276 :デフォルトの名無しさん:2009/06/15(月) 23:28:38
質問者じゃなくて回答者だったな失礼

277 :デフォルトの名無しさん:2009/06/15(月) 23:29:34
>>275
そうでした。ごめんなさい。気をつけます。

278 :デフォルトの名無しさん:2009/06/16(火) 00:25:01
Firefoxでジャバスクリプトでプログラム入門ってどう?大丈夫?

279 :デフォルトの名無しさん:2009/06/16(火) 00:26:55
JavaとJavaScriptの区別が付いてない時点で大丈夫じゃないね
ヤバ過ぎ

280 :デフォルトの名無しさん:2009/06/16(火) 01:27:50
ある文字列が日本語かそうでないか判定するライブラリーなどは存在しませんか?
全角かどうかで判定すると他言語が大量に含まれてしまって困っています

281 :デフォルトの名無しさん:2009/06/16(火) 01:34:59
言語とスクリプト(用字)の区別をつけてほしいところだけど、
java.lang.Character.UnicodeBlockでだいたいカバーできるんじゃない?

282 :デフォルトの名無しさん:2009/06/16(火) 01:49:42
親戚(兄弟)クラスに java.awt.InputSubset というものがあるようだ。
こっちのほうが使いやすいかも。


283 :デフォルトの名無しさん:2009/06/16(火) 01:52:38
ごめん、InputSubsetはただの定数で、判定用メソッド皆無だな。
どうやって使うんだ、これ。


284 :デフォルトの名無しさん:2009/06/16(火) 03:20:48
パパスクリフトならクリフトの方が好きかな。

285 :デフォルトの名無しさん:2009/06/16(火) 03:23:34
ザラキー魔は嫌いです

286 :デフォルトの名無しさん:2009/06/16(火) 06:14:29
>>280
「日本語かそうでないか」の詳細がわからんのでなんとも。

ちなみに、JIS X 0208 に含まれてる文字かを調べるなら
java.nio.charset.Charset.forName("JIS0208").newEncoder().canEncode("日本語")
なんかでも可。"JIS0208"の部分は実装依存だけど。
あと、ひらがなカタカナはともかくとして
CJK Unified Ideographsは日中韓で共有してるので
これらを使ってる場合は文字の種類からだけ
日本語かどうかを判別するのは面倒かも。

287 :デフォルトの名無しさん:2009/06/16(火) 06:19:32
>>283
java.awt.im.InputContext#setCharacterSubsets(Character.Subset[] subsets) の引数に

288 :デフォルトの名無しさん:2009/06/16(火) 07:25:46
Stringとintの配列を格納する配列を作るにはどうすればいいのでしょうか。
LLで書くと↓のような感じなのですが。。。

[
[1, "任天堂"],
[2, "ソニー"]
]

289 :デフォルトの名無しさん:2009/06/16(火) 07:58:31
>>288
コンパイル時型情報なしでいいなら
new Object[][]{ { 1, "任天堂" }, { 2, "ソニー" } }

290 :デフォルトの名無しさん:2009/06/16(火) 09:51:34
入門書一冊遣り終える以前の初心者スレに成りつつ有るな。

正解が知りたいだけなら、丸投げスレのほうが良いぞ。

http://pc12.2ch.net/test/read.cgi/tech/1232627790/
★★ Java の宿題ここで答えます Part 67 ★★

超初心者スレもある。

http://pc12.2ch.net/test/read.cgi/tech/1228452306/
Javaやらないか(超初心者向け)

291 :デフォルトの名無しさん:2009/06/16(火) 10:29:10
Double型の変数に代入されている数値が
整数かどうか判別するにはどうしたらいいでしょうか?

292 :デフォルトの名無しさん:2009/06/16(火) 10:52:49
doubleには整数は代入できません
残念ですが、代入した時点でdoubleです

293 :デフォルトの名無しさん:2009/06/16(火) 11:04:18
>>291
端数部分があるかどうかは、
try {
new BigDecimal(doubleValue).intValueExact(); // short, longもある
// 端数なし
} catch (ArithmeticException e) {
// 端数あり、またはintの範囲外
}


294 :デフォルトの名無しさん:2009/06/16(火) 13:03:34
>>281
ありがとうございます
調べてみたところいいサンプルがありました。
RADKRAFT: Recognize Zenkaku/Hankaku Characters
http://kamakura.cool.ne.jp/oppama/jaco/zenhan.html

>>282,287
InputSubsetについても調べて検討してみようと思います

>>286
それだとロシア語などもtureとなってしまうようです

295 :デフォルトの名無しさん:2009/06/16(火) 14:17:46
>>293
ただの条件判定に try-catch 使うなよ

296 :デフォルトの名無しさん:2009/06/16(火) 14:21:33
Listの要素はを変更すると元の配列の要素も変更されて、
ArrayListの要素を変更しても元の配列の要素は変更されないのですか。

297 :デフォルトの名無しさん:2009/06/16(火) 14:31:48
日本語でおk

298 :デフォルトの名無しさん:2009/06/16(火) 14:34:08
Listはインターフェイスです
クラスじゃありません

299 :デフォルトの名無しさん:2009/06/16(火) 14:43:59
296がそんな説明で理解できると思えない

300 :デフォルトの名無しさん:2009/06/16(火) 14:44:01
>>291
int化して引き算して差を見るというのは
いろいろアレなのでおいとくとして
Double.doubleToLongBitsでビットパターンに変換して
ごにょごにょすればいいんじゃない?



301 :デフォルトの名無しさん:2009/06/16(火) 17:12:35
htmlからjavaアプレットでプロバイダのipを表示させたいのですが表示されません
どなたかご教示お願い致します

【ip.javaの中身】
InetAddress iaddress = InetAddress.getByName(address);
return iaddress.getHostName();

【htmlの中身】
<html>
<head>
<title>test ip</title>
</head>
<body>
<applet code="ip" width=100 height=100>
</applet>
</body>
</html>

302 :デフォルトの名無しさん:2009/06/16(火) 17:28:06
>>301
どこまで本気なのか計りかねるが、
ソースの一部を表示してるんだよな???

あと、appletタグは間違ってるだろ。

303 :デフォルトの名無しさん:2009/06/16(火) 17:42:12
これでソース全部でコンパイルもせずにip.javaとhtmlファイルを配備してる

304 :デフォルトの名無しさん:2009/06/16(火) 17:45:58
どうせIP晒しページでも作るつもりなんだろ。無視無視

305 :デフォルトの名無しさん:2009/06/16(火) 18:19:49
面倒だからIDEでも使って作ってろよ

306 :デフォルトの名無しさん:2009/06/16(火) 19:40:03
みんな初心者にパネぇなwww

307 :デフォルトの名無しさん:2009/06/16(火) 19:57:01
JTableで自前でセルレンダラーを処理したいんだけど
レンダラーをセットするときに

table.setDefaultRenderer(Object.class, new MyCellRenderer());
だとレンダラーが適応されないんだけど、何でだろう?

table.setDefaultRenderer(Integer.class, new MyCellRenderer());
だと、ちゃんと適応される

確かにテーブルモデルにInteger型の配列を設定しているけれど
そのスーパークラスであるObjectでも処理されるんじゃないの?

検索してみても
table.setDefaultRenderer(Object.class, new MyCellRenderer());
みたいなサンプルは多いんだけど、これだと自前のレンダラーが
呼ばれないんだよなぁ、何でだろう

308 :デフォルトの名無しさん:2009/06/16(火) 21:17:26
>>307
Integer にはもう NumberRenderer というデフォルトレンダラが設定されてる。

JTable jt = new JTable();
jt.setDefaultRenderer(Object.class, null);
TableCellRenderer tcr = jt.getDefaultRenderer(Integer.class);
System.out.print(tcr.toString());


309 :デフォルトの名無しさん:2009/06/16(火) 21:35:10
ついでに他のデフォルトレンダラ調べようとコードを見たら一目瞭然だった。
createDefaultRenderers() で Object, Number, Float, Double, Date, Icon, ImageIcon, Boolean が定義済み。

310 :デフォルトの名無しさん:2009/06/16(火) 22:01:47
例外処理の勉強をしているのですが、どんなホームページを見ても、例外が発生した場合
オリジナルのエラーメッセージを表示させて終了 というモノしかありません。

例えば、5桁の整数のみ入力可能にして、それ以外だとエラーメッセージを表示させた後に再入力を促す
などには出来ないのでしょうか?

311 :デフォルトの名無しさん:2009/06/16(火) 22:12:33
while(true){
int x = 0;

// 入力処理

// 数値へパース

// 5桁ならループを出る
if((9999<x)&&(x<100000)){
break;
}

// エラー表示

}

これでいいじゃん。
例外出そうなのはパースくらい。

312 :310:2009/06/16(火) 22:33:52
>>311さんネタですか?


313 :デフォルトの名無しさん:2009/06/16(火) 22:51:49
ぜんぜんネタに見えないけど?
条件があるなら先に全部出さなきゃ。

314 :デフォルトの名無しさん:2009/06/16(火) 22:56:53
いきなりネタ呼ばわりとか失礼な奴だなw

315 :デフォルトの名無しさん:2009/06/16(火) 23:05:21
>>310の質問文からだったら>>311の回答で十分だと思うぞ。

コンソールかGUIすら書いてないし。

316 :デフォルトの名無しさん:2009/06/16(火) 23:46:31
だから情報出してこない奴なんかにレスしてやる必要ねえだろ

317 :デフォルトの名無しさん:2009/06/16(火) 23:54:22
お前は無視すりゃいいじゃん
俺に命令するな

318 :デフォルトの名無しさん:2009/06/17(水) 00:15:41
なにこのgdgd

319 :デフォルトの名無しさん:2009/06/17(水) 01:34:47
想定外の値の通常の入力を例外処理というのかー

新たな息吹を感じるゼ

320 :デフォルトの名無しさん:2009/06/17(水) 01:37:28
例外関係ないじゃん・・・
それにGUIでも311で十分だと思うんだが

入力処理んとこはJOptionPane#showInputDialogとかつかって
エラーはshowConfirmDialogでいいんじゃないの?

まあ確かにパースでエラーでたら例外必要かもしれないけど

321 :デフォルトの名無しさん:2009/06/17(水) 02:08:11
漏れは英数前提だぜって組んで、全角で入力されて涙目か。

322 :デフォルトの名無しさん:2009/06/17(水) 05:19:37
今のwinだとコマンドプロンプトから全角入力できないやつ居たりするからそうでもない。

323 :デフォルトの名無しさん:2009/06/17(水) 09:24:44
例外投げるクラスやメソッド使った場合、try-catchで囲むか、throwsで丸投げすることになると思うんですが、
この2つは何か使い分けのようなものがあるんでしょうか。今のところすべてtry-catchで囲んでますが、throws使う利点が何かあるんですか?

324 :デフォルトの名無しさん:2009/06/17(水) 09:39:43
その場所で例外の発生を処理する場合はcatchだし、例外の処理は呼び出し元に委任するのがthrows
まったく違うだろ。

すべてtry-catchってmainの中に全部書いているようなコードなんじゃね?
クラスを使ってプログラムが大きくなってくればtry-catchはまとめて行うべきって解るさ

325 :デフォルトの名無しさん:2009/06/17(水) 09:52:36
卒論で参考文献にのってるフレームワーク利用して
トランプゲーム作ることになったんだけど…

いざ参考文献読んでみたらトランプゲームの場を
用意する方法だけで、肝心の思考ルーチン作成方法が載ってない('A`)
エカルテなんてマイナーゲーム知らねっつの

教えてちゃんなのは重々承知だ
おまいらぼすけての…

326 :デフォルトの名無しさん:2009/06/17(水) 10:27:33
>>325
今すぐ学校の図書館へ行って関連書を探すんだ。
勿論、居るなら教授に聞きましょう。

327 :デフォルトの名無しさん:2009/06/17(水) 10:31:19
>>325
言語に関わらないアルゴリズムの話だからスレ違いだな

アルゴリズム総合スレ in ム板
http://pc12.2ch.net/test/read.cgi/tech/1217773415/l50

328 :デフォルトの名無しさん:2009/06/17(水) 10:51:27
>>326
実は底辺の通信制だから、気軽に学校まで足運べないんだ

でも、確かに関連図書探すべきだよな
逝ってくるよ

>>327
スレ違いだったのね
誘導サンクスです

逝ってきます

329 :デフォルトの名無しさん:2009/06/17(水) 12:10:26
例外処理もまともにかけないとかw
ここの回答者のレベルがしれてるwwwwwwwww

330 :デフォルトの名無しさん:2009/06/17(水) 13:03:16
煽るだけ煽って具体例を出さないヤツもたかが知れてるよな

331 :デフォルトの名無しさん:2009/06/17(水) 13:05:50
>>330
自己紹介乙

332 :デフォルトの名無しさん:2009/06/17(水) 13:59:13
夏にはまだ早いぞ

333 :デフォルトの名無しさん:2009/06/17(水) 14:08:02
コレクションフレームワークというのがありました。
他にも、何々フレームワークとかいうのがあるんでしょうか。

334 :デフォルトの名無しさん:2009/06/17(水) 14:11:50
>>333
あります。

335 :デフォルトの名無しさん:2009/06/17(水) 14:18:36
>>334
あるなら教えて貰えませんか?
そんな答えは聞いてないです

336 :デフォルトの名無しさん:2009/06/17(水) 14:19:33
おかしな流れだな。
まるで先週のようだ。

337 :デフォルトの名無しさん:2009/06/17(水) 14:22:51
132 名前:デフォルトの名無しさん[] 投稿日:2009/06/11(木) 23:50:04
口だけかw
脳内乙よりひでーなww

135 名前:デフォルトの名無しさん[sage] 投稿日:2009/06/12(金) 00:06:18
逆だろw
嘘でも情報を出したやつが勝ちだwww
情報を発信できない情弱は負け

306 名前:デフォルトの名無しさん[sage] 投稿日:2009/06/16(火) 19:40:03
みんな初心者にパネぇなwww

329 名前:デフォルトの名無しさん[sage] 投稿日:2009/06/17(水) 12:10:26
例外処理もまともにかけないとかw
ここの回答者のレベルがしれてるwwwwwwwww



2文字以上草生やしてる奴は一人しかいないからすぐ分かるな

338 :デフォルトの名無しさん:2009/06/17(水) 14:30:31
>>335
フレームワークって要はクラスライブラリの集まりなので無数にあるのよ
あるなら教えろと言われても 「はいこれだけです」 と簡単に答えられるものじゃない

例を挙げるならSwingもそうだしSpring Frameworkなんかもそう
Spring Framework自体も10個以上の小規模なフレームワークから構成される

339 :デフォルトの名無しさん:2009/06/17(水) 14:52:58
>>337
一人だと思い込めるお前がすごいよ

340 :デフォルトの名無しさん:2009/06/17(水) 14:55:06
レスせずにはいられないのですね。分かります。

341 :デフォルトの名無しさん:2009/06/17(水) 15:01:43
とりあえずfusianasanしてみろよ>>340=>>337

342 :デフォルトの名無しさん:2009/06/17(水) 15:12:56
釣られてるなw馬鹿かw

343 :デフォルトの名無しさん:2009/06/17(水) 15:16:23
コレクションのクラスを見ていると、
「保持する要素は要素の自然順序、もしくはコンストラクタに指定されたComparatorに従って昇順にソート」
のように、自然順序というのをよく見かけるんですけど、
自然順位とは、昇順のことなんでしょうか。

344 :デフォルトの名無しさん:2009/06/17(水) 15:24:14
>>343
自然順序もしくは、Comparatorに従って、昇順に

普通に「自然順序」でぐぐると、java.lang.Comparable が見つかるわけだが。
計画的に使えば便利で良いよ。

345 :デフォルトの名無しさん:2009/06/17(水) 15:39:30
のっぽんごでおk?

346 :デフォルトの名無しさん:2009/06/17(水) 15:47:04
ListとMapは、なるほどですねえと思うのですけど、
Setは実際にどのような便利さがあるんでしょうか。
重複データを除けるとかあるみたいですけど。
他に何が便利なんでしょうか。

347 :デフォルトの名無しさん:2009/06/17(水) 16:00:11
>>346
List でも Set の代用しようと思えば出来ない事はないけど、
重複チェックとか順不同の比較とか自分でやらなきゃいけないので不便。

348 :デフォルトの名無しさん:2009/06/17(水) 16:50:30
>>344さん、>>347さん。ありがとうございました。

349 :デフォルトの名無しさん:2009/06/17(水) 17:53:22
そういうのを調べていくと、
そのうちにLinked〜ってのが気になってきて、
関連してQueueとかも絡めてコレクションフレームワークとかを色々と覚えられて、
標準ライブラリの構成とかも理解が深まってマジお勧め

350 :デフォルトの名無しさん:2009/06/17(水) 20:46:30
どうやったら見やすく書くことが出きるのか考えているんだけど、
見やすさのために何も書いていない行を入れているのか?
こんな感じ
public String hogehoge (String hoge) {

String hoge = "hage";

if(true) {
etc....

return hoge;
}

351 :デフォルトの名無しさん:2009/06/17(水) 20:50:51
処理ブロック単位でいいっしょ
ある程度の処理単位はあるっしょ

352 :デフォルトの名無しさん:2009/06/17(水) 21:20:08
>>351
IDEでコードを書いていると、何か汚くなっちゃって
一応はルールは決めているんだけど、あんまり見栄えが良くない

353 :デフォルトの名無しさん:2009/06/17(水) 21:45:54
1メソッド30行以内、ネストは2つまで、1行120文字、折り返すようなコードは不可
って感じのルールでやってる、空白行は原則なし

354 :デフォルトの名無しさん:2009/06/17(水) 23:13:30
class Mysort1 implements Comparator<Object> {
public int compare(Object o1, Object o2) {
return ((Integer)o1).compareTo((Integer)o2) * (-1); } }
インタフェースを実装するときは、全てのメソッドを実装しないといけない
と聞いているのですけど、Comparatorインタフェースには
compareメソッドとequalsメソッドがあるのに、
equalsメソッドを実装しなくていいのは何故なんでしょうか。

355 :デフォルトの名無しさん:2009/06/17(水) 23:16:49
メソッドの行数に制限入れて頑に守る奴にろくなプログラマはいない

356 :デフォルトの名無しさん:2009/06/17(水) 23:21:11
>>354
MySort1クラスのスーパークラスは何であるかと考えてみよう。
例えばJ2SE 6のObjectクラスの説明には、

>すべてのクラスは、スーパークラスとして Object を持ちます。
>配列を含むすべてのオブジェクトは、このクラスのメソッドを実装します。

とある。ということは、どういうことかわかるな?

357 :デフォルトの名無しさん:2009/06/17(水) 23:28:06
>>356
Objectクラスのequalsメソッドは確か == の機能だったと思います。
Stringのequalsは内容が一緒かという比較だったと思います。
Comparatorのequalsメソッドが内容が一緒かという比較が出来ると
いうことは、Objectクラスから継承したequalsメソッドが、
Comparatorインタフェースのequalsメソッドの実装ということに
なるんでしょうか。

358 :デフォルトの名無しさん:2009/06/17(水) 23:31:48
あたり

359 :デフォルトの名無しさん:2009/06/17(水) 23:39:46
>>356>>358。ありがとうございました。



360 :デフォルトの名無しさん:2009/06/17(水) 23:43:35
こんばんわ。
JAVAを独学で勉強し始めて1ヶ月ほどたち、自分で筋トレ用の予定管理
windowアプリケーションを作ってみようとおもっています。

アプリケーションのイメージを下記リンクにイメージを張っておきました。
http://u1.getuploader.com/toollove/download/100/sample.bmp

その際、JTableを使えばよいか、GridBagLayout(セルの中にtextfieldを挿入)を
使えばよいか迷っております。
私の調べたところ、
JTable・・セルの結合ができない。
     セルの内容について変化したかしないかの判定ができる
     (更新時に変化の発生しないセルは更新処理を飛ばせる)
GridBagLayout・・・セルの結合ができる。セルの内容変化については不明

ということがわかりましたが、どちらをつかったほうが、このような
アプリケーションを使う際に適しているのでしょうか。
或いは、腕立て、腹筋等の項目はGridBagLayoutを用い、
予定回数、実績回数のセルは、JTableをつかったりということも
できるのでしょうか。

説明がうまくなくてすみません。

361 :デフォルトの名無しさん:2009/06/17(水) 23:54:37
>360
GridBagLayoutはありえない
セルの結合って、TableはExcelじゃないよ
出来ないことも無いけど、はじめて1ヶ月じゃ手に負えないと思う
あと中にJTextFieldいれようとすると難しくなるから、入力はダイアログなり別にわけてJTableは表示だけの方が楽だと思う

作れずに挫折するようなハードルはよくない

362 :デフォルトの名無しさん:2009/06/18(木) 00:07:37
String変数に入っている文字列の数を調べる方法はありませんか?

363 :デフォルトの名無しさん:2009/06/18(木) 00:08:47
>>362
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#length()

364 :デフォルトの名無しさん:2009/06/18(木) 00:22:45
常に1個だろ






なんて釣られないからな。

365 :デフォルトの名無しさん:2009/06/18(木) 01:01:39
凡化と特化のメリットってなによ?

366 :デフォルトの名無しさん:2009/06/18(木) 01:30:44
>セルの結合
SwingなんだからHTMLのtableとか簡単だが

367 :デフォルトの名無しさん:2009/06/18(木) 01:55:19
>凡化と特化のメリットってなによ?

継承のメリットと等価
オブジェクト指向における汎化と特化をJavaの上で実現してるのが継承だから

368 :デフォルトの名無しさん:2009/06/18(木) 02:05:02
え?

369 :デフォルトの名無しさん:2009/06/18(木) 02:12:06
ああジェネリックスの話かと思った

370 :デフォルトの名無しさん:2009/06/18(木) 08:00:58
少し上にも出てたのですが、コードの書き方とかで何か決めていることってありますか?
私は原則として電通が公開しているJAVAコーディング規約と昨年買ったコーディングの掟の本を守る感じなのですが。

371 :デフォルトの名無しさん:2009/06/18(木) 09:32:49
プロジェクト内で複数のコーディング規約を併用しなけりゃなんでもいいよ。

372 :デフォルトの名無しさん:2009/06/18(木) 10:25:43
setLayout(new BorderLayout());
Scrollbar sb1 = new Scrollbar(Scrollbar.VERTICAL);
add(sb1, BorderLayout.EAST);

こうやって上下のスクロールバーを実装したのですが
スクロールバーは動くものの、中の画面が移動しません。
どうすればいいでしょうか?


373 :デフォルトの名無しさん:2009/06/18(木) 10:38:50
>>372
つ JScrollPane

374 :デフォルトの名無しさん:2009/06/18(木) 18:46:37
Javaの基本が一冊読み終わりました。
次にビジュアルなプログラムに挑戦したいと思いますけど、
AWT、SWING、SERVLET/JSPなどが、あるようですけど、
どういう順番で勉強するのがいいのでしょうか。

375 :デフォルトの名無しさん:2009/06/18(木) 18:51:09
>>371
ご返答ありがとうございます。
プロジェクトに入ると自己流の書き方はNGになるという認識であってますか?

もしそうなら今やってることがなんか意味がないみたいに思えてきた…

376 :デフォルトの名無しさん:2009/06/18(木) 19:10:00
>>374
AWTとSWINGは今からわざわざ覚える必要は無いかなと思います。
その3つから選ぶならJSP+Servletですが、その前に軽くデータベースなんていかがでしょう。
データの永続化がないシステムなんてほとんど無いでしょうし。

JDBCを生で使って基本を押さえて、馴れたら軽めのO/RマッパーやJPA。
入門書でも少しは触りますけど、「Java入門」なのでクローズ処理とかトランザクション管理とか大切な部分が省略されちゃってますから。
ついでにDBMSの知識も得られて一石二鳥かも?

377 :デフォルトの名無しさん:2009/06/18(木) 19:22:50
実行結果をテキストファイルに出力したくて以下のプログラムを書きました。

import java.io.*;
class test101{
public static int[] num;
public static int sum =0;

static void sum(int a[]){
num = a;
for(int n=0;n<4;n++)sum+=a[n];
pw.println("合計は"+sum+"です。");
}
}
class test100{
public static void main(String args[]) {
try{
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test1.txt")));
pw.println("1+2+3+4を行います。");
int[] num = {1, 2, 3, 4};
test101.sum(num);
pw.close();
}
catch(IOException e){
System.out.println("入出力エラーです。");
}
}
}

「1+2+3+4を行います。」は問題なく出力されるのですが、pw.println("合計は"+sum+"です。");でシンボルエラーが出てしまいます。
sumの中のprintln文もテキストに出力するにはどうしたら良いでしょうか?

378 :デフォルトの名無しさん:2009/06/18(木) 19:39:50
test100で、test101.sum(num,pw);として、
test101で、static void sum(int a[], PrintWriter pw) {
とすれば良いかなあ。

379 :デフォルトの名無しさん:2009/06/18(木) 19:48:55
ざっと見てもコンパイルできないと思うんだが。
「問題なく出力される」ってw
俺も>>378でいいかと。

380 :デフォルトの名無しさん:2009/06/18(木) 19:54:23
自分ならTest101#sum(int[])の戻り値をlongにして、pw.println()は呼出し元で。

理由は、Test101#sum(int[])の仕事が大きすぎる気がするから。
sum()は渡されたint配列の和を計算するメソッドと割り切って、結果出力は呼出し元で行うのが自然かなと思います。

381 :377:2009/06/18(木) 20:04:17
>>378
なるほど!できました。

もう一つ質問なのですが、引数で指定されたファイル名で出力したいと思っています。
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test1.txt")));
のtest1.txtをargs[0]にして、java test100 out.txt で実行してみたのですが、args[0]というファイルが出来てしまいました。

なにが良い方法はありませんか?

382 :デフォルトの名無しさん:2009/06/18(木) 20:07:28
>375
NGです
そのプロジェクトの書き方に従わなければメンテナンスできなくなります。

ですが、マトモなプロジェクトならばルールに大きな違いはありません
Sunの標準をベースにした似たようなルールです

383 :デフォルトの名無しさん:2009/06/18(木) 20:10:29
皆様のご意見をお聞かせください

for(Iterator ite = this.getFacade(request).getTestList(test).iterator(); ite.hasNext();){
TestTransfer aTran =(TestTransfer)ite.next();
mapTEST.put(aTran,aTran.getEtc());
}
テストリストから特定の物を取り出してマップにputするものですが
リストの量が大きくなった時、処理効率が悪い気がするのですが
もっと良い方法はありますでしょうか?
宜しくお願い致します


384 :デフォルトの名無しさん:2009/06/18(木) 20:14:31
>>381
それは多分↓こうしたのだろう。
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("args[0]")));

↓こうな
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(args[0])));

385 :デフォルトの名無しさん:2009/06/18(木) 20:16:40
>>384

なるほど!納得です。そうですよね。ありがとうございました〜。

386 :デフォルトの名無しさん:2009/06/18(木) 20:23:45
画像の読み書きを勉強しているのですが、下記のURLを見て勉強をしてます
ttp://www.syboos.jp/java/doc/write-image-file-from-url.html
現在のハードウェアスペックを考えると、byte型の配列が1024しかないのは
小さいような思うのですが、気のせいでしょうか?

387 :デフォルトの名無しさん:2009/06/18(木) 20:24:11
String型の配列に人の名前が入っています。
名前をチェックして、名前の文字数が5の人を
System.out.printlnで出力したいのですが、どのようなプログラムを書けば良いでしょうか?

388 :デフォルトの名無しさん:2009/06/18(木) 20:48:42
>>387
オイラもプログラミング詳しくないけど
String[] nameList ={"satou","itou","suzuki","watanabe"};
for(String name:nameList) {
if(name.length() == 5) {
System.out.println(name);
}
}
}


389 :デフォルトの名無しさん:2009/06/18(木) 20:50:41
>>383
直接的な答えじゃなくて申し訳ないんだけど、
その手の話をするときには先に確認することが3つあります。

(1) その処理に求められる非機能要件
(2) 想定される平均/最大データ量
(3) (2)を元にテストデータを作って実測した現行コードの処理時間

これらに問題がなければ最適化は後回しでOK。
それよりも読みやすさとか保守のしやすさを考えた方がずっと良いです。

390 :デフォルトの名無しさん:2009/06/18(木) 20:52:20
>>386
ネットワークの転送速度から言うならそうかもしれない。
でも、一度に読み込む分のバッファだから1024でも充分。
チューニングするかどうかのレベルの話だと思う。

>>383
自分はそれを効率UPする方法は知らない。
レスが付かなかったら、多分無視されたわけじゃなく誰も知らないということ、でよろしく。

>>387
String#length() を使う。
内部的にUnicodeなので全角半角問わずに5文字。
int CHECK_LEN = 5;
String[] names = new String[] { "1", "12", "123", "1234", "12345", "123456"
, "一", "一二", "一二三", "一二三四", "一二三四五", "一二三四五六"};
for (String name : names) {
if (name.length()==CHECK_LEN) {
System.out.println(name);
}
}
名前に空白が入っていたらとかは考えていない。

391 :386:2009/06/18(木) 21:09:47
>>390
thx

392 :デフォルトの名無しさん:2009/06/18(木) 21:15:59
いまjavaの研修を受けています
Exceptionを習ったのですが、例外処理は全て
ユーザー定義Exceptionを利用して書くべきなのでしょうか?

まだExceptionには不慣れなこともなり、if文で判別して
書いた方が早いと感じるのですが

393 :デフォルトの名無しさん:2009/06/18(木) 21:18:18
>>376 ありがとうございました。
データベースはMySQLを勉強してみます。



394 :デフォルトの名無しさん:2009/06/18(木) 21:35:30
>>392
ifで全部済まそうというのは初心者

395 :デフォルトの名無しさん:2009/06/18(木) 21:38:31
>>392
おぢさんたちは、エラーコードやらエラー情報やらにウンザリなんよ(´・ω・`)。
悪いことは言わない。例外を投げたり捕捉したりが絶対に便利。

396 :デフォルトの名無しさん:2009/06/18(木) 21:58:31
>>392
例外はあくまでも例外であって、分岐じゃないって考えてください。

例えばDBから情報を取得する時

(正常) 情報が取得できた。
(代替) 情報が無かった(分岐で書く)。
(例外) DBに接続できなかった(例外で書く)。

と書いたら少しはニュアンスが伝わるでしょか。

397 :デフォルトの名無しさん:2009/06/18(木) 21:59:52
>>394
初心者の遠吠え乙

>>395
意味ぷーです

>>396
簡単なコードでご教授お願いします

398 :デフォルトの名無しさん:2009/06/18(木) 22:06:51
Webアプリケーションでリクエストごとにuser-agentを見る場合、
毎回チェックするのとuser-agentをどっかに保持しておくのとどっちがいいでしょうか?
保持しとく場合、user-agentの種類とバージョンを一緒にして管理した方がいいのか、別々に管理したほうがいいのか。

399 :デフォルトの名無しさん:2009/06/18(木) 22:08:05
一度User-Agent文字列のバリエーションの多さに絶望するといい。
ほとんどIEだけどさ。


400 :デフォルトの名無しさん:2009/06/18(木) 22:08:08
エラーコードで分岐(分岐で例外を扱う)はまだ気持ちがわかるんだけど
逆に例外で分岐を扱うのが居るから困る。
あと、NullPoをcatchするようなやつは小一時間かけて説教したくなるわ。

401 :デフォルトの名無しさん:2009/06/18(木) 22:27:18
>>398
明らかに一緒に管理したほうがいい
種類とバージョンを別々に管理とか聞いたことがない

402 :デフォルトの名無しさん:2009/06/18(木) 23:06:07
import javax.servlet.*;と書くと、
javax.servletはみつかりません、と出るんですけど
何か新たにインストールしないといけないんでしょうか

403 :デフォルトの名無しさん:2009/06/18(木) 23:08:06
>>397
例えば…

String[] strs = new String[2];
strs[0] = "not null";

という初期化がされたStringの配列があったとして
別の所で strs[0]、strs[1]、strs[2] とアクセスしたらどう処理されるか。

添字0から順に "not null"、null、ArrayIndexOutOfBoundsException だろう。
これで取得成功、取得成功だが要素が空、取得失敗の3パターン。

404 :デフォルトの名無しさん:2009/06/18(木) 23:09:18
>>400
アプリケーションよりの所でNPEキャッチしてエンドユーザー向けのメッセージ出すことはあるだろ。

405 :デフォルトの名無しさん:2009/06/18(木) 23:19:21
ねぇよ。

406 :デフォルトの名無しさん:2009/06/18(木) 23:34:47
>>401
貴様は俺のすべてを否定する気か。

407 :デフォルトの名無しさん:2009/06/18(木) 23:35:48
おお有りだろ

運用が言語知識あるとは限らないし、
生のトレース吐くだけじゃ運用がわからんこともある


408 :デフォルトの名無しさん:2009/06/18(木) 23:38:04
ああすまん、ぬるぽ限定か
こりゃ作りこみバグだから、
わざわざcatchはしないわ

409 :デフォルトの名無しさん:2009/06/18(木) 23:38:20
>>402
手っ取り早いのは、MergeDocのEclipse3.4.2 java+jre を入れてしまうこと。
一緒に展開されるTomcat6.0のlib/servlet-api.jarを参照。(自分で設定するなら)
この場合、Tomcatのインストールと設定が不要なのが最大のオススメポイント。
そしてTomcatプラグイン使って楽々実行。
warファイル作って、配置して・・・とかしないで良い。
javax.servletってな〜に〜?とか聞きに来るレベルなら迷わずポチっと。
http://mergedoc.sourceforge.jp/

>>404
無いね。コーディングエラーしかありえないから。

410 :デフォルトの名無しさん:2009/06/18(木) 23:46:48
javaの勉強として、2ちゃんねるからDatを取得するプログラムを書いています。
クラスはHttpURLConnectionを使っています。
ttp://www.monazilla.org/index.php?e=198 の要求メッセージの一例(1回目)のには
>Connection: close と書いていますが、なぜclosなのかいまいちわかりません
connect()→httpステータスコードの確認→InputStreamを使ってDatを取得の順番でいいのでしょうか?
リファラやUser-Agentの設定などは済ましています



411 :デフォルトの名無しさん:2009/06/18(木) 23:52:23
おれも昔はヌルポに悩まされたもんだが
全体をtryで囲み
try{
・・・
}catch(NullPo){
;
}
とすることで事無きをえるようになったぜ

412 :デフォルトの名無しさん:2009/06/18(木) 23:55:48
>>409
eclipse3.4ガニメデ日本語オールインワン使ってます。
tomcatは5.0、5.5、6.0が入っているようです。
いまネットで見てみたら、tomcatフォルダにあるservlet.jarというのを
eclipse外部ライブラリ取り込みしなさいみたいなこと書いてあります。
やってみようかと検討中です。tomcatは6.0がいいのでしょうか。
ところでjavaxというのはtomcatに属しているのですか?
javaのAPIでクラスを調べてもservletクラスは確かにないですね。
かなり驚いています。

413 :デフォルトの名無しさん:2009/06/19(金) 00:12:45
>>412
J2EEを・・・

414 :デフォルトの名無しさん:2009/06/19(金) 00:49:32
>>409
> 無いね。コーディングエラーしかありえないから。
オモチャや使い捨てのプログラムならともかく、それ以外でエラーハンドリングしないなんてありえん。
自分も含めてプログラマがコーディングエラーしないなんて信じられるわけないだろ。

415 :デフォルトの名無しさん:2009/06/19(金) 00:56:40
>>390
String#length()(に限らないが)はサロゲートペアに注意な。


416 :デフォルトの名無しさん:2009/06/19(金) 01:01:33
>>414
おまいさんは仕事を任されたらまず最初に、失敗した時の言い訳を考えておく
のかと小一時間。

417 :デフォルトの名無しさん:2009/06/19(金) 01:07:59
>>414
おまえなら本当に>>411みたいなことをやりそうだなwww

418 :デフォルトの名無しさん:2009/06/19(金) 01:12:21
>>416
じゃあおまいはシートベルトもせず自賠責にも入らず車に乗るのかと(ry
死ぬ前にせめてダイイングメッセージ残すくらいのことはさせるだろ。
ああ、普通そういうときはExceptionとかThrowableを引っ掛けるか。
NPE直に拾うのはないな。それなら済まんかった。

419 :デフォルトの名無しさん:2009/06/19(金) 01:13:18
今日見たソースに
new AbstractDataAccessor()
なんてのがあった

abstractじゃないのにそんな名前つけんな!
紛らわしすぎる

420 :デフォルトの名無しさん:2009/06/19(金) 01:14:37
プログラミング言語でOK

421 :デフォルトの名無しさん:2009/06/19(金) 01:55:34
>>419 たぶん、abstract とか concrete とかいう名前のテーブルが DB にあるんだよ

422 :デフォルトの名無しさん:2009/06/19(金) 07:41:06
いや、>419に釣られんなよ
new AbstractDataAccessor()
たぶん、こうだ。
new AbstractDataAccessor()
{
// 実装
};


423 :デフォルトの名無しさん:2009/06/19(金) 07:46:59
現在、画像の一括表示をした状態から見たい画像をクリックすると
新しいウィンドウでその画像を表示するプログラムを作ろうとしているのですが
新しいウィンドウを開くことについて調べると
JavaScript関係のプログラムばかり出てきてわかりません。
教えてもらえませんか?

424 :デフォルトの名無しさん:2009/06/19(金) 08:19:14
>>423
情報が少な過ぎてよくわからん。
Javaのバージョン、
作成するシステムの種類(Webとかawtとかswingとか…)
どこまで出来ているのか(全くゼロ、質問した新ウィンドウ以外は完成してるとか)
質問者のスキル(どの程度書けるの?)

このくらいの情報をつけてくれるとレスもしやすいと思う。

425 :デフォルトの名無しさん:2009/06/19(金) 08:37:02
ふらっと宿題やりますスレ眺めてたんだけどさ、
あそこの回答見てると、ほんとに動けばいいや的なのと
拡張改修まで気にしてるのとがよくわかって面白いな。
恐らく今の質問者のスキルでは書けない実装もあるだろうし、
突っ込まれたらなんて答えるのかが非常に気になる(笑

まあ余談は横に置いといて、
Stringで読んだ数字文字列を数値に変換するときってどんな風にチェックしてます?
いきなり突っ込んでNumberFormatException捕まえるのは乱暴な気がするんだけど。

426 :デフォルトの名無しさん:2009/06/19(金) 08:47:29
int a=get(index++), b=get(index++), c=get(index++);
というコードをよく見るのですが、このコードではa || b || cのように必ずa,b,cの順に実行されることが保障されてるのでしょうか?

427 :423:2009/06/19(金) 08:53:38
import java.awt.*;
import java.io.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;

勉強し始めて始めて3週間くらいかな
本当は宿題スレに描くべきなのかもしれないけど、
なんとか自分で解きたかったからヒントをもらいにこっちに書き込んでみました

完成度は新ウィンドウ以外はほぼ完成
画像一覧を表示させる(ウィンドウでのアイコン表示のように)部分は完成していて
そこから画像をクリックすると新しいウィンドウでプレビューのようにその画像が出るようにしたい

ただもとの画像の表示するサイズを固定して50×50ってかんじにしてるから
新しいウィンドウで開くときはまたもとの画像を読み込んでって感じにしなきゃいけないのはわかるんだけど
そのやりかたも全くわかってないくらいの初心者です。


428 :デフォルトの名無しさん:2009/06/19(金) 09:16:49
>425
正規表現で緩くチェックしてから変換が無難

>426
そんなコードは滅多に見かけないわw
a, b, c の順に実行されることは保証されるが
in a = get(index++);
in b = get(index++);
in c = get(index++);
となぜ書かないんだ?
こう書けばおまえさんのような疑問が出ることもなかろうに
例外発生時も行が同じだとどこが問題かわかんねーぞ

429 :デフォルトの名無しさん:2009/06/19(金) 09:20:49
>427
まずは「JDialog」で検索するよろし

430 :デフォルトの名無しさん:2009/06/19(金) 09:29:02
>>428
何ですかこの人?
頭壊れちゃってるんですか?8笑)

431 :デフォルトの名無しさん:2009/06/19(金) 10:37:01
おつかれ、もう休んでいいよ

432 :デフォルトの名無しさん:2009/06/19(金) 14:10:34
まだHelloServletが出ません。敷居が高いですねえ。
悪戦苦闘しています。eclipseで行っているんですけど、
サーバ登録(servers)とか動的何とかとか、色々と行わないと
いけないみたいですけど、皆さんもこのような複雑なこと
本当に行っているのでしょうか。

433 :デフォルトの名無しさん:2009/06/19(金) 14:11:49
その上から目線の書き方、なんかデジャブすんなw

434 :デフォルトの名無しさん:2009/06/19(金) 14:13:09
そうしてeclipse内部のTomcatを起動して内臓のブラウザが表示されて、
その後本物のTomcatを起動するとか、warにエクスポートするだとか、
複雑なこと書かれていますが、意味不明です。

435 :デフォルトの名無しさん:2009/06/19(金) 14:14:49
Servletも、やはり入門書を一冊読まないと難しいものなんでしょうか。

436 :デフォルトの名無しさん:2009/06/19(金) 14:24:54
別に読まなくても楽勝だと思うんだが。
Java自体の経験はあるの?

437 :デフォルトの名無しさん:2009/06/19(金) 14:31:32
Javaの勉強始めて3か月たちました。Java入門書を一冊読み終わったところですね。

438 :デフォルトの名無しさん:2009/06/19(金) 14:53:42
Eclipseでやってるってのは分かったが、その環境は?
参照したWebページでは、Tomcatのプラグインはなにつかってんだ?

俺が使っているのは、Europa+WTPだが
新規プロジェクトで、ダイナミックウェブプロジェクトを選べば、
servlet-api.jarにパスを通すとかといった、基本的なところは
全て終わってるけどな?

多少の設定は要るが、それでもEclipse上で全て終わるしなぁ。

見てるところが古いんじゃねーの?

439 :デフォルトの名無しさん:2009/06/19(金) 17:51:21
Pleiades ガニメデ3.4 All in One日本語です。
Tomcatが既に起動してて、さらに起動しようとしていたようです。
HelloWordが出ました。そのHelloWordプログラムですけど、
public class HelloWorld extends HttpServlet implements Servlet {
public HelloWorld() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("<html>");
これで、setContentTypeメソッドはHttpServletResponseインターフェイスの
上位のServletResponseインターフェイスのメソッドなんですけど、
このsetContentTypeメソッドは、どこで実装されているんでしょうか。
実装している箇所を見つけきれません。

440 :デフォルトの名無しさん:2009/06/19(金) 20:40:31
宿題スレの741にあるメソッドなんですが、引数にfinalとかチェックしてIllegalArgumentExceptionとか見慣れない書き方がたくさんです。
これってJavaっぽい書き方してるんですか?
それとも適当に書いてる?

441 :デフォルトの名無しさん:2009/06/19(金) 21:03:57
txtファイルにプログラムコードを書いたのですが
これをどうすればJavaになるのでしょうか?
拡張子を.javaにかえても効果がありませんでした。

442 :デフォルトの名無しさん:2009/06/19(金) 21:07:41
初心者はIDEつかえ

パス云々の説明がめんどくさい

443 :デフォルトの名無しさん:2009/06/19(金) 21:47:29
>>440
引数チェックは普通。null ならぬるぽ例外の方が良いという人も。
どちらも実行時例外だが、@exception に仕様を書くべき。
要は、仕様だから馬鹿な値をよこすな、と。

引数へのfinal指定は上書きバグ防止のオマジナイ。

444 :デフォルトの名無しさん:2009/06/19(金) 21:47:36
439です。うなってます。
直接HttpServletResponseインタフェースをimplementsしているわけでは
ないので実装する必要がないってことですか。そういえば、コレクションの
Listインタフェースとかを使うときに、実装とかやってませんでした。
クラスでimplementsするときだけ全部実装なんですね。
変な質問をしてしまいました。

445 :デフォルトの名無しさん:2009/06/19(金) 22:11:29
>>443
お返事感謝です。
書き方はそう変ってことはないんですね。

たぶん全角文字列で呼ぶと期待通りに動かない気がするけどいいのかな。

446 :デフォルトの名無しさん:2009/06/19(金) 22:22:41
メソッドA(public)が同じクラス内の、メソッドB(private)を呼び出している。
このクラスを継承して、メソッドBだけをオーバライドするような処理をしたい
実際にはシンタックスエラーになるけど、これを解決するような処理できない?

447 :デフォルトの名無しさん:2009/06/19(金) 22:43:24
>>444
約束さえ守っているなら具体的にどうやって実現しているかは
考えなくていい、というときの約束に当る部分を定めるのが
インターフェイス。

実装がどうなっているかは、requestやresponseにgetClass()
してクラス名を調べ、あとはフレームワークのソースにあたるべし。


448 :デフォルトの名無しさん:2009/06/19(金) 22:54:03
>>446
メソッドBのアクセス修飾子外せ

449 :デフォルトの名無しさん:2009/06/19(金) 23:00:46
>>446
クラスに手を入れられないなら、最終手段はリフレクション。

450 :デフォルトの名無しさん:2009/06/19(金) 23:02:44
Nodeってクラスがあって、それはint x, y, idを持ってる
これを配列でもコレクションでもいいからまとめて管理したいのだけど
IDが重複して登録されるのは避けたい

こういう場合、追加削除の手間を考えてコレクションを使うとして
IDが被らないようにするには、追加する時にいちいち全ての要素のIDと比較して
被ってないか見てみるしかないでしょうか?

重複自体はSetで避けられるのですが
それはあくまで要素の重複で、この場合は要素の持っているx, y, idのidのみを重複不可としたいのです

451 :446:2009/06/19(金) 23:13:38
>>448
サブクラスではメソッドBが見えないから、やりたいことには近いけど
スーパークラスのメソッドBが見えるのは困るんだよ
>>449
調べてみるわ

452 :デフォルトの名無しさん:2009/06/19(金) 23:15:43
NodeのhashCodeメソッドをオーバーライドしてid返すようにしてHashTable使う

453 :デフォルトの名無しさん:2009/06/19(金) 23:19:02
private無視してリフレクション乱用してるプログラム読まされると発狂する

454 :デフォルトの名無しさん:2009/06/19(金) 23:19:49
オーバーロードさせない為に見せない(private)んだから本末転倒な気もするわな。

455 :デフォルトの名無しさん:2009/06/19(金) 23:20:14
オーバライドな。

456 :デフォルトの名無しさん:2009/06/19(金) 23:31:57
List<String> hoge = new ArrayList<String>() と、書いた方がいいよって
説明しているサイトがあるけどなんで?
だって、hogeは宣言した後にhoge = new LinkedList<String>();って書く事は少ないハズだし

457 :デフォルトの名無しさん:2009/06/19(金) 23:54:28
>456
あとからArrayListから別のListに変えたいって思うことがあるかもしれないじゃない

マルチスレッド化するからVectorが必要になるとか
そういうときにArrayList独自のメソッド使ってると難しいってことでしょ

458 :デフォルトの名無しさん:2009/06/19(金) 23:56:13
Vectorの存在価値がわからない。。。

459 :デフォルトの名無しさん:2009/06/19(金) 23:59:21
>>456
ローカル変数をインタフェースで宣言する意味は余り無い。
別の何かを使う時も書き換えれば良いから。

>>458
過去の遺産。
見た目でわからないから嫌なのだが、お手軽な同期対応クラス。

460 :デフォルトの名無しさん:2009/06/20(土) 00:04:56
>>456
ジェネリクスの効用かなあ
例えばリターンがObjectのときキャストミスがなくなるとか。

461 :デフォルトの名無しさん:2009/06/20(土) 00:10:11
Java5.0以降ならConcurrentMapもCopyOnWriteArrayListも有るからほんとにVectorは使わないね。
完全に後方互換性が必要な場合のみになったと思う。

462 :デフォルトの名無しさん:2009/06/20(土) 02:23:56
[
{
"url": "http://",
"image": "http://",
"time2": "2009-06-20T01:44:09+09:00",
"content": "あいうえお",
"user": "test",
"time": "2009-06-20 01:44:09",
"id": 1231312
},
{
"url": "http://",
"image": "http://",
"time2": "2009-06-20T01:44:09+09:00",
"content": "かきくけこ",
"user": "test",
"time": "2009-06-20 01:44:09",
"id": 1231313
}
]
こんな感じのJSONをjavaでJSONICを使い読み込みたいのですがうまくいきません
http://jsonic.sourceforge.jp/
http://jsonic.sourceforge.jp/1.1/java/api/net/arnx/jsonic/JSON.html

コードは次に

463 :デフォルトの名無しさん:2009/06/20(土) 02:25:09
public class JSONTest {
public static void main(String[] args) throws JSONException, FileNotFoundException, IOException {
JTweetList list = JSON.decode(new FileReader("C:\\p.json"), JTweetList.class);
list.listSize();
}
}
public class JTweet {
public String url;
public String image;
public String time2;
public String content;
public String user;
public String time;
public long id;
}

public class JTweetList {
public ArrayList<JTweet> list;

public void listSize() {
System.out.println(list.size());
}
}

Exception in thread "main" java.lang.NullPointerException
at test.JTweetList.listSize(JTweetList.java:9)
at test.JSONTest.main(JSONTest.java:13)

ぬるぽなんでちゃんとJSONから取り込めてないように思えます。
どのように書けばいいのでしょうか?

464 :デフォルトの名無しさん:2009/06/20(土) 03:47:27
JSONは知らんがそれjsコードに落とすと配列が二つのオブジェクト持ってるんだがJSONて一番外側で配列イニシャライザ使えるの?

sunの実装だとjava6のrhinoに食わせればいいんじゃないの?とか思う俺。

465 :デフォルトの名無しさん:2009/06/20(土) 05:12:57
Vectorは普通に便利だが?

466 :デフォルトの名無しさん:2009/06/20(土) 08:44:56
>>450
キーを id に、値を Node にした HashMap にするのはどう?

467 :デフォルトの名無しさん:2009/06/20(土) 08:50:32
わざわざVectorを使う必要がまったく解らん

468 :デフォルトの名無しさん:2009/06/20(土) 09:27:27
過去から抜け出せないだけ

469 :456:2009/06/20(土) 09:58:33
>>457,>>459-460
なんか、だいたいわかったよ
ありがとう

470 :デフォルトの名無しさん:2009/06/20(土) 11:42:17
30秒ってミリにすると、3*10^4じゃん
これって、もっと格好良くかけないの?

471 :デフォルトの名無しさん:2009/06/20(土) 12:14:40
static 何か 足し算(何か a,何か b){
return a+b;
}
っていう関数の何かをintかlongどちらでも使えるようにするにはどうやりますか?

472 :デフォルトの名無しさん:2009/06/20(土) 12:47:12
サーバーサイドのマルチスレッドに関する書籍でお勧めのは無いでしょうか。

今まではバッチ系の実装者をやってきてたんですが、
突然管理側に回ることになり、
しかも下についてるメンバがマルチスレッドに疎いため、
参考文献を用意したいと思ってます

473 :471:2009/06/20(土) 12:51:23
ジェネリクスのようなやり方の物をお願いします。
足し算<INTEGER >(10,10);
とやるようなのがいいです。

474 :デフォルトの名無しさん:2009/06/20(土) 12:54:46
Javaでスレッドやるなら、この本は絶対に読むべき本なんだけど、手に入りにくいのが難点。

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―
http://www.amazon.co.jp/dp/4797337206

http://www.fukkan.com/fk/VoteDetail?no=46255


475 :デフォルトの名無しさん:2009/06/20(土) 13:24:30
static int[] a(int[] a, int[b]){
何かする
}
static long[] a(long[] a, long[b]){
何かする
}
この二つをまとめる方法ありませんか?

476 :デフォルトの名無しさん:2009/06/20(土) 14:07:04
>30秒ってミリにすると、3*10^4じゃん
30*10^3

477 :デフォルトの名無しさん:2009/06/20(土) 14:19:55
>>475
Javaじゃ無理。

JDKでやってるみたいに m4マクロとか使って
.java を生成するのはアリだけど、スレ違いかな。

478 :デフォルトの名無しさん:2009/06/20(土) 14:30:12
public static <T> T[] func(T[] a, T[] b) {

とかやろうとして、プリミティブは駄目、と怒られた。

479 :デフォルトの名無しさん:2009/06/20(土) 14:36:46
Java の Generics は erasure で実現されているから、実質Objectに変換されてしまう。


480 :デフォルトの名無しさん:2009/06/20(土) 16:56:04
ファイルがあったらそこへ書き込んで、もしファイルが無くても
FileNotFoundExceptioを発生させないで、ファイルを作ってくれるクラスない?

481 :デフォルトの名無しさん:2009/06/20(土) 17:04:27
まんまFileOutputStreamじゃないの

482 :480:2009/06/20(土) 17:27:14
そうだったのねorz
ありがとう

483 :デフォルトの名無しさん:2009/06/20(土) 17:29:26
メソッドをオーバーライドする際に、例外について以下の規定
があるようですが、これはどのように考えたら良いのでしょう?

・superクラスの例外と同じか、そのサブクラスの例外のみ投げることが
できる。
・superクラスで規定されない例外は投げることができない。
(サブクラスのメソッドで投げないのはOK)

オーバーライドで、ぜんぜん別の実装をして、superクラスとは
まったく別の例外が投げられることもあると思うのですが、
あえて禁止しているのは設計上、こうやれというのがあるんだと
思います。

その辺ってどう考えたら良いのでしょう?


484 :デフォルトの名無しさん:2009/06/20(土) 17:37:44
http://javafaq.jp/S011.html#S011-08
継承によってメソッドの上げる例外の種類が増えてしまうと、
既存の処理で捕捉できなくなってしまう。


485 :デフォルトの名無しさん:2009/06/20(土) 17:38:25
> オーバーライドで、ぜんぜん別の実装をして、superクラスとは
> まったく別の例外が投げられることもあると思うのですが、
そーゆー場合は Throwable#setCause なりを使って
例外連鎖させる。

486 :デフォルトの名無しさん:2009/06/20(土) 17:42:23
>>484
なるほど。
よくわかりました。
ありがとうございます。



487 :デフォルトの名無しさん:2009/06/20(土) 18:51:24
FileOutputStreamとObjectOutputStreamを使
って複数のオブジェクトをファイルに書き込
みたいのですが、一度書き込んでプログラム
を終了し、もう一度起動して書き込みを行う
と上書きされてしまうのですがどうすれば上
書きされずに書き込みができるのでしょうか?
よろしくお願いします(-.-;)

488 :デフォルトの名無しさん:2009/06/20(土) 18:51:55
>487
ファイル名を変える

489 :デフォルトの名無しさん:2009/06/20(土) 19:09:06
ダウンキャストしてもスーパークラスには無かったメソッドは使えるけど、
サブクラスで追加された部分はメモリ上で適当な値が入っているわけ?

490 :デフォルトの名無しさん:2009/06/20(土) 19:09:50
Servletはリクエストがあったら処理Aをして、結果をブラーザーに
レスポンスするみたいですけど、処理Aの大部分は普通のJavaと
同じということでいいのでしょうか。

491 :デフォルトの名無しさん:2009/06/20(土) 19:10:32
>>488
早速ありがとうございます。

つまり、同じファイルには書き込めないとい
うことでしょうか(?_?)

馬鹿で左遷…

492 :デフォルトの名無しさん:2009/06/20(土) 19:16:15
書き込む前にストリームの位置を設定する

493 :デフォルトの名無しさん:2009/06/20(土) 20:09:28
Java以前の問題だが・・・
同じディレクトリに同じファイル名のファイルは2つつくれない
だから同じのを指定すると上書きされる

上書きされないようにするには別のディレクトリにするか、ファイル名を変えるかどっちかしかない

494 :デフォルトの名無しさん:2009/06/20(土) 20:11:32
>>493
追記したいって言ってんだろ
日本語初心者は無理して回答すんな

495 :デフォルトの名無しさん:2009/06/20(土) 20:11:45
>491
もしかして追記か?
ttp://home.f02.itscom.net/soukyoku/jtips/file.html

496 :デフォルトの名無しさん:2009/06/20(土) 21:07:24
>>495
そうです。追記のことです。(分かりにくくてスミマセン)

プログラムの起動を二回に分けて書き込んだ後

もう一度起動して読み込む際、一度目の
readObject()の呼び出しは成功するのですが

二度目の呼び出しでjava.io.EOFException
が発生してしまいます。

Scannerのトークンのように呼び出すのが理想なのですが…


497 :デフォルトの名無しさん:2009/06/20(土) 21:37:35
まずJDKとやらを入れるみたいですがバージョンは6のUpdate13というのが最新なのでしょうか?

498 :デフォルトの名無しさん:2009/06/20(土) 21:45:44
質問なのですが。
たとえば、下記のようにメインファイルから別のクラスを
呼び出して処理を行うやつがありますが↓
【メインファイル】
import bb.*;
public class AA{
=メイン=
}

【パッケージbbに入ってる他のクラス】
package bb;
public class BB{
==処理==
}

これら全てのクラスを一気にコンパイルしたい時は
コマンドプロンプトでメインのファイル名だけ指定してコンパイルすれば
いいんだよね?classファイルが作られてない時は一斉にコンパイルして
くれるんだけど、修正後2回目にコンパイルしたらメインファイルしか
コンパイルしてくれなくて。どこか間違えてるんでしょうか。

499 :デフォルトの名無しさん:2009/06/20(土) 22:43:46
Javaは初心者です。

トムキャットをインストールしたんだけど開けませんとかでて開けないorz

javaVM上じゃないとだめとか?

ちなみにOSはビス太ホームpremium

500 :デフォルトの名無しさん:2009/06/20(土) 22:50:04
管理者として実行でサーバーを起動してないからとかそんなん

501 :デフォルトの名無しさん:2009/06/20(土) 23:20:50
>>498
それbbのパッケージのほうのソースも修正したの?
ディレクトリ構造とファイル、叩いたjavacコマンド晒してみ

502 :デフォルトの名無しさん:2009/06/20(土) 23:24:15
>>496
ObjectOutputStreamで何を書き出してるの?
直列化したクラスインスタンスだったりする?

t−k、ObjectOutputStreamって追記設定できたっけ

503 :デフォルトの名無しさん:2009/06/20(土) 23:34:31
>>501
したよ。AAもBBも修正かけた。といっても
int num = 0;をint num = 1;に変えたくらいの小さい修正だけど。

【ディレクトリ構造】
Javaフォルダ(作業場所)
 ┣AA.java
 ┗パッケージbb
   ┗BB.java

javacコマンドは1回目・2回目共に「javac AA.java」。

やはり2回目の仕方がおかしいのかな。それともディレクトリの
構造上、「javac Java\AA.java」にしなきゃ駄目かな。
昨日までは「javac AA.java」で一気にコンパイルできたんだけどなあ。

504 :デフォルトの名無しさん:2009/06/20(土) 23:46:15
E:\java\test_src
├ AA.java 22:40
└[bb]
   └BB.java 22:40

E:\java\test_src>javac AA.java

E:\java\test_src
├ AA.java 22:40
├ AA.class 22:40
└[bb]
   ├BB.java 22:40
   └BB.class 22:40         ここでAA.javaとBB.javaに両方変更を入れて、再度同じjavacを叩く

E:\java\test_src
├ AA.java 23:40
├ AA.class 22:40
└[bb]
   ├BB.java 23:40
   └BB.class 22:40

E:\java\test_src>javac AA.java

E:\java\test_src
├ AA.java 23:40
├ AA.class 23:40
└[bb]
   ├BB.java 23:40
   └BB.class 23:40

試してみた。時間はOSの時刻変えて試行したのでタイムスタンプを表記
ちゃんとコンパイルかかるけどな、つーかAAからBBを使ってるわけだし、BBに変更入ってればコンパイルかかるはずだけど、ちなみにCLASSPATHは .; のカレント設定のみ

505 :デフォルトの名無しさん:2009/06/20(土) 23:56:53
classファイルに変更が起こるようなソースの変更をしてないんじゃないの?

506 :デフォルトの名無しさん:2009/06/20(土) 23:59:43
>>504
こんなにがんばってくれてありがとう。
ちなみに自分は今作成してるJSPファイルを動かすために
トムキャットをインストールしてます。そのため、クラスパスは
>>504さんのカレント設定の後ろにトムキャットのためのパスを
つけています。ちなみこのトムキャットの部分を一度外してみても
解決しなかったです。何が違うのだろうなあ。
トムキャット

507 :デフォルトの名無しさん:2009/06/21(日) 00:02:54
>>505
>>503

508 :デフォルトの名無しさん:2009/06/21(日) 00:09:24
訂正:506の最後の「トムキャット」は無視してください。

>>505
>classファイルに変更が起こるようなソースの変更
これの基準が自分でもよく分からないんです。
503をもうちっと詳しく書くと、「あるメソッドを呼び出して、
そこで得られた値(戻り値)をある変数にセットする」って感じです。
たとえば
//5と2をbbファイルのPlusCalcメソッドに渡して加算し、戻り値をセット
int answar = 0;
answer = b.PlusCalc(5,2);

これを
//5と2をbbファイルのMinusCalcメソッドに渡して減算し、戻り値をセット
answer = b.MinusCalc(5,2);

これってclassファイルには影響無いものなんでしょうか。
足し算が引き算になったくらいだし。

509 :デフォルトの名無しさん:2009/06/21(日) 00:11:17
>>496,502
自己レスも含めて
ObjectOutputStreamは複数回writeObject()できるけど、追記は無理そう
なので、書き出したものを一旦全部readObject()で取り込んでおいて、
取り込んだものを再度全部書き出してから、追記したいモノをwriteObject()すればいいかも

EOFExceptionは再現できた、
writeObject()を100回やったファイルに対して、
101回のreadObject()でなるみたい

510 :デフォルトの名無しさん:2009/06/21(日) 00:18:25
JavaとJDKとSDKとJREの区別がつかないのですが
良サイトはないでしょうか

511 :デフォルトの名無しさん:2009/06/21(日) 00:31:36
>>510
http://ja.wikipedia.org/wiki/Java

512 :デフォルトの名無しさん:2009/06/21(日) 01:09:16
javaは言語&商標&sun的には環境でそれ以外は略さず読んで字の如く

513 :デフォルトの名無しさん:2009/06/21(日) 01:33:11
>>511

>  * J2SE 1.2.2_004 までは JDK と呼んでいた。
>  * J2SE 1.4 までは Java 2 SDK と呼んでいた。
>  * J2SE 5.0 では 再び JDK と呼んでいる。

へぇ〜へぇ〜
また余計な知識を身につけてしまった。


514 :デフォルトの名無しさん:2009/06/21(日) 08:54:01
>>495
>>502
>>509
ありがとうございます。
いろいろ試したのですがなかなかうまくいかないです。ググってもみましたが・・
何とか自分で解決してみます。(ほんとスミマセン・・)
ちなみにコードはこんな感じです↓


515 :デフォルトの名無しさん:2009/06/21(日) 09:01:41
// 中略
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("「新規作成」または「表示」を入力してください");
String s = br.readLine();
Car c;
// 書き込み(機動を2回(または複数)に分けておこなう
if(s.equals("新規作成")){
System.out.println("名前を入力してください");
c = new Car(br.readLine());//オブジェクトに名前を与える
FileOutputStream fs1 = new FileOutputStream ("CARS");//CARSファイルに保存
ObjectOutputStream os1 = new ObjectOutputStream(fs1);
os1.writeObject(c);
os1.flush();
os1.close();
System.out.println("ファイルに書き込みました");
}
// 読み込み(保存したオブジェクトを取り出す)
if(s.equals("表示")){
FileInputStream fis1 = new FileInputStream("CARS");
ObjectInputStream ois1 = new ObjectInputStream(fis1);
c = (Car)ois1.readObject();//一度目の読み込み
System.out.println(c.name);//名前を出力
c = (Car)ois1.readObject();//二度目のよみこみ(読み込めない)


516 :デフォルトの名無しさん:2009/06/21(日) 09:07:45
自分で解決してみますっつってんだったら
コードなんて貼らないでいいよ

517 :デフォルトの名無しさん:2009/06/21(日) 09:09:19
//続き
System.out.println(c.name);
ois1.close();
}
}catch(Exception e){}
}
}
class Car implements Serializable{//このクラスを直列化
String name;
Car(String s){name = s;}
}

軽く荒らしたかも知れない…orz
次回から自重します

518 :デフォルトの名無しさん:2009/06/21(日) 09:09:55
すみません。お願いします。

プログラミングの経験は何年かあって今はjavaをやっています。
動くものということであれば少し作れるのですが、
例外処理をちゃんと使いこなしていないように思います。
文法に関してはある程度理解しています。

例外の使いこなしがトピックに入っている良書、またはサイトなどはないでしょうか。
文法的な説明だけでなく、
「こういうときこうすればこういう理由でとても便利だろ」みたいなやつがいいです。
本屋やAmazonで探したのですが、探し方が悪いのかなかなか見つかりません。

書籍の場合、できれば新しめのものがいいのですが、
ないのであれば古いものでも構いません。
何かいいものをご紹介ください。

519 :デフォルトの名無しさん:2009/06/21(日) 10:10:08
>>517
>>514にしろそうだけど教えてもらう立場の人間が「・・・」を使用するのは
納得していない様子を相手に与えるので非常に失礼

520 :デフォルトの名無しさん:2009/06/21(日) 10:27:29
>>519
そう思うなら君みたいな生意気君は答えなくていいよ
どうせリアルだと友達いないんでしょw

521 :デフォルトの名無しさん:2009/06/21(日) 10:53:35
>>518

例外処理とロギングのベストプラクティス
ttp://codezine.jp/article/detail/1581

[Java]Throwableについて本気出して考えてみた
ttp://d.hatena.ne.jp/daisuke-m/20081202/1228221927

NumberFormatException が非チェック例外なのはなぜ?
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7503&forum=12

この3つを読めば感覚はつかめると思う。
あとは実践して力にしないとだめ。

522 :デフォルトの名無しさん:2009/06/21(日) 11:00:49
>>520
落ち着け。
なにがそんなに悔しかったんだ。

523 :デフォルトの名無しさん:2009/06/21(日) 11:16:03
>>518
今すぐ Effective Java を読むことを、おすすめする。
例外のベストプラクティスについても詳しいし、それ以外にも絶対に役に立つはず。

昔のJavaはきちんとChecked Exceptionを使うことが推奨されていたが、
最近のフレームワークはRuntimeExceptionを多用するようになってきている。
その理由もこの本を読めばわかると思う。


524 :デフォルトの名無しさん:2009/06/21(日) 11:21:38
>>518
ちょっと古いけど、この記事も読んでおくといいでしょう。
dW : Java technology : Javaの理論と実践: 例外をめぐる議論
http://www.ibm.com/developerworks/jp/java/library/j-jtp05254/

525 :デフォルトの名無しさん:2009/06/21(日) 12:43:55
>>521
>>523
>>524

ありがとうございます。
サイトで紹介してもらったものは今読み始めました。

Effective Javaも買ってみようと思います。
Amazonで作者の前書きを読みましたが、
ほかの言語でも参考になりそうだなあと思いました。

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

526 :デフォルトの名無しさん:2009/06/21(日) 13:10:16
文字列の連結についての質問です。

double pi1 = 3.14;
int pi2 = 3
String piString1 = "" + pi1; //piString1の中身は"3.14"……@
String piString2 = "" + pi2; //piString2の中身は"3"……A

ということですが、@A共に右辺の意味がわかりません。
なぜ左にだけ""なのでしょう? String piString1 = "" + pi1 + ""; ではいけないのですか?
また String piString1 = pi1; ではいけないのですか?

527 :デフォルトの名無しさん:2009/06/21(日) 13:24:53
> String piString1 = "" + pi1 + ""; ではいけないのですか?
それでもいいよ。冗長になるけど。

> また String piString1 = pi1; ではいけないのですか?
double から文字列型に型変換できないからダメ。

528 :デフォルトの名無しさん:2009/06/21(日) 13:29:00
文字列 + 何か
の場合「何か」を文字列にしてから連結してくれることを利用している。


529 :デフォルトの名無しさん:2009/06/21(日) 13:32:38
ダブルクォーテーションで囲まれた範囲が文字列になるのに、
"" + pi1 では、数字pi1がダブルクォーテーションで囲まれていないのでは?

530 :デフォルトの名無しさん:2009/06/21(日) 13:38:45
"" は、空文字列(長さがゼロの文字列)です。
"" + pi1 は、 空文字列にpi1を文字列に変換してから連結します。


531 :デフォルトの名無しさん:2009/06/21(日) 13:40:04
>>529 自分で変なこと言ってることに気づいた。

空文字 + 数字pi1 → 空文字 + 文字列pi1 → 文字列pi1 と順に変換されていって、
最後にそれを文字列piString1に代入しているということか。

532 :デフォルトの名無しさん:2009/06/21(日) 13:55:47
>>515
writeObject()の回数以上のreadObject()はできない、EOFExceptionが出る
一回readObject()で読みこんだら、それを保持して使いまわせ

533 :デフォルトの名無しさん:2009/06/21(日) 16:35:39
ここでいいのかわからないけども質問させてください。
プログラミングをするにあたってMVCモデルと言うのが
あるそうなのですが(ttp://e-words.jp/w/MVC.html参照)、
よく使われるsetメソッドやgetメソッドのような
値を表示したりセットしたりするものはM・V・Cのどれに
あたるんでしょう。やっぱり入出力だからM?

534 :デフォルトの名無しさん:2009/06/21(日) 16:43:05
MVCというのはクラス間の構成(役割ん分担)にかかわるもので、
特定のメソッドをそう呼ぶというものではない。
settter/getterというのは、クラスの中がどうなっているか
を外部に知らせる必要はないという考えで、カプセル化(encapsulation)
という。MもVもCもsetter/getterは持ちうる。


535 :デフォルトの名無しさん:2009/06/21(日) 16:53:13
>>533
setメソッドやgetメソッドは、オブジェクトの入出力の命名規約。
MVCはデータ管理・情報表示・入力という単位でシステムの構造を整理する
という方法論。

ネジ穴規格は車体・エンジン・足回りのどれにあたりますかと聞いてるのと
同じだから、当然に対応付けは無意味。

536 :デフォルトの名無しさん:2009/06/21(日) 18:02:38
最近のWebシステムって3層に分けることが多いけど、
MVCとはなんかズレてる気がするんだよね。

1.Presentation
2.Business Logic
3.Persistence(Data Access)

ってわけたとき、MVCのどれがどれに対応するんでしょ。

537 :デフォルトの名無しさん:2009/06/21(日) 18:10:17
なんでもかんでもOOPに当てはめて考えようとする病気に似てる

538 :デフォルトの名無しさん:2009/06/21(日) 18:13:43
>>534&>>535
そうだったのか。クラス単位で見て分類する
ものなんだな。じゃあある意味、setやgetは
どこのクラスで使っても良いってことか。
回答ありがとう。

539 :デフォルトの名無しさん:2009/06/21(日) 19:11:00
>>536
三層は分散システムを意識した分類。MVCとは立脚点が違うと思う。
MVCは単層アプリでもそう作るから。
例えばよく引き合いに出されるExcelはMVCの分離の成果として同じ
ワークブックを複数画面で同時表示・同時編集できる。
MとVCが一対一でなくても良いということを説明する良い見本。

プレゼンテーションがVCで、永続化は確実にM。
ビジネスロジックは意見が分かれてるけど、まあMじゃない?

540 :デフォルトの名無しさん:2009/06/21(日) 19:14:36
ExcelはDocument-Viewアーキテクチャでは?

541 :デフォルトの名無しさん:2009/06/21(日) 19:48:34
Document-ViewつまりMFCは、MVCモデルを元に設計されたフレームワーク。

542 :デフォルトの名無しさん:2009/06/21(日) 21:13:29
上の人の質問で思い出した。
set○○て名前のメソッドが複数あったとして、あるsetメソッドで
同じクラスにある他のsetメソッドを使うのはOK?
setCount(int x){
this.x = x;
setManbo(this.x);//x使って別の処理
}

みたいに。なんか前やったらイクナイと言われたんだが。

543 :デフォルトの名無しさん:2009/06/21(日) 21:23:20
すいません。ちょっと疑問なので質問させてください。
例えばあるクラスAの配列を別クラスBのメソッドに渡して処理し、
それをまたクラスAのメソッドに渡して格納する、という処理を
してるんですが(下のように)、
a.setBound(b.Magic(a.array));
これをフローチャートで表したい時って、
【配列を渡して処理】→【処理済の配列をセット】とかいう風に書いて
良いのでしょうか?それとも【配列を渡して処理し、処理済のものをセット】と
まとめたほうがいいのでしょうか?

544 :デフォルトの名無しさん:2009/06/21(日) 21:28:23
>>542
setterにやらすことじゃない。

545 :デフォルトの名無しさん:2009/06/21(日) 21:47:26
>>544
そうなのか。ありがd。

546 :デフォルトの名無しさん:2009/06/21(日) 22:00:28
>>543
チャートはどうするかを書くのではなく、何をするかを書かないとなぁ。
具体的には「配列を渡して処理」じゃなくて、何をするのかが必要。
そこらへんの基本を押さえられない程度じゃまだまだヒヨっこ。
まずは、そこからきっちり意識しよう。

その上で、パラメータとして配列を使うとか、副作用があるないとか、そういった
ものは実装の詳細として「追記」していく。あくまでオマケ。

>>545
544 は this.y = this.x で良いんじゃね?と言っていると思う。
setManbo() で何か処理しているなら、setManbo() した方が良いと思う。
例えばコレクションに追加するとかしていたら。(setXXじゃしないか、そんなこと)

547 :デフォルトの名無しさん:2009/06/21(日) 23:11:38
>>546
543です。ありがとうございます。
処理の内容はついつい省略してしまいました。
実際のフローチャートではちゃんと書きます。
ただ、1文で表されているものをフローチャートで2つの項目に分けて
書いてしまっても良いものか迷ったので相談しました。

548 :デフォルトの名無しさん:2009/06/21(日) 23:28:12
>>452,466
遅れました申し訳ありません
レスを参考にいろいろと試していってみます

549 :デフォルトの名無しさん:2009/06/21(日) 23:29:40
>>547
処理は一文で書けたとしても、そこでは「何か」を複数しているわけだから、
書くべきと判断した「何か」の数ぶんだけ書けばいいよ。

書くべきか書かないで省略すべきか、は難しすぎて。
経験で、もしくは趣味でとしか言えない。

550 :デフォルトの名無しさん:2009/06/21(日) 23:39:50
コードと1対1対応しているなら最初からコードで書けばいい。
その前の段階である以上、コードになったらどうなるか、よりも
抽象度の高い書き方になるはず。


551 :デフォルトの名無しさん:2009/06/21(日) 23:45:20
>>547
フローチャートにも色々あるね。
プログラマが見る、設計者が見る、顧客が見る。
その切り口によって色々と変わってくるね。個人の趣味でプログラムを
作って、後でメンテしやすいようにとか、備忘録的であるとか、
そこいらは自由だね。ビジネスでのフローチャートの場合、
殆どプログラムと変わらないような物を要求される場合もあるね。
色々。

552 :デフォルトの名無しさん:2009/06/22(月) 01:07:20
え、ジャバスクリプトって違うの?

553 :デフォルトの名無しさん:2009/06/22(月) 02:00:53
別物

554 :デフォルトの名無しさん:2009/06/22(月) 02:16:51
ジャバスクリプトとジャバスクリプトは同じものだよ

555 :デフォルトの名無しさん:2009/06/22(月) 10:56:35
>>432
最初からいきなりeclipse使うと、逆に難しく感じるよ。
俺はそうだった。
初めてんとき、WTPだのTomcatプラグインだの使ってやろうとしたら、とりあえずなんとかHelloの表示まで漕ぎ着けたものの”理解”と呼べるようなモンじゃぁなく、挫折しかけた。

とりあえず最低限、
Javaをコマンドラインでコンパイル&実行できるレベルなら、最初はメモ帳1つで作ってみる方が簡単だったりする。
1回やってみれば、ふーんなるほどねーってWTPだのも便利に使えるようになるよ。
お試しあれ。


556 :デフォルトの名無しさん:2009/06/22(月) 10:57:54
NetBeansなら苦労しないのに。

557 :デフォルトの名無しさん:2009/06/22(月) 14:07:16
web.xmlがサンプルでは一つずつ別々に作成しているけど
eclipseでは一つのweb.xmlに入れ込んでいるけど、どちらがいいのでしょうか。

558 :デフォルトの名無しさん:2009/06/22(月) 14:17:22
文字列の中に文字Aが何個含まれているかを割と高速にはじき出すにはどうすればいいですか?

559 :デフォルトの名無しさん:2009/06/22(月) 16:31:46
リベンジJava
http://revengejava.web.fc2.com/

560 :デフォルトの名無しさん:2009/06/22(月) 16:34:37
くだらんアフィ貼ってんじゃねえよカス

561 :デフォルトの名無しさん:2009/06/22(月) 18:23:28
サウンドを(ファイル形式ではなく)ストリーミング的に再生したいのですが、どのAPIを使えばいいですか?

562 :デフォルトの名無しさん:2009/06/22(月) 18:50:57
[sage]
>>532
わかりました。
ご回答ありがとうございます。


563 :デフォルトの名無しさん:2009/06/22(月) 23:30:46
初心者が遊びでJavaプログラミングするのにはどんなのを作るのがいいですか?
簡単で面白い物がいいんですけど。
アプレットなんかがいいんですかね?

564 :デフォルトの名無しさん:2009/06/22(月) 23:32:29
アプレットでライフゲームでも作ってれば

565 :デフォルトの名無しさん:2009/06/23(火) 00:25:18
委譲のなどのときの書き方。

1.class Nanasi {
Kouhai i = new Kouhai();
public void suteru() {
i.suteru();
}
}



2.class Nanasi {
public void suteru() {
Kouhai i = new Kouhai();
i.suteru();
}
}

の書き方ではどういう違いがあるの?

1.フィールドで委譲先のオブジェクトを管理している
(でも管理という意味だとどっちの書き方でも同じな気がするけど。)
2.特別な意味がない限り普通にあるクラスのメソッドを呼び出すときは
こういう書き方が多いと思ってる。

可視性などの問題を考える必要があるのでしょうか?
それとも考える意味もないような違い・・・?

566 :デフォルトの名無しさん:2009/06/23(火) 00:51:41
Kouhaiインスタンス(の状態)をどれだけの期間保持したいかによる。


567 :デフォルトの名無しさん:2009/06/23(火) 00:58:14
1.はこーゆーこともできる。

class Nanasi {
 Kouhai i = new Kouhai();

 public void suteru() {
  i.suteru();
 }

 public void setName(String name) {
  i.setName(name);
 }

 public void sayName() {
  System.out.println(i.getName());
 }
}

一般的には委譲っていうと1かなー。






}


568 :デフォルトの名無しさん:2009/06/23(火) 01:03:31
>>566 ありがとうございます。

オブジェクトのライフサイクルのことですか。
委譲先が消滅すると同時に委譲元のオブジェクトも消滅する。
とかいう話ですかね。

といっても、どういう場合にどうなるか説明できないですが。。


569 :デフォルトの名無しさん:2009/06/23(火) 01:07:24
>>567 ありがとうございます〜。

ほ〜クラス内でオブジェクトを共有できるということでしょうか。

わたしの中で566さんの保存期間という話とちょっと結びつけられていないですが。
お二人が言っているポイントは別と考えた方がいいんですかね?

570 :デフォルトの名無しさん:2009/06/23(火) 01:11:04
クラス変数かローカル変数かって話では?

571 :デフォルトの名無しさん:2009/06/23(火) 01:18:26
そうなんですけど、それぞれの違いを理解しようとしているところです。

572 :デフォルトの名無しさん:2009/06/23(火) 01:23:33

可視性てなんですか?

573 :デフォルトの名無しさん:2009/06/23(火) 01:30:58
ん〜。。なんとなくで言ってみただけなので、今の話には関係ないかもしれませんが、
クラス変数とローカル変数では、継承などしたときに
アクセスできるできないがかわってくると思っているので、
そんな話も関係あったりするのかなと思って言ってみました。

574 :デフォルトの名無しさん:2009/06/23(火) 02:14:40
>>558
あほみたいに大量のテキスト量じゃない限り力任せが一番万能、かつどういう条件でもある程度の早さを誇る。
ふつうはそれ以外の極限られた条件下のみ、その条件に最適化して探す。
そうじゃないと最適化する準備時間に釣り合わない。
というかjava関係ない。

>>561
JMFでだめなら自前

575 :デフォルトの名無しさん:2009/06/23(火) 07:58:48
文字コードについての質問です。
ユーザから入力を受けとって処理する場合に、
入力された文字の文字コードは何によって決まるのでしょうか。
例えばWebシステムだと
ユーザOSの文字コード、
ブラウザのエンコード設定、
入力フォームのページの文字コード、
同ページのエンコード設定(xml宣言とかmetaとか)
など色々候補があってよくわかりません。

あとJava内部ではUnicodeを使っているとのことですが、どこで元々の文字コードとの変換を行っているのでしょうか。

ご回答、参考サイト、文献情報などよろしくお願いします。

# オライリーのCJKなんとかっていう"鈍器"は気になってます。

576 :デフォルトの名無しさん:2009/06/23(火) 08:33:53
マヌケな教えて君の典型的だよね

577 :デフォルトの名無しさん:2009/06/23(火) 10:46:53
んだこらぁ
わかんねぇなら黙ってろよ

578 :デフォルトの名無しさん:2009/06/23(火) 11:05:49
ワロタw

579 :デフォルトの名無しさん:2009/06/23(火) 12:14:06
まあ実際文字コードはやっかいだよなぁ。
フグ本に目をつけたのはいいんだが、あの内容って今でも使えるのか?

580 :デフォルトの名無しさん:2009/06/23(火) 12:58:52
マヌケな奴ってまさにオブジェクト思考的だよね

581 :デフォルトの名無しさん:2009/06/23(火) 13:00:36
回答まだかよカスども

582 :デフォルトの名無しさん:2009/06/23(火) 13:02:13
>>581
激しく同意

583 :デフォルトの名無しさん:2009/06/23(火) 13:39:13
例えばWebシステムだととあるからWebシステムで考えると
おまえが設定した、フォームなりのHTTPヘッダとMETAタグのContentTypeできまる。

少しググればいくらでも出てくる情報だと思うんだが。

584 :デフォルトの名無しさん:2009/06/23(火) 13:53:47
サーブレットはweb.xmlという定義のようなものがあって、
そこにmappingとかfilterとか記述するようになっているんですけど
これは必須なんでしょうか。そうして実行するときには必ず
tomcatのようなサーバーが必須なんでしょうか。サーバなしでは
動かないんでしょうか。

585 :デフォルトの名無しさん:2009/06/23(火) 14:03:48
servelet jspこれらを動かすために必要なのがtomcatやglassfishのようなそれらに対応したサーバーだよね
最低限これらは必要でそこから更に肉付けされて行くようなイメージだね

586 :デフォルトの名無しさん:2009/06/23(火) 14:23:23
tomcutが動きません
助けてください

587 :デフォルトの名無しさん:2009/06/23(火) 14:24:37
まずはCATALINA_HOME設定するところからだな

588 :デフォルトの名無しさん:2009/06/23(火) 15:04:59
tomcut とは随分ぶっそうだな

589 :デフォルトの名無しさん:2009/06/23(火) 15:35:13
eclipseでworkspaceの中のプロジェクトの中のWebContentの中の、
WEB-INFの中にweb.xmlがあるんですけど、これを直接開いて、
<security-constraint>などを追加して、eclipse内部のtomcatを起動したら
反映されていませんでした。ここは直接開いて修正したら反映されないのか
と思い、既存のサーブレット名を変えてみて同じように起動してみると
反映されていました。<security-constraint>などだけが無視されて
いるようです。eclipseでweb.xmlを開いて設計でもソースでも見ても、
存在してないです。無視されてます。どうしたらいいのでしょうか。

590 :デフォルトの名無しさん:2009/06/23(火) 15:37:36
>>584
とりあえず質問しました、じゃなくて
自分でググってから質問した?

DTD読めばその要素が必要かどうかは判断できるから
それをみて判断しなされ。

591 :デフォルトの名無しさん:2009/06/23(火) 15:39:33
>反映されていないここは直接開いて修正したら反映されないのか
>と思い、既存のサーブレット名を変えてみて同じように起動してみると
>反映されていました。
意味がよくわからんのだが?

592 :デフォルトの名無しさん:2009/06/23(火) 15:58:54
>>591
いまは何故か反映されています。

593 :デフォルトの名無しさん:2009/06/23(火) 16:21:13
やっぱり反映されてない。エクスプローラから直接web.xmlを修正したら
eclipseからweb.xmlをエディタで開いても修正が反映されてないですね。


594 :デフォルトの名無しさん:2009/06/23(火) 16:23:20
java.io について質問です。
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
とあったときに、reader (= BufferedReader) を close すると、InputStreamReader と FileInputStream も close されるとかんがえていいでしょうか。

595 :デフォルトの名無しさん:2009/06/23(火) 16:31:50
>>594
close時に例外発生しない、っていう条件付きならOK。

596 :デフォルトの名無しさん:2009/06/23(火) 16:45:18
Javaだとcloseしなくても勝手にcloseしてくれるだろjk

597 :デフォルトの名無しさん:2009/06/23(火) 17:29:55
>>592,593
>591の答えにはなっていないわけだが。

>593を見る限りEclipseのWTP上のプロジェクトのものと
Tomcatにデプロイしたファイルを見比べているようだが、
やってることがおかしい。

まず、Eclipse上のTomcatと言っているのはなに?
WTPなのか、Sysdeoプラグインなのか、どっち?それともまた別の物?



598 :デフォルトの名無しさん:2009/06/23(火) 17:33:10
Eclipseの外で編集したんなら、refreshしてpublishするべし。

599 :デフォルトの名無しさん:2009/06/23(火) 17:50:11
>>597
>まず、Eclipse上のTomcatと言っているのはなに?
eclipseの中には公開用のTomcatと内部テスト用のTomcatがあるらしいです。
eclipseの上部の豹ボタンをクリックすると公開用が、下のほうにある、
サーバーというタグから起動すると内部テスト用のTomcatが動くようです。
ですから、どきらか一方で起動した後に、もう一方で起動しようとすると
ポートが空いていないと言われます。
eclipseはhttp://mergedoc.sourceforge.jp/から3.4をダウンロード
しました。プラグインとか何も使ってなくて、そのまんまです。

600 :デフォルトの名無しさん:2009/06/23(火) 17:54:44
599ですけど、eclipseのプロジェクトエクスプローラからweb.xmlが
見えるので、ダブルクリックして、xmlエディターで修正したら
ちゃんと反映されるようなので、今後は、そうしようと思います。

601 :デフォルトの名無しさん:2009/06/23(火) 18:51:32
eclipseでサーブレットを作って、web.xmlでBASIC認証をするように記述して
一回目は、認証画面が出て、入力すると認証を通過してサーブレットの
ブラウザ画面が出ました。しかし、ブラウザ画面を一旦閉じて、再度実行
すると、すでに認証を通っているみたいで、認証画面が出ません。
Tomcatサーバを終了させて、再度起動させても、やっぱり認証画面が
出ません。どこかに認証が一度通ったことを覚えているんだと思うのですけど
それを断ち切って、毎回認証画面を出すようにするには、どうしたらいいのでしょうか。

602 :デフォルトの名無しさん:2009/06/23(火) 20:10:10
すなおにそこだけでもNetBeans使えば
悩む分時間省けるよ

603 :デフォルトの名無しさん:2009/06/23(火) 20:17:59
>>601
Basic認証とはそういうものだ。

http://oshiete1.goo.ne.jp/qa2001219.html


604 :デフォルトの名無しさん:2009/06/23(火) 20:20:26
マシンの物理メモリが512MBしかないのですが、それ以上に巨大なデータをbyte[]に格納して操作したいです。
物理メモリ以上の領域を扱うことができる仮想メモリのように、仮想ヒープみたいな方法はないんでしょうか?
ちなみに、マシンのスペックを変更(買い替えろ!)することや、アルゴリズムの変更(ストリーム使え!)とかはできません…

605 :デフォルトの名無しさん:2009/06/23(火) 20:22:35
そもそも512でプログラム夢見ること自体どうかしてる

606 :デフォルトの名無しさん:2009/06/23(火) 20:26:06
面倒くさいので「無い」と答えます

607 :デフォルトの名無しさん:2009/06/23(火) 20:29:02
>>602>>603.ありがとうございました。
いま認証のところ見てますけど、心が折れそうになりますね。

608 :デフォルトの名無しさん:2009/06/23(火) 20:33:44
つうか2GBのデータがあったって全読みする意味が分からないし

609 :デフォルトの名無しさん:2009/06/23(火) 21:03:35
たしかそんなのあったよなーと見てみた。
MappedByteBuffer・・・2GB使えるのかなコレ?
positionはint。一応2GBまでは指定できそうだけど。

610 :デフォルトの名無しさん:2009/06/23(火) 21:08:14
>byte[]に格納して操作したい

611 :デフォルトの名無しさん:2009/06/23(火) 21:19:11
Object.cloneメソッド使ってデータクラス(データbean?)
の複製しても、プリミティブ型のフィールドしかディープコピーされない
みたいなこと書かれてたんですけど、
string型ってどうなるんでしょうか?

@複製先データクラス変数 = 複製元データクラス変数.clone();
A複製元データクラスのStringフィールドの内容を変更
B複製元、複製先のStringフィールドの内容表示
みたいな感じで試したら、
ちゃんと別々の内容になってはいたっぽいんですけど、
なんか使うの不安なので教えてもらえないでしょうか。





612 :デフォルトの名無しさん:2009/06/23(火) 21:23:05
JavaのStringはimmutableだぞ。

内容の変更が(setterを介すにせよ)代入で行われたのなら、
その時点で元と先は別々のStringインスタンスを指すことになる。

浅いコピーで問題になるのは、mutableなもの。
たておば配列フィールドを作って要素を書き換えてみれ。


613 :デフォルトの名無しさん:2009/06/23(火) 21:37:12
抽象クラスを継承したクラスは、必ず具象クラスになりますか?
「なわけねーだろ」みたいな例があったら教えてください。おながいします。

614 :sage:2009/06/23(火) 21:40:39
immutableとか初めて聞きました。
その辺ちょっと調べてみるようにします。

612さんありがとうございました。

615 :デフォルトの名無しさん:2009/06/23(火) 21:43:08
immutableってのは、内容を書き換えられるようには出来てない、てこと。
(reflection使えば別だが)

よって>>611にある「Stringの内容を変更」てのは(通常は)出来ないので、
あなたは変更したつもりかもしれないが、単に別のオブジェクトになってる
だけだろう、と言いたかった。


616 :デフォルトの名無しさん:2009/06/23(火) 21:51:19
>>613
abstract class A {}
abstract class B extends A {}
抽象クラスAを継承したBも抽象クラス

617 :デフォルトの名無しさん:2009/06/23(火) 22:03:26
軒並みリフレクションを使ってるプログラムに出会ったのだが
誰か意図を教えてくれ

618 :デフォルトの名無しさん:2009/06/23(火) 22:13:39
覚え立ての使いたい病?


619 :デフォルトの名無しさん:2009/06/23(火) 22:33:23
認証でデータベースからIDとパスワードを持ってくるときには、
char型とvarchar型、どちらがいいのでしょうか。
javaからも今後使いたいと思いますので。

620 :デフォルトの名無しさん:2009/06/23(火) 22:48:01
暗号化してvarchar

621 :デフォルトの名無しさん:2009/06/23(火) 22:48:08
>>616
そうか。
うーむ、確かに。

abstract class Doubutsu {}
final class Human extends Doubutsu {}

みたいなのばかりかと思っていたけど、そうじゃないことがわかりました。
もっと勉強します。

622 :デフォルトの名無しさん:2009/06/23(火) 22:48:31
varcharが多いね


623 :デフォルトの名無しさん:2009/06/23(火) 22:48:39
なぁなぁ、お前らってどのくらいStaticメソッドを使っているの?
なんか、Staticにするの怖いんだけど

624 :デフォルトの名無しさん:2009/06/23(火) 22:49:31
ネイティブ使う奴はstaticにするな

625 :デフォルトの名無しさん:2009/06/23(火) 22:55:17
>>620 >>622 ありがとうございました。

626 :623:2009/06/23(火) 22:57:01
最近、元職業プログラマーの書いたコードを見せてもらったんだけど
思ったよりstaticを使っていると感じたので
オイラは独学だからみんなどうしているのかな〜と、思ったわけ

627 :デフォルトの名無しさん:2009/06/23(火) 23:12:43
>>624
ネイティブって何?

628 :デフォルトの名無しさん:2009/06/24(水) 00:26:13
ネガティブの誤字だろ

629 :デフォルトの名無しさん:2009/06/24(水) 00:33:40
はあ?w

630 :デフォルトの名無しさん:2009/06/24(水) 00:58:40
>>602
NetBeansがなきゃ作れない子になる懸念

631 :デフォルトの名無しさん:2009/06/24(水) 01:04:27
消さなきゃ有るから良いんじゃね

632 :デフォルトの名無しさん:2009/06/24(水) 02:26:45
>>626
static だらけになるのなら、考え方に何か問題がある可能性もあるけど、
少なくなっちゃう分には、無理に増やす必要もないんじゃない?

633 :デフォルトの名無しさん:2009/06/24(水) 08:04:04
staticにしそうなものってこのくらいじゃない?

ー 定数
ー スレッドの状態に依存しないUtil
ー 環境全体で一つしか存在しないもの(singleton)

634 :デフォルトの名無しさん:2009/06/24(水) 08:37:05
>>615
それでStringのコンストプール又はintern()を変更できるの?

635 :デフォルトの名無しさん:2009/06/24(水) 08:38:41
>>624
jniとかそういうこと?ん?

636 :デフォルトの名無しさん:2009/06/24(水) 09:12:26
非常にエスパー系な質問で申し訳ないんだが
Arraylist listをclearしたらどうしてもNullPointerExceptionが起きる
何故だろう?どうすればいいんだろう?

637 :デフォルトの名無しさん:2009/06/24(水) 09:19:26
clearを呼び出した時点でNullPointerExceptionが起きてるわけではないだろう?
まずはどこで起きているかスタックトレースを見てみるんだ。

638 :デフォルトの名無しさん:2009/06/24(水) 09:22:16
あ、いや。起きうるか。
listをclearしようとする前にlist==nullじゃないか?
listにArrayListのインスタンスをちゃんと代入してる?

ArrayList list;
list.clear();

みたいなことしていない?

639 :デフォルトの名無しさん:2009/06/24(水) 09:24:47
ArrayList list;をローカル変数として宣言しているなら>>638は初期化されていないってエラーになるけど、
フィールドとして宣言しているなら通るので、そうなってたりしない?

640 :デフォルトの名無しさん:2009/06/24(水) 09:25:00
JavaAppletで画面上をクリックするとArrayListに要素を加えたり
ボタンをクリックすると要素を全削除するようにしたい

しかし、アプレットはmainがなくてメソッドに引数としてArrayListを渡す方法がよく分からない

そこでグローバル変数としてArrayList list〜としたのだが
今やってみたところaddでもclearでも
init内でも他のメソッド内でもぬるぽってしまう

という状況です

641 :デフォルトの名無しさん:2009/06/24(水) 09:25:15
try{
file = うんたら;
うんたら;
うんたら;
}catch(省略){ file.Close(); }

みたいなトラブルか

642 :636:2009/06/24(水) 09:28:14
申し訳ありません
レスをつける前にスレをリロードしておくべきでした

本当に恥ずかしい話なのですが、>>638の通りでした
こんな話にアドバイスを下さって本当にありがとうございました

643 :デフォルトの名無しさん:2009/06/24(水) 09:52:16
>>640
日本語が理解できないのでソース貼れ

644 :デフォルトの名無しさん:2009/06/24(水) 10:05:57
>>643
>>642

645 :デフォルトの名無しさん:2009/06/24(水) 12:28:21
あとスレッドが主体になるプログラムとかはstatic使ったほうがらくだね

646 :デフォルトの名無しさん:2009/06/24(水) 13:03:42
>>634
試してみた。
$ java -version
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304)
Java HotSpot(TM) Client VM (build 1.5.0_19-137, mixed mode, sharing)

//import java.lang.reflect.Field;

char[] data = { 'a', 'b', 'c' };
String s = new String(data); // (1)
//String s = new String(data).intern(); // (2)
//String s = "abc"; (3)
Field valueField = String.class.getDeclaredField("value");
valueField.setAccessible(true);
char[] value = (char[])valueField.get(s);
value[0] = 'X';
System.out.println(s);

(1)は変更可能で Xbc と出力。
(2)と(3)はぬるぽになった。



647 :デフォルトの名無しさん:2009/06/24(水) 15:47:35
ぬるぽ例外じゃなくて、アクセス不正例外じゃないの?
intern()について深く知ってる人いないみたいだし。

648 :デフォルトの名無しさん:2009/06/24(水) 16:33:30
>>647
そのためのsetAccessible(true)



649 :デフォルトの名無しさん:2009/06/24(水) 17:01:45
>>648
でもそれってクラスローダについて深く知らないと結局意味ないじゃん。
クラスローダの仕組みを例題も交えて分かりやすく説明しているところがないんだよね・・・・
あれこれ設定するのも面倒だし結局全部おkでいいかなって思う。

650 :626:2009/06/24(水) 19:20:21
みんな、ありがとう
オイラは就職活動で疲れたので、今日はもう寝る
また、聞きたいことがあったら質問するよ

651 :デフォルトの名無しさん:2009/06/24(水) 19:57:52
おう
大概の事ならなんでも答えられるから聞いてくれ

652 :デフォルトの名無しさん:2009/06/24(水) 20:21:45
それならクラスローダについて教えてもらえませんか?

653 :デフォルトの名無しさん:2009/06/24(水) 20:22:45
おう任せとけ
さあ知ってる奴らどんどん書き込んでやってくれ

654 :デフォルトの名無しさん:2009/06/24(水) 21:14:51
他力本願すぎるw

655 :デフォルトの名無しさん:2009/06/24(水) 22:05:29
threadってなんだべ

class ThreadsRun extends Thread implements Runnable {
@Override
void run() {}
}

public class main() {
ThreadsRun t = new Thread();
t.run();
}

とかになるの?

656 :デフォルトの名無しさん:2009/06/24(水) 22:09:29
new ThreadsRun();
じゃねえと駄目だろ

657 :デフォルトの名無しさん:2009/06/24(水) 22:11:13
それとThread自体がRunableを実装してるのでThreadsRunにimplements要らない

658 :デフォルトの名無しさん:2009/06/24(水) 22:17:59
サブクラスをスーパークラスでnewすんな

659 :655:2009/06/24(水) 22:32:02
フルボッコワロタw

>>656
書き込んだあとで気がついたぜ。
すばらしき理解不足。

>>657
なるほど。
---javadoc
java.lang.Object
上位を拡張 java.lang.Thread

すべての実装されたインタフェース:
Runnable
---
確かに書いてあった。

>>658
もうちっと勉強してから理解しますw

660 :デフォルトの名無しさん:2009/06/24(水) 22:34:18
うざい死ね

661 :デフォルトの名無しさん:2009/06/24(水) 22:42:12
何様のつもりなんだろうな

662 :デフォルトの名無しさん:2009/06/24(水) 22:43:34
人様に決まってるだろ

663 :デフォルトの名無しさん:2009/06/24(水) 23:01:54
hibernateとかのフレームワークってどこに効けばいいですかね?

664 :デフォルトの名無しさん:2009/06/24(水) 23:33:04
>>663
2chならここしかないみたい。
とりあえず、聞いてみたら?

665 :デフォルトの名無しさん:2009/06/24(水) 23:44:02
では聞いてみます。
hibernate関連でコネクションプーリングを使ってるんですけど(c3p0使ってます),
statement cacheを有効にすると、〜〜DEAD LOCK!という警告メッセージが出るので、
statement cacheは0を指定して無効にしてるんですが、
一般的なprepared statementキャッシュの考えとして、
コネクションを再利用し、使ったらプールに戻すという考え方と、
コネクションはプールから取得するが、使ったら破棄してプール内で生成しておくという考え方の2つがあると思ってます。
今回は前者を無効にするのですが、後者のメリットがあまりないように感じられるんです。
プールせずに結局生成するなら直接取っても同じじゃないかと。
一般的な最良のパフォーマンスが得られるコネクションプーリングはどのようにやってるんでしょうか。

666 :デフォルトの名無しさん:2009/06/24(水) 23:48:10
スレ違い

667 :デフォルトの名無しさん:2009/06/24(水) 23:52:09
>>664=666
ひどい奴だなおまえは・・・

668 :デフォルトの名無しさん:2009/06/25(木) 00:27:08
class C1 {

}

class Test {
  public static void main(String[] argv) {
    C1 c = new C1();

    System.out.println(c.clone().toString());
  }
}

% javac Test.java
Test.java:23: clone() は java.lang.Object で protected アクセスされます。
System.out.println(c.clone().toString());
^
エラー 1 個

Test は Object のサブクラスだから、protected な clone() を呼べると思った
のですが、怒られました。ヒントをください。


669 :デフォルトの名無しさん:2009/06/25(木) 00:35:02
ヒント:class名がダサイ

670 :デフォルトの名無しさん:2009/06/25(木) 00:39:32
mapってgetすることはできても、一度登録した値を変更はできないの?

671 :デフォルトの名無しさん:2009/06/25(木) 00:43:40
>>668
Test は Object のサブクラスだから、protected な clone() は呼べない
ヒントは言語仕様

672 :670:2009/06/25(木) 00:44:36
自己解決。既に登録したKeyをputしたら値が置き換わるのね

673 :デフォルトの名無しさん:2009/06/25(木) 00:54:23
>>> 671
ありがとうございます。
http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html
...
The protected modifier specifies that the member can only be accessed within its own package (as with package-private) and, in addition, by a subclass of its class in another package.
...
と書いてあって、Object のサブクラス Test から Object#clone() を呼べそう
に思えるのですが、うーむ、何を勘違いしているんだろう。


674 :デフォルトの名無しさん:2009/06/25(木) 01:10:34
え、なに?おれらに英語の翻訳しろっつってんの?

675 :デフォルトの名無しさん:2009/06/25(木) 01:54:09
>>673

public class C1 {
  public void doHoge() {
    // これはOK(例外は起きるけどな)
    C1 copy = this.clone();
  }
}


public class Foo {
  public void doFoo() {
    // これはコンパイルエラー
    C1 c = new C1().clone();
  }
}

これでわかるだろ?

676 :デフォルトの名無しさん:2009/06/25(木) 03:06:13
あーわかるわかる

677 :デフォルトの名無しさん:2009/06/25(木) 03:45:47
締め切りまでに一応の動作ができる品は完成したが
いかんせん時間が無くてパーフェクトとは言い難い感じだ

やっぱり職業プログラマはこういうとこ割り切っていってるのかな
「ソースも動作も非常に満足いく結果だが、時間がかかる」よりも
「どこか引っかかるが、要求された動作は満たすし見たところバグも取り除いてある。完成早い」
というように。

678 :デフォルトの名無しさん:2009/06/25(木) 04:00:13
本屋行ってプログラマ読み物みたいな本読めば嫌というほど書いてあるぜ



ゴミでも完成していると言わざるを得ないが正解

679 :デフォルトの名無しさん:2009/06/25(木) 04:17:08
そして>>677のFUKOのゲージが溜まるんですね。わかります。

680 :デフォルトの名無しさん:2009/06/25(木) 08:11:20
開発PGだとこんな感じかな。
納期◎ 仕様○ バグ収束△ コード品質△ コメント×

プロジェクトのコーディング規約には沿ってるけど、その枠内で遊んでるのが多い印象。

681 :デフォルトの名無しさん:2009/06/25(木) 14:42:08
サーブレットでクッキーを書き出したらDocuments and Settingsに
クッキーが書き込まれるのですけど、セッションを開始したときに、
JSSESIONIDという名前でクッキーが作られると説明があるのですけど、
探してもJSESSIONIDという名前のクッキーは作成されていません。
でも、確かにセッションは開始されていて有効に動作します。
いったい、どこに保存されているのでしょうか。

682 :デフォルトの名無しさん:2009/06/25(木) 17:07:11
>>681
JSESSIONIDって言うnameのCokkieなんだよ
JSESSIONID=hoge とかGETなら分かりやすく見えるしPOSTならHTTPヘッダ見てみろ
この場合Cokkie c = util.get("hoge");などとなる

683 :デフォルトの名無しさん:2009/06/25(木) 17:19:33
>JSESSIONIDって言うnameのCokkieなんだよ
Windowsのフォルダのどこにもないんですよね。
検索したけどないです。
メモリー上とかにあるんでしょうか。
たしかに、どこかにあるんですけど、ありかを見たいんです。

684 :デフォルトの名無しさん:2009/06/25(木) 17:32:40
eclipseを使っているのですけど、今では、Javaアプリケーションで、
プロジェクト1つ。それとservletでプロジェクト1つ。合わせて2つあります。
各プロジェクトの中には、.javaと.classがあって、さらにservletのほうは
WebContentフォルダがあって、その中にWEB-INFがあって、その中に、
web.xmlがあります。サンプルプログラムが増えてきたので、
例えばいま50個のservletがあるとして、10個づつ5つの処理単位に
分けられるとして、分けたいとしたときに、
プロジェクトの内部で、そのように分けることが出来るのでしょうか。
新たにプロジェクトを作れば全部一式揃うので出来ると思うのですけど。
普通、どのように管理しているものなのでしょうか。

685 :デフォルトの名無しさん:2009/06/25(木) 17:39:59
>>683
HttpServletRequest.getParameter(JSESSIONID);
で取るんだよ?
つまりローカルにはない
HttpServletRequest.getParameter(JSESSIONID); # こいつがクッキーの名前

686 :デフォルトの名無しさん:2009/06/25(木) 17:45:41
>>684
今イチ意味がわからんw
packageレベルでないなら、リファクタリングの移動でいいんでないの?
意味違ってたらごめん。

687 :デフォルトの名無しさん:2009/06/25(木) 18:02:03
eclipse ってプロジェクトグループ作れないの?

688 :デフォルトの名無しさん:2009/06/25(木) 18:05:26
ArrayListに入ってるStrin[]の配列をint[][]にコピーする
効率良い方法を教えてください

Integer[][]にならtoArrayで一発コピー出来たんだけれど
int[][]には使えなかったです

689 :デフォルトの名無しさん:2009/06/25(木) 18:18:04
>>688
java.lang.System#arraycopy

690 :デフォルトの名無しさん:2009/06/25(木) 18:23:32
>>682 >>685 >>686 >>687 ありがとうございました。
質問していることはJavaというより、開発ツールやサーバーのことに
なっていたと思います。よく分からないのですけど、今はそこらは
無視して、中身の勉強を進めようと思います。ありがとうございました。

691 :デフォルトの名無しさん:2009/06/25(木) 19:03:59
>>689
java.lang.ArrayStoreExceptionでコピーできませんでした

692 :デフォルトの名無しさん:2009/06/25(木) 19:05:28
やっぱへんな開発ツール使うと時間のロスが大きいよね

693 :デフォルトの名無しさん:2009/06/25(木) 19:08:57
>>691
ソースは?
てかString[]からint[][]にしたいんであればString[]がなんなのか知りたいし
内容によっちゃWrapperMethodがいるでしょ

694 :デフォルトの名無しさん:2009/06/25(木) 19:16:39
内容の問題じゃないだろ
勝手に型変換してくれないのに#arraycopyでコピーできるはずもない

695 :デフォルトの名無しさん:2009/06/25(木) 19:23:40
JSPに入りました。JSPは呼ばれたらサーブレットの変換して実行するらしい
のですが、そのサーブレットがtomcat5.5\workの中に出来ているらしい
のですが、なぜが私のにはworkの中にありません。どこにも見当たらないです。
でも実行は出来るので、どこかに出来ていると思うのですけど、
心当たりはないでしょうか。

696 :デフォルトの名無しさん:2009/06/25(木) 19:33:57
>>693
ArrayList型の変数alにString[]のデータが入ってます
Stringデータは、0-1000までの整数(の文字列)です

for (int i = 0; i < al.size();i++)
{
System.arraycopy(al[i], 0, numbersData[i], 0, al[i].size());
}

697 :デフォルトの名無しさん:2009/06/25(木) 19:35:42
えと、上の補足
numbersDataはint[][]型の配列です

698 :デフォルトの名無しさん:2009/06/25(木) 20:38:45
>>668
Test は Object のサブクラスだからという理由だけでは、protected な clone() は呼べない
ヒントは言語仕様


699 :デフォルトの名無しさん:2009/06/25(木) 20:38:57
toArrayじゃダメなんだっけ

700 :デフォルトの名無しさん:2009/06/25(木) 20:58:10
>>668
javaはoverrideするときにアクセスのスコープを広げる方向に変更することが出来る。
Object.cloneは浅いコピーのみを行うので、
実際に必要なコピー処理はoverrdeして記述する必要がある。

701 :664:2009/06/25(木) 21:13:40
>>665
よくわからんがc3p0のstatement cacheには問題があるみたいね。
http://hide-t.vox.com/library/post/c3p0%E3%81%A8mysql%E3%81%AEreplicationdriver.html

後者のメリットは、
呼び出し→コネクション開く→クエリ実行

コネクションを開いておく→呼び出し→→クエリ実行
の違い。
コネクション開くコストがなくなる。

一般的にはc3p0なんて使わずに、
WASのコネクションプールを使う。



702 :デフォルトの名無しさん:2009/06/25(木) 21:50:46
System.arraycopyもShallowCopyだったっけ

703 :デフォルトの名無しさん:2009/06/25(木) 21:57:37
ballowcopy

704 :デフォルトの名無しさん:2009/06/25(木) 22:04:42
実験すればええねん

705 :デフォルトの名無しさん:2009/06/25(木) 22:17:51
ネットからデータを落としてくるクラスを書いているのですが、
サーバーからの応答メッセージを見ると、Content-Encoding: gzipと書いてあります
GZIPInputStreamを使わなくても、特に支障はないと感じたのですが
GZIPInputStreamを使った方がいいと思いますか?

706 :デフォルトの名無しさん:2009/06/25(木) 22:20:04
deepCopyしてくれるメソッドなんてない。
自前で実装する以外ない。

707 :デフォルトの名無しさん:2009/06/25(木) 22:35:08
で、deepcopyとshallowcpoyはどうちがうの?

708 :デフォルトの名無しさん:2009/06/25(木) 22:50:53
>>701
レスとんくすです。
hibernateのオフィシャルにはc3p0が標準みたいなことが書いてあるんですけど、
世間一般では違うのかなぁ。
サーバがWASだったりJBOSSだったりTomcatだったりと色々あるのでWASのプーリングは使えないです。
とりあえずDBCPを使う方向で検討してみます。

709 :デフォルトの名無しさん:2009/06/25(木) 23:04:08
Javaではデストラクタが無いみたいですが
自分で開放したいときには代わりに何を使えば?

710 :デフォルトの名無しさん:2009/06/25(木) 23:04:56
finalize

711 :デフォルトの名無しさん:2009/06/25(木) 23:11:12
>>708

そーゆー場合はどーなんだろ?
ふつーはWASのコネクションプーリングを使うよってことが言いたかったんだけど。

http://itpro.nikkeibp.co.jp/article/COLUMN/20051116/224704/
みると
>Hibernateは,コネクション・プーリングの仕組みを標準で提供していますが,
>機能としては原始的であり,実運用では利用すべきではありません。
ってあるけど2005年の記事だしなぁ。

どーせJNDIでルックアップするんだし、
設定ちょこっと代えるだけで各WASに対応できるんじゃない?




712 :デフォルトの名無しさん:2009/06/25(木) 23:35:17
jTextFieldでテキストのコピペをしたいんだけどできない
どうやったら、コピペできるようになるのさ?
教えて、エロい人!!


713 :デフォルトの名無しさん:2009/06/26(金) 00:00:04
>>712
ジャヴァスクリプトはスレ違いですよ?!

714 :デフォルトの名無しさん:2009/06/26(金) 00:16:22
基礎中の基礎かも知れないけど
if〜elseで小数を使って2つの結果に判別したいのですがどうすればいいの?

715 :デフォルトの名無しさん:2009/06/26(金) 00:22:30
勉強すればいい

716 :デフォルトの名無しさん:2009/06/26(金) 00:28:20
>>714
これでいいのか?

double a = 0.1;

if (a >= 0.5) {
 System.out.println("0.5以上");
} else {
 System.out.println("0.5未満");
}

717 :デフォルトの名無しさん:2009/06/26(金) 00:38:15
そこはBig、、、

718 :714:2009/06/26(金) 00:44:05
import java.io.*;
class aaa
{
public static void main(String args[ ]) throws IOException
{
System.out.println("0.0〜1.0の小数を入力してください。");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
double a = Integer.parseInt(str);
if(a <= 0.5){
System.out.println("大きい");
}

else{
System.out.println("小さい");
}
}
}

こんな感じで作ってみたんだけど何がおかしいのかな?

719 :デフォルトの名無しさん:2009/06/26(金) 00:52:45
a は int 型

720 :デフォルトの名無しさん:2009/06/26(金) 00:56:15
ちなみに、
int a = Integer.parseInt(str);
なら、意味がわかるってことね。
parseIntの文字通り、String型をint型に変換するってーわけだから。

721 :668:2009/06/26(金) 00:59:38
>>671
>>675
>>698
>>700
みなさま、ありがとうございます。
ようやく理解できました。

>>668 において、C1 が Test のサブクラスでないから、コンパイラに怒られたのですね。
http://java.sun.com/docs/books/jls/third_edition/html/names.html#6.6.2.1
...
Let C be the class in which a protected member m is declared. Access is permitted only within the body of a subclass S of C. In addition, if Id denotes an instance field or instance method, then:
If the access is by a field access expression E.Id, (略) where E is a Primary expression, then the access is permitted if and only if the type of E is S or a subclass of S.
...
Test の中から c.clone() の形の呼出しで Object#clone() にアクセスできるのは、c の型が Test か Test のサブクラスのときだけ。パッケージを超えて、protected なものにアクセスする際、登場するクラスはみな一直線に並んでないといけないのですね。


722 :デフォルトの名無しさん:2009/06/26(金) 01:06:03
>>705
gzipを展開する必要がないなら使う必要はない。


723 :デフォルトの名無しさん:2009/06/26(金) 01:10:42
>>716
>>719
>>720
みなさまのレスにより理解しました。
ありがとうございます。

724 :デフォルトの名無しさん:2009/06/26(金) 01:28:51
メモリリークが出ました。助けてください。

725 :デフォルトの名無しさん:2009/06/26(金) 01:30:05
さあ手を伸ばせ

726 :デフォルトの名無しさん:2009/06/26(金) 02:30:28
>>709
事実上、無いと思った方がよい。
>>710
finalizeは使うなって、ばっちゃが言ってた。

727 :デフォルトの名無しさん:2009/06/26(金) 02:34:24
System.gc()は乱用すると処理速度がガタ落ちだからな

728 :デフォルトの名無しさん:2009/06/26(金) 07:36:52
staticなクラスの後処理としてfinalize()書いたことはあるなぁ。
アプリ終了時に後始末しろって感じで。
こういうのもJavaでは変なのかな?

729 :デフォルトの名無しさん:2009/06/26(金) 08:20:52
EffectiveJava読んで来い
デストラクタとは違うんで最終的名保険以外の用途で使ってはならない

730 :デフォルトの名無しさん:2009/06/26(金) 08:30:06
>>728
そーゆーのは 1.3より前を考慮しなきゃいけない時以外は
Runtime#addShutdownHook(Thread) でできる。finalize() でやるよりは確実。

731 :デフォルトの名無しさん:2009/06/26(金) 08:36:44
>730
それはまた別の用途だろ・・・すべての処理するインスタンスの参照を保持してろって話になるぞ

732 :デフォルトの名無しさん:2009/06/26(金) 08:39:09
プロセスの終了時にGCされずに残ってるオブジェクトはfinalizeされなかったと思う。

733 :デフォルトの名無しさん:2009/06/26(金) 08:42:49
毎日3万稼ぐ4


★翌日入金


★2009年最新在宅ワーク!★☆


http://diet.point.bz/infotype/


734 :デフォルトの名無しさん:2009/06/26(金) 08:47:01
>>731
アプリ終了時に finalize() が動くのを期待する場合もインスタンスの参照はどっかに残ってないといけない。

735 :デフォルトの名無しさん:2009/06/26(金) 09:18:29
>>734
そもそもfinalizeが動くことを期待してはいけない

finalizeはインスタンスの参照がないと動かないってソースよろしく

736 :デフォルトの名無しさん:2009/06/26(金) 13:42:21
基本的な質問で申し訳ないですが
jdk-6u14-windows-i586.exeとpleiades-all-in-one-java_20090329.zip
をインストールしてパスの設定もやったのですが実行すると
エディターにはメイン型が含まれていません、と出て実行することが
できません。原因が分かる方教えて頂けませんか?

737 :デフォルトの名無しさん:2009/06/26(金) 13:44:06
実行しようとしてるクラスにメイン型がないんじゃあないだろうか

738 :デフォルトの名無しさん:2009/06/26(金) 13:45:19
エラーメッセージをコピペすることさえできないやつにプログラムはムリだ。

739 :デフォルトの名無しさん:2009/06/26(金) 13:47:59
Eclipseの日本語化したやつ、ちょっと出てこい。

740 :デフォルトの名無しさん:2009/06/26(金) 13:53:11
>Eclipseの日本語化したやつ、ちょっと出てこい。
英語のメッセージも意味不明だから同罪。


741 :736:2009/06/26(金) 15:42:48
度々申し訳ないですが
MS-DOSだと実行できるのにEclipseだとやっぱり
エディターにはメイン型が含まれていません
と表示されてしまいます。助けてください。

742 :デフォルトの名無しさん:2009/06/26(金) 15:53:29
>741
エスパー登場を待つか、どういう手順でやったらどんなエラーが出たか書くかどっちを選べ

743 :736:2009/06/26(金) 16:05:48
http://www.isl.ne.jp/pcsp/JavaToYou/java_03_02.html
ここを参考にして同じようにやってみてるんですが上手くいきません。
エラーメッセージはエディターにはメイン型が含まれていません
と出ます。

744 :デフォルトの名無しさん:2009/06/26(金) 16:08:08
>>743
ソースをEclipseから、コピペして、ここに貼ってみろ。

745 :デフォルトの名無しさん:2009/06/26(金) 16:08:21
>>743
起動しようとしているクラスにmainがないんじゃね?

746 :736:2009/06/26(金) 16:31:27
皆さんホントご迷惑かけまして申し訳ないです。
ソースはこれです。
public class Java01{
    public static void main(String args[]) {
        System.out.println("ほぷしぃへようこそ");
    }
}

ファイル→新規→プロジェクト→次へ→プロジェクト名を「Project」
ファイル→新規→ファイル→ファイル名をJava01にしてやってます。


747 :デフォルトの名無しさん:2009/06/26(金) 16:34:16
新規でJavaクラスを作ってないからだろうな

748 :デフォルトの名無しさん:2009/06/26(金) 16:44:28
>>746
-cp .

749 :デフォルトの名無しさん:2009/06/26(金) 16:45:35
ファイル名を Java01.java にしていないからでは?

750 :748:2009/06/26(金) 16:46:02
ごめん超的外れ

751 :736:2009/06/26(金) 16:51:35
http://www.atmarkit.co.jp/fjava/rensai4/java5eclipse01/java5eclipse01_5.html
ここ見たらクラスの作成というのが必要だということが分りました。
で、やってみたらちゃんと表示されたわけですがこの作業は
絶対必要で皆さんも毎回やってるのでしょうか?
それと、http://www.isl.ne.jp/pcsp/JavaToYou/java_03_02.html
クラス作成のことが書いてなかったのは何故なんでしょうか?

752 :デフォルトの名無しさん:2009/06/26(金) 16:52:33
Projectの直下ではなく、srcの下にJava01.javaを作らなければならないという話ではないかな。
左側のPackageペインで、ツリーのどの部分にJava01.javaが表示されている?

753 :デフォルトの名無しさん:2009/06/26(金) 16:53:47
>Packageペイン
パッケージ・エクスプローラーと表記されているかも。

754 :デフォルトの名無しさん:2009/06/26(金) 17:04:53
>>751
野良サイトが全部正しいわけないだろ、なぜかは直接聞いてくれ

755 :736:2009/06/26(金) 17:34:52
Projectの直下ではなく、srcの下にJava01.javaを移動させてみたら
ちゃんと表示されましたが、皆さんはeclipse使う時にはクラスの作成を毎回やってるのでしょうか?
それと答えてくださった皆さん本当にありがとうございました。

756 :デフォルトの名無しさん:2009/06/26(金) 17:56:08
http://ja.wikipedia.org/w/index.php?diff=next&oldid=26591790
[[ノート:サーターアンダーギー]]
確かめもせず、名前を見ただけで差し戻すようでは、すでにかなりの反感を抱いているようだ。

757 :デフォルトの名無しさん:2009/06/26(金) 17:56:29
>>756
誤爆

758 :デフォルトの名無しさん:2009/06/26(金) 17:56:42
>>755
単体なら自動ビルドにしとけばいいだろ

759 :デフォルトの名無しさん:2009/06/26(金) 18:09:04
>756
わざわざファイル作成でやるキモい人は聞いたことない

760 :デフォルトの名無しさん:2009/06/26(金) 19:53:08
Class<?>の「?」って何よ?
<>はジェネリックだよね

761 :デフォルトの名無しさん:2009/06/26(金) 20:00:35
>760
文字通り「なにか」

762 :デフォルトの名無しさん:2009/06/26(金) 20:01:03
>>760
ワイルドカード
どんな型でも許すことを意味する。

763 :デフォルトの名無しさん:2009/06/26(金) 20:07:38
質問なんですけど、1.4でコンパイルしたものを1.6のVMで稼動させて安全なんですかね?
本番業務で24時間365日停止できないところへ投入する予定なんですけど・・

764 :760:2009/06/26(金) 20:08:19
なるほど、ジェネリックとワイルドカードで検索したら出てきたわww
ワイルドカードなら*もありな気がしたけど、まぁいいや
>>761-762トンクス

765 :デフォルトの名無しさん:2009/06/26(金) 20:12:05
>>763
その逆よりは遙かに安全だと思う。
でも信頼性が必要ならテストしないと。

766 :デフォルトの名無しさん:2009/06/26(金) 20:12:06
>760
Class と Class<?> と Class<Object> の違いがわかればジェネリックの最初の壁を突破

767 :デフォルトの名無しさん:2009/06/26(金) 20:13:28
>>763
1.6で稼働させるなら、素直に1.6でコンパイルしろよ
わざわざ1.4でコンパイルする意味がわからん

768 :デフォルトの名無しさん:2009/06/26(金) 20:14:02
次は、 Klass<? extends T> とか Klass<? super T> とかだな。

769 :デフォルトの名無しさん:2009/06/26(金) 20:15:37
>>763
1.6の環境への移行テストが必要。
移行テストの工数もらえないなら、何か起こったらそっちの責任という念書もらっとけ。

770 :763:2009/06/26(金) 20:43:31
1.6で廃止になったクラスとか予約語(変数名としてenum使ってたり・・)とか色々とロジックに手を入れないといけなくて、
今回はロジックに手を入れることができなかったため1.4のままコンパイルということになりました。
VM6.0の機能を使った監視ソフトのためにVMだけあげることになりました。
テストなしっていうのはやっぱり怖いですね。
一般的にはコンパイル時と実行時に違うバージョンで動かすことってあまりないんですかね。

771 :デフォルトの名無しさん:2009/06/26(金) 20:47:16
1.6で廃止になったクラスを使ってたんじゃ、動かねえだろ。
予約語は、javac -source 1.4 ですむけど。

772 :763:2009/06/26(金) 20:50:10
確かにそうですね。
廃止になったクラス使ってたらロジックに手を入れざるをえないか・・

773 :デフォルトの名無しさん:2009/06/26(金) 20:55:51
>本番業務で24時間365日停止できないところへ投入する予定なんですけど
入念なガバレージ100テストに勝るものはないね。
人間の頭のロジック展開には限界があるね。
テストの重要性を認識したらいいね。

774 :デフォルトの名無しさん:2009/06/26(金) 20:57:32
とりあえず動くか分からんもんね

775 :デフォルトの名無しさん:2009/06/26(金) 21:03:54
24時間365日連続操業でダウンは絶対避けないと違約金とか取られる
システム開発もあるしね。恐ろしくて簡単には入れ込めないよね。
そういうシステムには通常同一のテスト実行環境があるから、
そこでテストしないとやばいよ。

776 :デフォルトの名無しさん:2009/06/26(金) 21:07:08
// Exp.java
class Exp {
public static void main(String args[]) {
int[] ary = new int[3];
ary[4] = 10;
}
}

$ javac Exp.java // エラーなし
$ java Exp
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Exp.main(Exp.java:4)

初期化した配列外の領域に代入しようとしていることは自明なのに、
なぜjavacの段階でコンパイラはエラーを吐かないのですか?

777 :デフォルトの名無しさん:2009/06/26(金) 21:35:17
見てるとすごくeclipseって不便なんだな

778 :デフォルトの名無しさん:2009/06/26(金) 21:50:21
えええええ、堕落しそうですが何か?

779 :736:2009/06/26(金) 21:53:28
簡単に言っちゃえば、Eclipseでプログラム作る時は
ファイル→新規→クラスが絶対必要ってことで合ってますか?

780 :デフォルトの名無しさん:2009/06/26(金) 22:17:07
>>779
そんな感じで良いんじゃないですか。
面倒ならツールバーにあるクラス作成アイコン「新規 Java クラス」でもクリックしてください。

後はもう、Javaなんて言語は見なかったことにして他の何かを始めると良いですよ。

781 :デフォルトの名無しさん:2009/06/26(金) 22:18:27
そんなポンコツIDE捨てちゃったほうが無難だな

782 :デフォルトの名無しさん:2009/06/26(金) 22:20:17
IDEラッキョ

783 :デフォルトの名無しさん:2009/06/26(金) 22:20:47
絶対じゃない。

けどメッチャ楽。
Javaのファイル名縛りとか継承とか実装とか至れり尽くせりだし。

784 :デフォルトの名無しさん:2009/06/26(金) 22:38:14
サーブレットのライフサイクルではインスタンスが終了するまで
生きているらしいのですけど、インスタンスが終了するのは
どんなときなんでしょうか。

785 :デフォルトの名無しさん:2009/06/26(金) 22:39:36
3分。

786 :デフォルトの名無しさん:2009/06/26(金) 22:41:42
>>785 時間で決まっているんですか。ありがとうございました。

787 :デフォルトの名無しさん:2009/06/26(金) 22:42:33
>>785
あながち間違っているといえないのが困る

788 :デフォルトの名無しさん:2009/06/26(金) 22:52:15
>>778
既に堕落してますが何かw
Eclipse以前は、IDEなんてデカくて重いだけの素人向け環境だと思ってたのに……。

789 :デフォルトの名無しさん:2009/06/26(金) 23:00:32
効率が全てだしね
エディターよりIDE選ぶのは当然だし
IDEの中でも効率良いの選ばなきゃね

790 :デフォルトの名無しさん:2009/06/26(金) 23:06:08
emacs 互換のキーバインドにできるのは、敷居が低くてよかったぞ。

791 :デフォルトの名無しさん:2009/06/26(金) 23:07:36
>>776
こんな風にメソッドに切り出しても自明ってなら是非コンパイラを改修して欲しい
static void doAccess(int[] array) {
  array[4] = 10;
}

792 :デフォルトの名無しさん:2009/06/26(金) 23:08:15
ストリームについての初歩的な質問
クラス名が*Reader&*Writerが文字、*input*&*output*がバイナリでおkだよな?
*input*&*output*にStreamがつかないのは、全部抽象クラスでいいんだよな?

793 :デフォルトの名無しさん:2009/06/26(金) 23:09:39
色々あるからそうとも限らん、使う時に確認しろ

794 :デフォルトの名無しさん:2009/06/26(金) 23:15:22
最後にStreamがついているのがバイトストリームかな

795 :デフォルトの名無しさん:2009/06/26(金) 23:44:59
*input*& ってどこのURIのこと?

796 :デフォルトの名無しさん:2009/06/26(金) 23:56:24
誰かコンパイラでチェックされるものとされないものの説明をしてやれよ

RuntimeExceptionとそれ以下のサブクラスとそれ以外ってレベルでもいいけど

俺は携帯厨だから解説まんどくせ

797 :デフォルトの名無しさん:2009/06/27(土) 00:12:02
connectionの開放漏れを防ぐ方法として、
開いたオブジェクトは片っ端からweekreferenceMapに登録しておいて、
跡でまとめて閉じるってやり方ってどうなのかな?
やっぱり各自で漏れないように閉じてもらうべき?

798 :デフォルトの名無しさん:2009/06/27(土) 00:24:40
どう考えても糞設計
使い終わったら使ったヤツがすぐに片付けろよ

799 :デフォルトの名無しさん:2009/06/27(土) 00:30:38
connectionクローズするようなコーディングしたことがないのだが
気付かないだけでなにか問題がおきているのだろうか

800 :デフォルトの名無しさん:2009/06/27(土) 07:24:26
DBだとオープンカーソルエラーが起きる

801 :デフォルトの名無しさん:2009/06/27(土) 07:55:01
DBだとムダにコネクションプールを圧迫
ファイルだと別のプロセスがファイルを開けずにロック
とか十分に考えられる
ちなみに、フレームワークでcloseしているとかは別だからなー

802 :デフォルトの名無しさん:2009/06/27(土) 08:58:11
>>799
Webアプリケーションで複数同時アクセスがあると未closeのconnectionのせい
で新たなconnectionが作れずタイムアウト。
しばらく待つといつの間にかcloseされてok、てのが最近見付かった。


803 :デフォルトの名無しさん:2009/06/27(土) 09:38:31
IntegerやDoubleなどのクラスはなぜ初期化のときに与えた数値を
変更できない仕様にする思想的な背景を教えてください。
それと、BigIntegerとかにあるaddやmultipleみたいなのを
インターフェイスにしてIntegerでやDoubleにも実装して
使えるようにした方が便利だと思うのですが
あえてそうしない思想的な背景を教えてください。

804 :デフォルトの名無しさん:2009/06/27(土) 09:40:27
>>803 ではないが String もたのむ

805 :デフォルトの名無しさん:2009/06/27(土) 09:58:44
シングルスレッドにおいて、メソッドにsynchronizedを付けた場合、速度は変わりますかね?

806 :デフォルトの名無しさん:2009/06/27(土) 10:01:09
>>803
イミュータブルでググってみたら?

807 :デフォルトの名無しさん:2009/06/27(土) 10:03:09
>>805
変わるでしょう。
現在、他のスレッドがあるかどうかで、synchronizedの動作が変わるわけじゃないし、
シングルスレッドのつもりでも、Java VMは普通は複数のスレッドで動作しているし。

808 :デフォルトの名無しさん:2009/06/27(土) 10:13:14
>>803
あなた面白いことを考えますね。
宿題ですか。でなければ、自分の宿題にしてもいいと思いませんか?
Javaが影響を受けた言語、同時期のほかの言語やオブジェクト指向の発達を調べてレポートに…

>>805
シングルスレッドを同期対応クラスを使うデメリットは、といったところか。

1スレッド1回の同期コスト自体は大きく無いので、競合状態にならないのであれば、
非同期ブロックとの実行時間差は気にしなくても良い。

809 :デフォルトの名無しさん:2009/06/27(土) 10:21:55
>>805
StringBufferとStringBuilderの主な違いは、メソッドがsynchronizedされているかいないかです。
Java 1.4 までは、StringBufferしかありませんでしたが、Java 1.5になってStringBuilderが追加されました。
文字列を作成するときに、ほとんどの場合は同期が不要なのに対し、
StringBufferでは同期処理が行なわれる分、遅いからです。

810 :デフォルトの名無しさん:2009/06/27(土) 11:02:20
>>808
情報科のお勉強は大学でやりましょうね。

811 :デフォルトの名無しさん:2009/06/27(土) 13:40:51
int を byte に変換するときに、0xFF でマスクするのは、
分かりやすい?それとも単に冗長になって分かりにくくなるだけ?
具体的には、例えば(1)と(2)がどっちが一般的?

(1)
byte[] bytes = {
 (byte)(i >>> 24),
 (byte)(i >>> 16),
 ...

(2)
byte[] bytes = {
 (byte)( ( i >>> 24) & 0xFF) ),
 (byte)( ( i >>> 16) & 0xFF) ),
 ...


812 :デフォルトの名無しさん:2009/06/27(土) 13:44:29
フリーソフトだと2をよく見る気がするが。

813 :デフォルトの名無しさん:2009/06/27(土) 14:41:57
>>811
一般的かどうかはしらんが、(1) でいいじゃね。

814 :デフォルトの名無しさん:2009/06/27(土) 15:34:45
String str = request.getParameter("fruit");
byte[] byteData = val.getBytes("ISO_8859_1");
str = new String(byteData, "Shift_JIS");
GETでもPOSTでも、こうすれば文字化けしないんでしょうか。

815 :デフォルトの名無しさん:2009/06/27(土) 15:35:49
String str = request.getParameter("fruit");
byte[] byteData = str.getBytes("ISO_8859_1");
str = new String(byteData, "Shift_JIS");
でした。

816 :デフォルトの名無しさん:2009/06/27(土) 15:51:47
2は冗長だね

817 :デフォルトの名無しさん:2009/06/27(土) 16:24:51
>>815
jakarta projectにライブラリあるよ

818 :デフォルトの名無しさん:2009/06/27(土) 17:10:01
ライブラリって何の?


819 :デフォルトの名無しさん:2009/06/27(土) 17:20:54
strutsに乗せろってこったろ

820 :デフォルトの名無しさん:2009/06/27(土) 17:42:20
JDKをupdate14にしたら、IEやIEのタブを開くたびにjre6フォルダのssvagent.exeが変な許可を求めてきます。
鬱陶しいのでexeを消したら表示されなくなりました。
これは何者ですか。

821 :デフォルトの名無しさん:2009/06/27(土) 18:14:46
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635144
JDKをアップデートしたら、IEは立ち上げなおせという話。これは違う?

822 :デフォルトの名無しさん:2009/06/27(土) 20:42:44
他の人が書いたコードを見たら
return 条件1?trueの戻り値:条件2?trueの戻り値:flaseの戻り値
みたいにreturnの後に三項演算子のネストをしている人がいたんだけど、
これって普通に誰でもやっていることなの?

823 :デフォルトの名無しさん:2009/06/27(土) 21:05:09
「俺ならこう書く」って程度のもんじゃね?
俺は後者の方がいいけど

return foo.isisXX ? true : bar.isXX ? true + false;

if(foo.isXX)
 return true;
return bar.isXX;

824 :デフォルトの名無しさん:2009/06/27(土) 21:12:09
true + falseってどうなるの?

825 :デフォルトの名無しさん:2009/06/27(土) 21:16:23
ready?

826 :デフォルトの名無しさん:2009/06/27(土) 21:18:35
>>823
そうなのか、thx
これを書いた人にメールーしたら、wwwみたいな返事帰って来たから

827 :デフォルトの名無しさん:2009/06/27(土) 21:25:52
お前のコードワロスwwwってか
そんな相手とメールのやり取りするなよ

828 :デフォルトの名無しさん:2009/06/27(土) 21:26:21
確認だけど、正規表現で文字列にドットが入っているかチェックしたいんだけど
例えば、2ch.netみたいな文字列をチェックする時とか
ドットはエスケープすればいいんだから、\\.でいいんだよな?
一応自分でもテストしてみたが、心配で心配で


829 :デフォルトの名無しさん:2009/06/27(土) 21:42:15
ああ、それでいい。いろいろと余りにバックスラッシュが多くなりそうなら [.]ってのもありかもな。

830 :デフォルトの名無しさん:2009/06/27(土) 21:47:43
>>824
すまん
普段はUS配列で打ってるんでつい確認せずに書いてしまった…
US配列だとShift+;らへんが:なんよ

831 :デフォルトの名無しさん:2009/06/27(土) 21:52:04
>>826
あなたのコードは変ですってメールしたのか?
そりゃwwwされるだろ

832 :デフォルトの名無しさん:2009/06/27(土) 21:56:37
>>831
三項演算子のネストだったのかorz一瞬、何やっているかわからんかったと送った
コードを書いた人は知り合いです

833 :デフォルトの名無しさん:2009/06/27(土) 22:00:23
>>829
thx

834 :デフォルトの名無しさん:2009/06/27(土) 22:01:07
>>832
Cじゃ割と普通にやるよ。
return hoge ? 1 :
   fugo ? 2 :
   fuga ? 3 :
   /*else*/ 4;
なんてふうに改行して書くと、
場合によってはすっきりさっぱりかけることもある。


835 :デフォルトの名無しさん:2009/06/27(土) 22:10:12
いるんだよな、他言語を持ち出すやつって

俺もこれから「PerlのOOPでは……」って
持ち出してやろうかしらん

836 :デフォルトの名無しさん:2009/06/27(土) 22:12:54
別に書いちゃダメってわけでは無いよ
これからもそういうコードに出会うと思う
それを見た時に読み難いと思ったなら
自分は同じように書かなければ良いだけ

837 :デフォルトの名無しさん:2009/06/27(土) 22:21:50
リフレクション廃止してくれ。
読まされてて胃が痛い。

838 :デフォルトの名無しさん:2009/06/27(土) 22:22:04
>>835
おまえはもうこのスレに来なくていい

839 :デフォルトの名無しさん:2009/06/27(土) 22:23:05
いやいや、俺が俺が

840 :デフォルトの名無しさん:2009/06/27(土) 22:26:47
三項演算子は簡潔で読みやすい

841 :デフォルトの名無しさん:2009/06/27(土) 22:29:30
わけがない

842 :デフォルトの名無しさん:2009/06/27(土) 22:30:18
>>821
教えてgoo等でもそんな答えを見つけて、OSごと再起動してみたけど、やっぱりダメでした。
Javaの動作には関係ないですよね。

843 :デフォルトの名無しさん:2009/06/27(土) 22:53:19
リフレクションよりひどいのがバイトコード操作。
最近のオープンソースのフレームワークなんかではバイトコードいじりが流行っているようで、
ソースの中にjavaのソース書きまくりだったりしてデバッグ・トレースがまじでやりにくい。
問題がなければいいんだろうけど、不具合があったらまじでわからんから

844 :デフォルトの名無しさん:2009/06/27(土) 22:55:24
>>843
それなら使わなければ良いし
どうにかしたいなら自分でパッチを書いて送れば良い
そういうもんだろ?

845 :デフォルトの名無しさん:2009/06/27(土) 23:00:16
>>844
そういうもんだよ

846 :デフォルトの名無しさん:2009/06/28(日) 00:29:42
>>803>>804
値が変更できない(immutableである)というのは、処理系にとって都合のいい性質だから。
値が変わらないので、
・同じ値のオブジェクトが複数現れたとき、1つにまとめることができる。実際、文字列
リテラルや、-128〜127の範囲のInteger(これはSunのJavaVMだけ?)は、値が同じなら同
じオブジェクトを指している。
・最適化の自由度(ループの外に追い出す、処理順序を入れ換えるなど)が高くなる。
・同一オブジェクトを共有するスレッド間で、データの同期を考える必要がない。値が
変わるオブジェクトを共有している場合、それぞれのスレッドが別コアで動いていると
すると、コアとコアとの間に、レジスタ、ライトバッファ、1次キャッシュ、2次キャッ
シュ、CPUによっては3次キャッシュと、更新したデータが届くまでにいくつもの階層を
潜り抜ける必要があるので、大変コストがかかる。


847 :デフォルトの名無しさん:2009/06/28(日) 00:46:48
>>846
-128〜127の範囲のInteger : 言語仕様

848 :デフォルトの名無しさん:2009/06/28(日) 00:59:18
>>846
すげぇな。
さすがJVMの解析やってる人は違うわ。

849 :デフォルトの名無しさん:2009/06/28(日) 01:05:58
>>848
仕様書見れば書いてあるので、解析してる訳じゃないよ

850 :デフォルトの名無しさん:2009/06/28(日) 01:35:12
最近JAVAでゲーム「ロックマンみたいなもの」を作ろうと思い、
「JAVAでゲーム作りますが何か?」のサイトを参考にして
アクションゲームを作っているのですが…当たり判定の部分で躓きました。
サイトにある勇者の画像が「縦横32」というサイズに対して、
使用したい画像が「縦98横64」というサイズです。
画像の左側は当たり判定の必要が無いので、
当たり判定のサイズを小さくしたいのですが、
ブロックのめり込んだときの位置調整で調節をしたところキャラクターがどっかにすっ飛んでいきました。
色々な書籍やサイトで調べたところIsAtariを使って当たり判定を小さくできるようなのですが。
いまいちやり方がわかりません。
どなたかご教授お願いいたします。
もしくは「ロックマン」のようなアクションゲームのソースが置いてあるサイトや書籍などを教えていただけないでしょうか。

851 :デフォルトの名無しさん:2009/06/28(日) 01:51:25
>色々な書籍やサイトで調べたところIsAtariを使って当たり判定を小さくできるようなのですが。

クラスとかメソッドとか基本は習得されてます?
でなければ出なおすべきでしょう

852 :デフォルトの名無しさん:2009/06/28(日) 01:51:38
当たり判定は自分で実装する。
2Dの当たり判定なら中学レベルの数学だし。
二つの図形の辺が交差してるかとか図形に共有部があるかとか調べればいい。

853 :デフォルトの名無しさん:2009/06/28(日) 02:05:50
>>851>>852
ご丁寧にありがとうございました。
私自身「15歳からはじめるわくわくJAVAゲームプログラミング」という書籍を読み終えて
自分で色々なプログラム組み合わせてゲームを作ってみようと思っていましたが…
やっぱり難しいみたいですね…orz

854 :デフォルトの名無しさん:2009/06/28(日) 02:24:10
Windowsで動くソフトをJavaで作れば、携帯でもそのまま動かせるんでしょうか?
携帯用のJavaをWindows上でクリックしても動かないので、逆もダメなんですかね。

855 :デフォルトの名無しさん:2009/06/28(日) 02:24:30
そこで諦めるなよ

856 :デフォルトの名無しさん:2009/06/28(日) 02:30:30
>>854
ならない。

しかもキャリアによって違うよ。
javaだとdocomoかsoftbankなんだけど、
それぞれ作らないといけない。


857 :デフォルトの名無しさん:2009/06/28(日) 02:31:47
write onceって嘘っぱちなのですか?

858 :デフォルトの名無しさん:2009/06/28(日) 02:33:10
>>857
捉え方を間違えている

859 :デフォルトの名無しさん:2009/06/28(日) 02:36:03
>>858
詳しく教えてください

860 :デフォルトの名無しさん:2009/06/28(日) 02:37:11
>>856
やっぱりそうなんですか。。
言語自体がキャリアごとに異なるんでしょうか。
それとも、ほとんど一緒で一部変えるだけですか?

もし概ね共通なら、Windows用のJavaの教本で勉強して、
あとはキャリア別の違いが載ったような本を見れば
対応できると考えていいでしょうか。

861 :デフォルトの名無しさん:2009/06/28(日) 02:42:06
>>860
うん。
キャリアごとの違いなんて、
基本をしっかり学べばどうとでもなる。


862 :デフォルトの名無しさん:2009/06/28(日) 02:49:49
>>861
それならうれしいです!
やる気が出てきました。
明日さっそく本を買いに言ってきます。

C++とPHPをやった経験があれば覚えやすいかな。
でも新しい言語を覚えると前のを忘れちゃうんです><

863 :デフォルトの名無しさん:2009/06/28(日) 02:57:29
あ、お礼を書き忘れました。

>>856さん、>>852さん、ありがとうございました!

864 :デフォルトの名無しさん:2009/06/28(日) 02:58:16
>>852さんじゃなくて>>862さんでした。
失礼しました。

865 :デフォルトの名無しさん:2009/06/28(日) 02:59:16
あぁ、、>>861さんでしたorz
スレ汚しすみません。

866 :デフォルトの名無しさん:2009/06/28(日) 03:01:15
>>862
もちろん。
他の言語やった経験あったほうが学びやすいよ。
じゃ、がんばって。

867 :デフォルトの名無しさん:2009/06/28(日) 06:44:47
MIDPじゃなくてPPかPBPなら動くんだがな。

868 :デフォルトの名無しさん:2009/06/28(日) 09:55:41
Swingのレイアウトってグラフィカルに決めることって出来ないんですか?

869 :デフォルトの名無しさん:2009/06/28(日) 10:08:33
IDE使えばできるよ
NetBeansとか

870 :デフォルトの名無しさん:2009/06/28(日) 10:24:16
>>868
Netbeans IDE他統合開発環境にはグラフィカルに決めることが出来る道具がある。

871 :デフォルトの名無しさん:2009/06/28(日) 11:00:19
Eclipseはポンコツだからやめたほうがよさそう

872 :デフォルトの名無しさん:2009/06/28(日) 11:15:55
ポンコツだなんて・・・
一世を風靡したと言って頂きたい

873 :デフォルトの名無しさん:2009/06/28(日) 11:18:58
Netbeansは重いのが欠点。
あとはシェアで大きく水を開けられているからなぁ。
4,870,000 件 vs 59,100,000 件
まずEclipse-pluginとして作られるし。


874 :デフォルトの名無しさん:2009/06/28(日) 11:19:27
エクリプスは結局何年もちこたえたんだ?

875 :デフォルトの名無しさん:2009/06/28(日) 11:21:17
んな寝言は、グーグル先生の検索件数で拮抗してから言え。

876 :デフォルトの名無しさん:2009/06/28(日) 11:23:23
>>873
要出典

877 :デフォルトの名無しさん:2009/06/28(日) 11:24:18
>>873
NetBeans重いとか寝言は寝てから(ry

878 :デフォルトの名無しさん:2009/06/28(日) 11:39:55
総称型の鬼門らしいんですが、ClassとClass<?>はどう違うんですか。

879 :デフォルトの名無しさん:2009/06/28(日) 12:53:03
StringBuilder.toStringでnullって帰すことはできないの?

880 :デフォルトの名無しさん:2009/06/28(日) 12:53:06
NetBeansは重いって何時の話だ・・・
確かにまだEclipse級ではないが実用できるレベルにはなっているぞ

>878
Classの原型となんかのClass、Effective Java読んで来い

881 :デフォルトの名無しさん:2009/06/28(日) 12:58:18
>>879
意味がまったくない

882 :デフォルトの名無しさん:2009/06/28(日) 12:58:43
>>879
無理。何がしたいのさ

883 :879:2009/06/28(日) 13:06:28
引数が正規表現にマッチしたら、文字列をStringBuilderとか使って加工するメソッドを書いている
そこで、変な値が入ってきたらString型の戻り値にnullを返しちゃおうかなと思った
例外を発生させるのもめんどいし

884 :デフォルトの名無しさん:2009/06/28(日) 13:07:04
ここには総称型などわかる者はいない
ニートばかりだ。

885 :デフォルトの名無しさん:2009/06/28(日) 13:20:23
>>883
>そこで、変な値が入ってきたらString型の戻り値にnullを返しちゃおうかなと思った

それがどうして「StringBuilder.toStringでnullを返す」という発想に繋がるんだろう?
引数チェックして不正な値だったらreturn null でいいんでないの

886 :デフォルトの名無しさん:2009/06/28(日) 13:28:19
>>880
それじゃぜんぜん分からないですけど

887 :デフォルトの名無しさん:2009/06/28(日) 13:30:32
eclipseのGUI製作ツールを調べたらガニメデには対応して無いみたいだったので
どうしたらいいですか?

888 :デフォルトの名無しさん:2009/06/28(日) 14:01:24
Effective Javaっていくつか種類があるけどどれ読めばいいですかね?

889 :デフォルトの名無しさん:2009/06/28(日) 14:16:38
>>888
そんなにいくつもあるか??
ttp://www.amazon.co.jp/dp/489471499X

890 :デフォルトの名無しさん:2009/06/28(日) 14:23:00
>>887
どうしたらいいですか?
ご飯食べて外で元気よく遊んで来い。

何の目的があって、そのために何がやりたいのかも書かずにどんな答えを求めてるんだ。

891 :デフォルトの名無しさん:2009/06/28(日) 14:30:04
>>883

public String doHoge(String arg) {
  if(arg == null || !arg.matches("pattern")) {
    return null;
  }

  // do something...
}

こういうことじゃないの?

892 :デフォルトの名無しさん:2009/06/28(日) 14:47:30
>>883
仕様上、引数の値が正しくない場合は IllegalArgumentException を使う
これは呼び出し側の責任として処理させる。

893 :デフォルトの名無しさん:2009/06/28(日) 16:48:10
Class<?>はやっぱり難しいんですか。Javaは難しいし無理もないですよね。

894 :デフォルトの名無しさん:2009/06/28(日) 16:59:54
以前にNetbeans6.5とEclipse3.2を比べてた間違いだ。すまん。
Eclipseがなんとか動く1GHz512MBボロPCで、Netbeansは起動やらナビゲータやら
トロトロトロトロトロトロトロトロお待ちくださいだったんで即座に捨てたから、そういう
印象だった。
遅くは無いのか。

シェアの話は、分かると思うけどグーグル先生で Netbeans と Eclipse の検索件数。
プラグインは
netbeans plugin の検索結果 約 835,000 件
eclipse plugin の検索結果 約 3,450,000 件
こっちは4倍か。

895 :デフォルトの名無しさん:2009/06/28(日) 17:05:15
なにグーグル先生って?w

896 :デフォルトの名無しさん:2009/06/28(日) 17:17:18
>>894
初回起動時のNetbeansは起動やらナビゲータやらトロトロトロトロトロトロトロトロお待ちくださいは事実。


897 :デフォルトの名無しさん:2009/06/28(日) 17:22:07
NetBeansの初回起動時の遅さは開発者側から必要な事だと言う見解が出てる
プロジェクトの情報を一旦全部キャッシュしてるから
その作業が終わるまでは遅い

898 :デフォルトの名無しさん:2009/06/28(日) 19:22:50
ここは素人を罵倒するニート掲示板

899 :デフォルトの名無しさん:2009/06/28(日) 20:41:30
NetBeansは信者がキモい。
mixiのコミュ見たときはもう…

900 :デフォルトの名無しさん:2009/06/28(日) 20:47:58
今javadocを作っているんだけど、おいらは「@throw java.io.IOException 説明」と書いている
でも、java se6 api リファレンスの例外の所を見ると、IOExceptionにリンクが張ってあるじゃん
おいらが書いた時はリンクが張られなかったのにorz、どうやったらリンクが張れるのよ?
教えてエロい人!!

901 :デフォルトの名無しさん:2009/06/28(日) 20:49:19
基本的にオープンソースやGNU界隈のコミュはキモイだろ
極力に見ないようにしてるわ

902 :デフォルトの名無しさん:2009/06/28(日) 20:49:22
使ってる人間と道具は切り離して考えろよw

903 :デフォルトの名無しさん:2009/06/28(日) 20:49:25
人に質問する態度じゃないでしょ
マナーくらい守ってくださいよ

904 :デフォルトの名無しさん:2009/06/28(日) 21:23:09
その言い草はいいツール作ってる人たちに失礼だな。

905 :デフォルトの名無しさん:2009/06/28(日) 21:25:43
>>900
-link オプション使え

906 :デフォルトの名無しさん:2009/06/28(日) 21:43:49
>>905
トンクス
さっそくやってみるわ

907 :デフォルトの名無しさん:2009/06/28(日) 23:58:45
>>376
> AWTとSWINGは今からわざわざ覚える必要は無いかなと思います。
と書かれていますが、初心者向けのJava参考書を見ると大抵Swingが使われています。
それでもSwingをやらずにJSP+Servletというのを学んだほうがいいのでしょうか。

908 :デフォルトの名無しさん:2009/06/29(月) 00:02:33
Swingを実戦で使ったことがない

909 :デフォルトの名無しさん:2009/06/29(月) 00:03:40
>>907を書いた後に思ったんですけど、JSP+ServletというのはWebアプリ用のものでしょうか。
やりたいのはGUIプログラムです。

910 :デフォルトの名無しさん:2009/06/29(月) 00:05:10
>>909
モロWebだw

911 :デフォルトの名無しさん:2009/06/29(月) 00:12:21
GUIをやりたいなら
ある程度分かってきたところでjavaFXやWebstartも少しやっとくといいかもね

912 :デフォルトの名無しさん:2009/06/29(月) 00:13:15
JavaFXってどうなの?
やる価値あるの?

913 :デフォルトの名無しさん:2009/06/29(月) 00:15:17
とおもうな
違法コピー嫌うようになってきたこの頃では
それに対する対策となりえそうなものは少しでも取り込んどいた方がいいんじゃ無いかとは思う

914 :デフォルトの名無しさん:2009/06/29(月) 00:16:26
そもそもJavaでGUIは価値が見えない

915 :デフォルトの名無しさん:2009/06/29(月) 00:17:35
VBでええわ。

916 :デフォルトの名無しさん:2009/06/29(月) 00:18:15
いや逆に売り渡しちゃうタイプのVBや他の言語の方が無価値になり得るよね

917 :デフォルトの名無しさん:2009/06/29(月) 00:19:10
>>908
実戦では何を使うんでしょうか。

>>910
Webが必要なかったらJSP+Servletはやらなくていいってことですね。

>>910-911
SwingはやらずにjavaFXとWebstartというのをやればいいのでしょうか。

>>914
そうなんですか。
ケータイアプリはGUIじゃないんですかね・・・?

918 :デフォルトの名無しさん:2009/06/29(月) 00:19:35
既に違法コピーされてる部分に関しては無価値化が進んでるわけだし

919 :デフォルトの名無しさん:2009/06/29(月) 00:20:01
>>908
デバッグ用に可視化ツール作ったら製品の一部になってしまったことならある。

920 :デフォルトの名無しさん:2009/06/29(月) 00:22:49
アマチュアでもなきゃSwingは必須だろ今のところは

921 :デフォルトの名無しさん:2009/06/29(月) 00:23:19
>>913
どうしてそういう心境になったの?

922 :デフォルトの名無しさん:2009/06/29(月) 00:25:16
>>920
どんな職場にいたらSwingが必須とまでいえるんだよwww

923 :デフォルトの名無しさん:2009/06/29(月) 00:25:17
>>917
ケータイアプリ作りたいならまた違うぞ?

924 :デフォルトの名無しさん:2009/06/29(月) 00:26:18
GUIでどんなものが作りたいんだ!

925 :デフォルトの名無しさん:2009/06/29(月) 00:26:44
VBでGUI作ってバグ作りまくってるの君のところか?W

926 :デフォルトの名無しさん:2009/06/29(月) 00:32:32
Swing必須はまずないw
どんだけクソ仕事しかしてないんだかwww

927 :デフォルトの名無しさん:2009/06/29(月) 00:33:25
>>909
とりあえずWindowsでGUIのソフトを作りたいと思っています。
何を作るか決めてませんが、自分用のツールとか・・。
(Javaってそういう用途じゃないんですか??)

慣れてきたら携帯用のものも作りたいです。

928 :デフォルトの名無しさん:2009/06/29(月) 00:34:31
用途なんて決まってねえよ
大体なんでもできるんだから

929 :909:2009/06/29(月) 00:34:42
>>927>>909宛てのレスじゃなくて、僕が>>909です。スマソ

930 :デフォルトの名無しさん:2009/06/29(月) 00:37:52
また底辺ドカタが騒いでるんかw

931 :デフォルトの名無しさん:2009/06/29(月) 00:39:17
>>927
VC++を勧める

932 :デフォルトの名無しさん:2009/06/29(月) 00:40:38
じゃ、俺はとりあえずRubyとかPythonとかでプログラミングの勉強することをすすめる

933 :デフォルトの名無しさん:2009/06/29(月) 00:44:01
Swingは普通に官公庁系の仕事とかで使う事はあるよ
あと、もし学生なら課題でSwingアプリを作れってのもある
Javaの仕事が圧倒的にWeb系が多いから誤解されがちだけど
Swingの需要も一定数あるよ
JavaFXも他に出遅れた感もあるけど、今後どうなるかわからないし
ちゃんとやってる人が少ないからそこに潜れるかもね

934 :デフォルトの名無しさん:2009/06/29(月) 00:44:59
アマチュアがいくら騒いだところで流れは変わらんよ

935 :デフォルトの名無しさん:2009/06/29(月) 00:46:58
また底辺ドカタが騒いでるんかw

936 :デフォルトの名無しさん:2009/06/29(月) 00:47:23
>>934
Strutsしか触った事の無いJava弱者さんはお黙りください

937 :デフォルトの名無しさん:2009/06/29(月) 00:49:27
何でもできる人が正義

ただし貧乏籤を引かされがち

938 :デフォルトの名無しさん:2009/06/29(月) 00:50:57
Eclipse使ってる人多いみたいだから大分趣味でやってる人多いよなここ


939 :デフォルトの名無しさん:2009/06/29(月) 00:51:28
private int x, y, value;
private boolean open;
Cell(int x, int y){
this.x = x;
this.y = y;
open = false; // default is "not-opened"
}
void setValue(int value){
this.value = value;
}
boolean isOpen(){
return open;
}
boolean isMine(){
if(value == -1){
return true;
}else{
return false;
}
}
int openMyself(){
open = true;
return value;
}
何がしたいかさっぱりわからん

940 :デフォルトの名無しさん:2009/06/29(月) 00:53:11
いくら頑張っても給料が糞低いから無理

941 :デフォルトの名無しさん:2009/06/29(月) 00:53:47
cellってのが気になるけど
確かにわけ分からんなこれだけでは

942 :デフォルトの名無しさん:2009/06/29(月) 00:55:07
コードスルーする辺りがやっぱりアマチュアだな


943 :デフォルトの名無しさん:2009/06/29(月) 00:55:12
>>938
テキストエディタで打てれば玄人ってのは古いと思う

944 :デフォルトの名無しさん:2009/06/29(月) 00:56:09
エディタは有り得ないだろ
能率悪すぎ


945 :デフォルトの名無しさん:2009/06/29(月) 00:57:49
Cell(int x, int y) でコンパイルエラーじゃねーか
何をするもこれをするもない

946 :デフォルトの名無しさん:2009/06/29(月) 00:58:10
 │    _、_
 │  ヽ( ,_ノ`)ノ <openMyself()!!!!
 │ へノ   /  
 └→ ω ノ
       >

947 :デフォルトの名無しさん:2009/06/29(月) 00:58:27
逆にEclipse使えないのは素人

948 :デフォルトの名無しさん:2009/06/29(月) 00:58:33
のーせんきゅー

949 :デフォルトの名無しさん:2009/06/29(月) 01:00:24
Eclipseは素人向けだよグループ開発部分が機能弱すぎ

950 :デフォルトの名無しさん:2009/06/29(月) 01:01:32
>>949
はいはい、IDEAでも使っててくださいね

951 :デフォルトの名無しさん:2009/06/29(月) 01:02:18
>>949
それはpluginの問題だろ?
eclipse使ったことあるのかい?

952 :デフォルトの名無しさん:2009/06/29(月) 01:02:21
>>914
じゃあ、GUIはC++の一択?
それも大げさだなあ。
RubyやPythonでGUIのほうが、移植性が不安だし。

953 :デフォルトの名無しさん:2009/06/29(月) 01:03:38
C++www

954 :デフォルトの名無しさん:2009/06/29(月) 01:05:21
スゲエこれだけ素人集まるプログラム板って・・・

955 :デフォルトの名無しさん:2009/06/29(月) 01:05:59
何の話をしてるんだよ

956 :デフォルトの名無しさん:2009/06/29(月) 01:07:40
素人って言えば釣れると思ってる構ってちゃんだろ

957 :デフォルトの名無しさん:2009/06/29(月) 01:08:44
まあ何でもいいけど明日仕事だから寝るぞ

958 :デフォルトの名無しさん:2009/06/29(月) 01:10:29
いっつもカップラーメンなんだよな・・・
糞仕事ばかりでいい仕事が来ないからに違いない!

959 :デフォルトの名無しさん:2009/06/29(月) 01:12:51
プログラム間違ってんの?

960 :デフォルトの名無しさん:2009/06/29(月) 01:52:22
>>939
地雷掃除の枠一つ。
データクラスから判ることは少ないと思うが。

961 :デフォルトの名無しさん:2009/06/29(月) 02:01:11
>>899
view_community.pl?id=112369
> 純粋にNetBeansが好きな方
> Pure Java環境が好きな方
> GUIが大好きな方
> vi/Emacsで神の領域を目指していた方
> Eclipse一辺倒でだめ人間になりたくない方

> Eclipse一辺倒でだめ人間になりたくない方
> Eclipse一辺倒でだめ人間になりたくない方
> Eclipse一辺倒でだめ人間になりたくない方
何これ?(^ω^;)

962 :デフォルトの名無しさん:2009/06/29(月) 02:03:43
たしかにきもいw

963 :デフォルトの名無しさん:2009/06/29(月) 02:04:59
神の領域・・・

964 :デフォルトの名無しさん:2009/06/29(月) 02:11:41
全てのNetBeans好きがそういうタイプなわけじゃないよ

965 :デフォルトの名無しさん:2009/06/29(月) 02:13:39
まぁどこにもどっちにも話をややこしくする人は居るもんだしな

966 :デフォルトの名無しさん:2009/06/29(月) 02:26:16
>>945
Cellクラスじゃないの?

967 :デフォルトの名無しさん:2009/06/29(月) 02:53:50
悟空死んじゃう

968 :デフォルトの名無しさん:2009/06/29(月) 03:29:44
Strutsって何?

969 :デフォルトの名無しさん:2009/06/29(月) 03:34:59
NetBeansとか使ってる奴見たことない。
ヤンキーの兄ちゃんが使っているのを遠めに見たことある。


970 :デフォルトの名無しさん:2009/06/29(月) 03:48:25
ヤンキー・・・

971 :デフォルトの名無しさん:2009/06/29(月) 07:32:31
Swing信者がだSwing必須はないw

972 :デフォルトの名無しさん:2009/06/29(月) 08:01:49
>>969
少なくとも>>969より優秀だったり
名前が知れてるプログラマの何人かはNetBeans使い

973 :デフォルトの名無しさん:2009/06/29(月) 09:08:18
俺の婆ちゃんもNetBeansの方がいいって言ってた

974 :デフォルトの名無しさん:2009/06/29(月) 09:46:43
netbeansもeclipseも使ってるぜ

975 :デフォルトの名無しさん:2009/06/29(月) 12:05:08
netbeansの前身なら使ってたけど良くなった?

976 :デフォルトの名無しさん:2009/06/29(月) 12:09:28
次スレとかもういらないよね?

977 :デフォルトの名無しさん:2009/06/29(月) 12:10:39
なら見なけりゃいい。

978 :デフォルトの名無しさん:2009/06/29(月) 12:29:17
立てますよ一応

979 :デフォルトの名無しさん:2009/06/29(月) 13:32:41
大学で偏差値を出すプログラムをjavaで作れといわれたけど
考え方としては入力する変数(平均点、自分の得点、標準偏差)を作って
格納した変数を(自分の得点−平均点)×10/標準偏差+50となるように作ればいいのかな?

余裕があれば標準偏差も求めて尚且つ偏差値も出すことのできるプログラムも
考えてこいといわれたけど標準偏差の方は大変そうでわからないなぁ

980 :デフォルトの名無しさん:2009/06/29(月) 13:54:51
>979
自力でその偏差計算を書けって話じゃないのか?
入力値が複数の点数データとかで。

偏差計算はインチキしたいなら、Uncommons Mathsとか使えば
getStandardDeviationみたいなズバリの関数あるが、
なんの勉強にもならんし、課題の意味が無いな。
ケーキ作ってこいっていわれた課題なのに買ったケーキ持っていくみたいな。

981 :デフォルトの名無しさん:2009/06/29(月) 16:10:22
【初心者】Java質問・相談スレッド128【歓迎】
http://pc12.2ch.net/test/read.cgi/tech/1246259368/

982 :デフォルトの名無しさん:2009/06/29(月) 16:48:43
>>980
うーん、たぶん授業が統計解析学だからそんなに難しいのじゃないかなぁ
理論は授業で教えて実施はエクセルなりjavaなりCなりで作ってみろって言う先生だし
たぶん今回の授業範囲の偏差値やら標準偏差の意味が分かっているかを
確認したいぐらいだとおもう

それにしてもそのまま偏差求めることのできる関数があるんじゃ不正が多そうだ
両方考えてみるけど、上手くプログラムが作れなかったらそのときはよろしくお願いします

983 :デフォルトの名無しさん:2009/06/29(月) 21:39:49
>>982
うーん、授業風景がなんとなく想像できるw

教授「お前ら偏差値も知らないのか。いったい高校で何を学んできたんだ!」
教授「よし、お前ら偏差値を求めるプログラムを書いてこい」←思いつきなので来週は忘れている




984 :デフォルトの名無しさん:2009/06/29(月) 22:55:27
if(douteiFlag == true){
 hensa = 10

 if(age > 30){
  throw new IllegalPersonException()
 }

}else{
 hensa = 90
}

 

985 :デフォルトの名無しさん:2009/06/29(月) 23:24:08
Java Appletで電卓を作っているのですが、思うように動いてくれません。

数字ボタンをクリックすることで入力は出来るのですが、+や=などの演算用のキーを押しても
反応がありません。

http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/741.txt

どこが悪いか、教えてください。

986 :デフォルトの名無しさん:2009/06/29(月) 23:41:11
Button equ = new Button("=");

Button equ = new Button("push");
に変更する。
で、
1 + 2
を計算したいときは
1 push 2 +
と入力する。

987 :デフォルトの名無しさん:2009/06/29(月) 23:46:40
>>985
演算子を入力した直後は何が起きれば良いのか、もう一度考えるんだ

988 :デフォルトの名無しさん:2009/06/30(火) 00:02:42
>>986
やってみたのですが、変化が無いようです。

>>987
考えているのですが・・・
演算子(仮に+)が入力されたら入力された値が入っているtmp1をtmp2にプラス。
tmp1を0にして、次の数字の入力を促す。

ですよね?

989 :デフォルトの名無しさん:2009/06/30(火) 00:17:34
>>985
ヒント:テンキー

990 :デフォルトの名無しさん:2009/06/30(火) 00:22:33
>>988
13+25= は38 というのが人間様の考えだ。
den様は(脳内実行環境では)
tmp1 : [0.0] 1 3 [13.0] + [0.0] 2 5 [25.0] = [0.0]
tmp2 : [0.0] 1 3 + [13.0] 2 5 = [25.0]
となる。(はずだが。)

さてどうしたものかね。

991 :デフォルトの名無しさん:2009/06/30(火) 00:43:45
いやぁ〜、考えれば考えるほどわからない^^;

992 :デフォルトの名無しさん:2009/06/30(火) 03:09:59
あなたの電卓の仕様を教えてください、みたいな。
あなたの電卓は二項演算子ボタンを押した瞬間に二項とも取得できるんですか。
イコールボタンの仕様は、直前の入力値を表示するだけですか。

993 :デフォルトの名無しさん:2009/06/30(火) 03:15:59
ひょっとしてString値をそのまま+したりしてる?

994 :デフォルトの名無しさん:2009/06/30(火) 05:16:49
>>986
1 2 + じゃないの?

995 :デフォルトの名無しさん:2009/06/30(火) 12:23:33
あるアプリケーションをネットで落としてコンパイルしようとしているのですが
パッケージ Import は存在しません。というエラーになります。

最初から Makefile がついてきていて
make all するだけでできるはずなのですが。。。

Makefile を見ると
javac -O -classpath ../:.:../Java/ *.java

という記述があるのですが、この「../:.:../Java/」というのは正しい記述なのでしょうか?
自分は始めてこんなピリオドとコロンの連続を見たので・・・

996 :デフォルトの名無しさん:2009/06/30(火) 12:31:19
>>995
ドカス
落してきたままなら、自分の環境に変えるだろ

故にお前さんの環境のパスに修正しろ

997 :デフォルトの名無しさん:2009/06/30(火) 12:33:03
なに「ドカス」って?ww

998 :995:2009/06/30(火) 12:35:15
>>996
自分の知らない相対パスの書き方なのかと思って・・・
自分で絶対パスを描き直してみます。
いろんなとこにこの記述があるから果てしなく面倒くさそうだけど・・・

ありがとうございます。

999 :デフォルトの名無しさん:2009/06/30(火) 12:38:17
>>997
お前みたいなのを言うんだよ

>>998 がんばれよ

1000 :デフォルトの名無しさん:2009/06/30(火) 12:46:03
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

242 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)