★★Java質問・相談スレッド163★★
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANJavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド162★★
http://toro.2ch.net/test/read.cgi/tech/1370777230/
0002デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN>String に == は使うな。equals() を使え。
真に受ける人がいるからテンプレから削除するか
補足が必要
定数のcommand文字列と同一オブジェクトを比較する場合
==で比較するほうが可読性が良い場合がある
なんでもかんでもequals()つかってはいけない
同一クラス内において文字列リテラルは同一インスタンスである
String a = "adb";
String b = "adb";
a==bはtrueになるので初心者は罠にはまることがある
余談
1.7でスイッチ(String)が使えるようになったが
String key = null
swhich(key)はぬるぽになるのでcese null:とかできない
0003デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN0004デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANID:fksBQ7U6!どうやったらそのメソッドlengthを自ら定義出きるのでしょうか?
Haskellであれば
length' :: String -> Int
length' string = case (string) of
[] -> 0
(_:xs) -> 1 + length' xs
みたいにして自分で作るのですが。
0005デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN日本語でお書きください
0006デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN0007デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANint a = len;
こうしたいってこと?
0008デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANID:fksBQ7U6!>>6
のlength()を自分で作った関数(メソッド)で使いたい?
>>7
$がよくわからないのですが、ちょっと違うようなきがします。
例えば、length'に"Hello, World!" と入れたら12が帰ってくるみたいに,
メソッドが何かしらの入力値を取り、その入力値の長さを返すみたいな。
length()ってどうやって書かれているのでしょうか?
0009デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN単純にchar[].lenghtを返しているわけではなく
byteに収まらない文字もあるわけでそのために文字数を
countした値を返しているようです
コード自体はこれだけです
public int length() {
return count;
}
0010デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN0011デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN0012デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANstatic int length(String s) {
return s.length();
}
これでどうだ!!・・・
0013デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANID:fksBQ7U6!>>9~12
ありがとうございます。
けど、これreturn s.length()はな〜。
0014デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANJPAでTemporalなしで使えるようにならんかな
0015デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.AN0016デフォルトの名無しさん
2013/07/27(土) NY:AN:NY.AN入出力あたりはみたのでそれ以外で
0017デフォルトの名無しさん
2013/07/27(土) NY:AN:NY.AN0018デフォルトの名無しさん
2013/07/27(土) NY:AN:NY.AN目的がないならあんな細切れなソース読んでも意味ない。
オープンソースのアプリのソースを読んだほうがいい。
0019デフォルトの名無しさん
2013/07/27(土) NY:AN:NY.AN今までそうしかしてこなかったので…
何よりデザインパターンの有名な本にクラスライブラリには
デザインパターンが沢山活かされていることが書かれていたので。
swtはそこそこ読みました
オープンソースでもよろしいので教えて下さい
0020デフォルトの名無しさん
2013/07/27(土) NY:AN:NY.ANjava.awt.image.Raster
public DataBuffer getDataBuffer().getData()
関連クラス
DataBufferUShort
DataBufferByte
0021デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.AN中身見たことなかったので見てみます
BufferedImage等のデータ配列に直接アクセスして高速化したい場合によく使われてるやつですよね
標準APIって全体的にAdapterパターンがうまいな〜と思います
0022デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.AN0023デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.ANjavax.swing.OverlayLayout
0024デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.ANカラーモデルによって配列の型が変わるから一概には言えないけど
1920x1080を配列に置き換える場合
int getRgb(x, y) 500ms
Bufferのデータから再配置 35ms
0025デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.ANこれ以上ラスタ使うBufferedImageの話は禁止で。
0026デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.ANありがとうございました。
0027デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANサンプルプログラムなどで明快に説明してあるサイトを教えてください
0028デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANprotectedメソッドを持てるのがabstract class
持てないのがインターフェース
これ以上明快な説明は存在しない
0029デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0030デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN確かにそうですね。
しかしなぜそういった仕組みが必要なのかを明快に示してほしいです
そういうのはプログラムの実例を用いてこのような理由から機能美としてそうなっているという風に
説明してほしいです
0031デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANえ!
0032デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANインターフェース
…publicメソッドのみ持てる
abstract class
…制限なくあらゆるメンバ・メソッドを持てる
0033デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN持てないのがインターフェース
これ以上明快な説明は存在しない
0034デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANインターフェースを定義したものがinterface。
それ以外の抽象クラスがabstract。
0035デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANJavaにインターフェースや抽象メソッドが実装された理由はJCPの該当の議論を見るしかない
0036デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN1つしか継承できないのが class
0037デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN・全てのメソッドはpublic abstract。つまりメソッドの実装は持てない
具象クラス
・全てのメソッドはabstractではない。
インスタンスを作ることが出来る。
抽象クラス
・abstractではないメソッドに加えてabstractなメソッドも持てる。
継承する具象クラスにその実装を強制できる。
インターフェイスと抽象クラスの使い方について明確に説明しているサイトは
知らないけれども明確に説明して本としてEffective Javaがある。
「Effective Java 項目18」でググると解説したページが幾つか出てくるかも。
この本にもあるように、インターフェイスか抽象クラスかどちらか、というわけ
ではない。まずインターフェイスを定義して、それを実装する手間を減らすため
に骨格となる実装を抽象クラスとして定義することがある。
0038デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN> つまりメソッドの実装は持てない
それJava 7までの古い知識
0039デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0040デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0041デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN最新版の知識で解説しろよ
0042デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0043デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANこれから古くなって使えなくなる知識を教えるなってことだよ
0044デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN今使えない知識を教えてどうする
あほか
0045デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANJava8が出るのって早くても来年3月以降だろ?
0046デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANjava8を教えるのはあまりにも酷いよ
java9を教えてさしあげなさい
0047デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0048デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN依存するオブジェクトがお前どこから生成されてくんねんって状態でもinterfaceベースならテストできる
0049デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN互換性の問題があるからインターフェースが実装を持てるようになる仕様が廃止される可能性は極めて低い
つまり今後はインターフェースが実装を持つ時代が長く続くので、そっちに合わせて解説するのは人間として当たり前
0050デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANVisual Basic 6.0がやってた技術か
やっとVB6に時代が追いついたか
0051デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANjava7は無かったことに
0052デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANセキュリティ上の問題が多く敬遠されがちなjava
java8なんてjava7以前のシェアを塗り替えられるほど普及するのか
0053デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN古いバージョンを頑なに使い続ける老害が必ず発生する
0054デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANJavaと他言語のアプリケーション、どっちの方が脆弱性の届け出が多いか知ってるかい?
0055デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0056デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0057デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANそんなお前はコピペプログラマー
0058デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANJavaに脆弱性が発見されるたびに影響を受けるアプリの数だけインクリメントしてたら膨大な数になるよ
0059デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN0060デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANそいつが無駄な機能を山ほど抱えて
無駄なリスクを発生させる
それこそが病根
0061デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANそういう層に限って各verに互換性を持たせる設計をしてこなかっただけだったり
ましてやそういう設計法があることすら知らなかったりするんだよね
更にそういう人こそ、OSの更新等を常に裏で自動更新にして最新版に保っていたりw
0062デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0063デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANクライアントは組み込み用途だからしょうがないね
0064デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0065デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0066デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0067デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN6にはlinuxでキーフォーカスが死亡するバグがあるが
7で必死に直そうとした形跡はあるがなおってない
0068デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANスイッチ(value) {
case 何とか
}
それだったらenumにしよう
フォールスルーはファインドバグが怒るのでとりあえず回避してしまう
0069デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANinterfaceやabstractクラスを使って他のクラスにextendsやimplementsをする。
1つの元手で複数継承できることで多様化という意味合いがある。
引数の数や種類が違う、同じ名前のメソッドやコンストラクタも
ポリモーフィズムの一種である。
現在自学自習でjavaを勉強しているのですがポリモフィズムの解釈は
こんな感じで合っているのでしょうか?
どなたか採点よろしくお願いします。
0070デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0071デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0072デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANまあ所詮は言葉でアップキャストに言及してるわけじゃないしな
0073デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0074デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN個々の技術については大体合ってはいるけど本質的な部分に触れられてない
もし試験だったら30点の回答だな
0075デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0076デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANその根拠は?思い込みレベルなら俺もそう思ってたから根拠があるなら言ってくれ
0077デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANおまえら関西人?
0078デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN逝ってよし
0079デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0080デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN初心者すぎるw
呼び出す側から見たときに、オーバーライドされたメソッドのどこが多態なの?
そもそもインタフェースが違うじゃん
0081デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN意味論を分かってない
0082デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN人を馬鹿にする前に自分の意見述べろよ
0083デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN同名のメソッドを複数持てることは多態性ではない言える根拠は何か?
俺は多態性ではないと言える根拠がないから聞いている
0084デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0085デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0086デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN具体的なソースコードを照らし合わせて語りあうんだ
System.exit(0)
0087デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANSystem.out.println("了解!!");
0088デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANポリモーフィズム=多様化 とイメージしており
一つの宣言(同じ言葉)で 数多くの道具が使えるというイメージがありました。
ですのでインタフェースを使った多重継承、オーバーライドなどがこれにあたると
思っていました。
一つ気になりましたのが>>74さんの本質的な部分とはなんなんでしょうか?
分かる方いたら答えてください。
0089デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0090デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN俺もわからん
0091デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN例えば描画処理マネージャに対して描画したいコンポーネント群をぶち込むとき
コンポーネント群のもつ共通の描画メソッドpaintをオーバーライドし多様な形態(多態)にしとけば描画マネージャはぶちこまれたpaintを同様に実行すればいいだけで応用がきく
またこれにより条件分岐が減りプログラムがシンプルになる
一方オーバーロードとは同じ名前のメソッドを引数の違いによって分け記述をシンプルにするだけであり名前をf1,f2,f3と分けても実質的な違いはない
全然違う
0092デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANお前の中では多態性=アップキャストってなってるだけだな
何の説明にもなってない
0093デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANこれはひどいwwwwwwww
0094デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0095デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANポリモーフィズムという概念はJavaより前に生まれたもの
だからJavaの用語(extendsやimplements)を使って解説してる時点で
本来のポリモーフィズムではなくJavaのポリモーフィズムの説明にしかなってないのよ
0096デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANその中でどういうデータベース操作が行われるかなど細かいことは気にしないのがカプセル化だ。
fire()メソッドを持ってればemployeeの実体は別に何でもいいわけだが、Javaは静的型言語なので
コンパイル時に型がはっきりしてないとエラーになる。
だからインターフェースを使って「ここにはfire()メソッドをサポートしたオブジェクトを寄越せ」
と明示することでコンパイラをごまかす。
0097デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN相当役に立つものを作ったん凄い人なんだろうなあ
0098デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN継承はポリモーフィズムを実現する手段であって、ポリモーフィズムそのものではない。
呼び出しに対して多様な振る舞いで応答することができる性質がポリモーフィズム。
0099デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANこれは正しい
0100デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANこういう原理主義みたいなこと言い出す人って必ずいるけど何なんだろう
老害って呼べばいいのかな
0101デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN土方は定義を語っちゃあかんよ
0102デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANさすがにこういうやつは
ねーわな
010371
2013/07/31(水) NY:AN:NY.ANいや俺も74見て同じことを思った。
OO信者はまず概念から入るので、
69は「概念の説明がない」と指摘される典型的な例。
0104デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN0105デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN消えろ
0106デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN>>69はポリモフィズムとは?の回答にjavaの実相や概念に絞って、ポリモフィズムのことを指して答えた
そのため100点の回答とはならないのは俺も賛同
オーバーロードは多態性なのかと聞かれたら多態性だと答える(javaの話ではない)
不特定のファイルを与えて実行したとき、ファイル形式がなんであれ。未知のもの、非対応でなければ
動画なら動画を再生、音声ファイルなら音声を、画像ファイルなら画像を表示といった動作になる
ファイルを開くという一連の動作からこれだけの多様性がry
0107デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN信者のうめき声が聞こえてくるようだわwwwww
さて仕事するか
0108デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN釣り針に釣られてるやつが何言ってる
0109デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN正当javaは業務アプリおじさんドカタに愛されています
0110デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN0111デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANいきなりローカルに開発していくときほど疲れると思うんだけどなー
0112デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANいきなりローカルに開発していくときほど疲れる?どういう意味で言ってるのだろう。
0113デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN0114デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANhttp://docs.oracle.com/javase/tutorial/sound/capturing.html
上記のサンプルってマイク限定なのですか?
Mixer名列挙するとPORTのスピーカーが見えるのですが。そこから拝借とかできないものでしょうか?
0115デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANおそらく、C言語やってもポインタで挫折するタイプなのだろう
0116デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANさすがにこれは釣りだろ
0117デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN・Listで、あるオブジェクトが管理されている。
・画面があると仮定し、その画面には3つのオブジェクトしか表示できない。
・戻るボタンと次へボタンがあり、次へボタンを押すと次の三つをその画面に表示したい。
こういったとき、どのようなListやQueueを使うのがいいのですか?またどのように実装すればよいでしょうか
List<Object> objects = new ArrayList<Object>();
objects.add(new Object());
.....
for(int i=0; i<3; i++) {
objects.get(i)
}
理想はこのように常に0〜2番目を取り出すだけで、objectsリスト内をぐるっと一周できるようなソート?法を知りたいです。
[0, 1, 2, 3, 4, 5, 6, 7]
[3, 4, 5, 6, 7, 0, 1, 2]
[6, 7, 0, 1, 2, 3, 4, 5]
....
見たいな感じです(数字は最初にaddしたときのindex)
0118デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANhttp://docs.oracle.com/javase/jp/6/api/index.html?java/lang/String.html
これ使えばおk
for(int i=0; i<3; i++) {
objects.get(i)
} こっち変化させるほうがお勧めだけどね
0119デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANなんてこった貼り間違えた
0120デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN0121デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANArrayListで管理してlocalCursor = cursor % list.size() でやりくりでいいんでない?
cursorがどれだけ大きくなっても行けるとおもわれる
localCursorに負数が来た場合は list.size() - localCursor で正しい添え字に直せばいい
0122117
2013/07/31(水) NY:AN:NY.AN型に指定したObjectクラスのフィールド変数等で比較するつもりはなくてもコンパレータでできるのですかね。
コンパレータって隣り合う2つのオブジェクトの、とある変数同士で並び替える以外にうまい使い方があるのですか?
(この場合のような単なるlistのindexだけを考慮すればいい時でも)
>>121
すみませんちょっと変数の意味がわからないです
localCursor = cursor % list.size()
が急にでてきて・・・
localCursorはdouble型?
0123デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN自己解決したんなら無視していいよ
0124デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN0125デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANcursorは何を表していますか?
急に出てきて意味がわかりません。。。
0126デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0127デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANttp://www.atmarkit.co.jp/fjava/special/jjugccc2011spring/01.html
期待に溢れていた過去
0128デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANゼロ
ない
0129デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0130デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN誰がどう考えてもそっちが正解だった
どっちにしろ普及はしなかっただろうけどね
0131デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANあれコールバック仕込めないのか
0132デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANManawatu Standard? - 2013年7月23日
JavaFX is part of Java, which almost every computer runs. It's technical stuff.
But fortunately Giles has ... Giles writes a successful blog rounding up weekly developments within JavaFX.
He has legions of Twitter followers from ...
0133デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0134デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0135デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANhttp://medianetwork.oracle.com/video/player/1193176137001
これは普及しないわ
0136デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANhttp://docs.oracle.com/javafx/2/get_started/hello_world.htm
動画のハローワールドと一致しない
0137デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANJavaのマルチプラットフォーム性を活かそうとすれば、やれることが制限されてWebと大差なくなる
動作環境(周辺機器やOS)との連携を重視すれば、Javaを選ぶのは面倒なだけ
0138デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0139デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANジャワ原人・・・Java言語をメイン言語とするプログラマのことである
0140デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN新しいコピペ?
0141デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANホモサピエンス Android島に移住した知性的な進歩人
0142デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0143デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN・クライアントアプリ
・マルチプラットフォーム
・スクリプト言語以外
この条件ならJavaしか選択肢はないだろ。
0144デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANどうしてもやりたいならWeb
0145デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0146デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANWebはサーバー必須だからそもそも用途が全く違うだろ
0147デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0148デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0149デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANこれ本当に生産性が高かった。
ActionScriptとか言うとよく馬鹿にされるけれども実のところ3はDart等と同様に
Java的な文法のオプショナル型付け言語で、手続き的なロジックはJava風に静的
型付けでカッチリと書きつつ、UI設計の宣言的記述であるMXML内には同じ言語で
コンパクトに記述したインラインコードを埋め込むことが出来た。
Flexも素直な設計で部品が充実したフレームワークだったし。
この点JavaFXは出てきた時から宣言的UI記述にはJavaFX Scriptという別の言語を
使う時点で面倒だなと思ったし、後にJavaFX Script自体が無い事になった。
同様な問題はJavaとは別にJSP等ではELも使うJavaのWebアプリ開発関連にも言える。
なのでGrailsお薦め。
0150デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANガラケーのアプリやアンドロスマホのアプリもJAVA!ほんと最強すぎるJAVA!至高のJAVA!俺たちがJAVAだ!
0151デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANGraphics+swingで解決できない問題が。
ゲームを作ってて、
メイン画面にGraphicsで描画(30FPS)しているとします。
で、そのメイン画面上に
背景を透過したJTextPaneやらJTextFieldを乗せたいんだけど
メイン画面の描画の度に、swingのコンポーネントが汚くなる。
これを解決する方法って何かないかなぁ?
ちなみにAWTを使うのはナシで。
苦し紛れに描画の度にリペイントとかしてみたものの
描画タイミングがずれるせいでチラチラチラチラうざい事に。
0152デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN透明特有だったら対処法はないという切り分けにはなるよ
0153デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN早速ありがとうございます。
1.7の話です。
透明だろうが不透明だろうが、見え方は一緒ですねぇ。
うまく説明できないのですが・・
JPanelにJtextAreaが乗っている構成で、
GraphicsはJPanelにダブルバッファで書き込みをしています。
現象としては
JtextAreaの再描画(リペイント)をしない場合は
メイン画面再描画(draw)でJtextAreaが消える。
JtextAreaの再描画(リペイント)をする場合は
JtextAreaがチラチラチラチラする。
JtextAreaの絵が塗りつぶされているんだとは思うのですが・・。
0154デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANレスくれそうですね
リペイントってどんなサイクルだったかわすれましたが
invalidateこんなの呼んで再描画するんじゃなかったかな・・
>>114は解決しました
というかPCにステミキ入ってなかったORZ
音だせるやつのinfo情報
getName "XeI ~LT[ (Realtek Hig"
getDescription"Direct Audio Device: DirectSound Capture"
toString interface TargetDataLine supporting 8 audio formats, and buffers of at least 32 bytesgetFormat PCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian
結局PORTから音はとりだせなかったけど、ミキサーからはとれますた
0155デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN貼ってから気が付くレベルの俺
0156デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANID:5J+mkZgJ!import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.print("Max :");
String input = in.next();
int x = Integer.parseInt(input);
for (int i = 1; i <= x; i++){
if (1%2 == 0){
System.out.println(i);
} else {
continue;
}
}
}
}
0157デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANなにこれ
0158デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0159デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANID:pU3LTo83!二の倍数かどうかの判定をしたかったのですが。
>>158
countinueのかわりにnextInt()ということでしょうか?
0160デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0161デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANこのクラスの存在、今日初めて知った
すごく便利そうなクラスだね
正規表現でのパースするとあるけど実装はネイティブコードとかでされてるのかな
それなら自分でJavaのコード書いてパースするより捗りそう
0162デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0163デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0164デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0165デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0166デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANeclipseってJavaをインストールしていないと
起動自体出来ない?
0167デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANeclipseにも色々あって、
java(厳密にはJRE)を内包しているものは、PCにjavaが入っていなくても大丈夫。
内包していない奴は、PCのjavaで動くので
インストールが必要。
0168デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0169デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANJRE入りのインディゴがお勧め
異論は認める
0170デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANJunoで無駄に鍛えられたので感覚が麻痺しているという説もあるけど。
それとPleiadesとかAll-in-oneが許されるのは小学生まで。
とっかかりはともかく早めの卒業を推奨。
0171デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0172デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN環境構築を覚えるまでが一番大変
覚えた後はさすがに楽なんだけど
0173デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN例外処理と粒度の小さすぎるAPIが原因
0174デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANまあ外部リソース依存の例外以外は個人的にやり過ぎだと思ってたが
0175デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN0176デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN0177デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANラムダが難航してた大きな一因だし、結局は検査例外の存在を無視した仕様に決まってしまった
0178デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN0179デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN海外のフォーラム等のボランティア精神がまったく違うんだよね〜。
日本人は陰湿なコード(自分は端から端まで把握してはいるがそれをコードで表現していない)が大好きな人が多い。
妙な悦に浸っている。良い設計の本にはその辺りが書かれている気がする。
0180デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANあるパッケージのjavadocファイル群と別のパッケージのjavadocのファイル群が別々にあって
それと統合したいんです
0181180
2013/08/03(土) NY:AN:NY.AN0182デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN例外をスローしないでスタックトレース出して終わりという
お粗末なandroid標準APIがあるよ
>>180
1.htmlを自分で編集する。互いにソースリンクがないなら超簡単
2.jadでシグニチャ取り出して自分でドキュメントコメント書いて・・・・
0183デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANコアのAPIのサイトをリンク先にしたことあった気がしたけど、自前のサイトでもできるかな。Javadocのオプションで。
0184デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN7月から自学自習でjavaをしており
「解きながら学ぶjava入門編」という参考書を終え、ぼちぼち理解ができてきました。
次のステップアップのためのお勧めの参考書はなにかありますか?
どなたかお答えお願いします。
0185デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANパーフェクトJava
0186デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANGUIやるのは無駄だからやるならコンソールでDBアプリとかな
0187デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANイメージを持って組み立てるものだ
0188デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN例外処理を考えてるときが一番勉強になってる気がする。
APIや他のオープンソースの設計見にいきたくなるし。
0189デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANJava8で積極的にラムダを多用すればどうしてもRuntimeExceptionやthrows Exceptionだらけになるので
検査例外はほとんど意味がなくなるよ
そうならないように長いこと議論して対策考えてたんだけど結局特に対策はなし
0190デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANほとんど設定しなくてもいいのでJOptionPaneを使っているのですが、
このダイアログが表示されたときのコンポーネント(ボタン等)を個別に取得してサイズ等をを変更する方法が知りたいです。
機能はまったくいじるつもりは無く、内装を少し変えたいです。
0191デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0192デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANpublic static void main(String[] args)
{
func1(1);
}
void func1(final int arg)
{
func2(arg);
}
voi func2(int arg)
{
arg = 9999;
}
}
上記のarg = 9999;のように、final引数→通常引数とわたされた変数は、通常引数の場所で変更可能ですか?
0193デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0194デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN渡されるのは値っす。
func2の変数argの値は変えることができる。
func2の変数argの値を変えてもfunc1の変数argの値は変わらない。
0195デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANこの例だと参照渡しでなくコピーなので変更可になるかな?引数がintでなくクラスの場合にはfanc2の宣言のところで、final変数を通常変数で渡してる、ってエラーがでそう
0196デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANsystem.out.println("i")
if(条件式){
i = 0;
}
}
このようにとある条件の時のみ変数iを戻したいのですけど
この書き方はよくない(一定で上がり続けるiを勝手に変更するのは御法度)
と指摘されました。
なにかほかに言い書き方はありますか?
0197デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0198デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN無限ループの原因になりがちというこそなら、forをbreakしてその外で戻せば(return?)問題ないんじゃない。
0199デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANその条件をクリアするだけなら下みたいにラベル付きループとかも使えるけど
意図が分かりにくくて比較的バグの温床になりやすいコードってのはあんまし変わらんよ。
loop: while(true) {
for(int i = 0 ; i < 10 ; i++){
system.out.println("i")
if(条件式){
continue loop;
}
}
break loop;
}
その部分をメソッドに抜き出して正常完了か異常終了したかを戻り値で返す、
異常終了なら再度そのメソッド呼び出すみたいにした方がいいんじゃね?
0200デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0201デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANfunc1のfinalはfunc1の変数の書き換えを制限するもの。
func2の変数はfunc1の変数とは別のものなんでfunc2の変数を
書き換えてもfunc1の変数は変わらないっすよ。なのでたとえ参照型で
あってもエラーはでないっすよ。
0202デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANint i = 0;
while (i < 10) {
if (条件式) {
// 処理
i = 0;
} else {
// 処理
i++;
}
}
これなら誰が見ても意図は明らか
0203デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANをInteger型の配列に一文字ずつ格納したいんですが([0,2,1,3,4])
以下のようなコードを書いたのですけれど、もっとスマートな方法ありませんか?
Integer[] Q = new Integer[code.length()];
for(int i = 0;i<code.length();i++){
Q[i] = Integer.parseInt(String.valueOf(code.charAt(i)));
}
よろしくお願いします
0204デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANまじっすか!すまぬ&ご指摘ありがとう!
0205デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN文字コードが連続しているのを利用して
char[] charArray = code.toCharArray();
Integer[] Q = new Integer[charArray.length];
for (int i=0; i<charArray.length; i++) {
Q[i] = (int)charArray[i] - '0';
}
0206デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANcodeが2GBあると2GBのメモリーとコピー時間の無駄遣いだからtoCharArrayやめれ。
0207デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANCharacterクラスのstaticメソッドにcharを数にする適当なものがあったはず。
0208205
2013/08/06(火) NY:AN:NY.ANこれの方がいいな
0209靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト教団
2013/08/06(火) NY:AN:NY.AN・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
↑マスコミや、カルトのネット工作員がやっていること
TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。
リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
0210デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0211デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0212デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0213デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANもっとスマートな煽りでお願いします
0214デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0215デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANデスクトップPC用のGUIアプリで、
Cを使っといてインラインアセンブラを使うとかいう方がどうかしている。
0216デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0217デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANどうしてもFORTRANみたいな糞コードになるけどw
0218片山博文MZパンク ◆0lBZNi.Q7evd
2013/08/06(火) NY:AN:NY.AN0219デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0220デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANどこが?
0221デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANttp://gcc.gnu.org/java/
0222デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANframeとpanelの2種類あると思いますがpanelを使う意味ってあるのですか?
webページを見ていたらpanelはオブジェクトのおくところと書かれてますが、
べつにframeにもlabelやら貼れますよね?
勉強期間はまだ短くてよくわかってませんが、どなたかpanelのあるとないとの
違いを教えてくれませんか?
0223デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANJavaっぽい記述ではなくなるけど強引に速くなりやすいように書けるのかな。
興味あります。
0224デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0225デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANまあサーバサイドのボトルネックは9割方がデータベース(≒Disc I/O)なんだけど
0226デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANpanelは無地の板
複雑なレイアウトを行ったり関連する部品をまとめたりするために使う
0227デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN現在はこのように単純に転送しています。
int length;
while((length=input.read(buf))!=-1){
output.write(buf,0,length);
}
しかしこの方法だとreadとwriteが同時に行えないため、
readとwriteを同時に行って欲しい状況だとパフォーマンスが半減してしまいます。
マルチスレッドでも構いません。
0228デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN下手くそが書いたプログラムとかでないかぎりあり得ない
0229デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN無理。というか read と write を同時には行えないよ普通。
read と write を交互にやるのをユーティリティメソッド内に閉じ込めるとかはできるけど。
高速転送に関して言えばファイル限定で
java.nio.channels.FileChannel の transferTo とか transfetFrom とかがある。
これは java の配列を介さずに転送するため javaの配列を介するより高速化する、
とされているもので内部では read と write を交互に行ってる。
あと必ず高速化できるとは限らない事に注意。
0230デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN下手くそはごまんといる。たぶんオマエもその一人。
0231227
2013/08/07(水) NY:AN:NY.ANファイルではないのでFileChannelが使えなくて困ってます
> read と write を同時には行えないよ普通。
マルチスレッドで、readで一定数読み込んだものを次々とバッファに貯めていき、
並行してwriteはバッファから取り出して書き込むという流れではどうでしょうか?
0232227
2013/08/07(水) NY:AN:NY.ANHDDが二台あり、片方のドライブからもう片方のドライブにコピーするとします。
どちらも読み込みと書き込みが50MB/sで行える場合、
理論上は50MB/sで読み込みをしながら、
それと同時に50MB/sで書き込みを行えるはずです。
しかし>>227のコードでは読み込んでいる間は書き込みが停止するので、速度は明らかに低下します。
単純なファイルのコピーならFileChannelが使えますが、
今回はFTPなどのプロトコルを介するためStreamしか使えないという条件です。
どうしましょう。
0233デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN最初から答えが出ているようなものだが
0234227
2013/08/07(水) NY:AN:NY.ANマルチスレッドの場合は読み込んだデータを一時的に保持しておくバッファを
どのように実装するかが問題になります。
最初はByteArrayOutputStreamを使おうと考えましたが、
ByteArrayOutputStreamのtoByteArrayは内部配列のコピーを行うため非効率とのことです。
そうなると一体どのようにバッファを保持するべきなのかわからず、質問させていただきました。
0235デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANQueue<byte[]>とかQueue<ByteBuffer>とかでスレッドで同期させる
0236デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN使ったこと無いから詳しくないが
0237デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN間違っている。javaっぽくポリモーフィズム使いまくりでだとC/C++よりも倍近く早い。
算術演算や配列処理などの組み合わせでゴリゴリ糞コード書いている限りC/C++よりも倍近く遅い。
java1.7では1.6よりも1.5倍ほど速度改善しており、
ループの回数が多くなるとどんどん速度アップするので動的に最適化していると思われる。
0238227
2013/08/08(木) NY:AN:NY.AN諦めてC++で実装したところ理論値に近いパフォーマンスが出たのでこれで回答は締め切らせて頂きます。
Java…(笑)
0240デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0241デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN全く想像もつかない処理だは
0242デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0243デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0244デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0245デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN12 → 12B
123 → 123B
1234 → 1.23KB
12345 → 12.3KB
123456 → 123KB
1234567 → 1.23MB
12345678 → 12.3MB
みたいな感じで整数を3ケタくらいの大きさ単位を含む数字に変換するクラスとかメソッドってある?
0246デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANint flgInts = 0; に
01010101 というフラグを設定して、
boolean[] flgBooleans = new boolean[8]; にそれぞれフラグを代入するにはどうすればいいでしょうか。
0247デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANflgBooleans[1] = flgInts & 0x2 > 0
flgBooleans[2] = flgInts & 0x4 > 0
flgBooleans[3] = flgInts & 0x8 > 0
flgBooleans[4] = flgInts & 0x10> 0
flgBooleans[5] = flgInts & 0x20 > 0
flgBooleans[6] = flgInts & 0x40 > 0
flgBooleans[7] = flgInts & 0x80 > 0
0248デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANそんなもん5分で書ける
それ丸めかたとか1024単位or1000単位とかアプリの要件によって様々だから
標準で用意されてても意味ない
0249デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0250デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0251デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN下位4ビットまでは、0x01、0x02、0x04、0x08と乗算なのに
4ビット→5ビットで0x08→0x10と乗算でないのは、なぜなのでしょうか?
0252デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0253デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0x2 = 2
0x4 = 4
0x8 = 8
0x10 = 16
0x20 = 32
0x40 = 64
0x80 = 128
0x100 = 256
0254デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANなるほど!
ならflgIntsに01010101を設定するのは、
int flgInts = 0;
flgInts += 0x01;
flgInts += 0x04;
flgInts += 0x010;
flgInts += 0x040;
ってことでしょうか。
0255デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANint flgInts = 0;
flgInts += 0x01;
flgInts += 0x04;
flgInts += 0x010;
flgInts += 0x040;
×この方法だとflgIntsに同じフラグを立てられない
int flgInts = 0;
flgInts |= 0x01;
flgInts |= 0x04;
flgInts |= 0x010;
flgInts |= 0x040;
○ビット操作であることを意識する
0256デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANint flgInts = 0;
flgInts |= 0x01;
flgInts |= 0x04;
flgInts |= 0x010;
flgInts |= 0x040;
○ビット操作であることを意識する
というのは理解できました。
×この方法だとflgIntsに同じフラグを立てられない
というのはどういった意味でしょうか?
0257デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANすでに1だった場合
繰り上がりで値が変わる
0258デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN理解しました。ありがとうございました!
0259デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0260デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0261デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0262デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANこれって旧時代の超低スペックのメモリ1MB未満時代のテクニックじゃないの?数GBのメモリの現代でいらんことだろ
0263デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0264デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANメモリの節約はパフォーマンスの向上につながる
バイナリでファイルを読み書きしたり送受信したりする場合、IOを減らす意味で大きな効果があるよ
超ガチな計算ならメモリアクセスがボトルネックになったりするのでそれを減らせれば速くなる場合も
0265デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0266デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0267デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANJavaでやっても意味ないだろ…
0268デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANスクリプト言語ならメモリアクセスのコストは命令の実行コストとくらべて無視できるけど
Javaはそこまで遅くないぞ
スクリプトでもIOを減らすのは効果あるし
0269デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0270デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANJOIN禁止とか特殊なSQL最適化をやった方がリターンが大きい
0271デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN5分のコードください
GPLでお願いします
0272デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0273デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0274デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0275デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN1024モードの小数点数部をどう丸めるか考えるのに20分掛かる
0276デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0277デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0278デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANと
flgInts & 7 == 7
では意味が違います
0279デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0280デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0281デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANこういう管理はよろしくない
何のフラグか分かりやすいよう一つ一つbooleanで定義してやるべき
0282デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0283デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANGWTよりデプロイした複数のwarフォルダを配置させる方法がわかりません。
http://****/ここ
に複数置きたいです。
RPCを使っていない場合は問題ないのですが、RPCを使うとき、○○○Serviceが見つからないというエラーがでます。
○○○ServiceというのはClientパッケージに置く、RemotoServiceインターフェースを継承したクラスです。
もっというと、そのクラスのこのアノテーションに指定したvalueだと思います。
@RemoteServiceRelativePath("○○○");
非同期通信を使う場合、web.xmlに
....
<url-pattern>/モジュールファイルのrename-toで指定した値/○○○</url-pattern>
のように指定しなければいけません。この辺りが原因かと予想しているのですが解決策がみつかりません。
�@GWTでRPCを利用しweb.xmlファイル、@RemoteServiceRelatiovePathを一般的な方法で使う場合、デプロイしたwarフォルダ名は変えて良いのか?
�Aそもそもデプロイ後にweb.htmlを編集してurl-patternを変えることが有効なのか?(RPCを使う場合)
この辺りがわかりません。助言願います。
0284デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN他の解決策を模索した方が良いように思える。
「複数のwarフォルダ」というのがよく見えないのだけれども、
・複数のGWTプロジェクトがあって
・故に複数のwarファイルがあって
・それらを一つのサーブレットコンテナ、例えばTomcatにデプロイして
・一方のプロジェクト内clientから他方のプロジェクト内で定義されたサービス
を呼ぶ
とかいう話かな。・・Serviceが見つからないというのはデプロイ後にサービスを
クライアントから呼んだときに出るエラー?
それとも開発時に出るコンパイルエラー?
@RemoteServiceRelativePathアノテーションの値を・・Serviceとは別の値にして
RPCの呼び出しに失敗しているのかそれともJavaScript生成も含めたコンパイルの
問題なのかはっきりさせた方が良いと思う。
0285デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0286デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN下位4ビットを立てる場合
int flag = 0;
flag = flag | 1;
flag = flag | 1 << 1;
flag = flag | 1 << 2;
flag = flag | 1 << 3;
立ってるか確認
flag & 1
flag & 1 << 1
flag & 1 << 2
flag & 1 << 3
7から2進数リテラルが使えるので
static final int MASK1 = 0b0000000000000000000000000000000000001;
static final int MASK2 = 0b0000000000000000000000000000000000010;
flag = flag | MASK1;
MASK1 & flag こんな書き方もできるようになってたりする
0287デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN無い限り、使えるところは普通にEnumSet使おうよ・・・
0288デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANプロジェクト名ディレクトリ/war/welcom.html,WEB-INF等
みたいな配置が一般的なのですかね?それだと確かにwarディレクトリ名が干渉しあわないですね・・・。
実は一番やりたいのは、デプロイした一つのwarフォルダの中に二つ目のwarフォルダを収めたいです(おそらく異様?だと思うのですが出来ればあわせて一つのサービスのようにしたい)。
それをしようとすると、どうもRPCを使う場合で二つ目のパスがうまくいかないです。
/war(一つ目)/二つ目プロジェクト名/war(二つ目)/WEB-INF/web.xml
見たいにしたいということです。ですが、お決まりどおりに二つ目のweb.xmlを設定すると、
<url-pattern>/rename-toした値/○○○Service</url-pattern>
となり、「/」からはじまるため、期待する
/war(一つ目)/二つ目プロジェクト名/○○○Service
ではなく
/○○○Service
になっているのでは?と考えました。それにあわせて色々設定しているんですが中々うまくいきません
やはり、GWTで作った一つのサービス毎に並列に同じ階層に並べた方がいいのですかね?
webappとしてのマッピングはサーバーを書くときにまとめてしようと考えており、これら二つのサービスは二つで一つのものにしたくてこのような考えに至りました。
0289デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANjava.text.デシマルフォーマットみたいなクラスがあるけどどうだろう
0290デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANorg.apache.commons.io.FileUtils.byteCountToDisplaySize
0291デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0292デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN最初の要素を取得するメソッドで最初の要素が無い場合nullを返したいとき
サイズ見て返す処理と、例外拾って返す処理のどっちのほうがいいの?
//サイズ見て返す
public Foo firstFoo() {
if (vector.size() > 0) {
return vector.firstElement();
} else {
return null;
}
}
//例外拾って返す
public Foo firstFoo() {
try {
return vector.firstElement();
} catch (NoSuchElementException e) {
return null;
}
}
0293デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN最初の要素がない、というケースがどれほどあるかにもよるけど、
基本的には前者のがいい。
後者なら例外そのまま投げちまうのもアリ。
0294デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN例外は、名前の通り、例外的な状況で使おう
「最初の要素が無い場合」 というのが、あまり発生しない例外的な状況なら、例外でもいい
普通に頻繁に発生する状況なら、サイズを調べる方がいい
0296デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANNullPointerException?IllegalArgumentException?どっちがいいの?
0297デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0298デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANIllegalArgumentExceptionがいい。
IllegalArgumentExceptionなら引数が不適切だってわかるけど、
NullPointerExceptionだと何が不適切なのかわがんねっす。
0299デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANthrow new NullPointerException("仮引数名") でよくね?
0300デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANjava.io.FileのコンストラクタFile(URI uri)を見てみようか
これはuriがnullだったらNullPointerException、uriが前提条件を満たさない場合はIllegalArgumentExceptionを返す
すなわち、ぬるぽが正しい
0301デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN明示的にnullチェックしないのはJavaの悪しき慣習だよ
0302デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANcauseにnullpointerexcetion入れとくと…めんどくさいか。
0303デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANanotherCalendarがnullならNullPointerException、anotherCalendarが無効値ならIllegalArgumentExceptionと
コンストラクタでもメソッドでもぬるぽが正しいとこれで分かるはずだ
0304デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0305デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN引数以外のぬるぽと紛らわしいだけだよね
nullチェックをサボれる場合があるという利点なのかわからん利点があるくらいか
0306デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANそうなんよね。
IllegalArgumentExceptionだと引数がまずいって限定されるのだけど、
NullPointerExceptionだとこんだけある。
null オブジェクトのインスタンスメソッドの呼び出し
null オブジェクトのフィールドに対するアクセスまたは変更
null の長さを配列であるかのように取得
null のスロットを配列であるかのようにアクセスまたは修正
null を Throwable 値であるかのようにスロー
ぬるぽ使ったら負けだと思う。
0307デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANぬるぽ例外とは別だったりする
Javaの設計当初はこんなに土方がぬるぽ飛ばしまくる言語になるとは想像もしてなくて
ちょっと記述を楽しようとしちゃったんだろうな
0308デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0309デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANhttp://ja.softuses.com/170
0310デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0311デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANhttp://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/NullArgumentException.html
引数nullはこれを使いなさい
0312デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN俺はこれだな。↓みたいなボイラープレートコードが大量にある。
@NotNullでBean Validationなしで同じ事してほしいわw
if (param == null) {
throw new NullPointerExpection("param");
}
0313デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0314デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANhttp://docs.oracle.com/cd/E16162_01/apirefs.1112/e17493/oracle/javatools/util/NullArgumentException.html
ワロタ
>>311のapacheさんはIllegalArgumentExceptionの派生でNullArgumentExceptionを作ってるけど
このoracleさんのはNullPointerExceptionの派生でNullArgumentExceptionを作ってるわ
0315デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANNPEで作るのかIAEで作るのかはっきりさせてほしい
0316デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0317デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANfinalじゃないフィールドの宣言時に初期値としてヌルオブジェクトを入れてnullを返すメソッドはヌルオブジェクトを返すようにラップしてしまおう
0318デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANクラスの外から引数にnullが渡されるのは防げないだろ
わざわざチェックして例外を投げるのは呼び出し元を信用できないからだ
自分やお約束の通じる相手からしか呼ばれないなら極端な話チェックなんかしなくてもいい
0319デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN>>292のなんかも結局VectorクラスのfirstElement()メソッド内でもサイズのチェックするわけだし、二重のチェックしてることになる
elementAt(index)を使ってもindexが有効範囲内にあるかチェックするわけだし
無駄な処理大杉
0320デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0321デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANif (a == null) throw new NullPointerException("param a"); //←これ必要か?
a.method(); //aがnullならここでNullPointerExceptionが発行されるんじゃないの?
}
0322デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0323デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0324デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANそれだと何が原因でぬるぽが発生したのかわからん。
仮引数名書いてないなら無駄だけど、仮引数名書いておくなら全然無駄じゃないぞ。
0325デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANnullを発明したアントニーホーアさんも謝罪してたねw
私がnull参照を作ってしまったばかりにすまぬ(´・ω・`)と。
0326デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN俺が作るものを他人が使うわけがないから全く問題ない
0327デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN初学者ならまだしも、配列の足し算が大好きな(?)妙なコードをたまに見る
0328デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN細かいエラーチェックなんてしなくていいしな
0329デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0330デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0331デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANチェックで引数で違反があった場合に例外を投げたい
boolean checkArgs(Foo arg1, Bar arg2) { 〜 }
void hoge(Foo arg1, Bar arg2) throws IllegalArgumentException {
if (!checkArgs(arg1, arg2)) throw new IllegalArgumentExceptino();
}
void hoge2(Foo arg1, Bar arg2, Hoge arg3) throws IllegalArgumentException {
if (!checkArgs(arg1, arg2)) throw new IllegalArgumentExceptino();
}
とするのがいいのか
void checkArgs(Foo arg1, Bar arg2) throws IllegalArgumentException { 〜 }
void hoge(Foo arg1, Bar arg2) throws IllegalArgumentException {
checkArgs(arg1, arg2);
}
void hoge2(Foo arg1, Bar arg2, Hoge arg3) throws IllegalArgumentException {
checkArgs(arg1, arg2);
}
とするのがいいのか
それともチェックする内容同じでもcheckArgs()みたいの作らないでhogeとhoge2それぞれでチェックしたほうがいいのか
0332デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN引数をチェックするのが checkArgs の役割だから、checkArgs が「おっと、これは想定外!」って例外を投げるのは意味的におかしい。
ただし checkArgs だと引数をチェックして何がどうだったら true なのか false なのかが明確でないから、メソッド名は工夫した方がいいかも。
0333デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0334デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0335デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN今は引数が何なのかは議論してないからな。
揚げ足取りにしてはレベルが低いぞ。
0336デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANこじゃれたメソッド名を考えろと
0337デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0338デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0339デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0340デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0341デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0342デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANList<Data> getDataList(String key, int value)
keyがnullだったら検査例外イリーガルアーギメントでぶっ飛ぶという内容の話題をしてるの?
valueの範囲が0以上とか明確に決まっているなら、範囲外でイリーガルならわかるけど
keyはnullチェックしないで、そのまま処理継続したけっかヌルポというスタイルでいいと思う
結果size0のList<Data>を帰しても問題ない
が、size0のList<Data>ではなくnullを帰すのは断固反対する
0343デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0344デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0345デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0346デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANz-index使えるべ
他にも手法はいくらでもあるしggってみて
透過もできる
0347デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANまた、必要な場合はnullオブジェクトが適応できる可能性あり
0348デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0349デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN1行目の通り。
だけど静的解析でNGになる場合でのそれは初期値代入でスマートになることのほうが明らかに多い
0350デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANcheckArgsとhogeは引数に対して同じ条件を要求するメソッドと考えれば
例外が連鎖してるだけでなんら不思議はないはず
0351デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0352デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANありがとうございます。
取り敢えずoverlaylayoutで試して見たんですけどうまく重なりませんでした。他の方法も試してみます。
0353デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANありがとうございます。
取り敢えずoverlaylayoutで試して見たんですけどうまく重なりませんでした。他の方法も試してみます
0354デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0355デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANありがとうございます。
取り敢えずoverlaylayoutで試して見たんですけどうまく重なりませんでした。他の方法も試してみます
0356デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0357デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.ANそれはやばいな。俺はクーラーつけてないせいか、3連続みえる
0358デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN俺が老眼だから間違いないw
0359デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0360デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN>>352 >>353 が同じレスじゃないことがはっきり見えるぜ
0361デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0362デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0363デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN0364デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANこれはさすがにダサい
0365デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0366デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANjavascriptでいうprototypeのようなものはjavaにはありませんか?
0367デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0368デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANブートストラップクラスパスとかいうので指定してコンパイルするとかなんとか
0369デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN確かに自分でダブルクリックすると実行してくれます。
違うOSのパソコンで試してみても確かに実行できました。
�@これはJavaがパソコンに入っていたからという認識でよろしいでしょうか?
�Aまた、自分が開発時にしようしたjdkやjreのバージョンと、実行者の環境のJavaのバージョンが一致していない場合、どのように振舞うのでしょうか?
�B標準API以外のライブラリを使った場合、そのライブラリも含めて書き出せば使用者がライブラリをクラスパスに指定する必要はないと考えてよろしいですか?
0370デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0371デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0372デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANJavaを扱うのはサーバー管理者だからね
0373デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANやり方によってはパーミッションで実行可能フラグ立てたりとかかな
ユニックス系のシェルって拡張子じゃなくてファイルのヘッダとか見てファイルタイプ識別してるぽい印象
0374366
2013/08/11(日) NY:AN:NY.AN諦めて適当なメソッドに引数として、渡すことにしました。
ありがとうございました。
0375デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0376デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN我らjavaドカタにそんな難しい質問しないでください
0377デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0378デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0379デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANバージョン気にしなくていいしシステムにJREをインストールさせるのは想像以上に嫌がられる
eclipseみたいに起動用アイコンを用意することもできるし
0380デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0381片山博文MZパンク ◆0lBZNi.Q7evd
2013/08/11(日) NY:AN:NY.AN�@はい。
�Aマニュアルを参照。
�Bはい。
0382デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANほんと、なんで初心者向けのJava本ってSwing教えるんだろうな
あれこそが誤解の元
0383デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN�@知らんがそんな関連付けしやがるのはOS組み込みかJavaのインストーラ以外考えられんよね
�A古い環境で新しいバイナリは動かん。
�BMANIFEST.MFに書いておけばね。Netbeansでビルドして中のjarのMANIFEST.MF見ると勉強になる。
�Cマルチプラットフォーム意識するなら丸数字使うな
0384デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0385デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANセキュリティ的に問題あるよね
普通の人はexeは警戒するけどjarなんて知らないだろう
0386デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN>>369
(1) Java、正確には「Java Runtime Environment(JRE)」「Java実行環境」がパソコンに入っているから
(2) 詳しくは知らん。だが基本的にJavaは互換性を非常に重視するため、バージョンが違っても問題が起きるケースは少ない
(3) クラスパスを指定していない場合は「カレントディレクトリ」がクラスパスとして指定される
ゆえにクラスパスを「明示的に」指定する必要はないが、その場合は自動的にカレントディレクトリに設定されることになる
0387デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN例えばPerlが.plを関連付けるのと何が違うんじゃ?
0388デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN手動でも拡張子の関連付けの設定できるんよ、インストーラがついてない手動インストールとかだと自分でやったりするし
0389デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0390デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN今のJavaは知らんけど
0391デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0392デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN何のためのJavaなんだよ
マルチプラットフォームである意味が全くないだろ
0393デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANJRE同梱は流石に無いのか・・・
と思ったけど
ちょいと前に存在してたauのPC用アプリのLismo PortとかいうやつのインストーラがJRE同梱だった希ガス
0394デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0395デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0396デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANインストーラなんて同梱すんなよ。あほちゃう?
各OS向けに別のインストーラ入れなきゃならんわけで
Javaである意味がない。dll同梱してんのと変わらんやん
0397デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0398デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANOracle DatabaseにJRE同梱版なんてないけど。何しれっと嘘吹いてるの?
http://www.oracle.com/technetwork/jp/database/enterprise-edition/downloads/index.html
0399デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANお前Oracleのツールが何で動いてるかしらんのか
0400デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN> Oracle Universal Installerにより、Java Runtime Environment(JRE)のOracleバージョンが自動的にインストールされます。
http://docs.oracle.com/cd/E16338_01/install.112/b58878/intro.htm#i1005848
0401デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0402デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANなんでボラクルは今時あんな誰も使ってないゴミに拘るんだろうな
Javaのアイデンティティみたいなもんなのか
0403デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANStringクラスを継承したMyStringクラスとか作って
それに使いたいメソッド定義すればいいだけ
0404デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN値オブジェクトだからな
0405デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANfinalだから継承はできないけど、文字列を独自のアルゴリズムでどうこうしたいなら
そういうStringUtilなクラスを作るべし
0406366
2013/08/11(日) NY:AN:NY.ANjavascriptでいうmatchメソッドを追加したいのです。
0407デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN第一引数に拡張したい型を取るstaticメソッドとかでさ、他の言語でもあるだろ
0408デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN今までプログラミングを一度もやったことがないのですが
ネット関係に興味があり何か自分でプログラミングして作ってみたいと思ってます
スマホのアプリもjavascriptが必要であるとのことで最終的にはスマホのアプリも作れればいいなと思ってます
まず初めにjavascriptの入門書を1冊買ってやってみようかと思ってるのですが
入門書を買わなくてもネット上にjavascriptの使い方はあるのですかね?
それともやはり本を1冊かってやってみたほうが身に付くのでしょうか?
0409デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANプログラム言語程度ネットで事足りることは多いけど
昨今は裏でかなりトリッキーなことしてることが多いから本買った方がいいよ
入門はネット、中級書を書店・Amazonで
0410デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANありがとうございます
入門書を1冊かってやってみることにします
0411デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANStringクラスを継承したMyStringクラスとか作って
それに使いたいメソッド定義すればいいだけ
0412デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN>>403-404
0413デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN具体的には、今どう書いているのを match メソッドを作ってどう書き直したいの?
String クラスはサブクラス化できないから >>405 の人が書いているように StringUtils クラスを作ることになると思うけど、Apache Commons とかで代用できそうなのがあるかもしれない。
0415デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANabcDabcEabcF
という文字列に
abc.
で検索した結果を、
["abcD", "abcE", "abcF"]
という形の配列で得たいのです。
これを
配列="abcDabcEabcF".自作メソッド("abc.");
のように簡単に実行したいです。
0417デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANpublic class StringUtil {
public static String[] match(String target, String regex){
ArrayList<String> list = new ArrayList<String>();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(target);
while (m.find()){
list.add(m.group(0));
}
return list.toArray(new String[0]);
}
}
0419デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0420デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0421デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0422デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANJFrameのとある一部分の背景色を変更するにはどうしたらいいんでしょうか
JPanelとかを使ったりして背景色を変更しようとしても
全面同じ色で塗りつぶされた様になってしまいます。
どなたかアドバイスをよろしくお願いします。
0423デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANJFrame f = new JFrame("タイトル");
f.setBounds(0,0,100,100);
f.setLayout(null);
JPanel p = new JPanel();
p.setBounds(0,0,10,10);
p.setBuckGroundColor(Color.色);
f.getコンテンツペイン().add(p);
f.setVisible(true);
スペルとか超怪しいけど気にしない
これでだめだった?
0424デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN何言ってんだこいつ
GUI使ったらMono使えなくなるじゃん
0425デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANf.setLayout(null); というのは
デフォルトのレイアウトが左詰めのフローレイアウトだから
その上にパネルを一枚乗せるとパネルが画面全部を埋めてしまっていると思うので
それを回避するためのものです
この場合レイアウトは無いということになるのでsetBounds(x,y,width,height)で位置と大きさを指定します
0427デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANsetBackgroundだと拡張し辛いからJComponentでpaintComponentをoverrideするか、
awtのCanvasのpaint使うか、CanvasからBufferStrategy取得してBufferedImageで扱うかしたほうがいいと思う
JPanelでやってみた例
http://ideone.com/u5Ce9i
画用紙と図形をまとめておけば余り汚さないかもね〜
0428デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANスマソ
0429デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0430デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0431デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANGUIに関してはJavaとは比べるべくもない
0432デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0433デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANマルチプラットフォームなGUIなんてクソだからGUIはネイティブなAPIを使って個別に作れという考え方
0434デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANUnityみたいなのですら#if上等だからな
0435デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0436デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN結局Swing製のGUIとか使いにくいし、
いずれにせよwrite once,run anywhereなんてことにはどうせならん
0437デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANjavaさんが証明したしな
0438デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0439デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0440デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0441デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0442デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0443デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANこの2つは何が違うんですか?
glass fish = EJB準拠?だけど、tomcatはサーブレッド/jspしか動かせないんですよね
機能的にはglass fish > tomcatってことですか
0444デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANサーブレット、jspなんてフレームワーク「内の」一部品にすぎないでしょ。
0445デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANなぜjetty
0446デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0447デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANWebプロファイルはフルプロファイルのサブセットだから
消費メモリと起動時間はTomcatのが優れると思われる。
私はJBossよりGlassfishのが好き。Web版管理コンソールが使いやすい。
0448443
2013/08/13(火) NY:AN:NY.ANEJB + 軽量コンテナの組み合わせってあるんですか?
例えば、Glassfish + strutsの組み合わせとか
軽量コンテナ = EJBの代替品って考え方が根本的に違っているのかな
0449デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN軽量コンテナと言われてたものはCDIとしてEEにも備わってるし、
トランザクション境界を戦略的に使い分けられるEJBは最近は便利に感じる
0450デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANJAVA SE/JAVA EEでRUNTIMEは別々にあるんですか
0451デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANJSRという団体が作ったAPIをEEというサーバー規格に纏めてる
SEのAPIもJSRが作ってるから公式の拡張仕様ということ。
Glassfishは現在のEEの参照実装といってEE規格に沿うと
こんな感じのサーバになりますっていうサンプルサーバー扱い
出来が良すぎてこいつを本番で使う企業も多い
0452デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0453デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0454450
2013/08/13(火) NY:AN:NY.ANありがとうございます
0455443
2013/08/13(火) NY:AN:NY.AN最後に1つだけ教えて
java eeとspringで出来る事って被ってるよね
springやhibernateを使わずに、java eeだけってありだと思う?
0456デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0457デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN最近のEEだと有りだね。標準規格に合わせないSpringのが小回りは利くと思うが
EEもそういう先進的なアイデアを十分に取り込んで使いやすくなってる。
外部から色んなライブラリを集めてこなくてもいいから環境を整えるのも早い。
0459デフォルトの名無しさん
2013/08/14(水) NY:AN:NY.ANサーバー起動までの部分をxml使わずに自分で用意したかったりソケットでhtmlと通信したい場合、jettyのほうが低レベルから扱える気がする
0460デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANArrays.sortだとNullPointerExceptionが投げられます。
どうすればいいですか?
Integer[] a = new Integer[10];
for (int i = 0; i < a.length; i++) {
a[i] = Integer.valueOf(i);
}
a[0] = null;
Arrays.sort(a);
0461デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN0462デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANなるほどやってみます、ありがとうございます。
0463デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANできました。これです。ありがとうございました。
Comparator<Integer> c = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 == null && o2 == null) {
return 0;
} else if (o1 == null) {
return 1;
} else if (o2 == null) {
return -1;
} else {
return o1.compareTo(o2);
}
}
};
Arrays.sort(a, c);
0464デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN0465sage
2013/08/17(土) NY:AN:NY.ANwhile(true) {
final Point p = new Point(3, 4);
}
こういう場合、二回目以降はnewされていないと考えてよいのでしょうか?
fieldと遠くなるのがちょっと嫌で、繰り返しで何度もnewされない方法になるのではないかと考えております。
0466デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN何度もnewされて実際とっても遅くなるよ
Javaにはユーザー定義の値型がないので、そういうベクトルの計算なんかは工夫が必要
JITが賢いから小さいクラスを多用した処理はうまく最適化されるという触れ込みだが、
実際やってみると全く全然当てにならない
0467デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANguiプログラムを一先ず終え、web系を始めようと思っているんでけれど、
webアプリケーション、サーブレット、JSP
これらの単語は同じものとして解釈してもいいのですか?
調べているうちにこのような言葉がたくさん出てきて少し分からなくなってきました。
0468デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN>何度もnewされて実際とっても遅くなるよ
ホントですか。ということは、フィールド使えということですね。
この例だとそれですぐ済みますが、list等使わないと苦しい場合はでてきそうです。ありがとうございました。
0469デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANwebアプリケーション:web上のひとつのアプリ全体 (言語を問わない - Javaでなくてもwebアプリと呼ぶ)
サーブレット:HttpServletを継承した普通のJavaのクラス (サーバ上で動く)
JSP:HTMLの中にJavaのプログラム (サーバ上で動く) を書ける
0470デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANx, yそれぞれ別の配列に持てばおk
どこのfortranだよって感じになるけど土方言語だから仕方ない
0471デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANクライアントアプリでパフォーマンスに拘るなら配列使うのがいいな
最初から60fpsを諦めちまえば気にすることもないのだろうが
0472デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN>動的再コンパイルが掛かるまで大した最適化は行われないと思うし
それを当てにして>>466みたいな感じで重い計算を書いたらクソ遅かったわ
エスケープ解析は無いものと思った方がいい
0473デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANサーブレットとjspは一角にすぎないよ
それらだけじゃAJAXの技術身につかないし
0474デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANWebアプリケーションはソフトの分類
サーブレット・JSPはその具体的な実装の手法
勉強目的ならJSPじゃなくてサーブレットを選ぶことになるかな
どちらも「コンテナ」と呼ばれるミドルウェアに組み込んで
Webサーバに載せる形で動かす
0475デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANspringとか使わないと無理でしょうか
asp.netだと画面を自動生成出来ますが、jspではhtmlを手書きするしかないんでしょうか
0476デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.ANここの違反コードについてなんですが、
拡張for内で次の要素へスキップするときはcontinueを使え
という解釈で大丈夫ですか?別に拡張for文内でif文で処理を分岐することは違反じゃないのですよね?
0477デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN拡張for文はIteratorなりインデックスアクセスなりの操作に置き換わるが
ソースコード上でそれらの操作オブジェクトには触れないってのがポイントなのかな
俺はそのサイトの解決より自前でリスト作って置いてコレクションにラップすんなよってツッコミたいがw
0478デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANありがとうございます。
続けて質問なのですが、リスナーを自作しようと考えており、
public interface StateChangeListener extends EventListener {
void stateChanged(StateEvent e);
}
public class StateEvent extends EventObject {
public StateEvent(Object source) {
super(source);
}
}
のように標準APIに従うように用意しました。
ですが具体的な実装の部分(fireの部分?)があまり理解できていません。
public class Obj {
private int x;
public Obj(int x) {
this.x = x;
}
}
例えばこのObjクラスにaddStateChangeListenerメソッド等を持たせて、
xの値が変わると毎回stateChangedメソッドが呼ばれるようにするにはObjクラスをどのようにすればいいのでしょうか?
0479デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANpublic void setX(int x) {
this.x = x;
fireStateChangeEvent();
}
public void fireStateChangeEvent() {
StateEvent event = new StateEvent(this);
for (StateChangeListener listener : listeners) {
listener(event);
}
}
でええんやないの?コレクションは私ならLinkedHashSetを選びそう。
setterが複数ある場合でもリスナ名からすれば都度呼び出すのだろうね
0480デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN×public void fireStateChangeEvent()
○private void fireStateChangeEvent()
0481デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANありがとうございます。参考にします。
標準apiのComponent辺りのクラスを参考にしたいのですが、AWTEventクラスが絡んできて理解できませんでした。
0482デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANカウントはラベルに表示されるはずです。
eclipce使用で、エラー表示はありません。
カウントが増えない以外は成功してます。
下記のコンストラクタなクラスを別クラスのメインから、
GUI7 frame = new GUI7();
で実行してます。
同じクラスでメインを実行しても失敗します。
0483482
2013/08/18(日) NY:AN:NY.ANJButton b1; JButton b2; JLabel l1; int count = 0;
GUI7(){ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setVisible(true);
getContentPane().setLayout(new BorderLayout());
JButton b1 = new JButton("zouka");
JButton b2 = new JButton("zero");
JLabel l1 = new JLabel(count + "clicks");
add(b1,BorderLayout.NORTH);
add(b2,BorderLayout.SOUTH);
add(l1,BorderLayout.CENTER);
b1.addActionListener(this);
b2.addActionListener(this);}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {count++;}
else if (e.getSource() == b2) {count = 0;}
l1.setText(count + "clicks");}
0484デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANJButton b1 = new JButton("zouka");
JButton b2 = new JButton("zero");
JLabel l1 = new JLabel(count + "clicks");
これだとローカル変数を宣言してそれにインスタンスをセットすることになるっすよ。
actionPerformedで期待されるのはインスタンス変数にインスタンスがセットされてること
なので、こんな感じで。
b1 = new JButton("zouka");
b2 = new JButton("zero");
l1 = new JLabel(count + "clicks");
0485482
2013/08/18(日) NY:AN:NY.AN0486デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN抽象化されたクラスと、こういうインターフェイス(publicメソッド)を持っているよっていう定義
前者はその子クラスは全て振る舞いを制限されていて、そのインスタンスは基本的に同じような挙動をするもの
後者は、期待した挙動をするメソッドを持ちあわせているが、異なるインスタンスに関連性があるかは不明
前者を便利メソッドを追加する目的で使う奴は後を絶たないけどな(それが悪いという意味ではないが)
0487デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN違反コード: for (String s : strings) {…}
適合コード: for (final String s : strings) {…}
違反コードでは
for (String s : strings) {
s = "ハゲ";
}
がコンパイルエラーにならないので、適合コードのようにfinalをつけ、明示的に代入が出来ない事を示すコードにしろ、って内容だよ
違反コードも適合コードも複雑に書かれてるけど、そのページの主題についてはそこまで深く考える必要はないと思う
---
再代入にメリットのあるケースのほうが少ないんだから、
変更可能な変数だけ明示できる仕組みだったらもっと楽だったのにな
0488デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN別のオブジェクトをフィールドとして持つ際は new 別のオブジェクト(引数)
で防御的コピーをするようにと書いてあるサイトが多いですが、これについて質問があります。
防御的コピーを行うために呼び出したコンストラクタの内部において
this参照を引数として渡すような関数を呼び出しているような場合、
防御的コピーで生成されたオブジェクトへの参照が外部のクラスに漏れてしまいます。
このように別のオブジェクトのコンストラクタの落ち度で不変性が維持できないケースについては、
不変オブジェクトの設計者としては無視してもよいのでしょうか?
それとも別のオブジェクトのコンストラクタの実装を調べて、参照が漏れていないか確認することも
不変オブジェクト設計者の責任に含まれるのでしょうか?
0489デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANそもそも参照の露出がハッキリしてるのなら不変オブジェクトは
実装できないのだからこんなところで燻らせるよりそいつに相談しろよ
0490デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANこの程度のリクエストなら連携させないほうが、色々とメリットがある気がするのですが
0491デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN本番レベルでApacheを運用してきた実績があってTomcat単体で実績がないなら
Tomcat単体のオプションを学習するメリットは薄いと言えない?
0492デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN処理できる程度のこと?
0493デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANttp://education.yachinco.net/tips/java/04/1.html
のサイトがでてきて、
>String型のオブジェクトは不変オブジェクトです。いったんオブジェクトを生成したら、その内部状態を変更することは出来ません。
とあるが
String text = "aiu";
text += "eo";
とできるわけだけど、これがどうして不変オブジェクトなの?
0494デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN"aiu"の状態を変更して"aiueo"にしたわけでなくて、
"aiu"とは全く別に新しく"aiueo" を作ってその参照を text に代入してるだけだから。
元々の "aiu" の状態は変更されていない。
0495デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANpublic interface Bar {
}
を用意しておいて、Fooを閉じた多能にすれば
Foo<Bar> foo = new Foo<Bar>();
このときの型には
BarかBarをimplementsしたクラスかBarをextendsしたインターフェースかそれをextendsしたクラスに制限(コンパイルエラー)できる
という解釈で良いですかね?
Genericなクラスにしたいけど型の自由はある程度制限したい場合等に使えるということですよね。
標準APIで使われている箇所を知っていたら教えてください。
0496デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN}
肝心のFooが抜けていました
0497デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN○ 多態
public abstract class Enum<E extends Enum<E>>
0498デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0499デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANループ文で str += "うんたら" なんてやられたら大変なことになるぞ
0500デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANString text = "";
String line = "";
while((line = br.readLine()) != null) {
text += line;
}
こういうのもダメなの?
0501デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANそれ古い知識。今はコンパイラの最適化が行われるから>>500のようなコードの方が速い
http://calms.hatenablog.com/entry/2013/05/11/194827
0502デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANまぁStringBufferでappendが普通だとは思うけど
0503デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN早い遅いじゃなくって、スタックセグメントにやたらと中間生成物の文字列追加しちゃうのが問題なんじゃないの?
0504デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0505デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANあとそもそもOracle以外のJava実装ではきちんと+演算子が最適化されているとは限らないので
そういう環境では使えないテクニック
0506デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANリンク先のコードと>>500のコードって違うよね。
>>500のコードはループのたびにtextの長さがびにょーんと伸びてくから
StringBuilderを使うよりかなり遅いはずだよ。
0507デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANStringよりちょっぱやに処理を完了する。インスタンスを生成する回数より
インスタンスを生成するときのサイズが重要なんだと思います。
0508デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANString a = "moji";
String b = "moji";
String c = a + b;
System.out.println(a == b);
System.out.println(c == a + b);
String d = "";
for (int i = 0; i < 100000; i++) {
d += a;
}
}
これ実行すればStringBuilder.appendの重要性が認識できる
0509デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANMyElementクラスを作りました
http://ideone.com/GqQF12
エラーが出ました
わけがわかりません。助けてください
0510デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANこれの通りMyElementは com.sun.org.apache.xerces.internal.dom.ChildNodeにキャストできないといわれている
パッケージを見比べてみよう
com.sun.org.apache.xerces.internal.dom.ChildNode
org.w3c.dom.Document
org.w3c.dom.Node
0511509
2013/08/19(月) NY:AN:NY.AN同じNodeなのにどうしてMyElementだけエラーが発生するのでしょうか?
e1とe2はちゃんと追加できてるみたいです
0512デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANSystem.out.println(document.getClass());
0513509
2013/08/19(月) NY:AN:NY.ANどうすればDocumentImplを修正できますか?
0514デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANNode root = new Main().new MyElement(document.createElement("a"));
0515デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANString text = "aiu";
text += "eo";
↓
現実
String text = "aiu";
text = new String("aiu" + "eo");
0516509
2013/08/19(月) NY:AN:NY.ANappendChildする過程でChildNodeへのダウンキャストが起きていて、
ChildNodeを継承していないMyElementではダウンキャストに失敗するというわけですか
でもおかしくないっすか?
Node appendChild(Node newChild)
http://docs.oracle.com/javase/jp/7/api/org/w3c/dom/Node.html#appendChild(org.w3c.dom.Node)
appendChildのドキュメント読んでもどこにもChildNodeなんて単語は登場しないんですが
appendChildは実質的にChildNodeの引数しか受け付けないってことですよね?
0517509
2013/08/19(月) NY:AN:NY.AN↑こう書いてあったら「Nodeを引数として渡せばうまく動く」と誰だって思いますよね?
実際には受け付ける型が違い、しかも実際に受け付ける型の名前はドキュメントに書かれていないなんて
そんなこと許されるんですか?
0518デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANDocumentImplとは違うNode(MyElement)が混ざること自体ちょっと問題があるのかなと
私としての回答は514としか言えないが。
A社が作ったNodeの実装 com.a.NodeImplと
B社が作ったNodeの実装 com.b.NodeImplに互換性があるわけがなす
0519509
2013/08/19(月) NY:AN:NY.ANlistをArrayListにダウンキャストしているから、
実際にはArrayList以外は引数に渡せませんとなっていたら、皆さんどう思いますか?
誰がどう考えてもおかしいですよね
>>518
rootをそのように書き換えてもだめでした
http://ideone.com/bJrXak
MyElementのappendChildは単なるラッパーなので、これ自体は仕方ないとは思います
0520509
2013/08/19(月) NY:AN:NY.AN> A社が作ったNodeの実装 com.a.NodeImplと
> B社が作ったNodeの実装 com.b.NodeImplに互換性があるわけがなす
同じインターフェースを実装したクラス同士であれば、
相互に入れ替え可能であるというのがインターフェースの意義であると認識していました
たとえば
List list = ArrayList();
これを
List list = LinkedList();
に入れ替えても、コードを変更することなくListとして使用可能というのが
インターフェースの意義だと認識していました
0521デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0522デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0523デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANコンセントというインタフェース abstract抜き差があって
100V2極
200V3極
こんな感じになっているので抜き差しはできる
抽象的だけどこんな感じ
0524デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANif (!(newChild instanceof MyNode)) throw DOMException(DOMException.NOT_SUPPORT_ERR, "てめーのNodeなんて知らんわ!");
}
0525デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANってことなんだろうね。再利用が可能なオブジェクト指向()
0526デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANどうやって課題をクリアするか考えてみよう
1.インポートできないのでソースをパッケージごとコピー
2.1を継承
3.ファクトリを自分で作る
4.インタフェースに矛盾があり作る気が起きませんと突っぱねる
5.引き数無しのMyElementコンストラクタを作る
課題として出るくらいなんだし。当然模範解答があるはずなので4はさすがにない
0527デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN作ったクラスを親ノードにappendしろとは言ってないんだし問題なかろう
0528デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANとのことなので、新たな実装を求められるレベルの課題なのかもしれない。
SOAPElementのように、新たなパーサやスキーマから作成することを求められているなら
俺はギブアップだ
0529デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0530デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN自作クラスでインターフェース使いまくってるからキャストで弾かれないか心配
0531デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0532デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN言わばライブラリの仕様なわけで、別のライブラリを使用する以外の解決法はない
0533デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0534デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANJavaでも他の言語でも普通はブロックと呼ぶ
スコープは変数の性質であって意味が違う
0535デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANは?
「Javaでも」って、そもそもブロックのことをスコープって呼ぶ言語のことを教えてよ。
0536デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANfor(int i = 0; i < 10; i++)
count++;
i+=count;
あえて{}書かずにfor書いたよ
i+=count;はスコープ外
言語関係なくスコープという呼び方で通じる
解説終わり
0537デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANint count = 0;
for(int i = 0; i < 10; i++){
count++;
i+=count;
}
これだとi+=count;のiがスコープ内になるという違いで納得してもらえるだろうか?
0538デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANcountのインクリメントはブロック内の処理であって、
それを「for文のスコープでcountをインクリメントします」とは表現せんだろ
0539デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANソースどころか日本語も読めないのな
0540デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANスコープは変数の属性として用いられる用語。
「i【の】スコープはこのブロック内に限定される」
とかいう風にね。
「iがスコープ内」なんて表現は主客転倒。
0541デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANひまなら>>509の真意と模範解答はよ
509で2時間くらい時間無駄にしたけど。なんだかんだ知識欲はみたされたから許す
0542デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN解なし
0543デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN独自ノードと他所の実装ノードをくるむアダプタノードとでツリーを作って
出力時にダウンキャストされないことを祈るしかないな
0544509
2013/08/20(火) NY:AN:NY.ANhttp://mail-archives.apache.org/mod_mbox/xerces-j-users/200906.mbox/%3COF2F74C2BF.3EC63F92-ON852575C8.001B4F75-852575C8.001D5BF4@ca.ibm.com%3E
以下要約
1. DOMの仕様において、Node#appendChild()する際は同じDocumentから生成されたNode同士でなければならない
http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-952280727
2. 1のチェックは、ownerDocumentを比較することで行われる
http://www.w3.org/TR/DOM-Level-3-Core/core.html#node-ownerDoc
3. つまりNode#getOwnerDocument()メソッドの返り値のDocumentを偽装すれば1のチェックをすり抜けることができる
4. しかしそれは間違ったやり方だ
少なくともXercesのDocument実装は「そのNode」を生成したわけではないし、
また「そのNode」を所有しているわけでもない
ゆえにownerDocumentの値がおかしいということになる
0545デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN0546デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN{ }で囲われたブロックがスコープを持つ。これはつまりブロックスコープ。
例えばJavaScriptは{ }だけで囲われたブロックがスコープを持たず、
関数function(){ }の範囲がスコープを持つ。
これを関数スコープと呼んだりする。
0547デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.ANあぁそっちの仕様の問題か
結局このスレでは正解者ゼロか
情報学部の高レベルな課題だったみたいだな
0548デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN0549デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AND どーせ O おれなんて M もてないし
0550デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANBeanManagerを使ってもActiveではないと叱られてしまいます。
0551デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANpublic class try2 {
public static void main(String[] args){
FileWriter f = null;
try{
f = new FileWriter("data.txt");
f.write("hello");
}
catch(IOException e){
System.out.println("エラーです");
}
finally{
f.close();
}
}
}
0552デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN・ファイルが存在しない
・ファイルがロックされており書き込みができない
などの理由によりIOExceptionが発生している。
System.out.println("エラーです");
↓
e.printStackTrace();
こうに直して詳細なエラー情報を見ろ
0553551
2013/08/22(木) NY:AN:NY.AN支持通りにしたら、こんなエラー情報が出ました
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
処理されない例外の型 IOException
at try2.main(try2.java:21)
eclipceの指示に従ってメインメソッドに throws IOExceptionを足したら
f.close(); に付いてたエラー表示も消えました。
0554デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN非常に見栄えが悪いコードになるからJava7からtry-catch-resource文が用意された
0555551
2013/08/22(木) NY:AN:NY.AN0556デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN参考書やおすすめの書籍はありますか?
0557デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANある程度かけるようになって
自分が創作、携わりたいものが解かってから本を買えばよいかと
0558デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0559デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANネットに転がってるサンプルなんてほとんどがJava 6の構文を使ってて今は非推奨な書き方ばかりだろ
とんでもない地雷行為を勧めるなよ
0560デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANJavaはどうせどの本から入っても言語仕様読むようになるし
0561デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANつまるところ書籍とインターネットを併用しながら学ぶのが一番ということでしょうか?
あと加えて質問なのですがテキストエディタで保存したjavaファイルは
コマンドプロンプトで読み込む場合、どこに保存するのが最適なのでしょうか?
なかなか認識されなくて困っています
0562デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANc:\gomi
0563デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN本にしろネットにしろ「古い書き方」で書いてあるページの情報は鵜呑みにしちゃダメ
以下はそれを見分けるための一例
例えばJava7からは以下のコード例はコンパイラの警告を受けてしまう(総称型で指定する必要がある)
http://www.javaroad.jp/java_collection2.htm
http://www.tohoho-web.com/java/collection.htm
以下のコードも今は好ましくない(try-with-resources文を使うべき)
http://www.javadrive.jp/start/stream/index1.html
例えばjava.io.Fileを使っているコードを見かけたら要注意。
Java 7以降は以下のようにjava.nio.file.Pathを使うべき
http://www.ne.jp/asahi/hishidama/home/tech/java/files.html
0564デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN出来れば4以下の仕様の違い程度は知っておいたほうが良い
パーミッションの関係でユーザディレクトリ配下で任意場所に置くのを推奨する
ユーザ名\javaSampletとかドキュメント\javaSampletで問題ない
0565デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANpath設定って再起動しないと反映されないんですね・・・
0566デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANお金を惜しんではいけないと書いてありましたし
0567デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANその手の間違いは本でも同じだ
古いと駄目ってだけ
0568デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANコマンドプロンプトの再起動で反映されるよ
とはいえ君が手動でjavac使うことには反対するよ
EclipseなどIDEを使えばコンパイルエラーや警告の多くに気づき、その修正方法も提示されるのに対して
テキストファイルに手入力だと明らかなコンパイルエラーにも気づかず、その修正方法も提示されないから
初心者に無意味なエラー探しの負担を強いることになる
javac使うのはコンパイルオプションを細かに制御したい中級者以降から
初心者はボタンのワンクリックでコンパイルから実行までできるEclipseつかえ
0569デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN参考書とは言ってもJava 7に対応したものは決して多くはないから、
>>563の項目をチェックしてから買わないと金が無駄になるからな
0570デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANちなみにjdk1.7.0_25を使っているのですが、これは現在の主流ということで
よろしいですか?
0571デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANまあ、実際はantとか専用のデプロイツールつかうんだけどね
eclipseを導入するのは基本構文終わったあたりからで問題ないかと
0572デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN基本構文を学んだあとにeclipseを使いたいと思います。
0573デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANそれは業務で開発する場合の知識だろ
一人でプログラミングする分にはコンソールもAntもよほど特殊な用途でなきゃ使わん
0574デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN俺もEclipse勧める
初学者は関係ないことでやる気なくすのが一番問題だ
0575デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANC#でもやって、あとRubyとかPythonとかScalaとかHaskellとかやればいいよ
0576デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANコンソールを使わせたがるのはC言語プログラマの名残にしか思えん
0577デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0578デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0579デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN普段GUIで操作してる人にコンソール勧める必要ない
0580デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANでもプログラミング自体初めてなら俺もVS使ってのC♯を推薦する
その場合は必要に迫られてから、コンソールに慣れていけばいいのかな
0581デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANすごい説得力だ。やっぱ初めからIDEというのも悪くないかと思い始めた
0582デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0583デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0584デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANネットと参考書を併用するとして、みなさんがオススメするjavaの書籍はありますか?
自分が使ったあるいは友人が使っていた等なんでも構いません
0585デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANそれは危険な質問だな
このスレにいる人間は初心者向けの本についてほとんど知識がないから、
Effective Javaとか「名著ではあるけど初心者が読んでも正しく理解できない本」を勧めてくる傾向が強い
0586デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANいま初心者にオススメの本はたぶん知らないのです
そういえばEffective Javaはもう在庫限りだそうですね
0587デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0588デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0589デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANただ誤字が多いのは結構なマイナスポイント
0590デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANブラウザ上で同じようにするのってどうするの?
JFrameやJPanelは使えるのかな?
まだwebアプリの勉強途中だけどここらへんが疑問点
それとできればアプレットじゃなくてサーブレットでやってみたいです
0591デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0592デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANアプレットはウェブブラウザ上で動作するアプリケーションです
サーブレットはサーバアプリケーションです
この二つは用途と動作する場所が違います
0593デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANまだアプレットとサーブレットの区別があまりできてなくてよくわからなかったよ
アプレットはswingとか使ってガリガリ動くようなブラウザアプリ
サーブレットはデータベースを使ってなにかする
って解釈でいいのかな
0594デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN用途が違うつーかアプレットって死滅したと言っていい
0595デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN今や重大な反社会的行為だ
0596デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0597デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.ANアプレットは見直される がんばれ
0598デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.AN勉強してたらまだまだアプレットとか取り扱っていたものがたくさんあったからそんなこととは思わなかった
とりあえず597さんのいうとおりものすごいものを私がつくる!
その前に普遍的なサブレットでも頑張るよ
いろいろお世話になりました・∀・
0599デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.ANオラクルさんがセキュリティホール連発で容赦なくアプレットを殺しにかかってくるからなあ
0600デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.AN0601デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.AN0602デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.AN0603デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.ANまずtomcatを起動
次に普通のブラウザ(IE)からurlに自分で作った.jspにアクセス
.jspから<imput type="submit">でサーブレットにアクセス
サーブレットの中身はデータベースのデータをブラウザに表示すること
おおまかにこれが「動的なコンテンツ」ってことでいいのかな?
0604デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.AN0605デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN例えば「入力データ、パスワード、salt」を引数にとって入力データを暗号化して返すメソッドを定義するとします
入力データはStringまたはbyte[]またはFile
パスワードはStringまたはbyte[]
saltはStringまたはbyte[]
これを素直にオーバーロードするとこうなってしまいます
public byte[] encrypt(String data, String passwd, String salt)
public byte[] encrypt(String data, String passwd, byte[] salt)
public byte[] encrypt(String data, byte[] passwd, String salt)
public byte[] encrypt(String data, byte[] passwd, byte[] salt)
public byte[] encrypt(byte[] data, String passwd, String salt)
public byte[] encrypt(byte[] data, String passwd, byte[] salt)
public byte[] encrypt(byte[] data, byte[] passwd, String salt)
public byte[] encrypt(byte[] data, byte[] passwd, byte[] salt)
public byte[] encrypt(File data, String passwd, String salt)
public byte[] encrypt(File data, String passwd, byte[] salt)
public byte[] encrypt(File data, byte[] passwd, String salt)
public byte[] encrypt(File data, byte[] passwd, byte[] salt)
このような場合はどのようにメソッド定義をするのが正解なのでしょうか?
0606デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN0607デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANあるいはデザパタの「Builder」を勉強して、setPasswd()とかのバリエーションを好きなだけ作る
0608デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANあとStringだけど一緒にCharsetかその名前を示すStringがセットになってないといかんな
0609デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANそのフォルダのjavaファイルから直接読み取りたいのですが、コマンドプロンプトの
最初のファイル指定先を変更することはできませんか?具体的には
現在:C:\Users\***>
となっている部分を
C:\Users\***\Desktop\java
と、コマンドプロンプトが開いた瞬間になるように設定したいです
0610デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANデスクトップにコマンドプロンプトのショートカットを作って
それを右クリックしてプロパティを開いて作業用ディレクトリを設定すればいいよ。
0611デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN最初はjavacでやってみるのも勉強にはいいかもしれないが、
理解した上で楽したいんならそもそもコマンドプロンプトなんかやめてEclipse使え
0612デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANcd /d "<飛ばしたいパス>"
cmd
0613デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN0614デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN楽したいとか意味不明
一通り理解したらIDE行け
0615デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANリソースの差し替えができるぞ
0616デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN// あらかじめ、workというフォルダを用意しておく
// console.jsの名前で保存してから、エクスプローラでconsole.jsをダブルクリック
// さもなければ、スタートにドラッグしてドロップ。スタートから選択。
// Windows 2000, Windows XP
directory = "C:/work/";
o = WScript.CreateObject("WScript.Shell");
o.CurrentDirectory = directory;
o.Run("cmd");
0617デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANWindows 2000でうまくいかない場合は、WSH 5.6 にアップグレード
Windows 2000 または Windows Me を現在使用している場合は、WSH 2.0 が既にコンピュータ システムに
インストールされています。Windows 95/98、または Windows NT 4.0 を使用している場合は、
WSH 1.0 がインストールされています。WSH 5.6 にアップグレード
アクティブなプロセスの現在の作業ディレクトリを取得または変更
WSH 5.6 の新機能
http://msdn.microsoft.com/ja-jp/library/cc364344.aspx
0618デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN0619デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANありがとうございます
0620デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANDOM仕様のどれを実装するのかも不明。
宿題スレだと学校晒せ言われるレベルだぜ。というかなぜ宿題スレに来なかったんだ。
0621デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN0622デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.AN勉強になったからむしろ感謝してる
Document実装は型が同じでも、互換性は無い。これが解っただけでも進歩じゃないか
0623デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANおさんの自演ほど哀れなものはない
0624デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANこれが解っただけでも進歩じゃないか
0625デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN初歩的にタグ文字列を連結して生成すればいいだけじゃん
0626デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN0627デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANXPath使って検索とかできるよ。
そもそもDOMもSAXもJavaに特化してる訳でないので、ここで議論するのはスレチだと思うが
0628デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANSAXはプレーンテキストを一行ずつ読むのとは違い、構造上の問題で読み取り処理中に
ローカル変数や実行位置で状態を持てないため、状態を持ちたい場合ステートマシンが必要だが
それに疑問を感じたことはないのか
それが面倒だからDOMが使われることも多いが、プルパーサならその問題は解決する
0629デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN文字のエスケープ忘れだとかタグの閉じミス、要素名の制限など
そんなもん一々文字列単位で扱ってたらプログラムがスパゲッティになる
0630デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANプル型の方があらゆる面で優れているしストリーミング書き込みとのAPIの対称性があってわかりやすい
0631デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANそれだけが理由ならストリーミングAPI使えばいいじゃん
DOMで馬鹿みたいにメモリを消費する必要はないよ
一文字ずつ書くのはさすがに頭おかしいが、読み取りより書き出しのほうが
ストリーミングで十分な場合が多いのは確かだよ
0632デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN変数に値を代入するときに
a=5と書かずにa = 5と演算子の周りを空けるのは見やすくするためですか?
0633デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN特に意味はない
0634デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANXPathを使ってノードツリー、リスト、テキストと属性を取得できるから
エディタ機能を持つアプリケーションを作るなら最適じゃないか
0635デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANIterableなラッパ自作してるけどさ
0636デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN「エディタにはメイン型が含まれていません」
と表示されます。
terapadおよびコマンドプロンプトではしっかり起動したコードなので
文字などに間違いはないはずなのですが、なぜだかわかりますか?
0637デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANmainメソッドの定義がマズイのじゃないか。
コード貼って。
0638デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANpublic class HowOldAreYou {
public static void main(String[] args){
System.out.println("あなたの名前を入れて!");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
String line = reader.readLine();
System.out.println(line + "さん、こんにちわ。");
System.out.println("年齢を入力してください");
line = reader.readLine();
int age = Integer.parseInt(line);
System.out.println("いま" + age + "歳とすると、10年語は" + (age + 10) + "歳ですねぇ");
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("年齢が正しくありません。");
}
}
}
お願いします
0639デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN正常に動作してしまったよ。
えっと、クラス名とファイル名が違ってるんでない?
publicなクラスはファイル名とクラス名が同じである必要がある。
0640デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANなんだから問題があるのはEclipseだろ
俺はEclipse使ってないがプロジェクトプロパティにmain指定する場所とかないか?
実行可能jarを作る場合MANIFEST.MFにその情報が必要だから指定する場所があるはず
0641デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN右クリックすれば個別に実行できるようになっていると思われる
少なくともNetBeansでは出来る
0642デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANeclipseってjava入門者はやめたほうがいいんですかね・・・
0643デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN>>642が例外処理使うステップにあるならIDEは使うべき
初心者用エクリプスなら、ランタイム入ってるインディゴかジュノ使っとけばとりあえずもんだいない
異論は認める
0644デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANそんなことないと思うよ。
eclipseだとエラーがあったらその場所に下線が引かれる。
下線にカーソルを合わせるとどう修正すればいいのかがポップアップ
されるから便利だよ。そのうち慣れるよ。
0645デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN0646デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANEclipseに限らずIDEを使う場合はIDEの中でコードを打ち込めばいいだけさ
この程度で値を上げてたらC言語でリンカの設定まで絡んでくると発狂するぞ
0647デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANむしろリモートでブレイクポイント余裕でしたのJavaが異常なのか
0648デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANinvokeLater
を一応使うほうが安全と考えてよいですか??
0649デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANイベントキューの最後に放り投げるだけだからAPIが内部で投げてても副作用はない
0650デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN心配するこたないよ
0651デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANそれともhashmapに入れるの?
youたちはどうしてる
0652デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN0653デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANJPAってメリットあるの?
そもそも、hashmapにマップするのがベストなのか、beanにマップするのがベストなのかって質問なんだけど
0654デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANJPAなら必然的にbeanに詰めることになる
JPAの利点?キャッシュ戦略込みで色々面倒見てくれるのと
アノテーションによるDIに対応してるってあたりかな
0655デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANthank you
0656デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANボタンを押すと数が増えるのを表示するだけなんだ
ボタンを押すと止まる
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView)findViewById(R.id.count_view);
String cha = String.valueOf( i );
String str = cha;
tv.setText(str);
}
int i = 0;
public void onBottonClick(int v) {
i++;
}
0657デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANandroidドカタはandroidスレに行け。ここはサーブレットドカタ専用だ
0658デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANわかった
初めて10日くらいなんで全くわからんのじゃ
ハッハッハ許せ
0659デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN�d
>>650
きっとそうだろうなとは思ってました
0660デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANclass ○○ っていうクラス名って一致させないといけないんですかね?
0661デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANimport java.io.*;
public class Nenrei {
public static void main(String[] args) {
BufferedReader BufferedReader = new BufferedReader(new InputStreamReader(System.in));
�@ String line;
�A //1人目
System.out.println("あなたの名前を入力してください");
Object reader;
�B String name1 = reader.readLine();
System.out.println(name1 + "さんこんにちわ!!");
System.out.println("あなたの年齢を入力してください");
�C line = reader.readLine();
int age1 = Integer.parseInt(line);
0662デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN次に�Bの時に変数をname1にして名前を読み込んでおりますが、
�Cの時だと変数はlineになっております。
name1とlineは変数が異なりますが、�Cの場合のlineと言うのはその下の行の
int age1 = Integer.parseInt(line); の(line)に掛かるものであり、
name1とlineと変数が異なっていても問題はないのか否か、です。
わかりづらいかもしれませんがよろしくお願いします
0663デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANimport java.io.*;
public class Nenrei {
public static void main(String[] args) {
BufferedReader BufferedReader = new BufferedReader(new InputStreamReader(System.in));
String line;
//1人目
System.out.println("あなたの名前を入力してください");
Object reader;
String name1 = reader.readLine();
System.out.println(name1 + "さんこんにちわ!!");
System.out.println("あなたの年齢を入力してください");
line = reader.readLine();
int age1 = Integer.parseInt(line);
//二人目
System.out.println("あなたの名前を入力してください");
Object reader;
String name2 = reader.readLine();
System.out.println(name2 + "さんこんにちわ!!");
System.out.println("あなたの年齢を入力してください");
line = reader.readLine();
int age2 = Integer.parseInt(line);
}
0664デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0665デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANclass Greeting {
String name;
Greeting(String n) {
name = n;
}
void SayHello() {
System.out.println("Hello, " + name);
}
}
public class Hello {
public static void main(String[] args) {
Greeting g;
switch(args.length) {
case 1:
g = new Greeting(args[0]);
g.SayHello();
break;
default:
g = new Greeting("Paul");
g.SayHello();
}
}
}
0666デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0667デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0668デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANファイル名とクラス名一致させなくても構わないが、
publicなクラスだと一致しないとだめ。
OracleJDKのコンパイラは、Java言語仕様を勝手に狭めて
1コンパイル単位に書いていいpublicクラスを1つだけということにしている。
他社のコンパイラも大体右ならえ。
まあコンパイルせずにファイル名見るだけでpublicクラスの有無を判別できるのは楽だよね
0669デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANただ配布物の集中管理が目当てでそう決まったのなら
せめてアプレットの代わりにWebStartをなんとかねじ込むんだ(涙)
0670デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN>>661-663に答えられる方いらしたらお願いします
0671デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANおまんまんだったら丁寧に教えるだろ
女って得だよな
0672デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANblockとscopeとextentはベツモンだ。syntaxを見ただけではscopeとextentは特定できん。
>>668
バイトコードになったらpublicとか関係無いのに余計なことするよね。
sunの頃からだけど
0673デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANと表示されてしまうのですが、どういうことかわかりますか?
0674デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANただし、
・JComponentは沢山ある
・選択できるのは一つだけ
としたいです。
0675デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANjava.io.BufferedReaderでないBufferedReaderを参照している。
0676デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANGlassPane使って枠でも描けばいいんじゃない
0677デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANクラスの始まりと終わりに付けるのはわかるのですが、クラスについて本格的に
学び始めない限りわかりづらいものなのでしょうか
0678デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN普通にMediator使って解決できました
0679デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANまずは1ステートメントで書き切れない処理をブロックに置き換えられると覚えよう
int n = 10;
int m;
{
int a = 2;
int b = 3;
int c = 4;
m = a * b + c;
}
if (n == 10) return m;
if (m == 10) {
m += n;
return m;
}
0680デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN何故そこで疑問に思うって場所だから説明しずらい
0681デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN※ この辺、他の言語だと文脈毎に違う記号列を使うのも多い。
配列初期化子ぐらいまで本格的に学習進めないと、
Javaソース各所の { } の意味が解るわけない。あきらめい。
0682デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0683デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0684デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANverboseログを見ると最後の行に
「Failed to enlarge card table array during garbage collection.」
と出ていました。
vmstatのログを見ていると、そこからメモリのfree領域が極端に減り、
同時にswap領域が増えています。
プロセスが停止したのは、ガーベジコレクションに失敗してメモリ解放が
できなかったからと思っているのですが、そもそもなんで失敗したのか分かりません。
このあたり見た方がいいよっていうのなどあったら教えて下さい。
0685デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0686デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0687デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANheapダンプ、ちょっとぐぐります。
>>686
ちなみに、稼動して2年近くなるシステムなんです。こんな落ち方するの初めて。
0688デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN{}
int[] array = new in[]{1,2,3,4,5}
俺たちのこと忘れないでくれ
0689デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANその状況にならないとダンプ見ても無意味です
ログでそこに至った経緯を見つけられたらよいのですが。できない場合もありますよね
わたしならjava.util.HashMap使ってるところ全検索します
0690デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN�@ は意味あるね。最後の方の line = reader.readLine() で使ってるし。
�A はコメントだから意味ないね。
�B、�C は2回のユーザーの入力のうち名前を変数 name1 に、年齢を変数 line に入れているわけだから変数名が異なっても問題ありません。用意する変数を1つだけにして、使い回しても問題ありません。
どこからこのコード持ってきたのか知らないけど、>>663 はコンパイルできないよね?
質問の内容からして、質問者自身も自分が何をやってるのか分かってないんじゃないかな?
一度 Java の基礎の本を読んだ方が長い目で見て近道だよ。
0691デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN説明不足でした。今時無いとは思いますが、以下で検索してください
「HashMap 無限ループ」
0692デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN�@は変数lineの宣言。
�Aはコメント。動作には関係ない。
readLine()の戻り値を受ける変数が異なっていても問題はない。
>Object reader;
>String name1 = reader.readLine();
readLineメソッドを持つのはBufferedReaderのオブジェクト。
readerはオブジェクト型でnull参照なので、これは動作しないよ。
0693デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN>>691
>>わたしならjava.util.HashMap使ってるところ全検索します
明日、ソースを全検索してみます。
2年間の運用でMapに詰め込む量が増えてそうな若干の心当たりが。
調査ポイントが見つかっただけでも助かります。ありがとうございます。
0694デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANjava.util.ConcurrentModificationException
これがログに出てたらほぼ確定です
他に特定コアの使用率が100%に張り付くので、そこも判断材料になります
0695デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN以下のようなことを簡単にする方法はありませんか?
public String hoge(){
return "test";
}
str=何か("hoge"); //strに"test"が入る
0696デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANコストが高いからループの中で何万と実行するのには向かんけどね
0697デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN0698デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANありがとうございます。
getMethod調べたら、めちゃくちゃ分かりにくい...
しかも、多用するためコスト高いのはキツいし、他の設計を考えてみます。
0699デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANjavaでeval使えるのですか!?
調べてみます。
0700デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN0701デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANStringを返すexecuteというメソッドを持ったクラスを作る。
HashMapにつめておく。
文字列を元にメソッドを取得してexecuteを実行。
0702デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN0703デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN0704デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN言語の勉強に集中できるしね。eclipseのバージョン4になっちゃったけどwww
0705デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN壊滅的に遅いし・・
0706デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN特定の機能でなくて同じであることが重要なら、emacsとかのが対応してる言語多くて良いんじゃない。
0707デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANAdobeのツールなんで、emacsとか使うと逆に面倒なんだ
0708デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN<textarea></textarea>
で複数行打ち込む欄を作るのはいいんだけど結果の表示は1行になってしまいます。
調べてたら wrap= かな と思ったけれど全然違いました。
どなたかご教授おねがいします。
ttp://www.dotup.org/uploda/www.dotup.org4443245.jpg
これが今のソースと結果です。
0709デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANソース画像はこちらになりました。
0710デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANそれはJSPはおろかJavaでも何でもなくてHTMLの問題。
改行コードは正規表現で置換して<br />タグに変える。以上。
0711デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANありがとです そのキーワードで少し探してみます
0712デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANダブルクリックで起動したかコマンドラインで起動したかはどのように分岐する?
0713デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANコマンドラインに引数を1個与えるとする
これで分岐はできるけど、もっとスマートは方法があるかもしれない
0714デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.AN横やりすまn
0715712
2013/08/28(水) NY:AN:NY.ANさすがにそれはできないかなぁ
引数を割と使っているのと、
使う側に両者の起動による差異を意識させたくないのが本来の目的だから
0716デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANそもそも限定されてるなら楽も何もないな。
0717デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANjavaかjavawかを見分ける方法はあるのだっけ?
0718デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0719デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN親プロセスを取得してcmd.exeかexplorer.exeか判定する
0720デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANPS1とかSHELLとか環境変数入ってないの。
0721712
2013/08/28(水) NY:AN:NY.ANやっぱしそういうアプローチになるのかなぁ
ということはちゃんとやるならgetPropertyでOS判定してからでなきゃいかんですな
でもダブクリして起動するまではJavaじゃなくネイティブの操作だし当然か
0722デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0723デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANが1になってしまいます。
"".split(",").lengthは0
"a".split(",").lengthは1
"a,b".split(",").lengthは2
となって欲しいのですが何かよい方法はあるでしょうか?
0724デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANreturn 0;
} else {
return s.split(",").length;
}
0725デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN天才です!
0726デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN呼ばなくても再描画されているようですが、もしかして環境によるのかなと心配しています。
0727デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANSystem.console()戻り値はプロンプト起動とeclipse起動で異なるらしいので
もしかすると
0728デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANついでにinvalidate()も見るといろいろ見えてくる
0729デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANIAccountMapperのサブクラスは無いのに、何でインスタンスを返せるの?
MyBatisの勉強してたら、こんなメソッドがあったもんで
IAccountMapper mapper = session.getMapper(IAccountMapper.class);
0730デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0件!!
0731デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANあとserver vmだとintern()が何故か遅くなったので64版からは封印かな
曜日をキーにmap.get(key)をウォームアップ10万回、計測200万回の結果 (CPU: C2D E8400)
client vm: 205ms x1(EnumMap) : x1.84(HashMap String.intern()) : x4.61(HashMap String)
server vm: 27ms x1(EnumMap) : x9.81(HashMap String.intern()) : x9.44(HashMap String)
0732デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN初心者がこれから覚えるならどのバージョンがいいでしょうか?
0733デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANというかプログラミングについても勉強せず他の事を学びましょう
将来経営者になって奴隷プログラマ達を薄給でこき使うのが一番です
0734デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0735デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANjava.lang.reflect.Proxyとか使えば、
任意のインターフェースを有するインスタンスをいくらでも作れるよ
>>731
HashMapのキーにString.intern()使うのは、一度きりのputの時だけで、
getの時には基本使わんなあ
0736デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0737デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANもちろんキーを作る時にinternしてるよ
map.put(key.intern(), value)みたいに
0738デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANpublic static void main(String[] args) {
for (int i = 0; i < 10; i ++) {
System.out.print(i + ":");
for (int j = 0; j < i; j++); {
System.out.print("a");
}
System.out.println("");
これなんですが、本来はaがどんどん増えていく(最大9個)はずなんですが
一個のママなんです。どこがおかしいかわかりますか?
0739デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN悪いこと言わないからNetBeans使おう
j++); //←ちなみに問題はこれ
0740デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANNetBeansってエクリプスとどう違うんですか?初心者向けってことでしょうか
0741デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANNetBeansは一通り有用な機能を予め詰め込んだタイプ
Javaエディタに関してはNetBeansはかなり親切にコードを検査してくれる
0742デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANLoggerをラップする形で、共通化することってありますか
0743デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANEclipse:実際にプログラマとして働いている人用
NetBeans;Java入門者用
って感じでいいでしょうか
0744デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN私はNetBeansを実務に使ってるけどね
0745デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANNetBeansを導入してみます。ちなみにいまfor文なんですが、多くの人が
ここで詰まるみたいです。またちょくちょく聞くかも・・・
0746デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANロガーってスタックトレース保持してるんじゃなかったっけ?
ラップしちゃうとラップメソッドのメソッド情報とか出力されちゃうんじゃ…
0747デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0748デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANですよね〜^^
0749デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0750デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0751デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0752デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANまじですか
それじゃ、ラップしちゃだめですね。サンキュー
>>747
まっさかー
0753デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0754デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANurlにjspファイルを打ち込みtextを書き込みサーブレット1へ送信します。
そのサーブレット1はjspから受け継ぐtextを変数の箱に入れます。
この変数の箱はprivateにしてゲッタとセッタを設定します。
このサーブレット1にhtmlコード(画像より)を書き込みサーブレット2へ送信します。
サーブレット2ではサーブレット1で定義した変数の箱の中身を取りに行こうとゲッタしているのですが
結果が null です。
サーブレットを使う場合はこのような変数のもらい方ではいけないのでしょうか。
画像 ttp://www.dotup.org/uploda/www.dotup.org4449926.jpg
0755デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANcalledは生成(new)されただけで何も与えられてない。
それ以前にサーブレットはインスタンスをリクエストごとに生成するのではなく、事前にインスタンスを用意しといて複数のリクエストから別スレッドで利用されるもの。インスタンス変数は基本使わない。
0756デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0757デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANThread.currentThread().getName()が
AWT-EventQueue-x で、
SwingUtilities.isEventDispatchThread() が trueを返すなら描画に関わる処理を直接行ってもいいと思うのですが、
「それを行うメソッドがpublicなら、安全でない場所から呼ばれる可能性はある」
と解釈しているのですが合っていますか?
そのような場合予防線として、以上のように現時点でEventDispatchThread上であってもinvokeLaterを使うのはありでしょうか?
0758デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN/* このメソッドは EDT 以外で呼んではならない */
とか書いておけば普通は十分
設計上 EDT 以外からでも呼べるメソッドとして想定してるのならとりあえず invokeLater を使っとくのはあり
0759デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANありがとうございます。
0760デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANpublic class Count {
public static void main(String[] args) {
int i ;
for (int i = 0; i <3; i++) {
System.out.println(i);
}
System.out.println("i =" + i);
System.out.println("end");
}
}
この構文なんですが、事前にiを宣言しているはずなのにエラーが表示されます。
なぜでしょうか
0761デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANfor (int j = 0; j < i; j++){
これと
for (int j = 0; j < i; j++);{
これで出てくる文が大きく異なります
;って一体どういう効果があるんでしょうか
0762デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANiを2回宣言してるから
>>761
;でfor文は終わっているから
0763デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0764デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0765デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0766デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0767デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.ANfor(〜) はその後に続く文をひとつだけ繰り返し実行する構文だ
ひとつだけだ
大事なことなので2回言いましたよ
; と書いたら、それでひとつの文になるので、そこでおしまい
{ } はひとつの文しか書けないところに複数の文が書ける魔法の構文だ
中身は複数の文だけど { } で括ると全体でひとつの文になるんだ
for と組み合わせたら、もしかしたら便利かもしれないね
でも特に for と関係なくいつでも使えるよ
0768デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0769デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0770デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0771デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0772デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN間違った解釈だ。どこがというか使っている言葉以外全部間違っている。
0773デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0774デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0775デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN答えられる方いらしたらお願いします
0776デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0777デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANpublic class Count {
public static void main(String[] args) {
int i ;
for (int i = 0; i <3; i++) { // int i は前行で既に宣言されている for(i = 0; i < 3; i++) と書き換えてみる
System.out.println(i);
}
System.out.println("i =" + i);
System.out.println("end");
}
}
実行結果
0
1
2
i =3
end
0778デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANfor (i = 0; i < 3; i++); { // セミコロンでステートメントが終了 iはインクリメントされて評価もされる
System.out.println(i);// ここは実行されない
}
System.out.println("i =" + i);
System.out.println("end");
実行結果
3
i =3
end
0779デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANfor (i = 0; i < 3; i++) {
System.out.println(i);// ここは実行される
}
System.out.println("i =" + i);
System.out.println("end");
実行結果
0
1
2
3
i =3
end
int i;
for(i = 0; i < 3; i++); // まったく意味のないコード はじめからint i = 3;と初期化すればよい
for(i = 0; i < 3; i++) // printが3回実行される
System.out.println(i);
0780デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0
1
2
3 ←これ嘘ごめん
i =3
end
0781デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0782デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANjersey.java.net/documentation/latest/user-guide.html#filters-and-interceptors
をみつつ作成しましたが、英語が読めないので良くわからんです。
サーバ tomcat7
エラーログ
java.lang.IllegalStateException: Not inside a request scope.
...
ソース
@Provider
public class LoginFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext request) throws IOException {
System.out.println(request.getUriInfo());
}
}
0783デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN定期的に滑らかにピクセル移動が出来ていないような感じ?
だけど同じJavaでもOpenGL使っているようなライブラリではヌルヌル動いているあたり、クロスプラットフォームにする過程で何か弊害がでているのかな?
0784デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANたぶんGC。毎回毎回描画処理でColorやFontを生成して内科医?
IDEでプロファイラがおすすめ
0785デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANOpenGLはデフォで垂直同期だろうし
0786デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0787デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0788デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANそこまでうんこではない
0789デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0790デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANつか、swingスレ行きなよ。
0791デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0792デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0793デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0794デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANそれは間違いなくしていないです。
やはり垂直同期の問題なのかな?
0795デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN書きかけの絵は中途半端に出てこないはずですしおすし
0796デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANそれはカクカクとは関係ない
画面サイズとかオブジェクト数とか減らしてみて改善が見られるかどうか?
0797デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0798デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0799デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANVMメーカーは泣いてるだろ
0800デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN金儲けのためにVM作ってるなら泣き言をいうべきではない。
0801デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN(例えば8:55なら9:00、4:31なら4:45といった感じです)
何かいい方法はありますか?
0802デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANcal.add(HOUR_OF_DAY, n);
cal.getTime(); // Dateオブジェクトを返す
cal.add(MINUTE, 15);
cal.getTime();
0803デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANまずcal.add(HOUR_OF_DAY, n);をして、
15 * 60 * 1000 ミリ秒で15分刻みだからgetTimeInMillis()をこれで割って
余りが出てから+1してやる。
これを 15 * 60 * 1000 でまた乗算した値をDateかCalendarの初期値にする。
0804デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.ANpublic static void main(String[] args) {
long now = System.currentTimeMillis();
long time1 = plusHour(now, 1);
long time2 = floorTimeMinutes(time1, 15);
System.out.println(new Date(now));
System.out.println(new Date(time2));
}
public static long plusHour(long time, int hour) {
final int msOfHour = 60 * 60 * 1000;
int plus_ms = hour * msOfHour;
return time + plus_ms;
}
public static long floorTimeMinutes(long time, int minutes) {
final int msOfMinutes = 60 * 1000;
int floor_ms = minutes * msOfMinutes;
long unitSize = time / floor_ms;
long floorTime = unitSize * floor_ms;
if (time % msOfMinutes > 0) {
floorTime += floor_ms;
}
return floorTime;
}
0805デフォルトの名無しさん
2013/08/31(土) NY:AN:NY.AN0806801
2013/08/31(土) NY:AN:NY.ANありがとうございます。
int m = cal.get(Calendar.MINUTE);
cal.set(Calendar.MINUTE, 0);
cal.add(Calendar.MINUTE, (m / 15 + 1) * 15);
これでやってみます
0807デフォルトの名無しさん
2013/09/01(日) 01:16:27.93それではジャスト9:00のときも繰り上がってしまわないかい?
((m+14)/15)*15
なら一発じゃない?
試してないが
0808デフォルトの名無しさん
2013/09/01(日) 02:05:08.66特にこれ
obj.add***Listener(new ***Listener() {
@Override
...........
@Override
............
});
クラス内ではあまり他のクラスと強く結び付けたくないとき、とりあえずinterfaceを引数に入れておいて、
mainメソッド等の皆が顔合わせするときに具体的に定義するようなこれ
これって名前があるの?
0809デフォルトの名無しさん
2013/09/01(日) 02:13:18.100810デフォルトの名無しさん
2013/09/01(日) 02:18:26.200811デフォルトの名無しさん
2013/09/01(日) 02:22:07.36もしかして無名クラスのことか?
便利っていうか苦肉の策だけど・・・
0812デフォルトの名無しさん
2013/09/01(日) 02:23:49.010813デフォルトの名無しさん
2013/09/01(日) 02:27:43.71スクリプトだとducktypingあるしC#ならdelegateがあるから
0814デフォルトの名無しさん
2013/09/01(日) 02:29:56.13プロパティの初期化をするための機能になってるな
0815デフォルトの名無しさん
2013/09/01(日) 02:36:47.34new $1()
とかで呼び出せる?
0816デフォルトの名無しさん
2013/09/01(日) 02:41:32.54出来ない
0817デフォルトの名無しさん
2013/09/01(日) 02:55:24.440818デフォルトの名無しさん
2013/09/01(日) 04:09:13.80たしかにでけた
0819デフォルトの名無しさん
2013/09/01(日) 04:10:17.82無名クラス扱えるとかアカン
0820デフォルトの名無しさん
2013/09/01(日) 11:29:03.400821デフォルトの名無しさん
2013/09/01(日) 11:37:00.90基本的にリスナを書く地獄のような手間を軽減するためのものだから
多くのスクリプトやC#みたいに関数オブジェクトが使える言語ならリスナクラスはあまり使わない
0822デフォルトの名無しさん
2013/09/01(日) 14:56:10.96もしかして、こういうキャストはダメなのですか?
Test[][] data = (Test[][])in.readObject();
しかし書き出すときには
out.writeObject(test); // Test[][] test
となるようにちゃんと書き出しています。
0823デフォルトの名無しさん
2013/09/01(日) 15:00:15.50復元に必要な情報が揃う前にStreamがEOF(End of File)になってるエラー
キャストじゃなくてデータがおかしいって言ってる
0824デフォルトの名無しさん
2013/09/01(日) 15:07:57.480825デフォルトの名無しさん
2013/09/01(日) 15:08:48.55ということは書き出しがうまくいっていないかもしれませんね。
ありがとうございます。
0826デフォルトの名無しさん
2013/09/01(日) 15:09:42.790827デフォルトの名無しさん
2013/09/01(日) 15:13:42.420828デフォルトの名無しさん
2013/09/01(日) 15:29:07.75今書き出したファイル見たらNul みたいな文字列のみのファイルになってました。
out.writeObject(parent.getTest());
このときのSerializeができていない?
Parentクラスで
public Test[][] getTest() {
return test;
}
があったとして、このときってTestクラスのみSerializableをimplementsしていればいいのですよね?
0829デフォルトの名無しさん
2013/09/01(日) 15:38:24.65失礼しました。お恥ずかしい・・・・。
0830デフォルトの名無しさん
2013/09/01(日) 15:39:38.68未検証のメソッド呼び出しを省いて
しかるべきデータを直書きしたときと比較すればいい
0831デフォルトの名無しさん
2013/09/01(日) 16:55:17.160832デフォルトの名無しさん
2013/09/01(日) 16:59:40.15お前の知能による
質問からして馬鹿であることが伺えるので、まあ20年ぐらいか
0833デフォルトの名無しさん
2013/09/01(日) 17:05:09.650834デフォルトの名無しさん
2013/09/01(日) 17:05:49.660835デフォルトの名無しさん
2013/09/01(日) 17:06:32.10JVMやjavacが書ける
勿論すべての標準ライブラリに精通している
0836デフォルトの名無しさん
2013/09/01(日) 17:06:35.270837デフォルトの名無しさん
2013/09/01(日) 17:07:29.29Swingってどっちだっけ?レベルw
0838デフォルトの名無しさん
2013/09/01(日) 17:13:25.90お前は質問する側
回答する側の話題に混ざってくるなカス
0839デフォルトの名無しさん
2013/09/01(日) 17:15:01.080840デフォルトの名無しさん
2013/09/01(日) 17:34:46.540841デフォルトの名無しさん
2013/09/01(日) 17:57:32.53大したレベルじゃないw
0842デフォルトの名無しさん
2013/09/01(日) 17:58:54.47入門書の内容が全部頭に入ってりゃマスターでいいだろ
0843デフォルトの名無しさん
2013/09/01(日) 18:02:35.34よろしくなマスター!
0844デフォルトの名無しさん
2013/09/01(日) 18:07:19.09マスターと呼べるくらいには数年以上仕事で使ってるくらいの熟練者じゃないとダメだろ
0845デフォルトの名無しさん
2013/09/01(日) 18:08:18.42オラクルマスター - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC
0846デフォルトの名無しさん
2013/09/01(日) 18:19:29.07ほぼこの2種類しかいない。
0847デフォルトの名無しさん
2013/09/01(日) 18:21:08.710848デフォルトの名無しさん
2013/09/01(日) 18:23:36.53大学生が中学生の問題に苦戦したりもするってくらいに数年前覚えたことなんて忘れやすいのに
20年分も記憶を保持とか
0849デフォルトの名無しさん
2013/09/01(日) 18:57:23.600850デフォルトの名無しさん
2013/09/01(日) 19:03:54.420851デフォルトの名無しさん
2013/09/01(日) 19:06:01.410852デフォルトの名無しさん
2013/09/01(日) 19:09:03.250853デフォルトの名無しさん
2013/09/01(日) 19:16:03.54じゃあ中学数学なんてスキップして、いきなり大学レベルから始めたらいいですね
そうじゃないだろ馬鹿
学習なんて積み重ねなのに、なんで記憶とかそんな話になるんだよ
0854デフォルトの名無しさん
2013/09/01(日) 19:25:21.54おまえら熱くなりすぎ
ワロタ
0855デフォルトの名無しさん
2013/09/01(日) 19:31:25.930856デフォルトの名無しさん
2013/09/01(日) 19:35:37.81つまり・・・なんだ?
0857デフォルトの名無しさん
2013/09/01(日) 19:37:31.52Java使ってる奴がそれを言っちゃうの?
0858デフォルトの名無しさん
2013/09/01(日) 20:19:35.790859デフォルトの名無しさん
2013/09/01(日) 20:20:11.620860デフォルトの名無しさん
2013/09/01(日) 20:31:53.64嫌がらせでしょうか;;
0861デフォルトの名無しさん
2013/09/01(日) 21:53:58.26?
0862デフォルトの名無しさん
2013/09/01(日) 22:07:30.600863デフォルトの名無しさん
2013/09/01(日) 22:11:36.58Javaなんて大勢の工員がライン作業でCOBOLみたいなコードを垂れ流す言語だからね
0864デフォルトの名無しさん
2013/09/01(日) 22:14:29.380865デフォルトの名無しさん
2013/09/01(日) 22:14:59.220866デフォルトの名無しさん
2013/09/01(日) 22:39:51.50その通りです
C#のようなクソに手を出す暇があれば、Linux環境を用意してCを書きましょう
OSへの理解を深めるのです
0867デフォルトの名無しさん
2013/09/01(日) 22:46:58.180868デフォルトの名無しさん
2013/09/02(月) 00:01:09.83だが調子のって何でもかんでもListにぶち込んでいたせいか、マルチスレッドにしているのに気づかず痛い目にあった
動的に書くとエレガントに見えるがおそろしいね〜
0869デフォルトの名無しさん
2013/09/02(月) 00:21:07.32痛い目見たとかいいながら、結局バグった理屈を理解してない風な書き込み
0870デフォルトの名無しさん
2013/09/02(月) 00:41:42.570871デフォルトの名無しさん
2013/09/02(月) 00:44:05.830872デフォルトの名無しさん
2013/09/02(月) 00:48:40.12マルチスレッドなら特殊なリスト使うから気づくよな
0873デフォルトの名無しさん
2013/09/02(月) 00:50:48.370874デフォルトの名無しさん
2013/09/02(月) 00:51:18.85Vector使えばスレッドセーフになるとか思ってそう
マルチスレッドだからスレッドセーフなコレクションを使わないといけないってことは全くないし
コレクションのメソッドがマルチスレッドであることに意味があるケースは滅多にない
0875デフォルトの名無しさん
2013/09/02(月) 00:53:09.43訂正
マルチスレッドであることに→スレッドセーフであることに
0876デフォルトの名無しさん
2013/09/02(月) 00:57:41.24それはCOBOLerをそのまま使っているからだろう。能力ないのを言語のせいにされても。いくら自分がそうだからって。
ただしライン作業はそのとおりだ。だから前後の関係なくプログラムできるやつが必要なんだ。
0877デフォルトの名無しさん
2013/09/02(月) 00:59:09.65>マルチスレッドだからスレッドセーフなコレクションを使わないといけないってことは全くないし
addしないって事か?
それとも外側で同期すればいいとか?
後者なら素直に使えばいいと思うが
0878デフォルトの名無しさん
2013/09/02(月) 01:03:45.94もちろん外側で同期だよ
処理単位が全てコレクションのメソッド呼び出し一発だけならいいけど
どうせもっと大きい単位で同期化する必要がある場合が多い
0879デフォルトの名無しさん
2013/09/02(月) 01:05:24.290880デフォルトの名無しさん
2013/09/02(月) 01:06:05.76なんでや!StringWriter便利やろ!ユニットテストで重宝するやろ!
たかだか文字列出力機能の単体テストのために
HDDやHTTPサーバやJP1用意しないといけないような設計する奴は
早く引退してくれー
0881デフォルトの名無しさん
2013/09/02(月) 01:07:46.67@Resource
DataSource ds;
で呼び出されるオブジェクトは毎回同じものが呼ばれるのですか?
0882デフォルトの名無しさん
2013/09/02(月) 01:12:04.12うーんまあ最小単位で同期化するのが面倒なのはわかるけど・・
俺は念の為SynchronizedListにしておくかな
0883881
2013/09/02(月) 01:12:58.55servletAでフィールドに@Resouce(name="hoge")を注入して、servletBでも@Resouce(name="hoge")を
注入した場合、両者が参照するものは同じオブジェクトですか?
0884デフォルトの名無しさん
2013/09/02(月) 01:18:09.65ユニットテストとか言うならそんなprintfデバッグみたいな化石技法使わずに
telnet立ててメソッド呼び放題にするわ
0885デフォルトの名無しさん
2013/09/02(月) 01:23:08.560886デフォルトの名無しさん
2013/09/02(月) 01:23:49.05面倒とかそういう問題じゃないよ
例えばイテレータやインデックスを使った列挙処理はロック必須
0887886
2013/09/02(月) 01:24:22.090888デフォルトの名無しさん
2013/09/02(月) 01:33:06.760889デフォルトの名無しさん
2013/09/02(月) 01:33:48.37何を言ってるのか
0890デフォルトの名無しさん
2013/09/02(月) 01:36:00.71java.util.concurrentなんかでもダメな状況?
そうなると巨大な配列を手動で列挙って状況だと思うが、
まあそうなったら同期するしか無いかもな。
すまない、なったこと無いのでわからん・・。
0891デフォルトの名無しさん
2013/09/02(月) 01:43:56.16そんな特殊な話じゃなくても、スレッド間で共有されてるHashMapとかいろいろあるでしょ
0892デフォルトの名無しさん
2013/09/02(月) 01:44:17.63みたいな操作があるなら外側ロックでイテレートが必要だろうね
0893デフォルトの名無しさん
2013/09/02(月) 01:47:03.550894デフォルトの名無しさん
2013/09/02(月) 01:51:53.36??
0895デフォルトの名無しさん
2013/09/02(月) 01:52:44.410896デフォルトの名無しさん
2013/09/02(月) 01:55:23.200897デフォルトの名無しさん
2013/09/02(月) 02:06:34.93それで困ることってどういうことかなと。
なんか突っかかってるみたいで申し訳ない。
0898デフォルトの名無しさん
2013/09/02(月) 02:07:32.930899デフォルトの名無しさん
2013/09/02(月) 02:18:24.65イテレート+remove(obj)だとバグがあるんだね。
思ってるより手軽じゃないってのがわかった。
0900デフォルトの名無しさん
2013/09/02(月) 02:20:12.370901デフォルトの名無しさん
2013/09/02(月) 07:17:05.310902デフォルトの名無しさん
2013/09/02(月) 07:46:22.150903デフォルトの名無しさん
2013/09/02(月) 09:45:31.380904デフォルトの名無しさん
2013/09/02(月) 10:30:09.730905デフォルトの名無しさん
2013/09/02(月) 11:43:27.03やりたいのはアプリケーションで使用する設定ファイルをWebアプリケーションフォルダは以下においてはダメと言われ、
Webアプリケーションインストールフォルダ以外に配置することにしましたが、そのパスの取得方法をWebアプリケーションサーバの設定からとれればと思っています。
サーバはtomcatを使用していますが、サーバ側に任意の値を設定して、サーブレットの仕様でその値を取る方法なんてあるものでしょうか?
0906デフォルトの名無しさん
2013/09/02(月) 12:17:36.580907デフォルトの名無しさん
2013/09/02(月) 13:20:10.86web.xmlもダメなんです…
となると、WebアプリケーションサーバとWebアプリケーションとのデータ連携の仕様が見つけられなくて…
ServletContext辺りのインタフェースも調べたのですが、基本はweb.xmlの設定値を取得するものばかりで…
0908デフォルトの名無しさん
2013/09/02(月) 13:55:24.89トムキャットユーザのアクセスできるファイルなら普通にファイル操作で設定値を読めばいいんじゃないかな?
0909デフォルトの名無しさん
2013/09/02(月) 14:20:38.98イテレータのremoveじゃなくて
イテレートしたやつをremoveした時の話ですよ
0910デフォルトの名無しさん
2013/09/02(月) 15:20:37.31そのやり方で困らないケースも多そうだし、いいんじゃない
0911デフォルトの名無しさん
2013/09/02(月) 15:43:35.88アプリケーションが多数になったときの煩わしさを考えると設定はコンテキストパス内に入れるべきだと思う。
でも上司に外部にしろと言われたならしょうがないよね。
0912デフォルトの名無しさん
2013/09/02(月) 16:54:53.38あせったぜ、「激おこスタティックファイナル」かと思った・・
0913デフォルトの名無しさん
2013/09/02(月) 18:08:11.36そうなんですけど、そのパスのベタ打ちや決め打ちをやめたいらしいので、tomcatの設定から取れないか考えていました。
が、やっぱり見つからないですね。
環境変数かtomcatの起動パラメータに設定してもらうしかないですかね…
0914デフォルトの名無しさん
2013/09/02(月) 18:16:26.890915デフォルトの名無しさん
2013/09/02(月) 20:12:00.64∧_∧
( ´∀`) あげ?
..\ (/u ノ
\ 〈/フ'フ
\ ∠∠/
\
\ \ 彡
.\ .\
.\_/| ̄ ̄ ̄ ̄ ̄|
. | .|
0916デフォルトの名無しさん
2013/09/02(月) 20:40:31.21素のEclipseに必要なプラグインだけ入れる。
0917デフォルトの名無しさん
2013/09/02(月) 20:50:12.53Utilsでmethod () throws IOExceptionと書くのは賢いとは思えないのですが
チェック例外をThrowableを継承したクラスに変換してますか
0918デフォルトの名無しさん
2013/09/02(月) 21:42:43.98その話するとだれが処理の責任持つかで揉める気がする
0919デフォルトの名無しさん
2013/09/02(月) 22:11:18.75>だれが
プログラム or 人間のどっちですか
普段は.netで開発しているので、誰が処理するかってのは特に気にしないようにしているんですが
javaはそこら辺気にしますか
0920デフォルトの名無しさん
2013/09/02(月) 22:12:49.47line=new String("foobaa");
}
このようにfor-eachではlineを再設定しないで新しい変数に代入したほうがいい、というのはどうしてですか?
0921デフォルトの名無しさん
2013/09/02(月) 22:14:20.24extends Throwableでクラスを書くってことか?
extends Errorですら恐ろしいのに、あり得な過ぎる。
0922デフォルトの名無しさん
2013/09/02(月) 22:14:22.660923デフォルトの名無しさん
2013/09/02(月) 22:20:32.44違う違う、どこレベルで例外処理までやるかって話。catchするだけで再throwしたりするじゃん
0924デフォルトの名無しさん
2013/09/02(月) 22:34:18.07この記事いいね。普段言いたくても言えない事を書いてくれている
0925917
2013/09/02(月) 22:34:21.38extends Throwableが何故怖いんですか。よくわからないのですが
>>923
void dataLoad() throws IOExceptionって書くと、呼び出し元で全部IOExceptionを処理しないとダメですよね
なので、こういう感じで処理を書きたいんです。
void dateLoad() { 〜 catch(IOException e) { throws new TestException
IOExceptionを呼び出し元に通知しても、意味が無いと思うんです。
0926デフォルトの名無しさん
2013/09/02(月) 22:39:34.37>IOExceptionを呼び出し元に通知しても、意味が無いと思うんです。
そんなもん場合によるんじゃないの?
メソッド利用者に責任もって書かせる必要がある場合とか考えたことある?
0927デフォルトの名無しさん
2013/09/02(月) 22:40:50.04C++の参照渡しと勘違いする馬鹿がいるから引数に再代入するなってのと同じで、
arrの中身を書き換えてると勘違いする馬鹿がいるとまことしやかに信じられているから
迷信に近いので、君がこれを信じないなら従う必要はない
0928デフォルトの名無しさん
2013/09/02(月) 22:43:19.93IOで失敗したって分かると何か問題あるのか?
0929デフォルトの名無しさん
2013/09/02(月) 22:45:57.54for (String line : arr){
line=new String("foobaa");
}
のようにlineに何かを代入したりうんぬんって発想がJavaプログラマから見ると異様にみえる。
むしろfinalつけてもいいくらいなのに。
0930デフォルトの名無しさん
2013/09/02(月) 22:46:22.64ラップによって分かりづらくなったりエラー処理がやりづらくなったりしやすいってのは
むしろチェック例外の問題点だろう
チェック例外を使う場合、どうしてもラップはしていかないとインターフェイスが無茶苦茶になって
実装変更も困難になる
0931デフォルトの名無しさん
2013/09/02(月) 22:47:06.96おそらく>>917は使う側でいかに短いコードで楽できるかしか考えていない気がする
0932デフォルトの名無しさん
2013/09/02(月) 22:47:34.55そうじゃないだろ。破壊的代入だからだろ。
>>925
なんかおかしいな。使う側に責任があるならチェック例外はthrows宣言するだろ?
だいたい、チェック例外が出たときは他にすること無いから呼び出し元に返したりするじゃん。
アプリケーションレベルでエンドユーザーにメッセージ出す時どうすんのさ。
0933デフォルトの名無しさん
2013/09/02(月) 22:49:02.97特にIOExceptionは使う側に責任もたせて投げることを推奨している参考書が多いようにも思う
0934デフォルトの名無しさん
2013/09/02(月) 22:50:14.75実装変更が不可能な化物ができあがる
ある程度ラップは必須で、>>928の言うようなこととはトレードオフ
0935デフォルトの名無しさん
2013/09/02(月) 22:54:02.69なら catch節内で即System.exit()すればええやん、と思わないでもないが。
0936デフォルトの名無しさん
2013/09/02(月) 22:58:03.23直上にキャッチを強制するのは>>934の言うようなデメリットの方が大きい
だから後にも先にもJava以外の言語には検査例外が採用されてないの
0937デフォルトの名無しさん
2013/09/02(月) 23:00:07.16ないことはないが、917はそこまで考えてはいないだろうよ
0938デフォルトの名無しさん
2013/09/02(月) 23:03:01.74そんなこといってると>>924の「リスト 13. あまりにも早急な例外処理」の状況に陥る
0939917
2013/09/02(月) 23:05:35.14>正にStringWriterを使うときとかチェック例外を非チェック例外でラップすることも
そこら辺がどのようになっているのか知りたいです。
なので、extends Throwableが危ないのか知りたいんです。
ちなみに、商品マスタが存在しなかったら例外をthrowするってホント?
コードがtry catchだらけになったり、パフォーマンス遅くなりませんか
javaの入力チェックのポリシーがよくわからない
0940デフォルトの名無しさん
2013/09/02(月) 23:06:02.00普通に考えてそれは逆だろう
検査例外は「あまりにも早急な例外処理」を助長する
実際短いサンプルコードなんかだと多くの場合まさにそうなってしまってるから
初心者がそれでいいんだと勘違いする
0941デフォルトの名無しさん
2013/09/02(月) 23:07:03.09> for (String line : arr){
> line=new String("foobaa");
> }
arrの要素数だけループ回すのが目的なら、
arr.lengthかarr.size()を使ったループカウンタを素直に使った方がよろしい。
例えarrがLinkedListだったとしても、Iterator空読みさせるよりたぶん早いぞ。
0942デフォルトの名無しさん
2013/09/02(月) 23:11:12.84C、C++ならその考えでいいけど、そのように書かれたコードはJavaではどうなの?サイトにあるように訛が強すぎ。
何よりinterfaceのメソッドにthrowsを用いたような”設計”があることを知る方が大事だと思うけどなぁ。
特にサーバーとのやり取りをするコードを書くときとか。
0943デフォルトの名無しさん
2013/09/02(月) 23:12:53.64StringBuffer は一切 IOException 投げないわけだが、そういう実装例が知りたかったのかな?
0944デフォルトの名無しさん
2013/09/02(月) 23:14:39.86拡張for分はtry catchやめてから速くなってる
0945デフォルトの名無しさん
2013/09/02(月) 23:18:40.61>StringBuffer は一切 IOException 投げないわけだが
private synchronized void writeObject(java.io.ObjectOutputStream s)
throws java.io.IOException {}
private void readObject(java.io.ObjectInputStream s)
throws java.io.IOException, ClassNotFoundException {}
投げる件。適当なこと言いすぎ。
0946デフォルトの名無しさん
2013/09/02(月) 23:29:52.120947デフォルトの名無しさん
2013/09/02(月) 23:30:28.21>>944
いや、Iterator回すよりループ変数回まわしてgetする事そのものの方が速い。
コンパイラはRandomAccessマーカーみてfor (int i=0, n=list.size(); i < n; i++)に置換するとかやってないから>>941の言うとおりだよ。
0948デフォルトの名無しさん
2013/09/02(月) 23:31:07.15いい加減やめろや
例外処理はAPI呼び出し側の責任だろ
0949デフォルトの名無しさん
2013/09/02(月) 23:35:23.77そもそもStringBufferで何故にIOExceptionの話??
StringIndexOutOfBoundsExceptionならまだわかるが・・
0950デフォルトの名無しさん
2013/09/02(月) 23:36:25.910951デフォルトの名無しさん
2013/09/02(月) 23:36:39.29その"設計"を突き詰めれば、将来の実装変更の可能性を考慮して
どんなエラーでもラップして放り込めるような一般的な例外をthrowsリストに追加せざるを得ないが
それは同時にチェック例外の意味をなくすというジレンマ
0952デフォルトの名無しさん
2013/09/02(月) 23:39:10.54ここで出てるレスもすべて既存の議論の焼き直し。車輪の再発名ならぬ議論の再発名でもしたいのか?
Javaの理論と実践: 例外をめぐる議論 2004年5月25日
http://www.ibm.com/developerworks/jp/java/library/j-jtp05254/
0953デフォルトの名無しさん
2013/09/02(月) 23:40:09.04try{...}catch(IOException e){throw new RuntimeException(e);}
に落ち着いた箇所は結構多い。
0954デフォルトの名無しさん
2013/09/02(月) 23:46:33.86さすがにLinkedListをインデックスで回すのはないわ
O(N^2/2)だぞ
0955デフォルトの名無しさん
2013/09/02(月) 23:48:13.23だから例外チェーンだろそれ。ラップするだけじゃスタックトレース増殖するから1.4で変更入ったわけじゃん。
0956デフォルトの名無しさん
2013/09/02(月) 23:49:44.84実行時例外だから例外チェーンとは言わんよ
0957デフォルトの名無しさん
2013/09/02(月) 23:52:09.080958デフォルトの名無しさん
2013/09/02(月) 23:55:55.91だでども、throw、throwsがエレガントに見えて仕方ねぇだで
0959デフォルトの名無しさん
2013/09/03(火) 00:03:31.24そのせいで「検査例外は邪魔で役立たず」なイメージが根付いてしまった。
0960デフォルトの名無しさん
2013/09/03(火) 00:04:37.60正確にはn^2/4
0961デフォルトの名無しさん
2013/09/03(火) 00:06:24.90そこをクリアできるならバカスカ使おうと思う
0962デフォルトの名無しさん
2013/09/03(火) 00:10:05.70かなり低下する。まあ例外って名称からもわかるようによからぬことが発生という扱いでOK
0963デフォルトの名無しさん
2013/09/03(火) 00:10:51.26get(n)のコストとか無視していいんだろう
0964デフォルトの名無しさん
2013/09/03(火) 00:12:37.97> なので、extends Throwableが危ないのか知りたいんです。
そういうクラスが至るところで投げられると、受け側は catch (Throwable t)
と書かざるをえなくなる。そうすると、catchしたくなかった OutOfMemoryError
とかまでcatchしてしまっているのを忘れやすくなったり、無駄に再throwを
書かないといけなくなる。
> コードがtry catchだらけになったり、パフォーマンス遅くなりませんか
>>925のコード「catch(IOException e) { throws new」はそれを強要している
ことに気づきなさいよ。あなたがcatchしなければ、呼び出し側もcatchしない
ことを選択できるんだ。
0965デフォルトの名無しさん
2013/09/03(火) 00:18:15.230966デフォルトの名無しさん
2013/09/03(火) 00:20:57.10それが正しいチェック例外の使い方
キャッチしたい人はすればいいし
したくない人はNaNのまま続行すればいい
0967デフォルトの名無しさん
2013/09/03(火) 00:24:57.260968デフォルトの名無しさん
2013/09/03(火) 00:26:39.55JavaはFPEがないからウンコ
0969デフォルトの名無しさん
2013/09/03(火) 01:19:43.55関係ないGodクラスが持ってるからrethrowするはめになってるんじゃ。
適切なクラスに移したら責任と処理の場所が一致するとかじゃないの?
0970デフォルトの名無しさん
2013/09/03(火) 03:09:57.88糞熱い議論乙
0971デフォルトの名無しさん
2013/09/03(火) 09:05:42.18他の言語で書かれたものより安全で堅牢かっていうとそんなことないので、やっぱりチェック例外はいらない子
ランタイム例外にラップして投げるのがプロ
0972デフォルトの名無しさん
2013/09/03(火) 09:26:25.170973デフォルトの名無しさん
2013/09/03(火) 09:58:47.02関数型みたいに式一つで適当にこさえて
ポコポコ投げられればいいんだけどな
0974デフォルトの名無しさん
2013/09/03(火) 10:47:00.810975デフォルトの名無しさん
2013/09/03(火) 11:28:02.48tomcatのJNDIを使ってファイルやディレクトリを取得する方法を教えていただけないでしょうか?
0976デフォルトの名無しさん
2013/09/03(火) 11:32:50.97頻繁じゃなければ気にしなくてもいいだろうけど、
他の言語とは比較にならないほど遅い。
0977デフォルトの名無しさん
2013/09/03(火) 11:42:43.84そこまでtry catchを作りこまないといけない状況がそもそもまずくない?
速度考えたらcatch内で投げるより、
try catch使わないで条件式でthrowしたほうが大抵速いんだし
catchしたら複雑な処理が始まるようなプログラムは怖い
コンソールに書き出すか、サーバーサイドならログ書き出すくらいで済むのが一番
利用者に正しくバグ報告を送信してもらうためにもprintStackTraceは馬鹿にできない
0978デフォルトの名無しさん
2013/09/03(火) 12:41:25.79どういうわけか例外(非チェック含む)を可能な限り使おうとしない人が一定数いるんだよねえ。
一体どこでそんな知識を身に着けてしまったのかが気になる。会社とかでそういう教育するところがあるのか?
0979デフォルトの名無しさん
2013/09/03(火) 12:55:52.87・例外なんか糞くらえだ!あれはGOTO文じゃねえか!あんな有害物使うんじゃねえ!という意見に賛同している説
・何も考えず面倒だから例外を使わない説
0980デフォルトの名無しさん
2013/09/03(火) 13:31:14.97Javaプログラマだけだよ。何でも例外にしたがるのは。
0981デフォルトの名無しさん
2013/09/03(火) 13:34:51.10> 例外設計、チェック例外の是非
>
> 最近、Javaの例外について、特にチェック例外について否定論を見かけることがありました。
> Kent Beck、Robert C. Martin、Bluce EckelといったJava・オブジェクト指向プログラミングに
> おいて見識ある著名な人物がこぞって否定論を唱えています。
http://d.hatena.ne.jp/torutk/20101017/p1
0982デフォルトの名無しさん
2013/09/03(火) 13:35:43.62そう思うやつは頭が固い
0983デフォルトの名無しさん
2013/09/03(火) 13:42:02.19軽くググっただけでもいろんな議論を見つけることができたが。
Javaの理論と実践: 例外をめぐる議論
http://www.ibm.com/developerworks/jp/java/library/j-jtp05254/
[Java][例外] 「検査例外はアジャイルやオブジェクト指向の考えに反するという事実」について一部誤解あり
http://d.hatena.ne.jp/j5ik2o/20100115/1263570330
0984デフォルトの名無しさん
2013/09/03(火) 13:48:32.78言語仕様に見識を示すだけの実績があるのか、誰か教えてくれよ。
0985デフォルトの名無しさん
2013/09/03(火) 13:49:41.580986デフォルトの名無しさん
2013/09/03(火) 13:52:20.29チェック例外否定派がいることを示しただけ。
Kent Beck、Robert C. Martin、Bluce Eckelらはbig nameなんだが、まあそれはそれとして
どういう論理で否定してるのか位は読んだら?
0987デフォルトの名無しさん
2013/09/03(火) 14:00:16.530988978
2013/09/03(火) 14:27:30.60わざわざ括弧書きで「非チェック含む」と強調しておいたのに、それでもやっぱり「チェック例外使うなって言ってる人いるぞ!」という
想定の範囲内の誤解に基づいた反論が来てしまったか。
もっと噛み砕いて説明しないと伝わらないか…。「教える」って難しいな。
0989デフォルトの名無しさん
2013/09/03(火) 15:10:12.20> 例外(非チェック含む)を可能な限り使おうとしない人が一定数いる
> 一体どこでそんな知識を身に着けてしまったのかが気になる。
ということなので、どこで議論されているかを示したのだが?
0990デフォルトの名無しさん
2013/09/03(火) 15:19:16.03人もいる、と読むと思うのだけど。
0991デフォルトの名無しさん
2013/09/03(火) 15:20:20.120992デフォルトの名無しさん
2013/09/03(火) 16:46:55.150993デフォルトの名無しさん
2013/09/03(火) 16:53:31.71上の方からロジックを考えながらコーディングしていると
line=line.trim().intern(); とかしたくなって再代入(再設定)のコードがたまに現れるんですよ。
iterator logicの場合はスコープ内で
String line=it.next(); になるからlineの再代入は普通にありだと思うんですけど、for-eachの場合の当該変数はどうなのかなって。
0994デフォルトの名無しさん
2013/09/03(火) 17:00:39.98ループを回してくれているので、lineをどういじったところで >>920 のループは乱れないよ。
0995デフォルトの名無しさん
2013/09/03(火) 17:11:49.930996デフォルトの名無しさん
2013/09/03(火) 19:07:13.25別にforeachだからどうこうって話じゃないだろ
再代入しないほうが望ましいってだけで、したからってなにか問題あるわけじゃない
なんでforeachだけを気にしてるのか全然わかんね
0997デフォルトの名無しさん
2013/09/03(火) 19:23:47.610998デフォルトの名無しさん
2013/09/03(火) 19:33:54.96勉強
0999デフォルトの名無しさん
2013/09/03(火) 19:51:24.001000デフォルトの名無しさん
2013/09/03(火) 19:52:18.4010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。