■ このスレッドは過去ログ倉庫に格納されています
☆★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
- w
- 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<Integer> 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 ★