★★Java質問・相談スレッド155★★at TECH
★★Java質問・相談スレッド155★★ - 暇つぶし2ch50:デフォルトの名無しさん
12/07/01 19:55:27.28
シングルスレッドのバッチ処理なら
最初に接続1本作るだけだな。

51:デフォルトの名無しさん
12/07/01 22:21:31.78
>>49
いえいえ

52:デフォルトの名無しさん
12/07/01 22:23:45.31
no problem

53:デフォルトの名無しさん
12/07/01 23:23:31.19
祭りだー
スレリンク(femnewsplus板)

54:デフォルトの名無しさん
12/07/02 00:01:00.40
サーバーアプリでもないのにコネクションプーリングって必要かね?

55:デフォルトの名無しさん
12/07/02 00:34:37.99
>>54
必要になる前にバックグラウンドで接続しといて、レスポンスよくするとか。複数箇所でいちいち接続しないで再利用するとか。使用を検討するには十分だと思うけど。

56:デフォルトの名無しさん
12/07/02 00:51:18.11
サーバアプリでも無いのにレスポンスって、
JavaのGUIアプリからdb直結するつもりか?

57:デフォルトの名無しさん
12/07/02 01:02:20.54
>>28
基本的にお前は間違ってないと、俺は思うよ。
読みやすいか読みにくいかは、人によって感じ方が違うかもしれないけど、
少なくとも特性を考えながら書いているお前と、理由もなく毎回ArrayListを使う人ならば、
少なくともお前のほうが良いコードを書く意識を持っていると推測する。
ただ、そいつに勉強させる手段は無い。なぜなら本当にそれで良いと思っているから。
自分で失敗して痛い目見ないとわからない。たぶん失敗しても気にしないタイプだろうけど。
要するに残念だがあきらめろ…。

58:デフォルトの名無しさん
12/07/02 01:13:49.14
>>26
JDKに入ってるsrc.zip内のソース読ませてみたら?

59:デフォルトの名無しさん
12/07/02 01:17:36.62
Collectionの特性というのは、
ArrayList以外にはLinkedListとかを使い分けようってこと?
それとも、同僚がBlockingQueueを使わないで
全部ArrayListでsynchronizedしようとしてるとかいう話なのかな

60:デフォルトの名無しさん
12/07/02 01:35:50.67
どっちも同じだろ
アルゴリズムに対するデータ構造の向き不向き
計算コスト理解してなくてArrayList#containsとか使ってんじゃね

61:デフォルトの名無しさん
12/07/02 05:35:24.92
これは酷い慈円>>57

62:デフォルトの名無しさん
12/07/02 06:51:43.99
>>56
クライアントアプリの方がレスポンスはダイレクトに影響する。必要ならするだろ。というか、サーバーアプリでもないのに必要かという質問の答えだぞ?

63:デフォルトの名無しさん
12/07/02 08:44:42.07
int [可変][固定]って感じの2次元配列を作りたいんですが、どうすればできますか?

List <int []> L = new ArrayList<int[]>();
int [] a={1,2,3};
while(1){
  a[0]++;
  L.add(a);
}
ってやって上手く動くじゃんと思ったら、aのアドレスを何個もって中身は覚えてないし、
そのせいで全部同じ値だしでどうすりゃいいの?

64:デフォルトの名無しさん
12/07/02 09:09:42.03
ぶっちゃけメモリ効率も速度も、多くの場合でArrayListは優秀。
例えば末尾要素だけを激しく追加・削除するならLinkedListが、
集合として扱うならSetが「教科書的に正しい」んだろうが。

LinkedListは、ArrayListに対してほとんど常に非効率。

HashSetの場合、ArrayList#containsはforループで走査するからいかにも遅そうだが、
HashSet#containsも実際には、要素の#hashCodeでフィールドの全走査、
さらに衝突したハッシュ値のLinkedList全走査するから、爆速ってわけじゃない。

要素が100万個ある、とかなら明らかにHashSetの方が速いだろうが、
メモリ効率は依然としてArrayListの方が良い。

なので、何も考えずにArrayList一択、というのは意外とうまくいく。

65:デフォルトの名無しさん
12/07/02 10:31:24.97
>>63
>  L.add(a);
  L.add(a.clone());

66:973
12/07/02 11:23:23.35
Java初心者です。
String配列をString型に変換したいです。また、String型に変換した物をdouble型に変換したいと考えております。
※現在、電卓アプリを作成しています。。。

String strBuf[] = new String[10];
String result = "";

例えばstrBuf[]の中身は下記のようになります。
strBuf[0] = "1"、strBuf[1] = "2"~中略~strBuf[8] = "9"、strBuf[9] = "0"

このような状態を一続きにしたいと考えております。 ※下記のようにしたいです。
result = "1234567890"

この後、resultをdoubleに変換。

よろしくお願いします。

67:デフォルトの名無しさん
12/07/02 13:30:13.49
>result = "1234567890"

for (String s : strBuf) result+=s[k];

>この後、resultをdoubleに変換。

Double.parseDouble(result);

まずはジャバの初心者用教本を一通り終えて常識的な使い方を覚えてみてはどうですか?

68:デフォルトの名無しさん
12/07/02 13:30:48.26
for (String s : strBuf) result += s;

69:デフォルトの名無しさん
12/07/02 14:53:27.04
入力されたURLが存在するか確かめる良い方法はないのでしょうか?
MalformedURLExceptionはただの文法チェックのようですし、javaにはURLが間違ってる場合その旨を伝える例外などはないんですか 

70:デフォルトの名無しさん
12/07/02 14:58:39.10
ないよ

71:デフォルトの名無しさん
12/07/02 16:37:31.50
>>69
HttpURLConnectionで接続してエラーが返ってきたらないだろう

72:デフォルトの名無しさん
12/07/02 16:40:45.62
if(((HttpURLConnection)(new URL("URLリンク(www.2ch.net)").openConnection())).getResponseCode() != 200)
{
System.out.println("ある");
}else{
System.out.println("ない");
}

73:デフォルトの名無しさん
12/07/02 16:44:49.45
>>69が信ずるところの「URLが存在する」の定義に沿って確認するしかないと思う。
確かめようとした瞬間にそのURLからリソースが得られる場合を存在するというのなら、
単にURLConnectionを開いて実際にデータが拾えるかどうかを確認すればいい。
ただ、この定義だと自身や通信経路やサーバの状態に依存するだろうから、
もし質問を重ねたいなら>>69はもう少し問題を明確にしたほうがいいだろう。

74:デフォルトの名無しさん
12/07/02 20:30:35.97
JAVAで正確な10mmを印刷するには何ピクセル必要ですか?

JAVAで印刷部分を実装中なのですが、Printableをimplementsして実装しています。
印刷内容は
 public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
のGraphicsに投げると印刷されるので
 Graphics2D g2 = (Graphics2D)graphics;
と2Dにキャストして、その後RectangleやLineなどで描写しています。

RectangleやLineは座標や幅を指定して長さや大きさを決めますが、印刷時に正確なミリ単位のラインなどを引きたい場合と考えています。
JAVA印刷における、LineやRectangleでミリ単位の指定方法がありましたら、教えていただきたいです。

75:デフォルトの名無しさん
12/07/02 20:49:28.42
jdbc driverをロードする際にclass.fornameでロードしますが、なぜわざわざリフレクションを使うんですか?
インスタンス化せずにstaticイニシャライザを実行したいからってことですかね

76:デフォルトの名無しさん
12/07/02 21:37:10.99
ついでにもうひとつ質問をさせていただきます。
Java@ResultSet == C#DataTableという認識であっていますか?

77:デフォルトの名無しさん
12/07/02 21:37:26.05
引数がすっげえ多いクラスがあって、どうにかならないかと思ったら


①テレスコーピング・コンストラクタ
コンストラクタをオーバーライドしまくっておく

②Jave Beans
とりあえず Object obj = new Object()で生成して
あとのメンバ変数はsetMemberで設定する



という方法があるのは分かりましたが、3つ目の方法としてBuilderパターンがあると知りました。
ですがBuilderパターンのメリットがよく分かりません。

結局は、void main (Strings[] args)側で、コンストラクタメソッドを呼び出して引数渡すんですよね?

78:77
12/07/02 21:51:24.53
なお、今作ろうとしているプロジェクトは、


・データ登録用の基本クラス
・基本クラスから独自メンバーを持つ継承クラス1
・基本クラスから独自メンバーを持つ継承クラス2
・基本クラスから独自メンバーを持つ継承クラス3


がございます。

79:デフォルトの名無しさん
12/07/02 21:59:25.73
>>77
Builderパターンって初期化の面倒なクラスを、Builderクラスで初期化するだけじゃないの?
そもそも、数回しか使わないのにデザインパターンって使う必要あるのかなと思った

80:デフォルトの名無しさん
12/07/02 22:29:41.50
Builderはオブジェクト生成のインタフェースと実装を分離したいときに使うものだよ。
DBアクセスとか帳票出力とかデバイスドライバみたいな、
同じ手順で異なるオブジェクトを作りたくて、それを利用する側にオブジェクトの作り方の違いを意識させたくない時に使う。

それが77の用途にあってるのなら使うといいよ。

81:デフォルトの名無しさん
12/07/02 22:33:34.45
>>74
PageFormat#getImageableHeight() あたりから計算するしか。

82:デフォルトの名無しさん
12/07/02 22:40:30.25
OSGiて使える?有望?

83:デフォルトの名無しさん
12/07/02 22:54:31.89
>>79
>>80
ありがとうございました

84:デフォルトの名無しさん
12/07/02 23:11:58.99
いえいえ

85:74
12/07/02 23:38:04.79
>>81
ありがとうございます。
ただ、getImageableは環境によってまちまちになるのと、あくまで描写エリアという考え方なので違うかなと。
1/72インチを単位として~という部分から、72ppiと仮定して実装してみたものの、印刷時に数ミリずれたりなど違うようです。

そもそも、RectangleのWidthやLine座標の1の違いが、1ピクセルなのかすら判断できず困っています。
難しいです。。

86:デフォルトの名無しさん
12/07/02 23:39:33.56
>>85
そんなあなたにJNI

87:デフォルトの名無しさん
12/07/03 00:07:40.50
>>77
ビルダーがぴったりと思われ
Effective Java 2nd ed. の Item 2
英語でいいなら書籍でググれば出てくる

デザインパターンというよりは、
名前付き引数やその省略時のデフォルトの値を付けられないJavaのイデオムとして使われる
欠点は、コード量が多くなること。それが許容できないなら、そのままで

88:87
12/07/03 00:14:21.84
すまんが
>英語でいいなら書籍でググれば出てくる
と言ったが、大事な2ページが飛ばされてるなw
名著だから買っとけ

89:デフォルトの名無しさん
12/07/03 00:35:46.03
>>82
よろしく

90:デフォルトの名無しさん
12/07/03 00:47:18.76
Jenkinsその他、Java系サーバがことごとくうるう秒で狂った話、
技術上の詳細まだ上がってないみたいだけど誰か知らない?

前スレでJavaにうるう秒は関係ないって言ってた奴出てこいよー。

91:74
12/07/03 01:04:00.25
>>86
JAVA単体では実現できないってことですか…

他の言語を覚えるのはともかく、いまからネイティブでのアクセスの仕方を学んだりするのは、かなりハードル高いですね。

92:デフォルトの名無しさん
12/07/03 06:33:03.42
>>90
俺だが何か?

93:デフォルトの名無しさん
12/07/03 06:47:02.43
Eclipse で以下のコードがコンパイルできないのですが、何が間違っているのでしょうか?



import java.util.ArrayList;


public class Hoge {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(42);
arrayList.add(123456);
int[] as = (int[])arrayList.toArray(new int[0]); // ここでビルドエラー
System.out.println(as[0]);
System.out.println(as[1]);
}
}

94:デフォルトの名無しさん
12/07/03 07:10:59.98
>>93
エラーメッセージぐらい書きなさいよ

ArrayListはObject型しか使えない
ArrayList<Integer>で変数宣言してるのに
なぜプリミティブ型のintに戻すのかよくわからない
intって書いてるとこをIntegerにすれば動くが
このプログラムでArrayListを使う意味もよくわからないな

95:デフォルトの名無しさん
12/07/03 07:47:07.97
>>90
それLinuxの問題。

96:デフォルトの名無しさん
12/07/03 08:35:45.43
>>87
>>88
ありがとうございます。


ただ、自分が作りたいものはデータ登録用のクラスなんですけれど、
全てのメンバーが、入力必須項目で空白(null)は弾くようにしているか、自動的に他のメンバーから計算される類のもので
よく考えれば、コンストラクタ呼び出し方に複数のバリエーションはありえないかもしれません・・

97:デフォルトの名無しさん
12/07/03 12:11:21.71
初めまして.
とあるプログラムを作っています.
出力が
1.0
1.0
1.0
0.5
0.2
0.14
0.07
0.049
0.035

1.0
1.0
1.0
0.5
0.2
0.12
0.12
0.036
0.048
となるようにプログラムを作ったはずなのですが,
最後4行が,
0.12000000000000001
0.12000000000000001
0.036000000000000004
0.04800000000000001
となってしまいます.
何度見直しても原因がわかりません.eclipseでもideoneでも結果は同じです.
教えていただけませんか.
URLリンク(ideone.com)

98:デフォルトの名無しさん
12/07/03 12:27:23.88
計算機イプシロンでぐぐれ

99:デフォルトの名無しさん
12/07/03 12:51:58.17
ググって計算機イプシロンの意味はなんとなくわかりました。
しかし、0.12000000000000001において
0.00000000000000001が計算機イプシロンだとおもうのですが、何故それが計算されて、足されたのか分かりません。
また、プログラムをどのように修正すれば
得たい結果が得られるでしょうか。



100:デフォルトの名無しさん
12/07/03 13:14:30.90
0.12を2進数に変換してみようか

101:デフォルトの名無しさん
12/07/03 14:35:49.46
十進数ならキリの良い小数でも、二進数だと循環小数だったりするから。
java.math.BigDecimalなら十進数で計算できて、有効桁数や丸めルールも
好きに設定できるから、使うといいよ。


102:デフォルトの名無しさん
12/07/03 15:51:09.10
Javaのdoubleは
0.11999999999999999555910790149937383830547332763671875

0.12000000000000000943689570931383059360086917877197265625
の間の数が用意されていない。
ソースに「0.12」と書くとJavaコンパイラは勝手に前者に書き換えてしまう。
そして後者が君の答えに一番近かったと判断されたのだろうね。

どうしても100等分した12にきっちりこだわるのなら、
double使ったプログラムごと捨てて作り直した方がいい。

103:デフォルトの名無しさん
12/07/04 00:42:42.59
>>102
double使って金がらみの計算するなんて自殺行為だよね。
何でdoubleなんかつかうんだろ。

104:デフォルトの名無しさん
12/07/04 01:14:46.34
金がらみの計算なんて何処にも書いてないが

105:デフォルトの名無しさん
12/07/04 02:05:02.20
>>104
別に書いてなくてもいいでしょ。

106:デフォルトの名無しさん
12/07/04 04:53:01.75
これはひどいw

107:デフォルトの名無しさん
12/07/04 05:06:07.83
URLリンク(ideone.com)
小町算なんだが、見てもさっぱりわからん。
どなたか解説して頂けませんか?

108:デフォルトの名無しさん
12/07/04 05:32:50.62
何が分からないのかによる
日本語が分からないのかJavaが分からないのか、
分かるところから書いてけ

109:デフォルトの名無しさん
12/07/04 09:59:32.26
TomcatでWebアプリを作っている場合で
セッション情報の一覧みたいなものは取得できるものでしょうか?
セッション情報のログイン情報を見てログインユーザー一覧などの
取得を想定しています。

110:デフォルトの名無しさん
12/07/04 10:15:37.42
>>109
自分のAPのサーブレットが入り口なのだからメモリかDBにでも必要な情報を書き込めば

111:デフォルトの名無しさん
12/07/04 10:18:13.52
>>110
やはり自分で管理するしかないですか・・・


112:デフォルトの名無しさん
12/07/04 15:09:56.98
あーあ…


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