プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※
質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。
前スレ
★★Java質問・相談スレッド180★★
https://mevius.5ch.net/test/read.cgi/tech/1492780397/
探検
★★Java質問・相談スレッド181★★
■ このスレッドは過去ログ倉庫に格納されています
2018/02/10(土) 17:49:40.56ID:l9ZzjyKP
586デフォルトの名無しさん
2018/07/25(水) 09:27:06.98ID:GNtg4sP8 >>585
というと?
というと?
587デフォルトの名無しさん
2018/07/25(水) 19:09:16.20ID:s14gtaOU 否定だけして根拠示さないのは例の人かな?
588デフォルトの名無しさん
2018/07/25(水) 20:01:38.85ID:ekeRKo17 「ははーん、さてはおめー何もわかってねーな」という台詞を言ってみたかっただけの人か?
589デフォルトの名無しさん
2018/07/25(水) 20:12:44.09ID:QfwTkRmU 下記ブログの例題がEclipseでもpaiza.ioでもコンパイルエラーになって色々試したのですが解決出来ないので原因と回避策を教えてください
Eclipseでのエラー: 型の不一致: Object から int には変換できません
paizaでのエラー: Object cannot be converted to int
https://nompor.com/2017/11/16/post-1118/
ブログのページ最後にある例題サンプルです
「Iteratorで全要素アクセス」
18行目
int data = it.next();//次の要素を取得します。
---
例題そのままをコピペしてもエラーになるので自力解決が出来なくて困っています
Eclipseでのエラー: 型の不一致: Object から int には変換できません
paizaでのエラー: Object cannot be converted to int
https://nompor.com/2017/11/16/post-1118/
ブログのページ最後にある例題サンプルです
「Iteratorで全要素アクセス」
18行目
int data = it.next();//次の要素を取得します。
---
例題そのままをコピペしてもエラーになるので自力解決が出来なくて困っています
590デフォルトの名無しさん
2018/07/25(水) 20:17:15.54ID:GZRArLRs591デフォルトの名無しさん
2018/07/25(水) 20:20:52.44ID:QfwTkRmU >>590
それはやったのですが、エラーになりましたね
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
integer を型に解決できません
それはやったのですが、エラーになりましたね
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
integer を型に解決できません
592デフォルトの名無しさん
2018/07/25(水) 20:27:16.64ID:QfwTkRmU 自己解決しました
エラーのpopアップに表示されていたキャストをすれば解決しました
もしかしたらブログを執筆していた頃には問題の無かった書き方が厳密になったとかなのでしょうか?
原因が例題書かれた方のミスなのか仕様変更なのか意味が分からないままエラーだけ出なくなった状況ですが次へ進みます。
ありがとうございました
18行目(変更前
int data = it.next();//次の要素を取得します。
18行目(変更後
int data = (int) it.next();//次の要素を取得します。
エラーのpopアップに表示されていたキャストをすれば解決しました
もしかしたらブログを執筆していた頃には問題の無かった書き方が厳密になったとかなのでしょうか?
原因が例題書かれた方のミスなのか仕様変更なのか意味が分からないままエラーだけ出なくなった状況ですが次へ進みます。
ありがとうございました
18行目(変更前
int data = it.next();//次の要素を取得します。
18行目(変更後
int data = (int) it.next();//次の要素を取得します。
593デフォルトの名無しさん
2018/07/25(水) 20:30:23.90ID:QfwTkRmU そもそもなのですがIteratorって使いますか?
他にも配列などの操作方法あるようですし
どうしてこんな面倒な書き方で参照したりするのか疑問です
他にも配列などの操作方法あるようですし
どうしてこんな面倒な書き方で参照したりするのか疑問です
595デフォルトの名無しさん
2018/07/25(水) 20:40:39.19ID:QfwTkRmU >>594
ありがとうございます
ありがとうございます
596デフォルトの名無しさん
2018/07/25(水) 20:51:02.31ID:ITmWCwNQ597デフォルトの名無しさん
2018/07/25(水) 20:54:37.41ID:GZRArLRs598デフォルトの名無しさん
2018/07/25(水) 21:27:25.94ID:GZRArLRs >>594
int data = (int)it.next();
int data = (Integer)it.next();
これどちらもオートボクシングが行われてますよ
プリミティブ型で格納されてるわけじゃないっすから
オートボクシング使わずに書くならこう!
int data = ((Integer)it.next()).intValue();
int data = (int)it.next();
int data = (Integer)it.next();
これどちらもオートボクシングが行われてますよ
プリミティブ型で格納されてるわけじゃないっすから
オートボクシング使わずに書くならこう!
int data = ((Integer)it.next()).intValue();
599デフォルトの名無しさん
2018/07/25(水) 21:49:55.62ID:QfwTkRmU600デフォルトの名無しさん
2018/07/25(水) 22:28:09.59ID:QfwTkRmU >>589
の原因と教えていただいたことを自分なりに調べた結果のまとめと確認です
(連投すみません
13行目(変更前
Iterator it = arr.iterator();
これがジェネリクス総称型として型を指定していないのでObject型となり次の
18行目(変更前
int data = it.next();//次の要素を取得します。
ここでInt型にObject型を代入しようとして型不一致で代入できないとのエラーが出ていた
解決策としては
13行目(変更後
Iterator<Integer> it = arr.iterator();
明示的に<Integer>を宣言することで次の
18行目(変更前
int data = it.next();//次の要素を取得します。
ここで代入可能となったが
これはInt型とInteger型のオートボクシング機能が働いている
の原因と教えていただいたことを自分なりに調べた結果のまとめと確認です
(連投すみません
13行目(変更前
Iterator it = arr.iterator();
これがジェネリクス総称型として型を指定していないのでObject型となり次の
18行目(変更前
int data = it.next();//次の要素を取得します。
ここでInt型にObject型を代入しようとして型不一致で代入できないとのエラーが出ていた
解決策としては
13行目(変更後
Iterator<Integer> it = arr.iterator();
明示的に<Integer>を宣言することで次の
18行目(変更前
int data = it.next();//次の要素を取得します。
ここで代入可能となったが
これはInt型とInteger型のオートボクシング機能が働いている
601デフォルトの名無しさん
2018/07/25(水) 22:28:36.05ID:QfwTkRmU >>600
これで合ってますか?
最後の「これはInt型とInteger型のオートボクシング機能が働いている」のかちょっとまだ不安です
キャストはしてないけどオートボクシングが働いてたら意味がない?
このあたりがまだよく理解出来てないと思います
>>598 これをふまえると・・・
>>オートボクシング使わずに書くならこう!
>>int data = ((Integer)it.next()).intValue();
13行目(変更後
Iterator<Integer> it = arr.iterator();
18行目(変更後※
int data = it.next().intValue();//次の要素を取得します。
※ここまでやらないと意味が無いのでしょうか??
一応どちらも正常に結果出てますが内部的に違いがあるのか不安です?
これで合ってますか?
最後の「これはInt型とInteger型のオートボクシング機能が働いている」のかちょっとまだ不安です
キャストはしてないけどオートボクシングが働いてたら意味がない?
このあたりがまだよく理解出来てないと思います
>>598 これをふまえると・・・
>>オートボクシング使わずに書くならこう!
>>int data = ((Integer)it.next()).intValue();
13行目(変更後
Iterator<Integer> it = arr.iterator();
18行目(変更後※
int data = it.next().intValue();//次の要素を取得します。
※ここまでやらないと意味が無いのでしょうか??
一応どちらも正常に結果出てますが内部的に違いがあるのか不安です?
602デフォルトの名無しさん
2018/07/25(水) 22:37:49.97ID:GZRArLRs >>601
オートボクシングはプリミティブ型とラッパークラスの変換を
自動で行う仕組みのことで
毎回、↓こう書くの面倒だよね
int data = it.next().intValue();
じゃあ↓こう書けるようにしよう
int data = it.next();
ということで導入されたものだから積極的に使ったら良いよ
オートボクシングはプリミティブ型とラッパークラスの変換を
自動で行う仕組みのことで
毎回、↓こう書くの面倒だよね
int data = it.next().intValue();
じゃあ↓こう書けるようにしよう
int data = it.next();
ということで導入されたものだから積極的に使ったら良いよ
603デフォルトの名無しさん
2018/07/25(水) 22:44:09.05ID:QfwTkRmU >>602
Iterator<Integer> it = arr.iterator();
int data = it.next();
オートボクシングは便利機能なので使ってOKで
.intValue();が自動的に省略されてるだけで結果は同じ
これで解決ってことですね!納得しました!
ありがとうございました
Iterator<Integer> it = arr.iterator();
int data = it.next();
オートボクシングは便利機能なので使ってOKで
.intValue();が自動的に省略されてるだけで結果は同じ
これで解決ってことですね!納得しました!
ありがとうございました
604デフォルトの名無しさん
2018/07/25(水) 22:44:22.96ID:+qk7Pgth だね
Integerからintへの変換ではインスタンス生成されないし
intからIntegerへの変換でも数字が小さければインスタンスは生成されない
インスタンス生成を抑えるために小さな数字はあらかじめIntegerオブジェクトが作られていて使い回されるようになっているから
値オブジェクトみたいな感じ
コスト気にするよりオートボクシングを積極的に使って可読性の高いコードを書こう
Integerからintへの変換ではインスタンス生成されないし
intからIntegerへの変換でも数字が小さければインスタンスは生成されない
インスタンス生成を抑えるために小さな数字はあらかじめIntegerオブジェクトが作られていて使い回されるようになっているから
値オブジェクトみたいな感じ
コスト気にするよりオートボクシングを積極的に使って可読性の高いコードを書こう
605デフォルトの名無しさん
2018/07/25(水) 22:46:30.24ID:GZRArLRs >>600
ジェネリクスで型を指定すれば、型が間違ってたときにコンパイルエラーに
なってすぐに気づくことができるのだけれども
ジェネリクスで型を指定しないと、型が間違っててもエラーにならないのよ
実行してデータが処理されないとコードが間違ってるかわからぬのよね
エラーが起きないデータもあったりするとデバッグが超大変
ジェネリクスが使えるときは型を指定して使ったが良いよ
ジェネリクスで型を指定すれば、型が間違ってたときにコンパイルエラーに
なってすぐに気づくことができるのだけれども
ジェネリクスで型を指定しないと、型が間違っててもエラーにならないのよ
実行してデータが処理されないとコードが間違ってるかわからぬのよね
エラーが起きないデータもあったりするとデバッグが超大変
ジェネリクスが使えるときは型を指定して使ったが良いよ
606デフォルトの名無しさん
2018/07/25(水) 22:56:34.68ID:QfwTkRmU >>604-605
>>コスト気にするよりオートボクシングを積極的に使って可読性の高いコードを書こう
>>ジェネリクスが使えるときは型を指定して使ったが良いよ
質問で丁寧に回答していただきさらにアドバイスまでいただき感謝です!
勉強になりますありがとうございます!
>>コスト気にするよりオートボクシングを積極的に使って可読性の高いコードを書こう
>>ジェネリクスが使えるときは型を指定して使ったが良いよ
質問で丁寧に回答していただきさらにアドバイスまでいただき感謝です!
勉強になりますありがとうございます!
607デフォルトの名無しさん
2018/07/26(木) 00:12:38.71ID:5ROtQy7H >>589
それ原因が分かったぞ。(勘のいい奴なら既にわかっていると思うが)。
そのブログのページのソースのこう表示されてる個所あるだろ。
Iterator it = arr.iterator();
この部分の HTML のソースを見てみたらこうなってた。
Iterator<Integer> it = arr.iterator();
しかしこの通りに表示させたいなら HTML 文書の中ではこう書かねばならない。
Iterator<Integer> it = arr.iterator();
他の同じような記述の個所はこういう変換をやっているのにこの部分だけ忘れており
<Integer> 部分がブラウザによって HTML のタグと解釈されて丸ごと表示されない
状態になっていた、ということ。
それ原因が分かったぞ。(勘のいい奴なら既にわかっていると思うが)。
そのブログのページのソースのこう表示されてる個所あるだろ。
Iterator it = arr.iterator();
この部分の HTML のソースを見てみたらこうなってた。
Iterator<Integer> it = arr.iterator();
しかしこの通りに表示させたいなら HTML 文書の中ではこう書かねばならない。
Iterator<Integer> it = arr.iterator();
他の同じような記述の個所はこういう変換をやっているのにこの部分だけ忘れており
<Integer> 部分がブラウザによって HTML のタグと解釈されて丸ごと表示されない
状態になっていた、ということ。
608デフォルトの名無しさん
2018/07/26(木) 00:23:57.38ID:Hk2Eswys 草
609デフォルトの名無しさん
2018/07/26(木) 01:12:56.68ID:3Q0DG2FF >>607
よく見つけられましたね凄いです!
どなたかがブログへご指摘されてくださったようで確認しようと再度HP確認したら既に修正されていました!
あまりの速さに2度驚きました
この質問スレにもブログにも勉強するのにとても助かっています
いつもありがとうございます
よく見つけられましたね凄いです!
どなたかがブログへご指摘されてくださったようで確認しようと再度HP確認したら既に修正されていました!
あまりの速さに2度驚きました
この質問スレにもブログにも勉強するのにとても助かっています
いつもありがとうございます
610デフォルトの名無しさん
2018/07/26(木) 09:12:21.23ID:1RynmuAu >>607
草
草
611デフォルトの名無しさん
2018/07/26(木) 13:20:41.96ID:EM3EzxKL ./__.))ノヽ
.|ミ.l _ ._ i.) わしが指摘した
(^'ミ/.´・ .〈・ リ
.しi r、_) | ______
| `ニニ' / | | \__\___
___.ノ `ー―i´ | | |= |iiiiiiiiiii|
/⌒ヽ \____/\ | | | =. | !!!!!!!|
| ヽ____| \__. __ | | |三 |_「r.、
| // // ̄.\ //⊃ヾ) |__|_/( ) ̄ ))
ヽ ______//r_/| |.||⌒ヽ〜〔 ̄ ̄! ̄ ̄ ̄/ ̄ ̄\((
.|ミ.l _ ._ i.) わしが指摘した
(^'ミ/.´・ .〈・ リ
.しi r、_) | ______
| `ニニ' / | | \__\___
___.ノ `ー―i´ | | |= |iiiiiiiiiii|
/⌒ヽ \____/\ | | | =. | !!!!!!!|
| ヽ____| \__. __ | | |三 |_「r.、
| // // ̄.\ //⊃ヾ) |__|_/( ) ̄ ))
ヽ ______//r_/| |.||⌒ヽ〜〔 ̄ ̄! ̄ ̄ ̄/ ̄ ̄\((
612デフォルトの名無しさん
2018/07/26(木) 20:19:44.88ID:l6j0Y1pF 定義されてるディレクトリ配下のログが誰かに開かれてたら何もしないって処理作りたいんですけど、ファイルが誰かから開かれてるかを調べる方法ありますか?
613デフォルトの名無しさん
2018/07/26(木) 20:22:42.75ID:l6j0Y1pF 古くなったログの削除の為に使用するためです
614デフォルトの名無しさん
2018/07/26(木) 20:39:32.04ID:9i/IJhFr 自分でそのファイルを読み取り排他で開いてみるしかない
失敗したら他のプロセスがオープンしているということ
排他(副作用)なしでファイルのロック状態を知る方法はない
失敗したら他のプロセスがオープンしているということ
排他(副作用)なしでファイルのロック状態を知る方法はない
615デフォルトの名無しさん
2018/07/26(木) 21:15:30.96ID:l6j0Y1pF616デフォルトの名無しさん
2018/07/26(木) 21:33:54.42ID:ekiha7MK うーんどうなんだろう、設計
617デフォルトの名無しさん
2018/07/27(金) 02:20:59.11ID:O4NPrPXG >>612
Linux の場合は fuser コマンドを使うと指定のファイルをオープンしているプログラムのプロセスIDが分かる。
何も出力がなければ開いているプロセスはない。
他のUNIX系OSにもこのコマンドはあるかも知れない。Windows の WSL にはこのコマンドはあった。
その他のOSではどうやるか知らないが、もし fuser コマンドがあるのならそれを使えば同じようにできるんじゃないかと思う。
Windows の場合は他のプロセスが開いている最中にリネームしようとするとエラーになるそうなのでこれを利用するという手があるようだ。
但し同じ方法はOSが違ったら使えない(例えばLinuxやUNIX系OSでは使えない。WSLはわからない)。
https://code.i-harness.com/ja/q/153800
Linux の場合は fuser コマンドを使うと指定のファイルをオープンしているプログラムのプロセスIDが分かる。
何も出力がなければ開いているプロセスはない。
他のUNIX系OSにもこのコマンドはあるかも知れない。Windows の WSL にはこのコマンドはあった。
その他のOSではどうやるか知らないが、もし fuser コマンドがあるのならそれを使えば同じようにできるんじゃないかと思う。
Windows の場合は他のプロセスが開いている最中にリネームしようとするとエラーになるそうなのでこれを利用するという手があるようだ。
但し同じ方法はOSが違ったら使えない(例えばLinuxやUNIX系OSでは使えない。WSLはわからない)。
https://code.i-harness.com/ja/q/153800
618デフォルトの名無しさん
2018/07/27(金) 06:07:34.18ID:br8yoTOu paiza.ioってローカルPCのファイルやフォルダ操作するコードは実行出来ないですか?
619デフォルトの名無しさん
2018/07/27(金) 12:15:33.71ID:4+ImbG1U >>614
ログを開くアプリケーションによってはロック状態を認識できませんでした。
FileChannelクラスのtryLookメソッドを使いました。
OSがcentosでLibreOfficeで開いてるときはロック状態でしたが、geditで開いたときはロックされてなかったです。
何か初心者がおかしやすいミスとかってありますかね。
もう諦めてるんですがgeditが特殊なんですかね
ログを開くアプリケーションによってはロック状態を認識できませんでした。
FileChannelクラスのtryLookメソッドを使いました。
OSがcentosでLibreOfficeで開いてるときはロック状態でしたが、geditで開いたときはロックされてなかったです。
何か初心者がおかしやすいミスとかってありますかね。
もう諦めてるんですがgeditが特殊なんですかね
620デフォルトの名無しさん
2018/07/27(金) 12:16:37.86ID:4+ImbG1U gedit以外のテキストエディタでも同じでしたね
ロックの確認できません。
ロックの確認できません。
621デフォルトの名無しさん
2018/07/27(金) 12:58:52.13ID:ki81FzEq 普通はしないよ。
一々ロックしてたら、たとえばGitなんか阿鼻叫喚の地獄になる。
一々ロックしてたら、たとえばGitなんか阿鼻叫喚の地獄になる。
622デフォルトの名無しさん
2018/07/27(金) 13:04:46.00ID:4+ImbG1U >>621
そうなんですね
そうなんですね
623デフォルトの名無しさん
2018/07/27(金) 13:26:56.82ID:EBOSMkzO >>619
UNIX系OSではオープンしただけでは普通はロックまで掛からなくて、別途 flock() したり fcntl() でロックするようになっている。なので本当に必要な場合しかロックしないのが普通だ。
オープンしてるかどうかだけ確認したいなら fuser コマンドや lsof コマンドを使った方が楽だ。
Linux限定で良いなら /proc ディレクトリ以下を自分で探ってもできるけどね。
それだと多分本当にLinuxのみになるし fuser や lsof も Linux 用なら中で同じことしてるだろうから任せた方が良い。
UNIX系OSではオープンしただけでは普通はロックまで掛からなくて、別途 flock() したり fcntl() でロックするようになっている。なので本当に必要な場合しかロックしないのが普通だ。
オープンしてるかどうかだけ確認したいなら fuser コマンドや lsof コマンドを使った方が楽だ。
Linux限定で良いなら /proc ディレクトリ以下を自分で探ってもできるけどね。
それだと多分本当にLinuxのみになるし fuser や lsof も Linux 用なら中で同じことしてるだろうから任せた方が良い。
624デフォルトの名無しさん
2018/07/27(金) 14:29:19.42ID:4+ImbG1U >>623
色々教えて下さりありがとうございます。
色々教えて下さりありがとうございます。
625デフォルトの名無しさん
2018/07/29(日) 02:53:34.15ID:noej9t8s javaのバージョンって1.8だったり8だったり表記が複数あるようですが何なんですかこれは
626デフォルトの名無しさん
2018/07/29(日) 04:29:48.18ID:SHCnQYdt なんなんでしょうね
627デフォルトの名無しさん
2018/07/29(日) 05:54:37.87ID:Oaphdh9V 初見殺し
628デフォルトの名無しさん
2018/07/29(日) 08:38:57.85ID:7lOBGcOb >>625
Javaのバージョン
https://so-zou.jp/software/tech/programming/java/introduction/version/
意外と知らないバージョン表記・数字の豆知識
http://www.atmarkit.co.jp/ait/articles/1003/26/news106.html
理由はよくわからないが、やはり営業的な理由なんじゃないだろうか。
バージョン番号が大きい方が他の製品よりも良いものであるかのような印象を与えられるから。
Perlなんかは(フリーソフトで誰にも売る必要がないためか)これの逆をやってしまい、大きな変更が
あったのにほんのちょっとしかバージョン番号を上げなかったためにほとんど違いがないと誤解
された事があり、それでその後はバージョン番号の振り方のルールを変えた。
Javaのバージョン
https://so-zou.jp/software/tech/programming/java/introduction/version/
意外と知らないバージョン表記・数字の豆知識
http://www.atmarkit.co.jp/ait/articles/1003/26/news106.html
理由はよくわからないが、やはり営業的な理由なんじゃないだろうか。
バージョン番号が大きい方が他の製品よりも良いものであるかのような印象を与えられるから。
Perlなんかは(フリーソフトで誰にも売る必要がないためか)これの逆をやってしまい、大きな変更が
あったのにほんのちょっとしかバージョン番号を上げなかったためにほとんど違いがないと誤解
された事があり、それでその後はバージョン番号の振り方のルールを変えた。
629デフォルトの名無しさん
2018/07/29(日) 13:22:46.86ID:pFjYaTQt630デフォルトの名無しさん
2018/07/29(日) 21:11:31.52ID:JZa4OXPE eclipseをphoton にしてワークスペースをそのまま引き継ごうとしたら実行できなくなっちゃった。どうすればいいか教えてちょ
631デフォルトの名無しさん
2018/07/29(日) 21:23:30.06ID:JZa4OXPE eclipseをphoton にしてワークスペースをそのまま引き継ごうとしたら実行できなくなっちゃった。どうすればいいか教えてちょ
632デフォルトの名無しさん
2018/07/29(日) 21:46:32.56ID:sUhDPIHz ごめんちょ
633デフォルトの名無しさん
2018/07/30(月) 05:51:28.50ID:HJqNjAI+634デフォルトの名無しさん
2018/07/31(火) 23:16:57.30ID:ZNFzWxLv 初歩的な質問になるんですが異なる2つのクラスで1つの値を共有したいときってどういったやり方あります?
class a
String str
class b
a.setStr
class c
a.getStr
大分省略してますがこんなことをやりたいです。
実行順はbで更新した後にcで取得
class a
String str
class b
a.setStr
class c
a.getStr
大分省略してますがこんなことをやりたいです。
実行順はbで更新した後にcで取得
635デフォルトの名無しさん
2018/07/31(火) 23:22:07.36ID:3ipQI8/S クラスbとcのメンバにaクラスのフィールドをもちbとcのコンストラクタでaを設定する
636デフォルトの名無しさん
2018/07/31(火) 23:30:21.51ID:ZNFzWxLv class b
a a
public b
a = new a
a.set
class c
a a
public c
a = new a
a.get
みたいな感じですかね?
この場合ってbとcでそれぞれ作ったaのインスタンスって別物扱いになりません?
a a
public b
a = new a
a.set
class c
a a
public c
a = new a
a.get
みたいな感じですかね?
この場合ってbとcでそれぞれ作ったaのインスタンスって別物扱いになりません?
637デフォルトの名無しさん
2018/07/31(火) 23:31:13.26ID:0/QW8S54 >>636
外でnewして渡せ
外でnewして渡せ
638デフォルトの名無しさん
2018/08/01(水) 00:58:32.44ID:r0ZYJdIw639デフォルトの名無しさん
2018/08/01(水) 06:25:06.11ID:IkENlkBK new a
new b(a)
new c(a)
new b(a)
new c(a)
640デフォルトの名無しさん
2018/08/01(水) 07:48:14.65ID:3Ruau8S/ jdk11 ea でローカルswing アプリテストしたいのですが、
・jdk11 ea openjdkを取ってくる
・展開して適当なパスに置く
・path/to/openjdk/bin/java -jar myapp.jar
で起動出来るのでしょうか?
・jdk11 ea openjdkを取ってくる
・展開して適当なパスに置く
・path/to/openjdk/bin/java -jar myapp.jar
で起動出来るのでしょうか?
641デフォルトの名無しさん
2018/08/01(水) 10:26:14.54ID:198aEqhp やってみりゃいいじゃん
642デフォルトの名無しさん
2018/08/02(木) 02:22:35.17ID:reX89mAv 通信の優先度を決める事はできますか?
でかいファイルを送受信するけど、他のアプリに影響を出したくなくて、
低い優先度で送りたい。
でかいファイルを送受信するけど、他のアプリに影響を出したくなくて、
低い優先度で送りたい。
643デフォルトの名無しさん
2018/08/02(木) 02:39:35.74ID:vClc7nAi >>642
自分でゆっくり送ればいいのでは?
自分でゆっくり送ればいいのでは?
644デフォルトの名無しさん
2018/08/02(木) 07:50:56.22ID:yvP4ulwr プロセス・スレッドの優先度は、設定できないの?
645デフォルトの名無しさん
2018/08/02(木) 08:06:14.31ID:SwjRc7UR プロセスの優先度は知らんがスレッドの優先度なら
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Thread.html#setPriority-int-
// コードが走ってるスレッドの優先度を変える
Thread.currentThread().setPriority(priority); // 0(MIN_PRIORITY) ~ 10(MAX_PRIORITY)
// 生成したスレッドの優先度を変える
Thread thread = new Thread(runnable);
thread.setPriority(priotrity);
thread.start();
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Thread.html#setPriority-int-
// コードが走ってるスレッドの優先度を変える
Thread.currentThread().setPriority(priority); // 0(MIN_PRIORITY) ~ 10(MAX_PRIORITY)
// 生成したスレッドの優先度を変える
Thread thread = new Thread(runnable);
thread.setPriority(priotrity);
thread.start();
646デフォルトの名無しさん
2018/08/02(木) 08:10:14.12ID:lJdnLKf/647デフォルトの名無しさん
2018/08/08(水) 20:48:19.34ID:Y8NXA7MO アンドロイドアプリを作りたいのですが
数か月の間、メンターになってくえれる人を探そうと思ったら
どんなサイトで募集すればいいのでしょうか?
数か月の間、メンターになってくえれる人を探そうと思ったら
どんなサイトで募集すればいいのでしょうか?
648デフォルトの名無しさん
2018/08/08(水) 21:34:50.44ID:hdmbPKpc 俺がなってやろうか?
3ヵ月240万円でいいよ
3ヵ月240万円でいいよ
649デフォルトの名無しさん
2018/08/08(水) 21:38:15.67ID:oyXSOhRB メンターなんて言葉一般的に使うの?
自己啓発セミナーみたいでいやだなあ
あ、ボクはアナルオナニーインストラクターです
自己啓発セミナーみたいでいやだなあ
あ、ボクはアナルオナニーインストラクターです
650デフォルトの名無しさん
2018/08/08(水) 21:40:40.73ID:Y8NXA7MO 基本料金1か月3万円でお願いします
あとはオファーにより別途請求というシステムで
あとはオファーにより別途請求というシステムで
651デフォルトの名無しさん
2018/08/08(水) 22:33:01.96ID:D/rM6Nrn マンツーマンで教えるとなると時給の最低ラインは3000円だから
月3万円だと月10時間、1日15分ぐらいだな
月3万円だと月10時間、1日15分ぐらいだな
652デフォルトの名無しさん
2018/08/09(木) 10:10:38.81ID:gFPymi4k 専属の人を雇うとなると家庭教師雇うみたいなもんだから高くなるのではないか?
本やネットで調べながらでも何れはできるようになる事についてそこまで投資する必要があるのか?
何らかの期限があるなどして早く覚えないとまずいということか?
本やネットで調べながらでも何れはできるようになる事についてそこまで投資する必要があるのか?
何らかの期限があるなどして早く覚えないとまずいということか?
653デフォルトの名無しさん
2018/08/09(木) 10:33:41.65ID:SPEbgWbN パソコン教室に行って来い
654デフォルトの名無しさん
2018/08/09(木) 16:50:59.46ID:bgFYGL9Q synchronizedListはイテレータがスレッドセーフじゃないといいますが
for(int i=0;i<list.size();i++)
Element e = list.get(i);
もしsizeの増減が無い場合、こんな書き方はスレッドセーフに全要素にアクセスできますか?
for(int i=0;i<list.size();i++)
Element e = list.get(i);
もしsizeの増減が無い場合、こんな書き方はスレッドセーフに全要素にアクセスできますか?
655デフォルトの名無しさん
2018/08/09(木) 18:59:15.93ID:e0VFp9K8 できません
sizeを確認してからgetするまでに要素数が変化する可能性を排除できていません
sizeを確認してからgetするまでに要素数が変化する可能性を排除できていません
656デフォルトの名無しさん
2018/08/09(木) 18:59:52.71ID:e0VFp9K8 あ、ごめん
サイズ増減なしって条件書いてあったね
サイズ増減なしって条件書いてあったね
657デフォルトの名無しさん
2018/08/09(木) 19:02:22.63ID:e0VFp9K8 それはサイズが既知でgetしか使ってないのと同じで安全
ていうか要素が変化しないならスレッドセーフではないLinkedListでさえ安全に使えるでしょ
ていうか要素が変化しないならスレッドセーフではないLinkedListでさえ安全に使えるでしょ
658デフォルトの名無しさん
2018/08/18(土) 22:43:41.07ID:01sV26bM https://github.com/OpenHFT/Chronicle-Network
ここに出てくる"Wire"ってどういう意味ですか?
WireTextだの、WireEchoだの。
たぶんプログラミング界隈の用語だと思うんですが
ここに出てくる"Wire"ってどういう意味ですか?
WireTextだの、WireEchoだの。
たぶんプログラミング界隈の用語だと思うんですが
659デフォルトの名無しさん
2018/08/18(土) 23:10:04.14ID:ddghJ7gy ネットワークを繋ぐ線の概念なんじゃないかな
知らんけど、それっぽいと思った
知らんけど、それっぽいと思った
660デフォルトの名無しさん
2018/08/18(土) 23:30:49.48ID:01sV26bM meta -> meta.write(() -> "tid")
こういう記法は何を意味しますか?
(arg) -> code
みたいなのはラムダ式の説明で出てきますけど、metaはカッコがついていません
こういう記法は何を意味しますか?
(arg) -> code
みたいなのはラムダ式の説明で出てきますけど、metaはカッコがついていません
661デフォルトの名無しさん
2018/08/18(土) 23:35:11.85ID:01sV26bM Wire Message = 電報 ⇒ 通信されるデータ
WireType.TEXTとかWireType.BINARYがあるから、たぶんまさにそれだけの意味。
Network = Wireくらいの意味でこの人は使ってそうです。
WireType.TEXTとかWireType.BINARYがあるから、たぶんまさにそれだけの意味。
Network = Wireくらいの意味でこの人は使ってそうです。
662デフォルトの名無しさん
2018/08/18(土) 23:39:59.88ID:ddghJ7gy >>660
引数が1つのときはカッコを省略できるんよ
引数が1つのときはカッコを省略できるんよ
663デフォルトの名無しさん
2018/08/18(土) 23:58:07.43ID:01sV26bM 数千もの通信を同時処理する高性能なネットワークライブラリを探してるんですが、
何が良いんでしょう?Nettyは内容が難しすぎるんですが・・・。
難しいというか、必要としてるのは単にバイナリを送受信できればいいだけなので、
無駄に高機能過ぎる。
しかし、KeepAliveとか、サーバーが常駐してメッセージを受信してイベント起動、
とかは必要で。ネットワークライブラリの中身なにやってるかあまり詳しくないんですが。
Chronicle-Networkも良く分からない。
// the tid must be unique,
final long tid = tcpChannelHub.nextUniqueTransaction(System.currentTimeMillis());
System.currentTimeMillis()を使ったら、複数クライアントにおいてtidが重複するけど、
それでユニークといっていいのかどうか。
ちょっと情報が少なすぎるのでこれも無理そう。高速らしいんですが
Kryonetは、性能不足ですね。アップデートもされてません。
やはりNettyを頑張るしかないかもしれません。
何が良いんでしょう?Nettyは内容が難しすぎるんですが・・・。
難しいというか、必要としてるのは単にバイナリを送受信できればいいだけなので、
無駄に高機能過ぎる。
しかし、KeepAliveとか、サーバーが常駐してメッセージを受信してイベント起動、
とかは必要で。ネットワークライブラリの中身なにやってるかあまり詳しくないんですが。
Chronicle-Networkも良く分からない。
// the tid must be unique,
final long tid = tcpChannelHub.nextUniqueTransaction(System.currentTimeMillis());
System.currentTimeMillis()を使ったら、複数クライアントにおいてtidが重複するけど、
それでユニークといっていいのかどうか。
ちょっと情報が少なすぎるのでこれも無理そう。高速らしいんですが
Kryonetは、性能不足ですね。アップデートもされてません。
やはりNettyを頑張るしかないかもしれません。
664デフォルトの名無しさん
2018/08/19(日) 00:00:33.27ID:bn6Y5y/t >This comes at the cost of scalability for large number os connections. In this situation, this library should perform at least as well as netty.
これは多数のコンピューターからの同時接続ではNettyと同等の性能しかでない、
ということでしょうか?
想定してるのは1コンピューターとの高速な通信ということでしょうか。
これは多数のコンピューターからの同時接続ではNettyと同等の性能しかでない、
ということでしょうか?
想定してるのは1コンピューターとの高速な通信ということでしょうか。
665デフォルトの名無しさん
2018/08/19(日) 00:24:40.63ID:wM6XArJ0 WebSocket とかじゃないの?
666デフォルトの名無しさん
2018/08/19(日) 10:44:02.78ID:bn6Y5y/t やっぱり高性能なJavaのネットワーキングライブラリはNettyが有力のようです。
あと、Wire Messageは、たぶん「頭4バイトにINT入れて、次8バイトにLONG入れて」みたいな
バイト配列にデータを敷き詰めてく感じの行為をWireというのだろうと。
あと、Wire Messageは、たぶん「頭4バイトにINT入れて、次8バイトにLONG入れて」みたいな
バイト配列にデータを敷き詰めてく感じの行為をWireというのだろうと。
667デフォルトの名無しさん
2018/08/19(日) 11:22:52.85ID:yNrD+B/d よかったね(LOL)
668デフォルトの名無しさん
2018/08/19(日) 15:48:44.36ID:bn6Y5y/t PooledUnsafeDirectByteBufとは何ですか?
Handlerでbyte[]やByteBufなどクラスを限定できますが、
単にbyte[]を使うことと比べてByteBufやPooledUnsafeDirectByteBufは何かメリットがありますか?
Handlerでbyte[]やByteBufなどクラスを限定できますが、
単にbyte[]を使うことと比べてByteBufやPooledUnsafeDirectByteBufは何かメリットがありますか?
669デフォルトの名無しさん
2018/08/19(日) 16:16:30.55ID:bn6Y5y/t どうやら単にbyte[]を送りたい場合でもByteBufを通すのが普通みたいですね
でもそれだとByteBufを作るときもそこからbyte[]を読み取るときもコピー操作があるようで遅そうです
通信に比べればメモリ操作による遅れは微々たるものかもしれませんが
Nettyより高速と謳うライブラリがありますがやはりバッファ周りの問題を指摘してましたが
これですかね
でもそれだとByteBufを作るときもそこからbyte[]を読み取るときもコピー操作があるようで遅そうです
通信に比べればメモリ操作による遅れは微々たるものかもしれませんが
Nettyより高速と謳うライブラリがありますがやはりバッファ周りの問題を指摘してましたが
これですかね
670デフォルトの名無しさん
2018/08/20(月) 08:34:48.22ID:nWwgLLcF ソース読んではいないけど、byte[]のWrapperなんじゃないの?
渡されたbyte[]を丸々コピーするような、あなたのような超初心者な実装はしていないと思うよw
そもそも、byte[]で送るといっても、自分でBufferのサイズを決めたり、通信環境を考慮したり、いろいろやらなきゃいけない。
だから、そういった最適化をByteBufのサブクラスたちは提供してくれているのでしょう。
渡されたbyte[]を丸々コピーするような、あなたのような超初心者な実装はしていないと思うよw
そもそも、byte[]で送るといっても、自分でBufferのサイズを決めたり、通信環境を考慮したり、いろいろやらなきゃいけない。
だから、そういった最適化をByteBufのサブクラスたちは提供してくれているのでしょう。
671デフォルトの名無しさん
2018/08/20(月) 16:30:51.58ID:x31M90y2 こういうコードがあった時、logが呼ばれてもデバッグモードでなければ
意味が無いけど、AnyHeavyMethodは計算されちゃうんでしょうか。
それとも最適化で実行されませんか?
//in some method
log(""+AnyHeavyNoEffectMethod(o));
public void log(String s){
if(isDebugMode())
System.out.println(s);
}
意味が無いけど、AnyHeavyMethodは計算されちゃうんでしょうか。
それとも最適化で実行されませんか?
//in some method
log(""+AnyHeavyNoEffectMethod(o));
public void log(String s){
if(isDebugMode())
System.out.println(s);
}
672デフォルトの名無しさん
2018/08/20(月) 20:31:28.54ID:7cywDiIN JITコンパイラは副作用がないことをどこまで調べるんだろうね
673デフォルトの名無しさん
2018/08/20(月) 20:50:34.41ID:DUHqVJSw >>671
isDebugModeの返す値が定数で、かつそこに登場してる全てのメソッドがインライン展開されれば実行されないんじゃない?
Javaって基本的に大規模アプリケーションに最適化されてて、局所的な速度よりも全体的な安定性やメモリ消費量を重視する傾向があるから、
あまり最適化には期待しないほうがいいよ
isDebugModeの返す値が定数で、かつそこに登場してる全てのメソッドがインライン展開されれば実行されないんじゃない?
Javaって基本的に大規模アプリケーションに最適化されてて、局所的な速度よりも全体的な安定性やメモリ消費量を重視する傾向があるから、
あまり最適化には期待しないほうがいいよ
674デフォルトの名無しさん
2018/08/20(月) 22:27:44.88ID:trJY4lAL AnyHeavyNoEffectMethodが重い処理で、Java8以降ならラムダ式使うんじゃね?
log(() -> "" + AnyHeavyNoEffectMethod(o));
public viod log(Supplier<String> s){
if (isDebugMode())
System.out.println(s.get()); // ここでAnyHeavyNoEffectMethodが実行される
}
log(() -> "" + AnyHeavyNoEffectMethod(o));
public viod log(Supplier<String> s){
if (isDebugMode())
System.out.println(s.get()); // ここでAnyHeavyNoEffectMethodが実行される
}
675デフォルトの名無しさん
2018/08/21(火) 08:43:36.63ID:VaNiE4c6 いいね。そっくりそのままDecoratorにもなってるからすっきりする。
676デフォルトの名無しさん
2018/08/21(火) 09:27:43.13ID:R/vyiArT それJavaの場合はラムダ内で外のミューダブルな変数を参照できないから微妙
677デフォルトの名無しさん
2018/08/21(火) 10:05:53.79ID:VaNiE4c6 どーーしても必要なら、観測したい変数をHeapに逃がせばいい(オブジェクトにぶら下げるとか)わけだけど。
Functional信者は怒りMaxだろうな。
Functional信者は怒りMaxだろうな。
678デフォルトの名無しさん
2018/08/21(火) 12:07:34.45ID:LMQ5YiiU >>676
変態すぎるだろ何やろうとしてるんだよ
変態すぎるだろ何やろうとしてるんだよ
679デフォルトの名無しさん
2018/08/21(火) 12:57:56.56ID:5BiPsrnL680デフォルトの名無しさん
2018/08/21(火) 15:25:34.33ID:LMQ5YiiU681デフォルトの名無しさん
2018/08/21(火) 15:30:01.19ID:LMQ5YiiU あ、わかった
682デフォルトの名無しさん
2018/08/21(火) 17:51:15.05ID:NYseXeYs683デフォルトの名無しさん
2018/08/21(火) 17:55:00.54ID:IftEBw66 ログなら普通にある状況だろ
それを使い方の問題というならラムダをログに使うという>>674の発想が間違ってるわ
それを使い方の問題というならラムダをログに使うという>>674の発想が間違ってるわ
684デフォルトの名無しさん
2018/08/21(火) 20:09:37.16ID:NYseXeYs ないよ。AOPとかDecoratorとか、ラムダが登場する以前からずっとやってきている話。
ラムダはそれをちょっとエレガントにできるようにしただけ。
だから、使い方の問題なんだよ。
ラムダはそれをちょっとエレガントにできるようにしただけ。
だから、使い方の問題なんだよ。
685デフォルトの名無しさん
2018/08/21(火) 22:05:33.53ID:flSi4mUH >>684はミュータブルな変数を一切ログ出力してないの?
自身を持って無いと言い切れるなら偉そうなこと言っていいぞ
自身を持って無いと言い切れるなら偉そうなこと言っていいぞ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 三角形はカッコいい
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- みなみけ三姉妹誰が一番好き?
- 俺はヤンキーだから
- 【速報】高市早苗、起床 [779938112]
- ぬるぽ
