[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/01 17:29 / Filesize : 259 KB / Number-of Response : 1010
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

☆★Java質問・相談スレッド174★★



1 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 14:12:12.75 ID:I0KrLWwV.net]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 (p)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。


前スレ
★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1429709719/

601 名前:デフォルトの名無しさん [2015/09/14(月) 02:37:39.18 ID:eF8Eqhon.net]
Javaプログラミング能力認定試験
www.sikaku.gr.jp/js/jv/exam/content/

って、1-2-3級あるんですが、Oracle公式のJavsの資格(SEのBronze,Silver,Gold)でいえばどれくらいのランクに当たりますか?

602 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 06:59:41.72 ID:2z9D2B08.net]
Javaのデスクトップアプリ開発に未来はあるの?
Swing Application FrameworkもJava8に来なくて死亡したっぽいし、
JavaFXは今どうなってんのかよくわからんし、関連書籍もないし、
もう諦めて違う言語に行った方が良いのか?

603 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 07:14:52.09 ID:geV2gEFM.net]
ないよ
デスクトップアプリ自体もう終わりだからWebに行った方がいい
開発環境やデザインツールなどプロ向けのツールはデスクトップアプリとして残るだろうけど、
そういうのもElectronのようなWebベースの技術に移行しつつある

604 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 07:30:19.02 ID:2z9D2B08.net]
ありがとう、本格的にWeb系に乗り出すことにしよう
実はElectronは触ったんだけど、最近出たnode.jsのv4.0で動かなくて困ってたところで、
自信のあるJavaに戻ろうとしてたんだが、未来がないならやめた方が良さそうだな

605 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 10:46:34.19 ID:vBOHCP4p.net]
すみません質問です

「始め」と「終り」の数値を入力するとその間の数値を足した合計を表示する
プログラムを作りたいのですがコンパイルエラーになってしまいます
どこに文法の誤りがあるんでしょうか

606 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 10:47:27.47 ID:vBOHCP4p.net]
import java.util.Scanner;

class Keisan {

public static void main(String[] args) {

Scanner suutiha = new Scanner(System.in);


System.out.println("始めの数値を入力");

int hajime = suutiha.nextInt();

Scanner suutio = new Scanner(System.in);

System.out.println("終りの数値を入力");

int owari = suutio.nextInt();

System.out.println("始め:" + hajime);
System.out.println("終り:" + owari);

Suutigoukei hajiowa = new Suutigoukei();

hajiowa.hajimeowari();

System.out.println("出力:" + goukei);

}
}

607 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 10:47:56.86 ID:vBOHCP4p.net]
class Suutigoukei {


int hajime;
int owari;

Suutigoukei() {

for(i = hajime; i <= owari; i++){

goukei = hajime + owari;
}

int hajimeowari();
}
}

608 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 10:49:51.26 ID:vBOHCP4p.net]
C:\javabook\arugo>javac arugo1_1.java
arugo1_1.java:63: エラー: ';'がありません
int hajimeowari();
   ^

609 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 12:32:12.00 ID:eZRCO9Fa.net]
>>600
メッセージに出てる



610 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 12:58:06.34 ID:VtHzXlkf.net]
>>600
java8ならこれでも
IntStream.range(hajime,owari).sum()

携帯からでrangeの仕様未確認なので未満か以下は自分で確認して。

611 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 14:46:52.24 ID:sjAEfYEf.net]
>>600
・Suutigoukeiのコンストラクタで計算してるのに、Keisanではhajimeowariなる存在しないメソッドを呼んでる
・変数goukeiがどこにも宣言されていない
・int hajimeowari();←Javaではこのような書き方はできない
・for文の初期化式に変数iの型指定がない
・そもそもそのfor文では目的の計算ができない

随分奇妙なコードに見える
どう直せば正解なのか分からないので、かなり勝手に直したが、とりあえずこれで動く
https://ideone.com/L1e97K

612 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 14:56:27.58 ID:vBOHCP4p.net]
>>606

うおおありがとうございます

全然できてませんでしたね......
まだ始めたばかりでわかんないことだらけです

613 名前:デフォルトの名無しさん mailto:sage [2015/09/14(月) 16:46:55.74 ID:BYqPWjqb.net]
>>605
rangeはendExclusiveだからowari+1じゃね?

614 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 16:08:14.54 ID:Qf+4z0r0.net]
$('.step-list').click(function(){
var ここ = $(this).index();
$('.step-list').removeClass('active');
$(this).addClass('active');
$('.explain').removeClass('active');
$('.explain').eq(index).addClass('active');
});

これなんだが
「ここ」って書いてある変数名はどこで作用してるんだ?
このコードだと箱の意味をなしてなくない?

615 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 17:35:29.67 ID:nDixVim1.net]
jqueryさんですか

616 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 17:53:48.07 ID:llkENHlN.net]
質問です

配列の男性と女性の人数をそれぞれ求めたいのですが
実行結果が思うように出ません助言お願いします

617 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 17:56:09.05 ID:llkENHlN.net]
class Danjo {

public static void main(String[] args) {

String[] n = {"男","男","女","男","女"};

int dangou = 0;
int jogou = 0;

int men = n.length;
int women = n.length;


for (int i=0; i<n.length; i++){
if(i == men){
}else if(i == women){

}

System.out.println("男性:" + dangou);
dangou++;

System.out.println("女性:" + jogou);
jogou++;
}
}
}

618 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 17:57:52.64 ID:EQXALWLy.net]
ここは地の果て

619 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 17:58:26.74 ID:llkENHlN.net]
実行結果

C:\javabook\arugo>java Danjo
男性:0
女性:0
男性:1
女性:1
男性:2
女性:2
男性:3
女性:3
男性:4
女性:4



620 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 18:04:13.07 ID:P5rty3ac.net]
>>613
エリア81か

621 名前:デフォルトの名無しさん [2015/09/15(火) 18:07:29.17 ID:jl5p0EYA.net]
>>613
流されてオレ

622 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 18:22:19.56 ID:Qf+4z0r0.net]
>>610
そうjquery
スレ見当たらんかったからここの人ならわかると思って聞いてみた

ここって場所には本来indexって文字が入っていた

623 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 18:43:24.47 ID:EQXALWLy.net]
>>617
残念だけどここは全く見当外れのスレ
ここは地の果てアルジェリア

624 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 19:25:34.39 ID:Ymt5Re5v.net]
インスタンス化がいまだにわからんねえな

625 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 19:36:07.69 ID:mmb+wRKL.net]
$('.step-list').click(function(){
var index = $(this).index();
$('.step-list').removeClass('active');
$(this).addClass('active');
$('.explain').removeClass('active');
$('.explain').eq(ここ).addClass('active');
});

ここじゃないのん?

626 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 20:17:34.78 ID:6DkDY+/l.net]
>>612
わけがわからない。配列中に男が見つかれば dangouに+1、女が見つかればjogouに+1したいという前提で、
class Danjo
{

public static void main(String[] args){

String[] n = {"男","男","女","男","女"};

int dangou = 0;
int jogou = 0;


for (int i=0; i<n.length; i++)
{
if(n[i].equals("男"))
{
++dangou;
System.out.println("男性:" + dangou);
}
else if(n[i].equals("女"))
{
++jogou;
System.out.println("女性:" + jogou);
}
}
}
}

627 名前:デフォルトの名無しさん [2015/09/15(火) 20:24:10.06 ID:gCyS4ICg.net]
>>612
https://ideone.com/cdWkBk

628 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 20:28:50.51 ID:6DkDY+/l.net]
int dangou = 0; //dangou++で使われてる。
int jogou = 0; //jogou++で使われてる。

int men = n.length; //5、ずっと5
int women = n.length; //5、ずっと5

for (int i=0; i<n.length; i++)
{
if(i == men){}else if(i == women){} //menだろうがwomenだろうが何もしていない。

//ループの回数だけ、以下の処理が行われてる。
System.out.println("男性:" + dangou); //1回目は男性:0
dangou++; //"男性:〜"を表示した後に+1してる。
System.out.println("女性:" + jogou); //1回目は女性:0
jogou++; //"女性:〜"を表示した後に+1してる。
}//forループ終わり

629 名前:デフォルトの名無しさん [2015/09/15(火) 22:09:22.99 ID:9izTs0Mt.net]
Javaでサーボ制御って出来るの?



630 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 22:43:06.24 ID:3V0RbiNo.net]
ケイオスは構成がヘタクソだけど、
シャロに比べれば各キャラのその場その場の行動はまあ理解できるんだよね

631 名前:デフォルトの名無しさん mailto:sage [2015/09/15(火) 23:15:27.68 ID:0UooUqqy.net]
>>624
ロボット制御はできるよ、リアルタイムJavaもあるし

632 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 00:33:28.60 ID:2rbBdPp9.net]
>>593
じゃあそういう関数は無いということですか
2. は、velocity(vmファイル)内で記載しているので、値は出力されます
ただ、\nを置換しようとするとうまく行きません
pageInfo.setPageTitle("abcde\nfghij"); ←Java

$pageInfo.pageTitle.replace('a','b') → bbcde\nfghij
$pageInfo.pageTitle.replace('\n','\r\n') → abcde\nfghij

$pageInfo.pageTitle.replace('\n','\rn') → $pageInfo.pageTitle.replace('\n','\r\n')
$pageInfo.pageTitle.replace(\n,\r\n) → $pageInfo.pageTitle.replace(\n,\r\n)


>>595
javaではなくて、velocity内でやりたいのです

633 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 00:34:42.15 ID:2rbBdPp9.net]
返信ありがとうございます。

>>593
じゃあそういう関数は無いということですか
2. は、velocity(vmファイル)内で記載しているので、値は出力されます
ただ、\nを置換しようとするとうまく行きません
pageInfo.setPageTitle("abcde\nfghij"); ←Java

$pageInfo.pageTitle.replace('a','b') → bbcde\nfghij
$pageInfo.pageTitle.replace('\n','\r\n') → abcde\nfghij

$pageInfo.pageTitle.replace('\n','\rn') → $pageInfo.pageTitle.replace('\n','\r\n')
$pageInfo.pageTitle.replace(\n,\r\n) → $pageInfo.pageTitle.replace(\n,\r\n)


>>595
javaではなくて、velocity内でやりたいのです

634 名前:593 mailto:sage [2015/09/16(水) 01:09:31.60 ID:53gFD3yJ.net]
>>628
下半分は何が言いたいかわからないけど、a は b に replace できるのに改行文字は変換できないみたいってことね。

そもそもtitleに改行が入ってるとブラウザ上の表示(タブ?)はどうなるの?
replaceメソッドのソースは見てみた?velocityのユーザーグループに聞いてもいいし。

635 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 07:02:02.61 ID:hNGXxUVW.net]
>>628
velocity忘れちゃったけど\nってシングルクォーテーション内でも改行コードとして扱われるんだっけ?
普通は理由がなければダブルクォーテーション使うと思うんだけど。

636 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 08:58:45.31 ID:hQm/LCsG.net]
>>621>>622

ありがとうございます
参考にしてもう一回書いてみます

637 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 09:45:01.94 ID:XpDSc6d+.net]
>>631
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34900&forum=12
ここに書いてあるね

638 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 09:46:26.46 ID:XpDSc6d+.net]
>>631
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34900&forum=12
ここに書いてあるね

639 名前:デフォルトの名無しさん [2015/09/16(水) 11:33:18.31 ID:3wc04D4s.net]
ソニック速報は更新率を売りにしてるけどアルファルファには劣るやろ



640 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 11:43:07.86 ID:hQm/LCsG.net]
重ねて質問すいません

>>621のコードを実行すると
男性:1
男性:2
女性:1
男性:3
女性:2

となるんですが

合計値である
男性:3
女性:2
だけを表示させるにはどうしたらいいんでしょうか

641 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 12:05:30.71 ID:+GDlSzOv.net]
JAVAの仕様で、合計だけまとめて表示することはできないのでほかの言語でやりましょう

642 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 12:16:07.33 ID:XpDSc6d+.net]
>>635
手当たり次第にprint文書いて試してみたら

643 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 12:45:04.72 ID:olYwdYzo.net]
繰り返し実行するfor文の中にSystem.out.println()という出力するための文が書いてあるから
繰り返しただけ出力が実行されてるんだろ
これをfor文の外に出せよ

根本的に頭が悪すぎるだろ
プログラミングに向いてないんじゃないの

644 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 13:14:54.95 ID:hniOduwL.net]
猿なんだろ

645 名前:デフォルトの名無しさん [2015/09/16(水) 13:41:13.16 ID:hQm/LCsG.net]
>>638の指摘で無事解決できました
ありがとうございます

646 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 14:39:27.87 ID:WFgkUoFD.net]
>>640
いえいえどういたしまして。
またいつでも来てくださいね^^

647 名前:デフォルトの名無しさん [2015/09/16(水) 21:54:47.08 ID:qDuRZ+uu.net]
ファクトリーメソッドとかでもいつも思うんだけど

なんかの基本クラスとその派生クラスがあるとき、
基本クラスの中で 派生クラスを呼び出すのって
邪悪なこと? それともよくやるテクニック?

これでいつも悩むので 誰かオレを導いてくれ・・・

648 名前:デフォルトの名無しさん mailto:sage [2015/09/16(水) 23:03:09.28 ID:9fL6Ueyi.net]
基本クラスの中で、派生クラスを呼び出すのは、あり得ない

普通、派生クラスの中で、基本クラスを呼び出す。
super(), base()など

普通、derived()なんて関数はない

649 名前:デフォルトの名無しさん [2015/09/17(木) 07:27:27.72 ID:6x6sM1Oz.net]
Javaってそういうのだめなの?
C++ではよくやるよ?



650 名前:デフォルトの名無しさん [2015/09/17(木) 07:33:39.83 ID:o/COYXih.net]
>>642
class Animal {
 Animal createAnimal(String name) {
  if (name.equals("わんわん")) {
   return new Dog();
  }
 }
}
class Dog extends Animal {
}

こういうやり方なら
パラメータによるファクトリメソッドと呼ばれてるよ。
派生クラスでcreateAnimalを上書きすることできて
柔軟な実装だよ。

651 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 09:42:25.24 ID:6VOBLfbC.net]
>>645
いいの?
それ、いつも罪悪感があったんだけど、赦されるの?

652 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 11:19:54.86 ID:wKtEswkf.net]
いいんだよ

653 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 11:41:28.76 ID:lTJfarla.net]
>>645
こんなの絶対ダメ
cresteAnimalはstaticメソッドなんだから派生クラスで上書き(override)なんて出来ないし、柔軟でも何でもない

654 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 11:47:03.57 ID:FXTJoMLp.net]
ファクトリークラスを別に設けるのを書き損じたんだろ

655 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 12:19:45.02 ID:6VOBLfbC.net]
>>649
やはり赦されないの?
ファクトリーメソッドはファクトリークラスをいちいち作るべきなの?

656 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 13:02:58.84 ID:4os4lvOB.net]
>>650
作ります

657 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 18:34:04.45 ID:n3PeWc41.net]
今こういう理解をしているんですが、間違いがあれば指摘していただけないでしょうか。

1.実行される順番は、staticイニシャライザ → インスタンスイニシャライザ → インスタンスコンストラクタ。
2.プリミティブ型とString型は定数プールに作られて、それを参照するためのアドレスがスタックに置かれる。
3.参照型はヒープに実体が作られて、それを参照する為のアドレスがスタックに置かれる。
4.Stringや参照型を比較する際、==では、実体を指しているアドレスの値が同じか比較。 equasでは、実体の持つ情報(文字列やプロパティの中身)が同じかどうか比較。

658 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 18:46:03.73 ID:FXTJoMLp.net]
>String型は定数プールに作られて、それを参照するためのアドレスがスタックに置かれる。

何をわけのわからんこと言ってるんだおまいは

659 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 18:55:19.24 ID:n3PeWc41.net]
>>653
すみません、
newしない場合は定数プールに、newした場合はヒープでいいんでしょうか。

わけのわかる段階を目指してる段階なので・・・・



660 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 19:18:04.59 ID:FXTJoMLp.net]
>>654
定数プールなんてものは無い
定数はインターンのプールを使ってはいるけど

661 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 19:29:41.08 ID:n3PeWc41.net]
インターンプールというのは構造体みたいなのでしょうか?
例えば、int a,b,cやString d,e,fという変数があれば、
int{
a=1,b=2,c=3,
}
String{
d="文字1";
e="文字2";
f="文字3";
}
のように保存されていき、
new Integer(a)みたいにボクシングすると、ヒープに数値、スタックにヒープのアドレスが記録されるという感じですか?

662 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 19:33:43.31 ID:yBcFvURc.net]
仕様みると定数プールあるよ
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4

663 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 20:11:50.31 ID:NGgNXWj0.net]
public class A{
public static final String VALUE = "ABCD";
}
public class B{
public static final String VAlUE = "ABCD";
}

public class Main{
public static final String VALUE = "ABCD";
public static void main(String[] arg){
String value = "ABCD";
System.out.println(value == VALUE); // ?
System.out.println(VAULE == A.VALUE); // ?
System.out.println(A.VALUE == B.VALUE); //?
}
}

664 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 20:24:27.54 ID:n3PeWc41.net]
>>658
この場合はVALUEは全部定数プール(=インターンプール?)で、文字列の値が同じなので、value/A.VALUE/B.VALUEは同じ場所を参照して、==だとtrueでいいんですよね?
public class A{
public static final String val = new String("ABCD");
}
ってすると、valはヒープに記録されるので、==ではfalse、equalsではtrueに。

665 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 20:36:49.59 ID:zGz+EkSN.net]
イスタンブールが構造体に見えた

666 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 21:02:51.50 ID:5wmHlkvS.net]
医者の卵のプール

667 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 21:18:46.58 ID:n3PeWc41.net]
C#の情報を見つけたんですが、このページでは、自分が定数プールの機能だと思っていた事を、インターンプールという言葉で説明されていました。
https://msdn.microsoft.com/ja-jp/library/system.string.intern(VS.80).aspx
>共通言語ランタイムは、インターン プールと呼ばれるテーブルを保持することで文字列のストレージを管理しています。
>このテーブルには、プログラム内で宣言または作成された一意のリテラル文字列に対する単一の参照が含まれています。
>この結果として、特定の値を持つリテラル文字列のインスタンスは、システムに 1 つしか存在しません。
>たとえば、いくつかの変数に同じリテラル文字列を代入した場合、ランタイムはそのリテラル文字列に対する同じ参照をインターン プールから取得して、それぞれの変数に代入します。

はっきりした事が分かるまで、暫定で"定数プール=インターンプール"と考えることにします。

668 名前:デフォルトの名無しさん [2015/09/17(木) 21:56:28.73 ID:v9PnBNai.net]
>>656
定数プールよりコンスタントプールが一般的な呼び名だね
static final String で定義された値ってよりは文字列リテラルで定義されたStringがプールされる
文字列リテラルは”hoge”の様に指定されたStringオブジェクト、つまりはクラス内の既知の文字列ってこと
あと、String#intern()をするとコンスタントプールに新たに登録できる

669 名前:デフォルトの名無しさん [2015/09/17(木) 22:27:03.83 ID:v9PnBNai.net]
>>652
実行順序は正しい
補足するとstaticイニシャライザはstaticフィールド代入とstaticブロックに分かれるけど、この実行順序は定義順

static final int STATIC_FIELD = getStaticField();
static {
System.out.println(“static block”);
}

private static int getStaticField() {
System.out.println(“static field”);
return 0;
}

― 実行結果 ―
static field
static block
――――

インスタンスイニシャライザも同様にインスタンスフィールド代入とインスタンスブロックに分かれて、実行順は定義順



670 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 22:27:53.81 ID:n3PeWc41.net]
>>663
ありがとうございます。
言語仕様やJVM仕様について勉強するのに良い書籍やサイトはないでしょうか?
そこを勉強しないと、何しても自信も確信も持てないです・・・
(Javaにおけるスタックやコンスタントプールやインターンプールといった言葉で実体を想像し切れない)
amazonで目次を見ても、コーディング上の文法とかパフォーマンスを説明する書籍ばかり多くて探しきれません。

671 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 22:34:31.78 ID:i9MevF4R.net]
あんだろ、探せないようだとXXXXXXX

672 名前:デフォルトの名無しさん [2015/09/17(木) 22:44:56.42 ID:v9PnBNai.net]
>>665
言語仕様
docs.oracle.com/javase/specs/jls/se8/html/index.html
VM仕様
docs.oracle.com/javase/specs/jvms/se8/html/index.html

言語仕様はJava認定資格関連のテキストとかがいいんじゃないかな
www.oracle.com/jp/education/certification/jse8-2489021-ja.html&intcmp=JPOUSPOTBAN3

VM仕様の日本語は古いですがこれしかないです
goo.gl/fIW55h

ただ、最新VM仕様との違いはそんなにないはず(オペコードにInvokeDynamicが追加されたくらい?)

673 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 22:47:30.98 ID:n3PeWc41.net]
>>667
ありがとうございます。
公式は英語が苦手で敬遠してたんですが、やっぱり一番ですよね。
頑張って読んでみます。ありがとうございました。

674 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 22:55:48.94 ID:CfrPILTl.net]
>>652
>4.Stringや参照型を比較する際、==では、実体を指しているアドレスの値が同じか比較。 equasでは、実体の持つ情報(文字列やプロパティの中身)が同じかどうか比較。
equalメソッドは「そのクラス同士の比較において『等しい』と定義される条件を満たしているか」をチェックするメソッドな
必ずしも全てのフィールドが等しい必要はないし、Objectで用意されたequalsメソッドは参照値比較しかしてないので
自作クラスの場合はequalsメソッドをオーバーライドしない限り==と同じ効果しかない
反射律対称律推移律を満たして整合性を取れており、nullと比較した時にfalseを返すならどのようにも定義できる
その際はhashCodeのオーバーライドも忘れずに

675 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 23:11:01.20 ID:n3PeWc41.net]
>>669
ありがとうございます。
>Objectで用意されたequalsメソッドは参照値比較しかしてない
ということは、標準クラスライブラリに含まれる各クラスのequalsメソッドは、漏れなくObject.equalsメソッドをオーバーライドしているという事ですか。
条件についてもこれから言語仕様を読んでしっかり勉強します。

676 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 23:25:52.04 ID:UlH6iH3c.net]
a = 'abc'
b = 'abc'

id(a) != id(b)
オブジェクトIDが異なる

Pythonでは、インターンを使わないと、同じ文字列でも、
別のオブジェクトが使われる場合がある

ところがインターンを使うと、
必ず同じオブジェクトが使われる

677 名前:デフォルトの名無しさん mailto:sage [2015/09/17(木) 23:43:09.87 ID:UlH6iH3c.net]
C#, Javaでも、Object型には、
Equals, GetHashCode, ToString
の3つのメソッドを持つから、
これらのOverrideから始める

Equalsでは最初に、オブジェクトIDで比較して、
同じならそこで即、returnする

オブジェクトIDが異なる場合のみ、
文字列を1文字ずつ比較していく

だから、インターンを使うと、
オブジェクトIDの比較のみで、
returnするので処理が速いのだろう
(漏れの推測だが)

678 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 00:45:53.75 ID:WvjifrsL.net]
>>670
基本的な知識がしっかりありそうだけど、今までどんな言語使ってたの?

679 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 10:16:49.58 ID:vjVVdCFj.net]
添え字の配列の内容を+1する方法教えて



680 名前:デフォルトの名無しさん [2015/09/18(金) 11:12:07.97 ID:HPIGM5T7.net]
>>674
++

681 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 12:54:21.77 ID:N0OkBH4h.net]
for (i =0; i < arr.length; i++) {
arr[i] = arr[i]++;
}

682 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 12:55:58.63 ID:N0OkBH4h.net]
間違えた
arr[i] += 1;

683 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 13:26:18.89 ID:vjVVdCFj.net]
>>676>>677
ありがとう

684 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 15:15:07.53 ID:vjVVdCFj.net]
バケットソートについて詳しく載ってるサイトってない?

685 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 15:36:23.00 ID:WvjifrsL.net]
>>679
wikipediaにまんまJavaのサンプルまで載ってる

686 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 15:57:39.95 ID:uQv9FdG+.net]
明解C言語 入門編を終え、JAVAに手を出してみようと思っています。
オススメの参考書やウェブサイトを教えてくださ。

687 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 16:34:28.11 ID:X5qIavLL.net]
やさしいJava 高橋麻奈
Java言語プログラミングレッスン 上/下 結城浩
スッキリわかるJava入門 中山清喬

これらが鉄板
kのうちどれか一つを読むだけでよい

688 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 16:41:23.66 ID:nXiWoFV8.net]
javaやってる人ってWebアプリ作ってるの?

689 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 16:53:21.04 ID:GOu/rXMl.net]
作ってるよ



690 名前:デフォルトの名無しさん mailto:sage [2015/09/18(金) 17:38:33.11 ID:DmkML1Ld.net]
>>673
2001〜2002年頃、柴田望洋先生のC言語の本で勉強してました。
Javaは今週の月曜からやってます。

691 名前:スッキリ厨 mailto:sage [2015/09/19(土) 00:20:14.24 ID:njZddJ5V.net]
>>681
この本でしっかりと、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

以下のスレも見て

推薦図書/必読書のためのスレッド 77
ttp://peace.2ch.net/test/read.cgi/tech/1433427893/390

692 名前:デフォルトの名無しさん mailto:sage [2015/09/19(土) 14:35:22.81 ID:c6kn+dRM.net]
>>682 >>686
ありがとうございます!
質問なのですが、最新版を買うメリットはあるのでしょうか?
それぞれ前の版が中古でかなり安くなっているので…

693 名前:デフォルトの名無しさん [2015/09/20(日) 19:02:57.73 ID:zBtnypie.net]
javaの本をよんで、適当なandroidアプリを作成し
現場に入って6ヶ月で周りの現場の人と同じコードがかけないからやれる作業が少ない
普通何ヶ月で書けるようになるものなんですか

694 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 19:11:03.81 ID:E+W5aSdn.net]
普通は7ヶ月目に入ったとき突然書けるようになるよ
とか言っておけば満足してくれるかな?

695 名前:デフォルトの名無しさん [2015/09/20(日) 19:19:00.32 ID:UYQtClXz.net]
なんだコイツ。
頭おかしいんじゃねーのか?

満足してくれるかな?だってよ。

696 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 19:19:57.36 ID:E+W5aSdn.net]
うるせえよ氏ね

697 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 19:39:54.02 ID:B38jiRQG.net]
>>690 はたった今 氏んだよ

これで満足してくれるかな?

698 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 19:42:28.82 ID:E+W5aSdn.net]
うん

699 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 20:10:38.78 ID:b8x7+B6S.net]




700 名前:デフォルトの名無しさん mailto:sage [2015/09/20(日) 21:13:56.64 ID:V6MaWgnu.net]
>>688
周りと自分で何が違うかよーーーく観察したらええ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<259KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef