☆★Java質問・相談スレッド181★★at TECH
☆★Java質問・相談スレッド181★★ - 暇つぶし2ch903:デフォルトの名無しさん
18/10/31 19:25:31.36 ZwMW2kAu.net
いつか

904:デフォルトの名無しさん
18/10/31 19:27:08.55 iY3LkiS1.net
きっとどこかで生き残る

905:デフォルトの名無しさん
18/10/31 19:30:32.81 umCB7ism.net
俺のディスクの上で生き残る

906:デフォルトの名無しさん
18/10/31 19:48:34.38 umCB7ism.net
デッドロックと言えば、サーバをまたいだロックを掛けててデッドロックになった時は原因究明が大変だったなあ。

907:デフォルトの名無しさん
18/10/31 20:18:06.23 YzLC1QbG.net
>>860
外に漏らさなければ入念にチェックする範囲がクラス内だけに留まるだろ
外から見えるオブジェクトならそれを触ってる可能性のある範囲全てをチェックしなきゃいけない

908:デフォルトの名無しさん
18/10/31 21:04:23.41 6PFXXFSS.net
>>866
クラスA#method1() method3呼び出し
クラスA#method2()
クラスB#method3() method2呼び出し
この状況でmethod1,3を異なるスレッドが呼び出したらデッドロックになりうるのでは?
クラスA,Bがそれぞれ


909:専用のロックオブジェクトを持っていて method1,2,3の内部でロックオブジェクトでロックしているとして



910:デフォルトの名無しさん
18/10/31 21:13:55.51 umCB7ism.net
そういやJavaVMって実行時にデッドロックを見つけ出す機能はないのかな?
OSのファイルロックだと見つけてくれたりするよな。NFS絡むと無理だけど。
(あ、でも2プロセスでロック掛け合った場合だけかな?)

911:デフォルトの名無しさん
18/10/31 21:30:17.03 6PFXXFSS.net
デッドロックを通知する仕組みはあるようです。JConsole
安全なsynchronizedというものは、そのメソッドがどこから呼び出されているか、
どれを呼び出しているかというような依存関係で決まって、
単純な記述方法で安全性を確保する事はできないのではと思いました。
どのオブジェクトをロックしてもこの問題は残ります。
URLリンク(www.jpcert.or.jp)
これなんかもそうですが、ロック順序だけで解決できると考えてしまっていますが、
synchronizedブロック内のロジックが他のメソッドを呼び出している場合、
まだデッドロックが発生する可能性があると思います。
派生していくメソッド呼び出しのどこかにsynchronizedブロックがあれば。
もちろん、多くの場合、プログラムは様々なメソッドを呼び出します。
>>860はこの理解で正しいかという意味です

912:デフォルトの名無しさん
18/10/31 21:40:58.89 KdCoWYCo.net
頑張れぼうやw

913:デフォルトの名無しさん
18/10/31 22:59:47.53 GrkkoIKB.net
>>867のケースで仮にAがthisをロックしていたとしたら、B#method3がA#method2を呼ばずともB#method3内で直接または間接的にAのロックを試みただけでデッドロックするだろう。
privateなロックオブジェクトを用いたからといってデッドロックの可能性はゼロにはならないが、thisを使うのに比べれば確実に可能性は低くなる。
あえてリスクの大きくパフォーマンスの低下する方を選択する積極的な理由がない。

914:デフォルトの名無しさん
18/10/31 23:05:48.35 VI6I+9K/.net
>>869
何を言いたいのか理解できないが、どこの誰がどんなタイミングでロックを取りに来ようとも、ロックの順番さえ守ってれば絶対にデッドロックは起こらないよ。

915:デフォルトの名無しさん
18/10/31 23:43:17.95 QZT9zuHU.net
DB などほとんどのアプリでは、デッドロックでタイムアウトする。
絶対に回避できない
ロックする順番は、2プロセスの場合、
プロセスAがX, Y、
プロセスBがY, X
3プロセスの場合、
プロセスAがX, Y、
プロセスBがY, Z、
プロセスCがZ, X

916:デフォルトの名無しさん
18/11/01 00:20:30.29 IO/IeQZr.net
>>873
ロックの順番があべこべなのだからデッドロックするのは当然だろう

917:デフォルトの名無しさん
18/11/01 06:39:30.81 MRwfHAbj.net
>>873
バカにロックを使わせるな
って言う見本
せめて初歩の初歩ぐらい理解してからレスしろよ w

918:デフォルトの名無しさん
18/11/01 07:11:11.17 m171VN/W.net
>>872
ロックの順番を守る事ができないということです
ブロック内にメソッド呼び出しがあることは普通です

919:デフォルトの名無しさん
18/11/01 07:11:48.43 m171VN/W.net
>>871
>どのオブジェクトをロックしてもこの問題は残ります。

920:デフォルトの名無しさん
18/11/01 07:13:39.94 m171VN/W.net
現在している話は、普通のプログラムにおいてロックの順番を守る妥当な方法は存在しないという話です。
synchronizedブロック内でメソッド呼び出しがあった時点でそうなります。
それに対してロックの順番を守ればいいとかthisをロックしろとか言い続けているのは話が分かっていません。

921:デフォルトの名無しさん
18/11/01 07:17:18.61 m171VN/W.net
もう少し分かり易い説明を思いつきました。
ここにある問題は、synchronizedブロックで一旦ロック順序を守ったとしても、
そのブロック内から呼び出されているメソッド及びそこから派生的に呼び出されている全てのメソッドにおいて
synchronziedブロックを使う場合デッドロックが生じうるという問題で、
リファクタリング等において恒久的に懸念が残り続けるという問題です。
これは一時ロック順序を守ったコードを書いても解決しません。

922:デフォルトの名無しさん
18/11/01 07:20:14.51 m171VN/W.net
すみません、経験上凡人レベルの人に話しても理解されなくて、辛い思いをするだけです。
話を終わります。

923:デフォルトの名無しさん
18/11/01 07:36:25.75 PBz6MbC


924:m.net



925:デフォルトの名無しさん
18/11/01 07:55:33.73 MRwfHAbj.net
ID:QZT9zuHU = ID:m171VN/W
バカのまま永遠にデッドロックしとけ

926:デフォルトの名無しさん
18/11/01 08:23:01.98 Tn1c1okn.net
例題とかじゃなくて、どういう時にロックが必要になるか考えて実際にやってみたらいいんじゃないか
そんな複雑なsynchronizedの使い方をしたことはしないだろう

927:デフォルトの名無しさん
18/11/01 09:20:12.40 AYHv18S/.net
>すみません、経験上凡人レベルの人に話しても理解されなくて、辛い思いをするだけです。
世間は俺のことを分かってくれない(馬鹿のFAQ)w

928:デフォルトの名無しさん
18/11/01 09:30:29.97 KWvf1ga0.net
ID:m171VN/Wは天才すぎる故に凡人レベルの嫉妬を買ってしまった

929:デフォルトの名無しさん
18/11/01 09:40:00.51 mQsUQM4b.net
いや本当。凡人レベルの人には話が通じませんよね。

という具合にみんなして同調しておけばいいのに。

930:デフォルトの名無しさん
18/11/01 09:41:09.33 VmLiOLMi.net
凡人にも理解出来る様に説明出来る能力を持ってるのが、天才の条件だな
説明出来ない人は紙一重の方

931:デフォルトの名無しさん
18/11/01 09:47:33.79 DtT8Cv0d.net
まあ責任と前提の問題だな
正常な頭してたらクラスAとクラスBが相互に密結合するような設計をすることはありえないから、
似た状況が起こりうるのはBがAに自身を登録してAがBをinterface経由で「コールバック」するようなパターンだろう
その場合、BのメソッドがAのコンテキストから呼び出されることはBを作る側は当然知っているはずで、Aを更に別のスレッドから呼ぶような基地外的行為をしないという人間としての最低限度の責任はB側にある
そしてA側はそのようなリスクのある拡張ポイントをなるべく作るべきではないし、やむを得ないときはドキュメントに明記するべき

932:デフォルトの名無しさん
18/11/01 10:30:23.17 Tn1c1okn.net
あれだ
スレッドを知った初心者が無駄に使いたくなってる状態に近いんじゃないか

933:デフォルトの名無しさん
18/11/01 10:34:13.85 x+OioMtW.net
天才はこちらへ
上級プログラマの雑談部屋☆2
スレリンク(prog板)

934:デフォルトの名無しさん
18/11/01 11:38:29.67 mQsUQM4b.net
>>890
ありがとう。そんなスレがあったとは。正に俺のために作られたようなスレだな。
と、サラッと書けるくらいにならんといかんよ。現実がどうであれ。w

935:デフォルトの名無しさん
18/11/01 14:20:26.28 aGO292A7.net
馬鹿は死ななきゃ治らない

936:デフォルトの名無しさん
18/11/01 15:10:14.12 Nl3jEz8g.net
javaの資格のsilverやgoldはどの程度の実力で受かりますか?
デザインパターンやリファクタリングをちゃんと理解しているレベルなら余裕で受かる?

937:デフォルトの名無しさん
18/11/01 15:35:43.13 mUSj63Sn.net
>>893
シルバーはブロンズと変わらん
ゴールドはライブラリの使い方知ってればおけ
日付の計算とかスレッドとかコレクション

938:デフォルトの名無しさん
18/11/01 15:58:36.20 Nl3jEz8g.net
>>894
ゴールドもその程度で受かるのですか?
楽勝ですね。
じゃ逆にデザインパターンやリファクタリングをあまり理解していなくても受かるということ?

939:デフォルトの名無しさん
18/11/01 16:03:52.20 OxvwXsOa.net
受けようと思ったことすらないのでわからない。

940:デフォルトの名無しさん
18/11/01 16:11:52.48 Nl3jEz8g.net
職歴にプログラミングがないのでしかたなく資格でもアピールする必要があるのですが
Java資格はGoldを取るとして
あとなにがあったほうがよいでしょうか?
データベース関連やUML関連やネットワーク関連の資格ですか?具体的にはなにが印象いいでしょうか?

941:デフォルトの名無しさん
18/11/01 16:12:24.17 Nl3jEz8g.net
デザインパターン関連の資格ってないのかな?

942:デフォルトの名無しさん
18/11/01 16:23:14.20 DtT8Cv0d.net
>>897
まずはIPA


943:のデスペとデスペ



944:デフォルトの名無しさん
18/11/01 16:33:52.56 Nl3jEz8g.net
デスペとデスペですか。
同じものなのになぜ2回も言うのですか。

945:デフォルトの名無しさん
18/11/01 16:41:11.79 RfEd9OxR.net
大事なことなので

946:デフォルトの名無しさん
18/11/01 17:12:47.17 Nl3jEz8g.net
そうですか。
なにか忘れてそうなのですが
プログラミングあるいは関連分野で、あったほうがいい資格はありませんか?

947:デフォルトの名無しさん
18/11/01 18:05:14.35 OxvwXsOa.net
わからない。資格何もなしで何十年も働いちゃったもので。
一時期は学校でC言語教えてたりもしたが、資格はなかった。
あ、一太郎も教えてたことあったよ。もちろん資格なしで。

948:デフォルトの名無しさん
18/11/01 19:13:26.95 Nl3jEz8g.net
>>903
無免許ですか。逮捕しますよw
一太郎は日本用のWordだと思うけどなんでそんなものが存在したの?

949:デフォルトの名無しさん
18/11/01 19:15:26.25 1Z/ZXoar.net
まあ実務をやる上では資格は特に必要ではない
ただ採用する立場だと資格ない奴とある奴ならある奴を取る

950:デフォルトの名無しさん
18/11/01 19:25:15.27 q4rSVTZi.net
馬鹿なんだろう

951:デフォルトの名無しさん
18/11/01 19:39:49.82 OxvwXsOa.net
>>904
なんでって、MS-DOS時代のWORDは漢字扱えなかったからじゃないか?

952:デフォルトの名無しさん
18/11/01 23:44:32.35 kQnTnj4P.net
ブロンズは持っても意味ないしシルバーもゴールドの受験資格みたいなもんだぞ。
そんで中身の言語部分はJVMSもJLSも一切読まなくても答えられる程度でどちらかと言うと
ありふれたライブラリの宣伝兼再確認みたいな内容。

953:デフォルトの名無しさん
18/11/02 10:24:58.44 VhXZ8KFR.net
>>904
資格と免許の区別も出来ないんじゃ、
就職なんて出来んだろ

954:デフォルトの名無しさん
18/11/02 16:44:03.61 TVanRjUQ.net
もしかしなくてもsilverとかより基本情報技術者取ったほうがいいんでしょうか

955:デフォルトの名無しさん
18/11/02 16:53:15.88 3EaYIZ29.net
当然
Javaの重箱の隅に付いてる食べカスの色知ってる奴よりIPアドレスの計算できる奴の方が遥かに役に立つ

956:デフォルトの名無しさん
18/11/02 17:17:06.84 0QIYfvOa.net
IPアドレスの計算って?
何か計算必要か?

957:デフォルトの名無しさん
18/11/02 21:03:28.28 mJ2e4zOQ.net
インターネットキングならIPアドレスの計算くらい朝飯前だよ

958:デフォルトの名無しさん
18/11/02 22:48:40.06 ejOlj3tt.net
サブネットマスクとかの話ちゃうの

959:デフォルトの名無しさん
18/11/03 00:34:57.85 8dUCHJOu.net
世の中に無駄なものなんかないよ
ジャヴァの資格もIPアドレスの計算も全て社会の役に立ってる

960:デフォルトの名無しさん
18/11/03 18:14:19.75 b5iwDuZ8.net
java11, 12にはくだらない機能しか入らないのか

961:デフォルトの名無しさん
18/11/04 11:32:05.48 hQdPSgHl.net
ブリッジパターンの応用手順のブログみたい。パッケージを開発する時を前提にしているね。
URLリンク(blogs.yahoo.co.jp)

962:デフォルトの名無しさん
18/11/06 00:08:12.73 GjqHOKec.net
for文ブロックの後にループカウンタ変数の値でif文を書きたい
でもループカウンタ変数のスコープの問題で使えない
for文実行前にカウンタ変数用意するのは悔しいし誤動作を招きそうな気がするのでやりたくない
for文の中にif文を書いちゃえばいいんだけど毎回実行されるのは無駄で気持ちが悪いしそもそも本来やりたいことと違う
これはどう解決すれば良いんでしょうか、初歩的ですいません……

963:デフォルトの名無しさん
18/11/06 00:14:58.15 ShoHBAGo.net
>>918
forループに入る前にループカウンタとは別の変数を用意して、ループの最後にカウンタの値をその変数にコピーするようにしよう
そうすればループカウンタをfor文の外で宣言しなくて済むし悔しくない

964:デフォルトの名無しさん
18/11/06 00:22:51.13 GjqHOKec.net
そもそも�


965:求[プカウンタを前に宣言はできませんでした(今までそんなんやろうと思わなかった……) >>919 代入ならif評価よりは速そうですね、ありがとうございます



966:デフォルトの名無しさん
18/11/06 01:56:42.62 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 の値そのまま使えば良い。

967:デフォルトの名無しさん
18/11/06 11:11:50.23 I/7NgPjD.net
while使えば?

968:デフォルトの名無しさん
18/11/06 11:38:48.82 4wD9lBDw.net
時間の掛かるファイル読込処理を非同期実行して、その処理中にファイル読込具合に応じてJavaFXのプログレスバーを更新してるんだけど、
たまにプログレスバーが更新されない場合がある。なんで?
そのファイル読込処理とプログレスバー更新はインターフェースの継承メソッドに記述していて、
Threadクラスに登録するRunnableクラスのrunメソッド中でインターフェースの抽象メソッドを叩いて呼び出している。
1)イベントトリガが、JavaFXのFileChooserの選択完了時 → プログレスバー更新される
2)イベントトリガが、別のJavaFXの子Scene上のJavaFXボタン押下時(子Sceneのhide後) → プログレスバー更新されない
setImplicitExitをどうたらこたらするというのは一通り試した
簡単に解決したいんだがなあ

969:デフォルトの名無しさん
18/11/06 12:01:52.02 nXssBivk.net
>>923
JavaFXはもうJavaの標準ライブラリではなく単なる野良ライブラリの一つに過ぎない
スレ違い

970:デフォルトの名無しさん
18/11/06 12:19:26.12 4wD9lBDw.net
回答できんのなら黙ってろよな。回答できないくせに黙ってられないから池沼なのか

971:デフォルトの名無しさん
18/11/06 14:10:58.07 FYsrzIPK.net
と逆切れするアホ

972:デフォルトの名無しさん
18/11/06 14:23:17.36 V4FwzPmz.net
逆ではない

973:デフォルトの名無しさん
18/11/06 14:23:55.76 V4FwzPmz.net
順切れ

974:デフォルトの名無しさん
18/11/06 14:24:46.93 V4FwzPmz.net
>>924
おいお前

975:デフォルトの名無しさん
18/11/06 14:25:09.98 V4FwzPmz.net
死ね

976:デフォルトの名無しさん
18/11/06 14:28:34.10 V4FwzPmz.net
>>926
おいお前

977:デフォルトの名無しさん
18/11/06 14:29:02.76 V4FwzPmz.net
ハゲろ

978:デフォルトの名無しさん
18/11/06 14:43:02.48 B+7Pp6SO.net
フサフサが羨ましいのかw

979:デフォルトの名無しさん
18/11/06 14:45:10.57 V4FwzPmz.net
>>933
おいお前

980:デフォルトの名無しさん
18/11/06 14:45:32.38 V4FwzPmz.net
スレ違いだ

981:デフォルトの名無しさん
18/11/06 19:07:34.12 13CfGTjW.net
どう見ても君がスレチ大魔王

982:デフォルトの名無しさん
18/11/07 00:26:50.27 s4BPycKf.net
substance.jarでswingの見た目変えるの好きだった
javafxは評判悪かった覚えがあるけどswing使用者はみんな移行したのかな

983:920
18/11/07 12:34:31.16 LJxZYzuZ.net
解決したったわ
しかしここはクソの役にも立たねえな
たまに書き込むけど、光合成も出来ない原始生命を相手にしているようで、ただただ孤独しか感じられねえわ
次はジュラ紀になったら来てやるから、それまでに精々、自然淘汰されておけよ

984:デフォルトの名無しさん
18/11/07 12:52:14.01 bimd4khF.net
FXのスレは本当にあるんだけどね。

985:デフォルトの名無しさん
18/11/07 13:18:13.99 ti/H8oE6.net
>>938
そんなお前にピッタリのスレがあるぞ
こんな低レベルのところじゃお前ほどの力は評価されないんだよ
上級プログラマの雑談部屋☆2
スレリンク(prog板)

986:デフォルトの名無しさん
18/11/07 14:02:24.18 +HyKX3eQ.net
>>937
FXは廃止されちゃったからね
極一部のニッチでしか


987:使われてないしモバイルファーストやWebファーストの流れに侵食されてオワコン、とOracleさん自身が公式に宣言してる



988:デフォルトの名無しさん
18/11/07 14:05:19.70 1QLpYBJt.net
プグレスバーがジュラ紀を示したらまたおいでw

989:デフォルトの名無しさん
18/11/08 12:06:43.94 QSZi8e/Z.net
Javaの仕事に転職したいのだけど
年収の交渉でプロ野球の契約更改のように代理人にお願いして年収アップの交渉をしてもらうシステムはないかな?
もちろん高収入になったらその1%は代理人に払うことにしたらその代理人もものすごくがんばってくれるからwin-winの関係になる。

990:デフォルトの名無しさん
18/11/08 12:17:54.62 Cbg63GbQ.net
君がなれ

991:デフォルトの名無しさん
18/11/08 12:20:00.08 cbRquK1Y.net
>>943
年収2000万ぐらいなら探せばあるだろ
それ以下なら商売にならなすぎだから厳しいと思うけど

992:デフォルトの名無しさん
18/11/08 12:25:50.93 Cbg63GbQ.net
1000万の1%が10万円。とすると月に10人以上成立させないとうまくいかんのではないか?

993:デフォルトの名無しさん
18/11/08 12:28:16.32 QSZi8e/Z.net
>>946
それ専門だから1日に5回同じ場所で連続で面接に参加して
それで1月に20日働けば月収1000万円。

994:デフォルトの名無しさん
18/11/08 12:31:21.50 fwzjEtEg.net
>>943
そんなことができる代理人は自分で稼ぐだろ
そもそも億円プログラマーなんて存在するのかも怪しいし

995:デフォルトの名無しさん
18/11/08 12:34:40.88 Cbg63GbQ.net
そういやさっきツイッターの広告でAIとチャットして何をやりたいかとか聞き出して人を募集している企業とのマッチングすのが出てきたよ。
やる前からAIに仕事奪われたようだなw

996:デフォルトの名無しさん
18/11/08 14:09:45.21 Ub+FCVlD.net
アホ参上

997:デフォルトの名無しさん
18/11/08 14:44:18.93 mJwNlcze.net
代理人の相場は10%が基本だぞ

998:デフォルトの名無しさん
18/11/08 16:13:10.74 cbRquK1Y.net
>>949
それ従来の検索フォームをチャットに変えただけだろ

999:デフォルトの名無しさん
18/11/08 17:07:12.88 o3TwcDma.net
人工無脳でも対応向上だと騙される奴がいるんだから有効だと言わざる得ないな
どうせブラック紹介されるなら萌えキャラにでも紹介された方がいいだろう?

1000:デフォルトの名無しさん
18/11/09 16:17:59.93 o+E2GY7o.net
このスレの少し前にもオラクルの認定試験の話題がありましたが、
Java Silverは持っていると役に立つでしょうか?
Java Bronzeは既に取得しています。

1001:デフォルトの名無しさん
18/11/09 16:29:29.33 OW/zGENl.net
履歴書に書くことが出来る

1002:デフォルトの名無しさん
18/11/09 16:30:54.51 OW/zGENl.net
そして面接の時にJavaの質問をされ墓穴を掘る

1003:デフォルトの名無しさん
18/11/09 16:59:59.72 Jo0ooGHD.net
マ板へ逝けと既に書かれていた

1004:デフォルトの名無しさん
18/11/09 22:48:54.87 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) {
}
}
}

1005:デフォルトの名無しさん
18/11/09 22:51:18.43 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) {
}
}
}

1006:951
18/11/09 23:58:00.70 o+E2GY7o.net
ありがとうございました。

1007:デフォルトの名無しさん
18/11/10 00:57:56.92 XE+BpAI8.net
こんな記述を見かけたんですが
>Java11からはJavaFXは、ただのライブラリになったので、JavaFX側がMavenのCentral Repositoryにjarを置いてくれていたりするので、 OpenJDK11でJavaFX11を使うのであればpom.xmlのdependencyに入れるだけの話である。
JavaFXはネイティブDLLを使っていますか?
使っている場合、pom.xmlで入れられるライブラリになったというのは、
全環境用のネイティブコードが同梱されるということですか?
ほとんどのJavaライブラリは純粋なJavaコードで環境非依存だと思いますが
環境依存したライブラリはどういう扱いになるんでしょう

1008:デフォルトの名無しさん
18/11/10 01:36:26.97 XE+BpAI8.net
>>959のコードですが
fの引数は? extends Testだから、Testを受け取れても良くないですか?
? extends Testで期待できるのはTestのインターフェースであり、
TestはTestのインターフェースを持っています。
しかしコンパイルエラーになります

1009:デフォルトの名無しさん
18/11/10 02:07:52.87 XE+BpAI8.net
少し調べました。状況は、
A extends Test と Test  が非変であり、親子関係が完全に無視される。
f(A a)はConsumerであり、PECS原則から、? super Aを指定できるとよいが、
総称型ではないので指定できない。
Test2<A super Test>も記述不可
f(Test a)にすれば解決するが、Test2の子クラスはfの引数の型を限定したいかもしれない。

1010:デフォルトの名無しさん
18/11/10 02:33:26.87 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) {}
}
}

1011:デフォルトの名無しさん
18/11/10 23:27:50.60 49ccZS6D.net
>>961
環境ごとにjar分けて共有ライブラリ含めるだけだけど。joglとか昔からそうじゃん。

1012:デフォルトの名無しさん
18/11/10 23:46:19.83 6id28qN8.net
JVMは環境ごとに用意されてるから、その部分で対応してるんでしょう
わかってると思うが当然標準ライブラリとして提供してるAPI自体は環境に依存してない
まぁ internal なコードに環境による場合分けくらいは書いてあるかもしれんけど、
JVMにはその環境用のコードさえあればいいから、全環境のネイティブコードは必要ない

1013:デフォルトの名無しさん
18/11/10 23:55:28.83 6id28qN8.net
あぁごめん、Java11からの話か
そうだね、環境依存のjarと環境依存してないjarを2つ別々にダウンロードするんだろうね多分
swt+JFaceの、swt部分だけ環境依存してるのと一緒
使ったこと無いけど 上で言われてるJOGLもそんな感じかな
まぁ軽めのデータベースのjarとか環境依存のファイル全部ぶっこんでくることもあったりするけど

1014:デフォルトの名無しさん
18/11/11 11:11:28.64 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としていますが、ラン�


1015:ム数値です。



1016:デフォルトの名無しさん
18/11/11 11:27:22.91 wM/j3zKs.net
>>968
普通にWHERE書け
SQL分からないんならJavaの前にSQLの入門書を終えてきなさい

1017:デフォルトの名無しさん
18/11/11 12:00:45.21 6MwZdEZT.net
"SELECT * FROM fruit WHERE PRICE = X"だと
Xが文字列になってしまうと。
Str1とXを比較すればよいと考えていましたが難しい

1018:デフォルトの名無しさん
18/11/11 13:07:00.71 iJkGWVs5.net
プレースホルダ

1019:デフォルトの名無しさん
18/11/11 18:24:10.42 0F8Q4Ddx.net
>>970
prepare にするかそのまんまSQL文の中に文字列で埋め込まれるようにするか、だな。
prepare の場合はこんな感じね。PreparedStatement クラス使うやつ。"?" の部分が置き換え部分。
URLリンク(qiita.com)

1020:デフォルトの名無しさん
18/11/11 18:43:06.39 KBFxC5Cm.net
もし変数xの値が一つしかないなら
プリペアドステートメントでいちいち事前コンパイルする必要がない
ふつうにSQL問い合わせの文字列作るほうが速い簡単お手軽

1021:デフォルトの名無しさん
18/11/11 21:38:36.99 3JRsWB+V.net
今時直接データ埋め込みとかあり得んだろ…

1022:デフォルトの名無しさん
18/11/11 22:00:57.21 KBFxC5Cm.net
知能が低いと
文字列の加工すらできないのか
なるほどな

1023:デフォルトの名無しさん
18/11/11 22:26:11.35 cBZ/CGbZ.net
それが何を意味するのかも考えずどっかからコピペしてるからそういう質問が出るんだろうけど、技術書見ればプリペアードステートメントとか順序を追って書いてあるもんでもないのかね

1024:デフォルトの名無しさん
18/11/11 22:28:33.94 VPyBQ4Rk.net
質問スレで質問に対して煽るやつの知能も大概だとおもうぞ

1025:デフォルトの名無しさん
18/11/11 22:31:24.54 3JRsWB+V.net
文字列の加工程度でドヤるとか w

1026:デフォルトの名無しさん
18/11/11 22:32:01.58 4KGbvnyj.net
何も調べずに質問する方が大概だろ、質問者は神様ですってかw

1027:デフォルトの名無しさん
18/11/11 23:35:34.02 infpFr5m.net
>>966
> わかってると思うが当然標準ライブラリとして提供してるAPI自体は環境に依存してない
>
> まぁ internal なコードに環境による場合分けくらいは書いてあるかもしれんけど、
> JVMにはその環境用のコードさえあればいいから、全環境のネイティブコードは必要ない
そんなことないから。java6以降環境依存な標準API追加してるからjava側で場合分けする必要ある。

1028:デフォルトの名無しさん
18/11/12 00:34:16.10 MtlIUxHY.net
>>973
prepare にしとくとSQLインジェクション防止になるというのもある。
URLリンク(blogs.oracle.com)
もちろんどうやってもそんなことは起こり得ないし1回しか同じSQL文使わないみたいな場合は埋め込めばいい。

1029:デフォルトの名無しさん
18/11/12 16:56:20.13 ayEXvCJf.net
spring frameworkはMVCですか?

1030:デフォルトの名無しさん
18/11/12 17:14:22.45 cpYKEuEA.net
spring frameworkはフレームワークで、MVCはプログラムの一つのモデルです。

1031:デフォルトの名無しさん
18/11/12 17:37:37.98 xaL5+kQv.net
>>980
> 環境依存な標準API
例えば?

1032:デフォルトの名無しさん
18/11/12 17:50:53.29 ayEXvCJf.net
>>983
どのモデルを採用してるのですか?

1033:デフォルトの名無しさん
18/11/12 22:41:38.37 JKEbmYKN.net
>>984
awtのDesktop、nio2(more nio)のファイルパーミッション等、apple javaのeawt移植。
あと6以前からのjava soundもjreに含まれてるのは単なるRIで仕様と実装は別物で、
実装部分のLineの挙動はプラットフォーム依存。7以降MIDIのソフトシンセはクロスプラットフォームになったけど。

1034:デフォルトの名無しさん
18/11/12 23:02:27.75 THHCGQKY.net
Javaのメモリ管理に関して教えてください!
例えば、PCのメモリが32GBあるPCで、
インス


1035:タンスを大量生成するプログラムを動かすとします。 また、このプログラムの起動引数に、ヒープ最大使用量=2GB を設定して起動していたとします。 この場合、大量のインスタンスを生成していった場合ですが... ヒープ最大使用量=2GBを超えてヒープを使用することはありますか? それと、ヒープサイズがヒープ最大使用量に近付いた場合、 ガベージコレクションが発生するようになりますか?



1036:デフォルトの名無しさん
18/11/13 06:25:54.30 qPPBH0nu.net
>>987
インスタンスて何?
プロセスのことか?

1037:デフォルトの名無しさん
18/11/13 06:56:40.27 t6QPVwz9.net
>>987
> ヒープ最大使用量=2GBを超えてヒープを使用することはありますか?
ないよ、ヒープ最大使用量を超えるとOutOfMemoryErrorが投げられる
> ヒープサイズがヒープ最大使用量に近付いた場合、
> ガベージコレクションが発生するようになりますか?
なるよ、サーバを管理してるけどたまにアプリにメモリリークがあって
メモリが解放されなくてGCが頻発して最終的にOutOfMemoryErrorになる
ことがある、急速にメモリを消費してGCが稼働する間もなくエラーになることもある

1038:デフォルトの名無しさん
18/11/13 08:44:10.18 z+WaWgDc.net
>> 985
Object o = new Object();
とかです!
>> 986
ありがとうございます!
ということは、PCのメモリを全部食い潰すことはないのですね。
助かります。

1039:デフォルトの名無しさん
18/11/13 09:22:02.07 3SCk9MN5.net
あほやな

1040:デフォルトの名無しさん
18/11/13 16:13:23.72 BO12xGFO.net
参照にnull渡してもすぐに廃棄してくれないから
メモリぎりぎりの処理をするとGC発生せずに落ちる
OutOfMemoryErrorの前に1度はフルGCしろよと思う

1041:デフォルトの名無しさん
18/11/13 23:42:29.05 u0U8MmUH.net
hotspotはやってるだろ?今やってないのか?

1042:デフォルトの名無しさん
18/11/18 19:34:14.79 pZxF/iWK.net
java11に移行しようとすると、ライブラリ類が対応してるのか不安
自分のアプリだけテストしても不十分だ
例えばNettyもjava11で少し問題が出たようだ

1043:デフォルトの名無しさん
18/11/18 19:51:16.43 pZxF/iWK.net
java8からの移行を考えてたけど、やっぱり一部パッケージが削除されたせいで
動作しないものが出るようだ
移行作業はまずビルドが成功するかという問題があって、
失敗したら最悪ライブラリを自分で修正しないといけなくて、
ビルドに成功したとしてもライブラリはjava11でテストされていないという状況
ほんの1年ちょい前はjava8が最新だったんだが・・・
こんなの新規プロジェクト間に合わないだろ
移行作業しつつ開発進めないといけない

1044:デフォルトの名無しさん
18/11/18 21:06:07.68 pZxF/iWK.net
URLリンク(builder.japan.zdnet.com)
>Java Policy Tool
これの代替手段はありますか?
>時代遅れとなったセキュリティAPI
これはjava.securityのことですか?java11でそのパッケージが無くなるんですか?

1045:デフォルトの名無しさん
18/11/18 23:08:00.76 JqgRfJJT.net
>>996
>これの代替手段はありますか?
ない。どうせpolicy toolはカスタムポリシー対応してないからポリシーファイルは手書きする必要がある。
そもそも、これ技術デモだから。
>これはjava.securityのことですか?java11でそのパッケージが無くなるんですか?
非ポリシーベースのsecurity apiのうち1.1時代のだけ。

1046:デフォルトの名無しさん
18/11/18 23:39:07.26 pZxF/iWK.net
java8から11に移行する場合、security apiは特に変わってないと考えていいですか?

1047:デフォルトの名無しさん
18/11/19 00:09:28.48 MZ1FDVWs.net
あー1.1のAPIを8で使ってたらそうじゃないのか

1048:デフォルトの名無しさん
18/11/19 00:35:10.50 7qQcp7Oe.net
正確にはcheckPermissionに転送してるだけのSecurityManagerの一部のメソッドだけどね。
今のところ削除予定なのは特殊なやつだけだけど1.1/1.2時代のapi削除するのは時間の問題だと思うよ。

1049:デフォルトの名無しさん
18/11/19 00:47:13.92 MZ1FDVWs.net
何で最初から理想的なAPIにできないんだろう


1050:?



1051:デフォルトの名無しさん
18/11/19 11:00:29.57 C68x9bSi.net
>>1001
君が作ってないからさ
君が作れば理想的なものになる
今すぐ新言語を作れ

1052:デフォルトの名無しさん
18/11/19 11:04:42.70 X6/A5UND.net
>>1001
バグと同じで改修に次ぐ改修で無理が想定外や見落としが出て、結果継ぎ接ぎになるんだろ。

1053:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 281日 17時間 15分 2秒

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch