16/08/10 08:47:58.34 oaJhkFWS.net
レスありがとう
逆コンパイル見て納得したわ
そうだよなぁ、コンパイル時に参照してるenumと実行時に参照してるenumが変わってる場合もあるもんなぁ
自分で作ってる範囲では関係ないけど
428:デフォルトの名無しさん
16/08/10 09:04:51.85 DKNr45Gr.net
CやC#のenumがタイプセーフでないと言われるのは
enumが単なる数値でどんな値も取りうるからというよりもswitchを使うという行為に由来するもので
結局Javaの「タイプセーフ」enumだろうがswitch使っちゃうとタイプセーフにはなり得ないんだよな
429:デフォルトの名無しさん
16/08/10 10:01:54.36 ZwTZqxeT.net
switchも拡張してなんとかすればいいのにね
430:デフォルトの名無しさん
16/08/10 14:58:25.68 fFAFyiAs.net
定義外enumのインスタンス化禁止+網羅チェックくらいの
程よい拡張ならいいけどやりすぎると結構アレなことになる
URLリンク(wpdev.hatenablog.com)
URLリンク(qiita.com)
431:デフォルトの名無しさん
16/08/10 15:30:44.38 qErblx1T.net
>>424
それはバージョン間の互換性の問題と
typesafe enum/int enumの問題とをごっちゃにしてるだけだよ。
互換性の問題をクリアできてないから万能ではない、あたりまでは言えるかもしれんが、
タイプセーフではないとか言っちゃうと……
432:デフォルトの名無しさん
16/08/10 22:13:48.56 UWZg55pn.net
株式会社TOUAが2016年7月に破産
URLリンク(www.tdb.co.jp)
433:デフォルトの名無しさん
16/08/14 01:00:37.40 S7WS2brb.net
JFrameでウインドウを作って、そこでボタンなどを作成して時間のかかる処理をさせると、処理が終わるまでボタンが凹みっぱなしになるんですが
処理を続けつつ、JFrameを最新の状態で上書きするにはどうしたら良いですか?
434:デフォルトの名無しさん
16/08/14 06:51:40.07 EcwVprBa.net
スレッドプール使って別スレッドでやる
435:デフォルトの名無しさん
16/08/14 19:37:47.75 WKXjJIoJ.net
rxJava
436:デフォルトの名無しさん
16/08/14 20:26:41.84 5USMjBJX.net
jqueryを使って表を作成していて、
2つのプラグインを使おうとしています。
プラグイン1・・・セルが同一であれば結合する
プラグイン2・・・ヘッダーでソートができる。
この時、それぞれのプラグインで
<table>タグにidを設定する必要があります。
この場合、<table id=
437:デフォルトの名無しさん
16/08/14 20:27:29.48 5USMjBJX.net
すみません、途中できれてしまいました。
この場合、<table id="sample1" id="sample2">
のようにidに複数の値を設定しても問題ないものでしょうか。
438:デフォルトの名無しさん
16/08/15 09:10:49.22 kM2bYzgf.net
jQueryとJavaの関係性について
439:デフォルトの名無しさん
16/08/15 09:43:05.50 mR9WwRQ6.net
最近のは勢いで書き込むからいけねぇよな
スレタイと内容を2回確かめて書き込めし
440:デフォルトの名無しさん
16/08/15 12:54:36.47 TUIKyN4z.net
>>434
それを見つけるのがお前らの仕事だろうが怠けるな!
441:デフォルトの名無しさん
16/08/15 12:57:19.91 TUIKyN4z.net
>>435
省略したら一緒だろうが中華人民共和国と中国は一緒だろじゃあJavaとjQueryも一緒だろ!!!
442:デフォルトの名無しさん
16/08/15 12:57:44.69 TUIKyN4z.net
たわけどもが
443:デフォルトの名無しさん
16/08/15 12:58:21.42 TUIKyN4z.net
ほらさっさと答えろ
444:デフォルトの名無しさん
16/08/15 12:59:26.26 TUIKyN4z.net
グズグズすんなカスどもがライチぶつけんぞ
445:デフォルトの名無しさん
16/08/15 12:59:40.74 hCHaq+GR.net
などと意味不明な供述をしており、警視庁は薬物の乱用等の 可能性も考えられるとして、捜査を続ける方針です。
446:デフォルトの名無しさん
16/08/15 13:11:04.11 H+GaxU0A.net
夏か
447:デフォルトの名無しさん
16/08/15 13:32:46.04 yoqsMfwQ.net
夏か釣りかただの頭のおかしい初心者か
とりあえずどれでもいいからJavaScript板池
448:デフォルトの名無しさん
16/08/15 13:35:07.88 JC0vxxja.net
そもそもhtmlの話なんじゃ……
いやよそう俺の予感だけでスレを混乱させたくない
449:デフォルトの名無しさん
16/08/15 13:43:03.19 z2kTYRxm.net
java<>javascript
450:デフォルトの名無しさん
16/08/15 13:57:16.42 hCHaq+GR.net
>>443
C#スレにワッチョイが入って追い出されてきた荒らしっす
451:デフォルトの名無しさん
16/08/15 16:06:14.36 Lesp94Jt.net
スレチと書きそうになったが、板違いだろ
WebProgへ逝けよ
452:デフォルトの名無しさん
16/08/15 19:27:20.47 gedRg2sB.net
>>440
ライチいいねえ
453:デフォルトの名無しさん
16/08/15 19:28:46.60 gedRg2sB.net
>>446
ここも次スレから入れよう
454:デフォルトの名無しさん
16/08/15 19:42:22.23 yoqsMfwQ.net
そうだな
455:デフォルトの名無しさん
16/08/15 21:02:33.39 fNf3Xcjw.net
いらない
456:デフォルトの名無しさん
16/08/15 23:44:21.60 SJQb9H27.net
荒らし本人乙
てめーの居場所なんか残してやらねえから
炎天下のアスファルトに引きずりだされたミミズみたいに
苦しみ抜いて干からびて死ね
457:デフォルトの名無しさん
16/08/15 23:50:45.92 fNf3Xcjw.net
頭を冷やせよ、馬鹿
458:デフォルトの名無しさん
16/08/15 23:53:08.40 hCHaq+GR.net
賛成に1票追加しといて
459:デフォルトの名無しさん
16/08/15 23:59:20.03 fNf3Xcjw.net
スレを分けよう
460:デフォルトの名無しさん
16/08/16 00:16:54.08 LvWZqoaM.net
さっそく釣れててワロタ
461:デフォルトの名無しさん
16/08/16 01:02:40.41 5k+FEGIK.net
>>455
ライチと俺のきんたまスレッドという名前にしよう
管理人は>>456頼む快く引き受けろきんたま野郎
462:デフォルトの名無しさん
16/08/16 03:23:29.52 h0WG7d7m.net
( ´д)ヒソ(´д`)ヒソ(д` )
463:デフォルトの名無しさん
16/08/16 09:33:30.92 CXXeizZn.net
審議中w
464:デフォルトの名無しさん
16/08/16 09:56:47.37 TsDBY7Mt.net
露骨なネタレスにはネタに乗るかスルーしようぜ
マジレスしても詮無い
465:デフォルトの名無しさん
16/08/16 15:30:33.33 Aa6B/BKP.net
初心者で悪いんだけど、以下のようなGoの連想配列をJavaに置き換えるにはどうすればいいの?
prof['me'] = map[string]interface{}{
'name': 'John Lennon',
'email': 'foobar@gmail.com',
'phone': '+81-90-0000-0000',
'occupation': []string{'Programmer', 'System Engineer'},
'language': []string{'Japanese', 'English', 'Spanish', 'Chinease'},
'hobby': []string{'Photography', 'Traveling', 'Fishing', 'Onsen'},
}
のようなかたちにしたいんだけど
Pythonなら
my_profile = {'name': 'John Lennon', 'nickname': 'monkey',
'occupation': ('programmer', 'system engineer'),
'phone_number': '+81-90-0000-0000', 'email': 'ahoaho@gmail.com',
'language': ('Japanese', 'English', 'Spanish'),
'hobby': ('photography', 'fishing', 'traveling'), }
Javaでは連想配列で調べると、HashMapが出てきて、
Map<String,String> profile = new HashMap<String,String>();
のようにするのかなと思ったけれど、
毎回profile.put('name', 'Tom');みたいにするのはめんどくさいので配列で行おうと思ったんだけど、
String[][] profile = new String[2][3];とかでは違う気がして
466:デフォルトの名無しさん
16/08/16 16:20:15.90 bpfxyFhm.net
Javaにそんな気の利いたものはない
JSONファイルに外出しにするか泥臭くputしろ
467:デフォルトの名無しさん
16/08/16 16:47:25.47 Aa6B/BKP.net
>>462
マジで?
こう言うと失礼かもしれないけれど、Javaだとこんな簡単な事を実装するのも苦労するんだね
実際こういう形が必要になった時ってJSON化とかしないといけないのか
良くある形だと思うんだけど...
教えてくれてありがと
468:デフォルトの名無しさん
16/08/16 16:48:40.13 4YjPvRoE.net
>>463
おっぱいそんでいいだろ、さようなら
469:デフォルトの名無しさん
16/08/16 17:47:14.08 LN6Jma9b.net
>>461
StringのキーでStringの配列が引き出せればいいんだろ?HashMap<String, String[]> でいいんじゃねえの?
初期化とか面倒ってのは表現の問題だよな。ま、なんだったら初期化の元になる配列を別に用意しておいて自分でループさせて一個づつ初期化するように書けばいいのでは?
それか設定ファイルから読むように書くとか。
470:デフォルトの名無しさん
16/08/16 17:48:38.77 LN6Jma9b.net
書き込んだらリロードされて既に話が終わってたorz
471:デフォルトの名無しさん
16/08/16 17:57:57.62 q8lrk+Br.net
>>463
ヘルパメソッド作ればええんやで
詳細は>>466が知ってますよろしくお願いします
472:デフォルトの名無しさん
16/08/16 18:07:44.65 Aa6B/BKP.net
>>465
>>467
ありがと
今出先だからまた試してみる
473:デフォルトの名無しさん
16/08/16 19:30:12.56 EHdIZNTT.net
まぁでもそういう表記簡略化してくれるアノテーションプロセッサみたいなのがあってもいいよな
474:デフォルトの名無しさん
16/08/16 20:05:03.56 eooJe/za.net
lombokもまだ大したことできねえしなあ
475:デフォルトの名無しさん
16/08/16 20:52:52.11 Aa6B/BKP.net
>>465
import java.util.Map;
import java.util.HashMap;
public class Hai {
public static void main(String[] args) {
Map<String, String[]> hai = new HashMap<String, String[]>();
hai.put('name', 'Tom');
System.out.println(hai.get('name'));
}
}
/*
Hai.java:7: エラー: 不適合な型: StringをString[]に変換できません:
hai.put('name', 'Tom');
^
注意:一部のメッセージは簡略化されています。-Xdiags:verboseで再コンパイルして完全
な出力を取得してください
エラー1個
*/
このエラーは理解できるんだけど、となると上で書いた俺のやりたいような事ってやっぱ難しいのかな?
連想配列で、あるキーの値はStringだけど、別のキーの値はString[]みたいな
476:デフォルトの名無しさん
16/08/16 20:59:49.35 4YjPvRoE.net
居座る初心者
477:デフォルトの名無しさん
16/08/16 21:34:57.35 hU1J3joE.net
>>471
難しくない、Javaなら5秒だ
URLリンク(paiza.io)
478:デフォルトの名無しさん
16/08/16 21:42:42.38 eooJe/za.net
Objectにでもキャストしとけよ
タイプセーフ嫌いなんだろ
479:デフォルトの名無しさん
16/08/16 21:47:46.33 so1Gsq4y.net
ドヤ顔で相手してる人間初心者も死ね
480:デフォルトの名無しさん
16/08/16 23:05:21.19 CFM4NC3W.net
初心者は、初心者向けスレへ移動せよ
Java入門・初心者質問スレ
スレリンク(tech板)l50
481:デフォルトの名無しさん
16/08/17 12:22:51.42 8LdosxhK.net
>>471
同じ所に違う型混ぜて入れると後で判別したり面倒だから1つでもString[]に入れとけ。
データが億単位あってそんな無駄なことは1バイトたりともできないっていうなら話は別だか、
数万とか数千なら今のPCなら気にならないぐらいの誤差みたいな大きさにしかならんよ。
482:デフォルトの名無しさん
16/08/17 14:37:2
483:5.87 ID:a7znAueU.net
484:デフォルトの名無しさん
16/08/17 15:09:49.31 5YMB8p2s.net
よーしパパも冗長なコード書いちゃうぞ
URLリンク(ideone.com)
485:496
16/08/17 16:36:14.02 oKUi9/GV.net
おまいらって結局は優しいんだよな
コードとかもありがと
どう考えても5秒ではないと思うけれどw
パパもありがとね
486:デフォルトの名無しさん
16/08/17 16:36:41.39 oKUi9/GV.net
469だった、ごめん
487:デフォルトの名無しさん
16/08/17 17:19:41.01 pMMsZ2bI.net
相手にしている奴ら無視すればいいのに書き込んじゃうとかホント書き込んだ奴頭悪いな
地獄に落ちればいいのに
488:デフォルトの名無しさん
16/08/17 17:39:58.35 XiTPQbLr.net
構文糖衣はともかくとしても
JavaSEに不定形データ扱うライブラリが入ってないのは欠点だとは思う
URLリンク(ideone.com)
489:デフォルトの名無しさん
16/08/17 17:43:39.10 +euenK++.net
jsonなんかいらね
490:デフォルトの名無しさん
16/08/17 20:04:56.00 2Z7xYVvO.net
>>478
お前も答えられないなら死ね。生きてる価値ないから。
491:デフォルトの名無しさん
16/08/17 20:34:55.41 HDxcYxzF.net
NGしてろカス
492:デフォルトの名無しさん
16/08/17 20:50:10.27 aK9XWlC8.net
わかった この話はやめよう ハイ!! やめやめ
493:デフォルトの名無しさん
16/08/17 21:15:36.68 +euenK++.net
せやなー
494:デフォルトの名無しさん
16/08/18 01:07:37.15 FFjclqUv.net
こんなのどう?
URLリンク(paiza.io)
495:デフォルトの名無しさん
16/08/19 20:28:45.17 CkYJIhBp.net
こんな感じで不定間隔で昇順の配列があります
int[] a = {1,3,7,10,12,20,24,33};
このとき指定した値に一番近い要素の番号を得たいと思ってます
たとえば、3なら1、6なら2、16なら4(中間値なら小さい方)、という具合です
今は配列を走査し
・一致した要素があればその番号
・要素間の範囲に入ってた場合は大きい値と小さい値の差分を計算して差分の小さい方の要素番号
としてるのですが、配列aの要素数が多く(実際には2000くらい)、指定される値も10万個ほどあるので
処理にかなり時間がかかってしまいます
指定される値をソートしてブロック単位で…等とも考えたのてすが、データの仕様上、無理なようです
効率のよいアルゴリズムとかAPI、ありますか?
496:デフォルトの名無しさん
16/08/19 20:37:11.37 tsEZzAHj.net
>指定した値に一番近い要素の番号を得たいと思ってます
これが一回だけなのか、複数回なのかがわからないのに効率の良いアルゴリズムなんて答えられるわけがない
497:デフォルトの名無しさん
16/08/19 20:58:16.30 59AD2ZKx.net
>>491
10万回だとした場合の効率よいアルゴリズム示してみたら?
498:デフォルトの名無しさん
16/08/19 21:04:57.74 CkYJIhBp.net
>>491
何らかの値が指定される都度、一番近い要素の番号を返す
その処理を、10万回繰り返すものとなります
499:デフォルトの名無しさん
16/08/19 21:14:41.84 WMQnppU0.net
とりあえず二分探索する
二分探索で我慢できなくて配列aの最大値が数万くらいなら配列を展開する
int[] a = {1, 6, 9};
int[] b = {0, 0, 0, 0, 1, 1, 1, 1, 2, 2}
配列aの最大値が24万程度なら、展開した配列bに必要なメモリは2^(18+2)で1MB弱
500:デフォルトの名無しさん
16/08/19 23:12:34.89 ZqQW0r9G.net
>>494
二分探索と配列の展開、情報ありがとうございます
展開した配列を用意するためのプログラムが必要そうですが、こちらの方が性能は良さそうですね
ありがとうございました
501:デフォルトの名無しさん
16/08/20 00:08:07.91 BMoP1SdH.net
作り方がおかしいかご意見をお聞かせください。
通信関連モジュールを作成しているのですが
・通信前のデータチェックでのエラー
・通信結果の解析結果のエラー
これら2つの結果を返すコールバック用のメソッドを分けて作っていたのですが
「そんなイレギュラーな作りをするな!同じメソッドで引数を変えろ!」
と言われました。
エラーが発生するタイミングが違うので同一インターフェースの中で分けたのですが、
「イレギュラー」といわれるほど変な作りなのでしょうか?
502:494
16/08/20 00:15:39.59 BMoP1SdH.net
関連モジュールは他にないので、「他のモジュールと比較しておかしい」というわけではありません。
あくまでもJAVAの一般論として「イレギュラー」と言われてます。
503:デフォルトの名無しさん
16/08/20 06:53:27.62 B6Zc+FaI.net
その情報だけでは必ずしもおかしいとは思わない。
メソッドを分けることで、利用者はその二種類のエラーを区別することを強制される。
だから、その二種類の区別が利用者にとって重要だと想定されるのであれば一つで分岐するより分けた方がいい。
そうでもない(利用側の処理に違いがない)なら一つでいい。
504:デフォルトの名無しさん
16/08/20 11:38:21.48 hWaMH8VG.net
>>496
MyConnector con = new MyConnector();
con.setCallback1(callback1)
con.setCallback2(callback2)
con.connect()
みたいに必要なcallbackを追加していけるならいいけど、
con.connect(callback1, callbak2)
ならまとめてもいいかな
505:デフォルトの名無しさん
16/08/20 15:20:42.65 D7SVWed1.net
まぁ俺だったらひとつにするな
それで定数intとかでエラーIDを作ってそれを渡すとかするわ
>>496の考えだと今回は2件だけど3件、4件と行程が増えた数だけメソッドを作ることになる。
そもそもそれは実装する側も使用する側も手間になる。
例えばどのエラーでも同じことをしたかったとしても使用する側は、その分のコールバックメソッドを立てて、メソッド化して複数箇所で呼び出したりする必要がある。
それって手間にじゃん
>>496が作ったモジュールと実際にモジュールを使う側の関係が1:多の関係であるなら、なるべく使う側に汎用性をもたせてやるほうがいい。
今回の汎用性というのはエラーを分けるか分けないかってことね
1つまりモジュール側は必要になった時に判断できる手段を用意してあげることだとおもう
506:デフォルトの名無しさん
16/08/20 17:44:13.96 s0elS7/F.net
10万回を前半5万回と後半5万回に分けて
マルチスレッド化
507:デフォルトの名無しさん
16/08/20 18:30:31.94 06sBBxjU.net
10万スレッド作っ(ry
508:デフォルトの名無しさん
16/08/20 19:52:31.00 maedJSZM.net
parallel入れて最適化したとしても
10万件程度では速度向上は期待できない気もする
URLリンク(paiza.io)
509:デフォルトの名無しさん
16/08/20 21:26:00.33 6io4DnXk.net
今や求人はJavaやC#だらけですが、どうしてもJavaやC#になじめず
悩んでいます。派遣PGです。
自分なりになじめない原因を考えてみるとどうもJavaやC#に限らず
ネイティブで動作していない言語に拒否感があります。
C/C++やアセンブラにはない「気持ち悪さ」とでもいうのでしょうか…
もうエンジニアとして終わりなのかなとか、必要とされていないので
は?という悲観的な気持ちです。
どうすれば乗り越えられるでしょうか?
510:デフォルトの名無しさん
16/08/20 21:32:20.77 DlK5hCub.net
コ
ピ
ペ
511:494
16/08/20 21:35:28.10 BMoP1SdH.net
ご意見ありがとうございました。
>> 498さんのご意見が特に参考になりました。
確かに今後拡張していくと面倒なことになりますね。
良かれと思って分割したのが裏目になりそうです。
ありがとうございました。
512:デフォルトの名無しさん
16/08/20 21:39:00.90 DlK5hCub.net
仕様がわかんねーからどうでもよさげ
513:デフォルトの名無しさん
16/08/20 21:41:08.87 DlK5hCub.net
つーか、設計が間違ってたということね
514:デフォルトの名無しさん
16/08/20 22:04:50.30 SbaSzAw8.net
>>504
JIT
515:デフォルトの名無しさん
16/08/20 23:56:34.43 UumqURVq.net
>>504
マジなのかコピペか釣りか知らないけど、まず板名や>>1すら読めてないから、多分馴染めない原因は他にもあると思うよ
ネイティヴじゃないとか意識する以前にね
もし本当にネイティヴ非ネイティヴを意識して馴染めないのであれば残念だけどこの先やっていくのはつらいからくぎりをつけたほうがいいよ
516:デフォルトの名無しさん
16/08/21 08:57:32.48 IUzncNpZ.net
縦書きフォント使いたいんだが、フォント読み込みから自力実装するしかない?
517:デフォルトの名無しさん
16/08/21 10:12:08.48 duM5Lppi.net
お前どこでフォントを使いたいのか
環境も書かずに答えられると思ってんの?
518:デフォルトの名無しさん
16/08/21 10:49:45.26 MeZyvK3R.net
ホント
519:デフォルトの名無しさん
16/08/21 11:28:59.60 IUzncNpZ.net
>>512
JNI等を使用しないWindowsのjava.awt.Graphics2Dで。
レイアウトとか自分でやるんで、truetype/opentypeフォントに含まれる縦書き用グリフや配置情報送り幅等を取得したい。
520:デフォルトの名無しさん
16/08/21 12:08:10.04 MeZyvK3R.net
JDKのフォント周りはホントにイミフ
521:デフォルトの名無しさん
16/08/21 12:16:19.38 xQ8AfaVf.net
@つきのフォント読み込んで90度回転で書けばいいんじゃなかったっけか?
等幅フォントなら横書き用フォント使って縦に一文字一文字書いてくのもありかもだが。
句読点や括弧をちゃんと処理せんといかんけど。
522:デフォルトの名無しさん
16/08/21 12:46:54.85 IUzncNpZ.net
@付きとかそんなものはないのです…
MS 明朝等に@をつけてFont作っても存在しないフォントはDialogが使われるだけなのです…
import java.awt.Font;
import java.awt.GraphicsEnvironment;
public class FontTest
{
public static void main(String[] args)
{
// @付きフォントなんて無い
for (Font font : GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts())
{
System.out.println(font);
}
// @付きで指定しても存在しないフォントはDialogになる
Font font = new Font("@MS 明朝", Font.PLAIN, 12)
System.out.println(font.getFontName());
}
}
523:デフォルトの名無しさん
16/08/21 14:06:54.91 xQ8AfaVf.net
>>517
あらごめん。 Windows7あたりからかフォントの扱い変わったらしいから、それが原因かも。
524:デフォルトの名無しさん
16/08/21 15:02:21.58 rOj1s/df.net
ろくにテストもしてないのだろう
525:デフォルトの名無しさん
16/08/21 15:14:29.45 rOj1s/df.net
oracleのやる気のなさ
526:デフォルトの名無しさん
16/08/21 15:53:29.38 hSejVSNi.net
>>490, >>501, >>503
ローカルでJITコンパイル切ってやってみたらコア数まではスケールするみたいよ
おっぱいざだとJITコンパイルがあってよくわからん
URLリンク(paiza.io)
シングルスレッドでも20ミリ秒だからマルチスレッドにする意味ないかも
527:デフォルトの名無しさん
16/08/21 18:00:10.89 hSejVSNi.net
>>490
配列よりは遅いけどTreeMapを使うやり方もあるよてことで
URLリンク(paiza.io)
528:デフォルトの名無しさん
16/08/21 18:12:19.70 dUfPoSxX.net
javaって10万スレッドも同時に実行出来るの?
メモリー量とか、そういうのは別にして。
同時に実行出来るスレッド数に上限は無い?
529:デフォルトの名無しさん
16/08/21 18:20:43.74 hSejVSNi.net
>>523
CPUとメモリが潤沢にあれば行けるんじゃないかな
俺の環境ではi7のCPUがフル稼働でWindowsがフリーズしかけた
必死こいてプロセス殺した
>>502みなさん2chのデマに気を付けてください
530:デフォルトの名無しさん
16/08/21 19:07:34.19 i9hjM3oz.net
そういや Windows 以外のXやiOSではどうなってんだろうね。
531:デフォルトの名無しさん
16/08/21 19:10:29.74 i9hjM3oz.net
523はリロードしてなくて上の方のフォントの話へのレスだったが、もうどうでもよい。
532:デフォルトの名無しさん
16/08/21 19:11:22.55 i9hjM3oz.net
>>524
試す人がいるとは思わなかったw
533:デフォルトの名無しさん
16/08/21 22:35:26.83 M72PC28j.net
>>524
こちらで>>490のやつをaが2000件bが10万件で10万スレッド作ってやるのを作ってみたが特に問題なく数秒で終わったぞ?
スレッドなしのストレートなやつはもっと速く終わったけどな。w
そういや>>490のやつは数秒だったとしても時間掛かりすぎでまずいぐらいの高速性求めてたのかな?
534:デフォルトの名無しさん
16/08/21 22:37:07.19 M72PC28j.net
あ、bって指定される値の方ね。
535:デフォルトの名無しさん
16/08/21 22:43:19.76 M72PC28j.net
>>490のやつってこんなんでいいんだよなあ?(Thread使わないストレートなやつ)
URLリンク(paiza.io)
とても速く終わるんだが。
536:デフォルトの名無しさん
16/08/21 23:16:05.19 hSejVSNi.net
>>528
コードがマズかったかな
そちらの10万スレッドのコード教えて
もっかいやってみる
俺のi7の力を見せてやる
537:デフォルトの名無しさん
16/08/21 23:50:43.54 M72PC28j.net
>>531
URLリンク(paiza.io)
ただしこのサイトの実行環境ではメモリ上限を超えるようで OutOfMemoryError になる。
538:デフォルトの名無しさん
16/08/21 23:55:48.92 hSejVSNi.net
>>532
あざーす
539:デフォルトの名無しさん
16/08/22 00:09:39.70 4FCeXfXX.net
10万スレッドで5秒だった
生のスレッド使えばいいのか
マジかー
540:デフォルトの名無しさん
16/08/22 10:01:26.36 MdBT+DeE.net
ネタでやるのはいいけど
コア数(HT含む)を超える数のスレッド作っても意味無いからね
541:デフォルトの名無しさん
16/08/22 10:55:58.54 C6WXEgXb.net
酷いループを用意しても2,000×100,000で時間かかりすぎる場面が発生しない
前提条件そのものに問題がある(根本的に勘違いしている)が濃厚
542:530
16/08/22 12:51:08.04 mEg9CMpU.net
>>535
いやわかってる。
530のプログラムもループさせてスレッド作った直後にすぐスタートさせてるのですぐ終わるやつは多分ループ抜ける前に終わっちゃってて同時に10万スレッドが動いていない。
同時10万を本当にやるとしたらスタート直後に待たせてメインスレッドが全体を同時に動かさせるようにする必要があるが、今のところやる気はない。w
543:デフォルトの名無しさん
16/08/22 20:36:07.09 G2Ad46dy.net
URLリンク(ideone.com)
バーチャルマシンにオプション付けてスレッドのスタックを
調整すると沢山同時に起動実行出来ることが分かった。
-Xss128k
とか。数字は小さい方がいいみたい。ウィンドウズのタスクマネージャで
見ているとスレッド数が増えていくのが分かる。ある程度のところで
java.lang.OutOfMemoryError: unable to create new native thread
となった。
544:デフォルトの名無しさん
16/08/24 19:46:51.49 xJCgpC1z.net
Winで動かす場合はJavaのVM自体がいくつもスレッド使っているから
Windowsの制限よりは少なくなるだろ。
URLリンク(technet.microsoft.com)
545:デフォルトの名無しさん
16/08/24 23:43:57.21 3vGB/zKb.net
synchronized使って10万スレッドやってみたらフリーズしたw
最初何回かは大丈夫だったんだけどな。eclipseで3回目は何分待ってもマウスカーソルが動かなくてしょうがないから電源切った。w
546:デフォルトの名無しさん
16/08/25 02:23:50.28 l83TC/zZ.net
build.gradleでライブラリをcompileに書くときにバージョン番号を省略すると最新版が入りますが、入ったライブラリのバージョンを確認するにはどうすればよいですか?またライブラリはどこにダウンロードされますか?
547:デフォルトの名無しさん
16/08/25 03:12:32.19 s1NjE0Yt.net
Javaの質問と言えるのか分からんが
gradle dependencisで依存関係表示
インストール先は大抵$HOME/.m2の下
548:デフォルトの名無しさん
16/08/25 03:18:39.81 l83TC/zZ.net
>>542
ありがとうございました。.gradle以下ばかり探してました。
549:デフォルトの名無しさん
16/08/28 22:05:16.01 Pr4GF7QY.net
画像を表示するときビット配列から生み出す方法とImageオブジェクトのクラスから生み出す方法があるみたいだけど
どう使い分ければいいの?ってかどう違うの?
550:デフォルトの名無しさん
16/08/28 22:10:44.30 ev9L5f83.net
表示することを聞いてるのか生み出すことを聞いてるのか曖昧だ
551:デフォルトの名無しさん
16/08/28 22:19:04.46 ev9L5f83.net
Javaで画像っていうとBufferdImageを直にインスタンス化するか
ImageIO#readメソッドを使うかだと思うけどどっちのことを言ってるん
552:デフォルトの名無しさん
16/08/28 22:25:03.92 Pr4GF7QY.net
ImageIconクラスのことです!!!!!
曖昧ですいません、始めたばっかで画像表示しようとしてるんだけどいまいちよく分かんなくて
553:デフォルトの名無しさん
16/08/28 22:25:34.77 wVJbbEHi.net
java.awt.Toolkit#createImage() ってのもあるな。
554:デフォルトの名無しさん
16/08/28 22:29:31.96 wVJbbEHi.net
>>547
んなもん使いやすい方使えばいいじゃないか。内容が同じなら最終的には違いはない。
途中の内部処理が違うだけ。
555:デフォルトの名無しさん
16/08/28 22:35:09.24 ev9L5f83.net
ソースコードによると
URLリンク(github.com)
Imageを受け取る方は直接loadImageというプライベートメソッドを呼んでる
byte[]を受け取る方はToolkit.getDefaultToolkit().createImageでImageにしてからloadImageを呼んでる
556:デフォルトの名無しさん
16/08/28 22:36:34.64 ozGx3CHe.net
出た後だし、泰山雷同して鼠一匹、でした
557:デフォルトの名無しさん
16/08/28 22:40:40.16 Pr4GF7QY.net
なるほどつまり内部構造的な違いができるだけで結果は同じなのね
すいません助かりましたありがとう!
558:デフォルトの名無しさん
16/08/29 00:03:21.66 Y/vqlQ//.net
>>551
URLリンク(d.hatena.ne.jp)
559:デフォルトの名無しさん
16/08/29 17:24:53.93 AcWh2Iym.net
こんにちは。
趣味でJava用ゲームライブラリlibGDXを利用してゲームプログラミングをしている者なのですが、アプリケーションの配布について質問させてください。
Java製のアプリはjar形式にて配布されることが普通かと思いますが、私はWindows向けにはexe形式にて配布したく思っております。
そのためにはlanch4jやexewrapといったツールを用いることができるかと思いますが、その際、実行環境がインストールされていないPCでも実行できるようにJREを同梱し配布することにライセンス上問題はありますでしょうか?
因みにアプリケーションは有償での配布を予定しております。
論拠などもお示し頂けると嬉しいです。
よろしくお願いします。
560:デフォルトの名無しさん
16/08/29 17:53:07.10 IWCj2egw.net
>>554
ライセンスは知らんがJRE配布ってどれだけ巨大になると思ってるの?
実行環境のインストールとかインストーラー起動するだけで出来るのに
561:デフォルトの名無しさん
16/08/29 18:03:18.33 C9HSRABQ.net
>>554
特に問題ないよ
URLリンク(www.oracle.com)
URLリンク(www.oracle.com)
562:デフォルトの名無しさん
16/08/29 18:03:51.24 C9HSRABQ.net
あとこれ
URLリンク(www.java.com)
563:デフォルトの名無しさん
16/08/29 18:07:41.39 HSXk2xhn.net
有償なら絶対にJRE配布の方がいい
動かんやないか金返さんかいボケェ!!!(JREが入ってない)
動かんやないか金返さんかいアホォ!!!(JREが古い)
動かんやないか金返さんかいドァホ!!!(JREが新しい)
動かんやないか金返さんかいコラァ!!!(JREのインストール失敗)
確実にこうなるから
564:デフォルトの名無しさん
16/08/29 18:12:22.12 C9HSRABQ.net
経験談やめろ
565:デフォルトの名無しさん
16/08/29 18:27:28.96 IWCj2egw.net
>>558
そんな無能いるのか?
566:デフォルトの名無しさん
16/08/29 18:28:17.44 IWCj2egw.net
動かんから金返せは動作チェック含めた体験版をWEB配布すればいいし
567:デフォルトの名無しさん
16/08/29 18:40:23.84 HSXk2xhn.net
ユーザーのITリテラシーを舐めてはいけない
機械音痴なお前の母ちゃんにプレイしてもらうくらいのつもりで丁度いい
体験版なんて「ジャカアしいわそんなもん知らんがなエエから金返せやワレェ!!!」で終わり
568:デフォルトの名無しさん
16/08/29 18:44:32.90 IWCj2egw.net
購入ページに64pxくらいの赤文字で
「動作チェックの為に体験版で遊んでから購入して下さい。返金には一切応じません」って書いておけばいいやん
それか体験版で遊んだら認証コードGET出来て認証コードないと買えないとか
569:デフォルトの名無しさん
16/08/29 20:08:55.85 BlZeW1Wo.net
>>553
何これ?
570:デフォルトの名無しさん
16/08/29 21:14:26.99 jQ52lz2j.net
JRE付きとなしを両方配布して、金はライセンスキーを売る形式にして、それは起動後に入力する事になるので多分苦情は減る。
ライセンスキー買ってくれなくても制限付きで少しは動くようにしといてそれを体験版ということにすれば良い。
571:デフォルトの名無しさん
16/08/29 21:54:17.38 ACcJrIRQ.net
様々なご意見やご提案ありがとうございます!
大変参考になりました。
以前、同じくJavaで作ったゲームを公開した際に、フリーであるにも関わらず動作しない旨の苦情を多数頂いたもので、有償の場合どうなってしまうのかと考えたらJREを同梱してしまうのが良いのかなと思い相談させて頂きました。
これから公開方法については皆様から頂いたご意見を参考に決めたいと思います。
また、ライセンス絡みについて参考にするため、すでに公開されているJava製のゲームにJREが同梱されている例が無いか調べたところ、Windows環境下にも関わらずOracleのJREでは無くOpenJDK(?)が同梱されている例が見つかりました。
OpenJDKの理由や違いについては私の知識不足によりまだ分かっていませんが、皆様から頂いたアドバイスやURLによるとOracleのものでも全く問題はなさそうに思えるのでまた調べていきたいと思います。
ありがとうございました。
572:デフォルトの名無しさん
16/08/29 23:00:52.88 WaGPxa3J.net
商品の管理するプログラムを考えてます
商品をオブジェクト、そのフィールドにpriceがあり、例えば日本円での価格をsetPrice()で設定したとして、
・ある商品A、B、C は、ドルでの価格を知る必要がある
・ある商品A、 C、Dは、ユーロでの価格を知る必要がある
・それぞれのメソッドは、どの商品についても同じ処理
こういった場合のクラスの設計について、よい指針を教えてください
・商品クラスを継承したA、B、C、Dクラスに対し、A、B、CにgetDollarPrice()を、A、C、DにgetEuroPrice()をコピペで実装する
・商品クラスを継承したAC商品クラスにgetDollarPrice()、getEuroPrice()を実装。同じくB商品クラスにはgetDollarPrice()のみ、D商品クラスにはgetEuroPrice()のみを実装
・基底の商品クラスにgetDollarPrice()、getEuroPrice()を実装する。継承したクラス側では、使わないメソッド(例えばDのgetDollarPrice())は何もしない処理でオーバーライド
・Public static calcDollar()、同calcEuro()といったメソッドを作成し、必要時に計算する
上ではドル・ユーロとしましたが、他にも元とかウォン等色々種類があり、そして商品ごとに必要な機能が不規則に異なっているので、
どう設計したらよいか悩んでいます
ちなみの元のソースは、C++の多重継承を用いて実装されていました
573:デフォルトの名無しさん
16/08/30 00:00:27.21 vWqGzECl.net
>>567
デフォルトメソッドで多重継承できるよ
商品ごとにインタフェース実装しまくることになるから
どのインターフェースを実装するか商品を階層的に分類できないときついかも
すでに多重継承で実装できてるのならいけるかも!?
Java9の標準ライブラリではJoda Moneyをもとにしたものが使われるんだって
中身の実装はこれとか
URLリンク(java.net)
URLリンク(www.joda.org)
574:デフォルトの名無しさん
16/08/30 00:00:29.88 vcGs2dWd.net
>>567
getPriceがPriceクラスのオブジェクトを返す
PriceクラスはasDollerやasEuroなど一通りの表現を実装するイミュータブルなクラスにする
575:デフォルトの名無しさん
16/08/30 01:47:09.82 TaoYiOtt.net
RPGのモンスタークラスと同じだろ
数百種類のモンスター型の、switch文を書きたくない場合、
数百種類のクラスを作って、自動的に各クラスが適切な処理をする
つまり、仮想関数
576:デフォルトの名無しさん
16/08/30 08:26:54.20 agWpAPx4.net
getPrice(rate)
return price * rate
じゃだめ?
後はそれぞれの価格が欲しいところでレートを設定するだけでいいし商品クラスは常に同じ動きするし
577:デフォルトの名無しさん
16/08/30 09:01:09.43 vcGs2dWd.net
>>571
それはない
それ呼び出す側がメソッド内で何やってるかを明らかに意識してるだろ
全く抽象化になってない、掛け算だけメソッド内でやる意味がない
せめて変換メソッドを定義したCurrencyクラスのインスタンスを渡すとかするべき
578:デフォルトの名無しさん
16/08/30 09:04:39.92 qpyuPRUS.net
レスどうもありがとうございます
>>568
interfaceの嵐になるのだろうなぁ、それでいいのかなぁ、と
悩みました
リンク先など見て考えます
>>569
なるほど
Priceクラスもよいですね
>>570
RPGは作ったことないですが、そんな風に実装されてるのですね
ソースの大半がモンスタークラスの実装になりそうですね
>>571
レートを換算するだけなので、実はそれでもよいです
ただ、オブジェクトに換算後の値も持たせたいなぁ、と思ってます
換算すれば求まるデータならオブジェクトに持たせる必要ない、のかな?
579:デフォルトの名無しさん
16/08/30 11:17:45.70 vwHt2PHp.net
>>567
それ全通貨のレートを保持するクラス作っておいて、そのクラス経由で他の通貨への換算やれば良いだけでは?
580:デフォルトの名無しさん
16/08/30 11:31:09.72 xgpTgq7w.net
個々の商品が同じレートで計算って事は現実的に無いと思うので、
void setPrice(Currency currency, String price)
String getPrice(Currency currency)
みたいなIFにして、内部ではHashMapで管理すれば、通貨が増えたらCurrencyのenum増やせばいいんじゃね?
581:デフォルトの名無しさん
16/08/30 11:56:26.35 vwHt2PHp.net
それだ
582:デフォルトの名無しさん
16/08/30 19:05:48.03 vv6Q96L1.net
javaで動いているプログラムを監視する目的で、JVMTIのMethodEntryイベントやMethodExitイベントを使って遊んでます
JDIでも同じことが出来るみたいなのですが、こういったデバッガの拡張をeclipseなんかのIDEのプラグインで実装するにはどうすれば良いですか?
例えばIDEのエディタでブレークポイントを
583:セットして、そのIDEでデバッグを実行したらBreakpointイベントで自分が実装した処理が行われる(ログが吐き出されるとか) 的なことがやってみたい
584:デフォルトの名無しさん
16/08/30 19:31:07.82 q9MYe/9f.net
まずは例えばで挙げられているソースコードを読んでみるのはどうですか
585:デフォルトの名無しさん
16/09/01 18:07:14.17 isvppOQZ.net
これを実行すると出力が1になるのですが、何故でしょうか。
①Integer inti = new Integer(0);
②Integer intj = new Integer(1);
③inti = intj;
④intj = 2;
⑤System.out.println(inti);
自分の考えだと、
①intiが、値0のインスタンスを参照
②intjが、値1のインスタンスを参照
③intiが、intjが参照しているインスタンスを参照するように変更
④intjが参照するインスタンスに値2を設定
⑤intiもintjも同じインスタンスを参照してるはずなので出力は2
になるはずなんですが、1になります。
586:デフォルトの名無しさん
16/09/01 18:17:12.59 JZugZEHC.net
>>579
Integerは不変
もし不変じゃなかったとしても
④の所で
intj.value=2;になる
①intiに、値0のインスタンスの参照を代入
②intjに、値1のインスタンスの参照を代入
③intiに、intjのインスタンスの参照を代入(intj==intiになる)
④intjに、値2のインスタンスの参照を代入(自動ボックス化。コンパイラがnew Integer(2)に変換している)
⑤intiとintjは違うインスタンスを参照しているので値は1
587:デフォルトの名無しさん
16/09/01 20:27:01.67 K7BE+EFW.net
>>579
4の所は intj = new Integer(2); って書いてるのと同じだから。
588:デフォルトの名無しさん
16/09/01 20:28:01.03 K7BE+EFW.net
ってよく見たら既に書いてあるじゃないか。とほほ。
589:デフォルトの名無しさん
16/09/01 20:52:55.20 qC9ojyjS.net
ドンマイ、ガンバ
590:デフォルトの名無しさん
16/09/01 20:53:01.09 wr8HVpEY.net
とほほsan?
591:デフォルトの名無しさん
16/09/01 21:15:27.70 52Zd8aZn.net
浦和レッズ、じゃじゃじゃじゃん
592:デフォルトの名無しさん
16/09/02 10:23:18.49 KWQoOgI3.net
Javaのゴミっぷりが酷い
Java作ってる奴らって日本で言うところの小卒相当じゃね?
開発者とは名ばかりのゴミ集団なんだろうなJava開発団
JavaでAES暗号化したものがOpenSSLで復号できないとかJavaマジで糞すぎ
まともに暗号化すらできないゴミ言語なら暗号化機能付けるな
暗号化関連のリファレンスとかあったら騙されて時間をドブに捨てる奴がいるだろうが
プログラマを平均の数倍給料もらってる程有能でスキルある人材をなのにその騙して時間を無駄にした罪は重い
本当にJava作ってる奴等は頭のが馬鹿しかいないんだろうな
低機能を隠すために嘘リファレンス用意するとか人間的にも腐ってる
593:デフォルトの名無しさん
16/09/02 11:07:29.18 OcjKSC/i.net
ならば使わなければいいだけの話
選択肢色々あるので
594:デフォルトの名無しさん
16/09/02 12:15:47.07 Do4GNfXI.net
小学生レベルだと勤め先に事欠くので選択肢はないよ
595:デフォルトの名無しさん
16/09/02 12:37:29.73 OcjKSC/i.net
そう感じるヤツがjavaを使わなければいいだけの話
利用するプログラミング言語の選択肢は色々あるので
596:デフォルトの名無しさん
16/09/02 12:57:20.18 7JZUO+bM.net
感じる感じないではなく、無能には選ぶ権利などないってことでしゃろ
それは無能なのが悪いのさハハハ
597:デフォルトの名無しさん
16/09/02 13:58:50.62 9E3FGjAM.net
コピペ?
598:デフォルトの名無しさん
16/09/02 14:22:35.67 K2h2z6zc.net
Integerクラスは内部で
private final int value;
となっている、変更できない
今回のケースでは
intj = new Integer(2);
ではなく
intj = Integer.valueOf(2);
だと思うよ。確認したければ以下を実行
Integer x_127 = 127;
Integer y_127 = 127;
System.out.println(x_127 == y_127);
Integer x_128 = 128;
Integer y_128 = 128;
System.out.println(x_128 == y_128);
599:デフォルトの名無しさん
16/09/02 14:24:42.32 XtqKq5oJ.net
実装依存な例を出してドヤ顔されましても
600:デフォルトの名無しさん
16/09/02 14:35:56.34 EpS7gvoK.net
auto boxingがどんな振る舞いなのかjavapして確認すればいいだけ
601:デフォルトの名無しさん
16/09/02 14:46:29.69 XtqKq5oJ.net
実装依存と言われてるのにjavapすりゃわかるって見当違いにも程があんだろう
URLリンク(docs.oracle.com)
> Ideally, boxing a primitive value would always yield an identical reference.
> In practice, this may not be feasible using existing implementation techniques.
> The rule above is a pragmatic compromise, requiring that certain common values
> always be boxed into indistinguishable objects. The implementation may cache these, lazily or eagerly.
> For other values, the rule disallows any assumptions about the identity of the boxed values on the programmer's part.
> This allows (but does not require) sharing of some or all of these references.
> Notice that integer literals of type long are allowed, but not required, to be shared.
602:デフォルトの名無しさん
16/09/02 16:08:02.77 2aiJ4ZCT.net
\ ∩─ー、 ====
\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんな餌で俺様が釣られクマ―
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
603:デフォルトの名無しさん
16/09/02 16:24:13.81 2aiJ4ZCT.net
IntegerのインスタンスはStringと同様にnewした時に与えられた値を一切変更できないってだけの話。
死ぬまで産まれた時のまま変化しない。理由はそういう風に作られてるから。
604:デフォルトの名無しさん
16/09/02 16:47:33.13 9E3FGjAM.net
そもそも変更出来ない以前に代入しているからな~
605:デフォルトの名無しさん
16/09/02 17:27:32.29 2aiJ4ZCT.net
ま、そうだね。イコール記号によって何が起きてるか理解する必要がある。
606:デフォルトの名無しさん
16/09/02 20:47:33.20 KWQoOgI3.net
仕事だと好きな言語を使うわけにはいかないんだよ
多少まともなシステム組もうとするとJavaは本当に使えない
こんな言語が蔓延してるのは小規模なおもちゃみたいなシステムしか作らないゴミグラマが多いからだろうな
小規模なおもちゃみたいなシステムならJavaが潜在的に持って致命的な欠陥が表面化しにくい
その欠陥が表面化しないがために気付かずに使い続けてるんだろう
JavaもJavaを好きで使ってるゴミグラマも業界の癌だ
ゴミグラマがJava使わなければJavaはとっとと滅んで俺がJavaやることもなかっただろう
もうゴミグラマになってしまった奴等はもうどうしようもないが
これからピログラムを学ぼうとする初心者は絶対にJavaに手を出してはいけない
理由は明確でまともなシステムが作れないから
Javaは画面のコンソールににHello World出すだけの専用言語だと思ってほぼ間違いない
607:デフォルトの名無しさん
16/09/02 20:54:13.23 BGbCtBYN.net
>>600
お勧めの言語は?
608:デフォルトの名無しさん
16/09/02 20:54:50.64 9E3FGjAM.net
>>600
一生PHPでも使ってろ
609:デフォルトの名無しさん
16/09/02 21:26:24.38 rtJoGFw4.net
>>600
サーバに画面は要らない。
610:デフォルトの名無しさん
16/09/02 21:27:28.40 rtJoGFw4.net
しかしピログラムを作るピログラマーは大変だなあ
611:デフォルトの名無しさん
16/09/02 21:28:10.37 rtJoGFw4.net
毎日ピロピローってやってんのかなあ
612:デフォルトの名無しさん
16/09/02 21:30:17.04 Do4GNfXI.net
ピロピロ大人気で草
613:デフォルトの名無しさん
16/09/02 21:32:33.55 rtJoGFw4.net
俺はペロペロしたいからペログラマーになりたいなあ
614:デフォルトの名無しさん
16/09/02 21:36:27.49 eA4EiN3M.net
お下種
615:デフォルトの名無しさん
16/09/02 21:50:02.50 vd1d7l3W.net
>>598
これ
不変かどうかは関係ない
616:デフォルトの名無しさん
16/09/02 21:54:02.20 9E3FGjAM.net
>>609
俺もjava始めた時は同じような事で勘違いしてたことあるから仕方ないんだとは思うけど
参照渡しは同じ変数なら同じ参照と思っていた
617:デフォルトの名無しさん
16/09/02 22:05:57.89 OcjKSC/i.net
>>600
仕事ならその欠陥を理論立ててプレゼンしな
それで変わらないのであれば理屈が通ってない
618:デフォルトの名無しさん
16/09/02 22:14:11.04 9E3FGjAM.net
MSとOracleはもっと協力するべきだと思う
javaAPIのほとんどをjavaで実装しているのは凄いけど文法はC#に劣る
C#は逆
この二つ合わせたらもっと凄い言語出来そうだと思うけどな
619:デフォルトの名無しさん
16/09/02 22:31:00.15 LsVX2JMM.net
言語は優秀なリーダーの独断で作ったほうがうまくいくんだよ
JCPベースになって以来、JavaはIBMだのHPだのお偉いさん達が延々不毛な議論を続けるだけで完全に停滞
一方、ヘルスバーグの独裁により進化を続けるC#
ただでさえグタグタなのにこのうえMSがJavaに参加したところで余計に話が進まなくなるだけ
620:デフォルトの名無しさん
16/09/02 22:33:51.39 Do4GNfXI.net
同じ委員会による設計でも、C++は停滞期を乗り越えて前に進み始めたのに
621:デフォルトの名無しさん
16/09/02 22:34:21.37 9E3FGjAM.net
>>613
javaの進化が遅いのは分かる
最低限の機能追加しかしないし
ただOS非依存はC#に比べて凄いよね
そこはMSにも見習ってほしい
622:デフォルトの名無しさん
16/09/02 22:36:53.73 rtJoGFw4.net
MSはC#作る時にJavaも参考にしたからそうなっただけではないか?
今から更に何かをパクるってことはないと思うがなあ。
623:デフォルトの名無しさん
16/09/02 22:37:45.17 rtJoGFw4.net
>>616は>>612
624:デフォルトの名無しさん
16/09/02 22:40:05.90 9E3FGjAM.net
最低限getterとsetterくらいはいい加減実装するべきだと思うけどな
何でしないんだ
625:デフォルトの名無しさん
16/09/02 22:44:57.42 rtJoGFw4.net
そうだな。Delphiみたいなのできると書くのは楽だ。
626:デフォルトの名無しさん
16/09/02 22:57:15.00 Do4GNfXI.net
Write Once, Debug Everywhere
627:デフォルトの名無しさん
16/09/02 23:18:36.86 XtqKq5oJ.net
>>618
言語仕様見てみりゃわかるけど、1.1の段階ですでに名前空間はギッチリ使ってて
非互換な変更せずにプロパティの入れ込む余地がないからね。
非互換な変更する(最大限の互換性を残そうとするとルールが複雑になってかなり非直感的になる)か、
既存の名前空間を汚さないために .(ドット)以外の新しいセパレータ(例えば ->)使うか
みたいな選択肢があったけど両方に批判意見が多数出て潰された。
この場合、C#は最初からプロパティ入ってるわけだから参考にならんし。
628:デフォルトの名無しさん
16/09/02 23:33:45.29 9E3FGjAM.net
>>621
そういう事だったのか
何かな…C#がOS非依存頑張っているみたいだしそっちに期待するしかない感じか
629:デフォルトの名無しさん
16/09/03 20:59:43.99 JL8qX3Tz.net
URLリンク(ritsuan.com)
【東京都 千代田区】IT分野/Java・Oracleでの開発エンジニア
1名以上募集 若手募集
給与 800,000円
これって高いの?
630:デフォルトの名無しさん
16/09/03 21:05:02.63 +PRxNCnW.net
宣伝死ね
いろんなスレに貼りやがって
631:デフォルトの名無しさん
16/09/03 22:09:37.49 40xaQyRE.net
高い
よってそれは大変怪しく危険を伴うと思われる
632:デフォルトの名無しさん
16/09/03 23:39:15.67 EfpbXZif.net
安いだろ。たった80万って、アルバイトじゃあるまいし。
普通のJava開発エンジニアはそんな安月給じゃ
やらねーよ。
633:デフォルトの名無しさん
16/09/04 06:51:33.77 5SDmlLW2.net
URLリンク(www.embarcadero.com)
現在、RAD Studio(Delphi、C++Builderのセット)が無料でダウンロード可能。
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
634:デフォルトの名無しさん
16/09/04 06:59:22.77 5SDmlLW2.net
すいません、C++Builderはこっちです
URLリンク(www.embarcadero.com)
現在、C++Builderが無料でダウンロード可能。
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
DelphiとC++Buiderは別個にダウンロードが必要な模様
635:デフォルトの名無しさん
16/09/04 07:06:43.36 5SDmlLW2.net
>>627はDelphiのみでした
636:デフォルトの名無しさん
16/09/04 09:46:15.11 GZCXAM8t.net
ビルダー君!?
クビになったはずじゃあ
637:デフォルトの名無しさん
16/09/04 09:51:23.33 QUGfdMOG.net
Javaスレまで出張して大変だなぁ
638:デフォルトの名無しさん
16/09/04 13:49:17.76 tMg9LZRt.net
お仕事案件
URLリンク(ritsuan.com)
JAVAを使った高収入の仕事がたくさんあるよ。
639:デフォルトの名無しさん
16/09/04 18:16:57.65 GZCXAM8t.net
宣伝死ねって言ってんだろカス
640:デフォルトの名無しさん
16/09/04 18:21:00.83 sHUlk3QT.net
>>633
言ってないじゃん
641:デフォルトの名無しさん
16/09/04 19:04:34.34 QUGfdMOG.net
翻訳職人も大変なんだなぁ
642:デフォルトの名無しさん
16/09/07 13:24:43.50 mT23pegE.net
コールバックのインタフェース実装をラムダで書くのと無名クラスで書くのはバイトコードレベルでは同じと思っていいのですか?
643:デフォルトの名無しさん
16/09/07 13:29:37.45 AYeaTwnR.net
バイトコード比べてみればいいじゃねえか
644:デフォルトの名無しさん
16/09/07 14:40:10.63 If+GZyVf.net
>>636
全然違う
ラムダの実体は普通のインスタンスメソッド
それをオブジェクトとして扱うために、C#のデリゲートの丸パクリに近い仕組みを導入している
今のJavaには金があるから、Sun時代のファッキンジェネリクスみたいなゴミとは違ってちゃんと根っこから作られてるんだよ
その金の力をもってしても検査例外問題だけは解決できなかったみたいだけど
645:デフォルトの名無しさん
16/09/07 16:07:32.88 ADaEp/Ax.net
>>636
実装依存だからなんとも。
Java7のベータでラムダが追加されたばっかりの頃は、
将来的にはMethodHandleでやりたいけど
まだ内部クラスのが早いってんで内部クラスを生成してた。
現状では java.lang.invoke.LambdaMetafactory経由で、
内部クラスのが早いままだったらそっち使って
MethodHandleのが早くなってりゃそっち使うみたいな方式になってる。
これだと内部クラスとMethodHandle切り替えるときにクラスファイルを再コンパイルしなくていい。
646:デフォルトの名無しさん
16/09/07 18:17:31.48 j2Ek6+0O.net
timeAPIのクラスをJDBCで使うにはどうしたらいいですか
647:デフォルトの名無しさん
16/09/10 01:46:14.32 zqA5E91s.net
Windowsだと問題ないのですが、Linuxで実行するとメモリーリークが起こります。
だれか教えて
648:デフォルトの名無しさん
16/09/10 01:57:06.97 jg0zFfeW.net
Write once, run anywhere
649:デフォルトの名無しさん
16/09/10 02:10:45.78 b8k4DAtD.net
マルチポストは死んでしまえ
650:デフォルトの名無しさん
16/09/10 03:50:00.05 pSmBhaPA.net
Write once, bug anywhere
651:デフォルトの名無しさん
16/09/10 05:45:34.31 daVWdqqd.net
東京電力のデータ通知遅延は一進一退、使用量の不明が5000件以上に
URLリンク(www.itmedia.co.jp)
まだ2/3が未確定だそうです
652:デフォルトの名無しさん
16/09/10 11:33:39.39 Jm2YrF8N.net
>>641
JavaVM の設定が違うという罠
653:デフォルトの名無しさん
16/09/11 11:39:02.25 mD3VVTFL.net
あー。メモリの設定とかのデフォルトが違うとか。
654:デフォルトの名無しさん
16/09/11 11:45:21.69 p4/MqqQS.net
>>465
東京電力は旧民主党が壊したという解釈でいいですか
655:デフォルトの名無しさん
16/09/11 19:32:28.42 4oqBJP6f.net
お、おう
656:デフォルトの名無しさん
16/09/11 20:10:42.80 PKjGYOYu.net
jsp servletでデータベースの接続の学習をしています。
以下のように、データベース接続の例外処理を行っていますが、
e.printStackTraceの情報はどこに表示されているのでしょうか?
ログなど出力されるのでしょうか?
try{
接続~SQL発行
result = prepared_statement.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
}finally{
}
return result; //呼び出し元に処理を戻す
657:デフォルトの名無しさん
16/09/11 20:25:04.14 pVB2WkOU.net
>>650
ソースはこうなってるから出力先は標準エラー出力でござる
標準エラー出力はリダイレクトとかしてなければターミナルに出力されるはずよ
public void printStackTrace() {
this.printStackTrace(System.err);
}
658:デフォルトの名無しさん
16/09/11 20:44:13.01 559tM3Xe.net
>>650
質問とはズレるけど、それ最低最悪の例外処理だからそのまま真似しちゃダメだよ
実際にはエラーページに飛ばすとかしないと
659:デフォルトの名無しさん
16/09/11 20:59:20.72 PKjGYOYu.net
>>651
ありがとうでござる。
tomcatのweb server立ち上げて試しているのですが、
tomcatサービス立ち上げてもログはコンソール(teraterm)に流れてこないです。
viで試しているので、目に見えていない情報がいっぱいありそうです。
ServletからjavaBeansのモデルの中で処理を行っていますが、
Servletから出力するのは、response.getPrintWriterできますが、
モデルの中で出力するにはどうすればいいのでしょう。。
エラーの文字列返すか。。
660:デフォルトの名無しさん
16/09/11 21:01:38.84 PKjGYOYu.net
>>652
ありがとうございます。
そういった定石についても学んでいきたいのですが、
参考書にそう書いてあるのでとりあえず従っています。
初心者なのに、WEBアプリの開発を上流工程からさせられて、やばいです。
661:デフォルトの名無しさん
16/09/11 21:04:52.35 2XEAwmhY.net
log4jでも使えや
662:デフォルトの名無しさん
16/09/11 21:05:59.11 2XEAwmhY.net
JDKでもできるようになったっけ
663:デフォルトの名無しさん
16/09/11 21:41:28.82 pVB2WkOU.net
>>653
Tomcatなら標準エラー出力はcatalina.outに吐かれるんじゃないかな
モデルでレスポンスを出力するならモデルにresponseを渡せばいいよ
モデルから戻り値を返すのもあり
なんでもあり、なんでもかんでもやってみたらいいよ
664:デフォルトの名無しさん
16/09/11 22:05:33.11 PKjGYOYu.net
>>657
ありがとうございます。
とりあえず、モデルにエラー変数追加して表示させました。
catalina.outにもエラーが表示されていました。
結局、テーブル名が間違っていたという単純なエラーでした。
665:デフォルトの名無しさん
16/09/11 22:08:25.33 PKjGYOYu.net
>>657
あと、戻り値をStringにしてエラーを返そうとしたら、
incompatible types: int cannot be converted to String
String result = info.insertInfo();
となりました。
insertInfoでStringを返しているはずなのに、、、
666:すとーかーっておうむのざんがい?
16/09/11 22:21:52.89 r+x1UEZu.net
ひアかレりフの輪
ざんねんきもきもがふつうぶっておめかししてすとーきんぐでちょづきまくり
こうがいのすぽーつじむのしょくいんばいとはちかんちじょしかいないとくにゆとり
痴遅れの卑しい自分の子供使って付きまとう座声の面へら痴女ママ
かっぷる ふうふで ぱんだでもみるように 垢の他人へのストーキングをイベントにするキショ残念愚民痴漢痴女っぷる
しょうがいしゃ や しょうがいしゃあらうんど の ようは いやしい きちがいつかって
ちかんちじょうかれさせて かると も きたちょうせん も ざいにち も どうわ も 『じんかくしょうがい』の く*み*
すとーかーはしぬまですとーかーのきちがごきぶり
ストーカーに年齢性別職掌関係なし 死ぬまで卑しい 羞恥心が乏しい地遅れだからしつこい
すとーかーしねすとーかーしねすとーかーしねすとーかーしねすとーかーしね
つきまといいっしんで ごまかしてこれは正当な痴漢痴女行為なんだ えっへん! 作為も卑しく残念 しねすとーかーしね^
667:デフォルトの名無しさん
16/09/11 22:32:32.51 pVB2WkOU.net
>>659
エラーメッセージ様はintをStringに変換できませんでしたって述べておられるから
エラーメッセージを真と仮定するならinsertInfoはintを返すはずよ
もっかいソースコード眺めてみたほうがいいかも
668:デフォルトの名無しさん
16/09/12 02:29:30.20 8MZ1cj6o.net
>>661
さっき、何度も見たけどString返してたけど、コンパイル通りませんでした。
多分疲れているんでまた今度試してみます。
669:デフォルトの名無しさん
16/09/12 06:55:22.80 cr9LkrO9.net
>>662
String result = info.insertInfo();
もしかしてここでStringと書いてるからinsertInfoでStringを返してると言ってる?
int insertInfo() {
...
}
insertInfoの定義がこうなってるなら
String result = Integer.toString(info.insertInfo());
というふうに変換しないといけないよ
670:デフォルトの名無しさん
16/09/12 08:31:24.36 8MZ1cj6o.net
>>663
メソッドの方もStringになってるです。
幻覚を見てるのかも
671:デフォルトの名無しさん
16/09/12 11:29:35.58 fvTL8pNH.net
>>664
しかしStringではないものを代入しようとしない限りコンパイラはあのエラーを出さないと思うよ。
よーく調べてみた方が良い。
672:デフォルトの名無しさん
16/09/12 13:47:25.03 8PS1rtVg.net
自分の作ったものが正しいとかコンパイラがバグってるとか
頭にある内は見つからないよ。
673:デフォルトの名無しさん
16/09/12 14:03:52.85 B4q/HnSc.net
日本語の文字列をmysqlのDBにutf-8で書き込む場合、
その文字列が入ったString型の変数のgetBytesメソッドでエンコーディングにutf-8を指定して、utf-8のバイト配列にしてから書き込まないと駄目なんですか?
674:デフォルトの名無しさん
16/09/12 14:24:52.06 2jOVWf1c.net
そうやってみて上手くいくならいいじゃない
何か不具合あったならエラー内容とか書かないとだめよ
675:デフォルトの名無しさん
16/09/12 14:42:18.88 B4q/HnSc.net
回答になってねーんだよ
出来たからオッケーじゃねーんだよ
このやり方が正しいのか確認するために質問してんだよ
わかんねーなら回答すんなよボケ!
二度と来ねーよカス!
676:デフォルトの名無しさん
16/09/12 14:44:25.17 sJaisqrH.net
正確さを求めるならJDBCのJavadocとコネクタドライバの仕様とMySQLのマニュアルを読むべき
どこの誰とも知らない馬の骨に何を期待して質問しているのか
677:デフォルトの名無しさん
16/09/12 19:08:16.10 X9a/086M.net
>>669
ばーか、ばーか!お前のかーちゃんでーべーそー!
二度と来るな!
678:デフォルトの名無しさん
16/09/12 22:13:59.24 6644IPRT.net
みんなオールオッケー
679:デフォルトの名無しさん
16/09/13 13:50:27.50 VhMCeniD.net
Javaに標準でJSONをデコードするクラスが無いようなんですが、
外部のライブラリで一番使われてるのってJSONICですか?
680:デフォルトの名無しさん
16/09/13 14:17:25.77 Q6FjZOsZ8
自分用にとあるアプリを作りました。
お気に入りのいいものができました。
人に見せたら自分にもくれといわれました。
でも人に渡すときってjarファイルで渡さないですよね?
Vectorとかでダウンロードするときにjarファイルのものとか見たことないし。
通常はこういう時はどういう風にして配布するんですか?
681:デフォルトの名無しさん
16/09/13 23:51:08.74 7uOfP430.net
Jacksonでしょ
682:デフォルトの名無しさん
16/09/14 11:00:08.38 Ny+1w2tY.net
そもそも仕様とか詳細書かずに正確な答えを求めること自体ただの脳足りん
683:デフォルトの名無しさん
16/09/14 18:08:31.13 5MgbrOE1.net
何故WEB.xmlは
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
みたいに書かないといけないんですか?
<servlet>
<servlet-class></servlet-class>
<url-pattern></url-pattern>
</servlet>
だけで十分だと思うんですが
684:デフォルトの名無しさん
16/09/14 18:29:44.99 ZbLz4+NF.net
DBの正規化と目指してる物は同じ
重複排除
685:デフォルトの名無しさん
16/09/14 18:56:36.36 HnooT/fk.net
Struts2とかでWEB.xmlをみてると、これって本当に世の仕組みを便利にしてるのか?と
いつも疑問
画面デザインとビジネスロジックを分割と聞くけど、ビジネスロジックの実装側に
変なシワ寄せがいってるだけでないのかねこの仕組み
XMLファイルを編集せよとか普通に解説されてるの見てると、そんなこと人間様に
やらせることじゃないだろと
Eclipseとかで、ソース群とかアノテーションとか見てWEB.xmlを自動編集してくれるプラグイン、
みたいなのでもあるのかな
686:デフォルトの名無しさん
16/09/14 19:06:02.66 Adg+xGfe.net
ごもっとも
だから今時は、RoRやSpringのように分かりきった設定をなるべく省く「設定より規約」なスタイルが勢力を伸ばし続けている
687:デフォルトの名無しさん
16/09/14 19:22:11.50 ZbLz4+NF.net
冗長な言語が好きな人は冗長なファイルフォーマットも好むのだろう
688:デフォルトの名無しさん
16/09/15 00:25:54.35 1vAlL3U2.net
rubyとかで作ってるとすんげぇ楽しいもんな
ありゃいい意味でも悪い意味でも悪魔の言語だわ
689:デフォルトの名無しさん
16/09/15 00:56:24.01 oRDA5p37.net
rubyは動的なのがな
scalaが本当楽しい。jvmで動くから速度はjavaと変わらない
690:デフォルトの名無しさん
16/09/15 04:56:32.86 ql+kvaik.net
そりゃ、Ruby, Python, Groovy などの設定ファイルは読みやすいし、手続きも書ける。
これらは、DSL向きの言語
Chef はRuby
Ansible はPython
Gradle はGroovy
691:デフォルトの名無しさん
16/09/15 07:19:42.61 Cj/yMtkH.net
AnsibleはYAMLだぞ
設定ファイルとして宣言的に書けば十分なものに手続き型言語を使うべきではない
692:デフォルトの名無しさん
16/09/15 07:28:08.00 Spuf+iD1.net
ChefのレシピはJavaやXMLの冗長さとは別方面でクソみたいな可読性だしやってらんない
693:デフォルトの名無しさん
16/09/15 12:44:38.64 Dfv6m4lx.net
そういうのは他のシステムへの移行のハードルを高くしたうえで
破壊的変更で殺しに来ると聞いた
694:デフォルトの名無しさん
16/09/15 17:35:59.82 /mm1ywhy.net
ResultSetとかPreparedStatement、Connectionをクローズしなかった場合どうなるんでしょうか?
メソッド抜けた時点で勝手にクローズされますか?
695:デフォルトの名無しさん
16/09/15 17:37:48.18 Spuf+iD1.net
されない
不精せず始末せよ
696:デフォルトの名無しさん
16/09/15 17:44:04.48 oRDA5p37.net
CGでクローズされないの?いつもクローズしないで放置してたけど
697:デフォルトの名無しさん
16/09/15 17:47:59.95 /mm1ywhy.net
>>689
まじですか。。
ありがとうございました。
698:デフォルトの名無しさん
16/09/15 18:49:04.26 UvKwsW6o.net
finalizeメソッド内でリソースの解放は行ってくれると思うけど、自分でclose呼ぶようにする
try-with-resource 使って実装すればよい
699:デフォルトの名無しさん
16/09/15 19:13:18.95 /mm1ywhy.net
>>692
これ変なインターフェース実装しなきゃならないんですね
うーんありがとうございました
700:デフォルトの名無しさん
16/09/15 19:36:05.11 oRDA5p37.net
変なって何が変なんだよ
701:デフォルトの名無しさん
16/09/15 19:50:03.74 1tr3czZy.net
>>690
CG でクローズされることとメソッド抜けたときにクローズされないことは矛盾しない
702:デフォルトの名無しさん
16/09/15 19:54:19.82 oRDA5p37.net
>>695
それはそうだけど
それだと問題ある?
703:デフォルトの名無しさん
16/09/15 20:01:26.05 1tr3czZy.net
>>696
問題があるかどうかは ID:/mm1ywhy が判断すればいい
704:デフォルトの名無しさん
16/09/15 20:22:59.99 /kYv9QqQ.net
>>696
ガベージコレクタは呼ばれるとは限らないから
すぐにプロセスが終了するようなプログラムなら
問題にならないんだけどWebアプリケーションのように
ずっと稼働しててDBに接続するたびに新しいコネクション張ってたら
メモリオーバーフローやコネクションプールが枯渇して
接続できなくなる可能性がある
サーバでぶんぶん動作してるアプリでは死活問題
なのでプログラムで開いたものはプログラムで閉じるようにしたがよいよ
705:デフォルトの名無しさん
16/09/15 20:25:17.93 oRDA5p37.net
>>698
そうなのか
メモリが多いとあまりGCされないとか?
706:デフォルトの名無しさん
16/09/15 20:28:15.13 /kYv9QqQ.net
開けたら閉める!おトイレのように自動で止まればいんだけどね
閉じてもよいという判断を自動的に行うのは難しいのだろうね
参照カウント方式のガベージコレクタならデストラクタに
お任せで行けるかもしれないけど
これだけ参照カウントでーみたいな機能があればいいのに
707:デフォルトの名無しさん
16/09/15 20:33:25.67 /kYv9QqQ.net
>>699
うん、JVMがGCが必要じゃーと判断したときしかGCされないよ
708:デフォルトの名無しさん
16/09/15 20:43:58.53 oRDA5p37.net
>>701
なるほど
サンクス
709:デフォルトの名無しさん
16/09/16 08:10:33.93 6a7QMzs2.net
メモリの容量が大きいほど、GCされなくなるし、
1回のGCにかかる時間が、大きくなる
メジャーGCだと、1秒以上、システムが止まるんじゃね?
710:デフォルトの名無しさん
16/09/16 09:44:01.36 Yu959LLR.net
開けたら閉じろの法則があったけど名前思い出せないわ
とりあえずGCなんて往々にして意図して動いてくれない
AutoClosableとかも上手く使って閉じようぜ
711:デフォルトの名無しさん
16/09/16 12:34:04.73 maMiAkaM.net
Java ってGCが最後まで参照してるって考え方なのかな?
まあそうじゃなきゃプログラム中からの参照なくなってもまだクローズされずに残存なんてありえないか。
712:デフォルトの名無しさん
16/09/16 13:20:35.49 lB/89/ry.net
参照カウント方式じゃないから、
他から参照されなくなったオブジェクトが即座に回収されるわけじゃないってだけ。
マークアンドスイープ方式だとGCは凄く重い処理なので
必要ないならGCしない戦略を取るってのもよくあるし。
713:デフォルトの名無しさん
16/09/16 13:44:53.96 y8tfoIHL.net
そもそもJavaのGCは種類がいくつかあるし
バージョンによってデフォルトGC も変わるし(Java9でG1 GCになるし)
GCでやってくれるだろうって考えはやだなぁ
閉じる処理が冗長と思うならそういう機構を作るか別の言語を使うしかない
714:デフォルトの名無しさん
16/09/16 14:43:50.93 LunKPrNc.net
>>705
GCはJVMのメモリ空間全体とその中の全オブジェクトを掌握して管理する神なんだよ
オブジェクトが不要になったかどうかを決めるのもGCだ
GCが参照してるとか全く見当違い
715:デフォルトの名無しさん
16/09/16 16:16:35.47 IBT/7Zvo.net
>>708
そりゃ表現の問題
716:デフォルトの名無しさん
16/09/17 10:17:01.00 vLB8cUPo.net
>>709
702の考え方をふまえたら
どう見ても間違ってるだろう
717:デフォルトの名無しさん
16/09/17 14:49:41.73 cMEKk4hI.net
GC云々じゃなく自分でcloseしろって話
っでcloseはtry-with-resourceで行う
closeもまともに出来ないなら不要な参照残してメモリリークもしてるだろうし
718:デフォルトの名無しさん
16/09/17 21:42:19.54 u5XAfxF2.net
>>710
間違ってないじゃん
単に考え方のこと書いてるだけだし
719:デフォルトの名無しさん
16/09/18 01:38:39.82 zGPqs7bR.net
そういえば新明解Java出てたが相変わらず演習解答は別なのね
720:デフォルトの名無しさん
16/09/18 08:12:44.58 PkHkhVtLw
public static void main string args
signed unsigned double
どんだけ無駄なオマジナイ唱えりゃ気が済むんだよこの情弱糞言語は
721:デフォルトの名無しさん
16/09/18 12:21:31.71 4g2AQj9i.net
FWやAPIの呼び出し先でcloseされる事が保証されてる場合もあるからなんでもcloseすればいいという訳じゃない。
大抵は冗長なcloseしても動作はするけど、ストリーム等を引数に持つFWやライブラリのドキュメントは読んでおいた方がいいかな。
でもドキュメントに記載なく呼び出し先でcloseしてるものも結構あるから結局ソース読むことになる。
個人的にはリソースを読み出したスコープでcloseするのがいいと思う。
レビューしてると
closeしてねーじゃねーか→ライブラリのドキュメントを読む→ライブラリのソースを読む→ok or ng
closeしてる→ライブラリのドキュメントを読む→ライブラリのソースを読む→冗長なcloseじゃねーか→動いているけどng出すこともある
ここまでチェックするのは少し面倒なので。
722:デフォルトの名無しさん
16/09/18 14:59:37.77 mx2jBCOo.net
try-with-resources構文使えばだいたいは問題なくなるんじゃないか?
723:デフォルトの名無しさん
16/09/18 16:54:15.10 p7R04v9o.net
replaceAllで文字列「1900/01/00 15:00:00」の「15:00:00」だけ取り出したいんだができない。
fruit[3] = fruit[3].replaceAll("[^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])]", "$1");
↑こうじゃないの?
724:デフォルトの名無しさん
16/09/18 18:26:14.39 brjZnsh0.net
>>717
[^([0-9][0-9]:[0-9][0-9]:[0-9][0-9])]
このパターン?
なんか全体が [^ ... ] に括られているようだが、なぜそんなことをする?
725:デフォルトの名無しさん
16/09/18 20:31:56.98 OjVGO9qP.net
>>717
置換でやるなら文字列全部を対象にして置き換える必要があるよ
replaceAll("^.*(\\d{2}:\\d{2}:\\d{2})$", "$1")
726:デフォルトの名無しさん
16/09/18 20:53:52.07 9WNYi/6w.net
行頭から最初の1つ以上の空白文字までの削除をするだけで良いならこれでも結果は同じになる筈。
replaceFirst("^.*?\\s+", "")
727:デフォルトの名無しさん
16/09/18 21:35:36.42 JX2UIjQm.net
clone()作るとき、コピーコンストラクタ作っておいて、
clone()はコピーコンストラクタの結果を返却するだけのほうが簡単だと思うのだけど、
なんでそうしないの?
スーパークラスがコピーコンストラクタを持ってるとは限らないから?
728:デフォルトの名無しさん
16/09/18 21:39:21.29 FLMBUfED.net
>>721
C#だとcloneは役に立たないということで実際非推奨になってるよ
コピーコンストラクタの方が優れてる
729:デフォルトの名無しさん
16/09/22 12:50:19.43 m6O3ZCtr.net
H行W列の2次元配列 arr から順次に列を取得する方法を教えてくれ
730:デフォルトの名無しさん
16/09/22 14:23:25.39 m6O3ZCtr.net
>>723だけど自己解決しました
731:デフォルトの名無しさん
16/09/22 14:29:14.07 7wkfE+LH.net
TemplateA<ClassA>みたいなクラスを引数に持つメソッドを使うために、とある変数をTemplateA<ClassA>へダイナミックキャストしたいのですけど、
このときの型チェックwarningを消すにはsuppresseswarningするしかないですかね?
実行時にはgenericsの型情報が失われるのでTemplateA<?>かどうかの型チェックしか実施できないのですけど
それだと先のメソッドが呼べないのです
732:デフォルトの名無しさん
16/09/22 16:57:50.06 BB3TxeNc.net
javaでインポートする時に.*が付くものがありますが何か意味ってあるんですか?
import java.awt.*;
みたいなやつです
733:デフォルトの名無しさん
16/09/22 17:23:59.61 E7kraiVr.net
G○○○○
○G○○○
○○R○○
○○○K○
○○○○S
734:デフォルトの名無しさん
16/09/22 18:17:21.30 BB3TxeNc.net
ググってないとでも思ってんのかks
知らないなら黙ってろよハゲでデブで頭のネジが外れたアスペルガーサイコパスホモクズゴミ馬鹿低血圧野郎
735:デフォルトの名無しさん
16/09/22 18:22:33.43 m3h8CZoW.net
うーん、語彙の乏しい罵倒だ
736:デフォルトの名無しさん
16/09/22 18:31:45.84 KCZrpDJE.net
ggrと三番目にこれが出てくるが
URLリンク(www.acroquest.co.jp)
追記:自己紹介は不要です
737:デフォルトの名無しさん
16/09/22 18:47:37.95 /puzguTR.net
>>726
全部インポート
738:デフォルトの名無しさん
16/09/22 19:03:26.42 bqhINfKV.net
調べ方を知らないだけでボロクソ
739:デフォルトの名無しさん
16/09/22 19:27:11.74 /puzguTR.net
俺も最初は意味分からなかったし、気持ちは分かる
import パッメージ名.クラス名;
みたいな説明してあって、ドットが沢山ある意味が分からなかった
740:デフォルトの名無しさん
16/09/22 19:35:49.34 9oQWhw/A.net
でもimportに関しては入門書の最初の方に書いてありそうな気がするなあ。
741:デフォルトの名無しさん
16/09/22 20:33:16.67 BB3TxeNc.net
助かりましたありがとうございます。
742:デフォルトの名無しさん
16/09/22 20:43:01.48 /puzguTR.net
何この態度の変わり方
743:デフォルトの名無しさん
16/09/22 20:47:11.48 m6O3ZCtr.net
プログラミング全般に言えるんだけど、
「俺が今やってることは、実はもっと効率的で簡単なやり方がある」って思う時、どのレベルまで調べたらいいもんかね?
思う度にチェックしてるようじゃ勉強ペースも落ちるし、だからといって次々と次の作業に取りかかって行ってたらtips的な成長が無くなる
744:デフォルトの名無しさん
16/09/22 22:02:38.21 kFEjEuAm.net
>>737
思う度に調べろ
なんだかんだそれが一番効率的
745:デフォルトの名無しさん
16/09/22 22:13:11.46 uYY6QRZp.net
趣味なんだから好きにすれば
746:デフォルトの名無しさん
16/09/22 23:43:05.96 9oQWhw/A.net
仕事が滞らない程度にやればいいのでは?
747:デフォルトの名無しさん
16/09/23 00:05:37.74 +JsUAn66.net
mysqlのJDNI接続がうまくできなくて、いろいろネットで調べたりしてるんですけど、たくさんあってどれを参考にしたらいいかわかんないんですけど、オススメのサイトだったり参考書だったりありますか
748:デフォルトの名無しさん
16/09/23 01:11:56.94 wN+HuPEq.net
>>738
うそだ
絶対うそだ
それで何度失敗したか
749:デフォルトの名無しさん
16/09/23 01:18:01.08 +JsUAn66.net
ネットで検索してその通りにやっても上手くいかないことありますよね
750:デフォルトの名無しさん
16/09/23 01:33:34.61 R5xwyRtT.net
調べてたらいつのまにか数学の勉強始めてた
751:デフォルトの名無しさん
16/09/23 02:08:55.71 +JsUAn66.net
最近は数学すすめてくるからなw
752:デフォルトの名無しさん
16/09/23 08:59:10.42 Q2M4AuON.net
プログラミングはパズルににてると思ってる
753:デフォルトの名無しさん
16/09/23 09:21:18.36 AqTRNsCZ.net
ロジックを駆使して解を導くところは似ているが
出題者という神がいない点が大きく異なる
754:デフォルトの名無しさん
16/09/23 09:32:10.44 5eSe/oWi.net
出題者はクライアントじゃね
755:デフォルトの名無しさん
16/09/23 10:31:32.00 ASDlv6FX.net
>>741
環境ぐらい書けよ
756:デフォルトの名無しさん
16/09/23 11:39:55.10 4Bc1n1Q4.net
>>742,743
有象無象のブログ記事とかしか調べないからだろ
仕様書とか一次ソースを調べろ
757:デフォルトの名無しさん
16/09/23 12:55:09.12 zs6gGpBI.net
条件付きでインスタンスを作成するstaticメソッドがあります
class ClassFoo extends Base implements BaseIF {
public static ClassFoo newInstanceWithCondition(Condition c) { /* ... */ }
}
class ClassBaa extends Base implements BaseIF {
public static ClassBaa newInstanceWithCondition(Condition c) { /* ... */ }
}
このメソッドをforeachで呼びたい場合、どのようにすれば良いでしょうか
// こんな感じのことがやりたい
List<Base> result = new ArrayList<>();
List<Class<? extends Base>>(/* メソッド実装したクラス群 */).forEach(e -> { result.add(e.newInstanceWithCondition(c)) });
builderメソッドを別に作って全クラス列挙するのはできれば避けたいなと。。。
758:デフォルトの名無しさん
16/09/23 15:34:09.55 Dg83AA8f.net
>>751
URLリンク(ideone.com)
リフレクションを使うとか
759:デフォルトの名無しさん
16/09/23 16:54:14.60 GrnQo8ND.net
HashMapのキーを弄ってhashCodeが変わったときは
やはり消して入れ直す操作が必要でしょうか
760:デフォルトの名無しさん
16/09/23 16:55:49.26 Da0YgZYz.net
可変オブジェクトをキーに使うな
761:デフォルトの名無しさん
16/09/23 17:39:53.88 wkrJ8I5/.net
>>751
リフレクション使えばいけると思うけど、あなたのやろうとしていることはそもそもJavaっぽくない
名前や引数が同じなら同じものと考えるのはRubyとか他の言語ならあるけどJavaだと別物なのだからforeachで回そうとするのがそもそも間違いだと思うよ(そもそもきっとBaseにキャストするんだろうけどそれぞれ返却する値さえ違うし....)
メソッド名から鑑みるにシングルトンではなく毎回インスタンスを作成しているみたいだし、絶対に静的なファクトリーパターンが必要なのか見直してみたほうがいいと思う
762:デフォルトの名無しさん
16/09/23 18:56:56.09 ytBluy/j.net
>>751
教科書的な回答としては、Abstract Factoryでググれ
763:デフォルトの名無しさん
16/09/23 20:54:31.63 79Xjahxb.net
ID変わってるかもですが747です
レスくださった方ありがとうございます
リフレクション、abstract factoryどちらともやりたいことができました
やろうとしていたことは動的なベルトコンベアみたいなもので、
たとえばHttpRequestに応じて必要な分だけFilterをつなぐ
(1) zlib.inflate()
(2) Base64.decode()
(3) JSON.parse()
みたいな各Filterを一番外側で必要な分だけインスタンス化してchainにつなぐイメージです
上記の例では全部Singletonでできそうですが、実際の処理はもっと複雑で毎回newする必要がありました
こういうのはJavaっぽくない処理なのでしょうか・・・申し訳ありません
764:デフォルトの名無しさん
16/09/23 21:09:12.36 6jb3Iz8l.net
その質問はナンセンスだな
Javaぽくなかったら止めるのか
その程度だったら別の方法考えとけ
765:デフォルトの名無しさん
16/09/23 21:11:47.41 GrnQo8ND.net
なるほど
ありがとうございます
766:デフォルトの名無しさん
16/09/23 21:14:08.07 xWgfj234.net
servletにはfilterがあるが
URLリンク(www.techscore.com)
767:デフォルトの名無しさん
16/09/23 21:20:22.94 wkM5dFar.net
すまん、言葉が足りなかったわ
俺がJavaっぽくないっていうのは名前や引数が同じだから一括で処理出来るって思っているところね
newInstanceメソッドは名前や引数は同じだけど同じメソッドから継承されているわけじゃないでしょ(そもそも出来ないし)
>>757は条件にあったフィルターをまとめてそのあと一括で処理したいってことでいいのかな?
そもそもフィルターにそれぞれ違う条件があるならフィルターをfor文で一括で作成は出来なくない?
まとめたフィルターはfor文で一括で処理出来るだろうけど
まぁ作成処理を共通化させたいならファクトリークラスでHttpRequest引数にListに条件に合わせてフィルター追加していけばいいんじゃないかな
条件次第で追加とかは泥臭く感じるだろうけど
泥臭い部分を逆に泥臭く書かないようにすると逆にどうしようもなくなるから泥臭く書けばいいと思う
768:デフォルトの名無しさん
16/09/23 22:00:55.95 xWgfj234.net
素人でしたということか
769:デフォルトの名無しさん
16/09/23 22:18:23.06 79Xjahxb.net
>>761
まさにおっしゃるとおりで、staticメソッドの継承を言語機能でサポートしていないのでどうしようってところが質問のスタート地点です
Base (BaseIF)に書ければよかったんですが、staticだから書けないというか意味がない、でも全派生クラスに持たせたい、どうしよう、と
リフレクションの場合は直接的にできますが、無理矢理な感じがします
Factoryは必要なクラスが増えるけどすんなり納得できました
ただ、そもそもそういうのが必要になった時点で設計を見直すべきなのかもしれません
>>760
今回JavaEEは使っていません
お勉強をかねてSocket作るところから自作していますが、最終的にはNettyを使うことになるかと思います
770:デフォルトの名無しさん
16/09/23 22:27:53.92 Bla+oVr/.net
使うとか使わないじゃなく
「実装例として参考になるんじゃね」
って、言ってるんだと思うよ
771:デフォルトの名無しさん
16/09/24 00:01:14.92 CcnATw2b.net
>>757
一昔前に流行ったDependency Injectionってやつだね。
772:デフォルトの名無しさん
16/09/24 00:26:48.28 V/nU9HG+.net
【ワカヤマン】Javaプログラミング能力認定試験 [無断転載禁止](c)2ch.net
スレリンク(lic板)
773:デフォルトの名無しさん
16/09/24 05:16:30.74 Lk9DTO7g.net
HttpURLConnectionのgetInputStreamを呼び出さなかったとき
内部のストリームは自動でクローズされますか?
されるとしたらどうやっているんですか?
774:デフォルトの名無しさん
16/09/24 07:21:15.97 hsY2X9yo.net
されない
そもそも
> 単一の要求を行う際には個々の HttpURLConnection インスタンスが使用されますが、その背後の HTTP サーバーへのネットワーク接続は、ほかのインスタンスと透過的に共有される可能性があります。
> 要求後、HttpURLConnection の InputStream または OutputStream 上で close() メソッドを呼び出すと、そのインスタンスに関連付けられていたネットワークリソースが解放される可能性がありますが、共有されている持続接続への影響はまったくありません
> disconnect() メソッドを呼び出した場合、持続接続がその時点でアイドル状態になっていれば、使用していたソケットがクローズされる可能性があります。
URLリンク(docs.oracle.com)
と書かれているように、HttpURLConnectionの背後で使用される接続(ソケットのこと)は、明示的かつ強制的には閉じることができない
逆に言えば、HttpURLConnection自体は閉じられたかどうか気にしなくてもいいってことだ
775:デフォルトの名無しさん
16/09/24 08:06:33.34 naJG8nnU.net
>Socket作るところから自作していますが
車輪を再発見したいのかw
776:デフォルトの名無しさん
16/09/24 08:15:31.83 Lk9DTO7g.net
>>768
サンクス
777:デフォルトの名無しさん
16/09/24 13:14:31.54 dERTNrXa.net
>>769
勉強のためでしかも最終的にはNettyを使うって書いてるやん
778:デフォルトの名無しさん
16/09/24 13:20:38.45 trsNBxRI.net
素人が努力する方向を間違えてるといってるだけだよw
779:デフォルトの名無しさん
16/09/24 14:23:50.99 we2+rnF7.net
なんかjavaのアップデートできないことない?
780:デフォルトの名無しさん
16/09/24 14:31:51.35 cKy0IgTy.net
>>772
やめなよみっともない
781:デフォルトの名無しさん
16/09/24 14:32:25.05 cKy0IgTy.net
嫉妬心で努力する人間の足を引っ張るのはみっともない
782:デフォルトの名無しさん
16/09/24 14:45:10.33 trsNBxRI.net
>>774
やめろよ、自演はw
783:デフォルトの名無しさん
16/09/24 14:46:19.90 trsNBxRI.net
開いたstreamが塞がらないw
784:デフォルトの名無しさん
16/09/24 15:05:25.09 i7CAvt+R.net
はい
785:デフォルトの名無しさん
16/09/24 15:14:51.33 cKy0IgTy.net
>>776
嫉妬心で努力する人間の足を引っ張るのはみっともない
786:デフォルトの名無しさん
16/09/24 15:14:59.78 cKy0IgTy.net
>>777
嫉妬心で努力する人間の足を引っ張るのはみっともない
787:デフォルトの名無しさん
16/09/24 15:15:20.54 cKy0IgTy.net
みっともない
788:デフォルトの名無しさん
16/09/24 15:16:42.00 i7CAvt+R.net
はいはい
お二人ともおつかれさまでした
789:デフォルトの名無しさん
16/09/24 16:05:16.35 d951yjmo.net
>>769
車輪は発明するためにある。
790:デフォルトの名無しさん
16/09/24 16:19:33.00 MU1F/mTz.net
車輪は自動車の為にある フォード
791:デフォルトの名無しさん
16/09/24 16:26:35.98 bdAgONj1.net
質問
fedora24で何回か dnf install eclipse でeclipseのインストールが出来ていたのだが、
neonにアップデートした後に初めて再インストールを試みたが、ダメ。
今はダウンロード版でrootなら動くことは確認できたが、userではeclipse-instが動かない。
かつてのように dnf install eclipse でインストールしたい。
教えてほしい。
792:デフォルトの名無しさん
16/09/24 17:04:37.56 MU1F/mTz.net
車はガソリンで走るのです エッソ
793:デフォルトの名無しさん
16/09/24 19:13:58.93 ubw0uMWd.net
プログラミングではないんだけど、Javaランタイム落とそうとしてボタン押すと、アクセスディナイ となってアクセス出来ん
どういうことなんだろう?
794:デフォルトの名無しさん
16/09/24 19:20:30.55 TOidze/l.net
>>786
今時は EV も FCV もあるけど?
795:デフォルトの名無しさん
16/09/24 19:36:16.61 wxcFZgew.net
>>787
java.comでダウンロードできないなら、oracleからダウンロードすれば良いんじゃよ。
URLリンク(www.oracle.com)
java.comからだと、You don't have permission to accessでAccess Deniedだなー
796:デフォルトの名無しさん
16/09/24 20:19:42.32 ubw0uMWd.net
>>789
まさかのお助けご返信 ありがとうございます!
調べても解らなかったので、ほんとに助かりました
おかげでダウンロード出来ました ありがとうございました!
しかしどういうことなんでしょうね・・・教えていただいたoracleからのダウンロードのように、前もって同意の明示とかがあるわけでもないし・・・
797:デフォルトの名無しさん
16/09/25 09:22:52.18 b/O7Qjtb.net
>>786
モービルのCMだよ
798:デフォルトの名無しさん
16/09/26 11:39:36.16 yco4jaYN.net
>>開いたstreamが塞がらないw
これは素直にうまいと思いました(小並感)
799:デフォルトの名無しさん
16/09/26 12:39:32.80 mwa1njiS.net
まあでも座布団1枚かな
800:デフォルトの名無しさん
16/09/26 14:05:09.09 dMvvSsQ7.net
ありがとう
801:デフォルトの名無しさん
16/09/26 18:51:06.54 ZCZkJviH.net
初歩的な質問だけど、2つの配列が同一の内容を持っていることを簡単にチェックしてくれるメソッドは無い?
例えば、
int[] a,bがあった時, int型のsize == a.length == b.lengthとする。
この時、
int i=0;
for(; i<size; i++){
if(a[i] == b[i]) i++;
}
String ans = (i==size) ? "same" : "not same";
という普通のチェック法しか無いのか?
802:デフォルトの名無しさん
16/09/26 19:31:03.11 Tv3f4Va/.net
>>795
System.out.println(Arrays.equals(a, b));
803:デフォルトの名無しさん
16/09/26 20:20:19.60 ZCZkJviH.net
>>796
サンクス
804:デフォルトの名無しさん
16/09/26 20:38:58.07 ZCZkJviH.net
>>795をちょっと発展させた質問だけど、
ハッシュマップのキー部分が(基本型じゃ無く)配列で定義されていたら、直感的なやり方だと上手くいかなくなってしまう
具体例
HashMap<int[], Integer> map = new HashMap<int[], Integer>() {{
put(new int[]{1, 1}, 3);
put(new int[]{-1, 5}, 20);
put(new int[]{10, 2}, -3);
}};
System.out.println(map.get(new int[]{-1, 5})); // 出力は null
これだとダメ
こうしなきゃ行けないの?
for (int[] a : map.keySet()) {
if (Arrays.equals(a, new int[]{-1, 5})) {
System.out.println(map.get(a));
}
}
805:デフォルトの名無しさん
16/09/26 21:38:11.90 ZRBGeI3f.net
>>798
どっかのスクリプトから来た人?
Javaでは配列をキーにするというのはまずやらない
というか一般に複雑なデータ構造を配列やコレクションだけで表現することはJavaでは嫌われる
基本的に、いちいち愚直にクラスを作って冗長で明示的すぎるコードを書くのが美徳とされる
794の例だとキーのためのクラスを作ってhashcodeやequalsを猿のように実装するのが正解
806:デフォルトの名無しさん
16/09/26 21:58:19.89 NRdPNu0H.net
それより入門書でも読めよ
807:デフォルトの名無しさん
16/09/27 00:14:41.69 dNidmfNN.net
俺プロではないからマクロな感覚分からないんだよな
808:デフォルトの名無しさん
16/09/27 00:15:36.88 dNidmfNN.net
>>799は参考になった
809:デフォルトの名無しさん
16/09/27 00:47:25.88 aQphVoL7.net
>>796
瞬殺でワロタw
810:デフォルトの名無しさん
16/09/27 08:42:01.16 ld49Y9Vg.net
791の時点ですでにJavaっぽくない感じがするなぁ
愚直にやるとしてもこうじゃない?
String ans = "";
for (int i = 0; i < a.length; i++) {
811:デフォルトの名無しさん
16/09/27 08:45:00.89 ld49Y9Vg.net
途中送信しちまった・・
String ans = "same";
for (int i = 0; i < a.length; i++) {
if (a[i] != b[i]) ans = "not same"
}
最後まで行ってからlength比較ってなんかCっぽい
812:デフォルトの名無しさん
16/09/27 08:48:11.60 aQphVoL7.net
>>805
コンパイルエラー
813:デフォルトの名無しさん
16/09/27 09:03:26.00 /7SET8Ca.net
てか、a[i] != b[i] が一度成立したらそこから先は比較する必要なし。
814:デフォルトの名無しさん
16/09/27 09:22:47.94 ld49Y9Vg.net
>>806
すまんセミコロンぬけてたわ
こうか!
String ans = "same";
for (int i = 0; i < a.length; i++) {
if (a[i] != b[i]) {
ans = "not same";
break;
}
}
815:デフォルトの名無しさん
16/09/27 21:05:48.66 Gry6xj9+.net
C/C++からJavaに移ったらクラッシュしたときに
stack traceが表示されて、ソースコードのどこでクラッシュしたとか
そのメソッドの呼び出し元がルートまで全部表示されて、
ぬるま湯すぎてワロタwww
これってほかの言語でもあるの?便利すぎてもうこれがない言語はやりたくないsっすw
816:デフォルトの名無しさん
16/09/27 21:08:18.00 Gry6xj9+.net
C/C++だったらどこでクラッシュしたかを調べることから始めないといけないからな
至る所にprintf入れて、ここのprintfは表示されてるけどここのprintfは表示されてない、
みたいなことを繰り返して特定していかないといけない
そのうえメモリ破壊してたらビルドするたびにクラッシュ箇所が変わるからprintf作戦も使えないw
おまいらズルすぎ。もっと早くjavaに移ればよかった。
817:デフォルトの名無しさん
16/09/27 21:09:13.01 pJiHchri.net
Cだって Core Dumped してくれるじゃないか
818:デフォルトの名無しさん
16/09/27 21:15:00.94 Gry6xj9+.net
gdbで見るやつだっけ?
javaのstack traceに比べたら手軽さが違いすぎる
Segmentation faultと表示されて意味不明なアセンブラの羅列見せられても何の役にも立たん
iphoneアプリ開発もやってみてるんだがC言語系なようで、
やっぱりクラッシュしたことしか教えてくれなくて、意味不明なアセンブラを見せられるのも同じ
androidの方がええわ
クラッシュしたときに解析効率が圧倒的に違いすぎる
819:デフォルトの名無しさん
16/09/27 21:26:53.83 utAkdrdU.net
>>812
え?gdbでも普通にCならCのソース出るよ。使い方知らないの?
てか、この頃はIDEのデッバッグでステップやトレースをGUIの画面に出しながらできるじゃん。
Javaに限らず主要な言語はだいたい同じようにできるぞ。
820:デフォルトの名無しさん
16/09/27 21:33:02.60 Gry6xj9+.net
>IDEのデッバッグでステップやトレース
ステップ実行のことを言ってる
821:? デバッガの使い方の話じゃないんですが。。
822:デフォルトの名無しさん
16/09/27 21:35:54.74 l7d7Fmom.net
Cはミスってもその場で止まらずに、後になって突然暴走したりクラッシュしたりすることがよくあるからなあ
あのデバッグはまさに地獄
823:デフォルトの名無しさん
16/09/27 21:38:24.78 w5gpFchP.net
あと3時間くらいしたらスタックトレースなんかどうでもよくなって
いかに相手を言い負かすかに心血を注ぐ二人の姿が見える
824:デフォルトの名無しさん
16/09/27 21:39:49.73 utAkdrdU.net
>>814
core dump したってデバッグオプション付きでコンパイルしてあれば gdb でソース出せるよ。
825:デフォルトの名無しさん
16/09/27 21:45:20.26 Gry6xj9+.net
crashファイル指定してgdb起動してコマンド打ち込むのが面倒
そんなことをするぐらいならprintfを至るところに入れて再実行したほうが早い
そんな作業をしている間に思考が飛んで何を調べていたか分からなくなりがち
クラッシュした瞬間にクラッシュダンプ表示してくれればいいのに
javaのstack traceは楽
826:デフォルトの名無しさん
16/09/27 22:01:30.85 Gry6xj9+.net
ある関数が呼ばれたときに、その関数の呼び出し元をルートまで全部表示するのって
Java以外でできる言語あるんでしょうか
827:デフォルトの名無しさん
16/09/27 22:06:43.47 tLj3yCec.net
関数の呼び出し元を記憶しておかないと、戻れないから普通に考えたら全部出来るはずだけど
828:デフォルトの名無しさん
16/09/27 22:16:21.97 YgEqXvfd.net
>>819
そろそろ死ねよカス
829:デフォルトの名無しさん
16/09/27 22:37:49.98 Gry6xj9+.net
かかってこいよ
830:デフォルトの名無しさん
16/09/27 22:46:28.22 EXpjvHub.net
>>818
printf() はバッファリングされてるから使える場合とそうでない場合がある。
そんなことするぐらいなら gdb で core と一緒に指定して whe で呼び出し元出したり p や x で変数やメモリの内容出した方が確実。
そういうコマンド覚えられないなら IDE 使えばいい。
>>819
Cでもなんでもデバッグオプション付けてコンパイルしておいてデバッガ使えばできる。
但し、スタックを破壊するようなバグがあった場合は(OSもそれを検知できないような
システムの場合は)途中から崩れて出せない場合がある。しかしそういうことが可能な
言語というとCやC++みたいな直接メモリ操作できてしまう言語だ。CやC++はそういう
安全性については言語のレベルではサポートしておらずライブラリにも使わない方が
良い関数が入っていたりする(例えば gets())。