2 :
デフォルトの名無しさん :2013/03/23(土) 18:42:22.38
< `∀´>ニダー
>>3 CDTって書いてあるけどjavaでもいけんのか?
Eclipseというのを入れてみたが糞重すぎてワロタ ネットブックに入れるのは流石に無理かw NetBeansってのはどうなんだろか
前スレで気になったんだけど for(;;) ってどういう意味ですか?こういう特殊な書き方は名称を知らないとなかなかggってもヒットしなくて困りました
for文で、ループの継続条件が省略された場合は、常にループを継続 for(;;) {...} は while(true) {...} と同じ
>>9 どうもです
ちなみにforで書く場合とwhileで書く場合とでは何か違ってくるのですか?何かを意識した書き方とかあるのかな
それを話し始めると不毛な論争に突入する的なもの ちなみに俺は while(true) 派
SoundAPIについて質問なのですが、ShotMessage.NOTE_ONを送信して1秒音を鳴らしたい場合、どのように書くのが普通ですか? 例えば receiver.send(new ShortMessage(ShortMessage.NOTE_ON, 0, 60, 120), -1); Thread.sleep(1000); receiver.send(new ShortMessage(ShortMessage.NOTE_ON, 0, 60, 0), -1); のように、ドの音をベロシティ120で送信し、Threadを1秒sleepさせ、その後ベロシティ0で再度送信する書き方をネットで見つけたのですが、このような書き方が普通なのですか? これじゃ音はならないにせよドの音がベロシティ0で鳴り続けているような気がします・・・。 「何秒間鳴らす」をしたい場合、精度と処理速度を考えるとどのように書くべきなのでしょうか
0HzなPCM音もヴェロシティゼロなMIDI音も、音圧ゼロと同じ事だと思うんだが
>>13 音が鳴らないという点で同じであって他は違うんじゃ?
AC'97チップやHD Audioチップにバックグラウンドで音波データ流し込んでいる ソフトシンセか何かがVM内かドライバ内にいるんだろうが、気に病むことはない。 それでも心配なら外付けMIDI音源買おう。
>>12 ベロシティゼロのノートオンはノートオフと同じ扱いと聞いた覚えがあるけれど
気になるならノートオフを送ればいいんじゃない
精度とかは送るタイミングを自分でうまいこと調整するしかない
JAVAは、本買ってさらっとしか勉強しなかったんですが。 あらためて質問さして下さい。 以下のようなソース public class Test01 { public static void main(String[] args) { byte b1 = 1; byte b2 = 2; コンパイルエラー // byte b3 = b1 *b2; byte b3 = (byte) (b1 * b2); System.out.print(b3); }} で、b1*b2がint型で返すという事ですが となるとJAVAのメモリーレイアウトは、4バイトで char,boolean,byte,shortは、それぞれ4バイトの領域をメモリー上にもっている と思って良いですか? どなたか、ご教示を。
違う。演算が4バイトに昇格されて行われる場合があるだけ。
馬鹿だけど自信満々
>>10 1兆回ループ回したらwhile(true)のが0.13秒早かった
>>10 for自体がwhileのよくあるパターンを構文化しただけじゃないの。そのパターンに当てはまらない無限ループはwhileの方が読み易いと思う。
for文は配列専用 while文はList専用 と使い分けている
25 :
デフォルトの名無しさん :2013/03/24(日) 19:11:19.30
その使い分けの意図はよく解らない。
昔から配列操作といえばfor文だったから 初期化子が中にあるというのが ただしfor(:)の場合は例外
反復回数が一定の処理ならfor文のほうがパッと見でソースが分かりやすい 反復子?って奴の変化が単調ならfor文、ループ内の処理次第で変わるならwhile
>>24 iteratorの糖衣構文はforでしか使えないよなぁ。
くだらんこといってないでruby勉強しろ
はいはいrubyruby
31 :
デフォルトの名無しさん :2013/03/24(日) 19:56:55.80
forを使った方が反復子のスコープが小さいというのはある。 Iretator<String> i = list.iterator(); while(i.hasNext()){...} と for(Iretator<String> i = list.iterator(); i.haxNext();) {...} ではiのスコープがループの外に出ないのでforの方が良いという場合はある。
馬鹿には無理
>>31 java6からだっけ、foreach使えるようになったらイテレータとか使わなくなった
34 :
デフォルトの名無しさん :2013/03/24(日) 22:09:54.96
remove使う場合など反復子そのものに用事があるときはforの糖衣構文ではなく whileとか使う必要がある。
ループ条件に定数式使っただけで警告をもりもり吐く お節介な「品質向上システム」とかがあってだな・・・
>>31 独習JavaだかEssential Javaだかにそんなことが載っていたような気がする
Iteratorや糖衣構文のfor-eachは使うには便利だが、 自前で実装するとなると面倒臭い。 hasNext()でカーソル進めて、 next()でカーソルが指すオブジェクトを取得。 の方がずっと楽なのに、なんであんな仕様なんだ?
Iteratorパターンってもともとそういうもんでしょ わざとクラスを分割しているんだと
ListIteratorつかって List#get(nextIndex())
>>39 配列や線形リストのIteratorなら自作でも割と簡単。
hasNext()で次のデータがあるか調べる(内部状態は変化しない)、
next()でデータを返す+カーソルを進める(データを返しつつ、内部状態も変化させる、だがremove()のために返したデータは記憶しておく)
っていうJavaのIteratorの仕様だと、
例えば、親ディレクトリを指定して、サブディレクトリを含む全ファイルを1つずつ返すIterator
なんてのを作るのがクソ面倒臭いのよ。
41 :
デフォルトの名無しさん :2013/03/25(月) 06:44:21.10
あまり難しい話は禁止ね やめなさい
>>40 そもそも、Genericsの仕様が難儀だからなあ
Genericsを意識しなかったら簡単につくたりして
ArrayListのlistiteratorかiteratorでremoveがunsupportedで驚いた覚えが。 LinkedListを使えば良かったけど。
>>40 commonsかどっかに、子Iteratorを連結するIterator実装があったよ
ここしばらくUpdateが無いな。
おまえ干されてるんだよw
えっ? ジャバってオワコンなんでしょ!?
EZアプリ(J)を作るよ!
∧_∧ ( ´∀` ) ところでこのゴミ、どこに捨てたらいい? /⌒ `ヽ / / ノ.\_M ( /ヽ |\___E) \ / | / \ ( _ノ | / ウワァァン ヽ | / / |ヽ(`Д´)ノ| | / / ヽ( C++)ノ ( ) )  ̄ ̄ ̄ | | / | | |. / |\ \ ∠/
>>49 まあゴミというな
JVMとOSを作ってくれる奴なんだから
それ以外はほとんどゴミだが
クラスClassA のメンバ関数 func()内で new した配列の寿命についてお聞きしたいです。 class ClassA { int[] func() { int[] retArray = new int[10]; return retArray; } } class ClassATest { public static void main(String[] args) { ClassA classA = new ClassA(); int[] array = classA.func(); System.out.println( array.length ); } } ClassAの func() 内で newした int型配列retArrayを、ClassATest内のarray に返すものですが、この場合 ClassAの retArrayはプログラム終了までメモリ開放されないのでしょうか? 初歩的な質問で申し訳ありませんが、よろしくお願いします。
プログラム終了というのが何を指すかが微妙だが、だいたいあってる。 変数が勝手によく分からないものを参照したり null になったりなどはしない。
>>51 補足
メモリが開放されないのかどうか危惧しているなら、
おおよそ、どのスレッドからもアクセスできなくなったオブジェクトは
そのうち、適当なタイミングで勝手に回収してくれる。
そういうときは弱参照!
56 :
51 :2013/03/26(火) 05:07:38.50
JVMが見張ってくれるということですか?
呼び出し関数内で宣言した変数が、呼び出し元から参照できるのが不思議だったので質問させていただきました。
ということは、
>>51 のfunc()のような関数をポンポン作ってたらメモリたくさん食べちゃうと思うんですが、
こういう書き方は改めたほうがいいのでしょうか。
57 :
デフォルトの名無しさん :2013/03/26(火) 05:49:37.01
>こういう書き方は改めたほうがいいのでしょうか。 いや全然。気にする必要無し。 初めのうちはしたいことを簡潔かつ素直に書くことを心がけていれば大抵は速いし メモリにも優しい。メモリリークを心配するのはその後でも良い。 実際この程度の関数の是非を云々することで解決するメモリリークはあまり無い。
58 :
51 :2013/03/26(火) 07:11:28.63
わかりました。ちょっと心配になって手が止まってたので、アドバイス頂けてよかったです。
簡潔かつ素直にを心がけたいと思います。
>>54 ,
>>55 ,
>>57 ありがとうございましたmm
JDO,JPAって何が違うの?
AWTとSwingくらいの違い。
なーんだ 大した違いじゃないね
就活のときの玉手箱ってJAVAで動いてるけどマウスのクリックとかキーボードで他の操作してるのって分かるの?
フォーカスが移ってるか、マウスがウィンドウ上に無いとイベントは取れないはず 昔、コンソール情報出しながらWebテストしてたらヌルポ発生しててびびった覚えが
64 :
デフォルトの名無しさん :2013/03/28(木) 17:53:32.50
2つのListからintersectionをとりたいのですが Stringのリストの場合は下記のようにすればいいのかと思うんですが List<String> List1; List<String> List2; List1.retainAll(List2); 下のようなクラスを作って、key1とkey2を使い分けて intersectionなどを取りたい場合はどうやればいいんでしょうか? public static class MyClass { public String key1; public String key2; }; List<MyClass> MyClassList1; List<MyClass> MyClassList2;
>>64 まずリストは忘れろ
hashCode と equalsについて学べ
わからなかったらEffectove Java買え
hashCode()とか関係なくね? key1とkey2を必ずString#intern()通した値にしとけば 問題なくretainAll()出来る、はず。
う、やっぱりequals()のオーバーライドも必要だは
でしょでしょ
>>64 2つのListのintersectionをとりたいのか
2つの各Listの中にある文字列の各1文字のintersectionをとりたいのかはっきりしないな
もしそれが文字だけのものなら、正規表現でどうにかなるって話になる
EqualsBuilder HashCodeBuilder ですべて解決
72 :
デフォルトの名無しさん :2013/03/29(金) 07:39:33.44
>>64 です
やりたいことは2つの集合からキーを使い分けて intersection などを取りたいのです
キーはString以外にもDateやIntなどを使いたいので正規表現等ではなくretainall を使う方法になるかと思います
equalsをオーバーライドすればいいのかとも思ったんですが書き方がよく分からなくて質問しました
for文で回せば可能でしょうがこれだと遅くなりますよね?
リストならバイナリサーチでも出来るようにしておかない限り 実質for文でぶん回すしかないだろ
74 :
デフォルトの名無しさん :2013/03/29(金) 07:52:13.95
まずequals・hashCodeのオーバーライドで解決するのはこの例の場合不適だと思う。
例えば
>>64 の例でkey1だけを使ってequalsを評価したりハッシュ値を生成するように
オーバーライドしても、結局はkey1だけを使ってしか比較が出来なくなる。
64がやりたいのはある時はkey1同士を比較してintersection、別の時はkey2同士、
あるいはlist1のkey1とlist2のkey2を比較して、といった使い分けだとエスパー。
かりにそうだとしたら比較に使うフィールドが静的に決まってしまうequals等々の
オーバーライドは適当じゃない。
では何が適当かというと・・・forのぶん回し?
75 :
デフォルトの名無しさん :2013/03/29(金) 08:34:20.98
>>64 です
とりあえずこんな方法にいきつきました
1, まず使いたいキーのデータだけをそれぞれの集合から抽出
2, それのintersectionをとる
3, そのキーを持つものを元の集合から抽出
List<MyClass> MyClassList1;
List<MyClass> MyClassList2;
List<String> List1_Key1 = new ArrayList<String>();
List<String> List2_Key1 = new ArrayList<String>();
for (MyClass obj: MyClassList1) List1_Key1.add(obj.key1); // 1
for (MyClass obj: MyClassList2) List2_Key1.add(obj.key1);
List1_Key1.retainAll(List2_Key1); // 2
List<MyClass> result = new ArrayList<MyClass>();
for (MyClass obj: MyClassList1) { // 3
if (List1_Key1.indexOf(obj.key1) != -1) result.add(obj);
}
for文をネストするよりは速いでしょうか?
使いたいキーの数だけMyClassを継承してそれぞれにequalsを作ったほうがいいのでしょうか?
indexOf()も中では結局equals()頼りだからなあ。 ratailAll()を高速化するためには ・1番目のリストのremove()高速化 ・2番目のリストのcontains()高速化 が必要。 まずremove()される方のリストはArrayListやめてLinkedListにしよう。 2番目のリスト、ListでなくSetでもいいんだよね?HashSetとか。 TreeSetなら後付けでComaparatorも差し替えられるのでエスパー案件もおっけ
マルチスレッド初心者です。 Aというメソッドを実行し続けるスレッドと、Bというメソッドを実行し続けるスレッドを起動させたとき、必ずA→Bという順序でメソッドを実行させられるように制御したい。 www.dotup.org/uploda/www.dotup.org4085924.zip.html 上記にうpした通りの3ファイルで書いてみたが、処理が途中で止まることがあるようで、どうも不安定であります。 この場合、最もスマートな書き方はどんな感じなのでしょう。
単純にひとつのスレッドでA→Bと呼べばいいんじゃね まぁrestartとwaitの間にrestartが呼ばれる競合状態があるんだろう こんな感じでいいんじゃない boolean restarted; synchronized void restart() { restarted = true; notify(); } synchronized void waitMethodA() { while (restarted == false) { wait(); } restarted = false; }
>>78 ご丁寧にどうも。
今回は単純化したんだけど、最終的には、スレッドAでデータ取得、スレッドBで保存みたいなことをしたいので、スレッドは別にした方が良いのではないか…と考えています。
A、Bそれぞれのクラスに教えていただいたコードを加えたところ、上手くいきました。ありがとうございます。
しかし、動作がイメージし難いため、なかなか理解が深まりません…
volatile boolean もしくは AtomicBoolean を推奨
>>79 スレッドがどう切り替わっても平気なように書かないとだめ
元のプログラムの場合
↓A.run
↓B.run
↓this.methodA()
↓this.waitMethodB()
↓b.restart()
↓this.methodB()
↓a.restart()
↓this.waitMethodB()
↓this.waitMethodA()
みたいになると止まる
>>79 A, B 同時に開始させて B には頭にwaitを入れる、ていう方針はどうでしょう?
A, B 同時スタートっていうのはセマフォのいい課題だからどこぞに転がってそうですね
SynchronousQueue 使ってデータ受け渡せば、何も考えなくていいから楽だな
>>80 ありがとうございます。
しかし未知の世界だ…
とりあえず、'volatile boolean restarted'とでもしておけば安心なのかしら。
もう少しkwsk教えていただければ幸いです。
>>81 なるほど、片方のスレッドのサイクルがずれてしまって、デッドロックに陥るってことですね。
>>82 同時ってのは考えてなかったですねぇ…
しかし、同時にスタートできても、徐々にずれてしまって、
>>81 氏の言われるようになるのでは!?
> 最終的には、スレッドAでデータ取得、スレッドBで保存みたいなことをしたいので 素直にBlockingQueueを使ってデータを受け渡ししよう。
static なクラスを、いくつかのスレッドからアクセスしています。 非常に頻繁なアクセスです。 この場合、static なクラスの関数処理が終わる前に別のスレッドがアクセスした場合、 static なクラスの内部にある変数は上書きされるものでしょうか? それとも別メモリ空間で処理が行われる?
> staticなクラスの内部にある変数 これの意味が曖昧なので答えは二通りになる。 ・クラスのstaticなメンバフィールド -> 全てのスレッドで共有される ・クラスのメソッドの内部で宣言された変数 -> スレッド毎に確保される
同じstaticメンバなのに、コア間で値が違うとか、普通にありえる。 double値の下半分だけ共有で上半分が別の値とかもありうる。
はじめまして。このたび晴れてSE見習いになりました吉野と申します 会社の研修でJavaを覚えさせられることになったので先回りして勉強しようと思ったのですが 取り組もうとした矢先、いったいどうやってJavaを作るのか?というところで分からなくなりました インストールの仕方や基本的な操作を教えていただけるとうれしいのですが、どなたかお教えいただけないでしょうか?
※ただし有料に限る
いくら出すんですか?
94 :
デフォルトの名無しさん :2013/04/01(月) 21:00:47.67
>>91 jdkをインストールして
ソースコードを書いて
ソースコードをjavacでコンパイルして
コンパイルしたものをjavaで実行
Java SE Downloads
www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Javaを作るってコンパイラ?VM?
>>91 本屋にいけ、本屋にいってなにもできなかったら進路についてもう一度再考したほうがいい
>>88 >非常に頻繁なアクセス
どうせ1秒間に数百回程度なんだろ?
>>91 EclipseかNetBeansをインストールするところから始めよう。
これらはIDE(統合開発環境)というものです。
ダウンロードやインストール方法はググれば出てくるよ。
自己顕示欲を満たす為だけに回答した無料レスだから 価値はない
>>94 ,98
ありがとうございます
明日会社のPCにソフトをインストールしたいと思います
>>96 新卒で入社後すぐの再就職は難しいといわれました
最低3年は勤めてから考えたいと思います
まず、最低でも半年ですよ
>>97 平均6msの間に平均526回呼び出してます
>>102 自己レス
平均6msかかっていますが、これを3ms程度に下げたいと考えています。
平均はラップタイムでなく、総合タイムから回数を割っています。
そもそも、System.currentTimeMillis() の最小値が16msや15msと0msなので、
これを加算してもどうかと思うからです。
なんで14msや8msのような数字が出ないのか良く分かりませんが、
多分最適化の影響かなにかなんでしょう。
コーディングの最適化はそろそろ、打ち止めです。
頻繁にアクセスするクラスは、毎回インスタンス化せずに、起動時に作成したものを使いまわしています。
変数も配列になるものはNewして使いまわしています。
で、static化できる変数、クラスに手をつけようと思った次第です。
104 :
キョロ作 :2013/04/02(火) 01:56:14.16 BE:4600460669-2BP(0)
>>91 というか、わざわざこんなとこ来なくても、分かりやすい個人のサイトとかがあると思うんだがw
>>91 検索エンジンGoogle
http://google.co.jp このサイトにアクセスして調べたいことを日本語の単語をスペースで区切って
入力して検索ボタンを押すと、調べたいホームページがでて来る。例えば「JAVA インストール」とか。
自己解決しました
ここは初心者が質問していいんですかね
Javaの初心者はいいけど質問の仕方が初心者なのはデコピンくらうんじゃない?
Java7の日本語ドキュメントが存在しない件について、 Oracleの中の人のアナウンスとかってあります? どこかで金かかりすぎるから稟議通らなかったみたいなのを読んだ記憶があるんだけど どこで読んだのか誰が発言したのか思い出せない
>>100 入社後すぐSE...唖然
プログラム経験無しでSE...唖然
今はこうなのか? 馬鹿グラマーが増えるわけだ
>>110 翻訳に4000万だか7000万だかがかかるって事がわかったのでやめたってさ
信じられるか?
>>111 元のレスを良く読めよ。
SE見習いと書いてあるだろ。
Java7の標準ライブラリってGPLベースのライセンスだよね? javadocを勝手に翻訳して、sourceforgeとかでGPLとして公開するのはOKなのかな。
>>114 「SE見習い」ということは営業や事務じゃなく、技術職として採用されたってことだろ。
新人営業職ですがプログラムの基本は解ります、ってな研修方針なら大変素晴らしいが…。
学生時代に開発環境も入れたことがない、マリオ作ろうとして挫折したこともないような奴が、
何ヶ月後かには現場に来るんだぞ?
……エイプリルフールであることを願うわ。
>>112 たしかそんな話だったよね
それのソースが知りたいんだ
>>116 こういう人を育てないやつが社会をダメにしていくんだよ。
完璧な人間以外仕事をさせない( ー`дー´)キリッとか言って。
完璧な人間は、いないけど、 完璧な仕事ならあるかもしれない。
Java初心者ですが完璧な仕事がどういうものなのかわかりません
ぬるぽ
SE見習いって言ったって、 今の時代SEとPGの境なんてはっきりしないと思うんだが。 俺は中小企業勤めだがここ10年、周りに 設計書を書いたことがなくてプログラミングだけ、 という人は聞いたことない。 SEだってコーディングするし、PGだって設計するべ。
∧_∧ ガッ
(,, ・∀・) 人
(⊃ .(⌒).< >_∧∩
(__ノ⌒ ̄ V`Д´)/
彡 / ←
>>122
java jdkはyumで一発インストールできないんですか?
126 :
デフォルトの名無しさん :2013/04/02(火) 21:41:11.39
>>125 Oracle JDKはないだろうけどOpenJDKならあるんじゃないか
yum search jdk
で探しなよ
上級プログラミングが出来ないSEはありえない プログラマー⇒スーパープログラマ⇒客との折衝が出来るようになる⇒SE見習い⇒営業経験⇒SE
javaなのに上級w
Java初心者ですが上級プログラミングとはどういうものなのか教えていただけませんか
Prolog使え
>>129 リリース後のバグが皆無
コーディングが人の3~5倍の速度
お客さんが指名してくる
内容以前の必須条件
javaの案件なんてDB読んでちょいちょいと計算して出力するだけなんだからバグがあったら入院するレベルの馬鹿
>>127 プログラマー⇒スーパープログラマ⇒(ここで止めたい)⇒客との折衝が出来るようになる⇒SE見習い⇒営業経験⇒SE
どうすればいいでしょうか?
僕は営業とかやりたくありません臭いおじさんにヘコヘコするのはいやです
プログラムを書くのが楽しいのです
Javaやめてweb系行け
>>134 127じゃないけど、
>客との折衝が出来るようになる
って真っ当なことを書いてる。
プログラムを「職業」で書くってのは、
人の話を良く聞いてその内容を十分頭の中で構造化することなんだよ。
そうでなけりゃ
スパーハカーどころか
スパープログラマにすらなれんよ。
137 :
デフォルトの名無しさん :2013/04/03(水) 20:35:14.37
僕も仕事を投げるだけのクズの下で働きたくないです 日本には多重下請け禁止法が必要だと思います
意味わからん 全部一人で作れるんなら一人でやりゃいいだろ? それができない規模なんだったら全部自社で作ろうが結局は設計が歯車に投げる格好になるよ
それ以前に、与信がとおらんぜよ
>>134 >>137 他人をダメって言ってる時点で自分がダメだっていうことに気づけ
考えが甘い
ゆとりか?
お前ら全員プログラマ板行けよ、な?
>>127 経営視点で言わせてもらうと、そんなコストかかって替えの効かない奴はいらない。
それぞれの技術しかないやつを安価でやとって組み合わせることで利益をあげる。
>>129 保守にコストがかからないプログラムをできるやつのこと。
javaかCか始めてみようと思うんだがどっちが簡単かつ高機能なんだ?
馬鹿には無理 君にも無理
Cがいい。Javaがすき。Rubyは楽だ
>>144 Java。
組み込みとかデバイスドライバーを
職業的にする予定がないなら
Cなんてとんでもない。
学習にも不向き。
148 :
デフォルトの名無しさん :2013/04/04(木) 20:06:29.46
java jdk7 をインストールしたのですがコマンドプロンプトでjavacとしてもコマンドが見つからないと言われてしまいます いったいどうすればいいんでしょうか?
>>148 PATHという環境変数にjavacの場所を追加すればいい
こんな感じで
Java SE 7u4 のダウンロードとインストールとテスト実行 (javac を動かしてみる)
www.kkaneko.com/rinkou/javaintro/javac.html#1
javacの場所はjdkのバージョンによって変わるから適宜変えて
>>143 優秀なやつを高く雇って薄い利益を得るより、安いやつをうまく使って大きな利益をあげる方が夢があると思うぞ。
それは、悪魔のささやき 人材は、財産
>>151 経営に不向きな性格だなw
馬鹿5人より、年収3000万クラスを1人の方が安いんだぜ
>>153 お前のような馬鹿ならいくら集めても無駄だろうが、
>>142 で言っているように特定の技術を持っているやつなんだから、単純計算で5倍。オーバヘッドとマネージャ含めても利益増えるわ。
しかも並列で開発すれば短納になるから、さらに増えるわ。
おっと、更新してなかった。
>>157 なぜ自分の力でうまくいかせるのがバクチなのかわからない。
何もせずに人の力のみで稼ぐお前の人生は寄生虫そのものだな。すぐ見捨てられるだろうけど。
まあまあ。javaなんて単価安い案件ばっかりなんだから喧嘩しないの
プログラミングもまともに出来ない奴がSEか 世も末だな
こんな経営者もどきはそのうち首吊るだろうからほっとけばいいよ
163 :
デフォルトの名無しさん :2013/04/05(金) 17:52:48.45
エア会社なんだから好きに経営すればいいよ
適当なカタカナ用語を並べて相手を煙に巻くのが上級SE
>>161 SEはコードかけなくてもいいんだよ。
帳簿読める方が大事。
顧客業務の知識がなければクズ同然。
受託と内製の人たちは頑張れ。そのうちいーこともあるさ
ユーザーがSEとプログラマを社内に取り込んで行かないと
SEにはクラス図くらいわかってほしい。 以前、仕様書と言ってpptもらったんだけど、矢印線とかが枠線で書かれてて修正できるようなものでなかった。。。もちろん内容がない上に矛盾だらけ。
UMLツール何使っている?
dia そんなに良いとは思えないが、windowsでもLinuxでも使えるし、xmlを直接書き換えるscriptがたくさんあるから。
2つのスレッド上の各メソッドを、確実に"同時に"実行させることは可能?
命令単位ってことか? 不可能
>>172 よく考えれば、スレッドのロックを取れるのは1つのスレッドだけだし当然か…
サンクス!
notifyAll()で同時に目覚める複数スレッドが parallelなのかconcurrentなのかは 誰にも解らん
>>175 >notifyAll()で同時に目覚める複数スレッドが
>parallelなのかconcurrentなのか
並列と並行の違いがnotifyallと
どう関係するのか説明よろ
177 :
デフォルトの名無しさん :2013/04/07(日) 06:39:04.57
質問です。オブジェクトの開放のタイミングがイマイチよくわかりません。 public class B{ … } public class A{ private B b = new B(); public static void main(){ } } 上のような関係になっている場合 bはA自体が開放されないと開放されないのでしょうか? 出来ればAの中でbだけを開放したり 新たに確保したりしたいのですが…
178 :
177 :2013/04/07(日) 06:52:39.62
Aのmain()の中とかで B b2 = new B(); b = b2; とかしたら元々bにあったインスタンスは CGの破棄対象になりますか? あとb=null;とかしても?
>>176 「同時」の意味ってなによ?ってことじゃね?
a.開始のタイミングがcpuクロックレベルで同時(cが前提)→制御は無理 b.片方が待機でない間にももう片方が進む→組み込み系でない限りok c.プリエンプション無しにcpuクロックレベルで並列に動作→マルチコアcpu/smp使う
>>180 俺は
>>176 じゃないが、
>>171 > 確実に"同時に"実行させることは可能?
クオート付きで "同時に" って言ってるくらいだから、
各スレッドが最初の命令を、CPUのクロック単位で同時にフェッチできるかって意味だと解釈してみた。
1CPUじゃ時分割されるから原理的に無理だし、マルチコアでもJavaVMじゃ意識できないし、
そもそも現代のCPUでクロックを意識するプログラミングってできるの?
組み込みとかだったら、NOPでタイミングを揃えるとかあるらしいけど。
フェチのタイミングなんて スーパースカラプロセッサーの 気分次第なんじゃないの?
数百ピコ秒のディレイを詰められないような人材は上流SE失格だから 営業にでも転身したほうがいい
VM上の仮想オブジェで実行時間をうんぬんとか馬鹿じゃない?<C/C++プログラマ
同時に実行したいとか言われた時に、何のためにか聞き出せない時点で失格。 ほぼ間違いなく同時実行が不要な理由。
にほんごでおか
"同時に"実行したいと訊かれた時に、いちいち理由を聞く時点で失格。 ほぼ間違いなく理由は「出来たらきっと面白そうだから」。
>>188 落第点
友達が「磁気テープでソートする方法」を聞いてきて、磁気テープでソートする方法を教えるレベル。
「磁気テープでソート」できるんだ、メモメモ
画像が表示されません。eclipceです。実行時にエラーは無いです。 import javax.swing.*; import java.awt.*; public class GUI3 { public static void main(String[] args) { JFrame jf1 = new JFrame(); //フレーム作成 jf1.setBounds(100, 100, 300, 250); jf1.setVisible(true); ImageIcon im1 = new ImageIcon("aa.gif"); //画像 プログラムと同フォルダ JLabel jl1 = new JLabel(im1); //画像をラベルに JPanel jp1 = new JPanel(); jp1.add(jl1); //ラベルをパネルに jf1.add(jp1); //パネルをフレームに } }
>>191 jf1.getContantPane().add(jp1);に変更しないと駄目
あとjf1.setVisible(true);を最後にする
他にも問題はあるけど多分それで動く
>>192 ご返答ありがとうございます。
やってみましたが失敗しました。
バージョンいくつからかは忘れたけど getContentPane()は不要になったよ
195 :
177 :2013/04/07(日) 22:42:13.24
>>179 わかりました。ありがとうございました.
○%という表示をさせたいんです。 ○の部分は数字ではなくて文字列型の変数です String.Format("%s%", "999")だとエラーがでます どうすればいいでしょうか
197 :
196 :2013/04/07(日) 23:00:45.28
%%でした 自己解決しました
テーブルを自作してます。4列ある空のテーブルに100万行挿入してファイルに出力後、再びテーブルに読み込む処理をしました。 処理が遅いのか早いのかわかりません。ファイルサイズも適当なのかどうか基準がわからないです。 挿入処理:968ms 0s 書き出し処理:5391ms 5s ファイルサイズ:35388795 byte 読み込み処理:6656ms 6s こういうデータ処理って何か基準にすべきものがあるんですか?
200 :
198 :2013/04/07(日) 23:44:47.98
100万行ではなく50万行でした。すみません。
201 :
198 :2013/04/07(日) 23:53:20.26
>>199 ああ、なんとなく納得できました。ありがとうございます。
質問者は自分のプロクラムが顧客にとって 価値の有るものかでなく、 自分のプログラムがおかしな作りを してないかを気にしているだろうに、 アスぺはこれだこら困る。
そんなんストレージの信頼性、利便性によって全然違うだろう。
こら困ったな。
なんだその意味不明なスレタイは
IKVMがinterfaceのデフォルトメソッドの試験実装行ったっつーだけの話に見えるが。
XMLの読み込み書き出しにおすすめはどれなん? XMLStreamReader, XMLEventReader,DocumentBuilder,Transformer, XMLReader,JAXB,JAXBContext,Unmarshaller なんか色々あってどれ使えばいいのやら・・・他にもあったりするん?
ざっくり分類するなら ・ツリーベース(DOMなど) ・イベントベース・プッシュ系(SAXなど) ・イベントベース・プル系(StAXなど) ・XMLバインディング(JAXBなど) てなところかなぁ。どれがお薦めかは用途によるので何とも言えない。 XMLのスキーマがきっちり決まっている場合やJava BeansをXMLとして読み書きする場合 などはJAXBなどのXMLバインディングAPI。 スキーマがきっちり決まっていない場合、XMLの中の一部の要素のデータだけを読む場合、 Mixed contentを含むXMLを扱うときはバインディングAPIは不適切。 ツリーベースとイベントベースを比較すると一般論としてはツリーベースのAPIの方が扱い が直感的で高機能。ただしメモリを食うので巨大なXMLの扱いには向かない。 イベントベースでは一見するとStAXの方が使いやすそうに見えるけど実際使うと案外SAX と大差はない。複数のXML文書を比較しながら並列で読む場合などはStAXは重宝するけど それ以外はSAXでもあまり変わらない。
SAXってプルパーサに比べて特にメリット無いよね プルパーサでSAX的な構造を実現するのも楽勝だしそのままでもSAXより使いやすい
XPath
Javaでの開発現場は、必ずフレームワークを使っているのでしょうか? 単純なJavaの知識だけじゃなく、フレームワークも習得しないと ダメなのでしょうか。 あと、はじめてフレームワークを勉強するとしたら どのフレームワークを勉強するべきでしょうか? 質問ばかりですみません。
フレームワークは使わない方がいいよ
どういうフレームワークがあるのか知っていて 使いたくなったら使い方を調べるようにすればいい 習得しても使わなければ時間の無駄
>>210-211 ㌧
巨大なXMLというのはファイルサイズ数GBとかあるとかかな
せいぜい2~3MBくらいの予定だから高機能というツリーというのを使うよ
ありがとう
xincludeとかスキーマ検証とか、APIによって出来たり出来なかったり
数ギガのXMLファイルってどんなだ?
仕事でプログラム書いていると「このフレームワーク上で書いてくれ」と言われ、 選択の余地がないことが多いよ
フレームワークは定番を幾つか触っておいた方が良いと思う。 フレームワークにせよライブラリにせよ、色々なAPIを叩いたりそのソースを読んだりした 場数を踏んでいないといざイチから何かを作る際に必要なイディオムや設計パターンの蓄積 が出来ない。 ある程度の規模の開発になれば既成物にせよ内製にせよフレームワーク的なものは大概使う 事になるのだから、フレームワークのAPIの設計パターンや実装パターンは出来る限り知って おいて損はない。
>>220 .NETのGCは巨大なオブジェクトには弱くて、使い捨ててると落ちたりするけどな
最近修正されたみたいだが
逆方向にXMLをパースするために必要なコンテキストは大した量じゃない
質問させてください! 写真をbitmapとして読み込んでその中の色を16進数で 指定して別の任意の色に置き換える方法はありますでしょうか?
java.awt.image には ColorConvertOp とか RGBImageFilter とかいろいろあるよ
写真を読み込むって話だからjavaからtwain扱えるかってことじゃない?
微妙に板違いかもしれませんが・・・
以下の 1)の意味って
「19が表示された後に20が表示される」
で合ってますか? ちなみに答えは 3)
Question 25)
What will happen if you attempt to compile and run the following code?
Integer ten=new Integer(10);
Long nine=new Long (9);
System.out.println(ten + nine);
int i=1;
System.out.println(i + ten);
1) 19 followed by 20
2) 19 followed by 11
3) Compile time error
4) 10 followed by 1
ソース
http://www.jchq.net/mockexams/exam1.htm
そうだが、ここはfollowed byの意味を 訊くスレではない
>>229 スレチなのに答えてくれてありがとうございます
まったく、20世紀の頃は 演算子オーバーロードがどうとか C++にケンカ売ってたくせに プライドねーな。
数字計算じゃなくtoString()にして文字列連結的に出力したら許したのに
235 :
228 :2013/04/14(日) 07:38:41.13
>>232 JDK6でもコンパイル通った・・・
OCJ-P(JDK6)試験用にやってた問題集サイトなんだけど
JDK 1.2がベースだから当てにならないことがわかりました
サンクスです
出来るようになったのは 5のauto boxingからだよ。
237 :
228 :2013/04/14(日) 08:51:59.92
>>236 なるほど、紫本見たら書いてありました
サンクスです
javaにはvisual studio 2012のような便利なアプリケーションは無いのでしょうか notepadでは書くのが大変です
eclipseかNetBeans VS並のを期待してるとがっかりするが
javaのpathを通してコマンドのテストしていたんだが javaは登録されててjavacは登録されてない摩訶不思議な状況になった どういうことなの
241 :
桃白白 :2013/04/16(火) 15:30:34.38
>>240 javacはjdkには含まれるけど、jreには含まれないっすよ。
jreにパス通したんじゃなあい?
>>241 確認してみたらまさにその通りだった
こりゃうっかり
Java SE7 Update 21キター
245 :
デフォルトの名無しさん :2013/04/17(水) 20:57:38.18
○じゃあのさん劇場○
21時 開演予定(開演時間は遅れる場合があります)
892 名前:以下、名無しにかわりましてVIPがお送りします[] 投稿日:2013/04/17(水) 00:36:28.53 ID:3UTZp96G0
おうwwww俺だwww
なんか、保守デモ関連できな臭い話聞いたんだがよおwww
まだ情報の整理と、関係者からの裏とりはできてねえから公開は今日の21時以降になるwww
ミンスのクソどもも関わったカルト団体に関する情報だwww楽しみになwww
じゃあのwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366132575/
デフォルトのエンコードをutf-8にしたいんだけどどうやったらできる?
意味がよくわからないが JavaのIOは基本的にUTF-8がデフォルトであり変えられないし charやStringの文字コードはUTF-16でありそれも変えるのは不可能
変えられないのか コンパイルするときにutf-8でって指定しないとエラーが起こるからutf-8じゃないと思ってた
アホスレ相変わらず質問と回答が噛み合ってないねw
>>248 デフォルトのエンコーディングはこれで確認できる。
System.out.println(System.getProperty("file.encoding"));
環境変数
JAVA_TOOL_OPTIONS
に
-Dfile.encoding=UTF-8
をセットすればいい。
>>246 file IOのことなら、System.setPropetyとかポリシーファイルとかで変えられなかったっけ。
とりあえず、何のかだ。
Windows環境でtar.Z形式の圧縮をしたいのですが Javaだけで可能でしょうか?外部exeなどを使わないと 不可能でしょうか? もし可能でしたらその方法を教えていただけると助かります。
254 :
デフォルトの名無しさん :2013/04/19(金) 09:33:10.95
公開されてるアルゴリズムなら全部自前で実装すりゃ何でも出来るだろ
Java6ってサポート止めたんじゃなかったの? 更新来てるんですけど
>>253 Apache CommonsにCompressというのがあるようだよ。
Chilkat Class Libraries for Java ってのが.tar.Zを扱えるようだが
>>256 , 257
ありがとうございます。試してみます。
JavaはBOMの付いたUTF-8を扱えないからクソ
Box box = Box.createHorizontalBox(); これを自動改行されるFlowLayoutとかにしたいのですがどうやって書き換えれば良いですか?
またいつも同じこと言ってる人か。 馬鹿は学習できないから馬鹿なんだな。
BOM付きUTFファイル専用のファイルリーダーやライターを作ればいいんじゃね
いろいろ先送りにしたのにそれでもJava8のリリースが遅れるってどれだけやる気ないんでしょうか?
さっきからなぜかIEでもChromeでもJavaを使うページを開くと英語でアップデートの 催促が出て、アップデートを押すと「このページは表示できません」のエラーページへ飛ぶ。 催促の内容はあなたのJavaは安全ではないです、とのこと。 何度もアップデートページでダウンロードを押していたら「ガーン」という赤バツのエラー。 これってなんなの。
>>266 JAVA()は使うなってこった
身を持ってべんきょうしたろ?
268 :
デフォルトの名無しさん :2013/04/22(月) 19:41:58.69
271 :
デフォルトの名無しさん :2013/04/22(月) 20:50:06.96
オラクルJAVAはサポート最悪 JAVAオワコン
普通の知能の奴が独学でJava一通り学んで 簡単なアプリ作れるまでどれくらいかかる?
なんでJava? Javaは業務システムのサーバーでデータベース叩いてHTML生成するための言語だよ
今アプリ開発言語はJavaが熱いってひいばっちゃ言ってた
Androidに載ってる海賊版のことか? あれももう落ち目だよね。Javaじゃないけど。
Javaのべからず集の集大成 それがAndroidフレームワーク
普通の知能の奴ってどんな奴のことですか?
おれぐらい
>>277 問全体の中にある普通の知能という一つの単語から関係性を導き出し
その意味から求めていることから背景までも把握し
おおよその回答が導き出せるごく一般的な知能を持っている奴のこと
少なくとも
>>279 のアスぺには無理と言うことだな
>>280 なにそれ矛盾してるの気づいてないの?ばかなの?しぬの?
もうまがい物のandroid javaだけが頼り
プラットフォームとしてのJavaと 開発言語としてのJavaと 分けようぜ
>>272 Java一通りって何年かかるんだ。
sh scriptを3日でいいよ。
>>272 おれは一週間ぐらいでJTable、JFreeChartを使ったGUIアプリ作れた。
ただCを六年近く書いてたから、まったくの初心者なら目安にはならんかも。
「Javaで始めるプログラミング」みたいな名前の本買って、
Javaとプログラミング全般についてさらっと学習して、再帰で挫折しなければ、1~2ヶ月くらいじゃね?
「ファイルの更新日時ごとにディレクトリに分配してバックアップコピーするプログラム」
みたいな手作業だと面倒臭い作業が、数十行のコードで書けたりすると、
プログラムって便利で楽しいなー!!! って達成感が得られると思う。
>>284 > Java一通り
標準APIだとjava.nio.*とかjava.util.concurrent.*あたりがさっぱり解らん。
こいつらどう使うんだ?
>>286 そんなもんスクリプト言語なら数行で書けるんだぜ
学習時間も数分の一
最もJavaで作るのがアホらしい類
ファイルの日付ごとの分類とかJavaでやる必要が全く無さ過ぎな件 Javaより低速になるかもしらんがインストールいらんしコンパイル要らずテストが容易なWSH 高速な処理ならC Javaをあえて使うメリットが無い
自分のスキルを上げる って考えの人はいないんだね もしくは、 プログラミングを楽しむ って考えの人
>>289 一生懸命やっている人を非難してる人達の事ね
>>287-288 バックアップアプリ作るのが目的じゃねえんだよ。
>>272 の「普通の知能の奴がJavaを学習する」場合の話をしてんだよ。
引数、変数、配列、ループ、条件、I/O、再帰、
あたりの概念が全部入り & 初心者が学習開始から数週目に作れる & それなりに実用的で達成感
な「お題」ってそのあたりだろ。
>>291 そういうことにJAVAを使わないということも大事だ。
めんどくさい人・・
>>286 >標準APIだとjava.nio.*とかjava.util.concurrent.*あたりがさっぱり解らん。
そこらへんはJava5くらいの拡張だから知らなくてもいいんじゃない。全盛1.2の頃のutilとかが使えればいいんじゃない。あとは特定分野をやるときに調べれば。
手作業の簡略化にはshで、複雑になってきたらjavaとかで書き直している。
それならPythonかRubyくらいで十分足りると思うぞ
Java言語でJVMのバイトコードじゃなくて実行ファイルそのもののバイナリを吐き出せるコンパイラとか無いの?
Javaランタイムそのものをパッケージ化してしまうことはできる 冗談みたいなサイズになるけどw
gcj
>>294 Concurrentパッケージはマルチスレッド制御用ユーティリティ群。
排他、同期、コレクション、CASなどの原子操作、スレッドプールやsynchronizedより柔軟なwait-notify機構などなど
フレームワークを自作する際はお世話になる可能性が高い。
脆弱性修正するのに人手を割いたからJava8のリリースが遅れるわーとかアホな事言ってると思ったらまた脆弱性発覚 どんだけやる気ないんですか? また人手を割いてさらに遅れるんですか?
301 :
デフォルトの名無しさん :2013/04/24(水) 14:43:07.78
Java6はサポート終了したって聞いてたんだけど、まだリリース出るの?
>>301 セキュリティパッチだけお情けで出してる模様
本流は7
っーか8が延期になったから当面7
303 :
デフォルトの名無しさん :2013/04/24(水) 22:16:01.58
そうやってずるずるとあと2~3年は6のパッチでそう
>>286 java.nio はしっかりやっとかんと、
「文字コード変換の異常系やれ」と言われたときに困るよ。
googleに良いとこ持ってかれたのでもうupdateに人手なんか取られたくないんです!
金出して6のパッチの提供を受けている客が不満をぶーたれない限り、 作っちまったパッチを無料で公開しない理由は特にない。
Javaの開発やってくれそうなとこは、IBM、Google、RedHat、Apacheあたりか。 Oracleは早く諦めればいいのに。
>>308 ブライアンゴーツさんはOracleに在籍しておられるだろ。
ブラさんがいるかぎりOracleの力が衰えることはない。
なんでJMFは放置されてんの? Pure Javaで音楽プレーヤー作れねえじゃん
lameのソースコード読んでmp3をwavへのデコードの仕方を見てjavaに移植してmp3を再生か
毎月セキュリティパッチが出るWindowsなんか危なくて使えないね。
その分役に立ってるだろ? 損得比べて得が多いならそれでいいんだよ。 その点Javaは大半のパーソナルユーザーにとってみればインストールしててもほぼ利益ゼロ、 セキュリティホールでしかない。
最近のPCはデフォルトでJava入れてないものが多いし 特に問題はないってことだな。必要な人だけ入れれば いいわけで。
Static Initializerというものを今日初めて知った
Instance Initializerというものを今日初めて知った
printfというものを今日初めて知った
女というものを今日初めて知った。
おめでとう
ありがとう
Initializerがどこにでも何回でも書けることを今日初めて知った
あれって無名クラス以外でつかうやつおる?
>>323 クラス定数の初期化、一行で書くと可読性が悪くなることが多いから。
あとJmockitを使うようになると多用することになるかな。
教えてください。 javaでsqlのinsert文を発行するとき String str1 = (String) table.getValueAt(row, 1); String str2 = (String) table.getValueAt(row, 2); String str = "insert into test_numbers (number, date) values ('"+ str1 + "', '" + str2 + "')"; (1)str1が'1'でstr2が'20130427'ならinsertできて (2)str1が'1'でstr2が'2013/04/27'ならinsertできないのですが どうしてなのでしょうか? コンソールから上記sqlを発行すると、(1)も(2)も問題なく処理されます。
>>325 to_dateしろ
ってかプリペアードしろ
example file:///C:/Program%20Files/Sun/JavaDB/demo/programs/simple/example.html これ見て java -jar %DERBY_HOME%\lib\derbyrun.jar server start としたんだけど このサーバーってどうやって止めればいいの?
330 :
329 :2013/04/27(土) 16:54:07.10
ごめん、自己解決した 新しくコマンドプロンプト開いて server shutdown としろって書いてあった
Java を使ったオリジナルプログラミング言語設計、みたいな内容の洋書を以前見かけた気がするのですが 今調べてみても見当たりません 心当たりのある方、同内容の和書洋書をご存知の方はいますか?
洋書って何語?英語?ドイツ語?
JavaCCの本か?
>>297 Project Jigsawできたらランタイム小さくなるん?
javaはクラスライブラリに、c#のdatatable/datasetに相当するクラスはないんですか?
ORMでいいよ
341 :
339 :2013/04/28(日) 17:55:18.54
>>340 ORMは遅いから使わないほうがイイと、ネットに書いてありますが
java開発では大抵の場合はORMを使いますか?
DBから問合せした結果を入れるクラスを作る必要があると思うのですが、
クラスの数が膨大になると思います。
クラス数を抑える取り込みとかってありますか?
EJBって結局なんなんですか Servlet/JSPはEJBに含まれていますか
いいえ ServlevとEJBはともにJava EEに含まれます
double型の負の無限をキャストしてint型に入れたら、 そのint型の方はint型の最小値が入った。 つまり、 double d= Double.NEGATIVE_INFINITY; int i=(int)d;//←ここに -2147483648が入る これってオーバーフローしない仕様なの? 使ってもバージョンによってバグったりしない?
>>344 言語仕様の「Narrowing Primitive Conversions」を参照
ではマトモとはどんなやり方なのか伺おうか
>>347 抽象化する。やり方としてはOMTとか参考にしたらどうだ。
>>346 static classを使いまくるのはあり?
どう考えてもDTOが増えちゃう気がするんですが
.NETだったらdatatableを使うから、そんなにクラスは増えないんだけど
MyBatis系のようにクエリからスタートしてDTOをマッピングするタイプだと確かにクエリの 数だけDTOは増えるわな。 その対策についてもどっかのスレで議論していたけれども最小公倍数的なDTOを用意して使い 回すのが安直なやりかただと思う。 Hibernate系のようにエンティティクラスからスタートしてDBにマッピングするタイプだと ドメインモデルの複雑さ以上にクラスは増えないはず。ただし理屈では。 生JDBCで頑張るならResultSetだけ。
始めたばっかなので、生JDBC&ResultSetしか知りません。
>>349 分析設計しろと言っているのになんで実装が出てくる。
どこから分析設計の話になったー。
>>339 はCollectionフレームワークと総称学べば解決する話と思っていたが。
>>355 ArrayList<HashMap<String, String>>
でええやんか。
JSPってServletの拡張なんですか? JSPはサーブレットコンテナによってServletに変換されます。という記事を読んだんですけど
>>357 JSPとサーブレットは別。
ただJSPの実装にサーブレットが使われている
ことが多い。
そんなこと意識する必用が無い筈なんだけど
たまにTomcatのKUSOなエラー調査で
変換されたソースを読むことはまれによくある
>>358 JSPを実装するのにサーブレットが使われている場合がいるんですね
わかりました。ありがとうございます。
float, double値を任意の基数を指定して文字列にエンコード、 デコードするメソッド、ユーティリティクラスはありますか? 例えば、 Integer.toString(int i, int radix), Integer.parseInt(String s, int radix), Long.toString(longi, int radix), Long.parseLong(String s, int radix) に相当するものです。
Java3Dなんて腐ったAPIじゃなくてJOGL使えば?
>>359 HTMLにJavaのロジック埋め込めるようにしたのがJSP。
実行時にWebコンテナがServletに変換&コンパイルしてくれる。
Flex + AMF通信したことある人いる? Flex→Javaへ同期通信する時、どいう風に実装しているのか教えて欲しいんだけど
javaでradiko録音サーバを作りたいと思います。 サーバを作って遊ぶ(?)のが目的なのですが、サーバはどのように作るのがベストでしょうか? サーバをApacheにして、そこでひたすらバッチを動かそうかなーと
>>368 Apacheってwebサーバの意味で言ってる?
自分でサーバソフト作ればいいでしょ。
370 :
368 :2013/05/04(土) 00:09:10.80
>>369 バッチを処理するサーバを作るのが面倒なので、Apacheに丸投げしちゃおうかなーと思った
>>370 atとかでファイルから読んだ方が楽だろ。もしかして録音開始時間まで正座して待っててポチるのか。
>>367 BlazeDSのソースコードを読んでみたらどう?
>>368 リモートから録音の制御や録音予約のリクエストを投げたいのであればJAX-RS
使ってREST APIを組んでみたらどうだろう。curlでリクエストを投げるところ
まではすぐ出来るし、GUIもHTML+jQueryその他で作れば今時風で良い。
問題はどのJAX-RS実装を使うか、作ったRESTリソースのデプロイはどうするか
だけど、自分でJerseyやJettyを組み合わせてプロジェクトを組んでも良いし、
手っ取り早く開発するならDropwizardお薦め。
Dropwizard、サーバーからロギングまで全部入りのExecutable Jarをいきなり
作れる手軽さもメリットだけど、何よりサイトで紹介されているプロジェクト
の雛形がお手本といって良いほど整っているので、仮にこの方面の開発の勉強
をするのであればもってこいの素材の一つだと思う。
またMavenの類を使うのがほぼ必須なので、現在使われているこの手のツールを
使った経験が無いのであればそれを学ぶのにも良い題材かもしれない。
374 :
デフォルトの名無しさん :2013/05/06(月) 13:51:42.75
Webシステム開発でのcollection(list系、map系)の応用場面はどういう 場面ですか。ご教授お願いします。
↓教授がご解説
376 :
桃白白教授 :2013/05/06(月) 14:17:12.25
>>374 えー?やっぱりー複数の値を保持したいときだとー桃白白教授は思うのー。
377 :
桃白白 :2013/05/06(月) 14:18:21.79
アスペクト指向って、結局何に使うんですか ロギングとかの機能をframeworkに投げれば、アスペクト指向を利用していると言えますか?
やっぱり、ORマッパ難しいやー どうやったら、DTOを共通化できるか思いつかない テーブルに列が100以上あることなんて普通じゃん
>>379 > テーブルに列が100以上あることなんて普通じゃん
普通なんですか?
何故100列あるのか、その理由によってどう対応するか変わってくるな。 場合によっては単にテーブルの正規化をしていないだけかもしれないし。
今どきそんな奴はいない
100列のうち検索に使わないものはXMLにしてそれを 一つの列に入れればすっきりする
具体例もなく単に列が100以上あることが普通とだけ言われてもあぁありがちな アンチパターンに陥っているのねとしか想像できない。 というか関係データベースの勉強もせずにORM使うの禁止。
>>378 巻き添え規制で亀レス
> アスペクト指向って、結局何に使うんですか
トランザクション管理(commit,rollback)など、ビジネスロジックの前後に「同じコード」を記述するメソッドが「大量に」存在する状況で、記述漏れ防止などの「同じコード」を局所化するメリットが産まれる。
テンプレートメソッドパターンで代用できるが、大量の具象クラスが溢れ、引数のキャストが必須になるなどのテンプレート自体の制約を受け易い。
> ロギングとかの機能をframeworkに投げれば、アスペクト指向を利用していると言えますか?
フレームワーク側の実装次第
386 :
380 :2013/05/09(木) 22:29:00.14
>>384 例えば帳票とかって、出力項目が30~40くらいあるってこと普通ですよね
入力画面も表示項目が30以上あって~とか
>>382 正規化しないと実装が楽な場合があるじゃじゃないですか
データヘッダ + 明細を毎回 JOIN するくらいなら、正規化しないほうが良いって場合もあるわけで
387 :
386 :2013/05/09(木) 22:29:57.56
その例えはダメだ
>>386 まず帳票という分野を指定している時点で普通から外れてるし、その普通自体も半分以下だし。
帳票系は項目1、項目2とか当たり前のように出てくるので、項目数、名もマスタで管理して設定で増減させるのが、俺の普通。
390 :
デフォルトの名無しさん :2013/05/10(金) 02:33:13.57
データ設計をちゃんとやった上で出力項目が多いならVIEWを定義すれば… ってJavaの話からずれてきてるなぁ
馬鹿にもメンテできる箇所をうまく設計で分離して、 単価の安いIT土方に膨大な単純作業を押しつけるのが このスレ的には正解。
マイナンバーでIT特需が始まるぞ。 Java屋がウハウハかな。
オーバーロードの使い道がいまいちわかりません。 同じメソッド名にどうしてもしなければならない場合に使うのでしょうか?
覚えるメソッド名は少ない方がいいだろ? System.out.printlnだけでもオーバーロード10種類あるわけで、 全部名前が違うとか言われたら軽く発狂する。
むしろ、基本型がオブジェクトじゃないせいで、 printlnメソッドを10種類も実装しなきゃいけない方が発狂モノじゃね?
基本型が大好き、そんな貴方にtrove4j。
基本型の可変長Listや基本型->基本型のMapなど、便利な基本型の
コレクションクラスを各種取りそろえております。
力業すぎて吹くけれども。
http://trove4j.sourceforge.net/javadocs/ 例えば基本型を使えるMapが無いのなら必要な基本型の組み合わせ
全てについてクラスを作ればいいじゃないと某アントワネットは
言ったとかなんとか。でも便利だから時々使う。
一方ロシアはオートボクシング/アンボクシングを…
オーバーロードのために、null引数にわざわざ キャスト演算子付けてやらないといけないのは解せぬ
>>397 ソビエトロシアではコードがあなたをラップする!
ロギングを導入したいのですが、オススメのAPIなどありますか。 やりたいことは、動的にログファイルやログレベルなどの設定を変えたいと考えてます。
暗号メッセージソフトを作りたいのですが 例えば”あ”を→”わ”に変更するなど予めどの文字をどれに置換するかを定義する設定ファイルを交換して ソフトに設定ファイルを適用して暗号文であるひらがなを交換したら自動的に復号化して表示されるというものです 使える文字はひらがなと数字のみで暗号文を設定ファイルを利用して復号化する際の置換方法で最も効率のよいものは何でしょうか
ちなみに置換対象の文字列はString型で配列でも単体でも使用できるようにしてあります
文字をBMPに限定して6万文字の 変換テーブルを用意する。 テーブルサイズはたかだか256KB
>>403 簡単に出来ると思っているみたいだけど、めっさ難しいんだぜ。
まんず、そもそも、「あ」がUnicodeなのか、JISなのか、Shift-JISなのか、EUC-JPなのかを判定せにゃならん。
次に、復号後の「わ」がUni・・・(ry
次に、「効率」っちゅうのが何を指しているのかを明確にせねばならん。
スピードなのか、設定ファイルの大きさなのか。
話はそれからだな
>>405 まずJavaで文字として処理するんだから
UTF-16前提だろう?
文字コード判定が必用なんて妄想は
どこから出てきた?
あと設定ファイルの大きさとか、
何言ってんのかわからない
>>402 遊びや実験ならともかく実用としては使い物にならない暗号なのでそのあたり割り切りを。
みなさんありがとうございます。 ちなみに設定ファイルは 置換対象の文字.置換後の文字,置換対象の文字.置換後の文字・・・ という構成のテキストファイルです 暗号分はStringで持っているのでその内容を置換するには一区切りずつ取り出してString.replase()するしかないですか?
CharBuffer相手にオレオレCharsetを自作するのもいいかもね
「あ」が「X」、「い」が「XX」に暗号化される時、 「XX」がどう復号化されるべきかはオートマトン(正規表現の親玉)の問題。
それを言うなら全てのプログラミングはオートマトンの問題だ
正規表現は関係なくね?
>>409 StringBufferで文字列を作り直したら?
変換は連想配列か65536件の文字変換
全件テーブルでも予め作っておけ
>>416 そこはStringBuilderにしとけ
Java入門者だけど、x86のWindowsで作ったJavaゲームってARMのandroidでも動くの?
↑補足だけど、ゲームって言ってもOpenGLを使ったWinやLinuxで動く簡単なソフトのこと
アンドロイドはDalvikVMだから動かないと思う。
OpenGL ES とやらはほとんどの android 端末にのっていると書いてあるな だが android のスレで聞いたほうがいい
>>409 やり方なら星の数ほどあるけど?
簡易的にやるなら、
乱数 r (素数)を1つだして
( (int) 'あ' + r ) % 2^16
でも出来るし、
設定ファイルにこだわらないのであれば、
乱数 keyを出して
(暗号文字) xor (( 次の文字 ) + key)
でもいける
JavaとAndroidで違うAPIの部分だけ自分でラップしたクラス作れば、ほぼそのまま動く。というか自分はそうやって作っている。
>>422 お前は何を言っているんだ?
質問者は暗号の方法を訊いて
いるわけではない。
効率のよい痴漢の方法を訊いている
お巡りさんこの人です
>>420 ,421,423
thnx
一応できたけど、すごく重かった
x86-ARM完全互換はあきらめる
変数の型として、クラス、インターフェース両方とも要求する場合の書式はどのようにしたら良いのでしょうか。 class B extends A {} class C extends A {} class X extends B implements D {} class Y extends C implements D {} 抽象的で申し訳ないのですが、上記のようなクラスの状況で Generic流の指定で<T extends A & D>というような感じの指定を考えています。 クラス生成の際にGenericのカギ括弧指定しないでこうした変数を利用できるでしょうか。
>>428 ドキュメントに書く
つまり言語仕様の範囲ではできない
なるほど、できないのですね…。ありがとうございましたm(_ _)m
>>430 キャストしたりinstanceofで
実行時のチェックは出来るだろけど、Java的には
そういうクラスを設ける、か
基本クラスとインターフェースの両方を渡す
のがいいと思う
432 :
デフォルトの名無しさん :2013/05/14(火) 11:21:23.35
JSPのEL式について質問です。 JSP内で${hoge.piyo}の値を表示するためには、getPiyo()メソッドを持つHogeBeanを作って Servlet内でreq.setAttribute("hoge", hogeBean)することはわかったのですが Javaでよく使うstatic finalな定数の値をEL式で表示するにはどうすればよいですか? 定数に対してもBeanを作ってgetterを定義しないといけないのでしょうか?
EL式って何?
予算を捻出できたのか でも今更かよって感じは否めない
日本語はよんだこと無かった
ZXing-2.2.zipをダウンロードしたのですが coreフォルダにbuild.xmlが無くてantでビルドできません。 どうしたらいいでしょうか?
pom.xmlがあるからantではなくmavenを使う。 mvn package ちょっとダウンロードしてビルドしてみたけど何故かテストでこける。 なので次の方法でテストをスキップすればとりあえずjarは出来るはず。 mvn -Dmaven.test.skip=true package
>>435 ,438
これを土台にしてJava8で本気を出してくれれば。
そもそもJava8自体が本気を出してくれてないからなあ 来年になったらまた遅れるぞ
ラムダが怪しくなってきましたね 全く期待してなかったけどさ
Jigsawは20年後くらいだな
ラムダとジグソーがないと大物はjavafx3.0だけ?
JavaFX8が果たして大物なのかどうか
448 :
デフォルトの名無しさん :2013/05/16(木) 12:49:31.49
おまいら社員名簿作るんだけどサーブレット使ってやるんだけど、分からん。 エロイ人教えてm(__)m 一覧と登録confimと登録completeと詳細のそれぞれのjavaのコードとJSPとサーブレット
エクセルでつくったら?
察するに新人の勉強用というところか
phpでやれよ
教えてやるからちょっと名簿データよこしてみ?
フレームワーク使えよ
454 :
デフォルトの名無しさん :2013/05/16(木) 15:11:11.63
import java.io.IOException; import java.util.Map; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import bean.ViewWorker; import bean.Worker;
455 :
デフォルトの名無しさん :2013/05/16(木) 15:15:04.96
public class TourokuServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ String button=request.getParameter("submit");
プログラミング初心者でJavaを始めてみたんだけどオススメの本を教えて欲しい 軽い入門書1冊読んで基本文法とオブジェクト指向の3要素については少し触れてる
同じ本をもう一度読むといいんじゃないかな
>>457 回答ありがと
その本は書店で見てみたんだけど読んだ本と似てたから、入門は一通り終わったっていう体でお願い
詳しい言語仕様の本かデザインパターンの本かWEBアプリケーションの本とか考えてるんだけど
特に明確な目標はないから次どういうことを学べばいいのか決めかねてて相談したんだ
>>459 Java言語で学ぶデザインパターン入門
ListとかMapって種類多めだと思うんですが どう使い分ければいいのでしょうか 例えばHashMapとLinkedHashMapとTreeMap、ConcurrentMapの場合、 特に目的がない場合はHashMap、 詰めた順番が重要ならLinkedHashMap、 キーの順番が重要ならTreeMap、 複数スレッドからアクセスした時の安全性が必要ならConcurrentMap みたいなのであってますか?
入門を一通り終わったってレベルではデザインパターンより言語仕様の本がいいんじゃないかな そもそも明確な目標がないならJavaやるより他の事やるのがいいと思うけど
>>460 興味あったけどやっぱりいい本なんだ
>>462 それを言われたら元も子もないw
今まで読んできた本の経歴とか勉強してった順番とかも教えてくれたら嬉しい
Javaの本で持ってるのはデザインパターン入門とエッセンシャルJavaと Java GUIコンポーネント完全制覇の3冊かな。
Effective Java
JDKについてるAPIのソース読んでみたら?
そういうライブラリ類のソースって断片的すぎてあんまり参考にならんよ オープンソースのアプリを読んだほうがいい でもオープンソースの実用Webアプリのソースってあんまり無いし JavaのGUIアプリはあんまり良いの無いよね… 便所の落書きみたいなのかeclipseみたいなバカでかくて参考にならんのか両極端な印象
馬鹿でかくなくてはJavaの意味が無い
472 :
デフォルトの名無しさん :2013/05/18(土) 15:34:34.05
サブクラスで必ず定義して親クラスで参照できるstaticフィールドみたいなのがほしいのですが、どう書けばいいですか? ↓こんなのがしたい abstract class A{ public static abstract String HOGE; public function foo(){ System.out.println(HOGE) // ここでB.HOGEを参照 } } class B extends A{ static{ HOGE = "bar"; } }
protected abstract String getHo();
実用アプリのソースを読んで学びたいという気持ちは理解出来るな。 自分もなんかかんか言いつつ大学でも企業でも、配属された組織がそれなりの規模の システムやフレームワークを開発運用していて、そのソースを読んで使って拡張する 中でその分野の技術を学べた。 なので例えば素直なつくりで学べる規模のWebアプリならうちのある社内システムの ソースなんか丁度良いよなぁとは思うのだが、紹介できないのが残念だw ちょっと真面目な話をすると、WebアプリならSpring MVC系とかPlayといった有名 どころのフレームワークのチュートリアルを一通りなぞるのも良いと思う。 これは別にフレームワークの使い方を学ぶのではなくて、こうしたチュートリアルには ウェブアプリを設計する上での定番的な設計法が現れているので、幾つか試して比較する ことでその辺りも見えてくるのではと。
475 :
デフォルトの名無しさん :2013/05/18(土) 16:31:17.07
>>474 うらやましい
俺が担当することになったやつは
コンストラクタに1万行全てのソースが入ってたぜ
今どき冗談や都市伝説でなくて本気でこんなものがあるんだと逆に驚いた
昨日書籍の質問した奴だけど返事くれてる人たちありがとう 実際に使われてるWebアプリケーションとか見てみたいな 昨日のレスを参考に今日書店行って何冊買ってきました
477 :
デフォルトの名無しさん :2013/05/19(日) 21:00:35.83
初歩の初歩の質問ですみません 変数の宣言→値の代入→四則演算を行なって結果を変数へ代入→入力値の画面表示→計算結果の画面表示を行うソースコードの値の代入の部分を変数a、bの値をキー入力にするよう改造しろと言う内容の課題が出ていました 少し調べたのですがJavaの講義回数も少なく、知識が浅いためいまいち理解出来ませんでした・・・どなたかお助けお願いします・・・
478 :
桃白白 ◆9Jro6YFwm650 :2013/05/19(日) 22:01:10.93
>>477 桃白白がお願いされちゃう
friendpaste.com/7GH15mAhlzIaMW6S1QqXW7
>>478 え?
parseInt() でも try ~ catch ~ finally 節を書くんだ‥‥
一生 java を体得できないだろうな‥‥
俺だったらtryだけ書いてcatchは書かないな
この程度でfinally書く奴はたいてい低脳
482 :
桃白白 ◆9Jro6YFwm650 :2013/05/20(月) 20:24:31.13
>>481 うそつけ、うそじゃそんなもん。桃白白絶対信じない。
ごめんねjavaを理解できないのは私QZのことね結構好きなんだけれども好きと思ったからといって全部理解できるとは限らないんですね片思いの心境です
>>480 finallyはtry with resourceで削除すべき
だろうけど、catchはすべきでは?
自分がハンドリングできるもの以外は
上位にスローするのがセオリーだけど、
この場合は原因が明確で自分がハンドリング
すべきものだと思う。
あと、System.inって閉じてもいいんだっけ?
485 :
桃白白 ◆9Jro6YFwm650 :2013/05/20(月) 21:40:33.06
>>484 catchしてもどうしようもないだろ、じゃあcatchするべきじゃないよな。
System.inは閉じたらダメだろ。その発想に引くわ。桃白白ドン引き。
初歩の初歩で例外処理はやらんだろ 次の講義あたりでやるんじゃね?
>>485 >System.inは閉じたらダメだろ。その発想に引くわ
お前のコードが閉じてるから指摘されてんだろ
488 :
桃白白 ◆9Jro6YFwm650 :2013/05/21(火) 03:36:28.61
つまり自分自身にドン引きってことか
490 :
桃白白 ◆9Jro6YFwm650 :2013/05/21(火) 04:11:58.30
>>489 |ヽ∧_
ゝ __\
||´・ω・`| > やめなよ
/  ̄ ̄ 、ヽ _______
└二⊃ |∪=| |─── /
ヽ⊃ー/ノ  ̄ ̄ ̄ ̄ ̄
 ̄`´ ̄
メンヘラはたいてい自分のことが大嫌いだからな
自分が大好きなのもメンヘラだけどね
493 :
デフォルトの名無しさん :2013/05/21(火) 17:08:32.63
質問失礼します。 Windows上でJAVAの開発を行っています。 eclipse上では正常に動作するのに、コマンドラインから java -jar hogehoge.jar として実行すると、 正常に動作しないという事象が頻発しており困っています。 1つの具体例を挙げますと、 String clLookAndFeel = "javax.swing.plaf.nimbus.NimbusLookAndFeel"; UIManager.setLookAndFeel(clLookAndFeel); 上記のようにルック&フィールを設定している箇所があります。 eclipse上では正常に動作するのですが、コマンドラインから実行すると、 ClassNotFoundException が出力されます。 どのようにしたらExceptionが出ないようになりますでしょうか? よろしくお願いします。
>>493 Eclipseは新しいJavaの実行環境で動かしてるからそのまま動くけど、
古いJavaの実行環境入れっぱなしでコマンドラインからはそっち使ってるとか。
古いJavaの実行環境だとjavax.swing.plaf.nimbus使えなかったはずだから。
>>494 返答ありがとうございます。
Eclipseのバージョンは以下のものを利用しています。
Eclipse Java EE IDE for Web Developers.
Version: Juno Service Release 2
Build id: 20130225-0426
JDKのバージョンは、以下のものを利用しています。
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
JDKはとある事情により 1.7 からバージョンダウンしました。
Eclipse と JDK は再インストールしたほうが良いのでしょうか?
496 :
493 :2013/05/21(火) 17:51:52.27
493の事象ですが、 for (LookAndFeelInfo clInfo : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(clInfo.getName())) { UIManager.setLookAndFeel(clInfo.getClassName()); break; } } 上記のようにすると、なぜかコマンドラインからでも正常動作するようになりました。 この件に関してはクローズさせていただきます。 他の事象を確認して、また壁に当たったら再度書き込みたいと思います。 ありがとうございました。
なぜか動作するのが一番困るんじゃないの? 知らないところで別のバグ出して大変なことになりそう
そこかしこにassertを仕込めばあるいは
500 :
デフォルトの名無しさん :2013/05/21(火) 23:38:06.44
何言ってるかワカリマセン
そこか! しこにassertを仕込め、ばあ! るいは(ともをよぶ) 《意訳》そこにいたのか! 気付かなかった! おばあさんや、お相撲さんのしこにassertを掛けておけば、強い力士になれる。「類は友を呼ぶ」の言葉通りに。
昔は言論統制があって、禁止用語をしゃべったために話し手が「類は友を呼ぶ」と言おうとした途中で殺されたという説が有力です。
古文を勉強した人なら、「しこ」と「仕込め」が掛詞になっていることに気付くでしょう。しこしこめ
つまりどういうことだってばよ
505 :
493 :2013/05/22(水) 02:52:40.82
連続質問すいません。 Runtime runtime = Runtime.getRuntime(); this.mPServer = runtime.exec("java -jar server.jar"); 上記のようにしてクライアントからサーバーを立ち上げて、そのサーバーと送受信を行うソフトを開発中です。 ソケットで送受信するプログラムを仕込み、Eclipse でクライアントを実行してしばらくすると、サーバーが音信不通になります。 プロセスは残っているのですが、送受信ができない状態です。 定期的にログを出力しているのですが、エラーは出されておらず送受信開始後ピタッとログが止まっています。 try catch は何度も確認したので error を握りつぶしている可能性はありません。 CPU占有率は 0% で busy 状態にはなっていませんでした。 Eclipse でサーバーを実行した後、コンソールでクライアントを起動すると正常に送受信が行われます。 busy でもエラーでもなく終了せずに挙動が止まるという事はありえるんでしょうか?
506 :
493 :2013/05/22(水) 02:54:05.37
>>498 >>496 の件は clInfo.getClassName() が Eclipse 実行時とコンソール実行時で違っていた事による問題でした。
Eclipse では javax.swing.plaf.nimbus.NimbusLookAndFeel
コマンドラインでは com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
508 :
493 :2013/05/22(水) 13:11:03.62
>>507 ありがとうございます。
java -jar のコマンド実行周りを別スレッドにして、
教えていただいたページを参考に標準出力を別スレッドで管理する事で解決する事ができました。
509 :
デフォルトの名無しさん :2013/05/22(水) 18:20:29.68
質問です。 Teppan t = new Teppan(); t.Kakikomi(); System.out.println("miは"+t.getage()); System.out.println("計算したのは"+t.juu()); t.Kakikomi(t.juu(),"多摩だ"); t.Handan(); }
510 :
デフォルトの名無しさん :2013/05/22(水) 18:23:00.35
>>509 つづき
static class Teppan
{
int age;
String name;
int i;
void Kakikomi(){
this.age=19;
}
void Kakikomi(int a,String b){
this.age=a;
name=b;
}
511 :
デフォルトの名無しさん :2013/05/22(水) 18:25:39.25
>>510 つづき
void Handan(){
System.out.println("ageは"+this.age);
System.out.println("nameは"+name);
}
int getage(){
return this.age;
}
int juu(){
int y;
for(y=0;y<10;y++){
i+=y;
}
return i;
}
これでコンソールすると数字が上から19,45,90になるんですが、なぜ45から90
になるんですか?
juuの中でiを初期化していないから。 juuを二度呼べば45+45で90。
513 :
デフォルトの名無しさん :2013/05/22(水) 18:39:03.37
Swing LookAndFeel、アプリ開発者が自分の好みで決めちゃうのって、どうなの…
jarコマンドを使うためにpathにjar.exeを設定するためにJAVAをDLしろといわれたので、 JAVAのホームページに行ったらJRE7とかいうのをDLしたのですが、binの中を探してもjar.exeがありませんどうしてですか
jdkが必要なのにjreをダウンロードしたから。
ありがとうございます、最後にもう一つだけ質問ですお願いします \xxx>jar xvf abc.WAR を実行したのに、次の行では \xxx> が表示されていて、解凍にも成功していないようです 原因として何が考えられますか? 正しい入手元なので、WARファイルが破損しているという可能性は多分ないです
warはzipで解凍しろ
jar だけコマンド打ってusageがでるの?
>>518 .zipにして展開したらzipが空ですと言われました
答えがでてるやん
いえ、中身はあります別のアーカイブ展開ツール使ってみたらちゃんと出てきました
じゃぁ、それでいいやん。
なんでコマンドで解凍できなかったか気になったので質問しました
最初からそう書いておけよ。 pack200がらみぐらいか?
jar xvfって不正なファイル名を出力する糞ツール?
商品マスタの存在チェックを共通したいのですが、どのように作るのがベストしょうか?
528 :
デフォルトの名無しさん :2013/05/23(木) 23:18:27.76
よろしくお願いします。 SWT+JFaceでGUIアプリケーションを開発をしております。 ダウンロード等の長い処理を実施しているときにステータスバーにアイコンを表示させ、 処理が終わるとアイコンを消すという動きを実現させたいんですが、 ステータスバー上に置いたアイコンの制御がうまくいかず困っています。 ■コンポーネントの親子関係 ActionBarAdviser └IStatusLine・・・・・・(ステータスバー) ├IContributionItem │├Canvas・・・・・・(アイコン) │└Canvas・・・・・・(アイコン) ├IContributionItem └IContributionItem : イメージとしてはEclipseでビルド等を行うと右下のほうに出る緑色のボタンみたいな感じです。 このアイコンのsetVisible(boolean)を呼び出して表示/非表示を切り替えるんですが、 上記のダウンロード処理を別スレッドで実行し、スレッドの終了時点でDisplay#asyncexec()に処理を渡しても アイコンが切り替わりません。 Ecripseのデバッグで追ってみたんですが、アイコンのvisibleステータスは確かに切り替わっているよう だったんですが、各アイコンのredraw()を呼び出しても効果はありませんでした。 アイコン自身にマウスクリックイベントのリスナをセットし、リスナからsetVisibleを呼び出すと、 正常にアイコンが非表示に切り変わるため、呼び出し方の問題か、と考えております。
(つづき) 現在の処理は下記のように実装してます。 ご助力よろしくお願いします。 (new Thread(){ public void run(){ Shell parent = (親シェル); Canvas canvas = (アイコン); // ダウンロード処理 DownloadClass.execute(); // ボタン切り替え処理呼び出し parent.getDisplay().asyncexec(new Runnable(){ public void run(){ canvas.setVisible(false); } }); } }).start();
親スレッド側にはメッセージループはあるんだよね?
オブジェクトの比較について質問です。 final longのid値をフィールドに持つBeanにおいて、equals()の実装をid値の比較として実装しました。 # 別インスタンスでもid値が等しければtrue. そのため、hashCode()もid値から算出した値にしたのですが、このようなインスタンスが違うのに等価とするような実装はJava的に許されているのでしょうか? 書ける書けないではなくお作法的な意味です
Stringのequalsってどうなってる?
>>533 Stringは同じ文字列だと文字列プールから同じインスタンスが戻される仕様になってる
>>534 半分
new Stringした場合は別のインスタンスになるから格納されている文字列の比較になるな
なんか意図しないレスが付いてるww String a = "test"; String b = "test"; if ( a == b ) System.out.println("true"); String c = new String("test"); String d = new String("test"); if ( c == d ) System.out.println("true"); の違いやね。
>>532 インスタンスが違っても中身が等しければ等価でいいけど普通それはidだけじゃなくて全フィールドを比較する
idが等しいだけで他の値が異なるものを等価扱いして自分は混乱しないか?
混乱しないなら、まぁ、いいんじゃない
id取得して比較すればいいのに 面倒だからってequals()にやらせるなよ 使う側がフィールドの値も全部同じだと勘違いしてバグの元
532です、レスありがとうございました やはり正しくない実装のようですね 全フィールド比較にします
正しいか正しく無いかを決めるのは自分だと思うんだが。 わざわざStringの話がでてるのに、なんでそうおもうの?
たしかにわかりやすいかどうかならわかりにくいやり方だと思うけど 求められる仕様としては正しいってことはよくある 書ける書けない、お作法的に正しい正しくない、仕様として正しい正しくないは全部別の問題だな
Hibernateが吐くエンティティオブジェクトが確かそんな実装になっていた記憶が。 基本的にequalsはクラスとidの比較をしていたような。
HibernateのEntityってテーブルのレコードだよな しかも物理キーとしてidを持つ仕様だからそれで合ってる気がする
おい、糞ども。 俺の一番嫌いな言葉は「オブジェクト指向」だ。
545 :
デフォルトの名無しさん :2013/05/25(土) 15:39:32.77
オブジェクト指向が理解できなかったんだろう。
アランケイあたりが、今の意味のオブジェクト指向を理解していたとは思えないんだけどな。
アラン・ケイ「オブジェクト指向(Object-Oriented)という言葉は私が作った。そのとき、C++ を想定していなかったことは確かだ」 おそらくJavaについても。
大まかな全体の機能を部品に分けるだけの指向を理解できないってどういうことだってばよ
当時は、そういったものはクラスライブラリを扱うためのテクニックで、 「オブジェクト指向」そのものではなかったんだ。 クラスライブラリを扱う方法をDBに応用したものが80年代の半ばに 「オブジェクト指向データベース」なる論文として発表されていて、 そのあたりで狂ってしまったと思う。
皮肉に決まってるだろw
Javaでオブジェクト指向といえばもちろん ORMの型=モデルで処理は全部コントローラに書いて MVCと言い張るアレのことですよね?
処理をどこに置こうと生産性やチームでの理解や利便性が高ければ立派なオブジェクト指向なんだよ 一人で作ったゴミみたいなオナニーソースでも本人がオブジェクト指向と言えばそれはオブジェクト指向なんだよ
>>552 それどちらかというとRailsからの影響がでかいような・・・
最近PlayFrameworkの記事が多いきがするんだけど、盛り上がってるの? このフレームワークはゴミとか言っている人いたんだけど
>>528 同様、俺も
>>514 が気になる。
ソフト開発者が見せたいルック&フィールを明示的に指定するのはNGなのか?
Alt + F4 を無効にするソフトは糞だと思っている。
それと同じくらいダメ?
何がどうNGなのか プラットフォームの空気を読まないアプリはクソって意味? んなもんJavaを選択した時点で既に十分NGなのに何を今更
オブジェクト指向 って日本語としてどうよ?
変ですね。終了。
560 :
桃白白 ◆9Jro6YFwm650 :2013/05/26(日) 09:37:06.65
>>558 いんじゃないか。他に適切な言い方ある?オブジェクト中心とか?ダサいだろ。
どこの@ITだって話じゃん。
「oops(うっぷす)と呼ばれる特徴を持った プログラミング言語」
object-oriented 目的志向 オブジェクトオリエンテーション 最初に翻訳した人、どっちかにすればよかったのにな
565 :
桃白白 ◆9Jro6YFwm650 :2013/05/26(日) 10:30:34.45
>>564 それはないわ。目的同士がやりとりするなんて言い方
日本人として言っちゃいけないわ。国籍返上するべきだわ。
対象物指向
orientedは志向で迷わなかったが objectに対する日本語は人によって感じ方が違うとか
日本語で目的というと形のないものというニュアンスが強いから 不適切だと思うわ
俗物思考
主語・動詞・目的語の、目的語指向だよな
Javaはオブジェクト指向的言語であって 純粋なOOPじゃないだろ 信者うざすき
Smalltalkでしょ、それくらい知ってますよ
Java使いは「interfaceこそOOの真髄で interfaceの無い言語はOOにあらず、 OOの起源はJavaニダ」 という教義を信仰するからね。 せめて「OOPの一つ」ぐらいに妥協したほうがいい。
574 :
桃白白 ◆9Jro6YFwm650 :2013/05/26(日) 11:51:21.65
>>570 桃白白、それ違うと思う。
Smalltalkではオブジェクトはメッセージを受け取るものと定義されてる。
日本語文法の目的語は対象格とも呼ばれるもので一見よさそうに思えるけど、
「桃白白がメッセージを受け取る」というとき、目的語は「メッセージを」になる。
メッセージを受け取るのは主語である「桃白白が」だから、
オブジェクト指向のオブジェクトは日本語文法では主語になる。
>>567 事物、物体、対象。意味のわからないのはカタカナと変わらないな。
LOGOがペイント系にマクロつけたみたいなのだったに対し、
SmallTlakがドロー系にマクロつけたみたいだったから、
うっかりすれば図形指向みたいな継続不能の翻訳になったかも知れない。
オブジェクトじゃなくてヴィジュアル指向みたいな名前にしていたら、
アラン・ケイの名前は残らなかっただろう。
C->C++の時に思ったのは 「構造体に関数が入って、変数・関数共に外部からの制御が出来るようになった」 だけ 「オブジェクト指向なんて大層な言葉をつかうなよ」
ノウハウを整理したものだからな 単なる再入可能なモジュール
ぽりもとかですとらくたとかあるじゃん
>>573 interfaceって土方用ための言語仕様じゃないか。
そんなものありがたがってるなんて。
go back
「オブジェクト指向(プログラミング)」といっても大きく分けて出自の異なる二種類がある。 ひとつはアラン・ケイが提唱した「オブジェクトにメッセージを送るメタファで全部やる」アイデア。 「メッセージ指向」とも言う。メッセージパッシングが注目されがちだけれども、これは飾りで、 本質は「できるだけ動的になんでもやる」というところ。 それでどこまでできるか試しに作られたのがSmalltalk。言語処理系というよりは、 彼の考える理想のパーソナルコンピューターの暫定的・仮想的なOSとして作られた経緯がある。 もう一つはビヨーン・ストラウストラップが提唱した「クラスをユーザー定義型として利用する」アイデア。 抽象データ型のオブジェクト指向とも言われ、「カプセル化、継承、多態性」がこれの三要素と言われるけど、 カプセル化は抽象データ型(ユーザー定義型)と同義だし、継承と多態性はクラスの特徴なので 先の「ユーザー定義型をクラスを使って実現する」という考え方の言い換えに過ぎないことは 意外と知られていない。この考え方の実験として作られたのが C with Classes。 C++もこの考え方を強くサポートする(が、それのみではない)。 最近はこの二つとは別に第三のプロトタイプベースのオブジェクト指向というのがあるけれど、 これは Smalltalk で(本質ではないしケイも嫌っていた)クラスを導入したばかりに メタクラスとかいろいろと複雑になってしまった反省として生まれた、もともとは メッセージング指向を純化した考え方だったんだけれども、そのうち「メッセージ」なんていう メタファも不要でない?となって、フレーム(オブジェクト)とスロット(属性)、あと委譲のための 特殊なスロットさえ用意されていればOKというミニマリズムに落ち着いた。JavaScript は この考え方に多く従うメジャーな言語のひとつ(もちろん純粋ではない)。 Java は Smalltalkライクなブジェクトモデルと Cライクな文法を使って、C++ライクな オブジェクト指向(メッセージングではなく抽象データ型のオブジェクト指向)として作られた。 ちなみにインターフェイスというのは「クラスを抽象データ型」として使う際の欠点を補うために 作られた言語機能で Objective-C のプロトコルという言語機能が元ネタ。
(天国のアラン・ケイが、コンピュータからの直系ではなくて、 電話から進化した高機能ガラケーやスマホを見たらどう思うんだろうか……) なんて考えたことがある。 んでWikipedia見たら、まだ生きてんじゃん!! リッチーはこの前死んじゃったけど、 コンピュータ史での「伝説の人物」って、みんなわりと健在なのね。
>>582 酷い先入観だけど、ギークは、コーラやハンバーガーを食いまくっているから成人病を患いやすく、短命だと思い込んでいたw
>>583 それってぎーく以前にアメリカ人の問題だろう。
でもここだけの話、日本人の技術者がみな ninja なのは本当だぞ
>>585 おっとそれはインターネットじゃ言っちゃいけない掟を忘れたか。
SAMURAIプログラマーはいなくなってしまった。
バグを出したら切腹するため絶滅したSAMURAIプログラマー バグを仕込んでシステム崩壊させるNINJAプログラマーは繁栄
SAMURAI-PG「BUSHIDOは死ぬ事と見つけたり グフッ…」 バグも見つけられないくせに。
Java初心者です
お恥ずかしい質問ですがよろしくお願いします
本を見ながらJavaの勉強を始めたのですが
最初の簡単なJavaプログラムを作ろうという手順で
public class Lesson03 {
public static void main(String[] args) {
System.out.println("Hello Java !");
}
}
というコードのソースコードを作ったのですが
コマンドプロンプトで起動したところ
http://i.imgur.com/QE1DF90.png このように、うまく表示されないのです
ソースコードの何処かにミスが有るんでしょうか
教えてください
超初心者の質問だとわかっていても笑ってしまった
javacはソースコードをコンパイルして実行できる形式にするだけ 実行するときはjavaコマンドを使う
>>592 あ、なるほど
勘違いしていました
おかげで解決しました
ありがとうございます
質問の仕方がとても丁寧なだけにむしろほのぼのした。GJ w
学生か新卒社会人かね。 質問はなんてことない、初心者らしい簡単な勘違いだけど、 スクショ画像の「←ここに表示されるはず」って注釈が素晴らしいな。 将来有望だね。
こういう質問が出ないようにコマンドプロンプトまで載せてる本あるよね
>>590 を読んで、「Windowsの電卓アプリに"1764÷42="と入力するとOSがフリーズする。」という古いジョークを思い出した。
初心者のためにもユーザーインターフェースは大切だね。
どゆこと?
>>597 windows持ってない初心者な俺にもわかるように話してくれ。
600 :
デフォルトの名無しさん :2013/05/28(火) 23:47:57.90
割る数と商が同じ42だから 計算結果が表示されず画面に変化がないように見えフリーズしたと勘違いしてる
601 :
デフォルトの名無しさん :2013/05/28(火) 23:48:52.72
602 :
デフォルトの名無しさん :2013/05/28(火) 23:49:33.88
>>600 なろほど。でも、従来の物理的な電卓がそれで受け入れられているのだから、踏襲した判断は正しいと思う。
>>603 従来の物理的な電卓では、「=」を押すと画面表示が一瞬消えるはず
>>605 Windowsの電卓では、一瞬消えたようには普通は見えないと思う
というか、消えてるか?
607 :
597 :2013/05/29(水) 00:59:38.45
意味は
>>600 が書いてくれた通り。
Windows2000辺りで標準インストールされていた電卓アプリは数字しか表示しないお粗末なものだった。それを揶揄した古いジョークです。
609 :
デフォルトの名無しさん :2013/05/29(水) 01:41:39.41
再描画だけで消してないのね
再描画するとき消さないのか。
消さないならフリーズというかバグってるように見えるなw
そもそも普通に使っていてWindowsがフリーズしすぎだから‥‥‥
613 :
デフォルトの名無しさん :2013/05/29(水) 03:01:08.27
嫌われてんだよ
>>600 理解できないなぁ
数字の変化はないが、これがフリーズと思う人なんかいるのか?
だから元はジョークなんだってば 俺が開発したソフトもコレと似たような問題があって 画面が書き換わっている描写をわざわざ作りこんだわ
電子工学やって工業英語やって数学やって論理学やって言語学やって さらに工業デザインと心理学までやらなきゃ、 「まともな電卓」ひとつ作れないってことだな…。頭痛くなるな。
>>615 ANRではないがANRのようなもの って事だね
Googleに解説があったような...ユーザーが...変化がないと...どうたら、こうたら、かんたら...
同じ欄を使い回す設計がよくない 数字なんか特にそうだけど、書き換わっても気づかないのが当たり前というレベルだし
String[] args String args[] はどう違うのでしょうか?
ファイルとディレクトリを含むzipファイルの中身が指定したディレクトリに存在するか確認する方法はありますか zipのファイル名を一括で取得する方法は調べましたがディレクトリと分けて確認する方法がみつからない
>>619 同じ
String[] argsのほうが自然だが、他言語経験者に配慮して
String args[]でも可とした
C脳への配慮はJavaの汚点 デフォルトアクセスレベルがパッケージスコープとかな
一番の汚点はプリミティブ型だろ。
String配列同士の要素の順番関係なしに内容が全て等しいかを比較する方法ないですか?
比較すれば良いだけだが何かお困りで?
やっぱループして処理するしかないのか
JABA.util.Arrays.equals
順番関係無しって何だ? cloneしてArrays.sortしてArrays.equals比較しろってこと?
>>621 >>String[] argsのほうが自然だが、他言語経験者に配慮して
>>String args[]でも可とした
String[] argsが自然な人はC・C++ or多言語未経験者だな
じゃばら~以外は気持ち悪くて使えない
>>630 今時配列がオブジェクトじゃない言語の方が珍しいくらいだが
>>632 C#とか? 知らんけど
インタプリタはどうでもいい
なんだ馬鹿が知ったかしてただけか
>>621 そんなすぐなれることに配慮するの辞めて欲しい
>>635 そんなことよりもじゃわ自体をなくして欲しい
アンドは実質じゃわでの開発になるが、 PCでじゃわなんてやらされるのは屈辱だろうな C/C++プログラマにとって
俺もC#があればJavaなんて要らないと思う
シーゲンガーにジャパは難しいだろうからなw ポインタもCの単純な参照渡ししか理解してなくて配列のポインタに newしたオブジェクトとか入れて「ファッ!?」とかなってる奴いっぱいいそうだ
windows以外ではC#のサポートは弱く感じる
JavaとLinux を滅ぼすという使命をもって作られたからな
String args[]でも可だけど そういう記述している本は投げ捨てた方がいいなどと言われてる
Javaは配列自体が参照型なんだから String[] a1; の方が自然に決まってる。 ところで main(String[] args) と main(String... args) との比較はおまえらどっちですか? mainは可変個の情報を受け取るものだから 後者が自然と思う。
ideの自動生成に任せる つまりString[] argsの方を使う
java初心者です。 継承について勉強しているんですど、参考書にフィールドはprivateで宣言して、アクセサで参照したほうが拡張性の高いクラスになるって書いてあって、その理由も理解できるんですけど、privateはサブクラスに継承されないんですよね? 参考書にサブクラスで、スーパークラスのアクセサを用いてスーパークラスのprivateフィールドを参照(セッター)している所があるんですが、これってprivateのフィールドを継承出来てるってことじゃないんですか? 長文失礼しました。回答お願いします。
>スーパークラスのアクセサを用いてスーパークラスのprivateフィールドを参照(セッター)している所があるんですが、これってprivateのフィールドを継承 いやそれは違う
>>646 サブクラスのインスタンスを宣言した時点でメモリが確保されますよね?privateフィールドの値を設定できるって事はその分のprivateフィールドのメモリもあって、継承してるように感じるのですが…
私の継承への認識は何か勘違いしているのでしょうか?
>>647 「継承」の用語の定義の認識が違う。
クラスB(private int iを持つ)をクラスDが継承しているとき
もちろんDにはiが含まれるがそれを
「メンバーiを継承している」とは言わない。
メンバーについての「継承」は
「継承するクラスの型の参照経由でアクセスできるか?」
的な意味で使用する。
649 :
デフォルトの名無しさん :2013/05/30(木) 22:56:29.88
privateなメンバ変数のスコープはクラスだから継承しても子クラスからは参照出来ない 言語規約で継承とはそういうお約束になっていると思ってください
言語仕様で継承の定義は無いが そのような意味で使用されている。 8.4.8 Inheritance, Overriding, and Hiding A class C inherits from its direct superclass and direct superinterfaces all abstract and non-abstract methods of the superclass and superinterfaces that are public, protected, or declared with default access in the same package as C
ありがとうございます
私の継承の認識が間違ってたみたいですね。
確認ですが、
>>648 さんの例で言うと
①クラスDのインスタンスのメモリ上にはprivate フィールドであるiのメモリも確保されている。
②クラスD.iのようにクラスD経由でのアクセスはprivateによって出来ない。
③クラスBにあるアクセサからならクラスB経由なので、iに値を設定できる。
この認識であっているでしょうか?
yes
ここ3日程継承について困惑していたので、スッキリしました。 思いきって質問してみて良かったです。ありがとうございました。
ループ内で毎回キャストを使うようなプログラムを書いたら処理が重くなったんですが、 Javaのキャストって、結構コストがかかるもんなんでしょうか?
File.createTempFileで作られるファイルの場所って指定できないでしょうか? xmx見たいな感じにjava -temp=bar foo.jar 的な感じで指定できたらいいんですけど createTempFileをつかうfoo.jarの中身はいじらないでできる方法がしりたいです
-Djava.io.tmpdirで自己解決
>>655 http://docs.oracle.com/javase/jp/7/api/java/io/File.html#createTempFile (java.lang.String,%20java.lang.String,%20java.io.File)
> directory 引数が null の場合、システムに依存するデフォルトの一時ファイルディレクトリが使用されます。
> デフォルトの一時ファイルディレクトリは、システムプロパティー java.io.tmpdir で指定されます。
> UNIX システムの場合、このプロパティーのデフォルト値は "/tmp" または "/var/tmp"、
> Microsoft Windows システムの場合は "C:\\WINNT\\TEMP" です。
> ただし、Java 仮想マシンを起動したときに、このシステムプロパティーに別の値が指定されることがあります。
> プログラムを使用してこのプロパティーを変更しても、このメソッドが使用する一時ディレクトリを変更できるとは限りません。
>>654 いいえ。
キャストが重いというのは通常ないと思います。
ただのキャストだと思ってオートボクシングしてるかもよ?
ループのたんびにClassCastException出ていたら遅いかもねー
7のAPI、日本語化してくれたのはありがたいんだが、 lang="en"のままとか、色々と仕事が雑だ。 HTMLにcharset指定入れてるのはjavadocでなくTRADOS製翻訳ツールらしい。 翻訳業者にはjavadocソースじゃ無くてHTML出力渡してるとかいうオチかな?
質問です。 double での余りを算出したいです。 C言語にはfmodという関数がありますが、それにあたるJAVAの関数はありますでしょうか? よろしくお願いします。
>>663 java.lang.Math#IEEEremainder(double, double)
666 :
663 :2013/06/02(日) 16:27:04.64
667 :
663 :2013/06/02(日) 16:30:56.14
>>665 あああ。。。
double でも % 使えたんですね。
失礼しました。
>>664 IEEEremainderはfmodと結果違うでしょ。
fmodに対応するのは%じゃないの?
補足。 2.9 ÷ 1.0の計算で 余り0.9が欲しいなら % (Cのfmodはこれの筈) 余り-0.1が欲しいならIEEE
なんだこいつ
時刻と気温のペアが大量に記録されています。 時刻aから時刻bまでの間の最高気温と最低気温を同時に問い合わせるのに適した索引はどんなのですか?
>>672 DBスレで訊けボケナス。
時刻にインデックスを付ける。
間引いた時間帯ごとに最高と最低を持つ。
>>675 話が理解できず単語レベルで反応する
アスペさんですね
(^p^)
ボットにマジレス、カコワルイ
for(i=a;i<=b;i++){ if(maxtmp<tmp[i]) maxtmp=tmp[i]; if(mintmp>tmp[i]) mintmp=tmp[i]; } これでおk
aとbは時刻だよ
適切な索引をきいているのに
>>679 は回答になってないだろう
>tmp[i] この時点でデータ構造が何かへんだぞ。
まずデータはメモリ上なのかディスク上なのかが解らないと何とも。 何れにしても単なるレンジスキャン以上に効率を上げたいのであれば事前にドリルダウン 集計した表とか用意しないとMINやMAXの場合は多分ダメと思う。
大量と書いてあるからメモリはまずいよね?
ドリチン?ダウン? (@_@)?
洒落にならない巨大さだったら、ウェーブレット木とかかなあ
>>672 あえて java.util.NavigableMap を勧めてみるテスト
extendsしたときってthisつけた方がいいのですかね? 例えば extends Canvasなら this.setPreferredSize(new Dimension(width, height)); みたいなことです。 自分は、 public void setX(int x) {
extendsしたときってthisつけた方がいいのですかね? 例えば extends Canvasなら this.setPreferredSize(new Dimension(width, height)); みたいなことです。 自分は、 private int x; public void setX(int x) { this.x = x; } のような場合のみthisつけるようにしています
>>692 別につけなくてもいいと思うが、
どうしても親クラスのメソッドフィールドにアクセスする時に接頭辞付けたいなら、
thisじゃなくてsuper使った方がいい。
最近はIDEやエディタの方で色分けしてくれる事が多いので別につけなくてもいい。
String s = 'a' + 'b'; これはできないのに、 String s = 'a' + 'b' + ""; これができるのはなんでなの?
Javaってシングルクオートが使えたのか
シングルクオートはchar型か、C言語と同じやな。
オートボクシング
699 :
桃白白 ◆9Jro6YFwm650 :2013/06/03(月) 17:14:34.70
>>695 たぶんこれ。
Chapter 15. Expressions
http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.18 +をAdditive演算子と呼ぶ。
Additive演算子の結合法則は左から右。
被演算子のうちどっちかが文字列だったら文字列の結合が行われる。
文字列の結合ではchar型のxという値を(new Character(x)).toString()で文字列にする。
String s = 'a' + 'b' + "";
String s = 195 + "";
String s = (new Character(195)).toString() + "";
String s = "195";
こんなふうに変換が行われる。これは実行時に行われるのか?よくわからん。
boolean型と同様、char型も四則演算禁止にしとくんだったと
オートボクシング
Javaの仕様で好きなのは drawString(String, int, int)みたいなメソッドを int i; drawString(i, 10, 10); と書くとエラー吐いてくれることだねぇ 正しくは drawString(i+"", 10, 10); 確かC++だと普通にコンパイル通っちゃうよね
たまにこうしたくなる for (char i = 'A'; i <= 'Z'; i++) a[i-'A'] = String.valueOf(i);
きんもー☆
それ意味なさすぎじゃね?
文字置換でもcharとintで演算するよね char同士の演算がしたいケースって何かある?
1byte整数や2byte整数を扱いたいときどうすんのよ
intで演算子すればいいだろ
>>708 1byte整数→byte
2byte整数→short
パフォーマンスの改善について質問です。 重い処理が2つあり、どうにか分散化できないか悩んでいます。 Windows , OS X , Linux 上で動かそうと思っています。 マルチスレッドにすると、マルチコアCPU搭載のマシンでは適当に処理が分散されると認識しています。 まず、その認識は正しいのでしょうか? マルチコアCPU搭載のマシンで、重い処理の1つをコアAのCPUで処理して、 もう一方の重い処理をコアBのCPUで処理するという事を、明示的にJAVAで指定する事は可能なのでしょうか? 「マルチスレッド化」「重い処理をC++等のネイティブで書いて、そのライブラリを呼び出す」以外に、軽くする方法は無いでしょうか?
「何が」重いのかによって異なる。 I/Oが重いなら本質的にI/Oタイムの短縮は難しい。 単純な計算で重い場合もスレッドに分割できない処理もある。 あとは具体的にどういう重さなのかがわからないとコメントは 難しいと思う。
713 :
711 :2013/06/03(月) 23:19:25.53
>>712 JBox2Dというライブラリをシングルスレッドで処理しています。
メインの処理(私が書いたもの)とJBox2Dの処理、どちらも重いので困っています。
JPhysXというのを見つけましたが、PhysXボードが必要なため組み込みを見送りました。
JavaプログラマがJavaプログラムをマルチスレッド化しないかぎり Javaアプリがメニーコアの恩恵にあずかれることは普通ない。 GCが早くなるとかぐらいはあったかもしれないが。 そしてJavaでコア指定は無理。単一のCPU待ちリストから各コアがタスクをひったくっていくイメージ
716 :
711 :2013/06/04(火) 00:25:25.32
>>715 ありがとうございます。
結局は処理の重い方に引きずられそうですが、
分散化できそうなのでマルチスレッドにしてみます。
>>716 違う処理を同時にやるのはマルチコア活用という点では効果を得にくいよ
可能ならデータ並列やるのが簡単で効果高い
いきなりマルチスレッド化に挑戦するのではなくて各処理に要する時間などのプロファイルを とってみるのが先決だろうなぁ。どんだけ短縮できそうか算段をつけてから作戦を立てる。 「とりあえずやっちゃってから結果を見る」が許されるのは旧日本陸軍まで。
すべてのフィールドとメソッドにsynchronizedが付いてる糞コードを見たときに感じた気持ちは、
あえて言葉にするなら、まさに「旧陸軍」だわwww
>>711 は、もし「メインの処理」ってやつが描画処理を含むなら、
java.awt.Graphics2D#setRenderingHint() を調整して試してみるのも良いかも。
重い描画処理なら、速度に数倍の差は出ると思う。
volatileimageを自前で使わなくてももう十分速度出るんだっけ?
volatileはあまり見なくなったけどそれでもopenGL使ってたりするようなソースではまだ見るね 向こうの学校等ではきっちりやってる感じがする
722 :
711 :2013/06/04(火) 19:29:16.90
>>717 JBox2Dのワールドをマルチスレッドでいくつも作る予定です。
同じような処理を複数のスレッドで実行します。
マルチスレッドにするとマルチコアの恩恵を受けれそうなので、
今回はマルチスレッドにしてみようと思っています。
シングルスレッドよりも早い、、、はずです。
723 :
711 :2013/06/04(火) 19:35:43.09
>>718 幸いにもJAVAのスレッドの管理が物凄く簡単なので、
とりあえずマルチスレッドにしてから時間を算出してみようと思っています。
「やってみたら意外とアッサリと占領できた」なんてケースもありますから、
今回は旧日本陸軍で良いですw
>>719 描画ライブラリはlwjglを利用しています。
openGLの薄いラッパーなので速度的には申し分なく、満足しています。
>>722 ワールドってワールド座標系のこと?
ゲームみたいなアプリケーションだとワールド座標系は単一で
ローカル座標系から変換して描画するイメージだと思うんだけど
何をやろうとしてるのか今いちよく見えない。
あと、描画の絡む処理で重い場合はマルチスレッドにしても効果
はあまりないと思う。
いずれにせよスレッドに分ける前に
・どこがボトルネックになっているのか(プロファイリング)
・ボトルネックの処理をスレッドに分けて効果があるのか(事前検証)
・効果がある場合はどのように分割するのか(設計)
という段取りを踏むのが適切なんじゃないの。
725 :
711 :2013/06/05(水) 01:01:46.53
>>724 通信を絡めたゲームのサーバー部分を作っています。
ワールドとはJBox2Dのシミュレート空間の事です。
JBox2Dは自分のPCでは四角のコリジョンを50個くらい出すと、FPSが60を切ってしまいます。
なので、キャラクター毎にコリジョンを10個くらい用意して(1キャラ1ワールド1スレッドで用意して)、
シミュレーションしようと考えています。
すると、マルチコアのPCでは処理が分散されて、早くなるはずです。
事前検証や設計は正攻法だとは思いますが、今回はやりません。
シングルスレッドで1ワールドシミュレート(もしくは複数ワールドのシミュレート)は重いの分かってますから。
synchronized構文乱用すると 各コアのキャッシュがその都度パーになるので注意。
727 :
711 :2013/06/05(水) 01:45:20.11
>>726 クラス内static変数にsynchronizedをかます方法でも駄目ですかねえ‥‥
Aparapiを使う。 GPUがあればOpenCLで動くし、なければ普通のJavaのスレッドとして動く
サーバサイドでマルチスレッドで物理エンジンの話じゃなかったのかよ
通信はすなわちI/O。I/Oタイムの短縮は難しいので レイテンシを隠蔽する方向で考えるしかない。
732 :
デフォルトの名無しさん :2013/06/06(木) 03:20:58.96
創価学会の偽本尊にご注意
733 :
デフォルトの名無しさん :2013/06/06(木) 04:18:23.31
質問です。 配列の中で、連続する数字の数を調べたいときはどうしますか? {1, 1,100, 1, 2, 2,4,4,4,4,4,4,5,5,6,8,8} これなら4が連続する最大なので6個 for(int i=0;i<a.length;i++){ if(a[i]== ?????) }
735 :
デフォルトの名無しさん :2013/06/06(木) 04:46:01.53
>>734 初心者なのでそれだけではわかりません。すみません
736 :
デフォルトの名無しさん :2013/06/06(木) 05:20:57.18
隣と比べるのは
if(a[i]==a[i+1])
だけど、配列の外を指定するとエラーがでる
>>733 わかる人お願いします
ループを1から始めて前の値と比較
>>733 それ面白い問題だね。うちの新人にもやらせてみようかな。とりあえずヒント。
int[] array = { 1, 1, 100, 1, 2, 2, 4, 4, 4, 4, 4, 4, 5, 5, 6, 8, 8 };
int prev = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] == prev) {
// 連続してる場合の処理
} else {
// 連続してない場合の処理
}
prev = array[i];
}
あほ丸出しのヒントですね^^
740 :
デフォルトの名無しさん :2013/06/06(木) 07:19:03.01
>>738 私はi=1からのにしました。
そのヒントも役に立ちました。
配列先頭が0の時、どうなるのっと
研究でユーザテストのため操作の記録をとって再生するでもプログラムを作りたいんですが Robot クラスを使ってキーイベントを再生した場合 DirectX のプログラムに対して方向キーだけがうまく動きません win32api の keybd_event を使えばできるらしいのですが SWT に keybd_event っぽい関数がないみたいで Java SWT を使ってと同じことってできませんか? Java の知識はあるんですが C や win32api に関する知識がまったくないので… なるべく簡単に Java の枠組みの中だけで解決したいんですが… よろしくお願いいたします
>>742 前からこういう時プリミティブ型に無効なのを示す値があればなと思ってたわ。
745 :
桃白白 ◆9Jro6YFwm650 :2013/06/06(木) 18:40:28.36
Double.NANでいいじゃん
>>743 C#でいいじゃん
Java使えるなら全く違和感なく使えるぞ
>>747 リプありがとうございます
C, C# がというか総合開発環境が使えないんですよね
emacs でソースかいてコマンドラインからコンパイルみたいなやり方を最初に習ったので…
やっぱり VC とか覚えた方がいいのかな…
JavaこそIDEなしとかありえんわ
正規表現って、別に文字列のために作られた物ではないのだが、
>>733 みたいなint列を扱える正規表現処理系ってないのかね
Stringに変換して連結すればいいよ もっとも、(拡張)正規表現だと同じ文字の並びを認識はできるけど、 文字数を数えることはできないので、欲しいものとちょっと違う 結局ステートマシンを書くのが正攻法なんだろうな
>>750 あーなんか目からウロコが落ちた。
確かに文字に限らず、リストなら何にでも使えたらいいよな。
で、試しに文字列 "1112244444455688" に対して、正規表現書いてみたら難しくてワロタ
最長の連続する文字を探せ、って正規表現で解釈できるの?
ループで長い方からマッチングしていくとか?
a2[a[i]]++みたいに出来ないの
配列のコピーにつてですが ローカル配列をグローバル配列にシャローコピーします。 そしてそこからさらに別の関数に飛びます。 この場合コピーされたグローバル配列は生きているでしょうか? これをアクセスして元に戻った時に元のローカル配列に反映されているでしょうか?
自分で試してみたんですが反映されてませんでした。 反映させる方法無いですかね?
シャローがわかるなら、ディープもわかるだろ。
758 :
桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 14:53:08.88
>>755 何が反映されないのかよくわかんない。
まさかマルチスレッドの可視性の話じゃないでしょうね。
コード教えて。
参照渡しと値渡しがわかってないだけかと
質問してる日本語がおかしいとピキッと来るな >別の関数に飛びます 主語と中身を書け >この場合 どの場合だよ。中身を書け >元に戻った時 何が元に戻るんだよ。意味不明日本語書け
・「配列」とは何なのか(基本型のarrayかオブジェクトのarrayか、はてまたjava.util.Listか) ・「シャローコピー」とやらは具体的にどのようにして何を行ったのか ・「アクセス」とやらは具体的に何を行ったのか(配列に新しい要素をsetしたとか、配列内の オブジェクトのメソッドを叩いたとか) こんだけの事が解らないと要エスパー。 説明が苦手なのであれば要サンプルコード。
>>755 > この場合コピーされたグローバル配列は生きているでしょうか?
生きている。
> これをアクセスして元に戻った時に元のローカル配列に反映されているでしょうか?
元のローカル配列のスコープは一旦抜けてるので、元のローカル配列には反映されない。
>>750 ほとんど需要が無いから存在しないんだろうな
たぶんこうじゃないかな
public static int[] ARRAY; //グローバルだから消えるわけない
>>755 public static void main(String[] args) {
int[] localArray = {1,2,3,4,5};
ARRAY = localArray; //シャローコピー
funcA();
//ここでlocalArray[0]の値はどうなる?
>>755 }
public static void funcA() {
ARRAY[0] = 6;
}
そうじゃないと思います
Javaって配列もオブジェクトなんだっけ
シャローコピーって何ぞ?ってググったらJavaの用語なのか
馬鹿は引っ込んで
(^p^)
どういうコード書いてんのか知らんけど 最初からローカル配列使わずにグローバル配列だけいじればいいんじゃね
ディープコピーってディープキスみたいだよね
グローバル配列にシャローコピーする時点で大差ないだろ
774 :
桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 16:45:23.88
>>764 そりは配列の参照そのものっすよね。
コピーならcloneとか。
プリミティブ型やimmutableなオブジェクトであれば
シャローもディープも変わんないからそういうことなのかな。
javaのシャローコピーの区別もできない糞コテとかワロタw
SQLおじさんとstaticおじさん呼んでこいww
メソッド入り口だろうが、forブロック先頭部だろうが、final付いてようが、 ローカル変数の宣言に初期化も書いてあるんなら毎回初期化されるよ。 というだけの話では?とエスパー
public class Test6b { private static void printIntArray(String name, MyInteger[] a) { System.out.print(name + " "); for (int i = 0; i < a.length; i++) System.out.print(a[i] + " "); System.out.println(); } public static void main(String[] arg) { MyInteger[] a1 = new MyInteger[10], a2, a3; for (int i = 0; i < a1.length; i++) { a1[i] = new MyInteger(i + 1); } System.out.println("a2 = a1.clone();"); //シャローコピー(同じ参照先をもった新しい配列を作る) a2 = a1.clone(); printIntArray("a1", a1); printIntArray("a2", a2); System.out.println("a2[3].setValue(99);"); //参照先の中身の変更なのでa1も変わる a2[3].setValue(99); printIntArray("a1", a1); printIntArray("a2", a2); System.out.println("a2[5] = new MyInteger(-20);"); //参照元は同一でないのでa1は影響なし a2[5] = new MyInteger(-20); printIntArray("a1", a1); printIntArray("a2", a2); System.out.println("a3 = a1;"); //同一参照元になる a3 = a1; printIntArray("a1", a1); printIntArray("a3", a3); System.out.println("a3[4].setValue(101);"); //参照元が同一なので当然a1も変わる a3[4].setValue(101); printIntArray("a1", a1); printIntArray("a3", a3); System.out.println("a3[6] = new MyInteger(555);"); //参照元が同一なので当然a1も変わる a3[6] = new MyInteger(555); printIntArray("a1", a1); printIntArray("a3", a3); } } class MyInteger { private int value; public MyInteger(int n) { this.value = n;} public int getValue() { return this.value; } public void setValue(int n) { this.value = n; } public String toString() { return Integer.toString(this.value); } }
ウンコード検定1級
エスパー達にも手ごわい案件だな。 質問の文面をみる限り用語を聞きかじっているようであって実は理解していない半可通の 雰囲気がプンプンで、こういうのが一番面倒くさい。 コードを貼らんとどうにもならんよこれは。
staticなメソッドを呼ぶときはクラス名をちゃんとつけなさい
public class Test6 { private static void printIntArray(String name, int[] a) { System.out.print(name + " "); for (int i = 0; i < a.length; i++) System.out.print(a[i] + " "); System.out.println(); } public static void main(String[] arg) { int[] a1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, a2, a3; System.out.println("a2 = a1.clone();"); //シャローコピー(同じ参照先をもった新しい配列を作るが) a2 = a1.clone(); Test6.printIntArray("a1", a1); Test6.printIntArray("a2", a2); System.out.println("a2[3] = 99;"); //これは参照元の変更となり参照元が同一でないためa1に影響がない a2[3] = 99; Test6.printIntArray("a1", a1); Test6.printIntArray("a2", a2); System.out.println("a3 = a1;"); //同一参照元になる a3 = a1; Test6.printIntArray("a1", a1); Test6.printIntArray("a3", a3); System.out.println("a3[4] = 101;"); //参照元が同一なので当然a1も変わる a3[4] = 101; Test6.printIntArray("a1", a1); Test6.printIntArray("a3", a3); } }
配列の配列みたいに参照が2段になってないとシャローだのディープだのって話はでてこないぞ。 byte[][] array = {{ 0, 1, 2 }}; byte[][] shallowCopy = new byte[][]{ array[0] }; //内側の配列を書き換えるとarrayにも影響が出る。 byte[][] deepCopy = new byte[][] { array[0].clone() }; //内側の配列を書き換えてもarrayに影響が出ない。
>>784 > 配列の配列みたいに参照が2段になってないとシャローだのディープだのって話はでてこないぞ。
何言ってんの?
Java厨ってこんなレベルの奴ばっかなのか?
>>784 釣りだろうけど
2番目のやつはシャローコピーになってなくね
3番目のやつはディープコピーになってなくね
まずシャローコピーとディープコピーの違いを調べてから発言しろ
Hoge[] arr = new Hoge[10]; for (int i=0; i<arr.length; i++) arr[i]=new Hoge(i); //シャローコピー sha = arr.clone(); がやってること Hoge[] sha = new Hoge[arr.length]; for (int i=0; i<arr.length; i++) sha[i]=arr[i]; //ディープコピー Hoge[] dep = new Hoge[arr.length]; for (int i=0; i<arr.length; i++) dep[i]=new Hoge(arr[i].getValue()); //これはシャローコピーでもディープコピーでもない Hoge[] hoges = arr;
Hogeとは?
配列が参照の配列の場合にシャローコピーとディープコピーの違いが出てくる。 その点でオブジェクトの配列も配列の配列もシャローとディープ両方ある。
hoge厨=馬鹿
//2次元配列の場合 Hoge[][] arr = new Hoge[5][]; for (int i=0; i<arr.length; i++) { arr[i] = new Hoge[5]; for (int j=0; j<arr[i].length; j++) arr[i][j]=new Hoge(i); } //1次元目に関するシャローコピー ccc = arr.clone(); Hoge[][] ccc = new Hoge[arr.length][]; for (int i=0; i<arr.length; i++) ccc[i]=arr[i]; //2次元目に関するシャローコピー for (int i=0; i<arr.length; i++) ddd[i]=arr.clone(); Hoge[][] ddd = new Hoge[arr.length][]; for (int i=0; i<arr.length; i++) { ddd[i] = new Hoge[arr[i].length]; for (int j=0; j<arr[i].length; j++) ddd[i][j]=arr[i][j]; } //ディープコピー Hoge[][] eee = new Hoge[arr.length][]; for (int i=0; i<arr.length; i++) { eee[i] = new Hoge[arr[i].length]; for (int j=0; j<arr[i].length; j++) eee[i][j]=new Hoge(arr[i][j].getValue()); } //これはシャローコピーでもディープコピーでもない Hoge[][] hoges = arr;
//オブジェクト配列 Hoge[] arr = new Hoge[10]; for (int i=0; i<arr.length; i++) arr[i] = new Hoge(i); Hoge[] sha = arr.clone(); //シャローコピー sha[2].setValue(100); //arr[2].getValue() は 100 となる sha[4] = new Hoge(99); //arr[4].getValue() は 99 にならない //プリミティブ配列 int[] arr = new int[10]; for (int i=0; i<arr.length; i++) arr[i] = i; int[] sha = arr.clone(); //シャローコピー sha[4] = 99; //これは sha[4] = new Hoge(99); と同等の行為 arr[4]が変わるわけがない
てめえは何がしたいんだ
荒らし報告しときました
GJ
回答する奴が質問するやつと同じくらい馬鹿
釣り質問に釣り回答
言わせんな恥ずかしい(// までかいとけ
>>764 http://ideone.com/GOak9G その配列の初期化による配列の実体は、明示されていないものの new と同様に「ヒープ」に確保されるよね。
となると、localArray はいくら main() に書こうが、シャローコピー(?java にはそんな言葉があるんだね)して(javaでいうところの)参照を持ち越せば、持ち越した先のどこからでも見ることができるんだね。
ヒープ、とか、スタック、とか、そういう言葉を使ってしまうのはC/C++からの移行組だから‥‥ごめんなさい。
ideone に貼ってくれるとありがたいんだけれど
>ヒープ、とか、スタック、とか、そういう言葉を使ってしまうのはC/C++ CもC++にもheapとかstackという概念は無い。 だがJavaの言語仕様にはheap memoryという言葉が出てくるという。
>>803 そのサイトはソース貼ったらどうなるの?
馬鹿JAVA
>>805 末代まで生き恥をさらすことになりますが、それをなんとも思わなければおすすめです:-)
◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい ◆QZaw55cn4cうざい
ひとまず正解は何なの?どのレスが正しいこと言ってるのさ
このメソッドはこのオブジェクトのクラスの新しいインスタンスを生成し、そのフィールドをすべて、このオブジェクトの対応する各フィールドの内容で初期化します。これは代入と同様で、フィールドの内容自身が複製されるのではありません。
あぁ、clone使ったら全部シャローコピーだと思ってるのか。 clone使ってもディープコピーは作れるぞ。当たり前だけど。 byte[][] array = {{ 0, 1, 2 }}; byte[][] shallowCopy = array.clone(); //内側の配列を書き換えるとarrayにも影響が出る。 byte[][] deepCopy = new byte[][] { array[0].clone() }; //内側の配列を書き換えてもarrayに影響が出ない。
自己紹介乙
参照型(配列・オブジェクト)の配列のコピーにはシャローコピーとディープコピーの2つの概念が存在します 基本型(プリミティブ)の配列のコピーにはそのような概念はありません
自己紹介乙
>clone使ってもディープコピーは作れるぞ >new byte[][] { array[0].clone() }; //内側の配列を書き換えてもarrayに影響が出ない。 基地外としか言いようがない
820 :
デフォルトの名無しさん :2013/06/07(金) 21:41:49.49
正答はよ
質問者の日本語が色々足りないから正答が出ない
This section was updated to reflect features and conventions of the upcoming Java SE 8 release. You can download the current JDK 8 snapshot from java.net. マジかよ!
初心者に優しくないスレNo.1
Javaのチュートリアルも日本語化してほしす
質問と相談の違いって何?
char c = 'a'; c = c + 1; ←コンパイルエラー c = 'a' + 1; ←コンパイル通る この違いは何?
自分で調べろゴミ
829 :
827 :2013/06/07(金) 23:46:16.50
間違えた 【誤】c = 'a' + 1; 【正】char c = 'a' + 1;
final char c = 'a'; char c2 = c + 1; これでおk
誰もお前みたいなクズに回答する奴いないから安心しろ
832 :
827 :2013/06/07(金) 23:58:18.78
>>830 すみません解決策ではなく、挙動の違いが知りたいのですが…
OCJ-P取得のための勉強中なので。
上の方は右辺がint型に変換されるから、
char型に代入できないといったところでしょうか。
>>832 たぶん↓
5.2 Assignment Conversion
A narrowing primitive conversion may be used if the type of the variable is byte,
short, or char, and the value of the constant expression is representable in the
type of the variable
>>827 下は定数式だから通る。
上は定数式じゃないのでc + 1の結果は二項数値昇格してintになるからchar型のcには代入できない。
835 :
827 :2013/06/08(土) 00:05:55.48
837 :
827 :2013/06/08(土) 00:10:01.17
>>834 ご丁寧な回答ありがとうございます。分かった気がします
それにしても皆さん実務でこんなのに出くわさないと思うんですが
よく答えられますね
エラーメッセージは何て出てるのさ
839 :
827 :2013/06/08(土) 00:13:01.55
型の不一致: int から char には変換できません
エラーメッセージから何が問題か推量は出来るが根拠となるべき仕組みを知りたいってところか
>>834 final char c1='a'; のとき
c1+1がintでなくcharだと言ってる?
842 :
827 :2013/06/08(土) 00:17:20.98
843 :
827 :2013/06/08(土) 00:20:51.36
>>841 finalは指定していません
char c = 'a';
c = 'a' + 1; ←ここのエラー内容が839
>>842 嘘情報を鵜呑みにして楽しい?
'a'+1はintだ。情弱
845 :
827 :2013/06/08(土) 00:29:33.68
>>844 コンパイラがリテラルに置き換えるから通るんだろ
調べたよ
847 :
827 :2013/06/08(土) 00:48:58.74
>>846 なんだかんだ言いながら答えてくれてサンクス
ちなみに句読点だとかくだらん2ちゃんの暗黙ルールに従う気はない
849 :
827 :2013/06/08(土) 01:10:44.79
自作自演じゃねーよ OCJ-Pの勉強中で理解できなかったから聞いたんだよ はいこれで終了ねめんどくせー
ここまで俺の自演でした
理解しないと先へ進めないって学校の勉強とかでも苦労してそう
こういう資格をどういう経緯で勉強することになったのか地味に気になる。 会社がお金を出してくれるので勉強することになったのか、自腹を切ってとろうと思ったのか。
>>853 オラクル認定Javaプログラマさんですか?www
856 :
827 :2013/06/08(土) 09:04:23.66
会社から出る報奨金のため 受験料と報奨金3万出る 手頃かと思ったらJavaの実務経験なしでは結構難しい、俺コボラーだから 実務で役立たなそうなのは勉強し始めてからわかった 確かに糞問題ばかりで疲れるよ
MSの資格に3万円払ったよ(・∀・)
コボラーってことは結構年齢上の人ですね
859 :
827 :2013/06/08(土) 09:11:13.08
32歳。 もうプログラマとしては上の年齢になるのかな 今はSEでもPGでもないんだが…
>>856 なるほど。
でも実務で使っている人でも833, 834みたいな答えがサクッとでてくる人ばかりでは無いと思う。
糞質問ばかりかもしれないけれども手癖で書いているだけだと時々穴があったりするのも事実なので、
一通り網羅的に確認出来る得難い良い機会だとポジティブにとらえてみては。
861 :
827 :2013/06/08(土) 09:43:57.38
>>860 アドバイスありがとうございます
受験チケットの期間が迫っているので余裕なく焦ってますが
なるだけポジティブにいきたいと思います
細かい話だけど834は844で指摘されてるように間違いなんじゃないのか
>32歳 プログラマーとしては30超えたら 完全に脂肪 プログラマーでなくコボラーとしては 20歳ぐらい若い
864 :
827 :2013/06/08(土) 10:30:24.22
>>862 定数式だから通るという表現が曖昧に聞こえるだけでは?
'a'+1はintだけど、コンパイラが98に変換してくれて
char c = 98;
と同じことになって通るってのが正解だと認識してるんだが
865 :
827 :2013/06/08(土) 10:42:25.42
あ、でも98は定数じゃないな
定数扱いになるのか?
ちなみに
>>833 の英語もよくわかってません
あーまたわからなくなった
もうここは暗記でいいや
あまりここだけに拘ってる時間もない
皆さんありがとう
そいつ単なる構ってちゃんだから相手せんでもいいと思うが。
ここまですべて827の自作自演
>char c = 98;
>と同じことになって通る
結局
>>827 は理解できなかったのかよ
アホすぎw
さあ、定数式とリテラルを区別する作業に戻るんだ
下げてんのに何で出るんだ?
872 :
デフォルトの名無しさん :2013/06/08(土) 15:05:52.49
海外だからか?
海外IPだけは板設定に関係なく出るみたいね。
海外だから。
C#でいうところのdelegateやlambdaってjavaには無いのですか?
JAVAでゲームを作ってるよ! 学生だから夏休みの間に作るよ! 大学は夏休みが長くてうふふふふだよ!
変数が2/3の糞仕様、もといとても簡単な仕上がりなので生暖かい目で見てあげてください。
大学生は死ぬべき
だが断る(キリッ) ヘンナ ダイガクセイ 1785~1987 AAは貼れなかった
ラムダやデリゲートは無いのでしょうか?
881 :
デフォルトの名無しさん :2013/06/08(土) 18:57:42.36
ラムダはない デリゲートもない
オーマイガ!マジですか… なんでそんな頭のおかしい仕様なんだって感じです 今時の人気言語にあるまじき醜態ですね
ラムダはJava8で入る。デリゲートも簡単なメソッド参照がJava8で入る。 頭がおかしいと言うより、単に仕様の拡張が遅いんだよね・・・ どうしても今必要であればScalaやGroovyといった他のJVM系の言語を使うのお薦め。 Javaと混ぜて使うのも難しくない。
java.lang.reflect.Proxy あるなら delegate いらんやろ… 委譲がらみのコード自動生成してくれる優秀なIDEもいろいろあるし。
ラムダ式らしきものが絶賛リリース遅延中のJava8で多分入る予定
>>882 土方言語だからね
高階関数なんて土方には理解できない
仮にラムダが無事に導入されたとしても、各社のJava開発規約が一行追加されるだけだよ
「ラムダは可読性と保守性を低下させるので使用を禁止する」
888 :
デフォルトの名無しさん :2013/06/08(土) 19:36:10.62
ドカタのJABAは5か6だから問題ない 8なんて3年後ぐらいじゃね?
889 :
デフォルトの名無しさん :2013/06/08(土) 19:39:46.47
クロージャーもない
例えばジェネリックスをちゃんと理解して型パラメーター付きのクラスを自分で設計する 土方が仮に少なくとも、Collection frameworkなんかは普通に広く使われているわけで。 言語機能の理解し易さと土方が使うか使えるかは比較的無関係だと思う。 単にAPIとしてその機能を使うライブラリやフレームワークを使わされるか否かの問題。 なので土方もラムダは何時の日か使う。 何時の日か解らんけど。
デリゲートって関数ポインタみたいなもの?
>>893 そーだな
ただstaticメソッドかインスタンスメソッドかは問わず
両方とも扱うことができる
関数ポインタと違って 複数のメソッドを保持していっぺんに実行できr
>>893 一種の関数ポインタではあるのだけれども、メソッドへの参照に加えて呼ばれる
オブジェクトへの参照もセットに出来るのが特徴かな。他にもMicrosoftらしく
幾つか機能がくっついている。
ちなみにdelegateという言葉自体は言語とは無関係にソフトウェア設計において
委譲という意味で使われているのだけれども、これとMicrosoft製の言語における
delegateは意味が異なるので要注意。後者はMicrosoftローカル用語。
日本語だと漢字で「委譲」と書くとソフトウェア設計におけるdelegate、カタカナ
でデリゲートと書くと文脈次第でMicrofostローカルなdelegateも含むことがある、
ような気がする。
Java8だとbound method referenceで似たようなことが出来るらしい。
束ねたりは出来ないけれども。
もうJava 8には何も期待していない そろそろラムダも削除したほうがいい
すいません自己解決しました クロージャとラムダを自分で実装すればいい話でしたね まだプログラムを始めて一月ぐらいなので気が付くのに半日掛かりました
なぜJavaスレでデリゲートの説明を求め、そして答えるのか
>クロージャとラムダを自分で実装 クロージャーの実装は死ねる
ローカルクラスやJava8のラムダをクロージャの代わりにしようと思ったら ローカル変数はfinalにしなきゃいけないから class MutableInt { public int value; } みたいな頭悪いクラスが必要になるね
長さ1の配列で
Java8のラムダの場合、finalをつけなくてもコード中で再代入のない「事実上のfinal」 なローカル変数はラムダ内から参照できるのでまだマシとか。 結局Java8を待つか他の言語をあたるのが正解かな。とっとと出せ。
ジェネリクスといい列挙といい C#の劣化版を出すしか脳が無いからな おJAVA様は
Javaを捨ててC#のマルチプラットフォーム対応を推進すべきだ
C#は3流のPGにオススメの言語
そうかもしれないがここはJavaのスレだぞw Javaは未経験者大歓迎の簡単なお仕事です!
C風COBOLとC風VBの底辺争い
優勝決定戦の間違い
Javaほど可能性の豊かな言語はそうそう無い。 土方からハイエンドまで職業選択の幅が異常に広い。
本気でそう思ってたら信者
JavaもOS作ってれば今頃それなりのシェア取れてたろうに。
javaはもはやそびえ立つクソより役にたたん 使えないゴミなのに人気だけはあるから 使いたく無い人も使わなくてはならなくなり 社会全体の生産性を著しく低下させている
Java に ref を導入したら案外いけるかも
>>914 Java のどこが使えないか具体的によろ
昔はろくに使いもしないのにJavaアプレットを使うサイトが あるからって理由だけでメーカがプリインストールしていた もんだけど、最近はそれもなくなってきてるから、個人用に 限ればJavaが入ってるケースはほとんどないよ。
JavaでGUIアプリは完全にKUSO
>>916 オーバーライド強制が危険、構造体が無い
オペレータオーバーロードが無い
デリゲートが無い、ラムダが無い
ジェネリックが貧弱でメタプロが出来ない
プロパティが無い、java使う同僚は馬鹿しかいない
IDEがVSの足元にも及ばない、constな参照やメソッドが無い、etc...
挙げて行くとキリが無いけどまあ一言にまとめると
何をするにも常にjavaより遥かに優れた選択肢が他に幾つもある
という事だね
Javaを始めて一週間でこの言語はクソだと気が付かないプログラマて今まで何を学んで来たんだろうか
メソッド名に統一性がないところ Camelは 動詞+名詞 でこそ見栄えがいいんだけど 動詞で始まらないものが多すぎる あとライブラリ設計が継ぎ接ぎで汚い
UTF-8でテキストファイルを出力 しようとしただけで おJAVA様の洗礼を受けたでござる ついでにBOMの扱いがウンコで 困ったでござる
マイクロソフトは誕生した瞬間から常にボロクソに言われる存在だけど、 ことJavaの前でだけは常に褒め称えられる存在である。 ウィリアム・ヘンリー・ゲイツ3世
プリミティブ型にメソッド呼べないのが痛い。 enum変数にnull が入るのがキモい。 ジェネリクスの型にプリミティブ型が使えないのが痛い。 OuterClass.thisとかx.new InnerClass()みたいな誰特な仕様がキモい。 実行ファイルのイケてないアイコンと変なマスコットが恥ずかしい。
3流プログラマはマイクソの言語がオススメ
というか書いてることむちゃくちゃだから最近Java触ってみたけど僕ちんには使いこなせなかった系のアホだなw
>書いてることむちゃくちゃだから どの辺が、むちゃくちゃなのかkwsk
Javaちゃんと勉強すれば自分が如何にアホだったかがわかるよw
Javaに脳髄まで汚染された三流プログラマ可哀想
仕事以外じゃ絶対使わないけど仕事ならどうでもいいよ あくまでJavaのコードを書く作業そのものに対して賃金が支払われるんだから
まぁJavaは常にコーディングのスタイルが進化してるから老害には使いこなせないだろう 爺さんにはコボルとかオススメだよ
進化してる割には他の言語に常に遅れをとってるよね 不思議だね
932 :
桃白白 ◆9Jro6YFwm650 :2013/06/09(日) 11:22:40.77
お前ら暇さえあれば傷つけあうよな
学ぶこと放棄した爺さん相手にするPLとかも大変そうだなw
コボルの再来がJavaだろ。 20世紀末のブイビー使いの ネクストジョブがJAVAであって、 一気にJAVAのレベルが下がった。 コンピューターサイエンスのお荷物。
>>930 常に進化する土方用フレームワークによって
ライン工の作業が洗練されているの間違いだろ
×進化 ○乱立 フレームワークの乱立で業界が混乱・迷惑しています しかも本当に糞なキワモノフレームワークが多い
言語がウンコだと使いやすいフレームワークにならないんだよね で、我こそはと新しいフレームーワークを作るんだけど、 やっぱり言語がウンコだから使いやすくならない これが乱立の理由
プロジェクトの大小によってフレームワークの向き不向きがあるんだから当然だろ Webサーバーの構築モデルと同じようなもんだよ爺さん。銀の弾丸はないってよく言うだろ爺さん 正しい正解に導く知識のない老害には使いこなせない最先端言語だっていい加減気づけよ無能
結局
>>926 には答えられないの?
口だけ?口だけなの?
21世紀に入ってからというもの 常にC#の後追いで劣化版の猿真似を 続けているというのに 最先端言語とは何の冗談か
プロジェクトごとに正解は異なるのは確かだが Javaが正解だったことはこの世界ではかつて一度もない
だいたいこのスレで回答として出てくるおもしろコード見れば程度はわかるというもの
もうやめて! ジャバ使いのライフはゼロよ! 擁護したくても明らかに言語仕様自体は 他より劣ってるからねぇ だがライトワンスのビジョンを掲げて その一部でも達成したJavaは偉大
まだHPMAXですが何か?w スレチもいいとこなのにどんだけファビョってんだよ原始人どもw
>>943 learn once, dokata anywhere
JavaってWebアプリかAndoroidアプリしか使い道ないよね
Javaのクロスプラットフォームの真価はソースやバイナリの互換性じゃなくて 一匹のライン工をWin向けの製造ラインにもUnix向けのラインにも組み込んで使えることだろ
スクリプトでええやん どこでも動くでスクリプト
>>945 辞書くらいひこうぜ
learn once, do navvy's work anywhere.
laborer レバれカス
>>951 ん?移植性十分なスクリプトよりJavaが優れてるところなんか無いだろ?
なにかあるなら言ってみ?
スクリプトwww
それ言語の特性じゃないじゃん
>>953 >移植性十分なスクリプト
ruby()?
perl6()?
なんでperl5じゃなく6?
オペレータの再定義に関しては個人的には害しかないと思ってる。
メソッドのオーバーロードは許すのに オペレータだけオーバーロード禁止しても……って感じ
演算子定義は諸刃の刃だからバカが使うと危ないな でも賢いやつが使う分には問題はなくとても便利だ Javaはバカに合わせた言語だから上手く使えれば便利な機能というのがけずられてしまう これがJavaがダメな理由のひとつだね バカが好んで使う事がJavaをダメにしてるんだ
「安心」「安全」には多大なコストがかかるのだ 撃たれないという保証を放棄して銃を持つことにどれほどの利があるのか
>Javaはバカに合わせた言語だから上手く使えれば便利な機能というのがけずられてしまう そうだよね。Java Enterpriseは設計者と ドカチンを完全に分離して、大規模な開発を可能にし、 一定以上の最低品質の確保を最優先した フレームワーク。 縛りを強化して統制をとるものだから プログラマーとしては魅力に欠ける。
土方用フレームワークって具体的にはどんなの? 幾つか名前を挙げてもらえると。
>>964 Java Platform Enterprise Edition
バカを過小評価してはいけない。 バカは言語以前に酷いものなので、正直、言語の性能なんてどうでもいい。
バカがJavaで料理をつくると食った人間は腹痛を起こす バカがCで料理をつくると食った人間は胃を切除する羽目になる
料理で例えるなら、コンロも包丁もあぶないので レンジで加熱する以外の調理を禁止したのがJava
>レンジで加熱する以外の調理を禁止したのがJava 同じくレンジ加熱のC#は普通と評判なのだが レシピを真似して改良する度に Javaは酷くなっていくという
Java EEが土方用と言われて具体的にどの辺りが土方向きなのか全くピンと来ない。
すいません教えてください。 自分はC/C++→JAVA→C#みたいな感じでプログラム勉強してきて JAVAを勉強したと言ってもさらっとしか勉強してなくて 現在、もう一度、ちゃんとJAVA勉強して、JAVAプログラマのSilverの資格を取ろうと 思い、試験対策本買ったんですが、引っかけ問題みたいなのばっかの中唯一 納得いかないコードがありましたんで↓に記述します。
コードはよ
(手紙はここで途切れている)
はい。次の方。
975 :
デフォルトの名無しさん :2013/06/09(日) 16:40:50.41
public class Zow { final static Zow zow = new Zow(); public static void main(String[] args){ Zow zowOne = zow; System.out.printf("zow = %h \n", zow); Zow zowTwo = zow.dive(zow); System.out.printf("zow = zow.dive(zow); %h\n",zow); System.out.printf("zowTwo = %h \n", zowTwo); Zow zowThree = zow; System.out.println(cowOne == cowTwo); System.out.println(cowOne == cowThree); } private Zow dive(Zow zow2) { System.out.printf("zow2 = %h\n"zow2); zow2 = new Zow(); System.out.printf("zow2 = %h\n",zow2); return zow2; } } で、何が納得いかないのかと言うと、final static Zow zow = new Zow(); を利用して、diveの中にzowを入れて、再度それを利用してインスタンスを作成 していて、ハッシュ値をわざと表示させてるんですが、なんでこれがちゃんと動いてるのか どなたかご教示下さい。お願いいたします。
976 :
デフォルトの名無しさん :2013/06/09(日) 16:42:12.61
書き間違えました public class Zow { final static Zow zow = new Zow(); public static void main(String[] args){ Zow zowOne = zow; System.out.printf("zow = %h \n", zow); Zow zowTwo = zow.dive(zow); System.out.printf("zow = zow.dive(zow); %h\n",zow); System.out.printf("zowTwo = %h \n", zowTwo); Zow zowThree = zow; System.out.println(zowOne == zowTwo); System.out.println(zowOne == zowThree); } private Zow dive(Zow zow2) { System.out.printf("zow2 = %h\n"zow2); zow2 = new Zow(); System.out.printf("zow2 = %h\n",zow2); return zow2; } } で、何が納得いかないのかと言うと、final static Zow zow = new Zow(); を利用して、diveの中にzowを入れて、再度それを利用してインスタンスを作成 していて、ハッシュ値をわざと表示させてるんですが、なんでこれがちゃんと動いてるのか どなたかご教示下さい。お願いいたします。
参照型と参照渡しは違うからな。 JABAに参照渡しは無い。
C#もだけどJavaは常にnullを許容した参照しかないのが嫌だ コンパイルの段階でオブジェクトの存在を保証してくれるC++の参照はやはり優れている
>>976 どの辺りがちゃんと動かないように思えるのかもっと具体的に書いてもらえないと
なんともなぁ。どの辺りが怪しげなの?
980 :
デフォルトの名無しさん :2013/06/09(日) 17:08:01.88
>>979 自分としては→final static Zow zow = new Zow();の部分の
zowは書きかえれないインスタンスとして存在してると解釈してるんですが
private Zow dive(Zow zow2)にzowを入れているところが
いわゆる参照渡しと解釈して、diveの中にzowというインスタンスを参照渡しで入れて
渡されたzowを使って新たなインスタンスを作成しているように見えて
要は、書きかえれないzowというインスタンスを参照渡しでメソッドを通じて
書き変えてるように見えるんです。
>zow.dive(zow); >private Zow dive(Zow zow2) { >Zow2 = new Zow(); これがzow=new Zow(); になると勘違いしたんじゃねーの 実際には Zow zow2=zow; zow2=new Zow(); だからもとのzowは変わらない。
ポインタを理解してれば迷う事は無いんだがな これがCを教えない弊害なんだろうな
まだJavaがわからない老害どもが発狂してたのかよw 発狂する前に入門書でも読んでこいよ5流PGw
いや「参照」変数を理解できてないだけだろ ポインターとかジジくさいものはどうでもいい
いやいや、今や老害ってのはJavaドカタを指すんだよ 周回遅れで出来損ないのラムダを入れようと頑張ってるレベルって分かってんのか?
いやポインタをちゃんと学んでいれば あ、これはポインタを値渡しして再代入したのと同じだ、って二秒で気が付く しかしポインタを知らなかった質問者はこんなくだらない事に貴重な日曜を費やしてしまった 可哀想に
>>980 Javaに参照渡しはないよ。メソッドの引数に参照を渡しても、それはあくまでも参照の値渡し。
メソッド側から見ると、仮引数に入ってるのは呼び出し側で渡された参照のコピーです。
C/C++の経験があるならこれでわかるだろ。
C#でいうと、引数にrefがついてないときと同じ動きで、しかもつけることもできない。
参照渡しを無くしてバカを保護したつもりがバカを苦しめてしまった Javaの罪は大きい
>>980 まずJavaの変数に対するfinal指定は「その変数に対する再代入不可」を
表すのであって「インスタンスの書き換え不可」とはちょっと違う。
その変数に入っているオブジェクトに対するミュータブルな操作は依然可能。
final List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.clear(); // ここまでガンガンlistの中身を書き換えてもエラー無し。
list = new ArrayList<String>(); // 再代入を行うここでエラー
あとdiveメソッドの中では単にZowをnewしているだけで引数として与えられた
オブジェクトは特に利用していないよね。
最近のJavaは、C#のための噛ませ犬でしかないからな
991 :
デフォルトの名無しさん :2013/06/09(日) 18:01:04.05
>>981 はぁ・・・、そう解釈すればいいんですか。
ってことは、逆にJAVAってメソッドでクラスのインスタンスを引数に取る時は
参照渡しとはなってるけど実際は、引数で取ったインスタンスは、そのクラスの
情報を持ってるだけで、その内容を変更使用が何をしようが・・・いやいや違う。
インスタンスを渡した時、渡された側は、それがfinalかどうかまでの情報までは
解からないから、実行できてしまうと思ったら良いんでしょうか?
public class Cow {
final static Cow cow = new Cow(10);
private int n = 0;
public Cow(int n){this.n = n;}
public void setN(int n){this.n = n;}
public int getN(){return this.n;}
public static void main(String[] args){
System.out.println(cow.getN());
Cow cowOne = cow;
Cow cowTwo = cow.dive(cow);
System.out.println(cowTwo.getN());
System.out.println(cow.getN());
Cow cowThree = cow;
System.out.println(cowOne == cowTwo);
System.out.println(cowOne == cowThree);
}
private Cow dive(Cow cow2) {
cow2.setN(1);
cow2 = new Cow(5);
return cow2;
}
}
ちょっとコードを改変したけど動きました。
>>982 最初にプログラム勉強しだしたのがC/C++なんで、ポインタは理解できてます。
プログラミング初心者にif文を教えることになったのですが、if文の構成について質問があります。 「if文は基本的に( )で括られた条件式と{ }で括られたブロックから成る」と説明したのですが、 「ifの部分ってなんと言う名前か?」という質問を受けました。制御文であってるでしょう 制御文ってif(条件式){ステートメント};全部指してる様な気がしてなんか不安です。詳しい方どうかご教授ください
993 :
デフォルトの名無しさん :2013/06/09(日) 18:04:45.11
あらら、知らないうちにスレが伸びてた。
>>987 なるほど、そう理解すれば良いのですね。
>>991 Javaのfinalと例えばC++のconstは一見似ているようだけど実際は全く別物と考えた
ほうが混乱は少ないと思う。
C++におけるconst相当のものはJavaには無いし同様の事をやろうとするとかなり面倒。
final C o = new C(); C * const p = new C();
Zow *dive(Zow * zow2) { zow2=new Zow(); } Zow * const zow=new Zow(); dive(zow); これでzowが変わったりzowの指す先の オブジェクトが不変と思うなら Cをやり直した方がいい
文句あるなら自分で言語つくれよ、ドアホども。
趣味か独りよがりならそれでもよいかもね。
「JAVA()って他言語より劣ってるよね」 「文句あるなら自分で言語つくれ」 典型的なクズの見本でした
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。