2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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

☆★Java質問・相談スレッド181★★

1 :デフォルトの名無しさん:2018/02/10(土) 17:49:40.56 ID:l9ZzjyKP.net
プログラミング言語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/

2 :デフォルトの名無しさん:2018/02/11(日) 01:19:57.46 ID:pgvJ3Hcm.net
Java SE 8 Date and Timeについて教えてください

String型の"平成元年1月8日"という値をLocalDate型に変換したいのですが
DateTimeFormatterを使って変換する方法を教えてください
お願いします

3 :デフォルトの名無しさん:2018/02/11(日) 01:33:03.69 ID:B0DbdRYG.net
そういやそれやってみたけどどうやっても「元年」がダメだったな。「1年」ならできたんだけどな。
何か方法はあると思うんだけど今のところわからない。

4 :デフォルトの名無しさん:2018/02/11(日) 04:56:25.67 ID:3iWAD1Pj.net
Javaのファイル型KVSめちゃくちゃ遅くないですか?
KyotoCabinetとかの1000分の1レベル・・・
たぶんstaticにインデックスを持ってないのかな
組み込み型かつファイル型で何かいいのありますか?

5 :デフォルトの名無しさん:2018/02/11(日) 07:12:11.17 ID:Dl6onReq.net
LocalDate.parse(text.replace("元年", "1年"), formatter);
オラクルに文句言うしかないね

6 :デフォルトの名無しさん:2018/02/11(日) 07:19:28.55 ID:fidWsgUl.net
>>4
javaのkvsが遅いってどういうことよ。
公式のライブラリなんてないでしょ。

7 :デフォルトの名無しさん:2018/02/11(日) 08:23:10.55 ID:3iWAD1Pj.net
javaのプログラムといったとき公式のプログラムだけを指すわけではありません

8 :デフォルトの名無しさん:2018/02/11(日) 10:15:34.56 ID:fidWsgUl.net
つまり、4が勝手に選んだ3rdパーティのkvsが遅いと言いたいわけではなく、
javaによるkvs実装は一般的にインデックスがなくて遅いって言いたいの?

9 :デフォルトの名無しさん:2018/02/11(日) 12:45:16.73 ID:ELb3bzVx.net
javaってなんか有料になるんですか?

10 :デフォルトの名無しさん:2018/02/11(日) 13:45:44.84 ID:pgvJ3Hcm.net
>>3
>>5
ありがとうございます

11 :デフォルトの名無しさん:2018/02/11(日) 23:30:55.85 ID:uxIefof+.net
今Open javaというのを使っているのですがOracle javaというのを使った方がいいのでしょうか
ざっと調べてみたのですがどちらにすべきというのがいまいちわかりません

12 :デフォルトの名無しさん:2018/02/12(月) 06:49:36.37 ID:IgpM8r15.net
例外の使い方どうすればいいですか?
falseやnullを返していくか、例外を投げるか。
例えばDBへのトランザクションで複雑な内部処理の中だとして、
処理の失敗に応じてコミットするか選択しないといけない。
例外のベストプラクティスが知りたい

13 :デフォルトの名無しさん:2018/02/12(月) 12:47:18.02 ID:qekpeHDJ.net
それが判断できるところでcatchして、適切な処理をしてから再throwすればいいと思うよ

14 :デフォルトの名無しさん:2018/02/12(月) 23:58:43.00 ID:CWNu4mBa.net
パッケージ名の付け方について自身の持つドメインを逆からという風に聞いたのですが
個人開発等でドメインを持っていない方々はどうされているのでしょうか?
ユニーク性から考えてメアドを利用するというのを思いついたのですが
何か作法はありますか?

15 :デフォルトの名無しさん:2018/02/13(火) 01:17:29.42 ID:ItXL3xp2.net
>>12
場合による.

16 :デフォルトの名無しさん:2018/02/13(火) 01:23:39.93 ID:uX7IZed7.net
>>14
何でも好きなの作ればいいじゃん。特に制限があるわけじゃないし。
公開して多くの人に使わせることを目的としたライブラリなんかはそういう風に名前付けといた方が分かりやすいし他と衝突する事もないだろうからそうした方が良いだろうけどね。必ずしもそうしなけりゃいけないわけじゃない。

17 :デフォルトの名無しさん:2018/02/13(火) 01:54:37.39 ID:/bOHErQ9.net
そもそも例外ていちいちthrowする必要あります?
例外なんだから、コーディングされていない遷移じゃないですか?
NPEとかClassCastとかもチェックせずに、全部上で捕まえて処理してください、
じゃだめですか?

18 :デフォルトの名無しさん:2018/02/13(火) 02:15:44.45 ID:FRKwtYnc.net
>>17
それも場合によるかな
処理しなくていい例外とかもあるからねぇ

19 :デフォルトの名無しさん:2018/02/13(火) 04:06:37.94 ID:uX7IZed7.net
>>17
ま、なんというか、その辺はJavaでは今更どうにもならんのでKotlinとか使えば良いんじゃないかな。

20 :デフォルトの名無しさん:2018/02/13(火) 08:59:03.90 ID:/bOHErQ9.net
log4j2のxmlが反映されない・・・
LogManager.getLoggerした時点で狂ったようにログ吐くからなんとかしたいんだけど
これでtraceをinfoにしても止めれないんだけどなぜですか?
<Loggers>
<Root level="trace">
<AppenderRef ref="console" level="trace"/>
</Root>
</Loggers>

21 :デフォルトの名無しさん:2018/02/13(火) 09:31:34.49 ID:jLCpX7pa.net
場合による、便利な言葉ですねえ

22 :デフォルトの名無しさん:2018/02/13(火) 12:05:27.36 ID:AHnFnr3H.net
>>14
sofだと、ドメイン取ったほうがええよ。でもとれないならメアドか自分のプロジェクトレポジトリのurlを使いなよ、って回答に人気があるね。

23 :デフォルトの名無しさん:2018/02/13(火) 12:27:53.31 ID:IoOWXwkE.net
例外は、基本的に戻り値ではなく、try-catch で囲む。
戻り値で返すとわかりにくいから、例外構文ができた

あとは君が考える

入力値エラー、0 除算、ファイルが存在しない、
メモリが足りない、型変換エラーの場合に、君はどうする?

24 :デフォルトの名無しさん:2018/02/13(火) 13:55:34.17 ID:O++cRC/Q.net
>>11
11以降はオラクル版の提供やめるみたいよ。

25 :デフォルトの名無しさん:2018/02/13(火) 20:12:23.22 ID:bGWlvAgR.net
>>16
>>22
ありがとうございます
参考にします

26 :デフォルトの名無しさん:2018/02/14(水) 08:19:05.85 ID:IbDcUCKa.net
Booleanとbooleanとかオブジェクト型とプリミティブ型の使いわけどうすればいいですか?
性能的にシビアなところはプリミティブのほうがいいですか?

27 :デフォルトの名無しさん:2018/02/14(水) 08:27:53.52 ID:/di6HjOp.net
Listに入れるとかnullが必要なパターンじゃない限りbooleanでok

28 :デフォルトの名無しさん:2018/02/14(水) 08:39:24.34 ID:xRv25q5d.net
>>26
基本プリミティブ型だけ使う。ジェネリクスの型宣言するときだけラッパー型使えばいいよ。

29 :デフォルトの名無しさん:2018/02/14(水) 10:32:08.01 ID:xbUNXEcU.net
>>26
主に他の言語やら他のアーキテクチャと連携するときとかに使う
データ通信時にtrue/falseを文字列でやり取りしたりもすることもあるので使えるようになると便利

他のラッパークラスも一緒

30 :デフォルトの名無しさん:2018/02/16(金) 04:25:55.90 ID:PIB5v9ZW.net
バッチ処理とJavaでする処理ってなにか違いがあるんでしょうか
よく「夜になったらバッチが動いてデータを処理してくれる」とかありますが「夜になったらJavaがデータを処理してくれる」とかでも良いように見えて違いがわからないです

31 :デフォルトの名無しさん:2018/02/16(金) 06:51:31.03 ID:UxRi07OK.net
>>30
「バッチ」は処理方式の話
「java」は言語の話

観点が違う

32 :デフォルトの名無しさん:2018/02/16(金) 10:23:33.09 ID:OW1usLwi.net
夜になるとバッチ処理でJavaのプログラムが起動して、なんてこともありうる。

33 :デフォルトの名無しさん:2018/02/16(金) 10:43:37.31 ID:OVf/pPmf.net
バッチこい

34 :デフォルトの名無しさん:2018/02/21(水) 18:43:46.25 ID:Ho2ISOMi.net
Java終わりかな

35 :デフォルトの名無しさん:2018/02/21(水) 19:34:28.74 ID:2C7myRiq.net
普通に考えて中々終わらんだろう。
Androidも健在だしな。Kotlin使うとしても新規プログラムからばかりでこれまでにJavaで作ったやつを変換してまで乗り換えるようなのはあまりないと思うよ。

36 :デフォルトの名無しさん:2018/02/21(水) 21:00:30.83 ID:aRBSqY5R.net
「バッチ処理」で検索!

プログラムによる自動処理

37 :デフォルトの名無しさん:2018/02/22(木) 17:39:01.87 ID:XBqMjBt+.net
文字の連結、追加で
ab+=cd
と記述できますが
ab=ab+cd
この記述と違ってメモリ幅の変動がなく
連続して前者の追加加算をしてもそれほど速度低下にはならないもんなんでしょうか?
内部を知ってる方に伺いたいです

38 :デフォルトの名無しさん:2018/02/22(木) 17:49:43.91 ID:gz5vdKLC.net
どっちも同じバイトコードになるに決まってんだろアホ

39 :デフォルトの名無しさん:2018/02/22(木) 17:59:09.72 ID:XBqMjBt+.net
書いてあるようにメモリ幅と内部のやりくりについての質問です
全くの見当違いの人はレス不要です
わからない人でなくわかっている人に聞いています

40 :デフォルトの名無しさん:2018/02/22(木) 18:24:41.64 ID:Rqvcd5k2.net
両方書いてコンパイルしてバイトコード出して見比べてみたら?

41 :デフォルトの名無しさん:2018/02/22(木) 20:36:01.87 ID:i8z+ldk3.net
わからない人は答えないでください(上から目線)

42 :デフォルトの名無しさん:2018/02/22(木) 21:30:20.55 ID:gkrr6Csx.net
「それほど」がどの程度の速度低下まで許容されるのかをちゃんと定義してくれないと(すっとぼけ)

43 :デフォルトの名無しさん:2018/02/22(木) 21:52:44.46 ID:IYnEzTFC.net
「メモリ幅」ってなんのことだ?

44 :デフォルトの名無しさん:2018/02/22(木) 23:26:05.38 ID:YcYRar81.net
確保するメモリのサイズのことじゃなかろうかと知らんけど

45 :デフォルトの名無しさん:2018/02/22(木) 23:26:40.80 ID:YcYRar81.net
「メモリ幅」ってなんのことだ?

46 :デフォルトの名無しさん:2018/02/22(木) 23:27:09.12 ID:YcYRar81.net
同じバイトコードになるという答えが見当違いとは思えない

47 :デフォルトの名無しさん:2018/02/22(木) 23:53:50.86 ID:K6gwUVsb.net
メモリ幅なんて言う奴は、CPU・RAM を分かっていない

どの言語でも、そんなの保証していない

48 :デフォルトの名無しさん:2018/02/22(木) 23:54:13.94 ID:ylubyEbg.net
>>39
ほんこれ
わからないなら初心者版行けとしか

49 :デフォルトの名無しさん:2018/02/23(金) 06:23:51.21 ID:Brpvjprl.net
java 文字列連結 最適化
でググった方が早いよ。

50 :デフォルトの名無しさん:2018/02/23(金) 08:13:48.99 ID:oHNB0pIN.net
そもそも ab+=cd と ab=ab+cd の違いが問題になるほどのプログラム組んでるのかよ w
大量の文字列追加があるならStringBuilder使えや

51 :デフォルトの名無しさん:2018/02/23(金) 09:42:52.51 ID:HSy+CPfQ.net
「わからない人は答えないでください」は知恵遅れでよく見るけどそれが掲示板にも流れてきてるのか
そういうやつが「普通」になっているのか、どっちなんだろう?

52 :デフォルトの名無しさん:2018/02/23(金) 11:27:53.19 ID:mFZl6vMq.net
>>45
ほら、目盛りの幅。3cmとか。

53 :デフォルトの名無しさん:2018/02/23(金) 11:54:49.01 ID:zNsQyXzG.net
>>50
これ

54 :デフォルトの名無しさん:2018/02/23(金) 18:05:40.89 ID:tsgXcJ7V.net
質問スレ 「わからない人は答えないで下さい」

ま、まあそうだな…

55 :デフォルトの名無しさん:2018/02/23(金) 19:26:11.88 ID:Py5a3myD.net
String a = "わからない人は";
String b = "答えないでください。";

a += b;

56 :デフォルトの名無しさん:2018/02/23(金) 19:37:01.17 ID:Jw2VdbNh.net
ふう

57 :デフォルトの名無しさん:2018/02/23(金) 22:52:04.40 ID:IHdQ8A6l.net
>>55
ベストアンサー

58 :デフォルトの名無しさん:2018/02/24(土) 06:52:39.70 ID:Fw6wAD1s.net
>>37
周辺のコードとJavaコンパイラのバージョンによって変わったりするからそれだけの情報だと何とも
つまりは>>50の通り
>>38は間違ったこと言ってないからね

メモリ幅?:Stringが確保する領域のこと?
内部のやりくり?:GCのタイミングの話?
連続して〜?:ループ処理の内部を+=か+で変えるってこと?それなら38の通り

何を持って見当違いだと判断したのだ

59 :デフォルトの名無しさん:2018/02/24(土) 07:22:33.34 ID:BKLSO8lU.net
>37は人気者だね!

60 :デフォルトの名無しさん:2018/02/24(土) 07:44:29.29 ID:UzdWcVQE.net
わからないの群れを見越して質問者に先に釘をさされるようじゃここも終わりだな

61 :デフォルトの名無しさん:2018/02/24(土) 08:10:48.12 ID:8SGsAbML.net
質問内容があの走ってる電車のレール長は変わりますか?どのように変わりますか?
に対して38のこたえが レールの上を走ってるに決まってんだろ だからじゃね
頓珍漢と思われても仕方ない

62 :デフォルトの名無しさん:2018/02/24(土) 08:12:05.24 ID:MAo3e6Of.net
僕の頭の中がわかる人だけこたえてください

63 :デフォルトの名無しさん:2018/02/24(土) 08:36:28.75 ID:CuRF79s8.net
わざわざ言わんでも、「メモリ幅」が何を意味しているのか推理できる人しか答えられないのは確かだな。

64 :デフォルトの名無しさん:2018/02/24(土) 08:40:19.77 ID:nsuuekrF.net
>>60
お前はどこにいるのw

65 :デフォルトの名無しさん:2018/02/24(土) 08:54:31.97 ID:Fw6wAD1s.net
>>61
その例えはおかしいわ
この場合、性能が同じaの電車とbの電車があります。同じ回数走ったらレールの長さや電車の速度はかわらないんでしょうかと言ってるようなものだぞ
当然、レールの長さは変わらない

66 :デフォルトの名無しさん:2018/02/24(土) 08:58:48.32 ID:Fw6wAD1s.net
いや、やっぱなんか違うな
無理やり例えるのは良くないな

67 :デフォルトの名無しさん:2018/02/24(土) 18:13:10.60 ID:IGnDdAZf.net
>>61
お前もわかってないからそんな頓珍漢な例えになるんだよ
同じバイトコードになるってことは、それが元々 a += b と書かれてたか a = a + b と書かれてたかなんてJVMにはわからないし、
JVMが同じものとして解釈する以上、メモリ幅の変動(?)も速度低下(?)もないわけで

>>37が言ってるのは、同じバイトコードになる、よってそのコードは等価
お前の例えは、レールの上を走ってる、よってなんなの?

68 :デフォルトの名無しさん:2018/02/24(土) 18:16:34.78 ID:dm+ZE7MQ.net
電車から逃げ出した痴漢だろ

69 :デフォルトの名無しさん:2018/02/24(土) 20:20:05.65 ID:BKLSO8lU.net
っていうかメモリ幅ってなにさ?

70 :デフォルトの名無しさん:2018/02/24(土) 21:19:43.00 ID:mD86uI0D.net
SIMMの幅のことだろ

71 :デフォルトの名無しさん:2018/02/24(土) 22:08:13.59 ID:01A04fC8.net
むかしパソコン詳しい人に教えてもらったっけ
メモリは机の広さで多くのファイルを広げられるから作業が速くなる
机が小さかったら使わないファイルや文房具をしまったりするから効率が悪くなるって

なるほどなーって思った
それでうちの机はあまり大きくないからメモリ少なめのパソコン買ったよ(^o^)

72 :デフォルトの名無しさん:2018/02/25(日) 03:42:22.23 ID:PW98pIgG.net
なんで主記憶容量の話に

73 :デフォルトの名無しさん:2018/02/25(日) 10:14:47.10 ID:+Ur3vkTA.net
アホの議論だから

74 :デフォルトの名無しさん:2018/02/25(日) 11:16:42.37 ID:59jeAjzx.net
でもパソコンのメモリって減らないからすごいよな!
スマホは毎月7ギガとか減るのに

75 :デフォルトの名無しさん:2018/02/25(日) 11:25:47.01 ID:251p5lsj.net
ポータブルハードディスクって幅小さくて持ちやすいよな

76 :デフォルトの名無しさん:2018/02/25(日) 13:39:46.79 ID:8xIV5yfC.net
>>71
ちょっとだけクスッとした。

77 :デフォルトの名無しさん:2018/03/03(土) 17:37:02.43 ID:V2kYq93l.net
だから?

78 :デフォルトの名無しさん:2018/03/03(土) 18:03:32.42 ID:h2dbhV1r.net
https://images-na.ssl-images-amazon.com/images/I/61DmP9T3dkL._SL1500_.jpg

79 :デフォルトの名無しさん:2018/03/10(土) 00:24:37.51 ID:J3fnbe39.net
java勉強中の初心者です
javaEEのservletの“doDelete”について質問です。
勉強のためcurdを実装しているのですが、
post(c),get(r),はhtmlのform,hrefから送信できたのですが、
htmlからdelete(d)を送信し"doDelete”に渡したいのですがどの様にすればいいのでしょうか。
そもそも、考え方が間違っているのでしょうか。
アドバイス、参考などがありましたらご教授お願いします。

80 :デフォルトの名無しさん:2018/03/10(土) 00:34:48.00 ID:q/evhJ6x.net
ご教示

81 :デフォルトの名無しさん:2018/03/10(土) 00:50:58.87 ID:aNTnNw8G.net
>>79
JavaScriptで
デベロッパーツールとjQueryでREST APIのテストリクエストを実行
http://dim5.net/programming/using-ajax-request-on-js-console.html

82 :デフォルトの名無しさん:2018/03/10(土) 10:31:42.46 ID:vFw8BYES.net
>>79
HTTPメソッドのDELETEに対応して実装されているのでしょう
確かリソース自体の削除だったか
実際に使われるのはGETとPOSTがほとんど
負荷が高いとHEADで対応はあるかも

データの削除はPOSTによるコマンド的なものでやる
またはURL末尾にdeleteとかメソッドっぽく含める
という方が見かける

URLの設計次第ではアリだと思うけどブラウザがあまり対応してないのかな
2015-07-22 [html/css] httpのフォームでDELETE やPUTのメソッドを送る方法
http://portaltan.hatenablog.com/entry/2015/07/22/122031

83 :デフォルトの名無しさん:2018/03/10(土) 10:33:16.22 ID:vFw8BYES.net
>>79
HTTPメソッドのDELETEに対応して実装されているのでしょう
確かリソース自体の削除だったか
実際に使われるのはGETとPOSTがほとんど
負荷が高いとHEADで対応はあるかも

データの削除はPOSTによるコマンド的なものでやる
またはURL末尾にdeleteとかメソッドっぽく含める
という方が見かける

URLの設計次第ではアリだと思うけどブラウザがあまり対応してないのかな
2015-07-22 [html/css] httpのフォームでDELETE やPUTのメソッドを送る方法
http://portaltan.hatenablog.com/entry/2015/07/22/122031

84 :デフォルトの名無しさん:2018/03/10(土) 18:28:38.86 ID:32LTkPVU.net
>>79
hrefはGETのみ、formはGETかPOSTしかサポートしてない
htmlからPUTやDELETEメソッドを使いたければXMLHttpRequest(XHR)を使う
>>81で書いてるjQueryは内部的にXHRを使ってる

サーバーAPIの単純な動作確認が目的ならhtmlじゃなく
cURLやPostmanのようなhttpクライアントを使ったほうが簡単

85 :デフォルトの名無しさん:2018/03/10(土) 23:13:45.90 ID:J3fnbe39.net
>>84
>>83
そうなんですね。
聞きかじったRESTfullとhtmlのhref,formを混同していました。
新たにクラスを作っていhrefからdoGETにパラメータを渡して処理するようにしました。

しかし、なぜformからGETとPOSTしかサポートされないでしょうかね。
正直、釈然としません・・・

スレ違いだったらスルーしてください

86 :デフォルトの名無しさん:2018/03/11(日) 11:18:11.36 ID:u0Fc0bsI.net
>>85
2014-03-29 なぜ html の form は PUT / DELETE をサポートしないのか?
http://jxck.hatenablog.com/entry/why-form-dosent-support-put-delete

87 :デフォルトの名無しさん:2018/03/11(日) 13:58:39.70 ID:91F3yKR+.net
よくインターネット上の広告で半年でエンジニアに!みたいなのあるけど、インターネット不得手、プログラム未経験者が真剣に半年頑張れば本当にそんなこと可能なんですか?
可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが

88 :デフォルトの名無しさん:2018/03/11(日) 13:59:53.47 ID:XNLW8FjI.net
IT土方、昔は元コンビニ店員(未経験)といたけど

89 :デフォルトの名無しさん:2018/03/11(日) 14:17:33.20 ID:OHQW+NNW.net
半年でエンジニアになる理由?

90 :デフォルトの名無しさん:2018/03/11(日) 14:19:09.66 ID:OHQW+NNW.net
1年よりも半年がいいし
半年よりも1ヶ月がいいだろうけど
半年かかるってことなんじゃ

91 :デフォルトの名無しさん:2018/03/11(日) 15:07:12.87 ID:u0Fc0bsI.net
>>87
スキルシートに○○開発半年と書ければ派遣できるからじゃないか

92 :デフォルトの名無しさん:2018/03/11(日) 15:59:35.51 ID:FcyL3wwo.net
あれ?デジャ・ビュか?どこかで同じ書き込みを見たような・・・

93 :デフォルトの名無しさん:2018/03/13(火) 18:07:26.87 ID:cTFPDQau.net
javaというより数学の話に近いかもしれんのだがこれ答え間違ってるよね?
http://tech.pjin.jp/blog/2017/10/30/java-programing-exercise-8/

94 :デフォルトの名無しさん:2018/03/13(火) 18:32:22.59 ID:LC30GjQR.net
>>93
え?どれが?

95 :デフォルトの名無しさん:2018/03/13(火) 18:57:50.45 ID:jO7pAkit.net
答えが正である理由が分からないわ。と思ったが
差は大きな数字から小さな数字を引くことだと今になって初めて知った。ボクは恥ずかしい女ですw

96 :デフォルトの名無しさん:2018/03/13(火) 20:35:25.12 ID:XMKMH3bD.net
>>95
お前はおっさんです!

97 :デフォルトの名無しさん:2018/03/13(火) 20:40:24.25 ID:/ChP+Vc3.net
状況によると思う
基準値からの差とか言う時に絶対値だけだと色々不便だし

98 :デフォルトの名無しさん:2018/03/13(火) 22:18:55.48 ID:wTdUbQ7M.net
>>94
例えば+xと-yだとしたらx+yになって差になってないと思うけど…
出題者と自分とで「差」の認識が違ったのかな
いろいろ場合分けしてたから「え?これでいいの?」って拍子抜けだった

99 :デフォルトの名無しさん:2018/03/13(火) 22:30:12.11 ID:Q4D8j7yB.net
>>98
君が考えた差を計算するソース見せて

100 :デフォルトの名無しさん:2018/03/13(火) 22:35:23.36 ID:jO7pAkit.net
ユーザや設計者から指定された「差」の定義や例文がないと混乱するわね。
以上以下と未満ですら怪しい人が多いから
>>96
僕はボクっ子だもん

101 :デフォルトの名無しさん:2018/03/13(火) 22:36:24.93 ID:9h29uVxq.net
おいおい中一レベルだぞ

102 :デフォルトの名無しさん:2018/03/14(水) 00:02:50.00 ID:5wanHWIv.net
>>99
ちょっと考えたら自分が見当違いのことしてたの分かったからもう許して

103 :デフォルトの名無しさん:2018/03/14(水) 21:36:07.79 ID:V4ac6dGx.net
xとyの値次第でintの範囲に収まらなくなる可能性あるから
あんまり良くないなこれ

104 :デフォルトの名無しさん:2018/03/15(木) 22:43:23.98 ID:jcS43Jhh.net
> 差を求めるということは大きい値から小さい値を引いた結果になります。

この定義には驚きだね。差の絶対値じゃん。

105 :デフォルトの名無しさん:2018/03/15(木) 22:45:38.78 ID:jcS43Jhh.net
プログラム視点でもintの演算を勝手にunsignedにしてるし

106 :デフォルトの名無しさん:2018/03/15(木) 22:46:20.74 ID:85Z09i/Z.net
ものを知らないだけ
辞書引けよ

107 :デフォルトの名無しさん:2018/03/27(火) 00:04:41.18 ID:LxXLqxse.net
>>95
>差は大きな数字から小さな数字を引くことだと今になって初めて知った。ボクは恥ずかしい女ですw
それだと負数考慮してないでしょ。差は被減数から減数を引くこと。

>>93
問題文が悪いのよこれ。

数学的には「差」は減法の答え(減算の結果)で、
国語的にはただ「差」といった場合には隔たりの事、数の差と言った場合には2つの数の距離の事
(この距離を表す数は数学的にはベクトルになるけど、これが国語的な2者間の数の隔たりを表す)だけど、
一方がゼロ点であるとは限らないから、結局数学と同じ意味になる。
多分、この問題文考えたのも>>95と同じ様に負数の概念がすっぽ抜けてんだよ。>>93は正しい。

108 :デフォルトの名無しさん:2018/03/27(火) 03:43:48.88 ID:cnMXkmda.net
>>107
その話題もう終わってるから

109 :デフォルトの名無しさん:2018/03/27(火) 06:37:48.65 ID:UWBQsjyU.net
>>108
別に良いと思う
時間も空間も超越するのが5chの醍醐味やで
お前老害や

110 :デフォルトの名無しさん:2018/03/28(水) 01:09:27.59 ID:hR1N5KW+.net
リストでループ途中に要素が追加されてもループするのはどうすればいいんですか?

forEachでもIterattionでもmodifiedなんちゃらエラーになるんですよね
昔ながらのVectorでfor(int i = 0; i < size(); i++) elementAt(i) とかしなきゃだめですか?

111 :デフォルトの名無しさん:2018/03/28(水) 01:21:01.26 ID:7s/C1dYs.net
>>110
追加されたものもループで処理したいん?

112 :デフォルトの名無しさん:2018/03/28(水) 07:58:42.47 ID:hR1N5KW+.net
そうです

有限グラフ探索で隣接ノードをリストにためて順番に処理していきたいので
最初は開始ノードのみで途中でどんどんふえていく感じにしたくて

113 :デフォルトの名無しさん:2018/03/28(水) 08:23:59.58 ID:7oWFtssG.net
>>110
追加中にバッファが再確保される可能性があるから仕方ない。
つList#listIterator()

114 :デフォルトの名無しさん:2018/03/28(水) 09:46:54.23 ID:fhRmItKh.net
>>110
それ要素が処理している所よりも手前に挿入されたらダメだよね。必ず最後に追加しかされないことが保証されているリストならいいけど。
それと、削除もできないようになってないと処理中に削除される可能性がある。

ということで、処理する側と完全に連携可能なやつを自作した方が良いのでは?

115 :デフォルトの名無しさん:2018/03/28(水) 12:02:29.13 ID:B/xf69WY.net
いやList#listIteratorつかおうよ

116 :デフォルトの名無しさん:2018/03/28(水) 13:23:01.36 ID:/IZ3VKI9.net
キューをwhileで処理するんがええんじゃなかろうかと

117 :デフォルトの名無しさん:2018/03/28(水) 19:27:30.32 ID:hR1N5KW+.net
>>114,116
もちろん自作してもいいし実現方法はいくらでもある話なんですけど
java8の拡張文で用意されてるクラス使ってきれいにかけないのかなとちょっと思っただけでした

118 :デフォルトの名無しさん:2018/03/29(木) 11:20:13.01 ID:QwxffFOd.net
Collecionから一致したデータを取り出すのってどうすればいいですか?

Stringをextendsして情報を追加したクラスのCollectionから
Stringで検索してデータを取り出したいんですけど
自作するしかないですか?

119 :デフォルトの名無しさん:2018/03/29(木) 12:35:43.41 ID:Zp+X1sFq.net
>>118
それHashMapは使えないの?KeyからValue引っ張り出すようなやつ。

120 :デフォルトの名無しさん:2018/03/29(木) 14:23:38.22 ID:QwxffFOd.net
>>119
やっぱりそうするしかないかな

その場合 HashMap の Key にも Value にも同じ文字列もつことになるのでデータの無駄な気がして…

String + Iformation だけのクラスにわけて Map でもつことも考えたけど
length とか charAt とか使うから結局中で文字列ももたないといけないんですよね

そこそこデータ数が多いので文字列をテーブルに2個もつのはさけたかった…

121 :デフォルトの名無しさん:2018/03/29(木) 17:22:09.18 ID:wUwtUNlx.net
>>120
文字列複数とはいってもStringのインスタンスは一つで二ヶ所から参照されるだけだからたいしてメモリ食わないのでは?

122 :デフォルトの名無しさん:2018/03/29(木) 17:45:33.63 ID:QwxffFOd.net
そうなんですね
じゃあMapで組みなおしてみます

ありがとうございました

123 :デフォルトの名無しさん:2018/03/29(木) 18:51:34.60 ID:yhEgq3Dh.net
文字列の内容が同じ時に必ず同じStringのインスタンスにしたい場合は String#intern() を使うと良い。

124 :デフォルトの名無しさん:2018/03/29(木) 19:16:34.30 ID:+yEHtKmw.net
拡張したStringクラス内でアップキャストして比較すればいけない?

125 :デフォルトの名無しさん:2018/03/29(木) 19:38:33.67 ID:LS3RTWy4.net
Stringって継承できるの?finalじゃなかった?
俺が古いのかな

126 :デフォルトの名無しさん:2018/03/29(木) 19:39:40.10 ID:vAfgGUZ/.net
研究でAIのチューニング用UIつくってるんですが
部品のレイアウトがうまくいかないです

最初の画面にはききたいことの入力欄だけあって

入力すると次のページに数件予想質問と結果を表示して
候補にあれば選択ボタン
なければ全部NGボタンをおしてから正解の答えを入力する

ってしたいんですが
どうしても部品が画面外にでたり重なったりします

FlowLayout BoxLayout setBounds指定とかいろいろためしたんですがうまくいきません
どこが悪いか教えていただけませんか

http://fast-uploader.com/file/7077868223948/
パス 1234
デバッグ用にGUI部分だけ抜き出してみたんですが…

127 :デフォルトの名無しさん:2018/03/29(木) 19:51:18.47 ID:eXpBCev1.net
finalだったわ
継承はできないな

128 :デフォルトの名無しさん:2018/03/29(木) 21:51:33.13 ID:eXpBCev1.net
>>126
74行目でFrame自体ののレイアウトをFlowLayoutにしてるのが主な原因

あとテキストボックスのwidthサイズが大きい

レイアウト関連は背景色とかつけると解決しやすい

129 :デフォルトの名無しさん:2018/03/29(木) 21:58:16.46 ID:eXpBCev1.net
ソース整形したから74行目じゃなかった
まぁその辺りでthisに対して突っ込んでるレイアウト設定が原因ってことで

130 :デフォルトの名無しさん:2018/03/30(金) 09:25:26.93 ID:bu98gf73.net
126です

アップしたのがたまたまそうなってただけで
レイアウトをいろいろ変更してみてるんですが全くうまくいかないです…

そもそもsetSizeがぜんぜんきいてないんですが
全部のパネルをsetLayout(null);
にしてもきかないのはなぜなんでしょうか

131 :デフォルトの名無しさん:2018/03/30(金) 13:02:53.26 ID:vz0AgFHK.net
これが参考になるかもしれません。
https://stackoverflow.com/questions/3692987/why-will-boxlayout-not-allow-me-to-change-the-width-of-a-jbutton-but-let-me-chan

132 :デフォルトの名無しさん:2018/03/30(金) 13:22:52.68 ID:bu98gf73.net
自己解決しました

setSize()はきかなくてsetPreferredSize(new Dimension())
を使えばサイズだけは反映するようになりました

位置の調整方法はわかりませんがとりあえずデフォルトレイアウトで
はみだしたり重ならず全部のパーツが表示されました

133 :デフォルトの名無しさん:2018/03/31(土) 07:53:45.76 ID:DDP7B6Z+.net
日時の文字列を生成するのに、DateFormatクラスとかを使えば標準的なフォーマットで出力されて
あと言語が変わっても大丈夫(自分でローカライズする必要がない)じゃないですか。

似たような感じで時間の長さ、例えば "2時間36分" をAPIで作れるといいと思っているのですが
そういうものはありますでしょうか。これが英語になると勝手に "2 hours 36 minutes" になるみたいな。

134 :デフォルトの名無しさん:2018/03/31(土) 10:01:25.54 ID:376M7ais.net
つDuration.parse

135 :デフォルトの名無しさん:2018/04/01(日) 18:17:02.75 ID:QRZAvcI4.net
>>134
どうもです。しかし最終的に普通の時刻の文字列をDurationのインスタンスから
生成する方法がわからないのですが... ??

Duration duration = Duration.parse("PT2H36M"); とかしたとして、
toString()も単に"PT2H36M"を返しますよね。
もしかして toHours() -> 2, minusHours(2).toMinutes() -> 36 とかでで2と36を取り出し、
その後これらから文字列をなんとか作るという話でしょうか?

経過時間の計算そのものでなく、時間と分の数値は最初から与えられたとして、経過時間
の文字列の生成を如何に楽に行うかに興味があるのですが...

136 :デフォルトの名無しさん:2018/04/05(木) 14:05:21.72 ID:MD4dwdXJ.net
XPにはJava8インストールできないの?

137 :デフォルトの名無しさん:2018/04/14(土) 11:08:12.71 ID:Z+3xnQ4k.net
デザインパターンをインターフェースから説明した良心的なブログ
途中で息切れしてるみたい??

https://blogs.yahoo.co.jp/kamyu_2010/35417803.html

138 :デフォルトの名無しさん:2018/04/23(月) 21:12:23.63 ID:Hmrq+5/s.net
だから?

139 :デフォルトの名無しさん:2018/04/24(火) 08:31:35.21 ID:zK8TVl/a.net
良心的なブログよりためになるブログが良い
デザインパターンを書き写しただけのゴミを見せられる
読者の立場にもなれ

140 :デフォルトの名無しさん:2018/04/24(火) 08:38:42.87 ID:aRpe9XKh.net
初心者向け解説ばかりの時代

141 :デフォルトの名無しさん:2018/04/24(火) 21:36:06.09 ID:0Hi7fk6J.net
>>142
で?

142 :デフォルトの名無しさん:2018/04/24(火) 22:44:47.72 ID:IYsMY8oH.net
>>141
え?オレ何か言ったっけ?

143 :デフォルトの名無しさん:2018/04/25(水) 00:58:24.44 ID:g4RvSF2y.net
つまらぬわ!

144 :デフォルトの名無しさん:2018/04/25(水) 08:46:24.05 ID:xbNGGQDl.net
>>144
せやね

145 :デフォルトの名無しさん:2018/04/25(水) 12:55:05.40 ID:aMC3Bhoy.net
>>144
面白くない奴の便乗なんて寒いだけだからやめとけ

146 :デフォルトの名無しさん:2018/05/06(日) 11:09:29.87 ID:PC9jam24.net
データベースに保存したいJavaのオブジェクトが大量にあるのですが
直列化ではコーディングやデバグにかかる時間がかかりすぎるので
もっと簡単に永続化できるライブラリかフレームワークなどはありますか

147 :デフォルトの名無しさん:2018/05/06(日) 11:13:54.12 ID:PC9jam24.net
オブジェクトが大量にあるというかオブジェクトの雛形になる
クラスが大量にあるということです

148 :デフォルトの名無しさん:2018/05/06(日) 11:51:06.89 ID:/6fg2Qhj.net
まず高速プリンターを用意します

149 :デフォルトの名無しさん:2018/05/06(日) 12:11:54.48 ID:yG5Sy7/7.net


150 :デフォルトの名無しさん:2018/05/06(日) 13:47:11.04 ID:XXaq/T45.net
>>146
ObjectOutputStreamのwriteObject()呼び出すだけなわけだが、
コーディングに時間が掛かるとか、もっと簡単にとはいったい?
ここに書いてない要望が他にもあるんじゃないの?

151 :デフォルトの名無しさん:2018/05/06(日) 14:33:54.08 ID:kuy66ISG.net
>>150
顧客が本当に欲しい物は、
クラスを指定したらシリアライズ処理を自動で吐き出してくれるプラグインとか
そういうものなんじゃないかね

152 :デフォルトの名無しさん:2018/05/06(日) 15:02:54.32 ID:i9j42Pj0.net
ここに質問するのが適切なのか悩ましいのですが…
OpenJDKは再頒布可能なのでしょうか?

個人の趣味で作ったアプリケーションに同梱して配布してよいのかな?と思い調べているところです。
自分でビルドしたOpenJDKなら再頒布可能、CentOSなどが公開しているOpenJDKは再頒布不可などあるのでしょうか。

153 :デフォルトの名無しさん:2018/05/06(日) 15:56:01.81 ID:Ba+o29Eu.net
ディレクトリ a にある a.jar のなかの A.class (package a)
ディレクトリ b にある b.jar のなかの B.class (パッケージ宣言なし)
を使ったディレクトリ c にある c.jar ってどうやって実行すればいいですか

はるか昔に作って昔は動いてたはずなんですけど実行の仕方がわからなくなりました

154 :デフォルトの名無しさん:2018/05/06(日) 16:09:20.09 ID:yRUrTeQA.net
>>150-151
対象となるクラスがあまりにも多くてreadObjectとwriteObjectを
いちいち宣言するのが面倒くさい上に
少しでも書き間違えたときにIDEが検出してくれないし
デシリアライズに失敗したときに原因となったクラスを特定するのが困難だしで
その辺の手間を楽をする方法を探していたんだけど
JAXBでXML化する方法を思いついたので自己解決しました

ありがとうございます

155 :デフォルトの名無しさん:2018/05/06(日) 17:01:33.93 ID:Bse1bLkg.net
>>153
その jar ファイルを全てクラスパスに指定すればいいのでは?
環境変数 CLASSPATH かコマンドラインで -cp (java -help の出力またはドキュメント参照)。

156 :デフォルトの名無しさん:2018/05/06(日) 18:35:06.08 ID:Ba+o29Eu.net
>>155
動きました
パスってディレクトリに通すものかとおもってたんですがjarファイル自体を指定するんですね
ありがとうございました

157 :デフォルトの名無しさん:2018/05/06(日) 19:08:09.02 ID:hMxfhnzD.net
>>156
.jarとか.zipはそれ自体がフォルダーみたいなもんだから

158 :デフォルトの名無しさん:2018/05/10(木) 16:22:03.34 ID:TnST3c7c.net
GatlingとかLoad Runner、JMETERの動作テスト、Javaのスレッドダンプ取得とかの練習をしたいと思ってます

そのターゲットとなるWebアプリを探してます

今のところFessという、Tomcat上で動いてるWebアプリは見つけました
他にオープンソースで、Javaでうごいていて、Gatlingなんかの練習に使えるWebアプリについて情報ほしいです
どんなものがありますか?

159 :デフォルトの名無しさん:2018/05/10(木) 17:36:39.17 ID:1aaKaop2.net
普通自作すんだろ

160 :デフォルトの名無しさん:2018/05/11(金) 09:01:56.54 ID:ou2CAaSI.net
tools.jarはLinux,Mac,Winで互換性がありますか?

161 :160:2018/05/11(金) 09:34:33.65 ID:ou2CAaSI.net
あるいは、JavaCompiler単体のjarか独自のJavaCompilerは公開されていますか?
Java9からアプリ側から利用できなくなったそうなので。

162 :デフォルトの名無しさん:2018/05/11(金) 09:57:35.61 ID:BZrCuED6.net
javax.swing.JPopupMenuを直接show()で表示させてます
問題はマウスをメニューアイテムの上に乗せても、クリックしても色が変転しない
設定で定義しないといけない事があるのでしょうか?

163 :デフォルトの名無しさん:2018/05/11(金) 13:18:37.00 ID:Kz4/xaqB.net
>>158
Githubで言語絞れば一発
今聞かれて俺が思いつくような有名なOSSって規模が大きかったり環境整えるのが厄介だったりするのが多いから、
簡単に動かせそうなしょぼいのを適当に自分で選んだほうがいい

164 :デフォルトの名無しさん:2018/05/12(土) 08:20:02.64 ID:gX8J6qxW.net
>>162
addMouseListenerで e.getComponent().setBackground(Color);
で反転するようになった

165 :デフォルトの名無しさん:2018/05/12(土) 10:58:22.92 ID:pDgCeBjY.net
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/

166 :デフォルトの名無しさん:2018/05/12(土) 12:02:34.73 ID:XqIGE8bt.net
Javaのデザインパターンのブログ(ヤフーブログ)・・・・なかなか良い。

https://blogs.yahoo.co.jp/kamyu_2010/35442561.html

167 :デフォルトの名無しさん:2018/05/12(土) 13:54:22.02 ID:UoMtV9Kh.net
          ∧_∧
    ∧_∧  (´<_`  ) また宣伝書き込み? 
うん ( ´_ゝ`) /   ⌒i
   /   \     | |
  /    / ̄ ̄ ̄ ̄/ |
__(__ニつ/  FMV  / .| .|____
    \/____/ (u ⊃

168 :デフォルトの名無しさん:2018/05/23(水) 19:25:05.40 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

0XZ3H

169 :デフォルトの名無しさん:2018/05/23(水) 19:53:26.57 ID:iVq3rLr7.net
          ∧_∧
    ∧_∧  (´<_`  ) 儲かるなら自分でやればいいじゃんな。 
うん ( ´_ゝ`) /   ⌒i
   /   \     | |
  /    / ̄ ̄ ̄ ̄/ |
__(__ニつ/  FMV  / .| .|____
    \/____/ (u ⊃

170 :デフォルトの名無しさん:2018/05/24(木) 05:14:55.03 ID:iSd0paxF.net
https://ideone.com/fOelKc
除数が変数の%演算子がなんか遅かったからこんなん作ったんだが、もうちょっと速くならんかな?

被除数の範囲は0以上Long.MAX_VALUE以下、
除数は16ビットくらいまでの範囲が使えて速ければよす


うちの環境だとマイクロベンチで4倍
実際に組み込んで全体の速度が2倍くらいにはなったんだが (とボトルネックをいじってるよアピールw

171 :デフォルトの名無しさん:2018/05/24(木) 20:56:47.08 ID:iSd0paxF.net
ideoneでパラレルストリーム使えない・・・?
https://ideone.com/YpKyd3

paizaは普通に使える
https://paiza.io/projects/bgjMxfyxPJmc3vxGYiH8ug

172 :デフォルトの名無しさん:2018/05/25(金) 10:54:04.75 ID:Sw3LTZE2.net
>>171
ideoneはメインスレッド含めて8スレッド(論理コア分)アクティブになるとダメっぽい
んで、パラレルストリームで使われる共通ForkJoinPoolが論理コア-1個スレッドを起動するから、
メインスレッドと合わせて論理コア分アクティブになってアウト

スレッドプールの数を6でForkJoinPoolを作ってそれを使ってStream動かせば大丈夫っぽい…めんどくせw

173 :デフォルトの名無しさん:2018/05/28(月) 17:05:15.50 ID:ykC4rFCg.net
記述がFXで申し訳ないのですが、ご教授宜しくお願いします

ttp://i.imgur.com/T6CUOxA.jpg

A面は↓の回転値でいけるかと思うのですが
B面の回転ってどのように指定すればいいのでしょうか?
色々値を変えてみたのですがなかなか上手くいかず…

//画像
Image img = new Image( new File("ファイル.png").toURI().toString() );
ImageView imgv = new ImageView( img );
imgv.setTranslateX( 70 ); imgv.setTranslateY( 1300 ); imgv.setTranslateZ( -48 );

//回転
imgv.setRotationAxis( new Point3D( 1.0, 0.0, 0.0 ) );
imgv.setRotate( 90.0 );

174 :デフォルトの名無しさん:2018/05/29(火) 17:30:52.67 ID:/gnVbstm.net
一晩寝たら自己解決しました

175 :デフォルトの名無しさん:2018/05/29(火) 17:36:59.04 ID:jtMR10Pr.net
よろしい

176 :デフォルトの名無しさん:2018/05/29(火) 19:26:49.25 ID:cb/igs7S.net
寝ることは重要だな

177 :デフォルトの名無しさん:2018/05/29(火) 21:00:56.09 ID:YUEvTtOX.net
乗り物にのる、トイレに行くも

178 :デフォルトの名無しさん:2018/05/31(木) 09:29:18.82 ID:P1af5ns+.net
プログラムの中でswingによるGUIを表示させ、ユーザにラジオボタン・リストから値を選択してもらい、その値を後続の処理に使用したいと思ってるんですが
GUI表示してそのまま後続の処理が続いてしまいます
表示した時点で処理を停止させ、ユーザが値を選択してOKボタンを押したら処理が再開するようにすることはできますか?

179 :デフォルトの名無しさん:2018/05/31(木) 09:50:40.39 ID:v2P/wDLY.net
ESP、ESP、ESP

180 :デフォルトの名無しさん:2018/05/31(木) 11:35:44.34 ID:qv6ph+UR.net
どういう処理にしてるかわからないから正確なアドバイスは出来ないけど
guiの変更イベントで処理すれば出来るんじゃない?

181 :デフォルトの名無しさん:2018/05/31(木) 12:34:12.85 ID:1EOK+kFV.net
GUIプログラムはパネルを表示したらループ状態を続ける
処理は各コンポーネントのリスナーにどう処理するかを登録して
ボタンやリストを選択したら登録されてる処理を実行する
ボタンならaddActionListenerを使うんじゃないの

182 :デフォルトの名無しさん:2018/05/31(木) 13:23:37.92 ID:XsftK6MO.net
>>178
それいわゆるダイアログってやつだよね。

183 :デフォルトの名無しさん:2018/06/01(金) 12:00:41.25 ID:SFIgpc6j.net
>>178
JDialogを継承したクラスで作る。
コンストラクタで modal を true にするか modlity type をブロックするやつにする。
更に OK ボタン等が押されてダイアログを閉じるときは dispose() するように書く。
その他ラジオボタンなど必要なものを配置し、内容を外部から取得可能にするためにgetterを作っておく。

このダイアログをsetVisible(true)するとdispose()されるまで帰ってこない。
帰ってきたらgetterを通して内容を読む。

184 :デフォルトの名無しさん:2018/06/01(金) 16:28:58.34 ID:4jGKb4xs.net
はぇ〜
JFrameじゃないヤツ使うんですね
ありがとございます

185 :デフォルトの名無しさん:2018/06/02(土) 16:27:10.30 ID:49Aq679E.net
ラジオボタンじゃなくても良いのなら JOptionPane を使うという手もある。
これだと showInputDialog() や showOptionDialog() を使えば複数項目から選択して一つ入力するダイアログになる。
自分でダイアログ作る必要がない。
https://www.javadrive.jp/tutorial/joptionpane/index12.html
https://www.javadrive.jp/tutorial/joptionpane/index13.html

186 :デフォルトの名無しさん:2018/06/03(日) 20:18:35.08 ID:3rEkE1iw.net
今アプレット動く環境ってありますか?
IEだけはサポートされてるみたいなんですけど
昔動いたはずのアプレットタグとjarをおいてもなぜか動かないんですよね
IEでアプレット動かしたときのエラーメッセージの見方もわかれば教えてほしいです

187 :デフォルトの名無しさん:2018/06/03(日) 21:06:43.44 ID:m3SIxw/I.net
>>186
何故かうごかないって、ブラウザは?
そしてそのブラウザにプラグインはインストールされている?
単にされてないだけでは?もちろんそのブラウザ用のプラグインが今は開発されてないってこともあり得るが。

188 :デフォルトの名無しさん:2018/06/03(日) 23:44:08.17 ID:3rEkE1iw.net
>>187
Windows7 IE8 でツール インターネットオプションのなかに
アプレット有効にするってのにチャックはいってます
アプレットページひょうじすると表示領域の枠はでてるんですけど左上に赤い×マークがでてます

これプラグインがよみこめてないんでしょうか
アプレットの中のエラーで落ちてるんでしょうか

189 :デフォルトの名無しさん:2018/06/04(月) 00:50:30.53 ID:fspoOmUI.net
その×にマウスカーソルを持って行ってクリックすると何か出ない?

190 :デフォルトの名無しさん:2018/06/04(月) 19:58:49.32 ID:Mxq+Oh0H.net
何も反応ないですね

191 :デフォルトの名無しさん:2018/06/04(月) 20:36:43.25 ID:a6R/84He.net
X<-mouse

192 :デフォルトの名無しさん:2018/06/04(月) 22:24:19.20 ID:AidiJH9V.net
7か8か忘れたけど結構前から証明書必須になったし
9で非推奨、11で削除されるぞ。

jnlp出てからsunがずっとjnlp使えと言い続けてたんだから
jnlp(実装はweb start)使え。

193 :デフォルトの名無しさん:2018/06/05(火) 01:07:27.61 ID:6uzbBGLs.net
どうやって作ればいいんですか?
HelloWorld的なサンプルコードってあったりしますか?

194 :デフォルトの名無しさん:2018/06/05(火) 01:49:45.76 ID:6uzbBGLs.net
調べて jnlp ファイルっていうのかいてみたけどセキュリティどうこうで動かないみたいです

同じサーバー内にあるデータを読んで表示して
処理した結果をCGIに送って保存するみたいなアプレットだったんですけど
URLのOpenStreamの読み書きもセキュリティ的にアウトな感じなんでしょうか

昔かいたプログラムが実務で使えそうだったので
うまくウェブアプリとして動いてくれればよかったんですが
長いことJavaさわってなかったせいで分からないことだらけで時間ばかりかかってまったく進まない

おとなしく javascript でかきなおしたほうがよさそうですね…

15年前はこれからのウェブはアプレットの時代だとかいって大学でもアプレット教えてたし
当時作ったコードが全部再利用すらできないゴミになったかと思うと憂鬱だ

195 :デフォルトの名無しさん:2018/06/05(火) 03:44:17.72 ID:HABwZRW3.net
javaScriptで書き直したコードも15年後にはゴミになってると思うよ

196 :デフォルトの名無しさん:2018/06/06(水) 23:02:07.48 ID:c8dAN/Mm.net
アプレットどころか、今やJRE自体が一般ピープルのPCにとってはウィルス扱いだぞ
JavaFXも事実上廃止されてJavaを簡単にアプリにバンドルする方法も無くなり、クライアントは完全に終わった

197 :デフォルトの名無しさん:2018/06/07(木) 00:11:58.98 ID:23ZUqsYw.net
「JavaFXも事実上廃止」ってどゆこと?

198 :デフォルトの名無しさん:2018/06/07(木) 03:27:56.30 ID:VEx/11mP.net
Oracleがバンドルしなくなる。
フルーソフトだからなくなりはしないだろうけどね。

199 :デフォルトの名無しさん:2018/06/07(木) 03:28:26.90 ID:VEx/11mP.net
うはw 変な編集ミスしたw

200 :デフォルトの名無しさん:2018/06/07(木) 06:34:03.30 ID:zhEE1GLq.net
JavaFXどうなっちゃうんだろうな
OpenJDK11と一緒にopen-jfx11のバイナリもリリースしてくれるといいが

現状もLinuxディストリビューションのいくつかはopen-jfcパッケージ提供してるけど
Windows用の権威あるopen-jfxバイナリなくて不便なんだよね
Windows用にもopen-jfxの野良バイナリがいくつかあるようだけど

201 :デフォルトの名無しさん:2018/06/07(木) 09:18:14.94 ID:6qWq6S5o.net
権威のある君が作れば良い

202 :デフォルトの名無しさん:2018/06/07(木) 17:57:57.97 ID:G8YxR6Qt.net
それもそうだな!

203 :デフォルトの名無しさん:2018/06/07(木) 20:12:42.53 ID:E34l5tNQ.net
頑張れ

204 :デフォルトの名無しさん:2018/06/08(金) 01:33:25.23 ID:xsX40G/R.net
ここでいいのかよくわからないのですが教えて下さい。

AndroidでSDカードのフォルダが
/storage/47D2-1300
みたいに表示されます。
この場合、
47D2-1300
は、このSDカード固有の番号で、他のAndroid機に刺しても
47D2-1300
のように表示されるのでしょうか?

205 :デフォルトの名無しさん:2018/06/08(金) 03:31:28.12 ID:rrKZq6Yq.net
ブラウザ上でJava起動する方法ってもうないの?

206 :デフォルトの名無しさん:2018/06/08(金) 03:57:47.64 ID:xsX40G/R.net
そういうのは、Javaスクリプトっていうんじゃないの?

207 :デフォルトの名無しさん:2018/06/08(金) 06:43:18.81 ID:dTeFfRCY.net
Java アプレットか

ここ10年は、聞かないな

208 :デフォルトの名無しさん:2018/06/08(金) 07:09:41.59 ID:uSJSyiA7.net
on error goto みたいなの無いの? そのルーチン内ならどこでエラー発生してエラー処理に向かう、みたいな
それともtrycatchに全部入れちゃう?

209 :デフォルトの名無しさん:2018/06/08(金) 08:13:31.47 ID:/bqVuVHr.net
>>206
JavaとJavaScriptは全く別のものだ。

210 :デフォルトの名無しさん:2018/06/08(金) 08:18:34.82 ID:/bqVuVHr.net
>>208
そう。

それかメソッドに throws Exception 付けておくかかな。するとそのメソッド内で例外発生すると呼び出し側に帰って例外処理になる。

211 :デフォルトの名無しさん:2018/06/08(金) 08:23:59.92 ID:BDVSM83M.net
On Error Gotoはtry catchで代用できるけど
On Error Goto + Resume Nextの代用がないだよね
1ステートメントごとにtry catch書かにゃならん

212 :デフォルトの名無しさん:2018/06/08(金) 10:38:05.74 ID:oMLODkzi.net
>>204
スレチ

213 :デフォルトの名無しさん:2018/06/08(金) 11:28:05.06 ID:1PlqYTvd.net
>>204
そんなもんは知らん。機種によってマウントされるディレクトリは違うのでは?

214 :デフォルトの名無しさん:2018/06/08(金) 13:10:14.04 ID:OTaRl1LS.net
>>204
Androidのジャヴァモドキは正規のライセンスを受けていない違法な海賊版なんだよ
JavaスレでAndroidの質問をするのはバカが違法ダウンロードを自慢するようなもの

215 :デフォルトの名無しさん:2018/06/08(金) 13:33:32.61 ID:1PlqYTvd.net
>>214
JavaVMって独自に作っちゃいけないんだっけ?

216 :デフォルトの名無しさん:2018/06/08(金) 13:34:45.49 ID:2yGpvne7.net
>>215
いけない

217 :デフォルトの名無しさん:2018/06/08(金) 13:37:08.24 ID:1PlqYTvd.net
>>216
それはどういう法律に反するのか?

218 :デフォルトの名無しさん:2018/06/08(金) 13:38:29.60 ID:2yGpvne7.net
>>217
オラクルさんによると特許侵害と著作権侵害

219 :デフォルトの名無しさん:2018/06/08(金) 13:46:03.43 ID:1PlqYTvd.net
>>218
同じ動きをする全く別のプログラムは著作権の問題はないよな?もしこれにあったら OpenJDK もあり得ないわけだし。
特許はどこにあるのか?それとその特許は OpenJDK の方では避けられているのか?

220 :デフォルトの名無しさん:2018/06/08(金) 15:16:14.07 ID:2yGpvne7.net
>>219
避けられてないよ
あくまで「OracleがリリースしたOpenJDK」に対して特許の利用が認められている
OpenJDKを勝手に弄って配布したら特許侵害

221 :デフォルトの名無しさん:2018/06/08(金) 16:29:34.75 ID:xsX40G/R.net
プログラミングではないのですが教えて下さい。

Androidのアプリで、
マップルという地図ソフトがあります。
起動後、地図データへのパスを求められます。
大容量の地図データなのでSDカードへ入れます。
と、そのパスの形式が
/storage/47D2-1300
みたいな感じで、
SDカード固有の数字で、「数字4桁-数字4桁」のディレクトリを調べないといけないのです。
「数字4桁-数字4桁」を調べるにはどうすればいいのでしょうか?

222 :204:2018/06/08(金) 16:32:38.13 ID:xsX40G/R.net
↑、失礼、間違えた。
Androidスレで改めて質問し直します。

>>212-214
どうもでした。

223 :デフォルトの名無しさん:2018/06/08(金) 17:26:47.40 ID:Ayrw+LdJ.net
すいません jar の作り方がよくわからないので教えてください

packege util の Util.class が
util/uti.jar にはいっていて

それを使っているメインプログラムがパッケージなしで

main / Main.java

にあるんですがダブルクリックするだけで動く jar を作るにはどうしたらいいんでしょうか

224 :デフォルトの名無しさん:2018/06/08(金) 17:46:45.50 ID:rAAW+Mj8.net
GGRKS

225 :デフォルトの名無しさん:2018/06/08(金) 18:07:30.25 ID:BDVSM83M.net
>>219
そうなのか?
OpenJDKはGPLだろ?
GPLに従う限り二次派生の作成も配布も問題ないはずだ
OpenJDKというJava実装はオープンで公開していながら
Googleに対してはJavaのAPIはOracleの著作だからお金払ってね♡
ってわけがわからないよ

226 :デフォルトの名無しさん:2018/06/08(金) 18:15:27.87 ID:iLNCpvye.net
>>221
目的も書いたほうがいいと思うよ。

↓で解決するんじゃないの?
https://stackoverflow.com/questions/3348643/how-to-read-the-sd-card-id-number

227 :デフォルトの名無しさん:2018/06/08(金) 18:33:06.83 ID:Ayrw+LdJ.net
>>224
ぐぐっていろいろ変えてみてるんですけどうまくいかないんです

作ったフォルダの中でダブルクリックすると動くんですが
他のフォルダにうつすと動かなくなって
メインクラスがロードできないっていわれます

jarの作り方の記事自体はたくさんでてくるんですが
他のjarに依存する場合の書き方があまりでてこなくて
MANIFESTにクラスパスをかけばうまくいきそうなのにかいてもうまくいかなくて困ってます

228 :デフォルトの名無しさん:2018/06/08(金) 20:22:18.43 ID:tnZm4LxR.net
>>224 ググれクスに見えるな。やっぱ、ググレカスの場合は小文字じゃないとな。

229 :デフォルトの名無しさん:2018/06/08(金) 20:29:27.65 ID:pdRgGEa3.net
>>227
MANIFESTの仕様見たか、素人には無理かもね

230 :デフォルトの名無しさん:2018/06/08(金) 20:41:54.79 ID:TV1o73xX.net
>>221
ファイルマネージャとかでSDカード内を確認してフルパス取得すれば済む話じゃないの?

231 :デフォルトの名無しさん:2018/06/08(金) 21:37:01.47 ID:uQFFSCdV.net
>>220
あれは GPL だけど特許はそのままのものなのか?

232 :デフォルトの名無しさん:2018/06/08(金) 21:43:47.18 ID:LHC1uZZ8.net
>>220
ひょっとしてGPL知らんのか?
改編不可なんてポリシー上あり得ないんだが w

233 :デフォルトの名無しさん:2018/06/08(金) 21:56:44.25 ID:uQFFSCdV.net
訴訟についてはこれか。

OracleとGoogleのJava著作権侵犯裁判の現状を知る(2018年版)
http://www.orangeitems.com/entry/2018/03/28/173616

234 :デフォルトの名無しさん:2018/06/08(金) 23:41:54.50 ID:2yGpvne7.net
>>232
GPLv2はあくまで著作権の利用許諾でしかなく、特許の利用について何も保証しない。
GPLソフトウェアを使った者を特許侵害で訴えることは普通に可能。
その問題を解決することを意図して特許までカバーしたGPLv3ができたんだけど、OpenJDKは残念ながらv2だ。
理由はもちろんそういうこと。

235 :デフォルトの名無しさん:2018/06/08(金) 23:48:44.16 ID:Ayrw+LdJ.net
お願いします  どなたか助けてください 課題の提出期限がすぎそうです;;

原因きりわけのために使ってるjarと同じ階層構造の
以下のような最小セット構成でコンパイルしてるんですがjarにすると動きません

a/A.class (packege a)
b/B.class (パッケージなし) ソースをみると import a.* を使ってる
Main.java 今回つくったプログラムでパッケージ宣言なし B を使用

> javac -cp .;b Main.java でコンパイルは通る
> java -cp .;b Main → 動く

---MANIFEST.MF---
Manifest-Version: 1.0
Class-Path: . b
Created-By: 1.8.0 (Oracle Corporation)
Main-Class: Main

> jar cvmf META-INF/MANIFEST.MF main.jar *.class a b でjarを作成
> java -jar main.jar でも > java -cp .;b -jar main.jar でも
Exception in thread "main" java.lang.NoClassDefFoundError: B
というエラーが出ます

クラスファイルの状態だと動くのにjarにすると動かない原因がどうしても分かりません
MANIFESTをかくのがはじめてなので根本的に何か間違ってる気もするんですが
Class-Path の書き方は何度もぐぐってスペースあけて並べるとあったんですがためしに .;b にしてもダメでした
解凍する前にb.jarをクラスパスで指定してたときは同じフォルダ内であれば動いたことがあったのですが
今は同じフォルダ内でも動きません

http://fast-uploader.com/file/7084024397219/
最小セットにしたファイル一式です

236 :デフォルトの名無しさん:2018/06/09(土) 00:15:06.79 ID:dWoOad5I.net
「java exception in thread main java.lang.noclassdeffounderror」で検索!

一言一句正確なエラーメッセージで検索するのが、基本!

237 :デフォルトの名無しさん:2018/06/09(土) 00:24:38.54 ID:AVDHrvoe.net
>>236
もう何か芋検索しているんですが原因はパスとおってないってことしかでてこないです
実際そうなんだと思うんですがjarを作るのがはじめてで何が足りないのかがさっぱりわかりません

MANIFESTにかくのと 実行時 cp オプションをかく意外に何か必要なんでしょうか
あるいは指定の書き方が間違っているのでしょうか
スペルミスなんかは何度も確認しているんですが…

もう課題の提出期限すぎちゃったのでわかりませんでしたってかいてレポートかいちゃいましたが
今後のためにも知っておきたいなと

238 : :2018/06/09(土) 00:50:21.88 ID:BV3WmSRm.net
>>234
>GPLソフトウェアを使った者を特許侵害
GPL は「特許」ではなく著作権の方だと思うのですが

239 :デフォルトの名無しさん:2018/06/09(土) 02:02:10.81 ID:ljDu8qs0.net
>>238
そうだよ
だから著作権の使用はGPLに従うことで許諾されるけど特許は関係ない

240 :デフォルトの名無しさん:2018/06/09(土) 05:21:33.40 ID:uYb8xFM5.net
>>235
Class-Path の所の b を b/ にするとどうなる?

241 :デフォルトの名無しさん:2018/06/09(土) 05:40:26.23 ID:AVDHrvoe.net
>>240
同じフォルダ内であれば動くようになりました
最後に / つけるだけでかわるんですね

ただやはり別のフォルダにうつすとスタンドアロンでは動かないみたいです
ためしにクラスを消去してみるとアーカイブに入ってるはずなのに同じフォルダでも動かなくなります

>javac -cp .;b Main.java

>jar cvmf META-INF\MANIFEST.MF main.jar *.java *.class a\*.java a\*.class b\*.class b\*.java
マニフェストが追加されました
Main.javaを追加中です(入=83)(出=72)(13%収縮されました)
Main.classを追加中です(入=281)(出=214)(23%収縮されました)
a/A.javaを追加中です(入=106)(出=95)(10%収縮されました)
a/A.classを追加中です(入=381)(出=272)(28%収縮されました)
b/B.classを追加中です(入=249)(出=191)(23%収縮されました)
b/B.javaを追加中です(入=79)(出=68)(13%収縮されました)

>java -jar main.jar
Hello World

>del *.class a\*.class b\*.class

>java -jar main.jar
Exception in thread "main" java.lang.NoClassDefFoundError: B
at Main.main(Main.java:3)


http://fast-uploader.com/file/7084045860348/ (パス jartest)

242 :デフォルトの名無しさん:2018/06/09(土) 10:09:51.63 ID:Naz/3W/N.net
>>241
なるほど、そうすると
MANIFEST.MFのClass-Pathはjar内のパスを指定するものではなくて
jarの外のパスを指定するものだってことになるかと
jar内のパスはあくまでもpackageでやりましょうということなんじゃないかな

243 :デフォルトの名無しさん:2018/06/09(土) 10:24:49.37 ID:Naz/3W/N.net
packageはディレクトリで示されるのでデフォルトパッケージのB.classが
b/の下にあるのがおかしいのでしょうね

244 :デフォルトの名無しさん:2018/06/09(土) 15:10:59.27 ID:AVDHrvoe.net
>>242,243
わああ うごきました!!!!!

パッケージがついてないソースを全部同じフォルダに展開しただけで動くようになりました
コンパイルにパスの指定も必要なくなったし
パッケージ構成とフォルダ構成をあわせる必要があったんですね

課題用に配られたソースだったので自分で描いたコードと分けておいた方がいいのかなと思ったんですが
そのせいでまる1日どはまりしてしまった

教えていただいてありがとうございました
ほんとに助かりました

245 :デフォルトの名無しさん:2018/06/09(土) 22:39:02.82 ID:ExnJNgW8.net
クラスパスに指定するjarの扱いはディレクトリのようなもんなんだよ。
main.jar内にb/B.classが入っていて、デフォルトパッケージのBってクラスを
使いたいんだったら、kラスパスは main.jar:b (正確な書き方は忘れた)
みたいに書かないとダメなんだよ。

246 :デフォルトの名無しさん:2018/06/09(土) 23:22:00.71 ID:dWoOad5I.net
>パッケージ構成とフォルダ構成をあわせる必要があったんですね

入門書にも書いてあるのに、説明書を読まずにやっているから出来ない。
プログラミングのほとんどは、説明書を読むかどうかだけ

読まない人は、出来ない

学校の勉強と同じ。
教科書を読まない人は、出来ない

247 :デフォルトの名無しさん:2018/06/09(土) 23:28:53.67 ID:AVDHrvoe.net
まだ学生なのでそんなに本にお金かけたりできないんですけど
もしお勧めの本があったら紹介していただけませんか?

パッケージを作るときにフォルダ構成をあわせるのは知ってましたが
a/A.java の構成はそうなってる

他の人が作ったパッケージ宣言されてないソースを使うときに
トップディレクトリに展開しないとjarにはできないとは思わなかったので…

ディレクトリとパッケージを合わせることが自然なことは本にかかれてるかもしれませんが
他に方法がないというのはそう自明なことではないと思います

248 :デフォルトの名無しさん:2018/06/09(土) 23:36:10.70 ID:K+9PZeFb.net
調べ方をしらねーだけなんだからカリカリすんなよ
本を読むだけでできるようになるんなら職業プログラマなんかいらねーんだよ

249 :デフォルトの名無しさん:2018/06/09(土) 23:52:15.00 ID:MhKfyDgC.net
>>247
俺はJavaは知らないのだけど、一般的な方法を。

> 課題用に配られたソースだったので自分で描いたコードと分けておいた方がいいのかなと思ったんですが
> そのせいでまる1日どはまりしてしまった

これは割とよくあるパターンで、

・環境の立ち上げは、基本的に 『かなり詳しくないと』 はまる
・環境ではまったら、初心者だけで復旧は不可能

だから、自分が初心者だと分かっているうちは、出来るだけ環境問題に遭遇しないようにするのが基本。
つまり、

・与えられたソースをその場で改変する
・元ソースと比較したい場合、元ソースを ***.org とかいう風にしてコピーしておく
 (元環境と同じファイル名/ディレクトリ構造でコンパイル出来る状態で編集する
 =元ソースはファイル名そのままで編集する。あくまでコピーを別名で持つ)
・インストール時にデフォのパスがあるのなら、つべこべ考えずそのままそこにインストールする

てな感じ。
俺は本を読む前に味見するのも良いことだと思うぜ。
そして上記の通り、地雷を避ける方法も知っておけばいいだけだ。

250 :デフォルトの名無しさん:2018/06/10(日) 01:00:23.21 ID:ucpSsdvT.net
>>247
技術習得中はどれが問題解決に必要な情報なのかわからないんだからあまり気にしなくていい
むしろ問題解決に必要な情報が出せれてるから問題ない
最近はそれがなかなかできないやつが多いからなぁ

んで、お金がないから本を変えないつーことならちょい難易度高いが教科書+公式ドキュメント+サンプルっぽいソース探すのがおすすめ

251 :デフォルトの名無しさん:2018/06/10(日) 04:48:20.36 ID:n5chgHA2.net
Java の定本は、
スッキリわかる Java入門 第2版、2014

基本はエラーメッセージで検索して、自分で調べること。
それでもわからないなら、ここで聞く

252 :デフォルトの名無しさん:2018/06/10(日) 11:22:51.08 ID:9LY18awe.net
>>251
マ板の35歳がそれ読んで荒らしに来るから紹介は控えて欲しい

253 :デフォルトの名無しさん:2018/06/10(日) 12:06:59.34 ID:IhVDvYTT.net
スッキリ厨は話を聞かないことで有名だからなあ

254 :デフォルトの名無しさん:2018/06/10(日) 12:26:24.21 ID:5WgF/CDS.net
こいつAIだからね

255 :デフォルトの名無しさん:2018/06/10(日) 12:46:21.18 ID:Jwj29J+R.net
インスタンスの配列定義について教えてください

@とAはどう違うのでしょか?

(1行目のカッコの位置です)

@カッコが左のAnimalにある
Animal[] vc = new Animal[2];
vc[0] = new Animal();
vc[0].name = "neko";
vc[0].age = 5;
・・・・

Aカッコが左の変数にある
Animal vc[] = new Animal[2];
vc[0] = new Animal();
vc[0].name = "neko";
vc[0].age = 5;
・・・・

上記2つでコンパイルエラーになりません。
違いはなんですか?

256 :デフォルトの名無しさん:2018/06/10(日) 13:08:57.02 ID:5WgF/CDS.net
>>255
同じ
AはC言語に慣れた人のための書き方で、意味的には完全に間違っている
使った瞬間バカ認定されるから絶対に使ってはいけない
今すぐ忘れていい

257 :デフォルトの名無しさん:2018/06/10(日) 13:19:30.60 ID:Jwj29J+R.net
>>256
教授が使っていたので、びっくりしました。
ありがとうございました。

258 :デフォルトの名無しさん:2018/06/11(月) 02:02:24.99 ID:jMVvjS0U.net
>>256
意味的に完全に間違ってる?
文法上許されてるし何の問題もないと思うが?

259 :デフォルトの名無しさん:2018/06/11(月) 02:11:29.76 ID:dheNLGIF.net
>>258
例えばメソッド名の先頭が小文字でもコンパイルは通るから何の問題もないと考える人?

260 :デフォルトの名無しさん:2018/06/11(月) 02:11:56.91 ID:dheNLGIF.net
間違えた
メソッド名の先頭が大文字でも、ね

261 :デフォルトの名無しさん:2018/06/11(月) 02:54:29.89 ID:MB0XDzKq.net
>>259
ああ。文法上は問題なかろう。慣習には反するかも知れないが間違いではない。

262 :デフォルトの名無しさん:2018/06/11(月) 08:24:25.82 ID:2EYG9KU5.net
>>258
Animal配列型の変数vcだから
Animal型の配列変数vcという書き方は良くないという話だよ

そもそも配列変数なんてものは存在しないからね
シンタックスシュガーでC風の書き方ができるだけ
この構文を積極的に使う理由なんてないよ

263 :デフォルトの名無しさん:2018/06/11(月) 09:20:40.77 ID:318FxA/J.net
>>262
良し悪しは君の宗教の問題だよね。

264 :デフォルトの名無しさん:2018/06/11(月) 09:44:57.19 ID:dHlcwcTY.net
おましゅうw

265 :デフォルトの名無しさん:2018/06/11(月) 13:07:23.49 ID:UTAA5EZY.net
var vc:Array<Animal>

Haxe では、
var 変数名:型

266 :デフォルトの名無しさん:2018/06/11(月) 13:12:24.89 ID:NAfddAYi.net
だから?

267 :デフォルトの名無しさん:2018/06/12(火) 06:53:24.64 ID:aW1GuOgP.net
Javaでチャートを表示したくて
javafx.scene.chart.LineChart ってのをはじめて使ったんですけど
これアニメーションで使うにはどうすればいいんでしょうか

Scene scene = new Scene(lineChart,800,600);
stage.setScene(scene);
stage.show();

でグラフが表示されるんですが
そのあとで

try { Thread.sleep(2000); } catch(Exception e) {}
//データ更新
stage.show();

をやったところスリープ中に何も表示されず最後のデータだけが表示されます

あるいはJavaFXではなくawtパネルや
単にImageを生成するようなライブラリがあったら教えていただけると助かります

268 :デフォルトの名無しさん:2018/06/12(火) 23:10:11.67 ID:Ci7qqtSg.net
>>267
意味がわからん。

なんでこれでアニメーションされると思ったのかと何がしたいのか具体的に説明してくれ。
> try { Thread.sleep(2000); } catch(Exception e) {}
> //データ更新
> stage.show();

269 :デフォルトの名無しさん:2018/06/12(火) 23:49:25.09 ID:v+Py2umn.net
>>268
気持ちはわかるだろ
なんでできないのかもったいぶらず教えてやれよ

270 :デフォルトの名無しさん:2018/06/13(水) 01:20:05.91 ID:kTav0878.net
>>268
マイク入力をよんでスペクトルをリアルタイムで表示するようなのを作りたくて

while() {
 // 音声ラインから一定サイズよみこみ
// フーリエ変換
 // グラフ表示更新
}

みたいなプログラムをかいたんですがグラフがまったく変化しなくて
原因を追究して >>267 みたいなプログラム内でブロックするような処理があっても
それが終わるまでグラフが一切表示されないのが原因みたいです

スレッドをわけてみたりもしたんですけどよくわからないエラーが出たりでうまくいかなくて
JavaFXで検索もしてみたんですが表示して終わりばかりで表示更新を扱ってるブログも少なくて困ってました

271 :デフォルトの名無しさん:2018/06/13(水) 07:01:52.40 ID:VFl3aAKI.net
java8でメモリリークを強制的に発生させる良い方法ってありますか?
Webシステムでリークが発生している場合のヒープサイズの変化を
明示的に出したいです。

272 :デフォルトの名無しさん:2018/06/13(水) 07:46:18.02 ID:Y8lO4wwX.net
static ArrayList<byte[]> leak = new ArrayList<>();
while (true) leak.add(new byte[1000000]);

273 :デフォルトの名無しさん:2018/06/13(水) 15:36:01.51 ID:GZrsiOY9.net
リークっていうか、とにかくメモリ使ってどこかから参照されっぱなしになればいいだけだよな。

274 :デフォルトの名無しさん:2018/06/13(水) 18:36:45.27 ID:2UGtKAD3.net
数スレ前にもJavaFXで画面更新したいって質問あったけどまともなレスついてなかったし
誰も使ってないんだろうなー

自分もサーバーサイドばっかりでGUIとか数年かいてないわ

275 :デフォルトの名無しさん:2018/06/13(水) 18:54:23.13 ID:WGknwRIf.net
もうJavaFXはJavaの一部ではなく単なる野良ソフトウェアの一つだしな
初心者なら今からクライアントJavaに手を出すなんて時間の無駄だからやめた方がいい
煽りでも何でもなく、公式に完全に終わってる

276 :デフォルトの名無しさん:2018/06/13(水) 21:13:38.37 ID:JYmIyEqB.net
Androidアプリがあるんだよなー

277 :デフォルトの名無しさん:2018/06/13(水) 21:33:45.35 ID:e5+CMljH.net
だな

278 :デフォルトの名無しさん:2018/06/13(水) 21:40:10.81 ID:4ZMiG1ZW.net
だね

279 :デフォルトの名無しさん:2018/06/14(木) 00:42:43.69 ID:/66BxFoU.net
Kotolin

280 :デフォルトの名無しさん:2018/06/14(木) 01:45:12.12 ID:irmUauXJ.net
Javaの文法でwidowsライクなアプリ作れるから俺はSWT一択だね(キリッ

281 :デフォルトの名無しさん:2018/06/14(木) 01:55:14.23 ID:+qJR6f8p.net
>>270
わかった。
> try { Thread.sleep(2000); } catch(Exception e) {}
> //データ更新
> stage.show();
とは全然関係ないのな。

自分で言ってる以下のループの中身を...
>while() {
> // 音声ラインから一定サイズよみこみ
>// フーリエ変換
> // グラフ表示更新
>}
javafx.animationでやればいい。
これでも読んどけ。
ttps://docs.oracle.com/javase/jp/8/javafx/visual-effects-tutorial/animations.htm#JFXTE149
ttps://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/bar-chart.htm

>>271
ファントム参照の中身をルートから辿れるところに
参照させればリークできるけど本当に開放する手段ないぞ。

282 :デフォルトの名無しさん:2018/06/14(木) 08:25:26.24 ID:34zOJI5o.net
親言語か?

283 :デフォルトの名無しさん:2018/06/14(木) 08:50:36.59 ID:NWhPjGfV.net
子言語

284 :デフォルトの名無しさん:2018/06/14(木) 09:41:16.14 ID:PKegBamu.net
シン言語

285 :デフォルトの名無しさん:2018/06/14(木) 12:18:42.38 ID:QNww5TEq.net
超セン言語

286 :デフォルトの名無しさん:2018/06/14(木) 12:58:51.92 ID:cl/4FuwJ.net
もう一つの真言語

287 :デフォルトの名無しさん:2018/06/14(木) 16:58:58.79 ID:Gr9d0Yf1.net
>>281
リプありがとうございます

このtimelineの使い方がよくわからないんですけど
ブロックは音声読み込み側でやっちゃうので
timelineでディレイをかけるとリアルタイム性が確保できなくないですか?

timelineの中で音声読み込みをすればできなくはなさそうですけど
大幅にプログラムを書き換えないといけないし
処理と表示の分離もしにくくなると思うんですがそれしか方法はないんでしょうか

音声読み込みするスレッドから何かメソッドをよんで即時表示更新ってのはできないものなんでしょうか

while() {
 // 音声ラインから一定サイズよみこみ
// フーリエ変換
 // なにかメソッドをよべばグラフ表示更新
}

288 :デフォルトの名無しさん:2018/06/14(木) 17:26:03.40 ID:WQ1Bw7bI.net
>>287
Platform.runLater
でアプリケーションスレッドで処理を実行できるみたいっすよ

289 :デフォルトの名無しさん:2018/06/14(木) 19:46:03.94 ID:Gr9d0Yf1.net
>>288
わわわ 神様だー!
ありがとうございました!
ようやくやりたいことができましたー!
もうあきらめかけてたんですけど質問してよかったです

290 :デフォルトの名無しさん:2018/06/14(木) 20:18:06.09 ID:Gr9d0Yf1.net
何度もすいません

void f(int[] a) {
for(i : a) {
double d = (double)i
同じ処理
}
}

void f(double[] a) {
for(d : a) {
同じ処理
}
}

みたいにintとdouble配列を受け取って同じ処理するだけの関数が必要なんですが
まとめて記述することってできないでしょうか
そこそこ速度が要求されるので最初にキャストした配列を作って渡すのも若干無駄だし

関数型言語風にかくなら

void f_core(<T>[] d, Function<<T>, double> cast) {
for(x : a) {
double d = cast.apply(x);
同じ処理
}
}

void f(int[] a) { f_core(a, x => (double)x); }
void f(double[] a) { f_core(a, x => x); }

みたいにかければいいんですけどJavaで任意型のメソッドって作ったりうけわたしたりってできますか?

291 :デフォルトの名無しさん:2018/06/14(木) 20:47:40.32 ID:RvC/sBQ5.net
>>290
Number[] で受け取って doubleValue() で取り出す。
その代わりプリミティブ型の配列は渡せないが。

292 :デフォルトの名無しさん:2018/06/14(木) 20:48:57.71 ID:KBTpBKAk.net
>>290
普通にその関数型風のコードのようにジェネリクスとラムダを使えばできるけど、
Javaのファッキンなんちゃってジェネリクスだと必ずボックス化が入るからクッソ遅くなるよ
NumberやObjectを使っても同様
諦めて別々のメソッドにして「同じ処理」の部分だけをメソッドに括り出して共通化しなさい

293 :デフォルトの名無しさん:2018/06/14(木) 21:03:26.94 ID:Gr9d0Yf1.net
>>291,292
やっぱりプリミティブ型のジェネリクスは無理なんですね
ありがとうございました

294 :デフォルトの名無しさん:2018/06/15(金) 04:17:05.36 ID:DGyfb6tU.net
だめだー

せっかく教えてもらったのに0.1秒で4000個のデータ描画表示すら間に合わない
AWTでdrawLineとか使って直書きなら8000ぐらいでも間に合うのに

JavaFX のチャートの設定で何か軽くなる設定とかってあったりしますか?
せっかく苦労したのにAWTに戻すことになりそう

295 :デフォルトの名無しさん:2018/06/15(金) 06:35:09.89 ID:DwlS46FN.net
仕事の相談をここでするなよマヌケ

296 :デフォルトの名無しさん:2018/06/15(金) 07:30:56.95 ID:K3OjyI6B.net
>>295
え?

297 :デフォルトの名無しさん:2018/06/15(金) 08:34:10.18 ID:DHgdPMs1.net
>>294
JavaFXの唯一の正しい使い方は、全面にWebViewを貼り付けてHTMLで全てを作ること。
誰も使ってないJavaFXなんかより遥かに速くて快適なUXを実現できる。D3.jsとか使えばチャートも簡単爆速美麗。
馬鹿馬鹿しいと思うならSpring Bootにでも乗り換えてJavaらしく普通にWebアプリにしよう。

298 :デフォルトの名無しさん:2018/06/15(金) 10:34:32.18 ID:uIGrLsPa.net
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://www.sketchapp.com/
ttp://photoshopvip.net/103903
ttps://goodpatch.com/blog/sketch-plugins/

Trello Chrome拡張機能プラグイン集
https://chrome.google.com/webstore/search/trello?_category=extensions

Slackプラグイン集
https://slack.com/apps

Sketchプラグイン集
https://sketchapp.com/extensions/plugins/
https://supernova.studio/

299 :デフォルトの名無しさん:2018/06/15(金) 16:20:39.46 ID:DGyfb6tU.net
>>295
ぜんぜん仕事とかじゃなく
いまvtuberはやってるじゃないですか
でも地声でやるの恥ずかしいからボイスチェンジャーつくりたいなーって完全に趣味です

>>297
学生あがりでJavaとCしかかけないです
ウェブアプリってサーバーがHPの表示する内容かえるみたいなかんじですよね
そもそもサーバーがない

まあ普通にAWTでGraphics.drawLineでCanvasに描画すれば間に合ったので
JavaFXのチャートあるならスケーリングやメモリの描画までやってくれて
見た目もきれいかなと思った程度なのでJavaFXのことは忘れます

300 :デフォルトの名無しさん:2018/06/15(金) 17:03:56.08 ID:oVnAseDc.net
たまには思い出してあげてください

301 :デフォルトの名無しさん:2018/06/15(金) 21:58:12.68 ID:ymZBnmIf.net
皆、無料のRails チュートリアルをやってる。
サーバーなんて、Ruby のSinatra でも良いし

Rubyでも、Node.js, jQuery, Vue.js など、JavaScript(JS) は必須。
D3.js を使っても良いんじゃない?

VSCode だって、Electron だし、
Python のJupyter Notebook(IPython Notebook) だって、JSだろ

ほぼすべての言語で、画面には、JSを使う

302 :デフォルトの名無しさん:2018/06/15(金) 22:06:24.60 ID:HtPJG7wE.net
>>301
Rubyはオワコン
10年遅い

今のトレンドはJava

303 :デフォルトの名無しさん:2018/06/15(金) 23:00:02.92 ID:7wMYYvtj.net
いや、JavaはKotlinに食われつつある。Androidに関してはかなり征服された。

304 :デフォルトの名無しさん:2018/06/15(金) 23:04:11.35 ID:/HLz/tc5.net
>>302
トレンドwww

305 :デフォルトの名無しさん:2018/06/20(水) 19:47:48.12 ID:g4/OGHNt.net
>>304
多分JavaとRUBYと
あべこべに書いてしもたんやろな

306 :デフォルトの名無しさん:2018/06/20(水) 20:42:50.22 ID:id/YgeM/.net
両方オワコンだから間違えようがない
一部の狂信的な信者以外は

307 :デフォルトの名無しさん:2018/06/20(水) 20:52:23.72 ID:3OmsLPWp.net
Nettyの質問なんだけど
https://netty.io/wiki/user-guide-for-4.x.html
俺の理解だと、サーバーは受信時にInbound、送信時にOutbound。
ところがこのサンプルのtimeserverhandlerはInboundHandlerでレスポンスをしているように見える。
そもそもサーバーのOutboundHandlerはどんな時に呼び出されるんだろうか?
クライアントはまずOutboundが呼ばれてレスポンスがあった場合のみInboundが呼ばれるのだろうと思う。
サーバーのOutboundは何をトリガーにするのか?レスポンスしない場合もあるだろう。
サーバーのOutboundHandlerのサンプルが見つからない。

このあたり分からないので誰か教えてください。

308 :デフォルトの名無しさん:2018/06/20(水) 20:55:46.07 ID:+mTfQ/rg.net
そんなものがあるんだ

309 :デフォルトの名無しさん:2018/06/20(水) 20:58:29.56 ID:3ZXb2ep/.net
>>307
オープンソースなんだからソース読めよカス

310 :デフォルトの名無しさん:2018/06/20(水) 21:44:01.80 ID:eL2b037p.net
>>307
サーバは受信イベントに反応して応答を返すものなのだから、InboundHanderを継承して応答を返すように実装するのは自然と思うよ。

〜handlerとか〜listenerとあったら、〜イベントに対する処理をするものと言う意味。

あと、OutboundHandlerの例は下に書いてある。
サーバレスポンス(outbound)を横取りして書き換えたい場合に使えるようだ。

311 :デフォルトの名無しさん:2018/06/20(水) 22:31:03.15 ID:t5KVEVLK.net
>>309
分らんのなら引っ込んでろよチンカス

312 :デフォルトの名無しさん:2018/06/21(木) 14:33:49.08 ID:zmvzH3Nu.net
と真性包茎のキモデブが申しております

313 :デフォルトの名無しさん:2018/06/21(木) 19:02:53.39 ID:LmBngzCG.net
https://docs.oracle.com/javase/jp/9/docs/api/com/sun/net/httpserver/HttpExchange.html
簡易メソッドclose()はこれらのタスクをすべて実行します。
要求本体のすべてを使用せずに交換を閉じてもエラーではありませんが、
基本となるTCP接続を次の交換用に利用できなくなる場合があります。
交換の終了に失敗した場合の結果は定義されていませんが、
通常はリソースの解放や再利用に失敗します。

これどういうこと?例えば特定のアクセス元じゃなければclose()するということをやると、
メモリリークのようなことになっていくということ?リソースの解放や再利用に失敗するとは?
HttpServerにおいて特定条件を満たしていない場合に拒絶する書き方が知りたい。

314 :デフォルトの名無しさん:2018/06/21(木) 19:45:52.69 ID:+kp8giCs.net
http要求ー応答の処理中に処理完了する前にcloseしたことを説明してるんじゃない?
想定外のcloseした場合、メモリ状態は分からないから正常に開放できるか不明、ゴミデータ残って一度利用したインスタンスで再通信できるか不明ってことじゃ?

315 :デフォルトの名無しさん:2018/06/22(金) 02:08:36.03 ID:6X1MAqKl.net
https://docs.oracle.com/javase/7/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/HttpExchange.html
英語版をgoogle翻訳してみたりstackoverflowで調べたところ、
getRequestBody()でえられるinputStreamは使えば自動的にcloseされる。
getResponseBody()でえられるOutputStreamは使った後手動でcloseする。
エラー等で処理を終える場合、HttpExchangeを必ずcloseする。
そして、どうやらgetRequestBody()を必ず使わなければならない?ようだ。
しかしそのような内部的な問題は基本的に気にする必要が無く、
HttpExchange#close()はそのgetRequestBody()の消費処理すらもやってくれる、と書いてあるように読める。
結局HttpExchange#close()を必ずどこかで呼べということな気がする。

316 :デフォルトの名無しさん:2018/06/22(金) 11:57:36.33 ID:hcBKEl3e.net
正誤判定プログラム作っているけど上手く表示できない
正解入力すると正解ですって表示されますが、間違い入力しても
不正解ですとは表示されず、例外のア、イ、ウ、エで入力してくださいって表示になる。
分からないので教えていただけないでしょうか?

do{
String answer = br.readLine();
if (qs.correctAnswer.equals(answer)){
System.out.println("正解です。");
break;
}
else if((answer == qs.wrongAnswer1) || (answer == qs.wrongAnswer2) || (answer == qs.wrongAnswer3)){
System.out.println("不正解です。");
}
else{
System.out.println("ア、イ、ウ、エで入力してください。");
}

317 :デフォルトの名無しさん:2018/06/22(金) 12:08:24.12 ID:OFAJDNNU.net
>>316
なんで正解判定で使ってるequalsを不正解判定では使わないんだ…

318 :デフォルトの名無しさん:2018/06/22(金) 12:35:39.34 ID:hcBKEl3e.net
>>317
助言ありがとうございます!
解決できました!

319 :デフォルトの名無しさん:2018/06/22(金) 15:31:22.98 ID:3EtLvxAt.net
switch使おうよ。

320 :デフォルトの名無しさん:2018/06/22(金) 15:40:49.23 ID:fTGbKFWm.net
Java7から使えるようになったんだっけ?

321 :デフォルトの名無しさん:2018/06/22(金) 20:42:54.95 ID:J+Abs19H.net
やっぱり35歳はipの出ないこっちに来るんだな

322 : :2018/06/23(土) 19:05:17.20 ID:H68Z4zsJ.net
>>321
俺じゃないぞ

323 :デフォルトの名無しさん:2018/06/23(土) 20:24:44.15 ID:lx4N25iu.net
Javaの入力値チェックの方法についてご相談です。

ユーザーから手入力された値をインスタンス変数に代入後、チェックする処理を記述しようと思っているのですが、方法として以下の3つを考えています。
※setter のアクセスレベルはprivateにしています。

@ 検査対象のインスタンス内でチェック用のメソッドとsetter をそれぞれ定義する

A 検査対象のsetter 内に、チェック処理のロジックを記述する(チェック処理の内包)

B チェック処理をする責務を持つクラス(インスタンス)を別で作成し、検査対象を引数として与える

3つの方法に対してのご意見、ご指摘を頂きたいです。
そもそも、setter に値をセットする以外の処理を含めて良いものか悩んでおります。
可能であれば、setter の件についてもご意見頂ければと思います。

長文となってしまいましたが、皆様よろしくお願いします。

324 :デフォルトの名無しさん:2018/06/23(土) 22:44:16.49 ID:5c71PR8X.net
java bronzeを受けようと思い黒本過去問10周くらいして
理解できたと思いますが、似た問題が多いでしょうか・・
合格した方はどれくらい勉強したか教えてください。

325 : :2018/06/23(土) 22:52:16.17 ID:H68Z4zsJ.net
>>324
それなら多分大丈夫だと思います
俺は翔泳社の問題集を3回ぐらい解いて受かりました

326 :デフォルトの名無しさん:2018/06/24(日) 11:46:06.34 ID:MQB4VaSY.net
>>323
ユーザの入力値受け取るクラスならprivateじゃなくてpublicなsetter作るような気がするんだけど
ちょっと状況が分からない
どういうクラスかもう少し書ける?

setterに処理を含めること自体は問題ない

327 :デフォルトの名無しさん:2018/06/24(日) 12:47:58.04 ID:I6qT+7Vz.net
>>323
時と場合により全部使う
プレゼンテーション層での検証は主に@とB
ドメイン層での検証は主にA(setterは基本的に非公開だが)

328 :デフォルトの名無しさん:2018/06/24(日) 14:33:44.94 ID:pKame5cc.net
setterにロジック含めていいかどうかで悩むとかアホか
ロジック含める可能性がないならsetter通さずにフィールドにそのまま大入すればいいだろアホ

329 :デフォルトの名無しさん:2018/06/24(日) 15:04:34.13 ID:dY9pVmNf.net
本当のことをいうなよ(笑)

330 :デフォルトの名無しさん:2018/06/24(日) 18:01:03.69 ID:5i39kBRv.net
IPっつったら、IDEAPOCKETが真っ先に思い付くわ・・

331 :デフォルトの名無しさん:2018/06/25(月) 09:12:54.69 ID://DXoKuS.net
大入袋

332 :デフォルトの名無しさん:2018/06/25(月) 20:05:59.87 ID:6QnNrYn1.net
すみません、いくつか質問させてください。

<クラスパス(ビルドパス)について>
・eclipseの「ビルドパスに追加」したフォルダが複数登録されており、
・それらの中に全く同じパッケージに有る同じクラス名が合った場合、
 どのような優先順位で1つのクラスが選ばれるのでしょうか。
・また全く同じパッケージ・クラス名で、 .jarのライブラリがインポート
 されていて、それとは別にフォルダ構造のパッケージの中に、
 バラの.classファイルが配置されていた場合、これらの優先順位
 はあるのでしょうか。
・コンソールでjavaを実行するのではなくTomcatがjavaを
 実行する場合、どのディレクトリからjavaを実行しているのでしょうか?
・.jspファイルは「ビルドパスに追加」をフォルダに置く必要が
 あるのでしょうか。それとも「ソースフォルダの追加」に登録
 フォルダの配下にあるべきなのでしょうか。
・gitなどでバージョン管理をする際に、.classファイルや .jarなどの
 バイナリファイルを複数人で別々のバイナリを生成して
  コンフリクトした場合、マージされるのでしょうか。
DBに保存されたバイナリデータもマージされるのでしょうか。
・eclipseで設定したブレークポイントでソースが停止した場合、
 その実際の.classファイルあるいは.jarファイルはどこにあるのか
 特定できるでしょうか。
 

333 :デフォルトの名無しさん:2018/06/25(月) 20:10:33.03 ID:DmsWJyBV.net
長文に付きスルーさせてください

334 :初心者:2018/06/25(月) 20:16:03.04 ID:6QnNrYn1.net
<eclipseの「ソースフォルダの追加」について>
・「ソースフォルダに追加」したフォルダの配下にある.javaコードは
  eclipseのブレークポイントで止まってくれますが、
  これは「ソースフォルダに追加したソースから生成された.class
あるいは.jar」が実行されていなければソースは特定できないので
  しょうか。
・「ソースフォルダに追加」した時点でそのソース群から生成された
  .classファイルがもしビルドパスに登録されているフォルダ配下
  に生成されるようになっていなければ、自動的にビルドパスに
  追加されるのでしょうか?
・それとも単純に同名のパッケージ名、クラス名が実行された場合、
 ソースフォルダに登録したフォルダから検索して、名前の一致だけで
 特定しているのでしょうか。
・もし名前の一致だけで特定している場合、同じ名前の別のソースから
  生成された.classファイルに中身が書き換わってしまい、
  ソースフォルダに追加している.javaと.classの中身が全く
  対応しなくなっている状態になると、デバッグは失敗するのでしょうか。
・「ソースフォルダに追加」で複数のフォルダを追加して、
 別々の場所に同じパッケージ名、クラス名の.javaファイルが複数あった
 場合、デバッグ時に呼び出されるのはどの.javaファイルになるのでしょうか。

335 :デフォルトの名無しさん:2018/06/25(月) 21:24:25.00 ID:cnz2hUoM.net
>>332
>>334

自分で試して下さい

336 :デフォルトの名無しさん:2018/06/25(月) 21:38:05.82 ID:mHx9ED9l.net
>>332
ビルドパスの優先順はビルドパスのダイアログにOrder and Exportというタブで指定したとおりだよ
クラスパスは先に指定したものから順番に検索される、先に見つかったものが使われる

337 :デフォルトの名無しさん:2018/06/25(月) 22:00:32.20 ID:XS6tlG59.net
githubでC#で書かれたソースコードを見るとVisual Studioで作成したファイルが見当たらないんですが、
Visual Studioを使わないほうがいいんでしょうか?

338 :デフォルトの名無しさん:2018/06/25(月) 22:00:51.60 ID:XS6tlG59.net
すれ間違えました

339 :デフォルトの名無しさん:2018/06/25(月) 23:33:17.67 ID:lTrbOz9W.net
>全く同じパッケージに、同じクラス名がある
パッケージはフォルダ、クラスはファイル名に相当するから、
同一フォルダ内に、同一のファイル名は、絶対に存在できない

>コンソールでjavaを実行するのではなくTomcatがjavaを実行する場合、
>どのディレクトリからjavaを実行しているのでしょうか?
pwd のような、Linux コマンドを実行すれば、カレントディレクトリを表示するはず。
それか、そういう環境変数を探す

これら以外の質問は、実際に起こった場合の、エラーメッセージで検索して

340 :デフォルトの名無しさん:2018/06/26(火) 09:24:15.65 ID:4BKP4Htb.net
そういや試したことないが、2つの別々のjarファイルの中のディレクトリとクラスファイルが同じだったらクラスローダーがエラー出すんだろうか?

あ、コピーしてやってみればいいだけだな。時間があったらやってみよう。

341 :デフォルトの名無しさん:2018/06/26(火) 10:03:27.13 ID:HJBlnKJN.net
>>339
それはクラスパスが1つだけと仮定したときの話でしょ?
複数のクラスパスに中身が違う同じパッケージ空間のクラスが存在できるじゃん。

eclipseの「Javaリソース」「参照ライブラリー」「ライブラリー」
「JREシステム・ライブラリー」「Web Appライブラリー」
って何が違うのか気になるわ。
あとそれぞれのアイコン
・田んぼの「田」みたいなアイコン(茶色/白)
→パッケージだけど色の違いは・・・?
  茶色い田はフォルダで中に.classファイルが入っている。
  白い田はファイル?なのかよくわからない。
  フォルダ名の名前空間を表している?
・フォルダ内に「田」が入っているアイコン
・本が積み上げられているようなアイコン
→これは「ライブラリー」か
  フォルダの中に「本」が入っているようなアイコンもあるがこれは何?
・ビンのアイコン
 →これは.jarだけど.jarってライブラリーのことじゃないのか?
  .jarと本のアイコンの違いは何だ?
・「.classファイル」のアイコンも2種類ある。
 →1つは「J 01」というファイルのような形のアイコン
  もう一つはツリーのような形をした黄色、ピンク、青のアイコン。
  これらの違いは何?

イメージとして.classファイルを集約するフォルダがパッケージ(田)
で、パッケージを集約するのが「.jar」で、
.jarを集約するのが「本のアイコン」でいいの?
本のアイコンとフォルダ内に田があるアイコンの違いもよくわからない。

ファイルシステム上ではどれも単なる「フォルダ」似すぎないものの
分類が多すぎて混乱するわ。

342 :デフォルトの名無しさん:2018/06/26(火) 10:30:20.48 ID:pRC7dJe/.net
あきらめろん

343 :デフォルトの名無しさん:2018/06/26(火) 11:37:57.95 ID:B6D+LuS4.net
>>341
eclipseの「Javaリソース」「参照ライブラリー」「ライブラリー」
「JREシステム・ライブラリー」「Web Appライブラリー」
って何が違うのか気になるわ。
→どういった機能があるライブラリーなのか分類分けしてるだけ。WebかいはつしないならWeb Appライブラリーをビルドパスから除外するなど

あとそれぞれのアイコン
→ただ単に状態を表してるだけ。田の白茶は直下にクラスファイルが有るか無いかだけだったと思う、ほかはないを言ってるかよくわからない

ファイルシステム上ではどれも単なる「フォルダ」似すぎないものの
分類が多すぎて混乱するわ。
→慣れろ

344 :デフォルトの名無しさん:2018/06/26(火) 13:01:07.58 ID:WhDx7ogM.net
>>340
んなわけねえだろ初心者

345 :デフォルトの名無しさん:2018/06/26(火) 13:09:23.95 ID:4BKP4Htb.net
>>340を試してみたらエラーにならなかった。
で、クラス名同じで内容が違う状態で実行して判別できるようにして調べたら -cp で先に指定した方が有効になるだけだった。
単純に頭からクラスの検索しているだけみたい。

346 :デフォルトの名無しさん:2018/06/26(火) 13:10:10.27 ID:4BKP4Htb.net
>>344
いやあ、しかし、エラーになってほしいものではあるよな。

347 :デフォルトの名無しさん:2018/06/26(火) 13:54:20.46 ID:FzhS8Jns.net
馬鹿ほど自説に拘る

348 :デフォルトの名無しさん:2018/06/26(火) 14:58:42.92 ID:6dkY69Bf.net
>>332
ここで聞けよ
★★Java質問・相談スレッド181★★
https://mevius.5ch.net/test/read.cgi/tech/1518252580/

349 :デフォルトの名無しさん:2018/06/26(火) 14:59:34.79 ID:6dkY69Bf.net
>>332
ここで聞けよ
Eclipse統合M36【Java/C++/Ruby/Python/Scala】 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1503723668/

350 :デフォルトの名無しさん:2018/06/26(火) 17:25:51.93 ID:QQQU3toQ.net
てかマジにパッケージの役割をまるで理解できてない自分が怖い。
他のプロジェクトのクラス利用するみたいな時に役立つんですかね。

351 :デフォルトの名無しさん:2018/06/26(火) 17:59:26.14 ID:svNbpPIp.net
PCではクラスが重複していてもエラーにならずどっちがロードされるか分からんけど
Googleさんはそんな曖昧なことを許さず
Androidアプリをビルドするときはクラスが重複してるとエラーになる

352 :デフォルトの名無しさん:2018/06/26(火) 19:49:21.17 ID:EJ9QuCpH.net
さすが

353 :デフォルトの名無しさん:2018/06/26(火) 20:41:39.98 ID:nfkVtLx6.net
アホ

354 :デフォルトの名無しさん:2018/06/28(木) 21:25:44.96 ID:RNZwZaAN.net
java有料化と聞いたのですが個人使用やAndoroidなら無料ですよね

355 :デフォルトの名無しさん:2018/06/28(木) 22:30:12.31 ID:AdRGOVMD.net
>>354
こちらで聞かれてはいかがでしょうか

Java入門・初心者質問スレ Part.8
http://mevius.2ch.net/test/read.cgi/tech/1528370228/

356 :デフォルトの名無しさん:2018/06/28(木) 22:34:14.17 ID:mQsBu3Yx.net
>>354
OracleJDKは個人使用だろうと有料
OpenJDKは無料だけどサポート期間が半年で切れ、その都度最新版に乗り換えないといけない
AndroidのJavaは元々違法だから関係ない

357 :デフォルトの名無しさん:2018/06/28(木) 22:54:20.28 ID:HobEbqhl.net
先週OracleがJDK11の扱いを新たに発表したよ
これまではOracleJDKを有償サポート契約者にしか提供しないと言っていたのだが
デモや評価目的でOracleJDKを使うことができると表明した
これにより誰でもOracleJDKをダウンロードできるのではないかと見られている
(ただし未契約ではサポートは受けられない)

またOpenJDKについてもOracleがビルドした(ほぼ公式)バイナリが提供される
OpenJDKについては他にもzuluなどいくつかのディストリビューターがビルドバイナリを提供している

JDK11以降も商用サポートが受けられないというだけでJavaはこれからも自由だよ!

358 :デフォルトの名無しさん:2018/06/29(金) 07:17:30.07 ID:1gf7wGhW.net
>>357
でも後から高額請求がOracleテンプレ

359 :デフォルトの名無しさん:2018/06/29(金) 08:36:33.86 ID:ViTU2kZO.net
>>358
使ったことないくせにw

360 :デフォルトの名無しさん:2018/06/29(金) 10:11:27.83 ID:ZWZ4pa9t.net
Eclipseがただで使えるようにしてくれるさ(遠い目)

361 :デフォルトの名無しさん:2018/06/29(金) 11:27:33.30 ID:OTypfvcs.net
>>357
評価目的ってことは、配布した時点で請求が来るのかな?

362 :デフォルトの名無しさん:2018/06/29(金) 12:28:18.43 ID:04kXi5pA.net
払えばサポート受けられるだけで払わなくても商用利用出来る

という認識でok?

363 :デフォルトの名無しさん:2018/06/29(金) 13:38:34.81 ID:cRGLx+38.net
>>362
サポートって電話したらオラクルのお姉さんと話せるサービスを想像してる?
セキュリティパッチの提供も含まれるんだぞ

364 :デフォルトの名無しさん:2018/06/29(金) 13:47:32.74 ID:GBe1xLaa.net
片言の日本語w

365 :デフォルトの名無しさん:2018/06/29(金) 17:19:15.96 ID:y/uBajUK.net
>>363
セキュリティパッチ無ければ無料です
と言ったら無料選ぶのが客

無料ならjavaで良いね

366 :デフォルトの名無しさん:2018/06/29(金) 18:20:16.36 ID:6OZlBNWi.net
>>362
OracleJDKをデモ・評価の範囲を超える配布等の商用利用したらアウトだろう
サポート不要で商用利用する場合はOpenJDKだな

367 :デフォルトの名無しさん:2018/06/30(土) 00:45:39.52 ID:SNP/nySb.net
プログラミング超初級です
これからプログラムを学びたいと思って、progateというサイトで練習しています

JavaTは楽しく学習できたのですが、JavaUでifやfor等、多様な構文が出てきて
頭でうまく整理が付きません
プログラム向いてないんでしょうか?

368 :デフォルトの名無しさん:2018/06/30(土) 02:30:39.07 ID:yaCLVjK3.net
むりやりやらされてるの?
たった数時間の勉強で向いてないんじゃないかと心配するほどモチベーションが低いことのほうが、問題だと思うよ。

369 :デフォルトの名無しさん:2018/06/30(土) 07:16:04.14 ID:g3zvEcdN.net
むいていません

370 :デフォルトの名無しさん:2018/06/30(土) 12:00:29.96 ID:Wg+LSNTR.net
ちんちんの話

371 :デフォルトの名無しさん:2018/06/30(土) 12:32:57.67 ID:dqROe96n.net
高州クリニック

372 :367:2018/06/30(土) 12:40:24.30 ID:SNP/nySb.net
>>368
仰るとおりですね、根を上げるには早すぎると思います
まだまだ時間を使って、一つ一つを学習していきたいと思っています

Javaに触れてみて思ったのですが、自分はプログラムってもっと数学的なものだと思っていたのですが
英語の文法を覚えるのに近そうですよね
私は数字には強いですが、英語などの言語が超苦手なので向いてないのかなと思いました

Javaが苦手なのか、プログラム全般が向いてないのかが重要だと思ってるのですが
Java以外の他の言語なら、また違うでしょうか?

373 :デフォルトの名無しさん:2018/06/30(土) 12:48:51.27 ID:SopNOlss.net
数字にも弱そう

374 :デフォルトの名無しさん:2018/06/30(土) 12:52:04.34 ID:dqROe96n.net
頭が弱いんだろう

375 : :2018/06/30(土) 12:59:15.79 ID:BPi0VHAg.net
>>367
一度でマスターできないのは当たり前で、なんどとなくいろんな課題に適用していくことで理解した思えるようになります
そういう課題は自分でみつける必要はありますが

>>368
モチベーションは自分の意志ではどうしようもない、天から降ってくるものなのでは?

376 :デフォルトの名無しさん:2018/06/30(土) 14:22:19.92 ID:Ms0oF+PT.net
>>372
数学の教科書だって自然言語で書いてあるでしょ
プログラミング言語の文法程度のことが覚えられないなら
知的労働には向いてないよ

377 :デフォルトの名無しさん:2018/06/30(土) 15:59:07.87 ID:SNP/nySb.net
ありがとうございます
数をこなしていくことで覚えていきたいと思います

https://prog-8.com/users/sign_in#/42
しかし、やはりというかprogateのJavaUの総合問題が、何度挑戦しても難しすぎます

慣れている人なら、こういう難問でもスラスラとコード書けちゃうんですかね?
問題が難しすぎるだけだったりしますか?

378 :デフォルトの名無しさん:2018/06/30(土) 16:04:02.42 ID:SNP/nySb.net
https://gyazo.com/83d101ee56f11287ec9aee0bfc828a43
https://gyazo.com/54345b19217af83466321965324e5f15

ちな、躓いてる問題はこれです

379 :デフォルトの名無しさん:2018/06/30(土) 16:11:33.20 ID:+7yWvOia.net
>>378
この程度なら文系大卒未経験でも新人研修3日目くらいには余裕でできる
中にはできない奴もいるが、経験上、そういう奴は最後まで決してできるようにはならず、試用期間切りかスタッフ職

380 :デフォルトの名無しさん:2018/06/30(土) 17:24:21.46 ID:oywXZrZh.net
奇数の和は26です
偶数の和は23です

このくらいのギャグをかますセンスが欲しいところだ。

381 :デフォルトの名無しさん:2018/06/30(土) 18:35:48.68 ID:m2uqFRio.net
>>377
大量のデータを条件によって分けて処理するのはよくあることだからできないとお話にならない

382 :デフォルトの名無しさん:2018/06/30(土) 18:59:47.95 ID:Zdmuabpa.net
この問題みてて、そういえばStreamって分岐できないんだよなぁ、
ってことを思った。

383 :デフォルトの名無しさん:2018/06/30(土) 20:08:19.22 ID:SNP/nySb.net
今2週目をやってみたのですが、昨日のことがウソのように
スラスラと解けました
こんな簡単な問題に頭を抱えて悩んでいる人たちがいると思うと、笑えてきますね
プログラムって、ちょろいかもしれません

384 :デフォルトの名無しさん:2018/06/30(土) 20:14:34.40 ID:F25j7Nhc.net
よかったね(棒)

385 :デフォルトの名無しさん:2018/06/30(土) 20:49:57.22 ID:jGkoPtEg.net
がんがれ

386 :デフォルトの名無しさん:2018/06/30(土) 21:02:19.65 ID:ZTLc6SDl.net
俺もjava始めたばっかりの初心者なんだがこの問題解けないわ

387 :デフォルトの名無しさん:2018/07/01(日) 04:20:22.19 ID:jYTqh5wD.net
なんだかなあー

388 :デフォルトの名無しさん:2018/07/01(日) 12:11:03.57 ID:oSgDfxs0.net
Java少し前に始めたけどprogateより参考書読んだ方が圧倒的に理解できるぞ
始めるきっかけでprogateは悪くはないと思うけど

389 :デフォルトの名無しさん:2018/07/01(日) 14:26:54.09 ID:yaDvqYhr.net
参考書を読む、試す、の繰り返しで良いんではないかな。

390 :デフォルトの名無しさん:2018/07/02(月) 02:35:42.18 ID:M/CoMLX8.net
余計に難しくしたりして
https://paiza.io/projects/bYleHtpEAoWpjbnGsIOBiQ

391 :デフォルトの名無しさん:2018/07/02(月) 08:23:40.31 ID:G0LOf4TF.net
スッキリわかるjava入門の命令実行の文の所の後半よくわからないんですが
読み飛ばしても後々問題ないですか?

392 :デフォルトの名無しさん:2018/07/02(月) 09:02:02.26 ID:Wn9e2nCl.net
問題なし

393 :デフォルトの名無しさん:2018/07/02(月) 09:42:59.20 ID:/q8FZihl.net
その本に何が書いてあるかわからないので読み飛ばして良いかどうかもわからない。
その本が出る前に初心者ではなくなってしまったのでその本をこれから買う気は起きない。

394 :デフォルトの名無しさん:2018/07/02(月) 09:47:04.17 ID:HD8gmjU2.net
JVMが実行されるときにパイプライン上で分岐が生じるかどうかを聞いてるのだと思うけど(すげー適当)

395 :デフォルトの名無しさん:2018/07/02(月) 10:23:37.86 ID:G0LOf4TF.net
>>393
すいません。この本はjavaの初心者入門書で
System.out.println();←こんな感じの命令実行文の説明してる章(第2章)みたいなんですけど何を伝えたいのかよく分からなくて^^;
他にもSystem.out.printとかint. =Math.max (?)のこととか書かれてるんですけど…
こういう命令文もあるんだ〜程度に覚えて次に進んでも問題ないですかね・・それともガッツリ覚えてから行かないとどっかで躓きますかね・・・ 

396 :デフォルトの名無しさん:2018/07/02(月) 11:34:34.56 ID:9wGdj7CA.net
Ruby で書くと、
puts "あいう"

画面表示するだけの関数だから、一々、覚えなくてよい

397 :デフォルトの名無しさん:2018/07/02(月) 11:57:56.38 ID:G0LOf4TF.net
ここが命令を実行させる文とだけ覚えておけば問題ないですか・・ね
初心者すぎる質問でしたが答えていただきありがとうございました

398 :デフォルトの名無しさん:2018/07/02(月) 12:27:22.30 ID:HeCnpISr.net
良くできた本は最初から順にひとつづつ読んでいくのが一番良い。
このタイプの良本は教科書やロングセラーに多い。
適当に思い付きを並べた糞本は順に読んでも意味がない。
というかどう読んでも意味がない。

399 :デフォルトの名無しさん:2018/07/02(月) 12:30:28.20 ID:lnZ1z9Nk.net
良くできた本とは?

400 :デフォルトの名無しさん:2018/07/02(月) 12:31:28.49 ID:HeCnpISr.net
>>399
たとえばドラゴンブックはよくできた本の一つだな。

401 :デフォルトの名無しさん:2018/07/02(月) 12:44:32.96 ID:7ATQpDYX.net
普通はわからない所が出てきたら手前の方のページに説明が書いてあると思うのでそれ見れば良い。
必ずしもそうとは限らないが。その場合は索引見ればいいかな。

402 :デフォルトの名無しさん:2018/07/02(月) 13:03:39.93 ID:CzcwSgJn.net
その章の冒頭にどういった意図で内容を説明しているとか書いてないのん?

403 :デフォルトの名無しさん:2018/07/02(月) 15:34:52.77 ID:6MU/ELtX.net
>適当に思い付きを並べた糞本は順に読んでも意味がない。
Effective Javaのことか?w

404 :デフォルトの名無しさん:2018/07/03(火) 13:59:37.26 ID:CyvRpAiw.net
System.out.printlnはその本の後半で説明してるれるから飛ばしても問題ないよ
自分もその本の読んだけど個人的にはモウチョイ詳しく書いてほしかったな
printとprintlnの違いについてすら書いてなかったし

405 :デフォルトの名無しさん:2018/07/04(水) 21:56:46.88 ID:gFgZc5FG.net
NJG

406 :デフォルトの名無しさん:2018/07/05(木) 16:27:14.96 ID:AeL6VB/V.net
NJG

407 :デフォルトの名無しさん:2018/07/07(土) 16:05:41.45 ID:aa52jsH+.net
よろしくお願いします

public class HelloSampleActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
(略)
Button btClick=findViewById(R.id.btClick);
AListener listener=new AListener();
btClick.setOnClickListener(listener);
}
private class AListener implements View.OnClickListener{
@Override
public void onClick(View view){
}
}
}
onCreateメソッド内のsetOnClickListenerに関しての質問です。
Button型のインスタンス btClickが、なぜ(どうやって?)set.OnClickListenerメソッドを使えるようになっているのでしょうか?

408 :デフォルトの名無しさん:2018/07/07(土) 16:09:36.17 ID:JIJEiIS6.net
>>407
>>214参照

409 :デフォルトの名無しさん:2018/07/07(土) 16:11:02.58 ID:d6cBu3i8.net
>>407
スレチ

410 :デフォルトの名無しさん:2018/07/07(土) 16:19:54.19 ID:9/rBHklo.net
>>407
ButtonがViewを継承してるからじゃねっすか

411 :デフォルトの名無しさん:2018/07/08(日) 11:19:35.63 ID:Lc8bP1H3.net
>>407
Button->TextView->View
Viewのメソッドが使える

412 :デフォルトの名無しさん:2018/07/08(日) 20:49:11.79 ID:jlZqZIEk.net
ラズパイ+Netbeans+JavaFXでGUIアプリを作りたいんですけど、どうしても環境が作れません。

https://netbeans.org/kb/73/java/javafx-setup_ja.html
ここに従って新しいJavaプラットフォームを作るように言われて作るのですが、JavaFXタブがありません。
上記の環境を構築できた方いらっしゃらないでしょうか。

413 :デフォルトの名無しさん:2018/07/08(日) 21:20:13.85 ID:ijnRC5hf.net
>>412
javaFxとかやめとけ

414 :デフォルトの名無しさん:2018/07/08(日) 21:51:32.10 ID:jlZqZIEk.net
>>413
じゃあ、javaでGUIはどうしたらええのん?
昔のSwingとかを使うのが正しいのん?

415 :デフォルトの名無しさん:2018/07/08(日) 22:05:34.71 ID:ijnRC5hf.net
>>414
javaでGUIとかやめとけ

416 :デフォルトの名無しさん:2018/07/08(日) 22:06:11.29 ID:i8SXyieH.net
NetBeansとかIntelliJ IDEAとかはSwing製なので
まだまだイケるんじゃないかな

417 :デフォルトの名無しさん:2018/07/08(日) 22:09:01.70 ID:ijnRC5hf.net
>>416
やめてさしあげろ

418 :デフォルトの名無しさん:2018/07/08(日) 22:20:42.99 ID:jlZqZIEk.net
やめとか、以外で実現方法の知識がある方いましたらお願いいたします。

419 :デフォルトの名無しさん:2018/07/08(日) 23:31:34.26 ID:XkcpXb4y.net
普通にHTMLでよくね?
配布するならElectronとかでバッケージ化したくなるけど、
ラズパイならどうせ固定用途だろうからローカルサーバーで何の問題もないでしょ

420 :デフォルトの名無しさん:2018/07/08(日) 23:32:43.59 ID:Sc2HkkvQ.net
ラズパイって何するんですか…?
電気工作?
ロボットでも作るんかね

421 :デフォルトの名無しさん:2018/07/08(日) 23:36:30.10 ID:jlZqZIEk.net
条件は変えないで、知識が在る方がいましたらアドバイスお願いします
違う方法のアドバイスはご遠慮します

>>419
できない

>>420
GPIOが必要な案件で尚且つGUIが必要

422 :デフォルトの名無しさん:2018/07/08(日) 23:38:58.97 ID:toxXARvC.net
JavaでGUIか
JavaFXのWebViewのみを使ってElectronみたいなのはアリかもな
Electronとの違いはJavaScriptではなくJavaで書けること

423 :デフォルトの名無しさん:2018/07/09(月) 00:00:21.92 ID:QE5s+I3Z.net
>>421
なぜ今から負の遺産を作ろうとするの?

424 :デフォルトの名無しさん:2018/07/09(月) 00:09:15.98 ID:AUfS73UG.net
ラズパイだとnode-redとかじゃねーかな
javascriptとcになっちゃうけど

425 :デフォルトの名無しさん:2018/07/09(月) 06:48:47.54 ID:wOPKveTX.net
>>421
何ができないんだろう?
Spring Bootとかで普通にWebアプリとして作れば裏側はJavaで書けるしローカルで完結して動かすこともできるしライブラリがあればGPIOも使える
条件は完全に満たしてる
Javaのクライアントテクノロジなんて今から絶対に手を出してはいけない

426 :デフォルトの名無しさん:2018/07/09(月) 13:53:15.39 ID:RPo/jFjY.net
今は、クライアントを、Java にはしない

Ruby, Python, Java など、すべての言語で、HTML, CSS, JavaScript。
どのフレームワークでもそう

Rails でも、Node.js が必須。
jQuery, Vue.js とか

電子工作なら、Python

427 :デフォルトの名無しさん:2018/07/09(月) 14:01:10.35 ID:RPo/jFjY.net
5ch ブラウザなど、Java で画面を作っているアプリもあるけど、
結局、誰も保守できなくなるから、開発者がいなくなる

こういうのを技術的負債と言う

君「誰か、JavaでGUI を作れる人、いませんか?」
全員「いません!」w

428 :デフォルトの名無しさん:2018/07/09(月) 14:52:34.10 ID:5GBDda87.net
5chの専ブラは2chの頃にクローズドにしてフリーソフト閉め出したという特殊な事情があるからここで挙げる例としては適切ではないと思う。

429 :デフォルトの名無しさん:2018/07/09(月) 16:11:42.84 ID:OMEWQnbN.net
これまじでいい
https://goo.gl/uAcy7u

430 :デフォルトの名無しさん:2018/07/09(月) 16:32:18.13 ID:DEtXSfUS.net
>>421
知恵遅れで聞け厨房

431 :デフォルトの名無しさん:2018/07/09(月) 16:36:36.00 ID:H+d2FLX/.net
基本情報とりたいし、phpとかrubyじゃなくてjavaやろうと思うんだがこれでいいの?CtoCのWebサービス作りたい

432 :デフォルトの名無しさん:2018/07/09(月) 16:54:57.75 ID:49BAkqpD.net
>>431
できなくはない
適切な答えを返すためには質問がいくつかある

・なぜ基本情報を取りたいのか?
・基本情報を取るかwebサービスを作るかどちらしかできないとしたらどちらをやる?
・html、css、javascriptを深く理解する気があるか否か
・そのサービスのスマホ連携の有無

433 :デフォルトの名無しさん:2018/07/09(月) 16:56:51.39 ID:DEtXSfUS.net
>>432
お前の知識の披露はどうでもいい

434 :デフォルトの名無しさん:2018/07/09(月) 17:03:21.82 ID:H+d2FLX/.net
>>432
・基本情報は就職用。
・どっちかだけっていうならwebサービスを作りたい。
・html/cssは一通り勉強した。あれを深く理解するっていうのの意味がわからない…
・スマホとは連携させたい。

同じような自問をしたことがあるけど、やっぱり基本情報は表計算で乗り切ってphpとか勉強した方が良いんだろうか…

435 :デフォルトの名無しさん:2018/07/09(月) 17:09:23.33 ID:49BAkqpD.net
>>434
大体わかった
それを踏まえて最後の質問だ

・phpやrubyを使うであろうWeb系とjavaを使うであろう業務システム系、どちらに就職するつもり?

436 :デフォルトの名無しさん:2018/07/09(月) 17:12:52.53 ID:H+d2FLX/.net
>>435
webかなあ

437 :デフォルトの名無しさん:2018/07/09(月) 17:17:21.98 ID:DEtXSfUS.net
夏厨の季節

438 :デフォルトの名無しさん:2018/07/09(月) 17:18:59.36 ID:49BAkqpD.net
>>436
OK
そうするとお前が学ぶ意味があるのはphpかrubyで間違いない
基本情報の資格はお前のキャリアに必要ない。当然javaに手を出す必要もない

ただしjavaやって資格取って業務系で食うよりも人生の難易度は上がるだろう
何か質問はある?

439 :デフォルトの名無しさん:2018/07/09(月) 17:22:25.10 ID:H+d2FLX/.net
>>438
特にない。ハードモード楽しみます。参考になりますた。

440 :デフォルトの名無しさん:2018/07/09(月) 18:38:38.94 ID:w6/Jy163.net
どや

441 :デフォルトの名無しさん:2018/07/09(月) 18:54:45.22 ID:rKnQV5/G.net
いやWeb系でも自社事業やってるようなとこだとJavaや.NET使ってるのも珍しくないぞ
Web制作に近いようなとこより、大抵そういうとこの方が金払いいいし技術レベルも高い

442 :デフォルトの名無しさん:2018/07/09(月) 19:13:17.65 ID:Tspph/eO.net
そんなとこ一握りしか入れないでしょ

443 :デフォルトの名無しさん:2018/07/09(月) 19:24:11.29 ID:mEAcYnRs.net
その一握りに入れないならWeb系に行く意味なんかないでしょ
大したスキルもなく裁量もなくゴミのような単価でクソを垂れ流すだけ
業務系の方が遥かにマシだ

444 :デフォルトの名無しさん:2018/07/09(月) 20:00:35.79 ID:YKnsTZY9.net
IT土方を増やすゴミ

445 :デフォルトの名無しさん:2018/07/09(月) 20:47:54.96 ID:UfJ//8VP.net
無職が答えるIT進路相談

446 :デフォルトの名無しさん:2018/07/09(月) 21:27:57.70 ID:qFtb42UW.net
>>441
Javaと.NETをひとくくりにしない方がいい

447 :jlZqZIEk:2018/07/09(月) 21:50:21.93 ID:AGPubLJK.net
もう諦めてSwingで書くことにしました
JavaFX、NetBeans、RaspberryPiで検索すると海外でも同じことで悩んでいる人がいるみたいだけど、
どうにもならないみたいですので
みなさん、ありがとうございました。

448 :デフォルトの名無しさん:2018/07/09(月) 22:19:29.31 ID:pecpw2yU.net
>>446
Java土方と.NET土方にレベル差なんてないよ

449 :デフォルトの名無しさん:2018/07/09(月) 23:17:51.97 ID:QE5s+I3Z.net
>>448
Java土方おつ

450 :デフォルトの名無しさん:2018/07/10(火) 06:54:08.49 ID:wRoCk71p.net
>>441
作るのは派遣だよ
正社員の仕事は設計とダメ出し

451 :デフォルトの名無しさん:2018/07/10(火) 07:44:34.52 ID:LbQkaO6y.net
>>431-439
まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014

基本情報処理なら、スッキリで十分だろ

その後「たのしいRuby 第5版、2016」を読んで、
無料のRails チュートリアルをやる

452 :デフォルトの名無しさん:2018/07/10(火) 09:20:13.80 ID:yvVWnyin.net
>>451
お前自覚ないかもしれないけど知的障害者だから精神科行ったほうが良い

453 :デフォルトの名無しさん:2018/07/10(火) 09:26:50.98 ID:lWNPDM52.net
>>450
自社サービスは自分で設計して自分で作るぞ
うちもエンジニアの大半は社員で全員コード書いてる
自社サービスには人員需要の波がないからエンジニアを抱えることに対して抵抗がないんだよ

454 :デフォルトの名無しさん:2018/07/10(火) 11:08:35.50 ID:4FJ8yfil.net
と火曜の9:30に会社から書き込みをしている社蓄が申しております

455 :デフォルトの名無しさん:2018/07/10(火) 12:53:17.79 ID:lacLn2e2.net
9:30なら俺はまだ通勤の電車の中だな

456 :デフォルトの名無しさん:2018/07/10(火) 14:04:41.34 ID:O9mvfp6X.net
>>452
さわっちゃだめw

457 :デフォルトの名無しさん:2018/07/11(水) 21:35:10.75 ID:sDWfv/VL.net
mainメソッド内の処理において、ポリモーフィズムでnewの使い分けする時ってif文使わない方が良い?
やはりファクトリクラス作って、ファクトリのメソッド内でif文使うべきなのか?

458 :デフォルトの名無しさん:2018/07/12(木) 09:34:46.57 ID:nIR9VMIg.net
規模や使用頻度によるのでは?

459 :デフォルトの名無しさん:2018/07/12(木) 10:58:16.24 ID:4F2HS+4d.net
良いか悪いかで行ったら、別に構わない

460 :デフォルトの名無しさん:2018/07/12(木) 11:40:10.49 ID:BouHXjkD.net
まとめるとどうでもいい

461 :デフォルトの名無しさん:2018/07/13(金) 01:27:43.49 ID:xF0Xme8F.net
返答ありがとう
mainメソッドにif文はあまりつけないべきか悩んでいたのだが、そんなに拘るものでもないのかな
参考になりました

462 :デフォルトの名無しさん:2018/07/13(金) 16:30:20.76 ID:GBG+HB3a.net
よろしくお願いします。

Intent intent=getIntent();
String stdNo=intent.getStrintExtra("stdNo");

2行目のintentがインスタンスとして使われてるように見えるのですが
1行目のintent=getIntent();は、getIntent()というメソッドを変数intentに代入して
2行目で代入したgetIntent()のメソッド、getStrintExtra()を使っているということなのでしょか?

463 :デフォルトの名無しさん:2018/07/13(金) 16:37:43.58 ID:7jgvez+k.net
Javaではメソッドを変数に代入することはできない
getIntent()はIntentのインスタンスをreturnするメソッドなんだろ
getStrintExtra()でStringのインスタンスがreturnされてきて変数stdNoに入ってる二行目と一緒やん?

464 :デフォルトの名無しさん:2018/07/13(金) 16:49:49.29 ID:GBG+HB3a.net
>>463
ありがとうございます。1行目のintentはインスタンスなのですね。
インスタンスはnewで生成する以外にもreturnで取得する方法もあるのですね、勉強になります。

465 :デフォルトの名無しさん:2018/07/13(金) 19:55:16.73 ID:RuIPz3dA.net
考え方が完全に間違ってる
回答してる方も知識不足

466 :デフォルトの名無しさん:2018/07/13(金) 20:01:27.97 ID:DcLn1CNl.net
文句があるなら今からでも君が答えなさい

467 :デフォルトの名無しさん:2018/07/14(土) 00:49:26.90 ID:Qt+zgvv2.net
jdk11でjavafxが分離されるという話があるけど、
アプリにjavafxのライブラリを同梱するという形態になるんですか?

468 :デフォルトの名無しさん:2018/07/14(土) 01:52:18.14 ID:6eX3jxiA.net
>>467
分離じゃなくて廃止ね
オラクルとしては開発を放棄し、OpenJFXだけ残して提供終了
でOpenJFXというのはOracleの開発成果をGPLの下でソースを公開するだけの実体のない組織なので、開発継続の見込みはゼロ
もう無理や

469 :デフォルトの名無しさん:2018/07/14(土) 06:08:21.38 ID:KbpgtKf9.net
windowsでコマンドライン引数とかコンソールへの出力にユニコード使ってると、正しく処理できないっぽいですが、
そういうのちゃんとやってくれる定番のライブラリとかありますか?

470 :デフォルトの名無しさん:2018/07/14(土) 06:22:15.87 ID:re2UFOkZ.net
unicodeを使うとな?

471 :デフォルトの名無しさん:2018/07/14(土) 08:24:20.86 ID:rKXc4KlJ.net
>>467
これ俺も気になってる
JavaFXってJARだけでなくDLLなどのネイティブライブラリも必要なので
JavaFX(openjfx)使ったアプリの配布はプラットフォーム別に用意しないといけなくなるのかな?

472 :デフォルトの名無しさん:2018/07/14(土) 10:21:43.78 ID:zOneeAc4.net
OpenJDKやOpenJFXに部外者が参加しようと思ったら、私が提供する著作物はオラクル様が自由に使えます
絶対に訴えたりしませんっていう誓約書にサインしなきゃいけない
あれを見直さない限りコミュニティプロジェクトとしての発展はありえない
ただでさえJDK11の件でオラクルに対する不信感が高まってるのに今更誰がオラクルにケツを差し出す気になるだろう

473 :デフォルトの名無しさん:2018/07/14(土) 12:00:32.99 ID:vl2S9Vhv.net
>>472
FAXで送るやつだっけ?

474 :デフォルトの名無しさん:2018/07/14(土) 12:57:15.02 ID:Qt+zgvv2.net
JavaFXのJDKから廃止というのはJREからも廃止ですか?

OpenJDKのインストール方法を調べたらRedHatからダウンロードしろと。
しかもそれは開発者向けでエンドユーザー向けじゃない。
エンドユーザー向けJavaアプリが生き残る方法はあるのか?

475 :デフォルトの名無しさん:2018/07/14(土) 13:00:03.16 ID:cKSt/K6L.net
嘘書くなよ

476 :デフォルトの名無しさん:2018/07/14(土) 13:01:17.39 ID:Qt+zgvv2.net
どれが嘘だと思いましたか?

477 :デフォルトの名無しさん:2018/07/14(土) 13:11:09.79 ID:Qt+zgvv2.net
エンドユーザー向けのOpenJDKのインストール方法は見つからない。
つまり、環境変数の設定やコマンドラインを必要としないインストール方法が無い。

478 :デフォルトの名無しさん:2018/07/14(土) 13:19:39.74 ID:cKSt/K6L.net
すまん、oracleだね

479 :デフォルトの名無しさん:2018/07/14(土) 13:23:07.56 ID:6PGIbnJP.net
>>468
君がやればいい。

これにて一件落着。

480 :デフォルトの名無しさん:2018/07/14(土) 13:28:52.18 ID:Qt+zgvv2.net
公式が配布するOpenJDKはtar.gz形式でwindowsの標準機能で解凍できない。

GPL感染はプロセスを超えないそうなので、
OpenJDKをパッケージに同梱してしまうのは解決策になるかもしれない。
その場合、起動スクリプトを組み込む必要があるし、OpenJDKのアップデートにどう対応するのかという問題がある。
windows向けOpenJDKインストーラ&アップデータを誰かが作る事も考えられる。
しかし、公式サイトへのポーリングや自動的なファイルのDLをしていいのかどうか。

481 :デフォルトの名無しさん:2018/07/14(土) 13:30:03.02 ID:6PGIbnJP.net
>>469
windows でも cygwin 使ったり wsl 内で動かせば問題なくできるのでは?

ていうかそういうOSとか実行環境の問題をそこの中で動かされるプログラムでなんとかしようというのは考え方がおかしいのではないか?
どうしようもない場合は別としても、やはり実行環境側でやらねばならない事は実行環境側でやるべきだろう。

482 :デフォルトの名無しさん:2018/07/14(土) 13:38:51.88 ID:6PGIbnJP.net
>>480
そういうの主要な Linux ディストリビューションだと悩まなくていいのにな。ネットワーク経由でアップデートする yum だの apt だのがあるから。
Windows には Windows Update があるが、あれはMS専用でMSが受け入れてセットしてくれない限り使えないよな。

483 :デフォルトの名無しさん:2018/07/14(土) 13:39:28.58 ID:a3ey9pgq.net
ライセンス気にするようなアプリ開発するならOracleと契約結べよw

484 :デフォルトの名無しさん:2018/07/14(土) 13:44:48.39 ID:Qt+zgvv2.net
本当に自分の中でLinuxの評価が上がってる。
みんなそろそろLinuxデスクトップに移行すべきじゃないか。
ゲームエンジンはLinux向けビルドが出来るし、古いゲームでもおおむねWineで動く。

485 :デフォルトの名無しさん:2018/07/14(土) 13:58:16.02 ID:LIsDU/xs.net
>>474
スタンドアロンなJREは廃止
Java SE Subscription を契約した上でアプリに同梱して配布するのが正解
価格は、開発環境も実行環境も(!)PC1台一月あたり2.5ドルから
一日10円の御賽銭でオラクル神の手厚いサポートが受けられるんだから安いもんだよね

486 :デフォルトの名無しさん:2018/07/14(土) 14:01:28.17 ID:6hlqR+Me.net
Javaの文化変えるなよ、Java終わりか

487 :デフォルトの名無しさん:2018/07/14(土) 14:06:15.27 ID:upwDNa7V.net
リナックスでもマックでもウインドウズでも
動くソフトはこれから何で作ればいいの?

488 :デフォルトの名無しさん:2018/07/14(土) 14:15:19.81 ID:Qt+zgvv2.net
OpenJDKを使うしかない。
アプリに同梱するんだが、アップデータもJavaだから、恐らくOpenJDKを2個インストールして、
Aでアップデータを実行してBをアップデート、
次にBでアップデータを実行してAをアップデート、みたいにやるしかないだろうw

489 :デフォルトの名無しさん:2018/07/14(土) 14:19:55.25 ID:LIsDU/xs.net
>>487
Electron

490 :デフォルトの名無しさん:2018/07/14(土) 14:54:39.00 ID:Qt+zgvv2.net
OpenJDK+OpenJFXをアプリ同梱、
起動スクリプトでOpenJFXのDLLにパスを通してOpenJDKからアプリのjar起動。
とかでいける・・・のか

491 :デフォルトの名無しさん:2018/07/14(土) 15:09:18.44 ID:Qt+zgvv2.net
JavaでDLLとかのネイティブコードをアプリ毎に用意させるのは例外的で
そういう方法は確立していないし、
JavaFXのようなクライアントソフトで使われる機能は
エンドユーザー環境で構築しなきゃいけないことが多々あるわけで、
全く破滅的としか思えないが、
JavaFXは情熱的で盛り上がっているコミュニティだとか言われてる。

JavaFXはOracleJDKでしかサポートされてなかったがそれが有償化される、
しかも自分が払えばいいだけじゃなくエンドユーザーもオラクルに金払わないと使えない、
やはりクライアントソフトで使われる技術で大量のエンドユーザーが居る事が多い、
JavaFX開発者は一番フェイント食らっただろう。

492 :デフォルトの名無しさん:2018/07/14(土) 15:37:51.51 ID:gXqo7TYC.net
予想だにしない事態

493 :デフォルトの名無しさん:2018/07/14(土) 15:42:21.59 ID:4RxIMQwD.net
GUI は、HTML, JavaScript が基本。
Rails でもそう。Vue.js でも使えば?

>>480
ファイルの圧縮解凍なら、7-zip を使えば?

Windows のパッケージマネージャーなら、
NuGet, Chocolatey, Microsoft Web Platform Installer, Scoop とか

Windows10 では、NuGet, Chocolatey を使った、
MS 製のPackageManagement(OneGet)が標準搭載された

494 :デフォルトの名無しさん:2018/07/14(土) 16:15:15.01 ID:Qt+zgvv2.net
解凍処理はアップデータが動作できてる時点でなんかライブラリ使えばいいんだけど。

DLLの問題は、JNIのDLLロードと違って、JavaFXはエントリーポイントからJavaFXのクラスだから、
起動前にDLLのパスが分かっている必要がある。
だから、起動スクリプトでやることになるだろう。
しかし起動スクリプトはOS毎に用意する必要があり、Javaのメリットが薄れる。
もしオラクルがJDK11で何かそのあたりの対策を発表しなかったら、杜撰としか言いようがない。

495 :デフォルトの名無しさん:2018/07/14(土) 16:28:29.02 ID:gXqo7TYC.net
eclipse辺りに移行すんだろ

496 :デフォルトの名無しさん:2018/07/14(土) 16:40:59.62 ID:40AkJIOi.net
swtのことであると超良心的に解釈

497 :デフォルトの名無しさん:2018/07/14(土) 17:04:10.87 ID:Qt+zgvv2.net
https://www.gnu.org/licenses/gpl-faq.ja.html#IfInterpreterIsGPL
>しかし、インタープリタが他の機能(多くの場合ライブラリですが、
ライブラリである必要はありません)への「バインディング」を提供するように
拡張されている場合、解釈されるプログラムはバインディングを使うことによって
事実上それらの機能とリンクされることになります。ですから、
もしそういった機能がGPLのもとでリリースされているならば、
機能を利用している解釈されるプログラムはGPLと両立する形で
リリースされなければなりません。

OpenJDK、OpenJFXはリンク例外がついているので、
アプリに同梱しても非GPLを維持できる、と思う。
こっそりリンク例外が取り外されたりしないか注意しておく必要がある。

やはり、アプリ同梱作戦で何とか乗り切れるだろう。

Swingにすればjfx問題は無いんだが、結局oracleJDKが有償化されるから
アプリ同梱作戦は必要だから、さほど楽になるわけではない。
javaFX自体はかなり良い印象があるし。

498 :デフォルトの名無しさん:2018/07/14(土) 17:09:59.99 ID:FtH+pgzS.net
今更騒いでもなあ
Oracleに買われた時点でクライアントJavaに未来がないことなんか分かりきってたでしょ
次は乗る船を間違えないこと、間違えたと分かったらすぐに降りること
だいじなことだぞ

499 :デフォルトの名無しさん:2018/07/14(土) 17:14:54.56 ID:Qt+zgvv2.net
まだJavaで正解だったとは思ってんだよなあ

500 :デフォルトの名無しさん:2018/07/14(土) 17:30:58.33 ID:Q0JU5eRb.net
あるライブラリを使う必要が出てきて、C++用のがなくて、C#にするかJavaにするか迷って、結局Javaにしたんだけど、道を誤ったか。
また環境構築や言語の勉強に何か月もかけるなんて、うんざりするわ。

501 :デフォルトの名無しさん:2018/07/14(土) 17:51:59.42 ID:gXqo7TYC.net
FXだけだろ

502 :デフォルトの名無しさん:2018/07/17(火) 19:12:47.68 ID:sYfkxtZj.net
>また環境構築や言語の勉強に何か月もかけるなんて
なんでそんなに時間掛かるの?
二つ目以降でそんなに時間掛かるとしたら能力無さすぎ。

503 :デフォルトの名無しさん:2018/07/17(火) 19:36:53.79 ID:FdTz4k3A.net
>>502
Javaを見限ったくらいでそんなに怒らないでよ、ジャバラーさん(笑)

504 :デフォルトの名無しさん:2018/07/17(火) 19:45:05.49 ID:lbJGoJLr.net
伸びたり縮んだりしそうだな

505 :デフォルトの名無しさん:2018/07/17(火) 20:23:05.97 ID:xA2MutdF.net
配列も自由に伸び縮みしてほしい

506 :デフォルトの名無しさん:2018/07/17(火) 20:35:07.91 ID:uV16APrp.net
うまいこといった、座布団一枚山田君

507 :デフォルトの名無しさん:2018/07/17(火) 20:53:49.04 ID:BDOR0qc4.net
>>503
よう、無能。
何カ月もかけるとかねーわ。
Javaは最も習得が楽な部類の言語だから他の言語は1年はかかるんじゃないかと思うけど頑張ってな。

508 :デフォルトの名無しさん:2018/07/17(火) 20:57:13.31 ID:KCeYVDaR.net
javaはOS環境の細かいこと覚えなくていいから楽だよな

509 :デフォルトの名無しさん:2018/07/17(火) 21:20:10.72 ID:lbJGoJLr.net
Javaそのものは楽だがライブラリが多くて最初は何をやる時に何を使ったら良いかよく分からなくて大変かも。
わからなくて自作してしばらくしてからライブラリの中から発見するとかなw

510 :デフォルトの名無しさん:2018/07/17(火) 21:22:14.95 ID:fsANPbWs.net
>>507
それを◆BrBq2CJg6HGdに言い聞かせていただけますか

511 :デフォルトの名無しさん:2018/07/17(火) 21:30:04.34 ID:WkP7uW+n.net
Javaは完ぺきな言語に見えたけど、色々建て増しして便利にはなったけど当初の完全さが失われていったな。

512 :デフォルトの名無しさん:2018/07/17(火) 22:04:55.58 ID:kkggISKf.net
そうかな?
俺が使い始めた頃は重くて使い物にならんってのが評価だったような

513 :デフォルトの名無しさん:2018/07/18(水) 04:38:41.12 ID:md6d4tqx.net
せやね、セキュリティもがちがちだったし

514 :デフォルトの名無しさん:2018/07/18(水) 08:20:05.70 ID:WrUVLEXC.net
C#でいいよ
速いし楽だしMicrosoftの安心感最高

515 :デフォルトの名無しさん:2018/07/18(水) 08:35:05.13 ID:ouSD5X5G.net
ハハワロスwww

516 :デフォルトの名無しさん:2018/07/18(水) 08:56:30.75 ID:2isplW6I.net
スレチ、おま宗

517 :デフォルトの名無しさん:2018/07/18(水) 09:10:55.41 ID:qdiAbYc/.net
正直オラクルに比べたら100倍マシ
今は亡きJ#のように、Javaを.NET Core上に実装してみんなで移住するのが一番幸せな形だと思うわ
オラクルはAPIの著作権とかいう謎ワードで潰しにくるだろうけど

518 :デフォルトの名無しさん:2018/07/18(水) 09:53:18.89 ID:9IEVAZpR.net
>>512
Java Applet がブラウザで動いたお陰で世に広まりはしたが初期化で時間が掛かりすぎ、そのため Java は遅いという印象もより多くの人に広めることになってしまったのではないかと思う。
そして確か1998年にはLinusがJavaは死んだと言っている。20年前だ。確かにPCのデスクトップ環境では死んだも同然だった。
まあしかしLinuxもクライアント環境としては市場に受け入れられず死んだも同然で、みんなしてサーバや組み込み機器に逃れた感じではある。
クライアント環境でのLinuxとJavaはAndroidとしてスマホに組み込まれなければこんなに広まることはなかったかも知れない。

519 :デフォルトの名無しさん:2018/07/18(水) 11:17:49.53 ID:ouSD5X5G.net
>>517
30億のデバイスで使われてるんだが?

520 :デフォルトの名無しさん:2018/07/18(水) 11:18:55.86 ID:ouSD5X5G.net
ロンドン証券取引所で大失敗したドトネトは信用できぬ

521 :デフォルトの名無しさん:2018/07/18(水) 11:32:18.31 ID:7RCNVxRQ.net
>>518
20年前っていうとダイアルアップ主流の時代だっけ?
時代を先取りしすぎたんだなぁ
どっちにしろセキュリティ的にだめな気がするけど

522 :デフォルトの名無しさん:2018/07/18(水) 12:06:42.81 ID:tghCYv44.net
失敗例でいうとJavaはあちこちで失敗してるね
日常すぎてわざわざ話題にならんけど

523 :デフォルトの名無しさん:2018/07/18(水) 12:37:19.55 ID:ouSD5X5G.net
>>522
NASDAQはJavaで動いています
Javaの失敗例なんて聞いたことないわ

524 :デフォルトの名無しさん:2018/07/18(水) 13:33:17.95 ID:9IEVAZpR.net
Write once, Bug anywhere.

OS毎にバグの入り具合が違う。

525 :デフォルトの名無しさん:2018/07/18(水) 13:55:40.65 ID:imuZ+lX2.net
初心者質問で恐縮ですが、世間様では初期化不要なコンストラクタも一応書くのでしょうか?省略するのでしょうか?

派遣の年上の人からルールだから書けと言われ気になりまして

526 :デフォルトの名無しさん:2018/07/18(水) 14:24:01.60 ID:JHZwBCBg.net
>>523
だからわざわざ話題にするほど珍しくないってことだよ

527 :デフォルトの名無しさん:2018/07/18(水) 15:01:03.41 ID:hQiorlXz.net
IBMとかしょっちゅう失敗してるな

528 :デフォルトの名無しさん:2018/07/18(水) 15:09:29.88 ID:ouSD5X5G.net
>>526
失敗例ないじゃんw

529 :デフォルトの名無しさん:2018/07/18(水) 15:10:24.92 ID:ouSD5X5G.net
Javaの有名な失敗例を一つでもいいから挙げてみろよ

530 :デフォルトの名無しさん:2018/07/18(水) 15:11:32.95 ID:ouSD5X5G.net
>>527
IBMはセールスフォースでも裁判沙汰だから
言語の問題じゃない、マネジメントの問題

531 :デフォルトの名無しさん:2018/07/18(水) 15:13:11.38 ID:ouSD5X5G.net
伊達に30億のデバイスで動いてるわけじゃねえぞ
てめえらあんま舐めてっとあれだからな

532 :デフォルトの名無しさん:2018/07/18(水) 15:14:21.70 ID:ouSD5X5G.net
>>525
一般的には書かなくていいものは書かない

533 :デフォルトの名無しさん:2018/07/18(水) 15:35:58.01 ID:6/qiKP15.net
>>525
「初期化不要」とはどういう意味?
フィールドが一切なく、static(みたいな)クラスのことか?
デフォルトコンストラクタのことなら、「初期化不要」とは言わないぞ。

534 :デフォルトの名無しさん:2018/07/18(水) 16:30:02.33 ID:4ELcifB5.net
ぺろぺろ

535 :デフォルトの名無しさん:2018/07/18(水) 17:47:21.24 ID:ouSD5X5G.net
あんあん!

536 :デフォルトの名無しさん:2018/07/18(水) 17:57:49.02 ID:OmO21Xy3.net
なんとかぎゃふんといわせたい(笑)
>派遣の年上の人からルールだから書けと言われ気になりまして

537 :デフォルトの名無しさん:2018/07/18(水) 20:28:43.76 ID:E4ArJsFy.net
8月からIT企業に入社します
研修があるので、早めに予習しておきたいのですが
開発環境をどうしたらいいか困ってます

VBAでjavaをすると電話で聞いたのですが
見たところjavascriptでしか見たらず、開発環境はイクリプスでしかネットでも記事が出てきません
VBAで開発環境にしている方はどのように行ってますでしょうか

538 :デフォルトの名無しさん:2018/07/18(水) 20:39:16.63 ID:U6m34nVN.net
次の仕事を探す

539 :デフォルトの名無しさん:2018/07/18(水) 20:39:56.57 ID:3T+bsJq5.net
>>537
>VBAでjavaをする

それは一体どういう状況なのか?
何か聞き間違えていないか?

それと、開発環境は君が決めても構わないのか?
普通は会社で指定されてたりしないか?

540 :デフォルトの名無しさん:2018/07/19(木) 00:23:47.65 ID:WcB0Ld3E.net
>>539
予習するだけです
C#は余裕してるので問題ないんですが
そもそもVBAでjavaを作動させることはできるんでしょうか?

541 :デフォルトの名無しさん:2018/07/19(木) 00:47:04.50 ID:I2KiLRYY.net
VBAからJavaで作ったアプリを起動する…とかなのか?
VBAやるならMSExcelが必要

542 :デフォルトの名無しさん:2018/07/19(木) 07:30:41.13 ID:X7flfBN8.net
>>533
はいフィールドのない小さいクラスのデフォルトコンストラクタです

アクセサメソッドみたいに丁寧に書くのがしきたりなのか世間様の動向を知りたく

543 :デフォルトの名無しさん:2018/07/19(木) 07:39:20.31 ID:B62Oo3TM.net
>>542
仕事の規模にもよるが、ソースコードを保守しやすくするためにコーディングの方法が決められている(コーディング規約がある)現場が殆ど
ちゃんと統一されてるなら従ったほうが無難

仮にバグが発生してあなたの追加部分が規約に従ってない場合、面倒くさいことが発せあする可能性がある

544 :デフォルトの名無しさん:2018/07/19(木) 08:01:56.49 ID:X7flfBN8.net
>>543
なるほど、そこはルールに従うのが無難ということですね

参考になります

545 :デフォルトの名無しさん:2018/07/19(木) 08:06:40.53 ID:SUmbWwrd.net
>>542
フィールドがないならインスタンス生成を禁止するためにprivateコンストラクタを必ず定義すべきなんじゃないの?

546 :デフォルトの名無しさん:2018/07/19(木) 08:14:00.46 ID:H+BjTpO8.net
そんな細いことまで規約で定めている現場はソフトウェアの品質が低い
俺の経験ね

品質管理担当とか専任者がいても規約に沿っているかという杓子定規な現場が多く
規約化できないビジネスロジックの妥当性はなぜかチェックしない傾向あり

しょーもない規約がなる揺らぎを許容する現場は
チェックリストに沿った均一的な検査はできないものの
分かっている人がビジネスロジックを査読しようとする傾向がある

547 :デフォルトの名無しさん:2018/07/19(木) 08:16:26.97 ID:MYiqAgsV.net
ルールに従っている限り、問題が起きた場合はルールを作った奴の責任
これ典型的なSI業界の考え方
上から下までSIに身を置く限りは極めて重要な大原則ではあるが、悪く言えば責任逃れだ
この例に限って言えばわざわざ破って余計なリスクを負うほどの価値があるとは思わないが、今後同様に自分で責任を負わないという判断をするときには
それがエンジニアとしての自分の価値を下げているということを頭の片隅に置いておいたほうがいい
どんな業界でも、本当に上へ行く奴は自己責任でやるもんだ

548 :デフォルトの名無しさん:2018/07/19(木) 08:21:20.97 ID:B62Oo3TM.net
>>544
俺も大体>>546と同じ考えだから「規約!」「厳守!」という凝り固まった考えにはならないように注意な

チェックする側が知識ない人って事もあるから余計に規約に従ってるか重視するんじゃないだろうか

549 :デフォルトの名無しさん:2018/07/19(木) 08:38:28.86 ID:B62Oo3TM.net
>>544
後あれだ
なんでこんな規約があるんだって考えるのも最初は勉強になるぞ

件のデフォコン必須!とかはリフレクション多用してて落ちたことがあったからそのまま規約になった〜とか理由があるかもしれない

550 :デフォルトの名無しさん:2018/07/19(木) 08:46:17.55 ID:5x41Wecj.net
javaはもうwebの世界でしか生きていけないのかな

551 :デフォルトの名無しさん:2018/07/19(木) 08:53:04.66 ID:Op5duy3q.net
>>550
kindleもandroidもJavaで動いてるし
ただ単にwebアプリが増えてるだけだと思う

552 :デフォルトの名無しさん:2018/07/19(木) 08:55:07.02 ID:Op5duy3q.net
webに向いてるというよりはwebの世界が広がっただけ

553 :デフォルトの名無しさん:2018/07/19(木) 08:59:35.72 ID:Op5duy3q.net
>>547
話を一般化しすぎじゃないか
SIを嫌ってるだけだろ

554 :デフォルトの名無しさん:2018/07/19(木) 09:02:43.68 ID:Op5duy3q.net
スカラより簡単ピエチピより厳密
アプリサーバがたくさんあって人材も豊富
作っているのは世に名も高きオラクル
Java最強伝説

555 :デフォルトの名無しさん:2018/07/19(木) 10:26:37.51 ID:BQmzByzh.net
雑談終了

556 :デフォルトの名無しさん:2018/07/19(木) 11:32:42.94 ID:MIkQQrXR.net
Kotlinもよろしく

557 :デフォルトの名無しさん:2018/07/19(木) 12:41:54.56 ID:hUcifAQw.net
>>551
Andoroidのjavaはもう終わりかな

558 :デフォルトの名無しさん:2018/07/19(木) 13:22:28.48 ID:KtebpVot.net
AndroidはもうKotlinでいいしな

559 :デフォルトの名無しさん:2018/07/19(木) 13:35:56.12 ID:lzwulHPo.net
Javaの知識があってのKotlinだけどな。
Nativeは知らんけど。

560 :デフォルトの名無しさん:2018/07/19(木) 14:46:46.68 ID:Op5duy3q.net
>>557
終わらぬだろ、終わらぬよ
終わりません!

561 :デフォルトの名無しさん:2018/07/19(木) 18:49:13.04 ID:6E4STiKC.net
googleはjavaでオラクルに一兆円の損害賠償払うのにjavaは捨てられないのかな

562 :デフォルトの名無しさん:2018/07/19(木) 18:52:53.52 ID:6E4STiKC.net
オラクル社長はドラ息子に巨万の富を残してるのにまだ足りないみたいね

andoroidの巨額提訴にjava有償化に

563 :デフォルトの名無しさん:2018/07/19(木) 20:41:02.41 ID:m5MPu7YP.net
>>546
良いこと言うね
Java使いにもまともな人居たんだ

564 :デフォルトの名無しさん:2018/07/19(木) 21:50:50.84 ID:13R/sezRb
ここであっているのかわかりませんが、
Javaのエラーについて質問です。
音楽を作るソフトを起動するとこんなエラーが表示されてソフトが機能しません。
https://imgur.com/uZ8zwHL

もし対処法、ご存知の方がいたら、教えてもらえませんか。

565 :デフォルトの名無しさん:2018/07/19(木) 21:52:48.51 ID:Sjf7ku63.net
寝言は寝て言え

566 :デフォルトの名無しさん:2018/07/20(金) 03:33:50.65 ID:KKufvgV7.net
Java使いに「も」って、まともな人が居ない事前提?

36歳がそうだからと言って全体を括るのは乱暴かと

567 :デフォルトの名無しさん:2018/07/20(金) 22:23:27.83 ID:58oNqGBsN
>>564
音楽を作るソフトの場所と素材の場所が分かりにくいんだがそれじゃないか?
javaと一緒にPrograms直下とかが結果見るのに分かりやすい。まあ正しければどこでも良い。

音楽を作るソフトからエラーが出てるなら参照のコンパイルエラーがある可能性がある。
音楽を作るソフトがエラーを吐いて出てこないならjavaファイルならソースにミスがあるから見直してみてくれ。

568 :デフォルトの名無しさん:2018/07/20(金) 22:37:40.97 ID:58oNqGBsN
>>564
音楽を作るソフトの場所と素材の場所が分かりにくいんだがそれじゃないか?
javaと一緒にPrograms直下とかが結果見るのに分かりやすい。まあ正しければどこでも良い。

音楽を作るソフトからエラーが出てるなら参照のコンパイルエラーがある可能性がある。
音楽を作るソフトがエラーを吐いて出てこないならjavaファイルならソースにミスがあるから見直してみてくれ。

569 :デフォルトの名無しさん:2018/07/23(月) 06:03:22.92 ID:a5odQemo.net
javaの致命的に糞な所を3つ挙げるとしたら何?
おまけで他言語よりこここだけは良いということ1つ
有料化になること以外でよろ

570 :デフォルトの名無しさん:2018/07/23(月) 07:40:33.50 ID:tja2UxRY.net
糞なところ
・貧弱なジェネリクス、極めて非直感的なワイルドカード
・直交性が目的化していて利便性が犠牲になっている標準ライブラリ群
・プログラマの平均スキルの低さ
良いところ
・安い単価でプログラマを大量に調達できる

571 :デフォルトの名無しさん:2018/07/23(月) 07:46:24.27 ID:r2NgEomY.net
致命的と思うところはない
だって致命的な欠点があったらJava使うのやめてるだろ

Javaの良いところはクラスライブラリと開発コミュニティ
Java自体の言語仕様は今となっては秀でている点はなく後発言語のほうが優れている
しかしJavaの豊富なクラスライブラリに多言語が追い付くの容易ではない

Java開発者は標準クラスライブラリに沿って・似せてクラス設計する人が多い印象
そのため外部ライブラリを見つけてきてもインターフェイスに一貫性があり使いやすいことが多い

昔、Perlでもモジュールを集めるCPANというものがあったけど一貫性がなくモジュールごとに作法がバラバラだった

Javaの良さは世界中の開発者が設計ポリシーを共有していて作られたライブラリが相互運用しやすいエコシステムにある

572 :デフォルトの名無しさん:2018/07/23(月) 11:24:26.77 ID:ZjQpUEmE.net
オラクルかな

573 :デフォルトの名無しさん:2018/07/23(月) 18:43:51.10 ID:dX14gRVE.net
それをいっちゃあおしめえよ

574 :デフォルトの名無しさん:2018/07/23(月) 19:32:54.33 ID:IsAC2rDC.net
変数宣言が冗長すぎ
Date date = new Date()
Date型って最初に宣言してんだからnewもDateで基本問題無いやろ

575 :デフォルトの名無しさん:2018/07/23(月) 19:50:26.60 ID:EvGqybr2.net
>>574
Object o = new String() ;
ってやりたいこともあるから。

576 :デフォルトの名無しさん:2018/07/23(月) 19:56:00.68 ID:dX14gRVE.net
型推論してくれるKotlinはナイスだな

577 :デフォルトの名無しさん:2018/07/23(月) 20:09:10.55 ID:stexMLiC.net
君らvar使ってないのか

578 :デフォルトの名無しさん:2018/07/23(月) 20:11:54.87 ID:RCR4OhGD.net
moduleが難しすぎて突破できないから
Java8で行くお!

579 :デフォルトの名無しさん:2018/07/23(月) 20:14:19.78 ID:cHxBvLXH.net
そういや最近宣言と同時にnewってあんましてないな

580 :デフォルトの名無しさん:2018/07/23(月) 20:17:45.49 ID:m6zef+c0.net
varはポリモーフィズムとは相容れないから。

581 :デフォルトの名無しさん:2018/07/23(月) 20:27:02.30 ID:ddy5leO9.net
>>580
相容れないなんてことは無いだろ。
限られたシチュエーションで使えないだけだ。

582 :デフォルトの名無しさん:2018/07/23(月) 22:14:25.10 ID:IsAC2rDC.net
>>575
それならそういうときはそれでいいけど、
Date date;
みたいに省略したときは自動でDateをnewしてくれ

583 :デフォルトの名無しさん:2018/07/23(月) 22:16:05.03 ID:IsAC2rDC.net
略するところを間違えた、まあ空気読んでくれ

584 :デフォルトの名無しさん:2018/07/24(火) 04:21:52.30 ID:/tfIts3n.net
Ky ky= new Ky();

585 :デフォルトの名無しさん:2018/07/24(火) 09:02:46.76 ID:3bmjSXS4.net
Kotlin使えばよい
後から作った言語なのでそういう細かいことは解消されている

586 :デフォルトの名無しさん:2018/07/24(火) 09:06:29.72 ID:WgNXUi2L.net
>>582
とてつもなく浅い知識で批判とか恥ずかしくないの?

587 :デフォルトの名無しさん:2018/07/24(火) 09:40:11.61 ID:uOakFE5H.net
そんなに浅くない

588 :デフォルトの名無しさん:2018/07/25(水) 07:32:49.10 ID:BeP5/XfH.net
>>585
ははーん、さてはおめー何もわかってねーな

589 :デフォルトの名無しさん:2018/07/25(水) 09:27:06.98 ID:GNtg4sP8.net
>>588
というと?

590 :デフォルトの名無しさん:2018/07/25(水) 19:09:16.20 ID:s14gtaOU.net
否定だけして根拠示さないのは例の人かな?

591 :デフォルトの名無しさん:2018/07/25(水) 20:01:38.85 ID:ekeRKo17.net
「ははーん、さてはおめー何もわかってねーな」という台詞を言ってみたかっただけの人か?

592 :デフォルトの名無しさん:2018/07/25(水) 20:12:44.09 ID:QfwTkRmU.net
下記ブログの例題が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();//次の要素を取得します。

---
例題そのままをコピペしてもエラーになるので自力解決が出来なくて困っています

593 :デフォルトの名無しさん:2018/07/25(水) 20:17:15.54 ID:GZRArLRs.net
>>592
Iterator it = arr.iterator();
これを
Iterator<Integer> it = arr.iterator();
こうや!

594 :デフォルトの名無しさん:2018/07/25(水) 20:20:52.44 ID:QfwTkRmU.net
>>593
それはやったのですが、エラーになりましたね
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
integer を型に解決できません

595 :デフォルトの名無しさん:2018/07/25(水) 20:27:16.64 ID:QfwTkRmU.net
自己解決しました
エラーのpopアップに表示されていたキャストをすれば解決しました

もしかしたらブログを執筆していた頃には問題の無かった書き方が厳密になったとかなのでしょうか?
原因が例題書かれた方のミスなのか仕様変更なのか意味が分からないままエラーだけ出なくなった状況ですが次へ進みます。
ありがとうございました

18行目(変更前
int data = it.next();//次の要素を取得します。

18行目(変更後
int data = (int) it.next();//次の要素を取得します。

596 :デフォルトの名無しさん:2018/07/25(水) 20:30:23.90 ID:QfwTkRmU.net
そもそもなのですがIteratorって使いますか?
他にも配列などの操作方法あるようですし
どうしてこんな面倒な書き方で参照したりするのか疑問です

597 : :2018/07/25(水) 20:31:46.04 ID:2d5RfbzO.net
>>592
https://ideone.com/qLRSSK
Object を Iterator にキャストしてオートボクシングを利かせてみた

598 :デフォルトの名無しさん:2018/07/25(水) 20:40:39.19 ID:QfwTkRmU.net
>>597
ありがとうございます

599 :デフォルトの名無しさん:2018/07/25(水) 20:51:02.31 ID:ITmWCwNQ.net
>>595
それは解決になってない。
キャストで逃げたら、ジェネリック使う意味がなくなる。

600 :デフォルトの名無しさん:2018/07/25(水) 20:54:37.41 ID:GZRArLRs.net
>>594
integerじゃなくてIntegerだよ
https://paiza.io/projects/EqWeDViwiv4OmZldGaHtNA

601 :デフォルトの名無しさん:2018/07/25(水) 21:27:25.94 ID:GZRArLRs.net
>>597
int data = (int)it.next();
int data = (Integer)it.next();
これどちらもオートボクシングが行われてますよ
プリミティブ型で格納されてるわけじゃないっすから

オートボクシング使わずに書くならこう!
int data = ((Integer)it.next()).intValue();

602 :デフォルトの名無しさん:2018/07/25(水) 21:49:55.62 ID:QfwTkRmU.net
>>600
13行目
Iterator<Integer> it = arr.iterator();
自分<integer>でミスタイプしてましたねすみません

>>601
勉強になります

>>これどちらもオートボクシングが行われてますよ
>>プリミティブ型で格納されてるわけじゃないっすから
まだ意味がわからないので調べてみます

>>599
>>キャストで逃げたら、ジェネリック使う意味がなくなる。
まだ意味がわからないので調べてみます

ありがとうございます

603 :デフォルトの名無しさん:2018/07/25(水) 22:28:09.59 ID:QfwTkRmU.net
>>592
の原因と教えていただいたことを自分なりに調べた結果のまとめと確認です
(連投すみません

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型のオートボクシング機能が働いている

604 :デフォルトの名無しさん:2018/07/25(水) 22:28:36.05 ID:QfwTkRmU.net
>>603
これで合ってますか?
最後の「これはInt型とInteger型のオートボクシング機能が働いている」のかちょっとまだ不安です
キャストはしてないけどオートボクシングが働いてたら意味がない?
このあたりがまだよく理解出来てないと思います
>>601 これをふまえると・・・

>>オートボクシング使わずに書くならこう!
>>int data = ((Integer)it.next()).intValue();

13行目(変更後
Iterator<Integer> it = arr.iterator();

18行目(変更後※
int data = it.next().intValue();//次の要素を取得します。

※ここまでやらないと意味が無いのでしょうか??
一応どちらも正常に結果出てますが内部的に違いがあるのか不安です?

605 :デフォルトの名無しさん:2018/07/25(水) 22:37:49.97 ID:GZRArLRs.net
>>604
オートボクシングはプリミティブ型とラッパークラスの変換を
自動で行う仕組みのことで

毎回、↓こう書くの面倒だよね
int data = it.next().intValue();

じゃあ↓こう書けるようにしよう
int data = it.next();

ということで導入されたものだから積極的に使ったら良いよ

606 :デフォルトの名無しさん:2018/07/25(水) 22:44:09.05 ID:QfwTkRmU.net
>>605
Iterator<Integer> it = arr.iterator();
int data = it.next();

オートボクシングは便利機能なので使ってOKで
.intValue();が自動的に省略されてるだけで結果は同じ

これで解決ってことですね!納得しました!
ありがとうございました

607 :デフォルトの名無しさん:2018/07/25(水) 22:44:22.96 ID:+qk7Pgth.net
だね
Integerからintへの変換ではインスタンス生成されないし
intからIntegerへの変換でも数字が小さければインスタンスは生成されない
インスタンス生成を抑えるために小さな数字はあらかじめIntegerオブジェクトが作られていて使い回されるようになっているから
値オブジェクトみたいな感じ

コスト気にするよりオートボクシングを積極的に使って可読性の高いコードを書こう

608 :デフォルトの名無しさん:2018/07/25(水) 22:46:30.24 ID:GZRArLRs.net
>>603
ジェネリクスで型を指定すれば、型が間違ってたときにコンパイルエラーに
なってすぐに気づくことができるのだけれども

ジェネリクスで型を指定しないと、型が間違っててもエラーにならないのよ
実行してデータが処理されないとコードが間違ってるかわからぬのよね
エラーが起きないデータもあったりするとデバッグが超大変

ジェネリクスが使えるときは型を指定して使ったが良いよ

609 :デフォルトの名無しさん:2018/07/25(水) 22:56:34.68 ID:QfwTkRmU.net
>>607-608
>>コスト気にするよりオートボクシングを積極的に使って可読性の高いコードを書こう
>>ジェネリクスが使えるときは型を指定して使ったが良いよ

質問で丁寧に回答していただきさらにアドバイスまでいただき感謝です!
勉強になりますありがとうございます!

610 :デフォルトの名無しさん:2018/07/26(木) 00:12:38.71 ID:5ROtQy7H.net
>>592
それ原因が分かったぞ。(勘のいい奴なら既にわかっていると思うが)。

そのブログのページのソースのこう表示されてる個所あるだろ。

Iterator it = arr.iterator();

この部分の HTML のソースを見てみたらこうなってた。

Iterator<Integer> it = arr.iterator();

しかしこの通りに表示させたいなら HTML 文書の中ではこう書かねばならない。

Iterator&lt;Integer&gt; it = arr.iterator();

他の同じような記述の個所はこういう変換をやっているのにこの部分だけ忘れており
<Integer> 部分がブラウザによって HTML のタグと解釈されて丸ごと表示されない
状態になっていた、ということ。

611 :デフォルトの名無しさん:2018/07/26(木) 00:23:57.38 ID:Hk2Eswys.net


612 :デフォルトの名無しさん:2018/07/26(木) 01:12:56.68 ID:3Q0DG2FF.net
>>610
よく見つけられましたね凄いです!
どなたかがブログへご指摘されてくださったようで確認しようと再度HP確認したら既に修正されていました!
あまりの速さに2度驚きました

この質問スレにもブログにも勉強するのにとても助かっています
いつもありがとうございます

613 :デフォルトの名無しさん:2018/07/26(木) 09:12:21.23 ID:1RynmuAu.net
>>610


614 :デフォルトの名無しさん:2018/07/26(木) 13:20:41.96 ID:EM3EzxKL.net
    ./__.))ノヽ    
    .|ミ.l _  ._ i.)    わしが指摘した
   (^'ミ/.´・ .〈・ リ    
    .しi   r、_) |            ______
     |  `ニニ' /             |  | \__\___
  ___.ノ `ー―i´             |  |   |= |iiiiiiiiiii|
/⌒ヽ  \____/\            |  |   | =. | !!!!!!!|
|   ヽ____| \__. __    |  |   |三 |_「r.、
|  //     // ̄.\ //⊃ヾ)   |__|_/(  ) ̄ ))
ヽ ______//r_/| |.||⌒ヽ〜〔 ̄ ̄! ̄ ̄ ̄/ ̄ ̄\((

615 :デフォルトの名無しさん:2018/07/26(木) 20:19:44.88 ID:l6j0Y1pF.net
定義されてるディレクトリ配下のログが誰かに開かれてたら何もしないって処理作りたいんですけど、ファイルが誰かから開かれてるかを調べる方法ありますか?

616 :デフォルトの名無しさん:2018/07/26(木) 20:22:42.75 ID:l6j0Y1pF.net
古くなったログの削除の為に使用するためです

617 :デフォルトの名無しさん:2018/07/26(木) 20:39:32.04 ID:9i/IJhFr.net
自分でそのファイルを読み取り排他で開いてみるしかない
失敗したら他のプロセスがオープンしているということ

排他(副作用)なしでファイルのロック状態を知る方法はない

618 :デフォルトの名無しさん:2018/07/26(木) 21:15:30.96 ID:l6j0Y1pF.net
>>617
ありがとうございます。
明日試してみます!

619 :デフォルトの名無しさん:2018/07/26(木) 21:33:54.42 ID:ekiha7MK.net
うーんどうなんだろう、設計

620 :デフォルトの名無しさん:2018/07/27(金) 02:20:59.11 ID:O4NPrPXG.net
>>615
Linux の場合は fuser コマンドを使うと指定のファイルをオープンしているプログラムのプロセスIDが分かる。
何も出力がなければ開いているプロセスはない。

他のUNIX系OSにもこのコマンドはあるかも知れない。Windows の WSL にはこのコマンドはあった。

その他のOSではどうやるか知らないが、もし fuser コマンドがあるのならそれを使えば同じようにできるんじゃないかと思う。

Windows の場合は他のプロセスが開いている最中にリネームしようとするとエラーになるそうなのでこれを利用するという手があるようだ。
但し同じ方法はOSが違ったら使えない(例えばLinuxやUNIX系OSでは使えない。WSLはわからない)。
https://code.i-harness.com/ja/q/153800

621 :デフォルトの名無しさん:2018/07/27(金) 06:07:34.18 ID:br8yoTOu.net
paiza.ioってローカルPCのファイルやフォルダ操作するコードは実行出来ないですか?

622 :デフォルトの名無しさん:2018/07/27(金) 12:15:33.71 ID:4+ImbG1U.net
>>617
ログを開くアプリケーションによってはロック状態を認識できませんでした。
FileChannelクラスのtryLookメソッドを使いました。
OSがcentosでLibreOfficeで開いてるときはロック状態でしたが、geditで開いたときはロックされてなかったです。
何か初心者がおかしやすいミスとかってありますかね。
もう諦めてるんですがgeditが特殊なんですかね

623 :デフォルトの名無しさん:2018/07/27(金) 12:16:37.86 ID:4+ImbG1U.net
gedit以外のテキストエディタでも同じでしたね
ロックの確認できません。

624 :デフォルトの名無しさん:2018/07/27(金) 12:58:52.13 ID:ki81FzEq.net
普通はしないよ。
一々ロックしてたら、たとえばGitなんか阿鼻叫喚の地獄になる。

625 :デフォルトの名無しさん:2018/07/27(金) 13:04:46.00 ID:4+ImbG1U.net
>>624
そうなんですね

626 :デフォルトの名無しさん:2018/07/27(金) 13:26:56.82 ID:EBOSMkzO.net
>>622
UNIX系OSではオープンしただけでは普通はロックまで掛からなくて、別途 flock() したり fcntl() でロックするようになっている。なので本当に必要な場合しかロックしないのが普通だ。

オープンしてるかどうかだけ確認したいなら fuser コマンドや lsof コマンドを使った方が楽だ。
Linux限定で良いなら /proc ディレクトリ以下を自分で探ってもできるけどね。
それだと多分本当にLinuxのみになるし fuser や lsof も Linux 用なら中で同じことしてるだろうから任せた方が良い。

627 :デフォルトの名無しさん:2018/07/27(金) 14:29:19.42 ID:4+ImbG1U.net
>>626
色々教えて下さりありがとうございます。

628 :デフォルトの名無しさん:2018/07/29(日) 02:53:34.15 ID:noej9t8s.net
javaのバージョンって1.8だったり8だったり表記が複数あるようですが何なんですかこれは

629 :デフォルトの名無しさん:2018/07/29(日) 04:29:48.18 ID:SHCnQYdt.net
なんなんでしょうね

630 :デフォルトの名無しさん:2018/07/29(日) 05:54:37.87 ID:Oaphdh9V.net
初見殺し

631 :デフォルトの名無しさん:2018/07/29(日) 08:38:57.85 ID:7lOBGcOb.net
>>628
Javaのバージョン
https://so-zou.jp/software/tech/programming/java/introduction/version/
意外と知らないバージョン表記・数字の豆知識
http://www.atmarkit.co.jp/ait/articles/1003/26/news106.html

理由はよくわからないが、やはり営業的な理由なんじゃないだろうか。
バージョン番号が大きい方が他の製品よりも良いものであるかのような印象を与えられるから。

Perlなんかは(フリーソフトで誰にも売る必要がないためか)これの逆をやってしまい、大きな変更が
あったのにほんのちょっとしかバージョン番号を上げなかったためにほとんど違いがないと誤解
された事があり、それでその後はバージョン番号の振り方のルールを変えた。

632 :デフォルトの名無しさん:2018/07/29(日) 13:22:46.86 ID:pFjYaTQt.net
>>621
ブラウザから、自分のPC 内にアクセスできたら、大変!

何でも盗み放題w
すべての情報が、どこかのサーバーに送られてしまう

633 :デフォルトの名無しさん:2018/07/29(日) 21:11:31.52 ID:JZa4OXPE.net
eclipseをphoton にしてワークスペースをそのまま引き継ごうとしたら実行できなくなっちゃった。どうすればいいか教えてちょ

634 :デフォルトの名無しさん:2018/07/29(日) 21:23:30.06 ID:JZa4OXPE.net
eclipseをphoton にしてワークスペースをそのまま引き継ごうとしたら実行できなくなっちゃった。どうすればいいか教えてちょ

635 :デフォルトの名無しさん:2018/07/29(日) 21:46:32.56 ID:sUhDPIHz.net
ごめんちょ

636 :デフォルトの名無しさん:2018/07/30(月) 05:51:28.50 ID:HJqNjAI+.net
>>634
${HOME}.eclipse
を削除してみたらどうだろ

workspaceをバックアップして
空にして、インポートで取り込むとか

637 :デフォルトの名無しさん:2018/07/31(火) 23:16:57.30 ID:ZNFzWxLv.net
初歩的な質問になるんですが異なる2つのクラスで1つの値を共有したいときってどういったやり方あります?
class a
String str

class b
a.setStr

class c
a.getStr
大分省略してますがこんなことをやりたいです。
実行順はbで更新した後にcで取得

638 :デフォルトの名無しさん:2018/07/31(火) 23:22:07.36 ID:3ipQI8/S.net
クラスbとcのメンバにaクラスのフィールドをもちbとcのコンストラクタでaを設定する

639 :デフォルトの名無しさん:2018/07/31(火) 23:30:21.51 ID:ZNFzWxLv.net
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のインスタンスって別物扱いになりません?

640 :デフォルトの名無しさん:2018/07/31(火) 23:31:13.26 ID:0/QW8S54.net
>>639
外でnewして渡せ

641 :デフォルトの名無しさん:2018/08/01(水) 00:58:32.44 ID:r0ZYJdIw.net
>>640
どんな感じです?
できたらイメージ貰いたいです

642 :デフォルトの名無しさん:2018/08/01(水) 06:25:06.11 ID:IkENlkBK.net
new a
new b(a)
new c(a)

643 :デフォルトの名無しさん:2018/08/01(水) 07:48:14.65 ID:3Ruau8S/.net
jdk11 ea でローカルswing アプリテストしたいのですが、
・jdk11 ea openjdkを取ってくる
・展開して適当なパスに置く
・path/to/openjdk/bin/java -jar myapp.jar
で起動出来るのでしょうか?

644 :デフォルトの名無しさん:2018/08/01(水) 10:26:14.54 ID:198aEqhp.net
やってみりゃいいじゃん

645 :デフォルトの名無しさん:2018/08/02(木) 02:22:35.17 ID:reX89mAv.net
通信の優先度を決める事はできますか?
でかいファイルを送受信するけど、他のアプリに影響を出したくなくて、
低い優先度で送りたい。

646 :デフォルトの名無しさん:2018/08/02(木) 02:39:35.74 ID:vClc7nAi.net
>>645
自分でゆっくり送ればいいのでは?

647 :デフォルトの名無しさん:2018/08/02(木) 07:50:56.22 ID:yvP4ulwr.net
プロセス・スレッドの優先度は、設定できないの?

648 :デフォルトの名無しさん:2018/08/02(木) 08:06:14.31 ID:SwjRc7UR.net
プロセスの優先度は知らんがスレッドの優先度なら
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();

649 :デフォルトの名無しさん:2018/08/02(木) 08:10:14.12 ID:lJdnLKf/.net
通常プロセスはOS側で管理するべきと思ってるからあまり考えたことないな

どうしてもやりたいなら通信を管理するプロセスを作れば良い
つまり>>646

650 :デフォルトの名無しさん:2018/08/08(水) 20:48:19.34 ID:Y8NXA7MO.net
アンドロイドアプリを作りたいのですが
数か月の間、メンターになってくえれる人を探そうと思ったら
どんなサイトで募集すればいいのでしょうか?

651 :デフォルトの名無しさん:2018/08/08(水) 21:34:50.44 ID:hdmbPKpc.net
俺がなってやろうか?
3ヵ月240万円でいいよ

652 :デフォルトの名無しさん:2018/08/08(水) 21:38:15.67 ID:oyXSOhRB.net
メンターなんて言葉一般的に使うの?
自己啓発セミナーみたいでいやだなあ
あ、ボクはアナルオナニーインストラクターです

653 :デフォルトの名無しさん:2018/08/08(水) 21:40:40.73 ID:Y8NXA7MO.net
基本料金1か月3万円でお願いします
あとはオファーにより別途請求というシステムで

654 :デフォルトの名無しさん:2018/08/08(水) 22:33:01.96 ID:D/rM6Nrn.net
マンツーマンで教えるとなると時給の最低ラインは3000円だから
月3万円だと月10時間、1日15分ぐらいだな

655 :デフォルトの名無しさん:2018/08/09(木) 10:10:38.81 ID:gFPymi4k.net
専属の人を雇うとなると家庭教師雇うみたいなもんだから高くなるのではないか?
本やネットで調べながらでも何れはできるようになる事についてそこまで投資する必要があるのか?
何らかの期限があるなどして早く覚えないとまずいということか?

656 :デフォルトの名無しさん:2018/08/09(木) 10:33:41.65 ID:SPEbgWbN.net
パソコン教室に行って来い

657 :デフォルトの名無しさん:2018/08/09(木) 16:50:59.46 ID:bgFYGL9Q.net
synchronizedListはイテレータがスレッドセーフじゃないといいますが
for(int i=0;i<list.size();i++)
Element e = list.get(i);

もしsizeの増減が無い場合、こんな書き方はスレッドセーフに全要素にアクセスできますか?

658 :デフォルトの名無しさん:2018/08/09(木) 18:59:15.93 ID:e0VFp9K8.net
できません
sizeを確認してからgetするまでに要素数が変化する可能性を排除できていません

659 :デフォルトの名無しさん:2018/08/09(木) 18:59:52.71 ID:e0VFp9K8.net
あ、ごめん
サイズ増減なしって条件書いてあったね

660 :デフォルトの名無しさん:2018/08/09(木) 19:02:22.63 ID:e0VFp9K8.net
それはサイズが既知でgetしか使ってないのと同じで安全
ていうか要素が変化しないならスレッドセーフではないLinkedListでさえ安全に使えるでしょ

661 :デフォルトの名無しさん:2018/08/18(土) 22:43:41.07 ID:01sV26bM.net
https://github.com/OpenHFT/Chronicle-Network
ここに出てくる"Wire"ってどういう意味ですか?
WireTextだの、WireEchoだの。
たぶんプログラミング界隈の用語だと思うんですが

662 :デフォルトの名無しさん:2018/08/18(土) 23:10:04.14 ID:ddghJ7gy.net
ネットワークを繋ぐ線の概念なんじゃないかな
知らんけど、それっぽいと思った

663 :デフォルトの名無しさん:2018/08/18(土) 23:30:49.48 ID:01sV26bM.net
meta -> meta.write(() -> "tid")

こういう記法は何を意味しますか?
(arg) -> code
みたいなのはラムダ式の説明で出てきますけど、metaはカッコがついていません

664 :デフォルトの名無しさん:2018/08/18(土) 23:35:11.85 ID:01sV26bM.net
Wire Message = 電報 ⇒ 通信されるデータ
WireType.TEXTとかWireType.BINARYがあるから、たぶんまさにそれだけの意味。
Network = Wireくらいの意味でこの人は使ってそうです。

665 :デフォルトの名無しさん:2018/08/18(土) 23:39:59.88 ID:ddghJ7gy.net
>>663
引数が1つのときはカッコを省略できるんよ

666 :デフォルトの名無しさん:2018/08/18(土) 23:58:07.43 ID:01sV26bM.net
数千もの通信を同時処理する高性能なネットワークライブラリを探してるんですが、
何が良いんでしょう?Nettyは内容が難しすぎるんですが・・・。
難しいというか、必要としてるのは単にバイナリを送受信できればいいだけなので、
無駄に高機能過ぎる。
しかし、KeepAliveとか、サーバーが常駐してメッセージを受信してイベント起動、
とかは必要で。ネットワークライブラリの中身なにやってるかあまり詳しくないんですが。

Chronicle-Networkも良く分からない。
// the tid must be unique,
final long tid = tcpChannelHub.nextUniqueTransaction(System.currentTimeMillis());
System.currentTimeMillis()を使ったら、複数クライアントにおいてtidが重複するけど、
それでユニークといっていいのかどうか。
ちょっと情報が少なすぎるのでこれも無理そう。高速らしいんですが

Kryonetは、性能不足ですね。アップデートもされてません。

やはりNettyを頑張るしかないかもしれません。

667 :デフォルトの名無しさん:2018/08/19(日) 00:00:33.27 ID:bn6Y5y/t.net
>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コンピューターとの高速な通信ということでしょうか。

668 :デフォルトの名無しさん:2018/08/19(日) 00:24:40.63 ID:wM6XArJ0.net
WebSocket とかじゃないの?

669 :デフォルトの名無しさん:2018/08/19(日) 10:44:02.78 ID:bn6Y5y/t.net
やっぱり高性能なJavaのネットワーキングライブラリはNettyが有力のようです。
あと、Wire Messageは、たぶん「頭4バイトにINT入れて、次8バイトにLONG入れて」みたいな
バイト配列にデータを敷き詰めてく感じの行為をWireというのだろうと。

670 :デフォルトの名無しさん:2018/08/19(日) 11:22:52.85 ID:yNrD+B/d.net
よかったね(LOL)

671 :デフォルトの名無しさん:2018/08/19(日) 15:48:44.36 ID:bn6Y5y/t.net
PooledUnsafeDirectByteBufとは何ですか?
Handlerでbyte[]やByteBufなどクラスを限定できますが、
単にbyte[]を使うことと比べてByteBufやPooledUnsafeDirectByteBufは何かメリットがありますか?

672 :デフォルトの名無しさん:2018/08/19(日) 16:16:30.55 ID:bn6Y5y/t.net
どうやら単にbyte[]を送りたい場合でもByteBufを通すのが普通みたいですね
でもそれだとByteBufを作るときもそこからbyte[]を読み取るときもコピー操作があるようで遅そうです
通信に比べればメモリ操作による遅れは微々たるものかもしれませんが
Nettyより高速と謳うライブラリがありますがやはりバッファ周りの問題を指摘してましたが
これですかね

673 :デフォルトの名無しさん:2018/08/20(月) 08:34:48.22 ID:nWwgLLcF.net
ソース読んではいないけど、byte[]のWrapperなんじゃないの?
渡されたbyte[]を丸々コピーするような、あなたのような超初心者な実装はしていないと思うよw
そもそも、byte[]で送るといっても、自分でBufferのサイズを決めたり、通信環境を考慮したり、いろいろやらなきゃいけない。
だから、そういった最適化をByteBufのサブクラスたちは提供してくれているのでしょう。

674 :デフォルトの名無しさん:2018/08/20(月) 16:30:51.58 ID:x31M90y2.net
こういうコードがあった時、logが呼ばれてもデバッグモードでなければ
意味が無いけど、AnyHeavyMethodは計算されちゃうんでしょうか。
それとも最適化で実行されませんか?

//in some method
log(""+AnyHeavyNoEffectMethod(o));

public void log(String s){
if(isDebugMode())
System.out.println(s);
}

675 :デフォルトの名無しさん:2018/08/20(月) 20:31:28.54 ID:7cywDiIN.net
JITコンパイラは副作用がないことをどこまで調べるんだろうね

676 :デフォルトの名無しさん:2018/08/20(月) 20:50:34.41 ID:DUHqVJSw.net
>>674
isDebugModeの返す値が定数で、かつそこに登場してる全てのメソッドがインライン展開されれば実行されないんじゃない?
Javaって基本的に大規模アプリケーションに最適化されてて、局所的な速度よりも全体的な安定性やメモリ消費量を重視する傾向があるから、
あまり最適化には期待しないほうがいいよ

677 :デフォルトの名無しさん:2018/08/20(月) 22:27:44.88 ID:trJY4lAL.net
AnyHeavyNoEffectMethodが重い処理で、Java8以降ならラムダ式使うんじゃね?


log(() -> "" + AnyHeavyNoEffectMethod(o));


public viod log(Supplier<String> s){
if (isDebugMode())
System.out.println(s.get()); // ここでAnyHeavyNoEffectMethodが実行される
}

678 :デフォルトの名無しさん:2018/08/21(火) 08:43:36.63 ID:VaNiE4c6.net
いいね。そっくりそのままDecoratorにもなってるからすっきりする。

679 :デフォルトの名無しさん:2018/08/21(火) 09:27:43.13 ID:R/vyiArT.net
それJavaの場合はラムダ内で外のミューダブルな変数を参照できないから微妙

680 :デフォルトの名無しさん:2018/08/21(火) 10:05:53.79 ID:VaNiE4c6.net
どーーしても必要なら、観測したい変数をHeapに逃がせばいい(オブジェクトにぶら下げるとか)わけだけど。
Functional信者は怒りMaxだろうな。

681 :デフォルトの名無しさん:2018/08/21(火) 12:07:34.45 ID:LMQ5YiiU.net
>>679
変態すぎるだろ何やろうとしてるんだよ

682 :デフォルトの名無しさん:2018/08/21(火) 12:57:56.56 ID:5BiPsrnL.net
>>681
そう思うだろ?
これでコンパイルエラーなんだよね
int x = 1;
log(() -> x);
x += hoge();
log(() -> x);

683 :デフォルトの名無しさん:2018/08/21(火) 15:25:34.33 ID:LMQ5YiiU.net
>>682
当たり前だろ
何考えてんだ

684 :デフォルトの名無しさん:2018/08/21(火) 15:30:01.19 ID:LMQ5YiiU.net
あ、わかった

685 :デフォルトの名無しさん:2018/08/21(火) 17:51:15.05 ID:NYseXeYs.net
>>682
完全に使い方の問題だし、マルチスレッドの問題もあるし。
JavaScriptとかできちゃうけど、それやってどうなってもしらないぞ、と。

686 :デフォルトの名無しさん:2018/08/21(火) 17:55:00.54 ID:IftEBw66.net
ログなら普通にある状況だろ
それを使い方の問題というならラムダをログに使うという>>677の発想が間違ってるわ

687 :デフォルトの名無しさん:2018/08/21(火) 20:09:37.16 ID:NYseXeYs.net
ないよ。AOPとかDecoratorとか、ラムダが登場する以前からずっとやってきている話。
ラムダはそれをちょっとエレガントにできるようにしただけ。
だから、使い方の問題なんだよ。

688 :デフォルトの名無しさん:2018/08/21(火) 22:05:33.53 ID:flSi4mUH.net
>>687はミュータブルな変数を一切ログ出力してないの?
自身を持って無いと言い切れるなら偉そうなこと言っていいぞ

689 :デフォルトの名無しさん:2018/08/21(火) 22:09:43.83 ID:flSi4mUH.net
ちなみにログ出力にJavaのラムダが適していないという話であって、ラムダがミューダブルな変数を参照できるべきだなんて誰も言ってないけど
>>687は勘違いしてる

690 :674:2018/08/22(水) 22:13:46.15 ID:xSbYn5li.net
簡単な実験コード書いてみたけど最適化されませんね。
private static final boolean debug = false;
@Test
public final void testOptimization() {
final long start = System.currentTimeMillis();
log(anyHeavyNoEffectMethod() + "");
final long end = System.currentTimeMillis();
System.out.println((end - start) + "ms");//50ms
}
private static final void log(final String s) {
if (debug)
System.out.println(s);
}
private static final long anyHeavyNoEffectMethod() {
final Random r = new Random();
long total = 0;
int loop = 1000 * 1000;
for (int i = 0; i < loop; i++)
total += r.nextLong();
return total;
}

691 :デフォルトの名無しさん:2018/08/22(水) 22:39:39.44 ID:xSbYn5li.net
ラムダ式の方はanyHeavyNoEffectMethodが呼ばれません。
しかし、指摘のようにミュータブルな変数を渡せません。
log()の実装を二種類用意して使い分けていくのが妥当な気がします。
デコレーターパターンで解決できるんですか?

692 :デフォルトの名無しさん:2018/08/22(水) 22:48:19.72 ID:xSbYn5li.net
このような頻出のパターンについてJITは最適化すべきだと思います。
たぶん、それが一番妥当な解決策です。
副作用が無い事を確認する機能は、JITに既にありそうなものです。
少なくともある程度の範囲で副作用が無い事を確認できるはずです。

どうでもいいんですがこんなパターンにはJITは最適化を見せました。
for(){
list.add(i);
list.remove(i);//追加したものを即削除する
}

693 :デフォルトの名無しさん:2018/08/22(水) 22:51:11.60 ID:z4qSfGT7.net
オーバーロードでいんじゃない?
ログの出力ってきほんStringじゃん

694 :デフォルトの名無しさん:2018/08/25(土) 12:01:51.59 ID:FONLvq+3.net
匿名クラスとかでスタック領域の変数を参照できますが、匿名クラスのオブジェクトが破棄されるまでそれらは生存するということですか?

public void method(Observable obs){
Object o = ...;
EventHandler handler = new EventHandler(){
@Override
public void handler(){
System.out.println(o);
}
}
obs.setOnAction(handler);
}

695 :デフォルトの名無しさん:2018/08/25(土) 12:14:05.20 ID:logoA4dK.net
>>694
気のせい
実は無名クラスの中に隠しフィールドが生成されてoの値をコピーしている
ちなみにoは暗黙的にfinalになっており、後でoを書き換えようとするとコンパイルエラー
そこまでするならScalaやKotlinやC#みたいに最初からoをヒープに作っちまえよと思わなくもないが、
この中途半端な仕事かJavaクォリティ

696 :デフォルトの名無しさん:2018/08/25(土) 13:05:07.70 ID:KMExyDFm.net
>>694
そうなるよ、参照関係を図で表すとこうな感じでしょ
https://light.dotup.org/uploda/light.dotup.org543719.png

オレンジが変数
緑がオブジェクト

メソッドを抜けてローカル変数o, handler, obsがなくなっても
Observable → EventHandler → Object
の参照は消えない

引数に渡してるObservableはメソッドの外で
変数から参照されてるだろうからメソッドを抜けても
破棄されないよ

697 :デフォルトの名無しさん:2018/08/25(土) 13:38:45.65 ID:QXNuAaPs.net
>>696
691が気にしてるのはローカル変数o自体の寿命でしょ
実際には無名クラスの外側にある変数oとhandlerの中で参照してる変数oは別の実体だから問題ない、が答えだよ
後者は>>695の通り無名クラスの隠しフィールドであり、インスタンス生成時に値をコピーしている
この仕様だと、後で内側または外側でoの値を書き換えてしまうと辻褄が合わなくなるから、
oを後で書き換えてはいけないという制限が必要なの

698 :デフォルトの名無しさん:2018/08/26(日) 18:14:43.90 ID:oLy9klNt.net
ここを見るとRSA系は2048までしかありません。4096等だとRSA鍵による暗号化ができないということですか?
その場合、非標準のライブラリ等で解決できますか?
https://docs.oracle.com/javase/jp/8/docs/api/javax/crypto/Cipher.html
RSA/ECB/PKCS1Padding (1024、2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024、2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024、2048)

699 :デフォルトの名無しさん:2018/08/27(月) 09:33:01.48 ID:n6GSDZ7+.net
>>698
https://qiita.com/mizuki_takahashi/items/cc26a7fd51aa04396e92

700 :デフォルトの名無しさん:2018/08/27(月) 09:47:55.19 ID:n6GSDZ7+.net
強度の強い暗号化は輸出制限あるから気を付けてね。
うっかりノートPCにセットしたまま他国へ持って行こうとするとバレた時に大変まずいことになるかも知れない。

701 :デフォルトの名無しさん:2018/08/27(月) 17:31:52.62 ID:n/TwkHD5.net
jre1.8の最近のバージョンでデフォルトで強度無制限になったようです。
とはいえ、java8の仕様上、2048までしかサポートする必要は無いようです。
実装によってサポートしているかもしれません。

702 :デフォルトの名無しさん:2018/08/27(月) 17:33:10.48 ID:n/TwkHD5.net
このようなコードがあった場合、tは生存しますか?
tはどこからも参照されてないとします。

//in some method
Thread t = new Thread(){...};
t.start();
return;

703 :デフォルトの名無しさん:2018/08/27(月) 20:27:36.23 ID:QkMU0TtV.net
>>702
試してみた
https://paiza.io/projects/PxoO2-fLSd_KfpwF5B3prA

結果からわかることは
・メソッドを抜けてもスレッドが終了するわけではない
・スレッドが終了しないならばプロセスは終了しない
・ローカル変数がなくてもスレッドを取得できる

作成したスレッドのオブジェクトはどこかに保持されるみたいね
tは生存します、が答えっす

704 :デフォルトの名無しさん:2018/08/27(月) 20:52:27.61 ID:l2rfNjjd.net
変数tを通してアクセスできなくなるだけだな。

705 :デフォルトの名無しさん:2018/08/27(月) 21:06:10.81 ID:ngNgILlM.net
threadは、main thread同様garbage collectionのrootとして扱われるそうなので、生存しまする

706 :デフォルトの名無しさん:2018/08/28(火) 10:11:17.88 ID:nen4cHNL.net
ただし、daemonthreadは除く。

707 :デフォルトの名無しさん:2018/08/29(水) 16:44:32.01 ID:V/7UzzKh.net
Eclipseとかいう汚物にJavaFXを入れたく思いマーケットプレースでjavafxで出てくるe(fx)clipseをインストールしようとしたところ長時間待たされた挙句にエラーが出ました
どうすればいいでしょうか?

708 :デフォルトの名無しさん:2018/08/29(水) 16:50:03.76 ID:V/7UzzKh.net
http://imgur.com/a/RljuXDF

709 :デフォルトの名無しさん:2018/08/29(水) 18:31:24.16 ID:bzaK3e7y.net
>>707
JavaFXは廃止されたから使っちゃダメ

710 :デフォルトの名無しさん:2018/08/29(水) 18:35:28.97 ID:bZ2D0xRL.net
諦めなさい

711 :デフォルトの名無しさん:2018/08/29(水) 20:23:25.71 ID:QbSkJrbm.net
マジで?!廃止されるのswingかと思ってた!

712 :デフォルトの名無しさん:2018/08/29(水) 20:35:24.50 ID:LfUbbQ2v.net
厳密には廃止ではなく分離とされてる。
あとJava8が2020年までサポートだから、2020年までは1.8系のjreがあれば使える。

713 :デフォルトの名無しさん:2018/08/29(水) 20:44:48.17 ID:LfUbbQ2v.net
そもそもJavaの未来はどうなるのか。JREが有償化される。
OpenJDKはインストーラや自動アップデータが提供されるのか。

JavaFXは単体のライブラリとして独立できるはずだが、誰かがやるのかどうか。
現状だと、何やら面倒なインストール手順が必要なようで、
デスクトップアプリに使われるであろうJavaFXにとって致命的なはず。
mavenとかを使ってアプリに気軽に同梱できるものになればいいのだが。

714 :デフォルトの名無しさん:2018/08/29(水) 20:48:44.47 ID:zRPnCBM0.net
JavaFX will continue to be supported in the future by the company Gluon as a downloadable module in addition to the JDK.

715 :デフォルトの名無しさん:2018/08/29(水) 20:49:34.59 ID:zRPnCBM0.net
https://gluonhq.com/

716 :デフォルトの名無しさん:2018/08/29(水) 20:51:13.97 ID:zRPnCBM0.net
このスレではJavaFXをオヌヌメします
JavaFXをオヌヌメしないのはoracleのコウサクイン

717 :デフォルトの名無しさん:2018/08/29(水) 21:01:34.66 ID:CmXgIFV4.net
JavaでデスクトップのGUI環境自体どうなんだ?

718 :デフォルトの名無しさん:2018/08/29(水) 21:01:39.61 ID:LfUbbQ2v.net
downloadable moduleってなんだろうな。

そもそも後方互換性を捨てて高速リリースとか言ってるのが怖くて仕方ない。
開発者が最新版に対応したって、エンドユーザーが最新版を持ってるか分からない。
どのバージョンに向けて作ればいいんだ?

719 :デフォルトの名無しさん:2018/08/29(水) 21:02:52.35 ID:LfUbbQ2v.net
いやクロスプラットフォームGUIという概念は重要でしょ。

720 :デフォルトの名無しさん:2018/08/29(水) 21:07:16.02 ID:LfUbbQ2v.net
Java8+JavaFXは2022年までサポートされるってかいてあるな
だからもう少し先の話ではあるし、人気のある環境だからそれまでに整備されるだろう。

721 :デフォルトの名無しさん:2018/08/29(水) 21:13:19.32 ID:LfUbbQ2v.net
AndroidでもJavaFX動くみたいだし、クロスプラットフォーム性という面で
やはり一番優れてるよJavaは

ちなみにJavaやKotlinのコードをネイティブコードにするコンパイラがあって
iPhoneでもJavaやKotlinのソースコードで動かせるみたいだぞ
ちょっと前までiPhone用のJVMもあったんだけどな

722 :デフォルトの名無しさん:2018/08/29(水) 21:16:31.19 ID:LfUbbQ2v.net
https://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
Java8 個人ユーザーの公式アップデート終了日 2020-12

このときまでにOpenJDKやGluonのインストーラが登場していなければ困る。
そしてそれが自動アップデータを搭載していなければ。

ところが自動アップデータ搭載されてても、後方互換性を捨てたアップデートを勝手にされると困るw
困りまくりだ

723 :デフォルトの名無しさん:2018/08/29(水) 21:22:30.87 ID:LfUbbQ2v.net
OpenJDKに自動アップデータが提供されたとする。

OpenJDKのアップデートがアプリのアップデートを先行する
→勝手に互換性を捨てたアップデートが来てアプリが動かなくなる。
アプリを最新版に対応してリリースしてもアプリのアップデータは動かないw

アプリのアップデートが先行する
→エンドユーザーのOpenJDKが古くて動作しない

だから、互換性を捨てて高速リリースとかいってるのはほとんど意図的なJava界隈への攻撃。

724 :デフォルトの名無しさん:2018/08/29(水) 21:26:20.75 ID:LfUbbQ2v.net
一番欲しいのは、Java8のサポート継続&自動アップデート継続&互換性の維持。
APIを変更するならdeprecatedの期間をある程度とってくれないと無理。
高速リリースがうれしい人が居るのか?

725 :デフォルトの名無しさん:2018/08/29(水) 21:41:37.34 ID:zRPnCBM0.net
.netと同じ道を歩んでるようにみえて
microsoftの.netはMITライセンス

726 :デフォルトの名無しさん:2018/08/29(水) 21:46:25.67 ID:zRPnCBM0.net
javaはもうおしまい

727 :デフォルトの名無しさん:2018/08/29(水) 21:59:08.27 ID:LfUbbQ2v.net
OpenJDKのリンク例外つきGPLは十分だろ。
OpenJDKにおいて、互換性を考慮したアップデートが行われ、自動アップデータが提供されるか。
GPLだから誰でもそのプロジェクトをやれる。

728 :デフォルトの名無しさん:2018/08/29(水) 22:00:44.61 ID:zRPnCBM0.net
mitライセンス、bsdライセンス以外は不要

729 :デフォルトの名無しさん:2018/08/29(水) 22:02:20.50 ID:LfUbbQ2v.net
>>723の解決法はこうだ

OpenJDKの次期バージョンで現在のアプリが問題を起こすかチェックする。
→問題があるならOpenJDKがアップデートされる前にアプリをアップデートしておく。
そのアプリの修正は、現在のOpenJDKと次のOpenJDK両方で動作する事を確認する。

730 :デフォルトの名無しさん:2018/08/29(水) 22:04:08.95 ID:zRPnCBM0.net
javaを棄てれば解決

731 :デフォルトの名無しさん:2018/08/29(水) 22:07:18.69 ID:LfUbbQ2v.net
もうJavaで書いたアプリがあるし、Javaに慣れてるから。
それに、.NETに移ったとして、同じ事が起こらない保証があるのか?

実は俺はこの問題に対する根本的解決策を知ってる。うまくいくかは知らないが
それも含めて考えると、やはりJavaを続けようと思える。

732 :デフォルトの名無しさん:2018/08/29(水) 22:13:52.55 ID:bGCoQXPI.net
>>729
どうチェックすんの?

733 :デフォルトの名無しさん:2018/08/29(水) 22:31:53.32 ID:LfUbbQ2v.net
リリース前でもビルドが公開されてるだろうと思ったけど。
プラットフォーム系でプレビューリリースとかアーリーアクセス的なものを提供して
予め対応してもらおうというアイデアは一般的なもので、オラクルがOpenJDKをサポートするなら
たぶんやるだろう、というか既にやってると思うけど。

JDK 11 Early-Access Builds
http://jdk.java.net/11/

734 :デフォルトの名無しさん:2018/08/30(木) 00:12:55.41 ID:2PPyJx3c.net
大前提の認識が間違ってるぞ。
Java11以降においては無償のスタンドアロンなJREは無くなるんだよ。
デスクトップ用途なら開発者自身がアプリにJavaランタイムを組み込んで配布することが推奨される。
そして、OpenJDKはエンドユーザーが自分で個人端末にインストールするようなことを想定したものではない。
開発者がシステムに元々入っているのOpenJDKに依存してよいのは、業務システムなどで
開発者が完全に実行環境のOpenJDKディストリビューションのバージョンや構成を制御できる場合のみだ。

735 :デフォルトの名無しさん:2018/08/30(木) 00:46:49.22 ID:XYFOdQAI.net
https://docs.oracle.com/javase/jp/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1307236
>自己完結型アプリケーション・パッケージは、プラットフォーム固有で、ビルドしたシステムと同じシステムにのみ作成できます。

各プラットフォーム向けにビルドしなきゃいけないようだ

>自己完結型アプリケーションには、自動更新の組込みサポートがありません。

アプリのアップデータで簡単にアップデートできるなら問題ではない。

アプリへのJREの組み込み手段がサポートされて、
そこでJavaFXがサポートされるなら、問題無い気がする。
JavaFXはそこでサポートされなきゃ意味が無いし。

736 :デフォルトの名無しさん:2018/08/30(木) 00:57:29.40 ID:XYFOdQAI.net
>Java SE 8は、デスクトップ展開を対象とした最後のJava SEリリースです(Java Web StartやスタンドアロンシステムJREなど)。

こういう文言もあるから、Java11以降、OpenJDKでJavaFXみたいな
デスクトップ展開がサポートされるのかどうか。Java8最終版を組み込んで使い続けるか
Gluonに期待するか。

737 :デフォルトの名無しさん:2018/08/30(木) 12:01:02.32 ID:rv0GkEtx.net
初心者だけどJavaFXでFTPサーバーとやりとりして追加したり一覧表示してダウンロードしたりするwindows用アプリを作りたいんだ
apache commons netというライブラリを使ってやろうと思うけどviewにファイルを入れるにはどうすれば良いんだろう?
入れた後はjavaからviewをインスタンス化してその中の変数の値(ファイルのパスかな?)を取り出してって感じでなんとかなりそうだけど...
本当に何も分からない状態で、何か良い勉強方法は無いかな?
FTPサーバーについても素人に近いよ

738 :デフォルトの名無しさん:2018/08/30(木) 12:06:53.68 ID:Qomnyyns.net
素人過ぎて話にならないな

739 :デフォルトの名無しさん:2018/08/30(木) 12:59:41.93 ID:A5Nytyjy.net
そういや今はJavaは標準のライブラリでFTP接続してアップロードとか楽にできるクラスあるのかな?
ダウンロードだけはURLクラスでできるの知ってるが。

740 :デフォルトの名無しさん:2018/08/30(木) 21:21:59.87 ID:XYFOdQAI.net
viewにファイルを入れるってなに?
TableViewとかTreeViewクラスにアイテムを表示する方法ならチュートリアルあるでしょ

741 :デフォルトの名無しさん:2018/08/30(木) 21:23:54.73 ID:XYFOdQAI.net
ああ解読できたかも
要するにGUIにアプリから値を設定、ないし
アプリからGUIに値を設定するにはってことでしょ?
てかGUIってそういう使い方しかないし。
そんなのぐぐればいくらでも出てくるのでは。
https://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/table-view.htm

742 :デフォルトの名無しさん:2018/08/30(木) 22:12:54.72 ID:XYFOdQAI.net
訂正
人→GUI→アプリ
アプリ→GUI→人
この流れがやりたいってことだとおもわれる

743 :デフォルトの名無しさん:2018/08/30(木) 23:38:43.13 ID:8yCH8Wm6.net
>>742
そうそんな感じ
全然イメージ出来ん
どうやって起動させるの?
でも公式ドキュメント見やすそうだねありがとう

744 :デフォルトの名無しさん:2018/08/31(金) 00:25:08.31 ID:tMQ4ovnC.net
Project Loomを急ぐんだ!
はやく第一級継続を書かせるんだ。
どうか限定じゃありませんように

745 :デフォルトの名無しさん:2018/08/31(金) 01:00:04.22 ID:CSMn2BX4.net
イメージできんってもなあ・・・
GUI部品クラスが提供されてて、何らかの値の設定方法、取得方法があるだけじゃん。
StageやSceneクラスという、GUI全体を意味するクラスも提供されてる。
そこにGUI部品を積み上げてくだけだぞ。

746 :デフォルトの名無しさん:2018/08/31(金) 01:09:01.54 ID:CSMn2BX4.net
起動って・・・IDEのプロジェクトアーキテクチャの選択でfx系選べば何もしなくても
GUI立ち上がるでしょ

747 :デフォルトの名無しさん:2018/08/31(金) 08:28:19.25 ID:XwawDSyV.net
>>746
webアプリならサーバー起動させてコントローラにある接続用のurlをブラウザに入れれば始めれるじゃん
これはメイン関数なくても行けるんでしょ?起動ボタンあるの?

748 :デフォルトの名無しさん:2018/08/31(金) 09:09:35.21 ID:G30RIEnt.net
何かの障害持ちだと理解の過程が通常と違う
彼らにネットは不向きだと思う

749 :デフォルトの名無しさん:2018/08/31(金) 10:00:14.28 ID:lv4qnKPx.net
お前らすぐそうやって……

750 :デフォルトの名無しさん:2018/08/31(金) 10:43:19.14 ID:s5ujzdS3.net
なんというか、Windowsならftpアプリなんかわざわざ作らんでもWebブラウザやエクスプローラでURL指定して開いちゃえばいいような気がするが・・・

あ、とにかく作ってみたいのか。

751 :デフォルトの名無しさん:2018/08/31(金) 20:47:37.72 ID:jQ6ZKbRR.net
>>750
ピュアな ftp ならプロトコルも対して難しくもないからネットワークの練習にはちょうどいい

752 :デフォルトの名無しさん:2018/09/01(土) 00:04:26.42 ID:kDvfeVra.net
gluonとopenjfxが両方javafx11ビルドしてるけどこれ同じバイナリだろうか?

753 :デフォルトの名無しさん:2018/09/01(土) 10:46:03.05 ID:faUndSgH.net
>>5
8のreplaceは正規表現を使ってて馬鹿みたいに遅いから気をつけろ

754 :デフォルトの名無しさん:2018/09/01(土) 10:50:10.09 ID:8XWt4TWp.net
>>752
JavaFXはもうJavaの一部ではないのでこのスレのスコープ外だよ
専用スレか公式フォーラムで聞きなさい

755 :デフォルトの名無しさん:2018/09/01(土) 11:18:35.81 ID:4jvmXnIZ.net
>>753
それはreplaceFirst()だろ

756 :デフォルトの名無しさん:2018/09/01(土) 13:34:55.66 ID:tt1XTLVx.net
調べてみた

@since 1.5
replace(CharSequence target, CharSequence replacement)

@since 1.4
replaceAll(String regex, String replacement)

@since 1.4
replaceFirst(String regex, String replacement)

replaceは正規表現使ってなかった

757 :デフォルトの名無しさん:2018/09/01(土) 22:52:18.30 ID:6Yw3sf7c.net
>>754
元からjavaの一部じゃないから

758 :デフォルトの名無しさん:2018/09/21(金) 23:35:33.58 ID:6Tz3djX7.net
資格に関する質問ってしてもOK?
Oracleの「Java SE 8 Silver」の試験勉強をしようと思うんだけど、参考書に迷ってる
4月からjavaを学習してる程度の人が「徹底攻略 Java SE 8 Silver 問題集」をやるのは難易度高い?

書いてて宣伝っぽい文章になったのはごめん

759 :デフォルトの名無しさん:2018/09/22(土) 07:41:38.75 ID:r0UgUCyq.net
NG

760 :デフォルトの名無しさん:2018/09/27(木) 05:16:42.90 ID:lxTijohv.net
java SE 11 キテター

761 :デフォルトの名無しさん:2018/09/27(木) 09:12:53.75 ID:rZRe7wqK.net
有料だから注意しろよ
無料で落とせるやつはちゃんとLAに「評価と開発以外の目的に使うな」と書かれてる
そんな大事なことをダウンロードページに明記してなくてLA読まないと分からないようにしてるのは流石天下のオラクル様ですわ

762 :デフォルトの名無しさん:2018/09/27(木) 23:41:43.99 ID:vISpszsR.net
OpenJDK11があるじゃん。そのうちAdapt OpenJDK11もでるだろ。

763 :デフォルトの名無しさん:2018/09/28(金) 11:03:15.31 ID:2WodH1m0.net
JDK11が多すぎて混乱しそう

764 :デフォルトの名無しさん:2018/09/29(土) 00:56:04.15 ID:kyybLiyB.net
だいたいダウンロードページにOTN開発者ライセンスに変わったって書いてあるし

765 :デフォルトの名無しさん:2018/09/29(土) 18:23:46.96 ID:o+PWeM92.net
JavaでJson読ませるの、どのライブラリが使い勝手いい?
なんかいろいろありすぎて困る

766 :デフォルトの名無しさん:2018/09/29(土) 22:43:49.26 ID:tgpIib8y.net
>>765
JSR 374がjaxpに似せてるから学習コスト低いよ。
ttps://javaee.github.io/jsonp/

767 :デフォルトの名無しさん:2018/10/03(水) 01:25:23.37 ID:9ie+5iaR.net
質問です。
下記のコードで、
https://ideone.com/0RbRo7
出力が0と0の間で2行開いてしまっているのですが、これはなぜでしょうか?
System.out.printlnをSystem.out.printにすると空白は出ないのですが…。

768 :デフォルトの名無しさん:2018/10/03(水) 01:59:25.15 ID:VtwiWIya.net
区切り文字を{},の3文字にしてsplitしたからでしょ。

769 :デフォルトの名無しさん:2018/10/03(水) 07:18:02.71 ID:3B507mk5.net
>>767
空文字列が入ってるから、フィルタするなりで
https://paiza.io/projects/6hDp8xbY-QC0oLgrDBj0Sw?language=java

770 :デフォルトの名無しさん:2018/10/03(水) 20:33:31.74 ID:Yoi2jO2M.net
正規表現か書式を見直したほうがいいんじゃないの?

771 :764:2018/10/04(木) 00:11:26.33 ID:smFA2GkF.net
>>768
>>769
>>770
返信ありがとうございました。
また質問させて頂くかもしれませんが、よろしければその時もまたお願いします。

772 :デフォルトの名無しさん:2018/10/04(木) 11:58:36.08 ID:YAdWzVOj.net
http://acro-engineer.hatenablog.com/entry/2013/10/17/113216
>MyProtocolClientHandler extends ChannelInboundHandlerAdapter

Inbound 受信時に使用される処理
Outbound 送信時に使用される処理
という理解なんだけど、クライアント側のInboundはレスポンスを受信するときに動くということ?
でも送信時のコードが書かれてるようで、分からない。
NettyのInbound, Outboundとは?

773 :デフォルトの名無しさん:2018/10/04(木) 13:51:17.62 ID:k+Ofe9B1.net
Inbound:中国人の観光客
Outbound:日本人の海外旅行

774 :デフォルトの名無しさん:2018/10/04(木) 14:09:27.89 ID:YAdWzVOj.net
ああわかりました
channelActiveは返信等を受け付けれるような状態になった時に呼び出されて、
それはinbound,outbound関係無いってことですね
パイプラインのハンドラーというより、メッセージ送信の
コントローラー的なものがそこに書かれてるということですね
たまたまハンドラのイベントにそういう処理が書かれてる

775 :デフォルトの名無しさん:2018/10/06(土) 11:51:41.21 ID:mwcXVcDx.net
https://netty.io/4.0/api/io/netty/channel/ChannelDuplexHandler.html
> intercept operations and also state updates

この部分どういう意味ですか?intercept operationとは?

DuplexHandlerはパイプライン上でどういう順序で実行されますか?
受信時と送信時で実行して欲しい順番が異なる場合どうすれば?

776 :デフォルトの名無しさん:2018/10/06(土) 19:22:07.94 ID:3cjxIhmP.net
Java SE API & ドキュメント
https://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html


Java11の日本語ドキュメントはいつごろ出てくるのでしょうか?

777 :デフォルトの名無しさん:2018/10/08(月) 07:44:21.00 ID:fU+WK0rO.net
bronzeの問題集やっててイライラしてきたんだけど、問題になるようなコードは基本的に書くなってことでいいんですよね?
&&||の右側にインクリメント演算子書いたから場合によって評価されないとかif文の中身1行しかないからカッコ省略したら読みづらくなってるとか
問題として出されるくらいヒューマンエラーを産みかねないってことでOK?

778 :デフォルトの名無しさん:2018/10/08(月) 08:33:34.55 ID:QRotEnod.net
読めるようになれってことじゃないの?
>&&||の右側にインクリメント演算子書いたから場合によって評価されない
例えばこれは、
if(a != null && a.get()>1)
こんな行があった時に2つ目の演算でNPE起きない事が保証されると分かれ、ということだろう
書くな、じゃないよ。こんなコードたくさんあるし、こう書かないと冗長になる

779 :デフォルトの名無しさん:2018/10/08(月) 08:56:01.75 ID:fU+WK0rO.net
>>778
演算子のほうはちゃんと意味考えて書けよってことですよね?って聞いたつもりだったんです、言葉足らずでした
評価されない場合使って簡潔に書くのはよくあることなんですかね

中身1文ブロックのカッコ省略のメリットがさっぱりわからないんですが見た目がすっきりするだけですかね……?
どこ読んでもあえて推奨されてることがなくて、ブログのコメント欄とかはだいたいケンカになってるんでこれはあまり触れてはいけないアレなんでしょうか

780 :デフォルトの名無しさん:2018/10/08(月) 08:58:46.13 ID:QRotEnod.net
まあそれは簡単に言うと
開発時のソースコードはデバッグ出力の行があったりするんだけど
リリース時はデバッグ出力の行を文字列置換で一掃したりする。で、もし
if(...)
debugLog(...);

こういう行があったとして、debugLog(...);を置換で削除したら、エラーになる。
if(...){
debugLog(...);
}
これは置換しても大丈夫。

だから、括弧無しは処理部分を置換する事があるか、による
経験上置換するのはデバッグ系コードだけ

781 :デフォルトの名無しさん:2018/10/08(月) 09:13:02.08 ID:fU+WK0rO.net
書き換えるつもりがない1行のはカッコ省略で書くと読みやすい、あとあと置換するdebugLog(…)とかは消したときに空のブロックになるように{}書いとく、ってことでしょうか?

782 :デフォルトの名無しさん:2018/10/08(月) 09:51:13.29 ID:UTHfaM17.net
>>780
嘘をついてはいけない
デバッグ出力を置換で消す場合は ";" に置き換えれば良いので
{} の有無など関係ない

783 :デフォルトの名無しさん:2018/10/08(月) 09:55:23.16 ID:QRotEnod.net
>>782
それは気付いてなかったw

じゃあ括弧無しのデメリットは特に思いつかない

784 :デフォルトの名無しさん:2018/10/08(月) 10:26:38.83 ID:2rmJ0ycQ.net
>>777
落ち着け、深呼吸しろ

785 :デフォルトの名無しさん:2018/10/08(月) 11:34:11.42 ID:H/mp1NsO.net
>>777-779
&&・||の右側に、副作用があったら危険!
副作用とは、何かの状態を変えること

ぱっと見ただけでは、副作用が実行されるかされないのかが、わかりにくい。
右側に、副作用が無ければよいけど

if-else 文なんかより可読性が低いから、誤解しやすい

すべての言語で、言われている。
MISRA-C とか、C言語のルールでも、決められている

786 :デフォルトの名無しさん:2018/10/08(月) 12:02:59.41 ID:QRotEnod.net
副作用があるかもしれないから、という理由なら条件分岐関係無くない?
if(a == null)
return;
if(a.get()<=1)
return;
これでget()呼ぶのも副作用あるかもしれないよね?

787 :デフォルトの名無しさん:2018/10/08(月) 12:20:29.15 ID:tKqgyITq.net
>>786
別スレッドによって a が null にされてしまう可能性はあるな。だいたいの場合はそういうスレッドがないか、
またはあると分かっているならロックしてからアクセスするように作るから問題にならないんだろうけど。

788 :デフォルトの名無しさん:2018/10/08(月) 12:26:37.42 ID:QRotEnod.net
ん?こういう理解だけど。参照が渡されてるだけだから
別スレッドが参照を破棄しても関係ないぞ

func1(Object a){
if(a == null)
return;
a.get();//絶対にNPEが起きないマルチスレッド無関係
}
func2(Object a){
a = null;
}

789 :デフォルトの名無しさん:2018/10/08(月) 12:29:19.11 ID:r0dViXxq.net
そもそも式の中で副作用のある関数を呼び出すのは危険
&&や||は評価順序が決まってるからまだマシな方でそれ以外の演算子だと評価順序もどうなるかわからんし

790 :デフォルトの名無しさん:2018/10/08(月) 12:32:49.91 ID:QRotEnod.net
でも副作用がある関数はset,write,update,createとか大体それっぽい名前ついてるし
分かるでしょ?
というか情報処理はCRUDだからcreate,update,delete的な名前が必ずついてる

副作用を広くとらえればログ出力も副作用だけど、そういうのは問題無い
getは副作用無しか問題無い副作用のみ、CRUDのRに相当するものだから

だからコーディング規約を作るなら、CRUDを意識させるようなものであるべきで、
真理式でメソッドを呼び出すなとかいうわけわからん規約を作るべきではない
CRUDのうちRのみ呼び出していい、とすべき

791 :デフォルトの名無しさん:2018/10/08(月) 12:37:02.60 ID:QRotEnod.net
ぶっちゃけCUDでも呼び出していい
結局、意味を捉えて間違えないように書けということでしかない
コーディング規約をどういじくってもそこから逃げれるわけじゃない

792 :デフォルトの名無しさん:2018/10/08(月) 12:43:00.19 ID:wqzMNkqt.net
if (a == 0 || b++ < 1) {
}
こういう書き方をすると一見bが常にインクリメントされるように誤解されやすいからやめとけよって言ってるだけでしょ。

793 :デフォルトの名無しさん:2018/10/08(月) 12:48:22.90 ID:QRotEnod.net
真理式に複数の演算があって、かつ一部に副作用があるとまずい、ってことか

794 :デフォルトの名無しさん:2018/10/08(月) 13:19:09.60 ID:H/mp1NsO.net
副作用・副作用完了点
評価順序・マクロ

MISRA-C でも、こういう間違いやすい所の、ルールは厳しい

795 :デフォルトの名無しさん:2018/10/08(月) 14:53:07.06 ID:tKqgyITq.net
>>788
それならないな。

残るは get() して 1 以下なのを検査した直後に別スレッドによって a の状態が変化して get() が返す値が変わるとかかな。
(そんなの想定の範囲内なら問題ないが)。

796 :デフォルトの名無しさん:2018/10/10(水) 01:35:05.39 ID:gneY7b7h.net
adopt openjdkのjdk11リリースされたじゃん。
ttps://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot

LTSだぞ。
ttps://adoptopenjdk.net/support.html?variant=openjdk11&jvmVariant=hotspot

797 :デフォルトの名無しさん:2018/10/12(金) 06:07:22.65 ID:LkXNeCMg.net
Java 11のJREって無いんですか?

798 :デフォルトの名無しさん:2018/10/12(金) 08:34:35.39 ID:kCbZI2NA.net
クライアントJREは廃止された
今現在、要JREとして世に出ているアプリをエンドユーザーが実行する公式な方法は存在しない(自己責任で開発環境を入れるしかない)
今後のクライアントサイドJavaアプリの唯一の配布方法は、JDKに含まれるコマンドラインツールを使用して
プラットフォーム毎に実行環境とアプリを同梱した実行可能なパッケージを作ることである
クライアントサイドに関しては、もはやJavaはバイナリ互換ではない
OracleはクライアントサイドJavaを段階的に廃止しようとしており、新規には決して使ってはならない

799 :デフォルトの名無しさん:2018/10/12(金) 09:00:21.36 ID:U0bHLz7N.net
>>796
当てにならんよこんなの
こいつらはただのビルド屋で、自分達でソースに手を入れる体制はない
次のバージョンのOpenJDKがリリースされた後もOpenJDK公式リポジトリの旧バージョンのソースに対してLTS向けのパッチが提供されるかどうかは、
オラクル様の温情次第

800 :デフォルトの名無しさん:2018/10/12(金) 20:45:34.37 ID:LkXNeCMg.net
>>798
サンクス

801 :デフォルトの名無しさん:2018/10/22(月) 16:04:20.83 ID:1yTQ4g+U.net
何時の間にかvar使えるようになってたな

802 :デフォルトの名無しさん:2018/10/22(月) 23:21:36.65 ID:KYkLOyp1.net
いないいないvar

803 :デフォルトの名無しさん:2018/10/22(月) 23:32:16.95 ID:sd28W5TQ.net
Javaに型推論が無いことをディスられると、意識高い系Javaerさん達は
ローカル変数の型もinterfaceにするべきだからそんなもん要らんと上から目線で反論してたけど
梯子外されちゃって哀れだな

804 :デフォルトの名無しさん:2018/10/23(火) 03:01:58.72 ID:IDcT8U1C.net
これ2じゃなくて1が出力される。何で?
@Test
public void mapObjTest() {
Map<Long, Integer> m = new HashMap<>();
Long key = 1L;
m.put(key, 1);
Integer val = m.get(key);
val++;
System.out.println(m.get(key));
}

805 :デフォルトの名無しさん:2018/10/23(火) 03:05:36.61 ID:IDcT8U1C.net
悪く言われるけどクライアントサイドについてJRE同梱は良いんじゃない?
もはやファイルサイズは小さな問題だし、JREのバージョン違いでの誤作動を減らせる。
クライアントサイドJavaがそれで悪くなったと思わないけどな、俺は
JavaFXが外されたのは悪くなったと思うけど、でもどうせ同梱する作業するときに入れるんだし
妥当な変化じゃないの?

806 :デフォルトの名無しさん:2018/10/23(火) 05:51:34.87 ID:6lDUuVuA.net
>>804
val++は↓これと同じ
val = val + 1
変数valに値を代入してる

↓こう書けば値は2になる、value.valueはドット演算子を使ってオブジェクトの状態を変えてる

public class Main {
 public static void main(String[] args) {
  Map<Integer, Value> map = new HashMap<>();
  map.put(1, new Value(1));

  Value value = map.get(1);
  value.value++;

  System.out.println(value.value);
 }
}

class Value {
 int value;

 Value(int value) {
  this.value = value;
 }
}

変数に対する代入と
オブジェクトの状態を変えることとは
異なる操作なんやで

807 :デフォルトの名無しさん:2018/10/23(火) 07:00:55.65 ID:6lDUuVuA.net
変数への操作か、オブジェクトへの操作かを区別する必要があって

それぞれの違いはこんな感じ
https://light.dotup.org/uploda/light.dotup.org554015.png

808 :デフォルトの名無しさん:2018/10/23(火) 07:55:16.19 ID:ukFWTvzy.net
>>804
Integerをインクリメントした瞬間に新しくIntegerインスタンスが生成されるからだな

詳しくはオートボクシング、インクリメントとかでググるといい

809 :デフォルトの名無しさん:2018/10/23(火) 08:11:13.69 ID:ukFWTvzy.net
要するにval++は↓の省略系
val = new Integer(val.intValue()+1)

810 :デフォルトの名無しさん:2018/10/23(火) 09:23:24.20 ID:cDc5Fd7g.net
>>805
悪くはなってないよね
0に何を掛けても0だからな

811 :デフォルトの名無しさん:2018/10/23(火) 09:42:44.32 ID:AS/7ikV7.net
すごーい

812 :デフォルトの名無しさん:2018/10/23(火) 23:29:12.49 ID:baThXOF4.net
>>805
動的リンクしまくってるからFullJRE前提だわ。

813 :デフォルトの名無しさん:2018/10/25(木) 05:33:58.31 ID:KXlarInO.net
Object#equals()
public boolean equals(Object obj) {
return (this == obj);
}
なんでreturn this == obj;じゃなく括弧で囲ってるの?

814 :デフォルトの名無しさん:2018/10/25(木) 09:55:01.19 ID:hw/Q19JU.net
囲ってみたい気分だったのだろう

815 :デフォルトの名無しさん:2018/10/25(木) 11:06:47.39 ID:jwOWZyFv.net
return文に記述された式が複雑なときは括弧で括ったほうがmore readableだから推奨してる人のほうが多いように思うけど、
this == objが複雑かどうかは微妙だね。

でも自分なら括弧つけるかな。
理由は、括弧でくくることで、等式が値を返す数式として使われていることを明示できるから。

816 :デフォルトの名無しさん:2018/10/25(木) 11:34:47.74 ID:r31i+JfI.net
Javaの最黎期に書かれたものだろうから、コードスタイルが今の基準からすれば変でもおかしくない
今では一般的には括弧はつけないのが主流だね

817 :デフォルトの名無しさん:2018/10/25(木) 12:09:47.24 ID:VLidr5ui.net
最近はアローで書いちゃうから一行だしな

818 :デフォルトの名無しさん:2018/10/25(木) 14:00:36.81 ID:oNBD1gf9.net
計算がよくわからん時は、まず括弧で囲えって、
今でも教える人がいるからな

819 :デフォルトの名無しさん:2018/10/25(木) 14:21:09.91 ID:6wYT/HJT.net
かっこいい、かっこわるい?

820 :デフォルトの名無しさん:2018/10/25(木) 18:46:51.45 ID:zmVgc+jl.net
>>818
演算子の優先順位の話なら不要だと思ってもあえてつけたままにすることはあるな
+ と * とかならいいけどビット演算子とか言語によって違う奴とかもあるしね

821 :デフォルトの名無しさん:2018/10/27(土) 15:01:56.02 ID:1x6RXWmG.net
javaでaccessdbと接続するようなソフト作ってみたいんですが
フレームワークって必要ですか
ちょっとフレームワーク自体よくわかってないです。
規模は社内で5人くらいで使用します。

822 :デフォルトの名無しさん:2018/10/27(土) 19:11:03.52 ID:RbshV9yz.net
検索すれば出てくるけど
ハマることが多そうだからオススメしない
Javaが要件なのかAccessが要件なのかわからんが

823 :デフォルトの名無しさん:2018/10/27(土) 19:15:14.94 ID:LS+3DLFQ.net
>>815
Webで避けて通れないJavaScriptのせいとかもあるな。
JavaScriptのセミコロン省略可能はいまだに嵌る。

824 :デフォルトの名無しさん:2018/10/27(土) 19:16:29.43 ID:ZlRq8doU.net
Ruby on Rails, Node.js などでは、開発環境では、SQLite を使うけど

825 :デフォルトの名無しさん:2018/10/27(土) 22:29:57.54 ID:229rJcCX.net
>>805
Write once,Run anywhere

配布しようと思ったら環境に応じたJRE添付してやらないといけないんだよね?
根本理念に喧嘩売ってる気がする

826 :デフォルトの名無しさん:2018/10/28(日) 03:09:10.51 ID:7tRDHbkL.net
>>825
バイナリ互換じゃなくなるけどソースコード互換ではあるので・・・

JavaでGUIアプリ作ってネットで配布する場合、エンドユーザーの環境に依存するの辛いでしょ
むしろJRE同梱したい、と思うのが普通だよ

JRE同梱によるファイルサイズ増加はもはや問題にならないし
どうせJRE同梱作業するなら、その時にJavaFX入れれば良いので、分離されたのも妥当な気がするし
むしろクライアントサイドで進歩してると言っても良いのでは

827 :デフォルトの名無しさん:2018/10/28(日) 03:59:58.74 ID:WcIuuSyz.net
>JavaでGUIアプリ作ってネットで配布する場合、エンドユーザーの環境に依存するの辛いでしょ
JRE同梱だと回避できて、JARだけだとダメな問題ってどういうのがあるん?
実際にクライアントの環境が異なってたらどうやって提供しようが辛さは一緒におもえる

だいたいJRE同梱なんかされたら何仕込まれてもわからん
サンドボックスのしっかりした仕組みがあるわけじゃなし
そもそもWindowsとかOS側が信用できない

共通のJavaだから信頼感あったのに

828 :デフォルトの名無しさん:2018/10/28(日) 04:08:51.40 ID:z9u8vCUJ.net
今どき.NETですらランタイム同梱する流れだからな

829 :デフォルトの名無しさん:2018/10/28(日) 04:22:29.53 ID:WcIuuSyz.net
MSはユーザーの個人情報盗みたい側だし

830 :デフォルトの名無しさん:2018/10/28(日) 04:26:41.29 ID:7tRDHbkL.net
>>827
何言ってるか良く分からんが、JRE同梱すればJREのバージョン違いによる問題が無くなるだろう。
いちいちJREをインストールしてもらう手間も無くなる。
例えば一部のJREはJavaFXを同梱しているが、一部はそうではない。

何仕込まれても、ってのは良く分からんが
スタンドアロンアプリでもセキュリティマネージャーは動くはず

831 :デフォルトの名無しさん:2018/10/28(日) 04:32:23.62 ID:7tRDHbkL.net
確かにこれまでと比べると、オラクルのサイトからJRE落としてそれで動かしてたのに比べると
アプリ毎にJRE同梱されちゃうとおかしなネイティブ実行ファイルが同梱されてないか、という問題はある

しかし同梱されたプラットフォーム固有の実行ファイルはハッシュ値とかで適切なファイルかを照合できるはず
あとそもそもバイトコード部分でも相当な処理が可能だから、さほどセキュリティリスクが変わると思わない

ネットからプログラムを落とすなら、オープンソースか信頼できる大御所か
これまでと変わらないのでは

832 :デフォルトの名無しさん:2018/10/28(日) 04:34:29.37 ID:z9u8vCUJ.net
>>829
ランタイム同梱の意味わかってる?

833 :デフォルトの名無しさん:2018/10/28(日) 04:36:35.55 ID:WcIuuSyz.net
問題はJREのバージョンか
たしかに多少の問題はあるが

JRE同梱必須にしたらJavaの目指していた未来と可能性そのものを切り捨てることになる
そうできるってのとそうしなきゃいけないってのはえらい違い

834 :デフォルトの名無しさん:2018/10/28(日) 04:42:15.05 ID:7tRDHbkL.net
JREを同梱しないと、10年経ったら動かなくなってると思う

クライアントサイドはJRE同梱で作れと強制する事は、そんな悪い事じゃないと思う
そうしないとJavaがバージョンアップしづらい問題もあるから、オラクルはそうしたいんだろう

835 :デフォルトの名無しさん:2018/10/28(日) 04:46:39.09 ID:vBzuIBdi.net
元々Write once,Test anywhere

って失望されてたじゃ無いか。。。
HTML5も同じだけど、理想と現実は遥かに遠い隔たりがある。

836 :デフォルトの名無しさん:2018/10/28(日) 04:48:23.37 ID:GS4HIDpq.net
スタティックリンクの肥大した実行ファイルと一緒だよね
Write Onceで全プラットフォームで動いたら開発者としては理想じゃないかな

837 :デフォルトの名無しさん:2018/10/28(日) 04:49:04.83 ID:7tRDHbkL.net
オラクルはJavaを高速バージョンアップしたいみたいな事も言ってるが、
一連の話は整合性がある
サーバーサイドはエンジニアが管理しててJRE固定できる、
クライアントサイドはJRE同梱。
現状だとJavaから古いAPIを削除したら多くのアプリが動かなくなるから、
移行期間を作ってそのようなアプリが減るのを待つ。
そうしないとJavaに未来が無いという判断は、理解できなくない。

838 :デフォルトの名無しさん:2018/10/28(日) 05:01:48.54 ID:WcIuuSyz.net
じぶんとこのOracleDBは枯れまくってても平気なくせに

839 :デフォルトの名無しさん:2018/10/28(日) 05:47:19.26 ID:D9Gt7gmT.net
改変されたJREを同梱されたら終わりではないか?

840 :デフォルトの名無しさん:2018/10/28(日) 05:51:56.29 ID:7tRDHbkL.net
だから、同梱されたファイルのハッシュ値調べればわかるし、
アンチウイルスだって有名な実行ファイルについてハッシュ値を知識として持っておくべき。
オープンソースは誰かが検証すべき。
で、もともとバイトコード部分でも相当な事ができるからセキュリティリスクは変化してない。

841 :デフォルトの名無しさん:2018/10/28(日) 14:47:49.66 ID:Ii5bdv+P.net
クラス変数にもvar使わせてほしいよな
無名クラスにリフレクションで値を代入するフレームワークとかでてきそうだし

class Hoge {
public var xyz = new Object() { int x, y, x };
}

842 :デフォルトの名無しさん:2018/10/28(日) 23:50:32.90 ID:vn58j50+.net
それをやると型を特定するために延々先を辿らなきゃいけなくなるんだ…

843 :デフォルトの名無しさん:2018/10/28(日) 23:52:24.19 ID:qcVVu7B5.net
Class#forNameで動的リンクするときjlinkとかは依存するクラス検出できないから
結局手動で全部依存関係調べるかfull jre使うかの二択になる。

>>841
互換性が保証できなくなるからやらないだろ。
実行時の型と推論された型は違うから。

844 :デフォルトの名無しさん:2018/10/29(月) 00:01:40.82 ID:k1+zlMbU.net
というかあれだぞ。
javapackagerなくなったからjava11ではjre同梱したパッケージ作れないし、
なくなったのはpublic jreだけでjreのビルド自体はadopt openjdkがやってるからjre自体はあるぞ。

845 :デフォルトの名無しさん:2018/10/29(月) 00:06:53.79 ID:RWf1bRTo.net
>>841
コンパイラの仕組み上困難
Javaコンパイラはまず、メンバのシグネチャだけを解析してクラスごとにメンバのお品書きを作る
そして、それが一通り終わった後に各メソッド本体やフィールド代入元の式を解析する
ところがフィールドの型にvarを許してしまうと、お品書きを作る段階でフィールド代入元の式を解析しなきゃいけなくなる
それによりコンパイラのパスが増えてしまうから、コンパイル速度が大きく低下する

846 :デフォルトの名無しさん:2018/10/29(月) 01:24:28.42 ID:Cn2rCt1V.net
>>845
クラスにvar持てるHaxeのコンパイル遅いと感じたこと無いけど
Scalaとかいう言語でものすごく遅くなったという話は聞く

847 :デフォルトの名無しさん:2018/10/29(月) 02:54:18.59 ID:doCXynSY.net
>>844
Java 11でクライアントサイドはどういう扱いになってるの?

848 :デフォルトの名無しさん:2018/10/29(月) 03:02:24.77 ID:doCXynSY.net
新しいパッケージングツールの要件はJavaFX未対応とされている
http://openjdk.java.net/jeps/343

JavaFX由来のパッケージングツールが削除された

じゃあ、JavaFXアプリをエンドユーザーに配布したい場合、どうするの?
現在見つかる情報は、非JavaFXの自己完結型パッケージャ、
JavaFXのビルド方法だけで、JavaFXの自己完結型パッケージャが行方不明なんだけど

849 :デフォルトの名無しさん:2018/10/29(月) 04:02:15.84 ID:doCXynSY.net
https://commons.apache.org/proper/commons-validator/apidocs/org/apache/commons/validator/routines/UrlValidator.html

これはthread safeですか?

850 :デフォルトの名無しさん:2018/10/29(月) 22:22:22.37 ID:Cn2rCt1V.net
アウト、セーフ、よよいのよい

851 :デフォルトの名無しさん:2018/10/29(月) 23:23:48.16 ID:KWB0XUD6.net
>>847
Java Client Roadmap Update
ttps://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf

>>848
jep343がjavafx対応しないんだからないよ。
でも、javafxはただのライブラリなんだからjep343でほかと同じ扱いでしょ。

852 :デフォルトの名無しさん:2018/10/30(火) 14:22:42.63 ID:ySliw7Bj.net
public synchronized void method1(){}

こういうメソッドレベルでsynchronizedした場合、
synchronized(this){}ということですか?
つまり他のところでsynchronized(this)が書かれていたら、どちらかが待機になるんでしょうか

853 :デフォルトの名無しさん:2018/10/30(火) 15:22:20.46 ID:E+8/TrgC.net
>>852
その通り
thisをロックするのはパフォーマンスの低下やデッドロックの原因になるため、現代では一般には悪手とされている
synchronizedがデフォルトでthisをロックするのはJavaがまだオモチャでカジュアルに排他制御してた時代の名残で、
ちゃんと作るなら排他制御には private メンバを使って外に漏らさないようにした方が安全

854 :デフォルトの名無しさん:2018/10/31(水) 12:34:18.73 ID:6PFXXFSS.net
thisをロックするのとロック専用オブジェクトをロックするのは
性能の違いがあるんですか?

855 :デフォルトの名無しさん:2018/10/31(水) 14:41:22.75 ID:3SYFbLW8.net
>>854
thisはクラス外からも当然見えているわけで、他のクラスも同じオブジェクトを同時にロックしている可能性がある
どえせ内部的に同期してるんなら他のクラスが同時にアクセスしてくることは何の問題もないはずで、これは完全に無駄なブロックだ
クラス外から見えるオブジェクトをロックするのはパフォーマンスだけではなくてデッドロックの可能性を高める非常に悪い行為

856 :デフォルトの名無しさん:2018/10/31(水) 15:22:21.60 ID:6PFXXFSS.net
デッドロックの可能性は分かるんですが、
その性能の劣化というのは、クラス外でたまたまロックに使われていた場合、
待機時間が生じるから、ということですか?
待機時間以外に構造的に複雑なオブジェクトをロックすることでの性能劣化はありえますか?

857 :デフォルトの名無しさん:2018/10/31(水) 15:45:06.31 ID:3SYFbLW8.net
>>856
それはない
ロックはオブジェクトヘッダにロック中であることを示す情報を書き込むだけ

858 :デフォルトの名無しさん:2018/10/31(水) 15:58:04.06 ID:lmDzWSZe.net
意味不明なエラーで苦しめw

859 :デフォルトの名無しさん:2018/10/31(水) 16:17:19.41 ID:SePuugIe.net
ロック可能なのは全部ロックしたら苦しんだ黒歴史・・・

860 :デフォルトの名無しさん:2018/10/31(水) 17:20:43.08 ID:6PFXXFSS.net
専用オブジェクトでロックしても結局プログラマーが入念にチェックする以外
無い気がするんですが合ってますか?
よく言われてるようなロック順序云々では解決しない気がするんですが

861 :デフォルトの名無しさん:2018/10/31(水) 17:23:06.92 ID:xpjrbgPR.net
Javaはいつかなくなるんですか

862 :デフォルトの名無しさん:2018/10/31(水) 19:25:31.36 ID:ZwMW2kAu.net
いつか

863 :デフォルトの名無しさん:2018/10/31(水) 19:27:08.55 ID:iY3LkiS1.net
きっとどこかで生き残る

864 :デフォルトの名無しさん:2018/10/31(水) 19:30:32.81 ID:umCB7ism.net
俺のディスクの上で生き残る

865 :デフォルトの名無しさん:2018/10/31(水) 19:48:34.38 ID:umCB7ism.net
デッドロックと言えば、サーバをまたいだロックを掛けててデッドロックになった時は原因究明が大変だったなあ。

866 :デフォルトの名無しさん:2018/10/31(水) 20:18:06.23 ID:YzLC1QbG.net
>>860
外に漏らさなければ入念にチェックする範囲がクラス内だけに留まるだろ
外から見えるオブジェクトならそれを触ってる可能性のある範囲全てをチェックしなきゃいけない

867 :デフォルトの名無しさん:2018/10/31(水) 21:04:23.41 ID:6PFXXFSS.net
>>866
クラスA#method1() method3呼び出し
クラスA#method2()
クラスB#method3() method2呼び出し

この状況でmethod1,3を異なるスレッドが呼び出したらデッドロックになりうるのでは?
クラスA,Bがそれぞれ専用のロックオブジェクトを持っていて
method1,2,3の内部でロックオブジェクトでロックしているとして

868 :デフォルトの名無しさん:2018/10/31(水) 21:13:55.51 ID:umCB7ism.net
そういやJavaVMって実行時にデッドロックを見つけ出す機能はないのかな?
OSのファイルロックだと見つけてくれたりするよな。NFS絡むと無理だけど。
(あ、でも2プロセスでロック掛け合った場合だけかな?)

869 :デフォルトの名無しさん:2018/10/31(水) 21:30:17.03 ID:6PFXXFSS.net
デッドロックを通知する仕組みはあるようです。JConsole

安全なsynchronizedというものは、そのメソッドがどこから呼び出されているか、
どれを呼び出しているかというような依存関係で決まって、
単純な記述方法で安全性を確保する事はできないのではと思いました。
どのオブジェクトをロックしてもこの問題は残ります。
https://www.jpcert.or.jp/java-rules/lck07-j.html
これなんかもそうですが、ロック順序だけで解決できると考えてしまっていますが、
synchronizedブロック内のロジックが他のメソッドを呼び出している場合、
まだデッドロックが発生する可能性があると思います。
派生していくメソッド呼び出しのどこかにsynchronizedブロックがあれば。
もちろん、多くの場合、プログラムは様々なメソッドを呼び出します。
>>860はこの理解で正しいかという意味です

870 :デフォルトの名無しさん:2018/10/31(水) 21:40:58.89 ID:KdCoWYCo.net
頑張れぼうやw

871 :デフォルトの名無しさん:2018/10/31(水) 22:59:47.53 ID:GrkkoIKB.net
>>867のケースで仮にAがthisをロックしていたとしたら、B#method3がA#method2を呼ばずともB#method3内で直接または間接的にAのロックを試みただけでデッドロックするだろう。
privateなロックオブジェクトを用いたからといってデッドロックの可能性はゼロにはならないが、thisを使うのに比べれば確実に可能性は低くなる。
あえてリスクの大きくパフォーマンスの低下する方を選択する積極的な理由がない。

872 :デフォルトの名無しさん:2018/10/31(水) 23:05:48.35 ID:VI6I+9K/.net
>>869
何を言いたいのか理解できないが、どこの誰がどんなタイミングでロックを取りに来ようとも、ロックの順番さえ守ってれば絶対にデッドロックは起こらないよ。

873 :デフォルトの名無しさん:2018/10/31(水) 23:43:17.95 ID:QZT9zuHU.net
DB などほとんどのアプリでは、デッドロックでタイムアウトする。
絶対に回避できない

ロックする順番は、2プロセスの場合、
プロセスAがX, Y、
プロセスBがY, X

3プロセスの場合、
プロセスAがX, Y、
プロセスBがY, Z、
プロセスCがZ, X

874 :デフォルトの名無しさん:2018/11/01(木) 00:20:30.29 ID:IO/IeQZr.net
>>873
ロックの順番があべこべなのだからデッドロックするのは当然だろう

875 :デフォルトの名無しさん:2018/11/01(木) 06:39:30.81 ID:MRwfHAbj.net
>>873
バカにロックを使わせるな
って言う見本

せめて初歩の初歩ぐらい理解してからレスしろよ w

876 :デフォルトの名無しさん:2018/11/01(木) 07:11:11.17 ID:m171VN/W.net
>>872
ロックの順番を守る事ができないということです
ブロック内にメソッド呼び出しがあることは普通です

877 :デフォルトの名無しさん:2018/11/01(木) 07:11:48.43 ID:m171VN/W.net
>>871
>どのオブジェクトをロックしてもこの問題は残ります。

878 :デフォルトの名無しさん:2018/11/01(木) 07:13:39.94 ID:m171VN/W.net
現在している話は、普通のプログラムにおいてロックの順番を守る妥当な方法は存在しないという話です。
synchronizedブロック内でメソッド呼び出しがあった時点でそうなります。
それに対してロックの順番を守ればいいとかthisをロックしろとか言い続けているのは話が分かっていません。

879 :デフォルトの名無しさん:2018/11/01(木) 07:17:18.61 ID:m171VN/W.net
もう少し分かり易い説明を思いつきました。
ここにある問題は、synchronizedブロックで一旦ロック順序を守ったとしても、
そのブロック内から呼び出されているメソッド及びそこから派生的に呼び出されている全てのメソッドにおいて
synchronziedブロックを使う場合デッドロックが生じうるという問題で、
リファクタリング等において恒久的に懸念が残り続けるという問題です。
これは一時ロック順序を守ったコードを書いても解決しません。

880 :デフォルトの名無しさん:2018/11/01(木) 07:20:14.51 ID:m171VN/W.net
すみません、経験上凡人レベルの人に話しても理解されなくて、辛い思いをするだけです。
話を終わります。

881 :デフォルトの名無しさん:2018/11/01(木) 07:36:25.75 ID:PBz6MbCm.net
そうや。情報処理資格のテキストに書いてある。
楽観的とか、ああいうやつ

何も知らない奴が、ギャアギャア言ってるだけ

882 :デフォルトの名無しさん:2018/11/01(木) 07:55:33.73 ID:MRwfHAbj.net
ID:QZT9zuHU = ID:m171VN/W
バカのまま永遠にデッドロックしとけ

883 :デフォルトの名無しさん:2018/11/01(木) 08:23:01.98 ID:Tn1c1okn.net
例題とかじゃなくて、どういう時にロックが必要になるか考えて実際にやってみたらいいんじゃないか
そんな複雑なsynchronizedの使い方をしたことはしないだろう

884 :デフォルトの名無しさん:2018/11/01(木) 09:20:12.40 ID:AYHv18S/.net
>すみません、経験上凡人レベルの人に話しても理解されなくて、辛い思いをするだけです。
世間は俺のことを分かってくれない(馬鹿のFAQ)w

885 :デフォルトの名無しさん:2018/11/01(木) 09:30:29.97 ID:KWvf1ga0.net
ID:m171VN/Wは天才すぎる故に凡人レベルの嫉妬を買ってしまった

886 :デフォルトの名無しさん:2018/11/01(木) 09:40:00.51 ID:mQsUQM4b.net
いや本当。凡人レベルの人には話が通じませんよね。


という具合にみんなして同調しておけばいいのに。

887 :デフォルトの名無しさん:2018/11/01(木) 09:41:09.33 ID:VmLiOLMi.net
凡人にも理解出来る様に説明出来る能力を持ってるのが、天才の条件だな
説明出来ない人は紙一重の方

888 :デフォルトの名無しさん:2018/11/01(木) 09:47:33.79 ID:DtT8Cv0d.net
まあ責任と前提の問題だな
正常な頭してたらクラスAとクラスBが相互に密結合するような設計をすることはありえないから、
似た状況が起こりうるのはBがAに自身を登録してAがBをinterface経由で「コールバック」するようなパターンだろう
その場合、BのメソッドがAのコンテキストから呼び出されることはBを作る側は当然知っているはずで、Aを更に別のスレッドから呼ぶような基地外的行為をしないという人間としての最低限度の責任はB側にある
そしてA側はそのようなリスクのある拡張ポイントをなるべく作るべきではないし、やむを得ないときはドキュメントに明記するべき

889 :デフォルトの名無しさん:2018/11/01(木) 10:30:23.17 ID:Tn1c1okn.net
あれだ
スレッドを知った初心者が無駄に使いたくなってる状態に近いんじゃないか

890 :デフォルトの名無しさん:2018/11/01(木) 10:34:13.85 ID:x+OioMtW.net
天才はこちらへ

上級プログラマの雑談部屋☆2
https://medaka.5ch.net/test/read.cgi/prog/1524240229/

891 :デフォルトの名無しさん:2018/11/01(木) 11:38:29.67 ID:mQsUQM4b.net
>>890
ありがとう。そんなスレがあったとは。正に俺のために作られたようなスレだな。

と、サラッと書けるくらいにならんといかんよ。現実がどうであれ。w

892 :デフォルトの名無しさん:2018/11/01(木) 14:20:26.28 ID:aGO292A7.net
馬鹿は死ななきゃ治らない

893 :デフォルトの名無しさん:2018/11/01(木) 15:10:14.12 ID:Nl3jEz8g.net
javaの資格のsilverやgoldはどの程度の実力で受かりますか?
デザインパターンやリファクタリングをちゃんと理解しているレベルなら余裕で受かる?

894 :デフォルトの名無しさん:2018/11/01(木) 15:35:43.13 ID:mUSj63Sn.net
>>893
シルバーはブロンズと変わらん
ゴールドはライブラリの使い方知ってればおけ
日付の計算とかスレッドとかコレクション

895 :デフォルトの名無しさん:2018/11/01(木) 15:58:36.20 ID:Nl3jEz8g.net
>>894
ゴールドもその程度で受かるのですか?
楽勝ですね。
じゃ逆にデザインパターンやリファクタリングをあまり理解していなくても受かるということ?

896 :デフォルトの名無しさん:2018/11/01(木) 16:03:52.20 ID:OxvwXsOa.net
受けようと思ったことすらないのでわからない。

897 :デフォルトの名無しさん:2018/11/01(木) 16:11:52.48 ID:Nl3jEz8g.net
職歴にプログラミングがないのでしかたなく資格でもアピールする必要があるのですが
Java資格はGoldを取るとして
あとなにがあったほうがよいでしょうか?
データベース関連やUML関連やネットワーク関連の資格ですか?具体的にはなにが印象いいでしょうか?

898 :デフォルトの名無しさん:2018/11/01(木) 16:12:24.17 ID:Nl3jEz8g.net
デザインパターン関連の資格ってないのかな?

899 :デフォルトの名無しさん:2018/11/01(木) 16:23:14.20 ID:DtT8Cv0d.net
>>897
まずはIPAのデスペとデスペ

900 :デフォルトの名無しさん:2018/11/01(木) 16:33:52.56 ID:Nl3jEz8g.net
デスペとデスペですか。
同じものなのになぜ2回も言うのですか。

901 :デフォルトの名無しさん:2018/11/01(木) 16:41:11.79 ID:RfEd9OxR.net
大事なことなので

902 :デフォルトの名無しさん:2018/11/01(木) 17:12:47.17 ID:Nl3jEz8g.net
そうですか。

なにか忘れてそうなのですが
プログラミングあるいは関連分野で、あったほうがいい資格はありませんか?

903 :デフォルトの名無しさん:2018/11/01(木) 18:05:14.35 ID:OxvwXsOa.net
わからない。資格何もなしで何十年も働いちゃったもので。
一時期は学校でC言語教えてたりもしたが、資格はなかった。
あ、一太郎も教えてたことあったよ。もちろん資格なしで。

904 :デフォルトの名無しさん:2018/11/01(木) 19:13:26.95 ID:Nl3jEz8g.net
>>903
無免許ですか。逮捕しますよw
一太郎は日本用のWordだと思うけどなんでそんなものが存在したの?

905 :デフォルトの名無しさん:2018/11/01(木) 19:15:26.25 ID:1Z/ZXoar.net
まあ実務をやる上では資格は特に必要ではない
ただ採用する立場だと資格ない奴とある奴ならある奴を取る

906 :デフォルトの名無しさん:2018/11/01(木) 19:25:15.27 ID:q4rSVTZi.net
馬鹿なんだろう

907 :デフォルトの名無しさん:2018/11/01(木) 19:39:49.82 ID:OxvwXsOa.net
>>904
なんでって、MS-DOS時代のWORDは漢字扱えなかったからじゃないか?

908 :デフォルトの名無しさん:2018/11/01(木) 23:44:32.35 ID:kQnTnj4P.net
ブロンズは持っても意味ないしシルバーもゴールドの受験資格みたいなもんだぞ。
そんで中身の言語部分はJVMSもJLSも一切読まなくても答えられる程度でどちらかと言うと
ありふれたライブラリの宣伝兼再確認みたいな内容。

909 :デフォルトの名無しさん:2018/11/02(金) 10:24:58.44 ID:VhXZ8KFR.net
>>904
資格と免許の区別も出来ないんじゃ、
就職なんて出来んだろ

910 :デフォルトの名無しさん:2018/11/02(金) 16:44:03.61 ID:TVanRjUQ.net
もしかしなくてもsilverとかより基本情報技術者取ったほうがいいんでしょうか

911 :デフォルトの名無しさん:2018/11/02(金) 16:53:15.88 ID:3EaYIZ29.net
当然
Javaの重箱の隅に付いてる食べカスの色知ってる奴よりIPアドレスの計算できる奴の方が遥かに役に立つ

912 :デフォルトの名無しさん:2018/11/02(金) 17:17:06.84 ID:0QIYfvOa.net
IPアドレスの計算って?
何か計算必要か?

913 :デフォルトの名無しさん:2018/11/02(金) 21:03:28.28 ID:mJ2e4zOQ.net
インターネットキングならIPアドレスの計算くらい朝飯前だよ

914 :デフォルトの名無しさん:2018/11/02(金) 22:48:40.06 ID:ejOlj3tt.net
サブネットマスクとかの話ちゃうの

915 :デフォルトの名無しさん:2018/11/03(土) 00:34:57.85 ID:8dUCHJOu.net
世の中に無駄なものなんかないよ
ジャヴァの資格もIPアドレスの計算も全て社会の役に立ってる

916 :デフォルトの名無しさん:2018/11/03(土) 18:14:19.75 ID:b5iwDuZ8.net
java11, 12にはくだらない機能しか入らないのか

917 :デフォルトの名無しさん:2018/11/04(日) 11:32:05.48 ID:hQdPSgHl.net
ブリッジパターンの応用手順のブログみたい。パッケージを開発する時を前提にしているね。
https://blogs.yahoo.co.jp/kamyu_2010/35480077.html

918 :デフォルトの名無しさん:2018/11/06(火) 00:08:12.73 ID:GjqHOKec.net
for文ブロックの後にループカウンタ変数の値でif文を書きたい
でもループカウンタ変数のスコープの問題で使えない

for文実行前にカウンタ変数用意するのは悔しいし誤動作を招きそうな気がするのでやりたくない
for文の中にif文を書いちゃえばいいんだけど毎回実行されるのは無駄で気持ちが悪いしそもそも本来やりたいことと違う

これはどう解決すれば良いんでしょうか、初歩的ですいません……

919 :デフォルトの名無しさん:2018/11/06(火) 00:14:58.15 ID:ShoHBAGo.net
>>918
forループに入る前にループカウンタとは別の変数を用意して、ループの最後にカウンタの値をその変数にコピーするようにしよう
そうすればループカウンタをfor文の外で宣言しなくて済むし悔しくない

920 :デフォルトの名無しさん:2018/11/06(火) 00:22:51.13 ID:GjqHOKec.net
そもそもループカウンタを前に宣言はできませんでした(今までそんなんやろうと思わなかった……)
>>919
代入ならif評価よりは速そうですね、ありがとうございます

921 :デフォルトの名無しさん:2018/11/06(火) 01:56:42.62 ID:BD76rR44.net
>>918
それってループしている最中に if で何らかの条件により break するってことだよね?
それならその if ブロックの中で別の変数に代入すれば良い。

int j = -1;
for (int i = 0; i < max; i++) {
 if (f(i)) {
  j = i;
  break;
 }
}
if (j >= 0) {
...
}

もし上記のように途中でbreakして抜けるのでないなら max の値そのまま使えば良い。

922 :デフォルトの名無しさん:2018/11/06(火) 11:11:50.23 ID:I/7NgPjD.net
while使えば?

923 :デフォルトの名無しさん:2018/11/06(火) 11:38:48.82 ID:4wD9lBDw.net
時間の掛かるファイル読込処理を非同期実行して、その処理中にファイル読込具合に応じてJavaFXのプログレスバーを更新してるんだけど、
たまにプログレスバーが更新されない場合がある。なんで?

そのファイル読込処理とプログレスバー更新はインターフェースの継承メソッドに記述していて、
Threadクラスに登録するRunnableクラスのrunメソッド中でインターフェースの抽象メソッドを叩いて呼び出している。
1)イベントトリガが、JavaFXのFileChooserの選択完了時 → プログレスバー更新される
2)イベントトリガが、別のJavaFXの子Scene上のJavaFXボタン押下時(子Sceneのhide後) → プログレスバー更新されない
setImplicitExitをどうたらこたらするというのは一通り試した
簡単に解決したいんだがなあ

924 :デフォルトの名無しさん:2018/11/06(火) 12:01:52.02 ID:nXssBivk.net
>>923
JavaFXはもうJavaの標準ライブラリではなく単なる野良ライブラリの一つに過ぎない
スレ違い

925 :デフォルトの名無しさん:2018/11/06(火) 12:19:26.12 ID:4wD9lBDw.net
回答できんのなら黙ってろよな。回答できないくせに黙ってられないから池沼なのか

926 :デフォルトの名無しさん:2018/11/06(火) 14:10:58.07 ID:FYsrzIPK.net
と逆切れするアホ

927 :デフォルトの名無しさん:2018/11/06(火) 14:23:17.36 ID:V4FwzPmz.net
逆ではない

928 :デフォルトの名無しさん:2018/11/06(火) 14:23:55.76 ID:V4FwzPmz.net
順切れ

929 :デフォルトの名無しさん:2018/11/06(火) 14:24:46.93 ID:V4FwzPmz.net
>>924
おいお前

930 :デフォルトの名無しさん:2018/11/06(火) 14:25:09.98 ID:V4FwzPmz.net
死ね

931 :デフォルトの名無しさん:2018/11/06(火) 14:28:34.10 ID:V4FwzPmz.net
>>926
おいお前

932 :デフォルトの名無しさん:2018/11/06(火) 14:29:02.76 ID:V4FwzPmz.net
ハゲろ

933 :デフォルトの名無しさん:2018/11/06(火) 14:43:02.48 ID:B+7Pp6SO.net
フサフサが羨ましいのかw

934 :デフォルトの名無しさん:2018/11/06(火) 14:45:10.57 ID:V4FwzPmz.net
>>933
おいお前

935 :デフォルトの名無しさん:2018/11/06(火) 14:45:32.38 ID:V4FwzPmz.net
スレ違いだ

936 :デフォルトの名無しさん:2018/11/06(火) 19:07:34.12 ID:13CfGTjW.net
どう見ても君がスレチ大魔王

937 :デフォルトの名無しさん:2018/11/07(水) 00:26:50.27 ID:s4BPycKf.net
substance.jarでswingの見た目変えるの好きだった
javafxは評判悪かった覚えがあるけどswing使用者はみんな移行したのかな

938 :920:2018/11/07(水) 12:34:31.16 ID:LJxZYzuZ.net
解決したったわ
しかしここはクソの役にも立たねえな
たまに書き込むけど、光合成も出来ない原始生命を相手にしているようで、ただただ孤独しか感じられねえわ
次はジュラ紀になったら来てやるから、それまでに精々、自然淘汰されておけよ

939 :デフォルトの名無しさん:2018/11/07(水) 12:52:14.01 ID:bimd4khF.net
FXのスレは本当にあるんだけどね。

940 :デフォルトの名無しさん:2018/11/07(水) 13:18:13.99 ID:ti/H8oE6.net
>>938
そんなお前にピッタリのスレがあるぞ
こんな低レベルのところじゃお前ほどの力は評価されないんだよ

上級プログラマの雑談部屋☆2
https://medaka.5ch.net/test/read.cgi/prog/1524240229/

941 :デフォルトの名無しさん:2018/11/07(水) 14:02:24.18 ID:+HyKX3eQ.net
>>937
FXは廃止されちゃったからね
極一部のニッチでしか使われてないしモバイルファーストやWebファーストの流れに侵食されてオワコン、とOracleさん自身が公式に宣言してる

942 :デフォルトの名無しさん:2018/11/07(水) 14:05:19.70 ID:1QLpYBJt.net
プグレスバーがジュラ紀を示したらまたおいでw

943 :デフォルトの名無しさん:2018/11/08(木) 12:06:43.94 ID:QSZi8e/Z.net
Javaの仕事に転職したいのだけど
年収の交渉でプロ野球の契約更改のように代理人にお願いして年収アップの交渉をしてもらうシステムはないかな?
もちろん高収入になったらその1%は代理人に払うことにしたらその代理人もものすごくがんばってくれるからwin-winの関係になる。

944 :デフォルトの名無しさん:2018/11/08(木) 12:17:54.62 ID:Cbg63GbQ.net
君がなれ

945 :デフォルトの名無しさん:2018/11/08(木) 12:20:00.08 ID:cbRquK1Y.net
>>943
年収2000万ぐらいなら探せばあるだろ
それ以下なら商売にならなすぎだから厳しいと思うけど

946 :デフォルトの名無しさん:2018/11/08(木) 12:25:50.93 ID:Cbg63GbQ.net
1000万の1%が10万円。とすると月に10人以上成立させないとうまくいかんのではないか?

947 :デフォルトの名無しさん:2018/11/08(木) 12:28:16.32 ID:QSZi8e/Z.net
>>946
それ専門だから1日に5回同じ場所で連続で面接に参加して
それで1月に20日働けば月収1000万円。

948 :デフォルトの名無しさん:2018/11/08(木) 12:31:21.50 ID:fwzjEtEg.net
>>943
そんなことができる代理人は自分で稼ぐだろ
そもそも億円プログラマーなんて存在するのかも怪しいし

949 :デフォルトの名無しさん:2018/11/08(木) 12:34:40.88 ID:Cbg63GbQ.net
そういやさっきツイッターの広告でAIとチャットして何をやりたいかとか聞き出して人を募集している企業とのマッチングすのが出てきたよ。
やる前からAIに仕事奪われたようだなw

950 :デフォルトの名無しさん:2018/11/08(木) 14:09:45.21 ID:Ub+FCVlD.net
アホ参上

951 :デフォルトの名無しさん:2018/11/08(木) 14:44:18.93 ID:mJwNlcze.net
代理人の相場は10%が基本だぞ

952 :デフォルトの名無しさん:2018/11/08(木) 16:13:10.74 ID:cbRquK1Y.net
>>949
それ従来の検索フォームをチャットに変えただけだろ

953 :デフォルトの名無しさん:2018/11/08(木) 17:07:12.88 ID:o3TwcDma.net
人工無脳でも対応向上だと騙される奴がいるんだから有効だと言わざる得ないな
どうせブラック紹介されるなら萌えキャラにでも紹介された方がいいだろう?

954 :デフォルトの名無しさん:2018/11/09(金) 16:17:59.93 ID:o+E2GY7o.net
このスレの少し前にもオラクルの認定試験の話題がありましたが、
Java Silverは持っていると役に立つでしょうか?
Java Bronzeは既に取得しています。

955 :デフォルトの名無しさん:2018/11/09(金) 16:29:29.33 ID:OW/zGENl.net
履歴書に書くことが出来る

956 :デフォルトの名無しさん:2018/11/09(金) 16:30:54.51 ID:OW/zGENl.net
そして面接の時にJavaの質問をされ墓穴を掘る

957 :デフォルトの名無しさん:2018/11/09(金) 16:59:59.72 ID:Jo0ooGHD.net
マ板へ逝けと既に書かれていた

958 :デフォルトの名無しさん:2018/11/09(金) 22:48:54.87 ID:zMMfYdX4.net
総称型を使った抽象クラスがあって、その具象クラス全部を処理するコードを書きたいんだけど
以下のようにするとコンパイルエラーになるのでできません。
いちいちTest2の具象クラスをinstanceof等で特定して書かなければならないということでしょうか?

public class GenericsTest {
public void test() {
Test2<? extends Test> t = null;
t.f(new TestConcrete());
}

public static class Test {

}

public static class TestConcrete extends Test {

}

public abstract static class Test2<A extends Test> {
public void f(A a) {
}
}
}

959 :デフォルトの名無しさん:2018/11/09(金) 22:51:18.43 ID:zMMfYdX4.net
修正しますこうでした。Testも抽象クラスです。

public class GenericsTest {
public void test() {
Test2<? extends Test> t = null;
Test a = null;
t.f(a);
}

public abstract static class Test {

}

public abstract static class Test2<A extends Test> {
public void f(A a) {
}
}
}

960 :951:2018/11/09(金) 23:58:00.70 ID:o+E2GY7o.net
ありがとうございました。

961 :デフォルトの名無しさん:2018/11/10(土) 00:57:56.92 ID:XE+BpAI8.net
こんな記述を見かけたんですが
>Java11からはJavaFXは、ただのライブラリになったので、JavaFX側がMavenのCentral Repositoryにjarを置いてくれていたりするので、 OpenJDK11でJavaFX11を使うのであればpom.xmlのdependencyに入れるだけの話である。

JavaFXはネイティブDLLを使っていますか?
使っている場合、pom.xmlで入れられるライブラリになったというのは、
全環境用のネイティブコードが同梱されるということですか?
ほとんどのJavaライブラリは純粋なJavaコードで環境非依存だと思いますが
環境依存したライブラリはどういう扱いになるんでしょう

962 :デフォルトの名無しさん:2018/11/10(土) 01:36:26.97 ID:XE+BpAI8.net
>>959のコードですが
fの引数は? extends Testだから、Testを受け取れても良くないですか?
? extends Testで期待できるのはTestのインターフェースであり、
TestはTestのインターフェースを持っています。
しかしコンパイルエラーになります

963 :デフォルトの名無しさん:2018/11/10(土) 02:07:52.87 ID:XE+BpAI8.net
少し調べました。状況は、
A extends Test と Test  が非変であり、親子関係が完全に無視される。
f(A a)はConsumerであり、PECS原則から、? super Aを指定できるとよいが、
総称型ではないので指定できない。
Test2<A super Test>も記述不可
f(Test a)にすれば解決するが、Test2の子クラスはfの引数の型を限定したいかもしれない。

964 :デフォルトの名無しさん:2018/11/10(土) 02:33:26.87 ID:XE+BpAI8.net
なぜか一度ワイルドカードを経由する+キャストという方法で解決できました。
public class GenericsTest {
@org.junit.Test
public void test() {
Func<?> funcTmp = new FuncConcrete();
Func<Arg> func = (Func<Arg>) funcTmp;
Arg arg = null;
func.f(arg);
}
@org.junit.Test
public void test2() {
Func<Arg> func = (Func<Arg>) new FuncConcrete();
Arg arg = null;
func.f(arg);
}
public abstract static class Arg {}
public static class ArgConcrete extends Arg {}
public static class FuncConcrete extends Func<ArgConcrete> {}
public abstract static class Func<A extends Arg> {
public void f(A a) {}
}
}

965 :デフォルトの名無しさん:2018/11/10(土) 23:27:50.60 ID:49ccZS6D.net
>>961
環境ごとにjar分けて共有ライブラリ含めるだけだけど。joglとか昔からそうじゃん。

966 :デフォルトの名無しさん:2018/11/10(土) 23:46:19.83 ID:6id28qN8.net
JVMは環境ごとに用意されてるから、その部分で対応してるんでしょう
わかってると思うが当然標準ライブラリとして提供してるAPI自体は環境に依存してない

まぁ internal なコードに環境による場合分けくらいは書いてあるかもしれんけど、
JVMにはその環境用のコードさえあればいいから、全環境のネイティブコードは必要ない

967 :デフォルトの名無しさん:2018/11/10(土) 23:55:28.83 ID:6id28qN8.net
あぁごめん、Java11からの話か
そうだね、環境依存のjarと環境依存してないjarを2つ別々にダウンロードするんだろうね多分
swt+JFaceの、swt部分だけ環境依存してるのと一緒
使ったこと無いけど 上で言われてるJOGLもそんな感じかな

まぁ軽めのデータベースのjarとか環境依存のファイル全部ぶっこんでくることもあったりするけど

968 :デフォルトの名無しさん:2018/11/11(日) 11:11:28.64 ID:6MwZdEZT.net
javaとDB(oracle)のデータについて。

javaプログラム内のある変数Xに対して、DBのある列の値に存在しているかどうか
チェックしたいのですが、どうすればよいでしょうか。

1.String sqlStr = "SELECT * FROM fruit";
2.ResultSet result = st.executeQuery( sqlStr );

3.while( result.next() ) {
4. String str1 = result.getString( "price" );
5. System.out.println(str1);
}

2行目でSQLを実行して、4行目でPRICE列の値を取得していると
思うのですが、X=1000と定義していた場合、PRICE列の値に対してXの
値が存在するチェックはどのようにコーディングすれば良いでしょうか。
一致すれば出力で一致しなければエラーにしたい。

なお、PRICEデータは例として1000としていますが、ランダム数値です。

969 :デフォルトの名無しさん:2018/11/11(日) 11:27:22.91 ID:wM/j3zKs.net
>>968
普通にWHERE書け
SQL分からないんならJavaの前にSQLの入門書を終えてきなさい

970 :デフォルトの名無しさん:2018/11/11(日) 12:00:45.21 ID:6MwZdEZT.net
"SELECT * FROM fruit WHERE PRICE = X"だと
Xが文字列になってしまうと。
Str1とXを比較すればよいと考えていましたが難しい

971 :デフォルトの名無しさん:2018/11/11(日) 13:07:00.71 ID:iJkGWVs5.net
プレースホルダ

972 :デフォルトの名無しさん:2018/11/11(日) 18:24:10.42 ID:0F8Q4Ddx.net
>>970
prepare にするかそのまんまSQL文の中に文字列で埋め込まれるようにするか、だな。

prepare の場合はこんな感じね。PreparedStatement クラス使うやつ。"?" の部分が置き換え部分。
https://qiita.com/ika_katsuo/items/dfbf9ed227ca08256760

973 :デフォルトの名無しさん:2018/11/11(日) 18:43:06.39 ID:KBFxC5Cm.net
もし変数xの値が一つしかないなら
プリペアドステートメントでいちいち事前コンパイルする必要がない
ふつうにSQL問い合わせの文字列作るほうが速い簡単お手軽

974 :デフォルトの名無しさん:2018/11/11(日) 21:38:36.99 ID:3JRsWB+V.net
今時直接データ埋め込みとかあり得んだろ…

975 :デフォルトの名無しさん:2018/11/11(日) 22:00:57.21 ID:KBFxC5Cm.net
知能が低いと
文字列の加工すらできないのか

なるほどな

976 :デフォルトの名無しさん:2018/11/11(日) 22:26:11.35 ID:cBZ/CGbZ.net
それが何を意味するのかも考えずどっかからコピペしてるからそういう質問が出るんだろうけど、技術書見ればプリペアードステートメントとか順序を追って書いてあるもんでもないのかね

977 :デフォルトの名無しさん:2018/11/11(日) 22:28:33.94 ID:VPyBQ4Rk.net
質問スレで質問に対して煽るやつの知能も大概だとおもうぞ

978 :デフォルトの名無しさん:2018/11/11(日) 22:31:24.54 ID:3JRsWB+V.net
文字列の加工程度でドヤるとか w

979 :デフォルトの名無しさん:2018/11/11(日) 22:32:01.58 ID:4KGbvnyj.net
何も調べずに質問する方が大概だろ、質問者は神様ですってかw

980 :デフォルトの名無しさん:2018/11/11(日) 23:35:34.02 ID:infpFr5m.net
>>966
> わかってると思うが当然標準ライブラリとして提供してるAPI自体は環境に依存してない
>
> まぁ internal なコードに環境による場合分けくらいは書いてあるかもしれんけど、
> JVMにはその環境用のコードさえあればいいから、全環境のネイティブコードは必要ない

そんなことないから。java6以降環境依存な標準API追加してるからjava側で場合分けする必要ある。

981 :デフォルトの名無しさん:2018/11/12(月) 00:34:16.10 ID:MtlIUxHY.net
>>973
prepare にしとくとSQLインジェクション防止になるというのもある。
https://blogs.oracle.com/sec/042_sqlinjection_1
もちろんどうやってもそんなことは起こり得ないし1回しか同じSQL文使わないみたいな場合は埋め込めばいい。

982 :デフォルトの名無しさん:2018/11/12(月) 16:56:20.13 ID:ayEXvCJf.net
spring frameworkはMVCですか?

983 :デフォルトの名無しさん:2018/11/12(月) 17:14:22.45 ID:cpYKEuEA.net
spring frameworkはフレームワークで、MVCはプログラムの一つのモデルです。

984 :デフォルトの名無しさん:2018/11/12(月) 17:37:37.98 ID:xaL5+kQv.net
>>980
> 環境依存な標準API
例えば?

985 :デフォルトの名無しさん:2018/11/12(月) 17:50:53.29 ID:ayEXvCJf.net
>>983
どのモデルを採用してるのですか?

986 :デフォルトの名無しさん:2018/11/12(月) 22:41:38.37 ID:JKEbmYKN.net
>>984
awtのDesktop、nio2(more nio)のファイルパーミッション等、apple javaのeawt移植。

あと6以前からのjava soundもjreに含まれてるのは単なるRIで仕様と実装は別物で、
実装部分のLineの挙動はプラットフォーム依存。7以降MIDIのソフトシンセはクロスプラットフォームになったけど。

987 :デフォルトの名無しさん:2018/11/12(月) 23:02:27.75 ID:THHCGQKY.net
Javaのメモリ管理に関して教えてください!

例えば、PCのメモリが32GBあるPCで、
インスタンスを大量生成するプログラムを動かすとします。
また、このプログラムの起動引数に、ヒープ最大使用量=2GB
を設定して起動していたとします。

この場合、大量のインスタンスを生成していった場合ですが...
ヒープ最大使用量=2GBを超えてヒープを使用することはありますか?

それと、ヒープサイズがヒープ最大使用量に近付いた場合、
ガベージコレクションが発生するようになりますか?

988 :デフォルトの名無しさん:2018/11/13(火) 06:25:54.30 ID:qPPBH0nu.net
>>987
インスタンスて何?
プロセスのことか?

989 :デフォルトの名無しさん:2018/11/13(火) 06:56:40.27 ID:t6QPVwz9.net
>>987
> ヒープ最大使用量=2GBを超えてヒープを使用することはありますか?

ないよ、ヒープ最大使用量を超えるとOutOfMemoryErrorが投げられる

> ヒープサイズがヒープ最大使用量に近付いた場合、
> ガベージコレクションが発生するようになりますか?

なるよ、サーバを管理してるけどたまにアプリにメモリリークがあって
メモリが解放されなくてGCが頻発して最終的にOutOfMemoryErrorになる
ことがある、急速にメモリを消費してGCが稼働する間もなくエラーになることもある

990 :デフォルトの名無しさん:2018/11/13(火) 08:44:10.18 ID:z+WaWgDc.net
>> 985

Object o = new Object();
とかです!

>> 986

ありがとうございます!
ということは、PCのメモリを全部食い潰すことはないのですね。
助かります。

991 :デフォルトの名無しさん:2018/11/13(火) 09:22:02.07 ID:3SCk9MN5.net
あほやな

992 :デフォルトの名無しさん:2018/11/13(火) 16:13:23.72 ID:BO12xGFO.net
参照にnull渡してもすぐに廃棄してくれないから
メモリぎりぎりの処理をするとGC発生せずに落ちる
OutOfMemoryErrorの前に1度はフルGCしろよと思う

993 :デフォルトの名無しさん:2018/11/13(火) 23:42:29.05 ID:u0U8MmUH.net
hotspotはやってるだろ?今やってないのか?

994 :デフォルトの名無しさん:2018/11/18(日) 19:34:14.79 ID:pZxF/iWK.net
java11に移行しようとすると、ライブラリ類が対応してるのか不安
自分のアプリだけテストしても不十分だ
例えばNettyもjava11で少し問題が出たようだ

995 :デフォルトの名無しさん:2018/11/18(日) 19:51:16.43 ID:pZxF/iWK.net
java8からの移行を考えてたけど、やっぱり一部パッケージが削除されたせいで
動作しないものが出るようだ
移行作業はまずビルドが成功するかという問題があって、
失敗したら最悪ライブラリを自分で修正しないといけなくて、
ビルドに成功したとしてもライブラリはjava11でテストされていないという状況

ほんの1年ちょい前はjava8が最新だったんだが・・・
こんなの新規プロジェクト間に合わないだろ
移行作業しつつ開発進めないといけない

996 :デフォルトの名無しさん:2018/11/18(日) 21:06:07.68 ID:pZxF/iWK.net
https://builder.japan.zdnet.com/sp_oracle/35095997/2/
>Java Policy Tool

これの代替手段はありますか?

>時代遅れとなったセキュリティAPI
これはjava.securityのことですか?java11でそのパッケージが無くなるんですか?

997 :デフォルトの名無しさん:2018/11/18(日) 23:08:00.76 ID:JqgRfJJT.net
>>996
>これの代替手段はありますか?
ない。どうせpolicy toolはカスタムポリシー対応してないからポリシーファイルは手書きする必要がある。
そもそも、これ技術デモだから。

>これはjava.securityのことですか?java11でそのパッケージが無くなるんですか?
非ポリシーベースのsecurity apiのうち1.1時代のだけ。

998 :デフォルトの名無しさん:2018/11/18(日) 23:39:07.26 ID:pZxF/iWK.net
java8から11に移行する場合、security apiは特に変わってないと考えていいですか?

999 :デフォルトの名無しさん:2018/11/19(月) 00:09:28.48 ID:MZ1FDVWs.net
あー1.1のAPIを8で使ってたらそうじゃないのか

1000 :デフォルトの名無しさん:2018/11/19(月) 00:35:10.50 ID:7qQcp7Oe.net
正確にはcheckPermissionに転送してるだけのSecurityManagerの一部のメソッドだけどね。
今のところ削除予定なのは特殊なやつだけだけど1.1/1.2時代のapi削除するのは時間の問題だと思うよ。

1001 :デフォルトの名無しさん:2018/11/19(月) 00:47:13.92 ID:MZ1FDVWs.net
何で最初から理想的なAPIにできないんだろう?

1002 :デフォルトの名無しさん:2018/11/19(月) 11:00:29.57 ID:C68x9bSi.net
>>1001
君が作ってないからさ
君が作れば理想的なものになる
今すぐ新言語を作れ

1003 :デフォルトの名無しさん:2018/11/19(月) 11:04:42.70 ID:X6/A5UND.net
>>1001
バグと同じで改修に次ぐ改修で無理が想定外や見落としが出て、結果継ぎ接ぎになるんだろ。

1004 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1004
274 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★