1 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:10:53 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド100【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1175317038 /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
531 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 21:39:45 ] >>530 引用符外れるけど。 List<String> list = new ArrayList<String>(); StringTokenizer st = new StringTokenizer(str, "\"", true); boolean inQoute = false; while(st.hasMoreTokens()){ String token = st.nextToken(); if(token.equals("\"")) inQuote = !inQuote; else if(inQuote) list.add(token); else list.addAll(Arrays.asList(token.split(","))); }
532 名前:530 mailto:sage [2007/05/15(火) 21:45:32 ] >>531 サンクス!! できました。 ありがとうございます!!
533 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 21:49:20 ] >>531 123,23,45 の後に余分な空要素が入るような。 ま、>>530 の用が足りてるならかまわんけど。
534 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:07:03 ] >>533 while(st.hasMoreTokens()){ String token = st.nextToken(inQuote ? "\"" : "\","); if(token.equals("\"")) inQuote = !inQuote; else if(!token.equals(",")) list.add(token); }
535 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:11:09 ] プログラム未経験で入社して、研修を行っています。 変数とかif文までは理解できたのですが、for文がどうしても理解できず悩んでます。 特に二重ループ(?)になると混乱して・・・ なにかアドバイス貰えませんか?
536 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:15:13 ] 違う参考書を読んでみる
537 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:15:44 ] >>535 その場で腕立て10回、腹筋10回を 10セットやってみよう。 それが二重ループだ。
538 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:19:56 ] > 536 やさしいJavaって本で勉強はしたんですけど、研修で出た課題を解こうとしてもサッパリでして。 書き方乗っているから真似して書いて、と言われてます。 どこをどう真似すればいいのか聞いても、for文はループとしか答えてくれないんです。
539 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:22:38 ] それ以上どういう説明すりゃいいんだよ
540 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:24:15 ] forの前にwhileを学べ。whileの基本系に特化したのがforと言っても過言ではない。
541 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:25:48 ] 今からでも遅くなから転職を考えたらどうか それがダメなら その本でも違う本でも良いから何度も読んで例題をやってみるとか 誇張じゃなくて、本当に100回ぐらい繰り返して読むと突然理解できる時があるから
542 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:26:44 ] >>537 腕立て1回やったら腹筋10回を10セットじゃね? for(int 腕立て回数=0;腕立て回数<10; 腕立て回数++){ 腕立てやる(); for(int 腹筋回数=0;腹筋回数<10;腹筋回数++){ 腹筋やる(); } } System.out.println("もう無理ぽ");
543 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:28:30 ] >>542 腕立て10回したら1分休憩を 10セットでも何でもいーけど。
544 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:30:42 ] いやビリーにGJ!っていってもらったほうがいいな。
545 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:31:37 ] ブートキャンプか
546 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:37:14 ] >>538 じゃあ、forをどう理解してるか教えて
547 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:40:29 ] >>542 それってさ、実行すると 腕立て→腹筋*10→腕立て→腹筋*10→・・・ ってことにならね?
548 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:45:19 ] はいはい、ワロス、ワロス
549 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:46:00 ] >> 546 理解しているというか教えられた内容はこんな感じです。 プログラムで繰返し処理を行う場合にfor文を使う for文ではカウンターと呼ばれる変数をまわして処理が繰り返される 書き方はfor(初期化の式; 繰り返す数の式; 変化の式)と書く。 10回表示するとかは書けるんですけど、素数を表示しろってのが解らなくて・・・
550 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:48:28 ] >>546 あと、変化の式とか初期化の式とかがよく解りません やっぱり転職でしょうか
551 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:49:31 ] 549を読んで535の会話能力に不安を覚えた。
552 名前:デフォルトの名無しさん [2007/05/15(火) 22:58:11 ] まだ手に馴染んでないだけだろ。もう少し使って見てから質問したらどうだ。
553 名前:デフォルトの名無しさん [2007/05/15(火) 22:59:53 ] どーまん せーまん どーまん せーまん
554 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 23:28:48 ] >>549 ,550 そこからかぁ ここで一から懇切丁寧説明すると長くなるからとりあえずJavaの入門サイトをググって自分 なりにある程度理解した上で質問した方がいいかも。 教育担当にしつこく食い下がる、でもいいけど(論点まとめた上でやらないと嫌がられると思うが) まぁ最初は誰でも初心者だし理解するのは大変だろうけどこういうのってある日突然視界が 拓けるように見えてくるものだから諦めずにがんがれ。
555 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 00:10:56 ] いるんだよ。こういうなんでも手取り足取り教えて君がさ・・ とくにJavaに多い 迷惑極まりない もういいから、しんでくれ
556 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 00:18:30 ] >>549 >プログラムで繰返し処理を行う場合にfor文を使う 間違い。 プログラム(アルゴリズム)で同じ処理を何度も行いたい場合、それを繰返し処理と呼ぶ。 for構文ってのは繰返し処理を実現するただの文法。 何を繰り返したいのか、考えてみること。 文字を出力するのか?数値を足すのか?数値で割れるのかを判定するのか?など。 >>555 いるんだよ。こういう文法だけ覚えろって先輩気取クンがさ・・・ とくにJavaに多い 迷惑極まりない もういいから、しんでくれ
557 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 01:44:17 ] JavaでMBRを書き換えるツールは作れますか?
558 名前:デフォルトの名無しさん [2007/05/16(水) 01:54:19 ] 通常時はA.jpgの画像が表示され、ENTERを押すとB.jpgに変わる。 B.jpgにENTERを押すとまたA.jpgに戻り、終了時にはC.jpgがうつる。 というプログラムを組んだつもりなのですが、常にC.jpgだけがうつり、ENTERを押してもなんの反応も示しません。 どうすればいいのでしょうか?
559 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 01:57:40 ] >>558 きみのプログラムが間違っているんだと思うぞ。
560 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 02:05:29 ] ソースも晒さずにどう間違いを指摘しろと言うのだ
561 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 04:31:15 ] >>558 18行目のifの条件を見直してみ
562 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 04:35:36 ] >>558 > どうすればいいのでしょうか? デバッグすれば?
563 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 05:31:31 ] JFrameの上にFlashPlayer載せるにはどうすりゃいいですか?
564 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 05:47:08 ] >>527 slickeditってのがどんなものなのか知らないけれど、 javacの実行環境のlocaleを英語にしたければ、 -J-Duser.language=en をjavacのオプションにすればいい。-Jの後に空白を置かないように。
565 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 05:48:53 ] FlashPlayer JFrame
566 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 11:29:05 ] 質問です。 a.xlsというエクセルファイルにC:\\b.xlsという記述があるとします。 まずa.xlsをプログラム内で POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream( "C:\\a.xls")); の記述で開きます。 まずa.xlsは上記の様に直接プログラム内で指定しているので開けるのですが、 その後、a.xls内に記述されているC:\\b.xlsという文字列を読み込み、 例えばdataという変数に格納します。 それのdataという変数に格納されているC:\\b.xlsを参照して、 POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream( "C:\\b.xls")); という様な形でb.xlsを開けるようにしたいのですがどうすればいいのでしょうか? わかりにくくてすいません。要するに 直接プログラム内でパスを記述するのでなく、変数に格納されている文字列を読み込み それをパスとして読み込んでファイルを開くという方法を教えていただきたいのです。
567 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 11:41:19 ] 変数に格納されているのならその変数をそのまま使えばいいのでは? パスの形への整形は必要かもしれんが。
568 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 12:34:06 ] ありがとうございます。 その整形方法がわからないのですが。。
569 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 12:43:44 ] dataにC:\\b.xlsって文字列が格納されてるなら POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(data)); でええんとちゃうのん? 整形も何も必要ないような って必要あるね dataがStringだとして data=data.replaceAll("\\\\","\\"); とでもすれば?
570 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:06:51 ] >>569 しなくていい POIFSFileSystem filein = new POIFSFileSystem(new FileInputStream(data)); でええはず あるいは data が Array や ArrayList みたいなのだったらループ汁
571 名前:558 [2007/05/16(水) 14:20:48 ] 今調べてますが、 とりあえず内容をあげてました。 www.vipper.org/vip508105.txt.html
572 名前:558 mailto:sage [2007/05/16(水) 14:27:22 ] >>571 のやつは、ちょっとC.jpgの部分辺りが消えてしまってるんですが・・・
573 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:40:49 ] 試さずにコメントするけど switchの中でgetKeyCode()を何度も呼び出してるからじゃないかな
574 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:44:21 ] paint の中 bkgrp 毎回 null
575 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:47:42 ] なんだ釣りか
576 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:49:38 ] >>571 KeyEvent の届き方ってのは仕様が無い。プラットフォーム毎(キーボードの種類毎)に挙動が違う。 keyPressed は押し始めに 1回だけ呼ばれるという前提で書いてるみたいだけど、 キー押し始めてからキー離すまで nミリ秒ごとに keyPressed を呼び出すプラットフォームもあるので要注意。
577 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:56:37 ] >>570 ほんとだ。"C:\\\\\\\\\\hoge.txt"とかでも大丈夫だった。 先頭にドライブ文字が付いているからUNCパスと区別できるってことか。
578 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:00:03 ] RMIサーバを作成しています。 リモートオブジェクトがGCのタイミングで無くなってしまう可能性 ttp://d.hatena.ne.jp/nowokay/20060817 を潰しておきたいのですが、 static変数に持っておく、参照が切れない事が分かっている インスタンスの変数とする、等の方法しか無いのでしょうか。 コード的に、もうちょっと体裁の良い形にしておきたいのですが。 また、リモートオブジェクトのエクスポートの瞬間にオブジェクトが 取得される可能性があるからコンストラクタでの処理が云々、 と言った話をトラブル話として過去に聞いたのですが、当時良く理解出来ませんでした。 この情報から推測できそうな有名な落とし穴等ありますでしょうか?
579 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:45:31 ] プログラミング自体が完全に初心者なんですが、そういう初心者向けのJavaの参考書はなにがいいでしょうか? いまのところ、一冊は候補があってもう何冊か目星をつけて見比べたいので。
580 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 20:54:58 ] >>579 なぜプログラミングができないのかって本。 中身はJava入門本、目から何か出る。
581 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 22:57:09 ] 目からビーーーーム!! ・・・は既にでじこも卒業
582 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 23:52:11 ] >>579 ぜったいコレ www.amazon.co.jp/Head-First-Java%E2%80%95%E9%A0%AD%E3%81%A8%E3%81%8B%E3%82%89%E3%81%A0%E3%81%A7%E8%A6%9A%E3%81%88%E3%82%8BJava%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%AD%E3%83%A3%E3%82%B7%E3%83%BC-%E3%82%B7%E3%82%A8%E3%83%A9/dp/4873111730 よく初心者に勧める本っていえば、猫でもわかる〜系が有名だけど 「本物の初心者」ならプログラミングって概念がさっぱりわからんだろうから 図やイラストがたくさんあったほうがかなりわかりやすい (その辺を考慮せず薦める中級者・上級者がやたら多い) なので、この本おすすめ オライリー本だから当然、文章も良文です
583 名前:デフォルトの名無しさん [2007/05/17(木) 04:38:42 ] beanにinit()の初期化処理が入っています。 そのbeanをJSPからusebeanした場合、beanのinit()の部分の処理は次回のjspへのリクエスト時は処理されないですみますか? それともjspへのリクエストの度にusebean⇒beanのinit()処理となってしまいますか?
584 名前:デフォルトの名無しさん [2007/05/17(木) 07:48:09 ] >> 582 恒例の流れなんだが、Head First Javaは良書だが初心者にはどうかと。 どんな本でも良いんだが、打ち込んだソースが動かないとか、論外。 自分的にはGoogleが一番良い参考書だと思うぞw
585 名前:デフォルトの名無しさん [2007/05/17(木) 07:51:27 ] >> 583 beanのコンストラクタから init() を呼び出しているって事でOK? useBeanした時にどうなるかは、beanのスコープに依存する。 スコープがrequestならば毎回初期化される(インスタンスが生成される)。 sessionであるならば、同一sessionで使いまわされると理解して良い。 (細かい所は省略しているからあとは自分で調べろ) initにSystem.outとかブレイクポイントとか仕掛けて、両方の挙動を確認するのがいいよ。
586 名前:デフォルトの名無しさん [2007/05/17(木) 11:36:37 ] 諸先輩方、アドバイスお願いします。 オライリーのJAVAクイックリファレンスで勉強中なんですが 初期の段階(クラスのメンバー等)のところでつまづいてなかなか先に進めないでいます。 とりあえずと読み進めていますが、理解できないところが多くなってきました。 こういうときは、理解できるまで繰り返し読むしかないのか 分からないなりに一通り読み進めていく方が良いのか、どちらの方が良いでしょうか? そもそも、この程度の箇所でつまづいてる時点ではJAVAはまだ早いでしょうか? 厳しい意見でも構いませんのでアドバイスお願いします。
587 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 11:39:47 ] >>586 プログラムを実際に組んで動かしたことありますか?
588 名前:586 mailto:sage [2007/05/17(木) 11:44:56 ] >>587 クイックリファレンスに掲載されているものは打ち込んで動かしていますが、 自分で何かを組んだりしたことはありません。
589 名前:558 mailto:sage [2007/05/17(木) 12:18:27 ] 遅くなりましたが返答ありがとうございます。 しかし未だにプログラムは完成してません。 もう少し自分で頑張るつもりです。
590 名前:名無しさん mailto:sage [2007/05/17(木) 12:31:37 ] gihyo.jp/dev/serial/01/java-calculation やってみれ
591 名前:586 mailto:sage [2007/05/17(木) 12:46:52 ] >>590 現在掲載されているのは計算が主体のようですね。 でも、勉強になります。連載中のようなのでこれからが楽しみです。 ありがとうございました。
592 名前:586 mailto:sage [2007/05/17(木) 12:49:16 ] >>590 各回は1ページではなかったんですね・・・。 最後のページに演習があったのに今気付きました。 やってみようと思います。
593 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 14:38:14 ] String expr = "2 * 3 + 7"; Calculator calc = new Calculator(); String value = calc.eval(expr); value = 13 になる みたいなクラスってありますか?
594 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 14:54:19 ] >>593 自分で作ってください
595 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 15:13:34 ] そのものというわけにはいかないが 6以降ならスクリプトAPI使ってRhinoに評価させるって手はあるな
596 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 15:32:40 ] ちっこいコンパイラ作るつもりでやってみw
597 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 15:45:26 ] 与えられた正の整数の因数を全て表示するプログラムを作成しなさい。たとえば12の場合、2,3,4,6を表示する。 というような問題はループを使うのですか?どなたか答えを、、
598 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 15:53:57 ] 再帰を使えと?
599 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 16:02:55 ] >>597 何を使っても良いのでは void printInnsuu(int n){ for(int i = 2; i <= n / 2; i++)if(n % i == 0 )System.out.print(i + ","); }
600 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 16:29:41 ] >599さん ありがとうございました(^3^)/
601 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 17:21:48 ] >>593 jay+JFlexならこんな感じで --Calculator.jay %{ public class Calculator { private Integer result; %}%token <Integer> NUMBER %type <Integer> expr %left '+' %left '*' %% string: | string expr { result = $2; } expr: NUMBER { $$ = $1; } | expr '+' expr { $$ = Integer.valueOf($1.intValue() + $3.intValue()); } | expr '*' expr { $$ = Integer.valueOf($1.intValue() * $3.intValue()); }; %% public String eval(String expr) throws Calculator.yyException, java.io.IOException { yyparse(new Lexer(new java.io.StringReader(expr))); return String.valueOf(result); } }
602 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 17:23:27 ] --Lexer.flex %% %public %class Lexer %implements Calculator.yyInput %type int %eofval{ return YYEOF; %eofval} %{ private int token; private Object value; public boolean advance() throws java.io.IOException { return (token = yylex()) != YYEOF; } public int token() { return token; } public Object value() { return value; } %} %% " " { } [1-9][0-9]* { value = Integer.valueOf(yytext()); return(Calculator.NUMBER); } . { return yytext().charAt(0); } --Test.java public class Test { public static void main(String[] args) throws Exception { String expr = "12 + 3 * 7"; Calculator calc = new Calculator(); String value = calc.eval(expr); System.out.println(expr + " = " + value); } }
603 名前:デフォルトの名無しさん [2007/05/17(木) 18:36:39 ] jarを作って、プログラムの中からjarを実行させたいのですが、 可能でしょうか?
604 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 20:39:31 ] >>603 イミフ
605 名前:デフォルトの名無しさん [2007/05/17(木) 22:24:04 ] >>604 たとえばSWTで1画面作って、jarにして 別のシステムからボタンクリックイベントとかで、 このjarにした画面を呼ぶ事ができるのかなって、、、
606 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 22:27:35 ] >>605 できると思うけど。 具体的な状況がサッパリわからんので、 具体的にどうやるかは自分で考えれ。
607 名前:デフォルトの名無しさん [2007/05/17(木) 22:57:49 ] >>606 SWTで画面を作って、jarにするところまでできたのですが、 それを今度は、JFrameで作った画面のボタンクリックイベントで jarにした画面を表示させたいのですが、具体的にどう記述すれば良いか 色々しらべてもわからなかったので、もしよろしければ教えてください。
608 名前:デフォルトの名無しさん [2007/05/17(木) 23:10:43 ] >>607 Runtime.exec(String command)
609 名前:デフォルトの名無しさん [2007/05/17(木) 23:30:38 ] class Sample{ static boolean b; public static void main(String[] args){ int x = 0; if (b) { x = 1; } else if(b = false) { x = 2; } else if(b) { x = 3; } else { x = 4; } System.out.println("x = " + x); } } 「if(b = false)」のところでbの初期値であるfalseと一致し、 「x = 2」と出ると思っていたのですが、 実行すると「x = 4」と表示されます。 何故そうなるかご教授願いたいのです。
610 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 23:38:54 ] >>609 >} else if(b = false) { bにfalseを代入してるから?
611 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 23:40:21 ] > 「if(b = false)」のところでbの初期値であるfalseと一致し、 それ、比較じゃなくて代入だから。 比較したいなら if(b == false)
612 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 23:52:40 ] booleanとtrue,falseを比較なんて身の毛もよだつ バグが入るので絶対お薦めしません if( b ) if( !b ) これでいいだろ?
613 名前:609 [2007/05/18(金) 00:01:22 ] 比較の"=="じゃなく、"="なので代入になってしまっていたわけですね。 なるほど、わかりました。 どうもありがとうございました。
614 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 00:45:18 ] >>612 if(b){} else {} でいいじゃん。
615 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 01:09:47 ] Sunのコーディングスタイルはif(b==ture) else >>608 そういう意味じゃなくてOOoみたいに別々に固めた別コンポーネント(ウィジェット)を連携したいって意味じゃない?
616 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 01:16:01 ] > Sunのコーディングスタイル java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html > f(b==ture) else そんな事書いてなくね?
617 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 01:22:39 ] boolean b = false; 【不恰好なコード】 if (b == true) { // 処理 } else if (b == false) { // 処理 } 【美しいコード】 if (b) { // 処理 } else if (!b) { // 処理 }
618 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 01:25:01 ] > } else if (!b) { 釣りか?
619 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 01:26:16 ] 酔ってるんだ みなかったことにしてくれ
620 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 06:24:48 ] >>609 ちなみに == true を書く派だが、これは盲点。 if( b = false) ってバグは怖いな ためしにint あたりで同じバグを書いてみよう if(i = 10) とかね。 こっちはコンパイルエラーとなる。 実はJavaの場合、代入式の実行結果として代入値が返されるんだわ。 だからint の場合は、代入値(10)が ifの論理式の所に渡されるからNG。 これに対して、boolean の場合は、falseが渡されるから、結果としてOK。 そう考えると、612の主張もアリと感じる。
621 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 06:45:48 ] 比較演算の結果は boolean なので、 boolean を true, false と 比較するというのなら比較演算の結果も当然比較するべきだろう。 その結果も boolean なので(以下略
622 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 07:37:55 ] (...(((b == true) == true) == true) ... == true)
623 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 08:06:04 ] 無限再帰ってこわくね?
624 名前:デフォルトの名無しさん [2007/05/18(金) 10:24:01 ] javaって肥大化していくCで書かれたソフトウェア開発コスト下げれるの? 速度速いしC++の方がいいと思うんだけど。
625 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 10:31:11 ] >>624 JavaでCのソフトは作れないなぁ
626 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 10:41:14 ] >>625 組み込みシステムとかは?
627 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 11:24:29 ] どの言語も使いどころが違うからなあ マルチリンガル必須だよ
628 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 12:30:18 ] boolean は、真偽値しか入ってこない型なんだから 判定では、比較させないのがバグを回避するのに有効だと思うが・・・・ Cや、Perlなど boolean以外の値も真偽判定に使えるような言語だと、 比較を書くのは真偽判定に使っていると明示すことこになって嬉しいんだけど Javaはbooleanでしか判定しないので比較を書かない方がいいと思う
629 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 12:46:29 ] >>628 ふむふむ。 それならば、メソッドの戻り値がbooleanの場合はどうする? if(isHogeHoge()) {} と if(isHogeHoge() == true) {} だと後者のほうが解りやすいと俺は思う。 変数だと書かないのもありと思うけど、でも!は嫌いだなぁ。 見落とすんだよね・・・
630 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:32:15 ] >>629 俺は >>628 じゃないけど、前者の方が良い。 if (!isHoge()) と if (isHoge() == false) でも前者かな。
631 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:33:19 ] == true を入れられると、何か頭を使わないと理解できない。 慣れの問題だろうが、俺はない方がはるかに分かりやすい。 というか、C/C++ 使ってると true と比較するのはものすごく抵抗がある。 ctype.h の is 系関数とか 1 以外の値も返すようになってる実装だったりすることも多いし。
632 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:40:30 ] C/C++ だと == NULL とか != NULL は良くやる。 ってか、文法似てるけど別の言語だからスレ違いだね。ごめん。
633 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:41:24 ] ポインタは真偽値じゃないから書くのが普通だろう。
634 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:46:46 ] >>629 個人的主観で言うならば日本語に直してスムーズに読める方を採用する if(isHogeHoge()){} →もしHogeHogeならば(比較的素直に読める) if(isHogeHoge() == true){} →もしHogeHogeが真ならば(いかいもプラグラム的)
635 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 14:31:32 ] >>618 こう考えるんだelse if(!b)else assert false; それは契約だと・・・・なんだって?到達不能だって?
636 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 14:33:19 ] >>635 b が別スレッドから変更される可能性があるんだよ。たぶん。
637 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 15:07:02 ] 何という危険なプログラム!
638 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 15:48:14 ] >>637 つ volatile
639 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 16:02:38 ] いや、それ何の解決にもなりませんから。
640 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 16:23:51 ] public class VolatileSolvesEverything { private boolean 解決 = false; /* 中略 */ if (解決) { /* 嘘やん(心の声) */} else { /* 到達不能ということにしたい */ } }
641 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 16:29:53 ] >>629 !を見落とすより間違った代入を見落とした方がバグとして痛いだろう
642 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 17:21:34 ] if(true - true == 0)
643 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 17:32:37 ] >>642 booleanは引き算できないってこと分かってる?
644 名前:デフォルトの名無しさん [2007/05/18(金) 18:02:16 ] 初心者の質問じゃないかもしれないけど、 どなたか教えてください。 ドメインaaaaa.comからbbbbb.com/ へ、 リンクが貼られているかをチェックするプログラムを作りたいと思っています。 現在サイト運営していて、 相互リンク先から本当に自分のサイトにリンクされているのかを、 確認したいと思っているのですが、 リンク件数が1000件を超えているため、 プログラムでチェックしたいとおもっています。 Javaでなくてもいいのですが、 JSpiderというものがあるのを知り、 こちらにかきこませていただきました。 べつに言語はJavaに固執しているわけではありません。 参考になるサイトなどありましたら教えていただけないでしょうか。 どなたかお願いします。
645 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:47:43 ] >>644 www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38472&forum=12&1
646 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:02:30 ] >>644 パッシブな調査方法でいいのなら、 ログのリファラをチェックするのが一番確実だと思います。 それだと、相互リンク自体が有効かどうかチェックできるし ネットワークトラフィックを発生させる事もありません。 1.相互リンクをお願いする 2.相手にリンク作ったら1回踏んで動いていることをチェックしてもらう 3.毎月(自分の納得する頻度で)ログをチェックする 4.相互リンクを結んでいる相手のリファラを持つアクセスが無い相手のみ目でチェック これでOK. 1000件以上も単なるリンクチェックだけに回るのは 極めて非常にとても無駄です。
647 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:17:52 ] 俺は ! の後には必ず空白入れるようにしてる。 if(! b) みたいに、目立つように。
648 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:18:05 ] >>644 q.hatena.ne.jp/1175700361
649 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:19:22 ] >>644 hp.webnavisys.com/php/
650 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:20:03 ] >>644 exp.webnavisys.com/tool/php0.html
651 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:25:57 ] >>647 俺らは ! は必ず三つ並べるようにしてる。 if(!!!b) みたいに、目立つように。
652 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:35:36 ] >>651 なにー! くそー、じゃあオレは4つ並べちゃうぞ
653 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:39:33 ] >>652 ちょw それヤバいwww
654 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:41:49 ] >>652 だめじゃん
655 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:42:27 ] >>653 ってか、3つや5つならオッケーなんだよな。 4つや6つ並べると負けってのは何か理不尽じゃね? 納得いかない奴の数→(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ry
656 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:48:07 ] >>653 wを2つ並べるのも避けてるみたいですが、意図的ですか!!!ww1w!w!!ww というか _, ._ 金曜の夜なのに (´・ω・) くそレスが次から次へと… ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)ww意図的ですか!!!ww1w!w!!wwwbw!!ww
657 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:24:47 ] >>638-639 結局、JSR-133って何が変わったんだっけ?
658 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:29:48 ] !!! って流石に ! に最適化されるよね?
659 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:36:31 ] (´・ω・) く あまり糞レス増やすなよー ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)!!! って流石に ! に最適化されるよね?
660 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:33:39 ] !って1個じゃなくてもいいの!?
661 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:34:59 ] !!?!
662 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:35:00 ] >>660 単項演算子だからね。
663 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:35:44 ] 1++++---+--+++++-+-++-+2
664 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 23:42:10 ] ああそうか2個あったらfalseの逆になるのか
665 名前:デフォルトの名無しさん [2007/05/19(土) 00:08:50 ] >>645 >>646 >>648-650 ありがとうございます。 参考にさせてもらいます。
666 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:21:33 ] >>663 構文エラーだね。
667 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:27:41 ] 1+ + + +- - -+- -+ + + + +-+-+ +-+2
668 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:30:44 ] >>667 マジレスすると、Java では 1 ++ ++ -- + -- ++ ++ + - + - ++ - + 2 と区切られなければならない。 1++2 も同じ理由でコンパイルエラーになる。
669 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:32:35 ] マイナスが一個足りないな
670 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 02:45:35 ] ネットワーク対戦のゲームを作りたいのですが、 クライアントサイドにSwingをサーバサイドにサーブレットを使おうと考えています。 通信部分はどうしたらいいのでしょう。
671 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 02:51:40 ] ServletならJakarta Commons HTTP Clientを使っとくのが楽かもね。
672 名前:670 mailto:sage [2007/05/19(土) 03:02:16 ] >>671 ありがとうございます。 ググってみたのですがよくわかりません… 詳しく教えていただけないでしょうか?
673 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 03:39:51 ] わからんのなら素直にSocketでも使っとけ。
674 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 05:43:23 ] >>671 HTTPSでも問題ないですか?
675 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 05:45:14 ] >>670 ttp://jakarta.apache.org/site/downloads/downloads_commons.html
676 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 06:17:14 ] ttp://www.ipa.go.jp/security/awareness/vendor/programming/a03_04.html このページにある、リスト2 InfoMenuクラスのソースなのですが、 10 public void dispMenu(Passwd pwd) { 11 if(pwd.checkPasswd() == true) { 12 dispSystem(); 10行目の部分でPasswdクラスのオブジェクトを取ってくると記述されていますが、 PasswdクラスとinfoMenuクラスが親子関係という訳でもなく、 infoMenuクラスからPasswdオブジェクトを作っている記述もありません。 なぜ、dispMenu(Passwd pwd)だけで任意のPasswdオブジェクトが取得できるのでしょうか?
677 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 07:41:15 ] >>676 > 10行目の部分でPasswdクラスのオブジェクトを取ってくると記述されていますが、 そんなこと書いてない。テキストを誤解している。
678 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 07:43:54 ] >>676 「Passwdを取得する」ではなく「Passwaを引数とする」ではないの?
679 名前:676 mailto:sage [2007/05/19(土) 08:11:34 ] そのとおりです、オブジェクトを引数として渡してるだけでしたorz 何故か初歩的なこと忘れてました。 「dispMenu(Passwd pwd)」って記述したら自動的に 「dispMenuに渡された引数がそのままPasswdに渡されて、尚且つpwdオブジェクトが生成される」とか 変なことばかり考えてまして。 ありがとうございました。
680 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 13:46:16 ] 注:str.java の操作は、未チェックまたは安全ではありません。 注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください というエラーがコンパイルすると出るんですがなぜですか? 同じものを学校のPCでやってもでなかったのに
681 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 14:13:45 ] >>680 javac -source 1.4 str.java ってやってみ? 学校のコンパイラのバージョンは古いからエラーが出なかったんだ。
682 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 14:25:36 ] >>681 できました! ありがとうございます
683 名前:デフォルトの名無しさん [2007/05/19(土) 19:24:25 ] ha= buf.readLine(); switch (ha.charAt(0)){ case'+': kg=1; case'-': kg=2; case'*': kg=3; case'/': kg=4; } の部分に Exception in thread "main" java.lang.NumberFormatException: For input string: "+" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at RinkouPractice4.main(RinkouPractice4.java:22) ってエラーが出てコンパイルできるが実行できないんですが原因を教えてください
684 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 19:40:43 ] >>683 とりあえずエラーが発生してる場所が違うな。 >at java.lang.Integer.parseInt(Unknown Source) >at RinkouPractice4.main(RinkouPractice4.java:22) まぁこれ見る限りreadLine()してきたデータそのままparseInt()に渡してるんだろうな
685 名前:デフォルトの名無しさん [2007/05/19(土) 20:41:46 ] public static void main(String[] args)throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備 String ha,s1,s2,b1,b2; int kg; int si1,si2,bo1,bo2; System.out.println("数値を入力"); //ユーザに入力を促す s1=buf.readLine(); b1=buf.readLine(); si1 = Integer.parseInt(s1); bo1 = Integer.parseInt(b1); ha= buf.readLine(); s2=buf.readLine(); b2=buf.readLine(); si2 = Integer.parseInt(s2); bo2 = Integer.parseInt(b2); Kazu v1 = new Kazu(si1,bo1); Kazu v2 = new Kazu(si2,bo2); // Hantei h = new Hantei(); // kg = h.opr(ha.charAt(0)); kg=0; switch (ha.charAt(0)){ case'+': kg=1; case'-': kg=2; case'*': kg=3; case'/': kg=4; } なぜエラーが出るんですか?
686 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 21:17:08 ] RinkouPractice4.javaの22行目どうなってる? mainメソッドから数えて22行目じゃなくてファイルの頭から数えて22行目。 >si1 = Integer.parseInt(s1); >bo1 = Integer.parseInt(b1); >si2 = Integer.parseInt(s2); >bo2 = Integer.parseInt(b2); どれかのはずだけど… んで、なんでエラーになるかというと、parseIntメソッドの仕様だから >文字列の引数を符号付き 10 進数の整数型として構文解析します。 >文字列にある文字はすべて、10 進数でなければなりません。ただし、 > 1 番目の文字だけは、負の値を表すためにマイナス記号の ASCII 文字 >「-」(「\u002d」) であってもかまいません。 これに”+”付の数字渡せば >Exception in thread "main" java.lang.NumberFormatException: For input string: "+" となる、と。 入力データのチェック入れれば回避できるんでない?
687 名前:デフォルトの名無しさん [2007/05/19(土) 21:41:49 ] 20 s1=buf.readLine(); 21 b1=buf.readLine(); 22 si1 = Integer.parseInt(s1); 23 bo1 = Integer.parseInt(b1); 24 ha= buf.readLine(); 25 s2=buf.readLine(); 26 b2=buf.readLine(); 27 si2 = Integer.parseInt(s2); 28 bo2 = Integer.parseInt(b2); 29 30 Kazu v1 = new Kazu(si1,bo1); 31 Kazu v2 = new Kazu(si2,bo2); こうなってますが具体的にはどうすればよいのでしょうか?
688 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:01:22 ] >>680-682 Generic使えよ
689 名前:デフォルトの名無しさん [2007/05/19(土) 23:53:00 ] 入力データのチェックって何ですか? まだ出来ないんですが誰か助けてください
690 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:14:34 ] J2EEのライブラリを書くときにServlet APIのインタフェースライブラリだけが欲しいんですが これってTomcatとかから借りてきてそのまま配布してもいいんですか?
691 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:30:24 ] >>689 readLineメソッドで読み込んだ文字列(変数ha以外)が数字又は一文字目が"-"以外だったら エラー処理を行う(再入力させるもよし、Exception投げるもよし、問答無用でプログラム終了でも…) 要するにInteger#parseIntがちゃんと処理できる値が入力されていることを保証してやる ユーザが作り手の意図した通りの入力してくれるとは限らないから入力チェックは必須。
692 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:59:45 ] int readInt() throws EOFException { while(true) { String str = buf.readLine(); if(str == null) { throw new EOFException(); } try { return Integer.parseInt(str); } catch(NumberFormatException e) { System.out.println("残念、もう一度"); } } }
693 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 02:11:35 ] >>688 残念ながら1.4が本当のターゲットらしいんでgenericsを使っちゃコンパイルできなくなる。 別の所でそれより新しいバージョンでコンパイルして警告を出されて焦ったようだ。
694 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 04:08:12 ] >>693 つ -source 1.5 -target jsr14
695 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 04:13:02 ] WindowsでもLinuxでも動作する USBポートに対する入出力を行うライブラリでオススメ教えてください
696 名前:デフォルトの名無しさん [2007/05/20(日) 04:23:35 ] 整数を任意に入力していき、0を入力したら最大値は何番目にでてきたか出力する プログラムですが、たとえば 0>10 1>11 2>0 と入力すると、本来 1 と出力されてほしいのに、 1 1 と出力されてしまいます。 どこがおかしいのかご教授くださいmm
697 名前:697 [2007/05/20(日) 04:26:12 ] import java.io.*; public class enshu41b { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int[] a = new int[100]; int count = 0; while(count < a.length) { System.out.print(count + "> "); int v = (new Integer(in.readLine())).intValue(); if(v == 0) { break; } a[count] = v; ++count; } int max = a[0]; int[] mn = new int[100]; mn[0] = 0; int count2 = 0; for(int i = 1; i < count; ++i) { if( a[i] > max ) { max = a[i]; count2 = 0; mn[count2] = i; } if( a[i] == max ) { ++count2; mn[count2] = i; } } for(int i = 0; i <= count2; ++i) { System.out.println(mn[i]); } } }
698 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 06:03:42 ] >>695 jUSBを自分でwindowsに対応させる。
699 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 06:26:32 ] >>694 これ便利だな はたからthx
700 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 07:25:48 ] >>696 境界条件を頭の中でシミュレート。わかんねーならトレース実行でもしろ。
701 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 08:35:25 ] >>694 1.4でコンパイルするのが目的で1.5以上のコンパイラの機能は使えない 1.4の実行環境をターゲットにして1.5以上でコンパイルするんじゃないから 1.4のコンパイラしかない環境でコンパイルするにはそのオプションは空しい
702 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:17:59 ] ObjectInputStreamのreadObject()でファイルを最後まで読みたいんですがどうもうまくいきません。 whileのところが今のままではjava.lang.Object と int は比較できません。というエラーがでます。 どなたか教えてください。 /**************** ファイルから入力 *****************/ List messages = new ArrayList(); try{ ObjectInputStream ois = new ObjectInputStream( new FileInputStream( file ) ); Object obj; // ファイルの終端に達するまで読み込む while( ( obj = ois.readObject() ) != -1 ){ Map map = (Map) obj; messages.add( map ); } if( ois != null ) ois.close(); } catch( Exception ex ){ ex.printStackTrace(); } finally{ System.out.println( "end input" ); }
703 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:20:04 ] whileの中の-1ってなんだ? 説明できるか?
704 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:24:28 ] とりあえずclose()する前にflush()しとけ
705 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:28:07 ] 教える側も素人かよ^^; >>702 とりあえずJavaDoc嫁。EOFを返すなどと何処に書いてある? 2chを辞書代わりに使うな、むしろ時間の無駄と分かるぞ。
706 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:31:41 ] ObjectInputStreamのAPIドキュメントに >>バイト単位の読み込みでは、バイトが読み込まれたときに -1 が返されます。プリミティブ読み込みでは、EOFException がスローされます。 こういうこと書いてたので-1が返るのかなと思ってました。 それじゃもっとよんでみます
707 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:39:57 ] ああreadObjectはバイト単位でもプリミティブ単位でもないのかごめん
708 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:43:36 ] >>700 どうしてそんな偉そうなんだ?
709 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 11:49:22 ] >>708 逆ギレかよ、わかんねーならそれなりの態度があるだろうに
710 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 13:45:50 ] 2ch向いてねえな
711 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 16:04:19 ] 無職乙
712 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:22:35 ] 年数を入力して、うるう年と一般の年を判別後、月を入力して、 その月が何日あるかについてのプログラムを組んでみたのですが、 コンパイル問題が未解決です。 構文エラーがあります。"}" を挿入して MethodBody を完了してください。 構文エラーがあります。"}" を挿入して ClassBody を完了してください。 と出て実行できません。 最後の『 } 』の数は合っていると思うのですが、何故エラーが出ているのでしょうか?
713 名前:712 mailto:sage [2007/05/20(日) 17:23:51 ] public static void main(String[] args) { BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("今は何年ですか?"); String line=reader.readLine(); int year=Integer.parseInt(line); if(year%4==0) { System.out.println(year +"年ですね。"); System.out.println("今月は何月ですか?"); line=reader.readLine(); int month=Integer.parseInt(line); if(month==2){ System.out.println("2月の日数は28日です"); }else if(month==4 || month==6 || month==9 || month==11){ System.out.println(month +"月の日数は30日です"); }else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){ System.out.println(month +"月の日数は31日です"); }else{ System.out.println("月数の範囲を超えています");} }
714 名前:712 mailto:sage [2007/05/20(日) 17:24:33 ] else if(year%4!=0) { System.out.println(year +"年ですね。うるう年です。"); System.out.println("今月は何月ですか?"); line=reader.readLine(); int month2=Integer.parseInt(line); if(month2==2){ System.out.println("2月の日数は29日です"); }else if(month2==4 || month2==6 || month2==9 || month2==11){ System.out.println(month2 +"月の日数は30日です"); }else if(month2==1 || month2==3 || month2==5 || month2==7 || month2==8 || month2==10 || month2==12){ System.out.println(month2 +"月の日数は31日です"); }else{ System.out.println("月数の範囲を超えています");} } }catch(IOException e){ System.out.println(e); }catch(NumberFormatException e){ System.out.println("月に入力できる数は1〜12の実数です");} } } }
715 名前:712 mailto:sage [2007/05/20(日) 17:26:50 ] 開発環境はEclipsです
716 名前:712 mailto:sage [2007/05/20(日) 17:58:54 ] あれ?なんだかよく分からないうちに自己解決しました。 何が問題だったんだろう……
717 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:23:19 ] つ保存していない つ余計な括弧がある つ右クリック ⇒ ソース ⇒ フォーマット
718 名前:デフォルトの名無しさん [2007/05/20(日) 19:32:20 ] 宿題があるんですけど教えてください。
719 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:36:31 ] >>718 スレ違い ★★ Java の宿題ここで答えます Part 61 ★★ pc11.2ch.net/test/read.cgi/tech/1179168569/
720 名前:デフォルトの名無しさん [2007/05/20(日) 22:51:05 ] スタンドアロンプログラムをWindows上で動かし、 フォルダを指定しエクスプローラを開く、 といった処理をしたいんですが、なかなか情報が見つかりません。 なにか良い方法があれば教えてください。 ちなみにGUIはSWTを使用し作成しています。
721 名前:デフォルトの名無しさん [2007/05/20(日) 23:25:16 ] >>720 質問が良くわからないんだけどSWTでエクスプローラーを作ったって事? 他にGUIが見当たらないんだが・・・。
722 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:42:14 ] >>720 Runtime.exec(String command) どう開くかは適当に。 cmd /c start ...... とか support.microsoft.com/kb/152457/ja?FR=1&PA=1&SD=HSCH とか ところで >>603-608 のながれと関係あるの?
723 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:52:30 ] javaやってる人ってオブジェクトとインスタンスって混ざって言ってるような きがする、なんか違いあるの?
724 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 01:32:36 ] クラス + インスタンス = オブジェクト
725 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 06:13:54 ] オブジェクトという名前の基底クラスがあるから紛らわしい
726 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 11:47:38 ] テキストファイルの内容の一部だけ削除したいんですけど 一回全部よみこむ→該当部分削除→書込み直す っていう方法は思いついたんですけど、 効率悪い気がするんですが、ほかにいい方法ってないですか?
727 名前:デフォルトの名無しさん [2007/05/21(月) 12:08:54 ] ResultSet型のオブジェクトに代入されている結果セットのレコード数を知りたいんですが、何かいいメソッドって用意されていますか?
728 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 12:19:33 ] いまこのページ(↓)を読んでパッケージについて勉強してました。 ttp://www.ytp.ne.jp/tech/java/sineruka/classpathhowto.html このページで言うところの C:\Source\Java\test\HelloWorld2.class に対して C:\Source\Java\test>java HelloWorld2 と実行するのと C:\Source\Java\test>java test.HelloWorld2 と実行するので結果に差がある(前者はエラーになる)ことは確認しましたが、 いまいち納得ができません。 ディレクトリ直下のHelloWorld2.classを直接指定するのと CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで 何が変わってくるのでしょうか?
729 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:04:27 ] >>728 javaコマンドの引数に指定するのは、ファイル名ではなく パッケージ名を含むクラス名(FQCN:完全修飾クラス名)であることに注意。 ”java HelloWorld2”のコマンドは、 HelloWorld2.classを参照するよう指定しているのではなく、 クラスパスからHelloWorld2というFQCNのクラスを見つけて、 それを実行するよう指定している。 この場合、HelloWorld2のFQCNはtest.HelloWorld2なので、 該当するクラスがクラスパスにないためNoClassDefFoundErrorになる。
730 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:13:53 ] >>728 補足。パッケージ名はclassファイル自体に埋め込まれるので、 HelloWorld2.classをC:\Source\javaに移動しても、 HelloWorld2のパッケージを移動したことにはならない。
731 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:53:20 ] >>727 おまえはおれか
732 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:25:56 ] まず訂正を。自分の書き込みを見てびっくりしたのですが、 >ディレクトリ直下のHelloWorld2.classを直接指定するのと >CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで の2行目は\test\HelloWorld2.classのミスタイプです。 >>729 回答ありがとうございます。 .classファイルを探すのではなく、FQCNでクラスを探しに行くから test.HelloWorld2は存在するけれどHelloWorld2なんていう物は 存在しないという事ですね。 >パッケージ名はclassファイル自体に埋め込まれるので、 >HelloWorld2.classをC:\Source\javaに移動しても、 >HelloWorld2のパッケージを移動したことにはならない。 これについてですが、試しにソースはいじらずに.javaファイルを C:\Source\Javaへ移動し、Message→HelloWorld2の順にコンパイルしたところ、 Messageはコンパイルできたものの、HelloWorld2はパッケージotamesiが 見つけられずにコンパイルできませんでした。 また、普通にコンパイルしたHelloWorld2.classをC:\Source\Javaに移動して java test.HelloWorld2 してみたら Exception in thread "main" java.lang.NoClassDefFoundError: test/HelloWorld2 が出てしまいました。 「パッケージを移動したことにはならない」というのは 「単純にフォルダ移動してもパッケージ情報(?)は変わらないから パッケージと同名のフォルダに入れておかなければならない」 という意味でしょうか?
733 名前:728 mailto:sage [2007/05/21(月) 14:28:00 ] 名前入れ忘れ。。。 >>732 は>>728 です。
734 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:53:29 ] >>732 そういう意味でおk
735 名前:デフォルトの名無しさん [2007/05/21(月) 15:33:15 ] >>731 結局API読みまくった結果、ResultSetを直でいじくりまわすのはやめて、 内部クラス作ってそれのpublic変数に結果セットの最終行までResultSet.getStringしてって ArrayListのオブジェクトにつっこんでArrayListのオブジェクト.size()しました。 配列のサイズきめたくて結果セットの行数しりたかったんですけど、配列作るよりArrayListつかったほうが何かすっきりしました
736 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:14:08 ] >>732 合ってるがもっと単純明解な前提条件があるぞ。 フォルダの移動はOSのオペレーション、パッケージの指定はjavaの仕様。 根本的、本質的にもこの二つはまったくの別物。 くっつけて考えてしまうならそこが"間違えて分からなくなってる"部分だ。 まずは問題の切り離しからだな。
737 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:52:51 ] ネットワーク越し(現在使用しているのはRMI)にIterator的なオブジェクトを 渡して受け取り側が辿れるようにするには、各メソッド内で通信するよう自前で作るしかないのでしょうか。
738 名前:デフォルトの名無しさん [2007/05/21(月) 22:04:02 ] Byte a[]={0,0,0,1}; をa[0]〜a[3]のバイト列をもつint型に変換する方法教えてください。
739 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:11:55 ] a[0]<<24|a[1]<<16|a[2]<<8|a[3]
740 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:24:35 ] すまんすまん a[0]<<24|a[1]<<16&0xff0000|a[2]<<8&0xff00|a[3]&0xff こうだ
741 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:36:31 ] >>738 new DataInputStream(new java.io.ByteArrayInputStream(a)).readInt(); java.nio.ByteBuffer.wrap(a).getInt();
742 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:58:25 ] >>727 適当なトランザクションレベルで select count(適当なカラム) from テーブル という SQL を発行すればいいよ。リソースを消費を気にしないなら count(*) でも可。
743 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:10:41 ] >>735 対策まで一緒だな おまえはおれか
744 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:13:21 ] >>737 質問の意図が良く分からんけど org.JSON とか使うと解決するかもね
745 名前:デフォルトの名無しさん [2007/05/22(火) 00:55:41 ] サーブレットでsubmitやセッションしたりしないでその画面のままテキストフォームから入力された値を取る方法ってありますか?
746 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:14:01 ] セッション関係無くね?
747 名前:720 [2007/05/22(火) 01:24:15 ] ご回答してくれた方ありがとうございました。 >>721 自分で作ったGUIからWindowsのエクスプローラを呼ぶには? という質問でした。 結局JNI経由でWINAPIのShellExecuteを呼び出す形式で解決しました。 Webしかやったことない自分としては GUIは妙に難しく感じます^^
748 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:25:57 ] JavaScriptを使えばいい フォームの入力チェックにも使われている あー仕事がほしいー
749 名前:720 [2007/05/22(火) 01:29:44 ] >>745 Submitしないという時点でクライアント側の処理になります。 サーブレットでの処理は無理です。 Javascriptが一番手っ取り早いのでは?
750 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:46:17 ] >>745 言葉が意味わからんがsubmitなしではservletに渡すことは普通は無理 XMLHttpRequestを使えばできる(ブラウザー依存) いわゆるAJAXだな
751 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 02:49:06 ] >>745 Ajax GWT
752 名前:デフォルトの名無しさん [2007/05/22(火) 05:56:30 ] >>727 実は最初はそうしてたんですが、レコード数が膨大でcount(*)のリソースがどうしても気になって気になって、今の方法にしました。 >>743 もうステップ数を気にする時代ではないような気がしたので、リソースとのバランスを見ても、この方法がやはりベストなのかなと。 贅沢を言わせてもらうと>>727 を読んだ時点で教えてもらいたかったです・・・
753 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 06:11:20 ] >>752 ごめん ほぼ同じペースで同じことやってるみたいなのでw 当初は ArrayList へ移し替えやってたんだけど いろいろ事情があって 結局いまは ArrayList はやめて JSONArray に変更したんだけど 標準のコンテナ(Hash Map など)よりも意外と便利で病みつきになりそう
754 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 10:12:13 ] >>744 ありがとうございます。 質問の意図が分かりづらかったようですみません。 ネットワーク越しにリストとなるデータを転送する際、コレクションや配列をそのまま渡すと データが大量だった時にメモリを圧迫する可能性があるため、一気に渡すのではなく 少しずつ渡す必要があります。 そうするとIteratorのようなインタフェースから少しずつ取得できると理想ですから、 現在の私の状況であれば RMI 通信を隠蔽した Iterator 実装があると理想だったのですが、 見つけられなかったため質問しておりました。 JSONライブラリがこの背景と合っていたか不明ですが、少々調べてみます。
755 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:48:01 ] >>754 その渡そうとしているデータは、まさかDBからのクエリ結果だったりはしないよね?
756 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:07:53 ] なんでSunの命名規約はパッケージ名を全て小文字にすることになっているんですか? longpackagenameのように長いと読みにくいです。 LongPackageNameの方がいいと思うのですが。 …とうちのリーダー(Java未経験)が仰ります。 どうすればいいでしょうか?
757 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:29:05 ] >>756 long_package_name にするとか……
758 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:38:23 ] 大文字と小文字を区別する環境にも、そうでない環境にも同じように対応するためじゃね? ディレクトリ名がHogeとhoge両方作れてしまうOSとか。
759 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:49:23 ] >>756 どうぞご自由に。 それは厳密に規定された規約というよりガイドラインのはずです。 名前の衝突回避と読みやすさのために用意されています。 外部に公開するライブラリとかには止めた方がいいと思いますが 閉じたアプリケーションで、利用する分には害がないと思います。 が、自分の経験だけに基づいてプロジェクトに他の言語の流儀を持ち込むと 利用しているライブラリ等とずれるので、かえって汚くなってしまう可能性もあります。 In Rome, do as the Romans' do.
760 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:49:58 ] >>755 いえ、Iteratorの開放がリソースを制御していることはありません。 外部ライブラリですが、外部ライブラリがそのまま持ってしまっていると言う 事もないようです。
761 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:07:45 ] >>759 いまは仕様じゃなかったか? ファイルシステムの都合で利用できない文字を含む場合はUnicodeエスケープしろって書いてなかった? 昔はクラス名もパッケージ名も単語の頭は大文字を推奨してたけどすぐ変わったよ。
762 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 02:03:44 ] www.itmedia.co.jp/enterprise/articles/0608/25/news010_3.html {"ResultSet": {"type":"web", "totalResultsAvailable":242000000, "totalResultsReturned":3, "firstResultPosition":1, …略…, "Result":[ {"Title":"Apple", "Summary":"Macintosh hardware, software, and Internet tools. Offering Quicktime info, developer resources, and other items related to Apple computers.", "Url":"http:\/\/www.apple.com\/", …略… }, {"Title"、"Summary"、など次の結果…}, …略… } }
763 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 02:14:56 ] Eclipse使っている方いますか?
764 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 03:39:32 ] むしろEclipseでないと無理。
765 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 03:56:02 ] swingで一番上のJFrameでKeyEventを取ろうとしてもうまく取れません。 簡単なtoy programだとうまくいくのですが、panelをいくつか入れ子にしたものだと上手くいかない。 なにか理由が考えられるでしょうか? できればそこら辺を判り易く詳しく解説してあるサイトでも 教えていただければ幸いです。 あと、panelの上手な入れ子の仕方などの解説もあればうれしいです。 (ちゃんと表示されないこともあるので・・・)
766 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 04:15:33 ] >>765 その入れ子にしてるコンポーネント階層とどういう実装してるか言わないと分かる訳ないだろう。 描画に関しては重量と軽量を混ぜてて軽量が正しく描画されないって話じゃなければ描画を破壊してるだけ。
767 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 04:36:38 ] >>765 とりあえず>>403 以降のやりとり見てみそ
768 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 10:02:04 ] JTextPaneの幅や行数を指定するにはどうすればいいですか。 JTextAreaでは一部の文字色変更などができなかった為に乗り換えました。
769 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 10:08:39 ] >>768 JTextPane では文字の大きさが変えられたりするから 列数とか行数ってのは意味無いんじゃないかと。
770 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 12:03:00 ] なるほど、気がつきませんでした。 文字数で指定しても意味がありませんね。 私のプログラムは文字サイズが一意なので、JTextPane#setSize(int width, int height) メソッドを使えばよさそうですが、うまくいきませんでした。 サイズを指定しても反映されません。 GridBagLayoutを使っているのでこれが原因かと思い、他のレイアウト ―FlowLayoutを試してみましたが、同じくダメでした。 JTextPaneの大きさを指定するにはどうすればよいでしょうか。
771 名前:770 mailto:sage [2007/05/23(水) 12:19:07 ] 解決しました。 JComponent.setPreferredSize(Dimension preferredSize)メソッドが期待通りの動作をしました。
772 名前:デフォルトの名無しさん [2007/05/23(水) 12:29:39 ] インスタンスメソッドとクラス(静的)メソッドの使い分けがよくわかりません>< 一言でいうと、どういうケースで使い分ければいいのでしょう? インスタンス化の手間を考えなければ、 全部インスタンスメソッドでいいのでは?とか思ってる状態です。
773 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:10:10 ] Eclipseのインストール時に書込みエラーと警告が出てしまうのですが、 どなたか解決方法を教えていただけないでしょうか?
774 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:38:15 ] >>772 使い分けというか、具体的にどういう場面(ソース)でそう思ったとかを書いておくれ >>773 PC初心者板へどうぞ
775 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:08:28 ] RMIサーバを立ち上げ、普通にリモートメソッド呼び出しが可能な状態となるのですが、 RMIサーバをそのまま放っておくと数分後に以下のようなエラーが出てサーバが終了します。 java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is: java.net.ConnectException: Connection refused 数分後という原因がよく分かりません。何かのデフォルトのパラメータか何かに依存しているのでしょうか? なお、RMIサーバを起動するのが Linux, Windows ともに発生していますので、 Windows独自のファイアウォールなどとも違うように思います。
776 名前:775 mailto:sage [2007/05/23(水) 16:22:21 ] 計測したところ1分で落ちてしまうようです。 ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/rmi/sunrmiproperties.html を見るとデフォルト値が1分なのは sun.rmi.transport.tcp.handshakeTimeout ですが、クライアント側の設定のようですし、この値を設定してみても やはり1分で落ちてしまいます。
777 名前:775 mailto:sage [2007/05/23(水) 16:30:22 ] 自己解決しました。恐らくGCで削除されてしまっていたようです。 参照を持たせていたつもりが実は出来ていませんでした。
778 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:13:04 ] 配列に10種類の文字を入れておいてランダムに3つ取り出したいです ダブらないようにそういう制御させるにはどうしたらいいですか エロい人教えてくださいorz
779 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:14:43 ] 色んなやりかたがあるけど ランダムにシャッフルして 先頭の3つ取り出すとかどう?
780 名前:778 mailto:sage [2007/05/23(水) 19:16:20 ] あぁ!!そういうやり方もあるんですね でもどうランダムにシャッフルするのかわからないです・・・'A`
781 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:22:24 ] >>780 blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AE%E3%82%AF%E3%82%A4%E3%82%BA_4_again_%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AE%E3%82%AF%E3%82%A4%E3%82%BA_4_%E5%9B%9E%E7%AD%94%E7%B7%A8_%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB
782 名前:デフォルトの名無しさん [2007/05/23(水) 20:23:40 ] Runtime.exec()を使って他マシンのプロセスを生成する方法を教えてください。
783 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:00:32 ] >>772 全部クラスメソッドにしようとしているなら考え直せとアドバイスするところだが、 全部インスタンスメソッドになるのは、クラスメソッドの必要性が出てくるまでは 放っておいてもいいんじゃないか。
784 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:53:15 ] >>772 783の言うとおりだな。 全部インスタンスメソッドで、ほとんどの場合は問題ない。 インスタンス生成のコストがって言うアホがいたら、何回作れば0.1秒?と聞いてやれ。 クラスメソッドにする必要性があるケース。 そうだなぁ、基本ライブラリで言えばインスタンス生成系かね。 Integer.parseInt()とかCalendar.getInstance()とか。 後はユーティリティ系、Math.max() とか
785 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:38:03 ] >>772 思いがけない仕様変更があったとき、 インスタンス生成の手間を惜しまずインスタンスメソッドにしておけば良かった、 と悔やむことはある。 逆は無い。
786 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 07:39:33 ] 漢字のJISコードをとるにはどうすればいいのでしょう? getBytes("JIS")とかして取得すると 半角英数などは ttp://ash.jp/code/ にあるようなコードがとれるんだけど 漢字だとマイナスの数値が取れたりしてうまくいかないんだけど・・・ どなたかご教授を
787 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:19:15 ] >>786 「JISコード」とは何? 区点コードのこと? ISO-2022-JP や Shift_JIS や EUC-JP での値?
788 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:24:04 ] 質問です。 class hogelist { hogelist(int data) { this.data = data; } public hogelist prev; public hogelist next; public final int data; } listのクラスなのですが、 hogelist(int data) { this.data = data; } の部分はコンストラクタなのでしょうか? 修飾子はいらないのでしょうか?
789 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:27:22 ] >>788 コンストラクタですね。 「class」のところと同じで、パッケージスコープなら public/protected/privateはいらない。
790 名前:デフォルトの名無しさん [2007/05/24(木) 10:00:24 ] package-privateと言って同一パッケージ内からのみ見えるアクセス修飾です。
791 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:28:34 ] >>787 ttp://ash.jp/code/ にあるような T → 54 試 → 3b 6e のような変換がしたいんです。 半角文字は上記のような値が取れるんですが・・・
792 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:29:15 ] >788 クラス名は大文字からはじめておけ。 class Hogelist { Hogelist(int data) { this.data = data; } んで、メソッド名は小文字ではじめる。 こうすれば、コンストラクタとメソッドとを混同しなくて済む。 って昔の人が考えたんですよ。名前の付け方のルール
793 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:38:03 ] >>791 byte[] raw = "試".getBytes("ISO-2022-JP"); してから、raw の先頭に 0x1b があれば先頭3バイト除去、 raw の後ろから3バイト目が 0x1b だったら末尾3バイト除去、 とすれば2バイトだけ残って 0x3b と 0x6e になると思う。 Shift_JIS や EUC-JP の場合は、そのまま raw が2要素の配列になるは ず。
794 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:40:39 ] >漢字だとマイナスの数値が取れたりして >漢字だとマイナスの数値が取れたりして >漢字だとマイナスの数値が取れたりして >漢字だとマイナスの数値が取れたりして
795 名前:デフォルトの名無しさん [2007/05/24(木) 12:02:37 ] ど素人質問ですみません JAVAって機械の制御に使えるんでしょうか
796 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:38:29 ] javaチップって携帯電話に乗ってたっけ?
797 名前:デフォルトの名無しさん [2007/05/24(木) 13:30:39 ] JAVAを使えるマイコンってありますか
798 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:44:41 ] おまえらJavaOne行ってこい
799 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:47:37 ] >>798 今年のJavaOneは もう終わりましたが
800 名前:デフォルトの名無しさん [2007/05/24(木) 18:17:51 ] 質問ッス ResultSet rs=stmt.executeQuery(sql) でResultSetの変数rsにsqlの結果を入れたわけですが、 中の列要素に大きなデータが入ってまして、あふれた分を切られてたわけです。 これは、どうやって解決すればいいんでしょうか?
801 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:48:17 ] 具体的にどの型のデータなの?
802 名前:800 [2007/05/24(木) 18:54:37 ] String型です。最高で500文字はあるみたいで・・・
803 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:13:43 ] >>798-799 半年ROMってから行ってくる
804 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 20:31:31 ] >>802 いや、DBの種類とカラムの方の型が問題なんだと思われ。
805 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:00:31 ] arraylistについて初心者でも分かりやすく 学べる解説サイトや本はないでしょうか? 知識としてはやさしいjavaを終わらせたレベルです。
806 名前:800 mailto:sage [2007/05/24(木) 21:34:16 ] >>804 今はJDBC-ODBCブリッジ使って、TextDriverに接続してます。 データはCSVに格納している状態です。 で、解決策がひとつ見つかりました。 StatementのsetMaxFieldSize()メソッドを使えば・・・となってたんですが、 エラーが出て使えません。 もう、どうしたらいいんでしょうか。
807 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:29:49 ] >>805 どこも一緒。 てか、やさしいJava読み終えるレベルってArrayListの解説すら読めないレベルなの? そうだとしたら、別の入門書やった方がいいんじゃね?
808 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:38:12 ] >>807 言い方が悪かったっす。 ArrayListというのが問題で急に出てきたんですが、 勉強するためによい参考書はないでしょうか?という意味です。 コンピュータ言語知識はJavaが初です。
809 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:44:52 ] >>808 java.sun.com/j2se/1.5.0/ja/docs/ja/
810 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:51:45 ] Introspectorについて詳しく書かれてるサイトか本はありますかね?
811 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:15:01 ] >>810 調べちゃいないが IBM の デベロッパワークスあたりにありそうな気もするが。 www-06.ibm.com/jp/developerworks/java/
812 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:18:00 ] >>810 基本だと思うけどbeansの仕様 java.sun.com/products/javabeans/docs/spec.html
813 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:21:40 ] >>808 ttp://d.hatena.ne.jp/Strada/20070226
814 名前:デフォルトの名無しさん [2007/05/24(木) 23:22:59 ] JDBCについて質問です。 ResultSet rs = stmt.executeQuery(sql); としてデータベースのでーたをrsに格納した後で、 while(rs.next()){ で上から1行ずつデータを読んでいきます。 これって同じ行をもう一度読み込んだり、 途中でもう一回最初から読んだりってできるんですか? 一回 rs.close(); してからもう一度 rs.next(); を書いてみたのですがうまくいかなくて。
815 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:35:28 ] >>812 基本なのですか・・・。 でも、全然そういったことを詳しく書いてるサイトや本がないのです。 あっても英語の本ばかりで。
816 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:39:04 ] >>813 ありがとうございます。
817 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:45:12 ] >>814 rs.relative(-1); とか試してみたら? closeはrsを使わなくなってからするもの。
818 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:47:47 ] >>814 Statement を作る際、引数を持つ Connection#createStatement() の第1引数に ResultSet.TYPE_SCROLL_SENSITIVE とかを与えれていれば、 ResultSet#next() だけでなく ResultSet#previous() や ResultSet#first() や ResultSet#relative() が使えるようになる可能性がある。 でも、JDBC ドライバが対応していないこともある。
819 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:52:34 ] >>807 やさしいjavaは確かに読めんな。三版持ってるが、C++との共通項くらいしか書かれてない。
820 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 02:54:27 ] >>814 DBのカーソル作成モードを変えると レスポンスが急激に悪くなることがあるし >>818 さんが言うように互換性も無くなる 一旦自前のArrayListを構築しなおすなどしてから 操作してもいいと思う でも一回最後まで読むから無駄が増えて やっぱりレスポンスは落ちるかも 読みながらArrayListにも入れていって 戻るときはそっちを見るとか工夫してくれ
821 名前:デフォルトの名無しさん [2007/05/25(金) 09:49:50 ] Java の GUI プログラムで、アイドル状態になったときの イベントを受け取ることはできないかな。 MFC でいう CWinApp::OnIdle みたいなの。
822 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 10:42:17 ] Idle状態ってなに?Focusを失ったとき?それならあるよ
823 名前:デフォルトの名無しさん [2007/05/25(金) 11:05:23 ] そうじゃなくて、他に処理すべきイベントがなくなったとき。
824 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 13:41:11 ] 面倒くさいから処理させたいものをプライオリティ最低のスレッドで動かしちゃえ
825 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:07:10 ] >>821 使ってるEventQueueでpeekEvent()がnullの時にアイドル時処理をするスレッドを使う。
826 名前:デフォルトの名無しさん [2007/05/25(金) 17:14:14 ] 文字列を指定した桁数ごとの文字列にして配列で返すみたいなことがやりたいです。 "aaabbbccc"を3桁って指定して["aaa","bbb","ccc"]みたいな。 forでがんばるしかない?
827 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:19:08 ] whileとsubstrでがんばるのはどうかな?
828 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:24:43 ] String s = "aaabbbccc"; String[] l = s.split("...");
829 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:31:45 ] >>828 思いつきは悪くないけどそれは正しく動かない。 >>826 for (String s : "aaabbbcccd".split("(?<=\\G...)")) System.out.println(s); でも、正規表現でアクロバティックなコードを書くのはお遊びとしては楽しいけれど、 >>827 のいうようにsubstringで分けたほうが分かりやすいし正道だと思う。
830 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:39:08 ] >>826 ほい。 余剰文字列は切り捨てられるので、それが嫌なら改造してね。 public String[] splitter( String in, int len ) { String[] al = new String[ in.length()/len ]; int index = 0; while ( in.length()>0 ) { al[index] = in.substring(0,len); in = in.substring(len); ++index; } return al; }
831 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:45:38 ] もし切り分ける長さを整数変数lenに入れてるなら、 "aaabbbcccd".split("(?<=\\G" + ".{" + len + "})") みたく。
832 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 18:15:15 ] >>829 ,>>831 だと改行文字でマッチングが途切れるので、 改行文字も一文字とするなら、 "aaabbbc\nccd".split("(?s)(?<=\\G" + ".{" + len + "})") こんな感じで。 >>830 元文字列のインスタンスを順次新規に作成するくらいなら、 int m = (in.length() - 1) / len; String[] al = new String[m + 1]; int i = 0; while (i < m) { al[i] = in.substring(i * len, (i + 1) * len); i++; } al[i] = in.substring(i * len); return al; とか。
833 名前:デフォルトの名無しさん [2007/05/25(金) 20:43:54 ] 任意の2つの座標を結ぶ線の太さを変えたいのですが、どのようにすればよいのですか?
834 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 20:55:40 ] plot 1 lw 1, 2 lw 2, 3 lw 3, 4 lw 4, 5 lw 5, 6 lw 6
835 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 23:27:53 ] >>833 ((Graphics2D)g).setStroke(new BasicStroke(10)); g.drawLine(0, 0, 100, 100);
836 名前:デフォルトの名無しさん [2007/05/25(金) 23:58:27 ] Javaでウィンドウズのペイントソフトのようなアプリを作りたいと考えています。 (マウスのドラッグ&ドロップでフリーハンドに線を引いたりできるソフト) 参考になるお勧めのサイトまたは本を知っている方がいたら教えてください。 あと、Javaは一つのアプリで複数のウィンドウを開くことはできますか?
837 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 00:08:32 ] SWTとかのVisualEditorってもう開発してないの? 最後のリリースが1年くらい前… CUIでJavaペコペコするのもマンネリしてきたからGUIもいじってみたい今日この頃 ちなみにJava暦1月位
838 名前:デフォルトの名無しさん [2007/05/26(土) 00:25:20 ] 質問です。 classファイルを元のソースファイルに戻すことはできるのですか?
839 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 00:32:37 ] >>838 できるけど自分でできないなら諦めましょう。 定期的にコピペしたかのように来るなコレ。
840 名前:デフォルトの名無しさん [2007/05/26(土) 00:47:13 ] >>835 すみません、Graphic2DクラスではなくてGraphicクラスで太さを変えることはできないのでしょうか?
841 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:16:37 ] >>839 ほんと、定期的にコピペしたかのように来るなコレ。 >>838 ぐぐればよかろう。 過去ログ。 pc11.2ch.net/test/read.cgi/tech/1171787388/310 dat落ちしてるだろうからコピペしといたるわ。 −−−− public class Quine { public static void main(String[] args) { char c=34; System.out.println(s+c+s+c+';'+'}'); } static String s ="public class Quine { public static void main(String[] args) { char c=34;System.out.println(s+c+s+c+';'+'}');}static String s="; } まず上記をQuine.javaという名前のjavaファイルにする。 そしてjavaファイルをコンパイルしてできたクラスファイルを java Quine.java で実行。 そうすると元のjavaファイルとほぼ同じものが得られる。 もっと完全に元のjavaファイルに戻したければQuine.javaを1行で書く。 (2ちゃんの書き込み制限があるから上では適宜改行した) −−−− だぜ? まあ、マジレスすると、できる。だけど、自分でできないなら諦めましょう。
842 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 04:55:36 ] RMIサーバを作り、サーバ上にあるファイルをストリーム経由でダウンロードさせる、 という場合、返す InputStream はどのようにすればいいのでしょうか? (標準クラスでは無理なのでしょうか?) InputStream 派生で標準クラスにあるもの、たとえば FileInputStream などは Serializable でないため、そのまま返すとエラーになります。 拡張して Serializable をつけても(当たり前なのですが) 引数なしのコンストラクタを持たないので、実行時にエラーとなります。 説明が難しいのですが、具体的にやりたいことは、 RMI サーバ ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29407 RMI クライアント ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29408 にて、RMI サーバの一番下、getFile メソッドで開いている FileInputStream 相当を クライアントに返し、クライアントは read していける、という状態です。
843 名前:学生 [2007/05/26(土) 10:32:23 ] 今、プログラミングの勉強をしてるんですが、 この問題が分かりません。 教えてくださいm(__)m フィボナッチ数列の初項から第50項までを表示するプログラムを作成せよ。 0,1,1,2,3,5,8,13,…… 初項 F(1)=0 第2項 F(2)=1 第n項 F(n)=F(n-1)+F(n-2) ただし、n>2
844 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 10:33:44 ] テンプレ埋めとけ
845 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 10:55:04 ] つーかフィボナッチ数列がわかってないだけだろ。ググれ。
846 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 10:57:58 ] >>843 学生なら図書館に行って 『JAVAプログラムクイックリファレンス(オライリー・ジャパン)』 って本を借りてきな。まんま解答載ってるよ。
847 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 12:20:17 ] java.sun.com/javase/ja/6/download.html にて、JDK 6u1をダウンロードしてインストールしたいのですが、 Notice: We're Offline for System Upgrades とでてダウンロードできません。これはこちらの環境が悪いのでしょうか・・・?
848 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 12:31:16 ] classの中にもう1つclassを作るのと、 classの外にもう1つclassを作る違いがわかんね ややこしさからして後者の方が良い気がするが、どなたか軽く教えてくだされ >>847 翻訳するまでもないと思うけど、もう1度文章全部読んでみて下さい
849 名前:848 mailto:sage [2007/05/26(土) 12:36:46 ] あー俺アホだ、自己解決しました
850 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 12:39:14 ] >>843 ほい。 public class fibo { public static void main(String[] args) { fibo t = new fibo(); } private static int MAX_COUNT = 50; public fibo() { long i=0, j=1, k=0; int count=0; System.out.print(i+","+j+","); for ( ; count<MAX_COUNT; ++count ) { k = i + j; System.out.print(k+","); i = j; j = k; } } }
851 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 12:48:31 ] ソース渡すってのは宿題スレじゃないのか
852 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 13:34:46 ] >>848 なるほど、そういう事なんですね。 解消されるまで待つしかないと・・・
853 名前:842 mailto:sage [2007/05/26(土) 14:41:59 ] >>851 自分のことですかね。すみません。宿題スレで聞いてみます。
854 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 14:48:45 ] >>853 まてまて >>850 で答えが貼られているぞ
855 名前:デフォルトの名無しさん [2007/05/26(土) 14:57:41 ] 猛烈に初心者ですが、よろしくお願いします。 ページが読み込まれたら行かせたい場所に飛ばすのは、 ↓で良いそうなんですが、 こんな感じで読み込まれて10秒後に飛ばすようにするのはどうすればいいですか? <script language="javascript"> <!-- var doit=true; function exit(){ if (doit) open("行かせたい場所アドレス") } // --> </script> <body onload="exit()">
856 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 14:58:38 ] 板ちがい Javaですらない
857 名前:855 mailto:sage [2007/05/26(土) 15:10:49 ] javascriptってあるからjavaすれでいいのかと思って書き込んじゃいました ごめんなさい。
858 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 15:19:04 ] ServletRequestの属性値はSerializableである必要はありますか? セッションでないのでレプリケーションは関係ないですよね?
859 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 15:19:09 ] わざとだろ 釣りだろ?
860 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 16:34:22 ] >>848 >classの中にもう1つclassを作るのと、 >classの外にもう1つclassを作る違いがわかんね (1) static でないインナークラスの場合 class A { class B { A のインスタンス a の中でのみ B のインスタンス b を作れるが、 内側の b から外側の a を参照することが可能。 class A { void doA() { B b = new B(); } // OK static void doA() { B b = new B(); } // NG int field; class B { int doB() { return A.this.field; } // OK, 名前の衝突がない限り、"A.this" は不要 (2) static なインナークラスの場合 class A { static class B { はっきり言って別々のクラスとかわんね
861 名前:842 mailto:sage [2007/05/26(土) 18:05:52 ] >>854 むむ、これは>>843 さんへの答えですよね。 >>851 が私への指摘と勘違いしました…
862 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:20:59 ] Javaで作られたアプリケーションは、JREなしで実行することはできませんか?
863 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:29:33 ] gcj まあ、libgcj.dllがJREだとでもいえるけど
864 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:31:54 ] >>862 基本的に無理。応用的には標準JDK 使わずに gcj とか Excelsior JET みたいな AOTコンパイラを使えばできるけど、実行ファイルのサイズはでかくなる。
865 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 22:16:14 ] >>863 ,864 そうですか。まぁそのためにはCや何かで書くしかありませんよね。ありがとうございました。
866 名前:デフォルトの名無しさん [2007/05/26(土) 22:33:44 ] java.sun.com/j2se/1.5.0/ja/download.html でJDK 5 をダウンロードしようとしたら「Fatal Error」と出てダウンロードできません。 他にダウンロードできるサイトとか知りませんか?
867 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 22:37:35 ] うちのコピーしてく?
868 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 22:40:16 ] JREを埋め込んでexeつくるソフトって知ってますか?
869 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 23:01:27 ] >>868 JETとかgcjとかじゃなくてSunのJREをうんぬんするやつは知らない。 でも環境をWindows固定にするならEXEにこだわるより、Windowsの流儀でJREを インストールしたりスタートメニューやデスクトップに起動用のアイコン登録 したりするインストーラーを作った方がユーザにやさしいんじゃないかと思う。 おれはこの手のパッケージャとしてNSISを使ってる。 そうじゃなくてAOTに幻想を抱いているならあきらめたほうがいい。以前 gcj以外のIBMやJETといった商用AOTのベンチマークとったけど速度的なメリットはない。
870 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 23:29:39 ] JDKがダウンロード出来ないのですが、これは最近ずっとなのでしょうか?
871 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:04:05 ] 明らかにトラブってるな ubuntuとかならパッケージであるが、他はわからん
872 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:17:46 ] 俺は今朝JDK 6u1をダウンロードしたところ。 俺の「最近ずっと」の定義(一日以上)からすると最近ずっとではない。 けど、今見たら確かに FATAL ERRORとか出てるね。 1.4.2u14/1.5.0u11/6u1のwindows-i586-pなら持ってるけど、 再配布っていいんだっけ?
873 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:25:30 ] 6なら大丈夫だと思うが、確認方法がわからん
874 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:44:38 ] >>873 java.sun.com/javase/faqs.jsp#Licensing Redistribution: Both the JDK and JRE can be freely redistributed with value-add (per terms of the BCL).
875 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 06:37:29 ] あまりこの状況が続くとJREにウィルス組み込まれて再配布されそうだな
876 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:53:13 ] ダウンロード出来ねぇ・・・orz
877 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:57:14 ] 開発環境だけってならEclipseでも落とせば?
878 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:07:19 ] >>877 特定環境でトラブるからってOSから入れ直したのでJREすらないorz
879 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:11:41 ] >>878 Windows でJava5.0 でいいか?
880 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:14:51 ] >>879 mjd? もちろんok
881 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:23:40 ] >>880 ttp://www10.axfc.net/uploader/11/so/N11_10136.exe.html キーワードは java
882 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:34:21 ] JREならここで落とせるんじゃない? www.java.com/ja/download/
883 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:34:25 ] >>881 神に大感謝
884 名前:デフォルトの名無しさん [2007/05/27(日) 14:50:09 ] d.hatena.ne.jp/kazama/20041207/p1 ここのコードをjavaにしたらどんなふううになりますか?
885 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 15:11:45 ] >>884 エロゲかよw
886 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 15:45:20 ] kzk9.net/blog/2007/01/thread_base_mapreduce.html すまんこっちだ
887 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:21:14 ] 現在のシステム日付を取得して画面表示するにはどういったソースを書けばいい? 誰か教えてください。
888 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:35:53 ] 現在のシステム日時を取得して画面に表示し続けるソース final java.util.Date date = new Date(); while (true) { date.setTime(System.currentTimeMillis()); System.out.println(date); }
889 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:36:55 ] >>888 少しくらい待ってやれよw
890 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:37:36 ] import java.util.Date; import java.text.DateFormat; public class DiplayDate{ public static void main(String[] a){ Date dt = new Date(); DateFormat dfm = DateFormat.getDateTimeInstance(); System.out.println(dfm.format(dt)); } }
891 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:45:05 ] 素数判定プログラムを組んだのですが、エラーが出て動きません。でも、デバッグしてみるとfor文が回っていないようです。どう改善すればよいでしょうか? public static void main(String[] args) { BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); try { System.out.println("数を入力してください"); String line=reader.readLine(); int meth=Integer.parseInt(line); if(meth<=1){ System.out.println("入力された数字"+meth+"は素数ではありません"); }else{ int cnt=0; for (int i=0; i<=meth; i++) { if(meth%i==0) { cnt++; } }
892 名前:891 mailto:sage [2007/05/27(日) 17:45:46 ] if(cnt==2){ System.out.println("入力された数字"+meth+"は素数です"); }else{ System.out.println("入力された数字"+meth+"は素数ではありません"); } } } catch(IOException e){ System.out.println(e); }catch(NumberFormatException e){ System.out.println("数字に入力できるのは実数です"); }
893 名前:デフォルトの名無しさん [2007/05/27(日) 17:48:02 ] JAVAで困っているんですけど… 平均点以下の人の人数ってどうやって出すんですか? public static void main(String[] args) { int Wt[] ={45,59,98,60,78,54,90,30,50,67}; int sum = 0; for (int k=0; k<=9;k++) { sum = sum+Wt[k] ; } int average_Wt = sum/10; System.out.println("平均="+average_Wt); ここまでできたのですが…
894 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:53:26 ] 基準が得られたんだから、もう一回回せばいいじゃない。 あとここは宿題スレじゃないよ。
895 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:53:44 ] >>891 for (int i=0; i<=meth; i++) ↓ for (int i=1; i<=meth; i++)
896 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:54:49 ] >>891 for (int i=1; i<=meth; i++) デバッグする余地も無い
897 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:57:22 ] >>893 念を押しとくがそんなもんで宿題スレになんか行くなよw
898 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:57:44 ] >>894 出来れば1回のループで判断してしまいたいのです
899 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:58:01 ] >>895-896 とんでもない見落としでした。ありがとうございます!
900 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:58:17 ] コンパイル時の「シンボルが見つけられません」っていうエラーはどういう意味ですか?
901 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 17:58:48 ] >>898 むり
902 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:04:26 ] >>900 プログラムに書かれているシンボルをコンパイラが理解できなかった時に出るエラー パッケージ名とかクラス名とかメソッド名とか変数名とかがたぶん間違っている importしていないとか完全名でないとかでクラス名が解決してないんじゃないの? もしくは定義していないクラスや変数を使った
903 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:06:46 ] >>やくざさん 平均を得た後に、得られた平均と各データを比較して "以下"の数をカウントするしかない。一回では無理。 俺が未知の何かを使って実現できたとしても、逆に複雑になる予感。 あとは、配列の中身はともかく1, 0以外の定数は(ry int Wt[] ={45,59,98,60,78,54,90,30,50,67}; int sum = 0; for (int k=Wt.length -1; k>=0; k--) { sum += Wt[k]; } int average_Wt = sum / Wt.length; System.out.println("平均="+average_Wt);
904 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:08:59 ] Bツリーとか構築して 格納しながら平均出してけば ループは1回で済むかもね
905 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 19:03:07 ] >>890 ありがとう import java.util.Date; import java.text.DateFormat; public class DiplayDate{ public static void main(String[] a){ Date dt = new Date(); DateFormat dfm = DateFormat.getDateTimeInstance(); System.out.println(dfm.format(dt)); } } import java.text.DateFormat; をimport java.text.SimpleDateFormat;にしたい場合、ソースは変えればいい?
906 名前:905 mailto:sage [2007/05/27(日) 19:04:37 ] ソースは変えればいい? 訂正 ソースはどう変えればいい?
907 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:02:57 ] >>906 せめて、 SimpleDateFormat dfm = new SimpleDateFormat(); とでも打つってくらいはしろよ。 この手の連中が自分の給料とほとんど大差ない金貰ってると思うと反吐が出る。
908 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:14:39 ] >>906 バカは手と頭を動かさない >>907 厨学生の小遣い程度しかもらってないのか? それはもう転職する!
909 名前:デフォルトの名無しさん [2007/05/27(日) 20:22:46 ] 初心者です。 分岐条件のwhile文あたりまで進んだ者です。 「繰り返し実行する」の条件で i++; を i+2; とかにできないもんでしょうか? 課題で 2 4 6 と表示せよ といった問題がでて困ってます。 どなたか教えてくれないでしょうか?
910 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:26:19 ] 2 足せばいいじゃん。
911 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:35:38 ] 下記の作業で例えば10を入力すれば1〜0までが表示されますよね? この表示結果が縦に1〜0が表示されるのですが、改行せずに横に1〜0までを表示させるためにはどう改善すればいいのでしょうか? try { System.out.println("数を入力してください"); String line=reader.readLine(); int x=Integer.parseInt(line); for(int i=1; i<=x; i++){ System.out.println(i%10);}}
912 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:37:18 ] あえていうならi+=2とかか?
913 名前:909 mailto:sage [2007/05/27(日) 20:37:39 ] >>910 こんな、感じのコード書いてみたんですけど class Kadai01{ public static void main(String[]args){ int i; i=2; while (i<7); System.out.println(i+"回目繰り返す"); i+2; } } i++; を i+2; にしたらコンパイルエラーがでるんですけど。
914 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:38:27 ] println の ln は line の略。 ということは・・・。
915 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:41:30 ] >>914 tnks
916 名前:909 [2007/05/27(日) 20:47:50 ] >>912 ありがとうございました!!!
917 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:48:34 ] >>913 頼むから開発会社に就職はしないでくれよ。 あと1冊くらい簡単な本読んでくれ。 i = i + 2;
918 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:49:02 ] >>913 代入とか演算子とかわかってるか? int a = 1 ; System.out.println(a) ; System.out.println(a+1) ; System.out.println(a) ; System.out.println(a++) ; System.out.println(a) ; ってやってみ
919 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:53:01 ] スレとは関係ないけど素数判定はルートNまででOK
920 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:59:36 ] ルートNまででOKな理由は数学的センスないと解らないから、N/2まででいいと思う。 NがN/2より大きい数で割れないことくらいは解るからw
921 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:39:41 ] >>920 センス要らないだろ、ルートNって…
922 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:52:06 ] >>921 OK,ならば3行で説明してくれ
923 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:56:31 ] Nを合成数と仮定すると、Nは少なくとも約数を2つ以上持つ。 Nの約数を2つ選び、pとqとすると、明らかにp*q <= Nである。 これより、p、qの少なくとも一方はルートNより小さい(大きいと上の不等式が成り立たない)
924 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:05:19 ] 一般人の平均レベルからすると>>923 が言えるのは数学的センスがある方だと思うぜ
925 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:10:02 ] >>923 センスあると思う。
926 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:17:36 ] >>923 いや、手放しで素晴らしいと思う。 でも、そう答えられるのは数学センスだと思われw 数学的センスのない人は、「〜と仮定すると、」から出てこないから。
927 名前:デフォルトの名無しさん [2007/05/27(日) 23:18:38 ] Javaの発音はJava(↓)なんですか?Java(↑)なんですか?
928 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:21:22 ] >>923 の前提って教科書かなんかで見た事あるぞ。
929 名前:デフォルトの名無しさん [2007/05/27(日) 23:23:11 ] >>928 そりゃどこの教科書にも呪文のように載っているし、証明方法なんて一緒だもの。
930 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:25:18 ] >>928 4分でかけるのが素晴らしい
931 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:27:20 ] >>923 合成数24の約数である6と8を考える 6*8 = 42 > 24 となるため、明らかに p*q <= N でない
932 名前:931 mailto:sage [2007/05/27(日) 23:30:17 ] すま、途中送信 つまり、pとqの条件はNの任意の約数じゃなくてp*q = Nとなるような数、ってこと
933 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:33:23 ] ちょっと待てよ。 するってえと約数てのは何なんだ? わからなくなってきた。
934 名前:デフォルトの名無しさん [2007/05/27(日) 23:41:27 ] >>932 いんや、この場合はpとqを約数と限定して問題ない。 何故ならば、合成数と仮定した場合にpとqのどちらもルートN以下の約数であることが証明できればいいから。
935 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:54:04 ] 不備があった N=p*q*r (p,q >= 2, r >= 1) と読み替えてくれ
936 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:55:00 ] つーかスレ違いなのでここまで JDK6u1ほしーよーOTZ
937 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:58:27 ] >>934 本質を読め 約数に限定することが問題なんじゃなくて、任意の約数であることが問題なんだよ それを許すと931のような反例が出る 合成数ならば自身の約数の積として表せる このことをN = p*q (p <= q)とおくと、pが取りうる最大の値はp = qであるようなp このとき N = p*p ⇔ √N = p となり、√Nまで調べれば合成数かどうか判断できる スレ違いなんでここまでに
938 名前:937 mailto:sage [2007/05/27(日) 23:59:45 ] >>937 リロードしろとあれほど(ry
939 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:59:48 ] 同じものを掛けてNになる正数aよりも大きい自然数pでNが割り切れるなら、 q=N/pでもNを割り切ることができ、qはaよりも小さい自然数になる。 つまりNを割り切る自然数は、a以下の自然数の範囲を全て探せば、 aより大きいものはNを探し出したもので割ることで全て得ることができ、 全てを網羅することができる。
940 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:00:46 ] おまいら、やっぱセンスあるって
941 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:01:35 ] それより野球しようぜ
942 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:04:01 ] 扇子と野球でリロード大会スレ。
943 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:05:38 ] >>939 その「同じものを掛けてNになる正数a」こそNの正の平方根 √Nってことか。
944 名前:デフォルトの名無しさん [2007/05/28(月) 00:07:51 ] 誰かセッター/ゲッターを分かりやすく解説して。本読んだけど今一分からん
945 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:12:33 ] 投手の放ったボールを打つのがバッター(打者)。 放たれた飛球を捕ったのは偶々センター(中堅)。
946 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:13:21 ] ボコ ☆ ( o・-・)っ―[] / [ ̄ ̄ ̄] (´・ω・`)>>945
947 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:14:18 ] public byte n; というクラスメンバがあるとする。 これは -128 〜 127 までの値をとるよね? でもそのクラスは実はテストの点数クラスで、 byte を 0 〜 100 の間でしか取れないようにしなくてはいけない。 よって、private byte score; と、アクセスレベルを絞って、 setScoreというセッターで 0 〜 100 までしか、その値をとらないようにする。 ゲッターってのは、一般には単に隠蔽された変数をダイレクトに返すだけ。 getScore() { return score; } こういうのをカプセル化という。ごめん、これが限界w
948 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:23:56 ] ゲッターは隠蔽された変数をそのまま返すとせっかくのカプセル化が破壊される場合があるので注意。 >>947 の場合のような基本型とかイミュータブルな参照型はたぶん大丈夫だが、 そうでない場合は変数そのものではなく、そのコピーを返すようにした方がよい。 でないと、セッターを介しないで隠蔽されたデータを変更できる抜け道を作ることになる。
949 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:39:08 ] たとえプログラムが異常終了しようと、一貫性を守ったまま死ぬぜ! という武士の志のがカプセル化の一面 void setScore(int score) { if(score < 0 || 100 < score) { thorw IllegalArgumentException(); 暴走して一見正しそうな間違った計算結果を出したり データを壊されるよりは、 プログラムが異常終了する方が1000万倍まし
950 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:44:31 ] nullを持ったらおかしいようなクラスで 参照型の変数のセッターではnullだったらnull例外を出す それをしないと全然違うところ(その変数使おうとしたところ)で ぬるぽ起こして死ぬ そしてどこでnullであったかを調べるのが大変
951 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 01:19:22 ] >>944 JavaBeansにはプロパティという概念がある たとえば、PersonというクラスにStringのnameというプロパティがそのクラスにあるとする ここでJavaBeansの約束事として、 nameというプロパティを読み出すのはgetName() 書き込むのはsetName(String value) ということが決まっている だから、setName(String value)がなければ、 リードオンリーのプロパティになる 場合によっては書き込み禁止でエラー出ることもある で、 ゲッターとは値を取得するメソッド(getName)を指し セッターとは値を設定するメソッド(setName(String))を指す
952 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 06:39:41 ] それはbeanプロパティのアクセッサの話だろ。 そんな後付け仕様の事を聞いてるんじゃなくてプログラミング言語一般に通じる ゲッタとセッタの意義がわからないって話じゃね? カプセル化という概念があって自分が持つ情報には外から自由に触らせないためにryって感じに答えた方が良いかと。
953 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 07:23:47 ] >>952 ならお前が(ry …というのは置いておこう。 メソッドにしとけば処理を挟める。するとどうなるか? って視点で考えるといいよ。 …と俺からはこの程度のアドバイスにしておくわ
954 名前:デフォルトの名無しさん [2007/05/28(月) 09:40:24 ] よろしくお願い致します。 アプリケーションサーバーのGlassFishをリモートのLinuxで起動して、 管理画面、Webアプリなどは動作が確認できたのですが、 スタートアップ時に表示される中の Standard JMX Clients (like JConsole) can connect to JMXServiceURL: [service:jmx.rmi://jndi/rmi://www.xxx.com:8686/jmxrmi] として出るURL(service:jmx.....jmxrmi)を指定して、JConsoleでの接続を試 みましたが、 --接続に失敗しました:再試行しますか?-- と出て、これがどうしてもつながりません。 IDとパスワードは、4848ポートの管理画面と同じものを入力しています。 ブラウザから、www.xxx.com:8686/ にアクセスすると白い画面が 出るので、ポートへの接続自体は問題ないと思われます。また、念のため、 こちら側のファイアウォールも切っています。 サーバー: Linux Sun Java System Application Server Platform Edition 9.0 JDK1.6 クライアント: WindowsXP JDK1.6 です。何か、思い当たられることがありましたらご教授頂ければ幸いに思います。
955 名前:954 [2007/05/28(月) 09:59:23 ] 一応、 java.sun.com/j2se/1.5.0/docs/guide/management/faq.html#linux1 も見て、 hostname -iは127.0.0.1ではなく、 また、 /sbin/iptables --listでも ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8686 と表示されております。重ね重ねですみません。
956 名前:デフォルトの名無しさん [2007/05/28(月) 15:40:36 ] <html> 途中省略 <a href="xxxxx">AB1</a> <a href="xxxxx">AB2</a> <a href="xxxxx">AB3</a> </html>
957 名前:デフォルトの名無しさん [2007/05/28(月) 15:45:16 ] す・・・すいません。キーボードがおかしくなってしまって、書きかけが投稿されてしまいました。 <html> 途中省略 <a href="xxxx1">AB1</a> <a href="xxxx2">AB2</a> <a href="xxxx1">AB3</a> </html> というhtmlからAB1の<aタグのリンク("xxxx1" )を取得するにはどうしたらよいでしょうか。 getElementsByTagName("a")で<aタグの列挙はできたのですが、AB1であることを調べる方法がわかりません。
958 名前:デフォルトの名無しさん [2007/05/28(月) 15:52:02 ] 例えば if(time==20){//2秒の時 face._rotation -= 30;//faceの角度を-30 righthand._rotation -= 20;//righthandの角度を-20 lefthand._rotation -= 10;//lefthandの角度を-10 rightfoot._rotation +=5;//rightfootの角度を+5 leftfoot._rotation -=4;//leftfootの角度を-4 というような物をテキストファイルからStringで読み込んだとして rocationの部分だけをrotと書き変えてif(time==20){//2秒の時 face._rot -= 30;//faceの角度を-30 righthand._rot -= 20;//righthandの角度を-20 lefthand._rot -= 10;//lefthandの角度を-10 rightfoot._rot +=5;//rightfootの角度を+5 leftfoot._rot -=4;//leftfootの角度を-4 と出力するようにするにはどうすればよいのでしょうか?
959 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 18:15:19 ] >>958 単純に全てのrotationをrotに置き換えたいのなら 置き換え後文字列 = 置き換え前文字列.replaceAll("rotation", "rot");
960 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 18:30:13 ] >>957 質問がメソッド名だけで情報が少ないから当てずっぽう aエレメントが取れたら、その最初の子ノードがAB1とかAB2とかのテキストノード aElement.getFirstChild()でたぶん取れる そのノードの文字列そのものはNode#getNodeValue()でいけるはず
961 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 19:56:53 ] コマンドプロンプトを開いたらC:\Documents and Settings\〜になっているのですが このデフォルトのパスを変更するにはどうやったらいいんでしょう? javaファイルをCドライブのjavaフォルダに入れていて開くたびにcd C:\javaと打って 毎回変更しているのですが面倒なので開いたらC:\javaの状態になっているようにしたいです。
962 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 20:11:30 ] >>961 コマンドプロンプトのショートカットでC:\javaを作業フォルダに設定して おけばよい。(プロパティのショートカットタブに「作業フォルダ」の欄がある)。 スレちがい、いたちがいだから。これ以上の質問は受け付けません。 >>1 を読め
963 名前:デフォルトの名無しさん [2007/05/28(月) 21:03:55 ] 簡単な質問です。java初心者なのでお許しを。 javaを開発するためには何を入手すればいいのでしょうか。 sunのページには何度かいったのですが、どこからダウンロードすればいいかわかりません。 どなたかご教授お願いします。
964 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:10:52 ] >>963 jdkか、jreを入れた環境でeclipseを使うか… java.sun.com/javase/downloads/index.jsp あと「初心者なので」とかいう免罪符は掲げないほうが心証いいよ
965 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:10:56 ] javaで開発する、ってことだよな? いきなりsunに行かずに、「基礎」「入門」あたりのキーワードで検索 よさそうなページをみつけて、そこの手順に沿ってダウンロードすればいい
966 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:11:45 ] >>963 ttp://java.sun.com/javase/ja/6/download.html JDK6u1 Wiki嫁って>>1 差そうとしたけど、Wiki今、混み合ってて見れないって。 取りあえず、教授してやったぞ、ほーれー # ついでに「教授」についてもググっときなさい
967 名前:デフォルトの名無しさん [2007/05/28(月) 21:20:06 ] public class H { public static String func(String arg) { return arg; } } と public T { public static String func(String arg) { String dest = arg; return dest; } } って違いがあるのでしょうか。スレッドセーフかの視点でみて。
968 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:22:19 ] ,-,,,,、 ,-,,,,_ ,,,,,,,、 ,,,,,,_゙'-,. "'i、 .,,,,,,,、 ,,,,,,,゙'-、^'i、 .i,¬ー-、 ゙''i、`\ \.`''-\,,l゙ `'i、 `''i、 ‘'-,`''-\,,l゙ ^'i、 ,) 丿 ,l,_,,,,,,,― |i、 } 丿 Z_,,,,,,-ヘヽ、゙l | .| __ ,/ ,,-----=@,,,7゙"` ,/ ,,-----=@,,,)゙″ | | .,,-'",,,,,,、`'i、 ,/`./ / 丿 / .,/` ,l゙ 丿 |゙ヽ,,,―" `゙'ュ‐゙_,/゛ | | .,/.,,/` /` 丿 ,/ ,/ ,/ 丿 \,,,,-‐,! '`,/ .| l゙ ,,-",,/ 丿 ,i´ ,/_,/ 丿 ,i´ 丿 ,,,i´ ,! | i彡‐" ,/` ,/` ィ,ン'" / ./ ,/ .| | | ,,i´ ./ ,,‐`./ ,/`.,┤ | | | ./゙| .,/ .,/ ,/ .,/ / 丿 | .| { { .,/ ,l゙ ,,/ ,/` ,,/ ,/` / ,、゙'-,| l゙ | }, ._/.ノ _,/゙,,/゛ _,/゙,,/゛ l゙ .,/`\ | ヽ,_ ゙"゛,,/ (ン'"゛ (ン'"゛ `″ ゙l 丿 `゙゙゙゙゛
969 名前:963 [2007/05/28(月) 21:33:15 ] 有り難うございました。 皆さんのおかげで解決できました。
970 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:37:21 ] >>968 ぐぐる用語でも教えてください。 スタックフレームクラス遣えばなんとか実験できそうなんですが、試行錯誤中
971 名前:webmaster@気まぐれアナスイ mailto:192.168.0.1 [2007/05/28(月) 21:50:47 ] >>968 {???} ζ !(+Φ_Φ)つ√ζ +⊂. + 〆∂ {Ж} "〆∂∂ 〆〆 .:"
972 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 22:06:14 BE:165087735-2BP(100)] >>967 下のは余計な事やってるだけ
973 名前:デフォルトの名無しさん [2007/05/28(月) 22:12:51 ] javaで共有メモリの使い方ってどうやってやるのでしょうか。
974 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 22:16:02 ] 無いからメモリマップドファイルで代用して。
975 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 22:27:30 ] Javaの発音はJava(↓)なんですか?Java(↑)なんですか?
976 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 22:30:12 ] Javaだね、Java (=ω=.)
977 名前:デフォルトの名無しさん [2007/05/28(月) 23:19:00 ] /*<APPLET CODE="GUI.class" WIDTH=500 HEIGHT=500> </APPLET> */ の数値を変えてもアプレットビューアの大きさが変わらないのはなぜですか?
978 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 23:21:10 ] スレとは関係ないけど素数判定はルートNまででOK
979 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 23:29:41 ] >>967 後半は、クラス定義がないから動かんな。 は、さておき。 String dest は、最適化で削られる可能性ないか?
980 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 23:46:21 ] Java始めた初心者ですが、質問です Java について言及しているサイト等で クラスSomeClass のメソッドsomeMethod を表すのに SomeClass#someMethod という書き方をしているのを何回か見かけました これはJavaで標準に用いられている表現なのでしょうか それとも(オブジェクト指向の)言語一般に用いられているもの あるいは他言語でよく使われる表現を、そのサイトの執筆者がたまたま用いたものなのでしょうか? メンバ変数someField、メソッドsomeMethod があるとして それらを示すのにJavaで標準的に用いられている表現がありましたら教えてください
981 名前:デフォルトの名無しさん [2007/05/29(火) 00:10:58 ] >>979 最適化で削られるも考えないでください>< staticメソッドはクラスで一つって言葉の解釈の仕方がよく分からないのです。 スレッドA,B二つあって、Aが関数をfunc("A");として実行後、仮引数がString destに格納された所でBスレッドがfunc("B")を実行した場合、 いったいstaticメソッドの中はどうなってるの?ってのがイメージ出来ない。 Cでいう関数がstaticメソッドにあたるもの考えていたので、関数はヒープ上にあり、引数はスタックに詰まれる(引数は参照)っていうのもあっていれば、 Aスレッドが実行終わる頃には、Bスレッド実行によってfunc内のdest変数は"B"となって処理される? この手のクラスTの扱いがだめならservlet全部だめになっちゃいますんで、「マルチスレッドで問題なし」なんでしょうが、 動作イメージが湧かない。 この二つのサイトって正しい情報なんですかね?staticなメソッドについては言及ないようですが・・・ www.nextindex.net/java/perform/storage.html segroup.fujitsu.com/sdas/technology/web-apl/05-servlet-container.html
982 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:20:33 ] >>980 Javaの標準ではあるが、他の言語では見ないね。 そういう表記法が一般的になった理由は、javadocのリンクがどういうURLになっているかを見れば分かる。 まあ、とりあえず見て。 ttp://java.sun.com/javase/ja/6/docs/ja/api/index.html
983 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:40:42 ] >>982 レスありがとうございます 「#」が用いられるのは、単にURLの #フラグメント の部分をそのまま 受け継いだ影響ということでしょうか 説明する変数/メソッドの種類や特性によって、何かしらの表記のルールが あるのかと思っていました ありがとうございました
984 名前:967 mailto:sage [2007/05/29(火) 00:52:57 ] スタック型のアーキテクト?と呼ぶのですかね、それを勉強しつつ、なんとなーく理解してきました。 まだ論理的にな説明もで傷、・テストコードさえ実装してないですが、 以下のサイトが役に立ったので、はっときます。(勝ってな引用なので一応リンク外す) 変なこと言ってるよ!ってサイトがあれば内容と訂正をこのレスでお願いします>< ttp://java-house.jp/ml/archive/j-h-b/037778.html#body ttp://www.pro.or.jp/~fuji/mybooks/cpro/cpro.4.5.1.html
985 名前:967 mailto:sage [2007/05/29(火) 00:56:33 ] すんまそん。あとこれも i.loveruby.net/ja/rhg/book/thread.html
986 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:58:32 ] >>981 >最適化で削られるも考えないでください>< 無意味。コンパイラやVMによってガンガン削られる >staticメソッドはクラスで一つって言葉の解釈の仕方がよく分からないのです。 インスタンスを幾つ作っても共有されるってこと >関数はヒープ上にあり わけわかめ >引数はスタックに詰まれる OK >func内のdest変数は"B"となって処理される? わけわかめ
987 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 01:10:28 ] >>983 インスタンスメソッドでは#を使ってクラスメソッドでは.を使うもんらしい。 >>982 Rubyも#を使っている。
988 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 01:51:58 ] >>987 javadocの慣習で言えば、どっちも#だけど。 #の右側にインスタンスメソッドorフィールドでも関係なしにクラス名がくるぐらいで。
989 名前:デフォルトの名無しさん [2007/05/29(火) 05:17:10 ] 現在、大学で情報系の学部に在籍している者です。 夏休みにソフトウェアを作っている会社でインターンシップをしようと思い、使われている言語がJavaという事で、 プログラミングのクラス、自分でやさしいJavaという本を読んでで基本は学んだのですが、会社の方から見せてもらった サンプルコード(実際に作られているソフトのサンプルコード)と自分で勉強した範囲を 遥かに凌駕している内容で、正直あせっています。 入門書のレベルから実際にプロの方々が書いているコードのレベルに到達するには、 どのように勉強をしていけば良いのでしょうか?
990 名前:デフォルトの名無しさん [2007/05/29(火) 05:18:13 ] 現在、大学で情報系の学部に在籍している者です。 夏休みにソフトウェアを作っている会社でインターンシップをしようと思い、使われている言語がJavaという事で、 プログラミングのクラス、自分でやさしいJavaという本を読んでで基本は学んだのですが、会社の方から見せてもらった サンプルコード(実際に作られているソフトのサンプルコード)と自分で勉強した範囲を 遥かに凌駕している内容で、正直あせっています。 入門書のレベルから実際にプロの方々が書いているコードのレベルに到達するには、 どのように勉強をしていけば良いのでしょうか?
991 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 05:42:28 ] 散々既出だけどやさしいJavaは役に立たない。 あれはプログラムを全く知らない素人がちょっと触れるようになる為の本。 入門書以前と考えるべき。 まずは入門書をやる。 Core Java、Head First Java、独習Javaあたりがよく勧められる。 分量的にも内容的にもヌルい本じゃないけど、このあたりを1冊終わらせたならば、入門レベルを卒業と言えるんじゃないかね。 やさしいJava氏ねよ
992 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 06:49:58 ] >>990 つか、情報系の学部に行く前にいくつかの言語に精通してるのが 普通なんだが。
993 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:18:49 ] >>992 それを言ったらもう手遅れってことじゃないですかw >>989-990 そんなことはどうでもよくて 入門書を読んでる間はいつまでも入門者 他人が書いたソースを読んでデバッグできれば一人前 君はいち早くそれに気付いたのだからむしろ幸運だよ とにかく色んなソースを読み・書きまくる まだ若いんだから焦る必要はない
994 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:23:32 ] >>987 > インスタンスメソッドでは#を使ってクラスメソッドでは.を使うもんらしい。 これは初耳。へー。 情報源を是非教えて頂きたい。 >>990 勉強してるうちは文法、言語仕様と、Javaならオブジェクト指向をしっかり 頭に叩き込んでおけば大丈夫。 それには自信があるなら、あとの違いは知ってるクラスの量かな。 言語学っぽくいうなら語彙量ってやつ。 こればっかりは経験がモノをいうので、色々作りまくってください。 ちなみに俺が最初に買ったJavaの本はEffective Javaでした…
995 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:52:03 ] >>994 Ruby
996 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:53:02 ] >>990 Jakarta Commons の本とかひととおり見るといいよ
997 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 11:52:27 ] >>983 javadocに関してはURLやURIのフラグメントから来ている。 一般的なアクセス演算子としては上に上がった通り。 >>992 最近の情報系は>>990 みたいな奴ばっかでPL使えるのは少ないよ。 情報系なのにPC系雑誌読むか、PCの話したらヲタ扱いされたって伝奇もある。 中にはマイコン制御とか、組み込みとか、ドライバ自作とか、生粋のギークも居るが絶滅危惧種だね。 そういう連中は実力にあった場所に、それぞれ散っていくので存在自体が霞だよ。 今の情報系とか専門生はギークとのコネはないしね。 まあ、手遅れってのは笑い事じゃないんだが。
998 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 12:34:04 ] > PCの話したらヲタ扱い 笑い話にならんな、マジで。 とは言え、会社でも休日に勉強とかしている方が少数派だし、雑談で技術の話を振るとヲタ扱いされるわけだもんな。
999 名前:デフォルトの名無しさん [2007/05/29(火) 14:11:54 ] コンパイルして実行すると、 Exception in thread "main" java.lang.ArrayIndexOutOfBounds:0 というエラーが出るんですが、これはどういうことでしょうか?
1000 名前:999 mailto:sage [2007/05/29(火) 14:16:12 ] すみません。自己解決しました・・。
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。