X



Javaでわからないことを質問するスレ

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2013/03/21(木) 16:31:33.67
スレタイ通り

◆ 関連リンク ◆
とほほのJava入門
http://www.tohoho-web.com/java/index.htm
Javaの道(Java入門・リファレンス)
http://www.javaroad.jp/
JavaFAQ : Java に関するよくある質問とその回答集
http://javafaq.jp/
Java言語規定 目次
http://www.y-adagio.com/public/standards/tr_javalang/
Java SE5 API仕様
http://docs.oracle.com/javase/jp/1.5.0/api/
Java SE6 API仕様
http://docs.oracle.com/javase/jp/6/api/
Java SE7 API仕様(英語)
http://docs.oracle.com/javase/7/docs/api/
Java Tutorial(英語)
http://docs.oracle.com/javase/tutorial/
2015/06/30(火) 05:47:08.94
>>466
確かに。
エラー放置のC系統やスクリプト言語ならまだしも,構文とかエラーがうるさいJavaには適してないかもな
俺は潔く日食使ってるぜ
2015/06/30(火) 06:37:08.21
フォントを一斉変更するコードなんだけど、なにかダメなところある?
Windows 10に対応させるため、System.getProperty("os.name")は使ってない
コードが汚くてすまない

http://i.imgur.com/OFYc8CC.png
2015/07/03(金) 06:49:12.01
>>468
割と使えそうなコードだな
470仕様書無しさん
垢版 |
2015/07/03(金) 07:27:14.73
テキストじゃない時点で使えないだろw
2015/07/03(金) 08:08:07.58
Fontクラスって同じスタイルのフォントでも個別にインスタンスを作らなきゃならんのか面倒だな
JavaのGUIが流行らないわけだ
2015/07/04(土) 06:26:31.80
>>470
きっと文字数オーバーだったんじゃね?
2015/07/04(土) 12:38:12.85
>468
フォントを新しくセットするだけなら、もっと短くなる気がする。
毎回 new Font をする必要はない。
もし、フォントのスタイルが変わるのが嫌な場合は、
スタイルごとに配列かMapにFont#deriveFont(int style) の結果をキャッシュしておく。

Arrays.asListを繰り返してcontainsするならSetを一つ作ってcontainsのほうがいいような気がする。

public static void setFont(Font font){
UIDefaults uiDefaults = UIManager.getLookAndFeel().getDefaults();
Iterator it = uiDefaults.keySet().iterator();

while (it.hasNext()) {
String key=it.next().toString();
if (UIManager.get(key) instanceof Font) {
UIManager.put(key, font);
}
}
}
2015/07/06(月) 07:49:04.08
質問しておいてだんまり放置プレー
定番ですな
2015/07/06(月) 20:36:23.12
よく見たらちょっと変だった。
String key=it.next().toString();
じゃなくて
Object key=it.next();
でいいね。
2015/07/08(水) 18:44:48.63
基本的なことだと思うのですが教えてください。

class Test{
public static void main(String[] args){
Integer i1 = new Integer(10);
Integer i2 = i1;
System.out.print((i1==i2) + " ");
System.out.print((i1++) + " ");
System.out.print(i1==i2);
}
}

自信満々に結果を、出力結果を
true 10 true
と書いたのですが間違えました。
最後の真偽値は、falseだそうで。

なぜ、newしていないのにインスタンスが増えるのでしょうか?
477仕様書無しさん
垢版 |
2015/07/08(水) 20:02:19.62
オートボクシング インクリメント
2015/07/08(水) 20:53:41.13
出力するごとにi1とi2を出力してみればいいじゃん。
どこで何が変わってるかわかるでしょ。
2015/07/08(水) 23:08:38.71
分かりました。ありがとうございました。
480仕様書無しさん
垢版 |
2015/07/09(木) 09:13:07.12
インスタンスが増えたんじゃなく、値が1インクリメントされただけちゃうか?
2015/07/10(金) 04:14:35.87
identityHashCode
2015/07/10(金) 08:22:02.35
>>476
可能ならjdk1.4でやってみるとわかるかも
多分エラーになるはず
483仕様書無しさん
垢版 |
2015/07/10(金) 08:25:36.22
何故それでi1とi2が同じ中身を指していると思うのか?
2015/07/10(金) 16:22:19.92
レベルの低い質問が解決されても個々の意見が交わされるとさ質問したほうも恥ずかしくなるんだよ

だからもうやめてあげてほしい
485仕様書無しさん
垢版 |
2015/07/10(金) 16:50:17.85
valueOfを使わない子は嫌いです
2015/07/11(土) 07:34:36.91
レベルが低い質問とは思わない
結構良い質問だと思うよ
現に間違って回答してる人がちらほらいるし
2015/07/12(日) 12:05:03.37
>>483

それは、i1とi2が参照型で同じものを指していると思ったからだろう。
2015/07/12(日) 13:13:11.74
i1++;

int temp = i1.intValue();
temp++;
i1 = Integer.valueOf(temp); ←ここでインスタンス生成

UnBoxingとAutoBoxingが作動することでこのような流れが起きる(らしい)
2015/07/12(日) 14:54:47.82
javap -v Testで見れば、

途中略・・・
59: invokevirtual #12 // Method java/lang/Integer.intValue:()I
62: iconst_1
63: iadd
64: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
途中略・・・
とかになってるから「らしい」じゃなくてそのとおりね

javapは殆ど使った事ないけど改めて使ってみると面白いわ
2015/07/12(日) 20:01:16.08
public class CalcLogic {
public static int tasu(int a, int b) {
return (a + b);
}
public static int hiku (int a, int b) {
return (a - b);
}
}
クラス名をコピペでつくってもクラス名と同じにしろエラーが出ますなぜですか
491仕様書無しさん
垢版 |
2015/07/12(日) 22:54:01.57
どの質問者も
なんでソースコードのコピペはするのにエラーメッセージはコピペしないんだろうな
2015/07/13(月) 03:12:58.76
Javaで雇われて飯が食えるレベルってどんくらいの事が出来ればいい?
2015/07/13(月) 05:36:30.61
ハロワでプログラミングの職業訓練を受けて証明書持ってるならOK
494仕様書無しさん
垢版 |
2015/07/13(月) 08:04:21.10
>>490
どんなJavaのコンパイラ使ってるの?
オレも「クラス名と同じにしろ」という上から目線な
エラーメッセージ表示で罵倒してくれるロリで巨乳なコンパイラが欲しい
2015/07/14(火) 18:52:28.48
class X {void method() {System.out.println("X");}}

class Y extends X {void method() {System.out.println("Y");}}

class Z extends Y {void method() {System.out.println("Z");}}

class Test {
public static void main(String[] args) {
X x = new X();Y y = new Y();Z z = new Z();

x.method();y.method();z.method();

Y typeY_InstanceZ = (Y) z;
typeY_InstanceZ.method();

}
}

結果

X
Y
Z
Z

最後の結果をZではなくYにする方法ってありますか?
なんというか、総体的なインスタンス(X+Y+Z)のYクラスの外側についた
Zクラスをこそぎ落とすような方法があれば出来ると思うのですが。
2015/07/14(火) 19:01:09.73
staticメソッドなら出来ますね。
2015/07/14(火) 19:39:28.42
できないと思うが
なんでまたそんなことしたいんだ?
2015/07/14(火) 20:25:01.81
初期化や型名やコメント抜かして書かれるとすごく読みづらい
2015/07/14(火) 22:34:37.25
>>497

たとえ話としてですが、Soldier->Knight->Lord に進化するようなクラス定義されたオブジェクトがあるとして
なんらかの理由で前の進化形態に下がった時、Lordだけそぎ落とせばポリモフィズムだな、と思いました。
でも、元に戻せる(Lordだけくっつける)機能がないと意味がないし、
また、インスタンスの扱いって明確性が低い感じがあるので(あるインスタンスを別の参照型変数で扱ったり)、
サブクラスのインスタンスだけ外したり、くっつけたりしてたらますます訳が分からなくなりそうだし、
インスタンスのためにヒープに用意されるメモリ領域の問題もあるだろうし…。

教えてくださってありがとうございました。失礼しました。
2015/07/15(水) 00:36:59.33
>>499
はたしてそれが多様性といえるかはまぁ、置いておくとして
実際に作りたいものがその例のとおりなら設計を見直したほうがいいかもな

まぁやるとしたら
各クラスに進化後のオブジェクト返す機能と
退化後のオブジェクト返す機能とを実装して管理するとかじゃね
2015/07/15(水) 14:30:59.59
class X {
public void method() {System.out.print("X ");}
public X rankUp() {return new Y();}
public X rankDown() {System.out.println("不可能");return this;}
}

class Y extends X {
public void method() {System.out.print("Y ");}
public X rankUp() {return new Z();}
public X rankDown() {return new X();}
}

class Z extends Y {
public void method() {System.out.print("Z ");}
public X rankUp() {System.out.println("不可能");return this;}
public X rankDown() {return new Y();}
}

class Test {
public static void main(String[] args) {
X i1 = new Z();
i1.method();
i1=i1.rankDown();i1.method();
i1=i1.rankDown();i1.method();
i1=i1.rankUp();i1.method();
}}

結果
Z Y X Y

何の問題もなかった。
2015/07/15(水) 19:53:32.79
>たとえ話としてですが、Soldier->Knight->Lord に進化するようなクラス定義されたオブジェクトがあるとして
>なんらかの理由で前の進化形態に下がった時、Lordだけそぎ落とせばポリモフィズムだな、と思いました。

違うと思う
2015/07/15(水) 21:15:20.44
C#のnew修飾子に相当するものがJavaにはないからね・・・
504仕様書無しさん
垢版 |
2015/07/15(水) 22:36:11.08
ごめんなさい、
javaでswingを使いたくて調べてるんですが、誰か教えていただけませんか?
java自体初めて学ぶもので、何を勉強したらいいのか…

swingを使うとなるとアプレットになってしまうんですか?
アプレットだと自宅のPCで動作しないので困ってます…
2015/07/15(水) 23:19:06.17
アプレットにしなくてもswingは使えるよ。
506仕様書無しさん
垢版 |
2015/07/15(水) 23:33:48.82
何故Javaを選んだ?
JavaはサーバーサイドのJSPか
Java言語のAndroidアプリくらいしか
方向性はないぞ?
Javaでのデスクトップアプリは使い物にならないと何年も昔に廃れた分野だぞ
今更覚える価値がないし
507仕様書無しさん
垢版 |
2015/07/15(水) 23:35:42.41
Windowsでデスクトップアプリ作りたいならC#かVB.NETなどの.NET Framework使わないと
2015/07/15(水) 23:37:59.23
アプレットとか今時どのブラウザも許容してないし
509仕様書無しさん
垢版 |
2015/07/15(水) 23:54:53.02
おお、みなさんお返事ありがとうございます!
大学の授業の一環で作ることになってます
デスクには向いてなかったのかぁ…

今使用してる参考図書が06年ものなので新しいものを購入したいのですが、
よければ入門者にオススメの本ってありますか?
ちなみにCの基本を学んだ程度なので、少しなら理解力はあります
2015/07/16(木) 04:51:12.91
え、本なんか買うの?
「java applet tutorial」「java applet 入門」とかでググレば沢山出てくるじゃん
511仕様書無しさん
垢版 |
2015/07/16(木) 09:53:35.70
ネットだけでもいいかと思ったんですが、個人的に本の方が勉強しやすいので
みなさん買わないんですか?

自分でも調べて目星はつけたのですが、実際に使った方がいるなら感想を聞きたかったです
それにしても、やはりアプリ作成にはアプレットは必須になるんですかね…
AWTだけじゃやっぱり無理かなぁ……
2015/07/16(木) 16:44:15.84
デスクトップアプリとアプレットは別物
デスクトップアプリはWindowsなどのOS上で使うもの、Swing使うならJFrameとかをベースに作る
アプレットはウェブブラウザ上に表示させて使うもの、Swing使うならJAppletをベースに作る
アプレットはウェブページのコンテンツの一部でありアプリそのものではない
GUI方面ではandroid以外はオワコンなJavaを使うのに本を買うのはバカげている
紙の本がいいなら図書館で借りるくらいで十分
2015/07/16(木) 21:04:14.02
>>511
本は買わない

AWTやアプレットなど、そんな古語を話されても困る
15年前の世界線から君は来たのか?
514仕様書無しさん
垢版 |
2015/07/16(木) 21:46:42.01
あの後>>510さんを参考に調べてみたのですが、swingの使い方がやっと理解できました
JFrameにアプレットは無くても良かったんですね!

>>512
別物ということは知りませんでした
図書館の本もどれも古いものだったのですが、廃れてきてるために新刊が減っているんですね

>>513
全くお恥ずかしいです…
javaについての知識は皆無だったもので…


回答してくださった方々、本当にありがとうございました!
とても参考になりました
もう一度色々調べなおしてみます!
515仕様書無しさん
垢版 |
2015/07/17(金) 00:28:36.10
Javaでコード書いたらオラクルさんにお金とられてまうん?
2015/07/17(金) 04:31:50.89
OpenJDKもあるじゃないか
2015/07/17(金) 05:52:17.01
「Java」という単語は商標だからね
商標ってことは「Java」を名乗る場合は
518仕様書無しさん
垢版 |
2015/07/18(土) 10:53:28.18
いくつかの業務のプロジェクトを見ると
dbや
utilなど共通したパッケージ分けをしています
しかし詳しい複雑な部分は解説がないと
なんだかよくわかりません

パッケージというかファイル構成の基本って言うのを覚えたいんですが
参考になるものは何があるんでしょうか?
2015/07/18(土) 13:49:16.47
ディレクトリ構成
https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
パッケージ構成
https://en.wikipedia.org/wiki/Package_principles

まあ頑張って
2015/07/18(土) 13:54:06.93
日本語ってないんでしょうか
2015/07/18(土) 14:05:07.20
ググっても分からんのなら諦めろ
2015/07/18(土) 19:26:57.94
OS問わずつぶしが利くからJavaもすてたもんじゃないだろ
ガラケーのアプリもJavaだったし

世の中には始まってすらいない言語を会社に強要される会社もあるしFacebookのD言語とか
2015/07/18(土) 19:42:41.98
>>522
「会社に強要される」って
その考え自体がバッカみたい
2015/07/18(土) 20:06:31.63
SimpleDateFormatクラスのパターンなんですが、
h(小文字):午前/午後の時(1-12)
H(大文字):一日のおける時(0-23)

K(大文字):午前/午後の時(0-11)
k(小文字): 一日のおける時(1-24)

なんでこうなってるんだろう?

h: 午前/午後の時(0-11)
H: 一日のおける時(0-23)

k: 午前/午後の時(1-11)
K: 一日のおける時(1-24)

こうやって、
時間はHかk
小文字は午前午後、大文字は一日における時間。
Kは1から開始、Hは0から開始、とした方が覚えやすいのに。
2015/07/18(土) 20:34:04.80
>>523
うるせえニート
2015/07/18(土) 20:37:04.70
phpでもやってろ雑魚が
2015/07/18(土) 21:06:07.88
class Test {
public static void main(String[] args) {
String data = "This is a pen.";
String[] ary = data.split("\\S");
System.out.println(ary.length);

}
}

答えは8だった。
正規表現ムズイ、と思ったが、splitに該当しない最終の表現(この場合、aの後のスペース)の後は
splitの引数にした正規表現は数えないと覚えておけばいいのか。
528仕様書無しさん
垢版 |
2015/07/18(土) 21:40:06.75
>>527
そうみたいね。ややこしい。
2015/07/18(土) 22:03:09.56
質問、Java本体はいつまでサポートされますか?
530仕様書無しさん
垢版 |
2015/07/18(土) 23:30:00.00
>>529
最新のJava8は2017年9月までサポートされる
2015/07/19(日) 07:54:59.24
>>524
頻度の高い方が小文字で、逆は大文字
2015/07/19(日) 07:56:27.02
と適当に答えてみた
2015/07/19(日) 22:52:41.01
そもそもkのパターンって使うことあるか?
534仕様書無しさん
垢版 |
2015/07/20(月) 01:28:05.21
そういや、悪名高きSimpleDateFormatに代わるものがJava8で出たんだっけか。
2015/07/20(月) 02:33:53.98
覚える必要あんの?必要になったら公式ドキュメント読めばいいだけだろw
2015/07/20(月) 02:36:47.46
生半可に覚えようとするから間違える覚えないようにしておけば調べて間違えない

要領の違いだな
2015/07/20(月) 09:43:35.53
そもそもなんでこれ k なんだ?
2015/07/20(月) 18:10:29.55
アナログ時計の時刻は1〜12の表記を使う

デジタル時計の24H表記は0〜23の表記を使う

日本語圏では午前0時という表記をすることもある(曲や小説のタイトルなどで見かける)
すなわち午前/午後で0〜11の表記が存在する

24H表記で1〜24の範囲で表記することって何かあったっけか
2015/07/20(月) 18:16:02.88
時刻 - Wikipedia
https://ja.wikipedia.org/wiki/%E6%99%82%E5%88%BB
>諸外国では、時刻表や放送番組中の具体的な表示や呼称を24時式で表す場面が少ないため、日常生活では24時間表示はあまり用いられない
2015/07/20(月) 18:20:53.83
午前と午後 - Wikipedia
https://ja.wikipedia.org/wiki/%E5%8D%88%E5%89%8D%E3%81%A8%E5%8D%88%E5%BE%8C

日本式と英米式で違いか
日本の午前0時1分は英米では午後12時1分って表記するようだ
日本は0〜11を使い英米では1〜12を使うってことか
2015/07/21(火) 01:16:18.00
>>540
日本でいう1階が Ground Floor で
2階が First Floor なのと同じようなもんか
2015/07/21(火) 02:01:07.67
つまり

英米では午前午後表記は1〜12で、24時間表記もするのでそれにあわせて h, H が割り当てられていると
んで、英米では24時間表記は日常ではあまり使用されず午前午後表記が多いからタイプの楽な小文字 h が午前午後

日本などの一部の国では午前午後表記は0〜11で使われるからタイプの楽な小文字 k が割り当てられ

どこの国が使ってるのか不明だが、おまけ的な感じで1〜24表記を K に割り当てた

こんな感じか
2015/07/21(火) 02:02:39.72
日本では25時とか26時とか24時を超えた表記があるってことをOracleさんに教えて修正してもらわなきゃ!
544仕様書無しさん
垢版 |
2015/07/22(水) 15:07:32.80
>>523
おいゴミ
偉そうなことほざくならD言語で面白いもん作ってみろ
2015/07/22(水) 20:15:40.17
>>544
「面白い」が基準なのね、バッカみたい
546仕様書無しさん
垢版 |
2015/07/23(木) 01:49:41.16
>>545
はいおまえの負け
Javaすらまともに扱えないゴミにD言語なんか難しすぎたかw
2015/07/24(金) 00:57:08.81
おまえら中学生かよ
2015/07/25(土) 10:34:52.30
Eclipse + Gradleって使い勝手どうですか?
Eclipse + Mavenに比べてどうですか?

個人的には後者にはあんまり良い思いがない
CLI側だけでMaven使うのは楽だけど、Eclipse側からも使おうとするとおかしな現象やバグに色々と悩まされた思いがある
単に仕組みを良く理解していなかっただけかもしれんけどさ

アバウトな回答で良いので、両方経験した人、前者と後者どっちが印象良いですか?
549仕様書無しさん
垢版 |
2015/07/25(土) 19:06:45.01
年収1,000万円以下はレベル低すぎ
・同業者の1.2倍の報酬を提示
・同業者の2倍の工数を提示
・自社会議と伝えて毎日定時帰宅
・不利益な現場は即行解約
・契約時間外に学習
・契約時間外に副業
・著作権譲渡拒否
・示談および裁判報酬
2015/07/29(水) 19:39:07.67
Math.minってなんですか
2015/07/29(水) 22:18:52.83
マスミン
2015/07/29(水) 22:44:29.81
マスマックス!
2015/07/30(木) 15:33:44.80
凄い基本的な質問なんですがJavaのプログラムで
int static 変数名 〜〜〜
が10個くらい並んでいるプログラムをどう思いますか?

お願いしますm(_ _)m
2015/07/30(木) 16:29:06.24
それがいいならいいプラグラム
それがダメならダメプログラム
2015/07/30(木) 23:43:55.08
>>553
staticはコードスメル(激臭)
2015/07/31(金) 18:50:49.78
ファイル出力して、ftpでファイルputする処理を作るんだけど、javaのバッチ処理でファイル出力までして、バッチ起動シェルなどでftp接続、転送処理するのが簡単ですかね?

あと逆のftp鯖からファイルをgetしてきて取り込むバッチも同じような作りがいいですかね?
誰か最も一般的な方法を教えてください。
2015/07/31(金) 23:49:20.36
ググれ
2015/08/01(土) 00:20:41.42
ftpはセキュリティ的に色々と危険だというのでftpsやsftpというプロトコルを
2015/08/01(土) 19:41:36.20
コンストラクタをオーバーロードする時に1つ1つpublicをつけないと駄目なんですか?c
2015/08/01(土) 21:04:15.18
public?
super()じゃなくて?
561559
垢版 |
2015/08/02(日) 02:25:51.58
>>560
課題の解答例で二個目と三個目が
public XXX()ではじまってたので
2015/08/02(日) 03:04:33.31
アクセス修飾子について勉強しなされ
2015/08/05(水) 18:32:03.37
IT業界で今まで開発をやったことなかったんだけど、今度javaの開発要員でアサインされることになりました。
フレームワークでの開発だそうで、勉強しといてなと言われましたが、勉強の手順としてはj2se→j2ee(サーブレット、jsp)→フレームワークという手順でよいですか。
書店でspringフレームワークの本とか見つけましたが、行きなりそっから入った方が効率よいですかね?
9月に新現場に配属されるので夏休み中に勉強しようかと思ってます。
2015/08/05(水) 22:23:17.18
>>563

以下、俺の勝手な意見
他の人の意見も参考に

どのフレームワークかは現場に聞く
JavaScript、css、データベース、開発ツール、ソース管理
はどんなもの(ライブラリや製品)を使うのかも聞く

浅く広くやっておけばいい

本は買わずに、とりあえず「ドットインストール」
無ければ、「○○入門」「○○ 基礎」「○○ hello world」とかでググってブログを漁る
2015/08/06(木) 15:13:32.27
>>564
広く浅くか、確かに夏休み1週間で勉強したとこで大したことはできないでしょうし。
データベースもやらないといけないですね。
アドバイスありがとうございます
2015/08/07(金) 08:48:26.77
いやまずJava勉強すべきでは
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況