15/09/13 08:27:49.94 03ZHIFHO.net
詭弁だな
JavaでGUIを作るのにオブジェクト指向を使わなきゃいけないのはフレームワークがオブジェクト指向で作られてるからだ
オブジェクト指向を使わなくても再利用はできる
586:デフォルトの名無しさん
15/09/13 11:26:18.68 NQpkhmlf.net
GUIならVBAだってオブジェクト指向ですよね?
ブック、シート、セルってオブジェクトだと思うんだけどjavaと何が違うんですかね
587:デフォルトの名無しさん
15/09/13 14:19:29.42 GjhOqSyK.net
>>586
文法ですかね
588:デフォルトの名無しさん
15/09/13 16:56:25.90 0h5qH16g.net
クラスってDLLみたいなもんか
589:デフォルトの名無しさん
15/09/13 19:47:39.55 5IYdIGlq.net
>>586
おまえには無理w
590:デフォルトの名無しさん
15/09/13 21:58:26.17 rksK6R3g.net
>>586
コードはオブジェクト(クラス)にまとめられないでしょ
591:デフォルトの名無しさん
15/09/13 22:54:45.41 NQpkhmlf.net
>>590
モジュールにまとめたらいいやん
592:デフォルトの名無しさん
15/09/13 23:11:05.05 OTxKMWpD.net
velocityスレ見付からなかったので、ここで質問させてください。
velocityで改行コードを置換しようとしていますが、以下のような状況で上手く行かないのですが、
どうすれば良いでしょうか。あと大文字化もしたいのですが、そういう関数ってないですか??
1.JavaでStringをセット
pageInfo.setPageTitle("abcde\nfghij");
2.vmファイルで置換しようとしても、↓だと改行コードは変わらなかった
$pageInfo.pageTitle.replace('\n','\r\n')
$pageInfo.pageTitle.replace("\n","\r\n")
3.↓でやると、↓の文字列がそのまま出力されるので、$sysは使えないっぽい?
$sys.regexpReplace($pageInfo.pageTitle, '\n', '\r\n')
$sys.regexpReplace($pageInfo.pageTitle, "\n", "\r\n")
593:デフォルトの名無しさん
15/09/14 01:14:33.56 mzrV9eTT.net
>>592
「そういう関数」があるかどうかはマニュアル見ればすぐわかるだろ。
2. は値を取り出して変換してるだけで再セットし直してないように見えるけどね。予めタイトルを直してから setPageTitle すればいいんじゃないの?
594:デフォルトの名無しさん
15/09/14 01:17:08.27 Ws2q+A5X.net
>>591
URLリンク(oshiete.goo.ne.jp)
595:デフォルトの名無しさん
15/09/14 01:37:33.22 BKH9gjXB.net
>>592
「java 大文字 小文字 変換」
「java 改行コード 置換」で検索すれば?
596:デフォルトの名無しさん
15/09/14 02:37:39.18 eF8Eqhon.net
Javaプログラミング能力認定試験
URLリンク(www.sikaku.gr.jp)
って、1-2-3級あるんですが、Oracle公式のJavsの資格(SEのBronze,Silver,Gold)でいえばどれくらいのランクに当たりますか?
597:デフォルトの名無しさん
15/09/14 06:59:41.72 2z9D2B08.net
Javaのデスクトップアプリ開発に未来はあるの?
Swing Application FrameworkもJava8に来なくて死亡したっぽいし、
JavaFXは今どうなってんのかよくわからんし、関連書籍もないし、
もう諦めて違う言語に行った方が良いのか?
598:デフォルトの名無しさん
15/09/14 07:14:52.09 geV2gEFM.net
ないよ
デスクトップアプリ自体もう終わりだからWebに行った方がいい
開発環境やデザインツールなどプロ向けのツールはデスクトップアプリとして残るだろうけど、
そういうのもElectronのようなWebベースの技術に移行しつつある
599:デフォルトの名無しさん
15/09/14 07:30:19.02 2z9D2B08.net
ありがとう、本格的にWeb系に乗り出すことにしよう
実はElectronは触ったんだけど、最近出たnode.jsのv4.0で動かなくて困ってたところで、
自信のあるJavaに戻ろうとしてたんだが、未来がないならやめた方が良さそうだな
600:デフォルトの名無しさん
15/09/14 10:46:34.19 vBOHCP4p.net
すみません質問です
「始め」と「終り」の数値を入力するとその間の数値を足した合計を表示する
プログラムを作りたいのですがコンパイルエラーになってしまいます
どこに文法の誤りがあるんでしょうか
601:デフォルトの名無しさん
15/09/14 10:47:27.47 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);
}
}
602:デフォルトの名無しさん
15/09/14 10:47:56.86 vBOHCP4p.net
class Suutigoukei {
int hajime;
int owari;
Suutigoukei() {
for(i = hajime; i <= owari; i++){
goukei = hajime + owari;
}
int hajimeowari();
}
}
603:デフォルトの名無しさん
15/09/14 10:49:51.26 vBOHCP4p.net
C:\javabook\arugo>javac arugo1_1.java
arugo1_1.java:63: エラー: ';'がありません
int hajimeowari();
^
604:デフォルトの名無しさん
15/09/14 12:32:12.00 eZRCO9Fa.net
>>600
メッセージに出てる
605:デフォルトの名無しさん
15/09/14 12:58:06.34 VtHzXlkf.net
>>600
java8ならこれでも
IntStream.range(hajime,owari).sum()
携帯からでrangeの仕様未確認なので未満か以下は自分で確認して。
606:デフォルトの名無しさん
15/09/14 14:46:52.24 sjAEfYEf.net
>>600
・Suutigoukeiのコンストラクタで計算してるのに、Keisanではhajimeowariなる存在しないメソッドを呼んでる
・変数goukeiがどこにも宣言されていない
・int hajimeowari();←Javaではこのような書き方はできない
・for文の初期化式に変数iの型指定がない
・そもそもそのfor文では目的の計算ができない
随分奇妙なコードに見える
どう直せば正解なのか分からないので、かなり勝手に直したが、とりあえずこれで動く
URLリンク(ideone.com)
607:デフォルトの名無しさん
15/09/14 14:56:27.58 vBOHCP4p.net
>>606
うおおありがとうございます
全然できてませんでしたね......
まだ始めたばかりでわかんないことだらけです
608:デフォルトの名無しさん
15/09/14 16:46:55.74 BYqPWjqb.net
>>605
rangeはendExclusiveだからowari+1じゃね?
609:デフォルトの名無しさん
15/09/15 16:08:14.54 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');
});
これなんだが
「ここ」って書いてある変数名はどこで作用してるんだ?
このコードだと箱の意味をなしてなくない?
610:デフォルトの名無しさん
15/09/15 17:35:29.67 nDixVim1.net
jqueryさんですか
611:デフォルトの名無しさん
15/09/15 17:53:48.07 llkENHlN.net
質問です
配列の男性と女性の人数をそれぞれ求めたいのですが
実行結果が思うように出ません助言お願いします
612:デフォルトの名無しさん
15/09/15 17:56:09.05 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++;
}
}
}
613:デフォルトの名無しさん
15/09/15 17:57:52.64 EQXALWLy.net
ここは地の果て
614:デフォルトの名無しさん
15/09/15 17:58:26.74 llkENHlN.net
実行結果
C:\javabook\arugo>java Danjo
男性:0
女性:0
男性:1
女性:1
男性:2
女性:2
男性:3
女性:3
男性:4
女性:4
615:デフォルトの名無しさん
15/09/15 18:04:13.07 P5rty3ac.net
>>613
エリア81か
616:デフォルトの名無しさん
15/09/15 18:07:29.17 jl5p0EYA.net
>>613
流されてオレ
617:デフォルトの名無しさん
15/09/15 18:22:19.56 Qf+4z0r0.net
>>610
そうjquery
スレ見当たらんかったからここの人ならわかると思って聞いてみた
ここって場所には本来indexって文字が入っていた
618:デフォルトの名無しさん
15/09/15 18:43:24.47 EQXALWLy.net
>>617
残念だけどここは全く見当外れのスレ
ここは地の果てアルジェリア
619:デフォルトの名無しさん
15/09/15 19:25:34.39 Ymt5Re5v.net
インスタンス化がいまだにわからんねえな
620:デフォルトの名無しさん
15/09/15 19:36:07.69 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');
});
ここじゃないのん?
621:デフォルトの名無しさん
15/09/15 20:17:34.78 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);
}
}
}
}
622:デフォルトの名無しさん
15/09/15 20:24:10.06 gCyS4ICg.net
>>612
URLリンク(ideone.com)
623:デフォルトの名無しさん
15/09/15 20:28:50.51 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ループ終わり
624:デフォルトの名無しさん
15/09/15 22:09:22.99 9izTs0Mt.net
Javaでサーボ制御って出来るの?
625:デフォルトの名無しさん
15/09/15 22:43:06.24 3V0RbiNo.net
ケイオスは構成がヘタクソだけど、
シャロに比べれば各キャラのその場その場の行動はまあ理解できるんだよね
626:デフォルトの名無しさん
15/09/15 23:15:27.68 0UooUqqy.net
>>624
ロボット制御はできるよ、リアルタイムJavaもあるし
627:デフォルトの名無しさん
15/09/16 00:33:28.60 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内でやりたいのです
628:デフォルトの名無しさん
15/09/16 00:34:42.15 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内でやりたいのです
629:593
15/09/16 01:09:31.60 53gFD3yJ.net
>>628
下半分は何が言いたいかわからないけど、a は b に replace できるのに改行文字は変換できないみたいってことね。
そもそもtitleに改行が入ってるとブラウザ上の表示(タブ?)はどうなるの?
replaceメソッドのソースは見てみた?velocityのユーザーグループに聞いてもいいし。
630:デフォルトの名無しさん
15/09/16 07:02:02.61 hNGXxUVW.net
>>628
velocity忘れちゃったけど\nってシングルクォーテーション内でも改行コードとして扱われるんだっけ?
普通は理由がなければダブルクォーテーション使うと思うんだけど。
631:デフォルトの名無しさん
15/09/16 08:58:45.31 hQm/LCsG.net
>>621>>622
ありがとうございます
参考にしてもう一回書いてみます
632:デフォルトの名無しさん
15/09/16 09:45:01.94 XpDSc6d+.net
>>631
URLリンク(www.atmarkit.co.jp)
ここに書いてあるね
633:デフォルトの名無しさん
15/09/16 09:46:26.46 XpDSc6d+.net
>>631
URLリンク(www.atmarkit.co.jp)
ここに書いてあるね
634:デフォルトの名無しさん
15/09/16 11:33:18.31 3wc04D4s.net
ソニック速報は更新率を売りにしてるけどアルファルファには劣るやろ
635:デフォルトの名無しさん
15/09/16 11:43:07.86 hQm/LCsG.net
重ねて質問すいません
>>621のコードを実行すると
男性:1
男性:2
女性:1
男性:3
女性:2
となるんですが
合計値である
男性:3
女性:2
だけを表示させるにはどうしたらいいんでしょうか
636:デフォルトの名無しさん
15/09/16 12:05:30.71 +GDlSzOv.net
JAVAの仕様で、合計だけまとめて表示することはできないのでほかの言語でやりましょう
637:デフォルトの名無しさん
15/09/16 12:16:07.33 XpDSc6d+.net
>>635
手当たり次第にprint文書いて試してみたら
638:デフォルトの名無しさん
15/09/16 12:45:04.72 olYwdYzo.net
繰り返し実行するfor文の中にSystem.out.println()という出力するための文が書いてあるから
繰り返しただけ出力が実行されてるんだろ
これをfor文の外に出せよ
根本的に頭が悪すぎるだろ
プログラミングに向いてないんじゃないの
639:デフォルトの名無しさん
15/09/16 13:14:54.95 hniOduwL.net
猿なんだろ
640:デフォルトの名無しさん
15/09/16 13:41:13.16 hQm/LCsG.net
>>638の指摘で無事解決できました
ありがとうございます
641:デフォルトの名無しさん
15/09/16 14:39:27.87 WFgkUoFD.net
>>640
いえいえどういたしまして。
またいつでも来てくださいね^^
642:デフォルトの名無しさん
15/09/16 21:54:47.08 qDuRZ+uu.net
ファクトリーメソッドとかでもいつも思うんだけど
なんかの基本クラスとその派生クラスがあるとき、
基本クラスの中で 派生クラスを呼び出すのって
邪悪なこと? それともよくやるテクニック?
これでいつも悩むので 誰かオレを導いてくれ・・・
643:デフォルトの名無しさん
15/09/16 23:03:09.28 9fL6Ueyi.net
基本クラスの中で、派生クラスを呼び出すのは、あり得ない
普通、派生クラスの中で、基本クラスを呼び出す。
super(), base()など
普通、derived()なんて関数はない
644:デフォルトの名無しさん
15/09/17 07:27:27.72 6x6sM1Oz.net
Javaってそういうのだめなの?
C++ではよくやるよ?
645:デフォルトの名無しさん
15/09/17 07:33:39.83 o/COYXih.net
>>642
class Animal {
Animal createAnimal(String name) {
if (name.equals("わんわん")) {
return new Dog();
}
}
}
class Dog extends Animal {
}
こういうやり方なら
パラメータによるファクトリメソッドと呼ばれてるよ。
派生クラスでcreateAnimalを上書きすることできて
柔軟な実装だよ。
646:デフォルトの名無しさん
15/09/17 09:42:25.24 6VOBLfbC.net
>>645
いいの?
それ、いつも罪悪感があったんだけど、赦されるの?
647:デフォルトの名無しさん
15/09/17 11:19:54.86 wKtEswkf.net
いいんだよ
648:デフォルトの名無しさん
15/09/17 11:41:28.76 lTJfarla.net
>>645
こんなの絶対ダメ
cresteAnimalはstaticメソッドなんだから派生クラスで上書き(override)なんて出来ないし、柔軟でも何でもない
649:デフォルトの名無しさん
15/09/17 11:47:03.57 FXTJoMLp.net
ファクトリークラスを別に設けるのを書き損じたんだろ
650:デフォルトの名無しさん
15/09/17 12:19:45.02 6VOBLfbC.net
>>649
やはり赦されないの?
ファクトリーメソッドはファクトリークラスをいちいち作るべきなの?
651:デフォルトの名無しさん
15/09/17 13:02:58.84 4os4lvOB.net
>>650
作ります
652:デフォルトの名無しさん
15/09/17 18:34:04.45 n3PeWc41.net
今こういう理解をしているんですが、間違いがあれば指摘していただけないでしょうか。
1.実行される順番は、staticイニシャライザ → インスタンスイニシャライザ → インスタンスコンストラクタ。
2.プリミティブ型とString型は定数プールに作られて、それを参照するためのアドレスがスタックに置かれる。
3.参照型はヒープに実体が作られて、それを参照する為のアドレスがスタックに置かれる。
4.Stringや参照型を比較する際、==では、実体を指しているアドレスの値が同じか比較。 equasでは、実体の持つ情報(文字列やプロパティの中身)が同じかどうか比較。
653:デフォルトの名無しさん
15/09/17 18:46:03.73 FXTJoMLp.net
>String型は定数プールに作られて、それを参照するためのアドレスがスタックに置かれる。
何をわけのわからんこと言ってるんだおまいは
654:デフォルトの名無しさん
15/09/17 18:55:19.24 n3PeWc41.net
>>653
すみません、
newしない場合は定数プールに、newした場合はヒープでいいんでしょうか。
わけのわかる段階を目指してる段階なので・・・・
655:デフォルトの名無しさん
15/09/17 19:18:04.59 FXTJoMLp.net
>>654
定数プールなんてものは無い
定数はインターンのプールを使ってはいるけど
656:デフォルトの名無しさん
15/09/17 19:29:41.08 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)みたいにボクシングすると、ヒープに数値、スタックにヒープのアドレスが記録されるという感じですか?
657:デフォルトの名無しさん
15/09/17 19:33:43.31 yBcFvURc.net
仕様みると定数プールあるよ
URLリンク(docs.oracle.com)
658:デフォルトの名無しさん
15/09/17 20:11:50.31 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); //?
}
}
659:デフォルトの名無しさん
15/09/17 20:24:27.54 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に。
660:デフォルトの名無しさん
15/09/17 20:36:49.59 zGz+EkSN.net
イスタンブールが構造体に見えた
661:デフォルトの名無しさん
15/09/17 21:02:51.50 5wmHlkvS.net
医者の卵のプール
662:デフォルトの名無しさん
15/09/17 21:18:46.58 n3PeWc41.net
C#の情報を見つけたんですが、このページでは、自分が定数プールの機能だと思っていた事を、インターンプールという言葉で説明されていました。
URLリンク(msdn.microsoft.com)(VS.80).aspx
>共通言語ランタイムは、インターン プールと呼ばれるテーブルを保持することで文字列のストレージを管理しています。
>このテーブルには、プログラム内で宣言または作成された一意のリテラル文字列に対する単一の参照が含まれています。
>この結果として、特定の値を持つリテラル文字列のインスタンスは、システムに 1 つしか存在しません。
>たとえば、いくつかの変数に同じリテラル文字列を代入した場合、ランタイムはそのリテラル文字列に対する同じ参照をインターン プールから取得して、それぞれの変数に代入します。
はっきりした事が分かるまで、暫定で"定数プール=インターンプール"と考えることにします。
663:デフォルトの名無しさん
15/09/17 21:56:28.73 v9PnBNai.net
>>656
定数プールよりコンスタントプールが一般的な呼び名だね
static final String で定義された値ってよりは文字列リテラルで定義されたStringがプールされる
文字列リテラルは”hoge”の様に指定されたStringオブジェクト、つまりはクラス内の既知の文字列ってこと
あと、String#intern()をするとコンスタントプールに新たに登録できる
664:デフォルトの名無しさん
15/09/17 22:27:03.83 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
――
インスタンスイニシャライザも同様にインスタンスフィールド代入とインスタンスブロックに分かれて、実行順は定義順
665:デフォルトの名無しさん
15/09/17 22:27:53.81 n3PeWc41.net
>>663
ありがとうございます。
言語仕様やJVM仕様について勉強するのに良い書籍やサイトはないでしょうか?
そこを勉強しないと、何しても自信も確信も持てないです・・・
(Javaにおけるスタックやコンスタントプールやインターンプールといった言葉で実体を想像し切れない)
amazonで目次を見ても、コーディング上の文法とかパフォーマンスを説明する書籍ばかり多くて探しきれません。
666:デフォルトの名無しさん
15/09/17 22:34:31.78 i9MevF4R.net
あんだろ、探せないようだとXXXXXXX
667:デフォルトの名無しさん
15/09/17 22:44:56.42 v9PnBNai.net
>>665
言語仕様
URLリンク(docs.oracle.com)
VM仕様
URLリンク(docs.oracle.com)
言語仕様はJava認定資格関連のテキストとかがいいんじゃないかな
URLリンク(www.oracle.com)
VM仕様の日本語は古いですがこれしかないです
URLリンク(goo.gl)
ただ、最新VM仕様との違いはそんなにないはず(オペコードにInvokeDynamicが追加されたくらい?)
668:デフォルトの名無しさん
15/09/17 22:47:30.98 n3PeWc41.net
>>667
ありがとうございます。
公式は英語が苦手で敬遠してたんですが、やっぱり一番ですよね。
頑張って読んでみます。ありがとうございました。
669:デフォルトの名無しさん
15/09/17 22:55:48.94 CfrPILTl.net
>>652
>4.Stringや参照型を比較する際、==では、実体を指しているアドレスの値が同じか比較。 equasでは、実体の持つ情報(文字列やプロパティの中身)が同じかどうか比較。
equalメソッドは「そのクラス同士の比較において『等しい』と定義される条件を満たしているか」をチェックするメソッドな
必ずしも全てのフィールドが等しい必要はないし、Objectで用意されたequalsメソッドは参照値比較しかしてないので
自作クラスの場合はequalsメソッドをオーバーライドしない限り==と同じ効果しかない
反射律対称律推移律を満たして整合性を取れており、nullと比較した時にfalseを返すならどのようにも定義できる
その際はhashCodeのオーバーライドも忘れずに
670:デフォルトの名無しさん
15/09/17 23:11:01.20 n3PeWc41.net
>>669
ありがとうございます。
>Objectで用意されたequalsメソッドは参照値比較しかしてない
ということは、標準クラスライブラリに含まれる各クラスのequalsメソッドは、漏れなくObject.equalsメソッドをオーバーライドしているという事ですか。
条件についてもこれから言語仕様を読んでしっかり勉強します。
671:デフォルトの名無しさん
15/09/17 23:25:52.04 UlH6iH3c.net
a = 'abc'
b = 'abc'
id(a) != id(b)
オブジェクトIDが異なる
Pythonでは、インターンを使わないと、同じ文字列でも、
別のオブジェクトが使われる場合がある
ところがインターンを使うと、
必ず同じオブジェクトが使われる
672:デフォルトの名無しさん
15/09/17 23:43:09.87 UlH6iH3c.net
C#, Javaでも、Object型には、
Equals, GetHashCode, ToString
の3つのメソッドを持つから、
これらのOverrideから始める
Equalsでは最初に、オブジェクトIDで比較して、
同じならそこで即、returnする
オブジェクトIDが異なる場合のみ、
文字列を1文字ずつ比較していく
だから、インターンを使うと、
オブジェクトIDの比較のみで、
returnするので処理が速いのだろう
(漏れの推測だが)
673:デフォルトの名無しさん
15/09/18 00:45:53.75 WvjifrsL.net
>>670
基本的な知識がしっかりありそうだけど、今までどんな言語使ってたの?
674:デフォルトの名無しさん
15/09/18 10:16:49.58 vjVVdCFj.net
添え字の配列の内容を+1する方法教えて
675:デフォルトの名無しさん
15/09/18 11:12:07.97 HPIGM5T7.net
>>674
++
676:デフォルトの名無しさん
15/09/18 12:54:21.77 N0OkBH4h.net
for (i =0; i < arr.length; i++) {
arr[i] = arr[i]++;
}
677:デフォルトの名無しさん
15/09/18 12:55:58.63 N0OkBH4h.net
間違えた
arr[i] += 1;
678:デフォルトの名無しさん
15/09/18 13:26:18.89 vjVVdCFj.net
>>676>>677
ありがとう
679:デフォルトの名無しさん
15/09/18 15:15:07.53 vjVVdCFj.net
バケットソートについて詳しく載ってるサイトってない?
680:デフォルトの名無しさん
15/09/18 15:36:23.00 WvjifrsL.net
>>679
wikipediaにまんまJavaのサンプルまで載ってる
681:デフォルトの名無しさん
15/09/18 15:57:39.95 uQv9FdG+.net
明解C言語 入門編を終え、JAVAに手を出してみようと思っています。
オススメの参考書やウェブサイトを教えてくださ。
682:デフォルトの名無しさん
15/09/18 16:34:28.11 X5qIavLL.net
やさしいJava 高橋麻奈
Java言語プログラミングレッスン 上/下 結城浩
スッキリわかるJava入門 中山清喬
これらが鉄板
kのうちどれか一つを読むだけでよい
683:デフォルトの名無しさん
15/09/18 16:41:23.66 nXiWoFV8.net
javaやってる人ってWebアプリ作ってるの?
684:デフォルトの名無しさん
15/09/18 16:53:21.04 GOu/rXMl.net
作ってるよ
685:デフォルトの名無しさん
15/09/18 17:38:33.11 DmkML1Ld.net
>>673
2001~2002年頃、柴田望洋先生のC言語の本で勉強してました。
Javaは今週の月曜からやってます。
686:スッキリ厨
15/09/19 00:20:14.24 njZddJ5V.net
>>681
この本でしっかりと、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
以下のスレも見て
推薦図書/必読書のためのスレッド 77
スレリンク(tech板:390番)
687:デフォルトの名無しさん
15/09/19 14:35:22.81 c6kn+dRM.net
>>682 >>686
ありがとうございます!
質問なのですが、最新版を買うメリットはあるのでしょうか?
それぞれ前の版が中古でかなり安くなっているので…
688:デフォルトの名無しさん
15/09/20 19:02:57.73 zBtnypie.net
javaの本をよんで、適当なandroidアプリを作成し
現場に入って6ヶ月で周りの現場の人と同じコードがかけないからやれる作業が少ない
普通何ヶ月で書けるようになるものなんですか
689:デフォルトの名無しさん
15/09/20 19:11:03.81 E+W5aSdn.net
普通は7ヶ月目に入ったとき突然書けるようになるよ
とか言っておけば満足してくれるかな?
690:デフォルトの名無しさん
15/09/20 19:19:00.32 UYQtClXz.net
なんだコイツ。
頭おかしいんじゃねーのか?
満足してくれるかな?だってよ。
691:デフォルトの名無しさん
15/09/20 19:19:57.36 E+W5aSdn.net
うるせえよ氏ね
692:デフォルトの名無しさん
15/09/20 19:39:54.02 B38jiRQG.net
>>690 はたった今 氏んだよ
これで満足してくれるかな?
693:デフォルトの名無しさん
15/09/20 19:42:28.82 E+W5aSdn.net
うん
694:デフォルトの名無しさん
15/09/20 20:10:38.78 b8x7+B6S.net
あ
695:デフォルトの名無しさん
15/09/20 21:13:56.64 V6MaWgnu.net
>>688
周りと自分で何が違うかよーーーく観察したらええ
696:デフォルトの名無しさん
15/09/20 21:15:24.15 zBtnypie.net
>>688
誰か答えよろしくお願い
697:デフォルトの名無しさん
15/09/20 21:16:09.39 zBtnypie.net
>>695
観察できないかな。PCでやってる作業みれるわけでないし
見れても解説がないと何やろうとしてるかわかりにくい
698:デフォルトの名無しさん
15/09/20 21:30:13.76 b8x7+B6S.net
テスト
699:デフォルトの名無しさん
15/09/20 21:34:01.72 b8x7+B6S.net
trycatchの中に書くコードは例外が発生するコードに限定すべきですか?
trycatchの前で変数の初期化があるのですが、trycatchの中で変数の初期化をやる不都合などありますか?
700:デフォルトの名無しさん
15/09/20 21:35:47.33 b8x7+B6S.net
もう一つ
あるテンプレートファイルがあってあそれを読み込んで加工して出力するというプログラムがあります。
701:デフォルトの名無しさん
15/09/20 21:37:16.31 b8x7+B6S.net
そのテンプレートファイルを読み込んだオブジェクトをシリアライズ化して保存して、次回からそれ読み込んで使うことでパフォーマンス等何かメリットはありますか?
702:デフォルトの名無しさん
15/09/20 22:02:45.30 V6MaWgnu.net
>>697
任された実装はそのまま使われないで、手直しされるだろ?その直された理由とかちゃんと理解してるか?
何ヵ月で書ける?なんて聞いてる時点で間違い、時間がたてば知識と経験がつくなんて大間違い
やるか、やらないかが出来る出来ないにつながる
703:デフォルトの名無しさん
15/09/20 22:16:51.12 GVuO7Qv0.net
>>701
毎回加工するのが気にならなければ良いと思う
704:デフォルトの名無しさん
15/09/20 23:10:02.96 vBjKt0IW.net
>>687
安いのなら、ひとまず買えば?
それで不満足なら、新しい本も買う
705:デフォルトの名無しさん
15/09/21 10:59:43.70 jcdM4XWK.net
>>699
try-catch文を小さなスコープにしてしまうと見辛くなるからあまりやらないけどな
変数の宣言・初期化は、なるべく変数の利用場所に近い方がいいから、自分ならtry-catch文の中でも良いと思う
706:デフォルトの名無しさん
15/09/21 18:47:18.33 uzUegnmN.net
いくつか質問があります
クラス内でstaticとそうでないメソッドはどっちを先に記述したほうがよいですか?
ゲッターセッターは上記の上か下どっちに書いたほうがよいですか?
ドキュメントなどでクラス名#メソッドような書き方を見ますがクラス名.メソッドでないのはなぜですか?
お願いします
707:デフォルトの名無しさん
15/09/21 19:01:28.68 jD6X6wa8.net
>>706
メソッドの順番は趣味みたいなもんだから、他のクラスとも同じになってればどの順番でもいいんじゃない
自分ならよく見る順に定義するから、static、static以外、getter/setterに書く。かつ、publicが先でprivateは後にする。
708:デフォルトの名無しさん
15/09/22 02:39:25.50 LWcwCDYy.net
>>707
なるほどわかりました
ありがとうございます
709:デフォルトの名無しさん
15/09/22 06:15:28.11 DWZBoHOA.net
AクラスにあるprivateなB型のフィールドのB#method()を実行するにはどうやったらいいですか?
710:デフォルトの名無しさん
15/09/22 11:13:57.62 odwLwygr.net
普通はできないけど、どうしてもと言うことならここを参考に
URLリンク(www.ne.jp)
711:デフォルトの名無しさん
15/09/22 21:50:27.98 pdjQKPiJ.net
抽象クラスにファクトリメソッドを実装したい
712:デフォルトの名無しさん
15/09/22 21:53:46.45 pdjQKPiJ.net
ファクトリーーーーーーッッッ!!!!
713:デフォルトの名無しさん
15/09/22 22:21:50.75 ongmovxt.net
配列やリストをintより長くしたい時はどうするんだ?
例えば世界の人の名前を配列に入れるとしたらintじゃ収まらないし
714:デフォルトの名無しさん
15/09/22 22:43:11.70 /GkE8iwE.net
>>713
longでlinked listを実装するのが簡単な気がするけれども、
ジャグ配列を使えばdynamic arrayも実装できそうな気がする
715:デフォルトの名無しさん
15/09/22 22:45:39.84 ongmovxt.net
>>714
自分でリスト作ったり出来るのか
ただ試しにintの最大値でnew byte[]したらメモリエラーになった
716:デフォルトの名無しさん
15/09/22 22:59:03.85 ZRAq8Cy7.net
>>709
void c(){
b.method()
}
717:デフォルトの名無しさん
15/09/22 22:59:08.63 odwLwygr.net
intの最大値って2,147,483,647だから実行時にヒープサイズを2GB以上にしないと
世界中の人の名前を記録するならこれでも足りないから、ファイルに書くとか、効率の良い方法にする必要がある
718:デフォルトの名無しさん
15/09/22 23:06:16.47 /GkE8iwE.net
>>715
こんなの見つけた。
Java SE 8 Update 31 で、ByteArrayOutputStream のサイズ上限が拡大していました
URLリンク(d.hatena.ne.jp)
仮想マシンによって配列の上限は変わるのだけれども、
Oracle JDK 64bitではInteger.MAX_VALUE - 2なんだって。
メモリを潤沢に積んでいて仮想マシンがそれを使えるなら行けるはずよ。
719:デフォルトの名無しさん
15/09/23 09:34:26.13 r8LABhf3.net
OracleのJavaの資格を取るために勉強中なのですが、どう勉強すればいいのでしょうか。
たとえば、
>Javaテクノロジーの特徴の説明
という項目があるのですが、Javaの特徴という事は、他の言語もそれなりに勉強しなければ特定言語の特徴なんて見えてこない気がするんですが、とてもそんな余裕はないです。
720:デフォルトの名無しさん
15/09/23 10:15:11.53 03GKR7UV.net
>>719
そのままググるとGoogle Booksの試験の教科書のサンプルへ飛ぶリンクが見つかるけど、そこに丸々書いてある。
721:デフォルトの名無しさん
15/09/23 13:57:21.25 r8LABhf3.net
>>720
ありがとうございます。
VMのメモリー管理システムとかクラスファイルの生成システムとか思ってたら全然違いました・・・・・(´・ω・`)
722:デフォルトの名無しさん
15/09/23 17:25:43.02 csQOVbIe.net
抽象クラスAとそれを継承したクラスA1,A2,A3があって、
コマンド電文に応じてオブジェクトを生成したいとする。
最初に受信したときはまだ自分がどれかはわからないので
new A して、ある程度電文受信した時点で A1,A2,A3の
どれかが判明するので、それから Aのメソッドの中で
自分自身をA1,A2,A3のどれかに変身させたいんだけど
そんなこと可能?
723:デフォルトの名無しさん
15/09/23 17:51:31.82 o45gp/p9.net
>new A して
抽象クラスはnewできない
>Aのメソッドの中で自分自身をA1,A2,A3のどれかに変身
Aを通常のクラスにして(あるいは実体化用の子クラスA'を作って)、
A1,A2,A3のそれぞれにA(A')を引数に持ち、内部でフィールドをコピーするコンストラクタを実装すれば似たようなことは可能
ただ、「最初は適当なクラスで実体化させ、途中で別のクラスにする」なんてのはクラス設計かコーディング設計が間違ってる
724:デフォルトの名無しさん
15/09/23 17:55:53.30 o45gp/p9.net
おっと、「それから Aのメソッドの中で」を見落としてたな
それであればAのラッパークラスを作って、実体をフィールドで管理するしかないかな
class AWrapper
725:デフォルトの名無しさん
15/09/23 17:57:12.45 o45gp/p9.net
ミス
class AWrapper{
public
private A instance;
pubic void changeInstance
}
726:デフォルトの名無しさん
15/09/23 18:00:57.58 o45gp/p9.net
再ミス…
class AWrapper{
private A instance;
public AWrapper(){
instance = new A;
}
pubic void changeInstance(){
instance=new A1;
instance=new A2;
instance=new A3;
}
}
みたいな感じ。
727:デフォルトの名無しさん
15/09/23 18:03:06.29 csQOVbIe.net
>>723
>最初は適当なクラスで実体化させ、途中で別のクラスにする
これよくやるんだけど、ダメ設計かねぇ
正体不明のまま寿命がくるオブジェクトもあるし
728:デフォルトの名無しさん
15/09/23 19:07:14.96 p3EVRPHl.net
>>723
コーディング設計って何?
729:デフォルトの名無しさん
15/09/23 22:19:39.65 uGsC8F+E.net
内部設計をもう少し詳細化したもの?
730:デフォルトの名無しさん
15/09/24 09:14:58.39 qZP46lxp.net
正体不明のクラスのインスタンスを持たせたクラスをfactoryパターンで作るのが良さそう。
731:デフォルトの名無しさん
15/09/24 09:38:43.01 9GfCZfDJ.net
>>730
問題は変身部分なんだよね
自分でthisに代入できれば
もう少し柔軟に設計できるんだけど
732:デフォルトの名無しさん
15/09/24 10:37:56.50 VQul4fta.net
This is a pen.
733:デフォルトの名無しさん
15/09/24 15:49:28.77 6rsc/VuH.net
123456と2を与えると123400を返す関数って
for文つかって出来る?
734:デフォルトの名無しさん
15/09/24 16:05:00.38 adAR7FC2.net
できる?
そりゃ普通にできるが何か?
ロジック教えてください。お願いします
って言えないクズはカエレ‼
735:デフォルトの名無しさん
15/09/24 16:11:03.09 h5xEnf9P.net
>>734
さっさとやれよクズ
736:デフォルトの名無しさん
15/09/24 16:18:17.76 6rsc/VuH.net
>>734
教えてください、お願いします
737:デフォルトの名無しさん
15/09/24 16:29:58.24 BE1yU5Mz.net
>>733 は自分が何を聞いているのかもよく分かってないんだろうな
738:デフォルトの名無しさん
15/09/24 16:47:05.11 h5xEnf9P.net
>>737
何聞いてるのかさっさと教えろやクズ
739:デフォルトの名無しさん
15/09/24 18:08:50.15 2/TDm+02.net
>>733
できた
URLリンク(paiza.io)
740:デフォルトの名無しさん
15/09/24 22:42:27.66 z3DWdztr.net
>>733
阿呆らしい実装だけど
URLリンク(ideone.com)
741:デフォルトの名無しさん
15/09/24 23:14:38.12 h5xEnf9P.net
>>733
あっしも参戦
URLリンク(ideone.com)
742:デフォルトの名無しさん
15/09/24 23:20:15.63 nYzfD9YJ.net
固定で123400を返せばいい
for文は使う必要がない
743:デフォルトの名無しさん
15/09/25 02:19:22.01 apWN/1u6.net
超絶初心者なんですがこの考えであってるかどうかだけ教えて下さい
bitbucketにあるA.jarというツールに他の人が新しい機能を追加したんですが、
それが.javaファイルでブランチにあげていました
そのjavaをjarに組み込みたい場合は、まずjavaをclassにコンパイルして
jarの拡張子をzip変えて、コンパイルしたclassファイルをzip内に
突っ込んで上書きして拡張子をjarに戻すという方向で合ってますか?
744:デフォルトの名無しさん
15/09/25 03:08:53.31 od9Azemj.net
surfaceView使ってテトリス作ろうと思ってるんですが、ブロックの落下処理が上手くいきません。
具体的には、ブロックの初期位置をlocation=Point{x,y}という感じでPointで示してるんですが、
最初の位置が{5,0}だとして、次の位置が{5,1}となるようにy++を増やしていってます。
ですが、y=0とy=1の時は恐らく上手く処理できているのですが、y=2からまた新たなブロックが描画されて、落下するブロックが二つになります。
そしてy=4となると、またブロックが増え、3つの連続したブロックが落下してきます。同様にyが+2される度にどんどんブロックが増えていきます。
745:デフォルトの名無しさん
15/09/25 03:11:24.75 od9Azemj.net
URLリンク(ideone.com)
これなんですが、どこの記述がおかしいのでしょうか?
ご教授いただけると幸いです。
746:デフォルトの名無しさん
15/09/25 03:45:13.01 9pQ+0duf.net
>>744
前のブロックが変数に残ってるだけじゃないの
747:デフォルトの名無しさん
15/09/25 04:55:58.65 od9Azemj.net
>>746
どの変数にでしょうか?
748:デフォルトの名無しさん
15/09/25 05:05:25.34 9pQ+0duf.net
ブロック5回動かしたらいちど画面真っ白にしてみな。
ブロック消えてないと変数に残ってるということ
749:デフォルトの名無しさん
15/09/25 07:05:37.28 od9Azemj.net
//始めのブロックを表示させる
for(int x=location.x;x<pieceWidth+location.x;x++) {
for (int y =yy ; y < pieceHeight + yy; y++) {
if (piece[x-location.x][y-yy] == 1) { x:6 y:3 location.y:2 piece:int[4][]@4000
Resources r = getResources();
Paint paint = new Paint();
Bitmap blue = BitmapFactory.decodeResource(r, R.drawable.blue);
デバッグしてみたら、ループするたびに現在のブロックを入れているint[][]pieceがどんどん増えてると思われました。
最初@3998だったのが@3999,@4000と
これが消されず残っているから次々と新しいブロックが描画されるのでしょうか?
750:デフォルトの名無しさん
15/09/25 07:35:21.19 od9Azemj.net
ごめんなさい。意味不明なことを言ってました。
>>748さんのおっしゃってくれたことを参考に原因を考えてみたところ、何もブロックがないところ(int[][]==0)となるところにも
空を表す白色の画像をおいてみたところ、ブロックがひとつだけになりました。
本当にありがとうございました!
ちなみにこうなってしまう原因って言うのはなんだったのでしょうか・・・
751:デフォルトの名無しさん
15/09/25 11:28:09.12 UQq/TqgO.net
イラストアイコン素材集Vol.1
URLリンク(www.dlsite.com)
752:デフォルトの名無しさん
15/09/25 13:31:33.67 HXF4kOLD.net
>>743
jarがあがってる時点でダメ感があるけど、、
gradleかmaven使ってるならjar生成タスクがあるんでない?
753:デフォルトの名無しさん
15/09/25 16:50:27.13 apWN/1u6.net
>>743
レスありがとうございます
> jarがあがってる時点でダメ感があるけど、、
本当にこのレスさえもイマイチ分からない程の知識しか持ちあわせてないんですが
masterにあがっているのが完全なjarなら他の人がbranchしたものは
追加出来ないって事でしょうか?
> gradleかmaven使ってるならjar生成タスクがあるんでない?
使っているのはただのコマンドプロンプトでjavacでクラスパス通したりしてるんですが
エラーしか吐きません。なので向かっている方向性事態間違ってるのかと思い
質問させて頂きました。
754:デフォルトの名無しさん
15/09/25 17:13:31.10 apWN/1u6.net
>>752
>>753
すみません、安価打ち間違えました
755:デフォルトの名無しさん
15/09/25 17:45:16.84 HTrlcfjs.net
>>753
jarは生成物なのでローカルで作れるものは普通上げない。jarが最新のコードから吐かれたものか怪しいし
jarがライブラリなのか、単一アプリなのかでオプションもかわる、後者ならエントリーポイントのクラスを指定しなきゃいけない
エラーを提示できないなら同僚に聞くしかないね
756:デフォルトの名無しさん
15/09/25 19:41:53.91 /Qy26+aB.net
>>751
こういうのあるんだ助かるね
757:デフォルトの名無しさん
15/09/25 19:43:13.50 38ifuE0H.net
>>756
価格(税込) : 6,480円
758:デフォルトの名無しさん
15/09/25 21:10:38.97 SCZfJpGh.net
JSPで教えてください。
<%"window.onload = function(){alert('<%="HelloWorld"%>')};"%>
ページ読み込んだあとalertでHelloWorld(String)を表示させようとしたのですが,
ダブルクオートが入れ子?になってるせいでうまく表示できません。
どうすればいいですか?
759:デフォルトの名無しさん
15/09/25 22:02:55.33 apWN/1u6.net
>>755
> jarは生成物なのでローカルで作れるものは普通上げない。jarが最新のコードから吐かれたものか怪しいし
> jarがライブラリなのか、単一アプリなのかでオプションもかわる、後者ならエントリーポイントのクラスを指定しなきゃいけない
jarが単一アプリの方だという事は辛うじて分かるんですが、
それ以外はワケワカメなのでもうちょっと自習()してきます
> エラーを提示できないなら同僚に聞くしかないね
エラーを提示しようにも自分自身もどう言う風に
提示していいかもまとめきれない状況なので出直してきます
またこれは個人的趣味でやっている事で
同僚には合成屋しか居ないので聞いても無駄だと思われますw
色々とヒントになりそうなレスを頂きありがとうございました
760:デフォルトの名無しさん
15/09/25 22:09:06.86 45PIwXEk.net
>>758
エスケープシーケンス
761:デフォルトの名無しさん
15/09/25 22:17:50.20 9pQ+0duf.net
>>750
lock
unlockとかしてないんじゃ
762:デフォルトの名無しさん
15/09/26 00:24:05.16 k6HsbUkn.net
Javaのマニュアルのクラス全部覚えてる?
763:デフォルトの名無しさん
15/09/26 00:41:03.20 Za1DYSgE.net
>>762
マニュアルのクラスって何?
764:デフォルトの名無しさん
15/09/26 01:32:33.10 VnXY6/gA.net
>>743
A.jarというファイルに、
他人が勝手に作った.javaファイルを、
組み込んだらいけない!
A.jarを作った人は、そういうことを想定していないから、
あくまで違う人の製品として扱うべき
単に、.javaファイルと、自分で作ったファイルで、
A.jarを使えばよいだけ
完成品のA.jarをいじってはいけない。
いじるとバグが出るだけ
765:デフォルトの名無しさん
15/09/26 02:23:30.43 9hL7F3GQ.net
>>762
マニュアルのクラスって
基本実装されてるライブラリのクラス?
コード書いてたら分かると思うが
utilパッケージの、ArrayListとかHashとかMapとか
よく使うものは覚えるけど
全部覚えてるヤツなんていない
766:デフォルトの名無しさん
15/09/26 12:31:24.72 bVkD+gdd.net
コンソール上でキーイベント受け付ける方法何かない?
標準入力じゃなくてEnter押さなくても入力キー受け取れるやつ
コンソール上で矢印キーなんか使って擬似GUIみたいなのやりたいんだけど
767:デフォルトの名無しさん
15/09/26 12:41:26.10 9hL7F3GQ.net
>>766
もう一度ちゃんとまとめて書いてくれ
意味がサッパリわからん
768:デフォルトの名無しさん
15/09/26 13:01:06.37 bVkD+gdd.net
>>767
標準入力だとEnter押すまで入力内容受け取れないじゃん?
KeyListenerでやってるようなことをコンソール上でもやりたいんだけど
769:デフォルトの名無しさん
15/09/26 13:08:46.54 bVkD+gdd.net
viと同じような画面操作ができるのが理想なんだけども
770:デフォルトの名無しさん
15/09/26 13:24:28.99 m8zF6iIL.net
入門サイトで勉強しているんですが、
String a = "";
と、
String a = new String("");
が同じだと書いてるサイトと、別物だって書いてるサイトがあるんですが、どっちが本当ですか?
771:デフォルトの名無しさん
15/09/26 13:26:30.10 +RaGzy7M.net
>>769
JavaにもCursesライブラリがあるらしい
772:デフォルトの名無しさん
15/09/26 13:29:19.75 W4J0LT9H.net
>>770
""は自動で展開される
つまりnew String("")だと2回newされるからクソ遅い
773:デフォルトの名無しさん
15/09/26 14:27:30.94 HIyFMteH.net
>>771
あれ日本語通ったっけか? あと英語圏の文字コード使ってないと罫線が化けたような。
774:デフォルトの名無しさん
15/09/26 15:54:27.74 b9zSGlHz.net
どっちの話?
URLリンク(www.pitman.co.za)
URLリンク(sourceforge.net)
775:デフォルトの名無しさん
15/09/26 17:47:50.32 4HIc/GgG.net
>>772
そこまでアホじゃないだろ
776:デフォルトの名無しさん
15/09/26 19:47:30.97 m8zF6iIL.net
クラスはnewされるとメソッドエリアからインスタンストしてヒープに展開される。
メソッドローカルな変数やオペランドはスタックのフレームに展開される。
クラス変数/フィールドはメソッドエリアにあり、インスタンスから実使用時に参照される。(複数スレッドから共有されるのでスレッドセーフではない)
って考えているんですが、文字列はコンスタントプールですよね?
メソッドローカルな文字列はスタックとコンスタントプールどちらなんでしょうか?
777:デフォルトの名無しさん
15/09/26 20:28:41.90 bVkD+gdd.net
>>774
どっちも日本語通らないみたい
自分の力じゃ対応させるのは難しそうだから、GUIか他の言語で妥協します
778:776
15/09/26 20:53:43.88 m8zF6iIL.net
すみませんここ見て打開しました。(内容が嘘でなければ)
URLリンク(blog.lse.epita.fr)
779:デフォルトの名無しさん
15/09/27 00:03:10.91 SmhmwC/2.net
>>776
コンスタントプールなんじゃない?
スタックに積まれるとしたら、ほとんどの文字列はスタックに入ることになっちゃうし
780:デフォルトの名無しさん
15/09/28 01:24:42.57 NYWLOSX2.net
プログラムのあらゆる箇所において、
そのときのスタックの深さはコンパイル時に全部決められてしまうので、
文字列本体とか入れられないよ。
781:デフォルトの名無しさん
15/09/28 16:43:47.61 Fe82xzWC.net
意味がわからない問題があるよ
782:デフォルトの名無しさん
15/09/28 18:09:55.85 Db5CMPMc.net
上のほうで出てるけど、Java仮想マシン仕様って今でも読む価値あるの?
出版14年も前とか。
783:デフォルトの名無しさん
15/09/28 19:43:19.04 LBl+tZJS.net
>>782
JVM上で動く言語を作りたいか、JVM自体を作りたい場合に読んだ方がいい
読む価値が有るかは人次第だけど、俺は読んで良かったと思う
784:デフォルトの名無しさん
15/09/28 20:18:29.20 IganTOXe.net
>>783
JVM上で動く言語か、JVM自体を作ったの?
785:デフォルトの名無しさん
15/09/28 20:34:54.76 Db5CMPMc.net
>>783
1.8になってから、VMの仕様が変わってるっぽくて悩んでるんだ(perm→metaspace)
あえて古いもの覚えると勘違いするのが怖くて悩んでる。
786:デフォルトの名無しさん
15/09/28 21:19:15.69 Db5CMPMc.net
注文しちゃった超楽しみ(^ω^)
787:デフォルトの名無しさん
15/09/28 21:29:27.05 EG6Yawex.net
Java 8のVM仕様が出たのは一年半前だが
14年前とか言っているアホは何を見たんだ
788:デフォルトの名無しさん
15/09/28 23:44:49.41 M+wDm3z6.net
>>787
Java仮想マシン仕様第2版の話だろ
この本の存在も知らないモグリが居たとは
789:デフォルトの名無しさん
15/09/28 23:51:05.26 1QBrvxmW.net
皮肉ってるだけだろw
790:デフォルトの名無しさん
15/09/29 11:01:28.07 Z77N0Fo3.net
質問だけど
引数として与えられた金額から、その税額を求める共通関数を作成せよ。
税率は5パーセントとし、引数の型は、文字列型と数値型(BigDecimal) の両方をオーバーロードする形で用意する。
又、税率も引数に加えた共通関数も用意し、金額のみを引数とする共通関数は、金額、税率を
引数とする共通関数を呼び出す形で作成せよ。
て問題があって
金額と税率を引数にして、{金額×(税率/100+1)}を返す関数と
金額を引数にして、上の関数(税率は5固定)を呼び出す関数をつくるっていう認識であってる?
791:デフォルトの名無しさん
15/09/29 11:33:06.99 X6TN46WZ.net
public BigDecinal tax(String price) {
return tax(new BigDecimal(price));
}
public BigDecimal tax(BigDecimal price) {
return tax(price, new BigDecimal(5));
}
public BigDecimal tax(BigDecimal price, BigDecimal rate) {
return price.multiply(rate).divide(new BigDecimal (100);
}
scaleの調整や定数のstatic化は適当にやって
値段がdecimalってのがそもそも??って感があるので実用的なメソッドじゃない気もする
792:デフォルトの名無しさん
15/09/29 12:02:26.06 Z77N0Fo3.net
>>791
お、コードまで貼ってくれたのかありがとう
参考にする
793:デフォルトの名無しさん
15/09/30 19:01:56.03 aWecI0VT.net
スッキリ分かるjava入門をほぼ理解したがこのまま実践編に移るのが順当な流れなのだろうか
最終的な目標はゲームを趣味で作りたいんだがどのレベルまで行ったら作るのに困らないのかな
794:デフォルトの名無しさん
15/09/30 19:13:42.28 xf5T+F9N.net
どんなゲームなの。
2Dなら同人でも作ってる奴多いし、逆に最新家庭用ハードだと優秀な奴が集まってもデスマでしょ。
795:デフォルトの名無しさん
15/09/30 19:46:54.87 aWecI0VT.net
趣味で作ろうかなーレベルだから大したものではないかな
最新ハートとかそんな高いレベルでなくフリーゲームくらい
796:デフォルトの名無しさん
15/09/30 19:53:49.00 BJ/onbbl.net
どんなゲームつくるかじゃなくて、どのプラットフォームで作るか決めてあるの?
797:デフォルトの名無しさん
15/09/30 19:57:37.76 xf5T+F9N.net
どんなゲーム作りたいかイメージ
↓
必要そうな知識がどんなものか調べる(Java以外に必要な技術(例えばDirectX)やら、移動とか当たり判定みたいな処理)
↓
サンプルになりそうな物探したりして、なんとかいけそうな程度の物を試行錯誤しながら作る。
↓
無理だったら、諦めて投げてしまう前にちょっとハードル下げる。
798:デフォルトの名無しさん
15/09/30 20:21:27.52 aWecI0VT.net
>>796
答え方が合ってるのか分からないがwindows
>>797
ありがとう
スッキリ分かるjavaの実践編はどちらかというとチームで設計して行く時に役立つ知識
みたいな説明だから個人でやる分にはやらなくていいのかね
799:デフォルトの名無しさん
15/09/30 21:15:56.84 xf5T+F9N.net
あと、作ってる最中にカオスにならないよう、フローチャートとか作って、処理の流れを明確に把握出来るようにしたほうがいいと思う。
そうしないと、問題が起きた時、どこでどう間違った処理してるのか分からなくなってくる。
800:デフォルトの名無しさん
15/09/30 21:17:08.40 lOPb6R1h.net
いくら知識をつけても創作意欲は湧かないw
801:デフォルトの名無しさん
15/09/30 21:20:18.66 xf5T+F9N.net
ほんと、意欲というか働きたくねぇ('A`)
802:デフォルトの名無しさん
15/10/01 00:31:29.31 aM/GGmbk.net
>>799
フローチャートって、、
まずは手に馴染むまで写経して、自分のコーディングスタイル(変数名のつけ方、インデント、空行の挿入パターン等々)の確立とIDEに慣れるのが良いと思う
803:デフォルトの名無しさん
15/10/01 10:10:32.11 ETzp/UrE.net
質問いい?
当処理は、入力された複数の金額の通貨毎の枚数を算出する。
当処理は、複数金額入力部、金額入力部、複数計算部、計算部、計算結果出力部の5つのメソッドに分かれる。
複数金額入力部は、金額入力部を繰り返し呼ぶ。
取得した金額が0であった時、金額入力部の呼び出しをやめ、次に進む。
複数計算部は、入力された金額の数だけ計算部を繰り返し呼ぶ。
計算部によって算出された通貨毎の枚数は、加算されていく。
加算された通貨毎の枚数は、計算結果出力部にて表示される。
処理を完成させよ。
て問題があって
URLリンク(ideone.com)
複数入力部と複数計算部の作り方で詰まってる
804:デフォルトの名無しさん
15/10/01 10:32:05.42 252qAE3b.net
>>803
マルチだろ
スレリンク(news4vip板:7番)
805:デフォルトの名無しさん
15/10/01 10:35:01.33 ETzp/UrE.net
すいません明記してなかったです
806:デフォルトの名無しさん
15/10/01 10:46:10.84 MrcZAfOx.net
Hadoopってなに?
807:デフォルトの名無しさん
15/10/01 10:52:39.99 aj+bG4RM.net
GGRKS
808:デフォルトの名無しさん
15/10/01 13:18:29.76 MrcZAfOx.net
Hadoopって今はもうほぼ使われてない技術なのか
使われてない技術なんて使いたくないなぁ
仕事なら仕方ないのか
809:デフォルトの名無しさん
15/10/01 13:25:40.11 CRt8IBqS.net
今後Javaに演算子オーバーロードが導入される可能性とかありますか?
810:デフォルトの名無しさん
15/10/01 19:24:00.10 CTmzacDD.net
ほぼない
811:デフォルトの名無しさん
15/10/01 20:37:12.78 duyHdxwe.net
菱型継承問題保有したし何実装するかわからん
812:デフォルトの名無しさん
15/10/02 08:09:03.72 7Md9hlDd.net
やらないという意思がみんなを守る それが Java
813:デフォルトの名無しさん
15/10/02 20:25:05.49 yguPqzhm.net
Javaってクラス作らずに連想配列みたいな変数作ることってできますか?
もしくはメンバーの後付
814:デフォルトの名無しさん
15/10/02 20:44:03.08 FjrmJ/eh.net
>>813
Map map = new HashMap<key,valcao>;
815:デフォルトの名無しさん
15/10/02 21:55:39.93 qkIomJjk.net
>>814
thank you
816:デフォルトの名無しさん
15/10/02 22:23:02.71 wCPNrE75.net
標準クラスライブラリに、JVMの各種統計データを取得出来るクラスやメソッドはありますか?
817:デフォルトの名無しさん
15/10/02 22:32:32.72 FjrmJ/eh.net
>>816
バージョンなら
URLリンク(www7a.biglobe.ne.jp)
メモリなら
URLリンク(chat-messenger.net)
その他なら
聞け
818:デフォルトの名無しさん
15/10/02 23:10:58.86 FkboZZB1.net
jconsole等のツールを使うのが常套だと思うが
819:デフォルトの名無しさん
15/10/03 08:49:28.01 JIliozMV.net
AbstractFactoryVibratorSingletons
って何ですか?
820:デフォルトの名無しさん
15/10/03 09:58:26.84 ov+5ym6t.net
jconsole APIもあるぞ
URLリンク(www.javainthebox.net)
821:デフォルトの名無しさん
15/10/03 11:07:02.42 7WSimB11.net
特定のJavaオブジェクトがGCで回収された時に通知を受け取って、
Javaオブジェクトに結びつけたC++のリソースを削除する、という事をやりたいのですが
NewWeakGlobalRefでJavaオブジェクトへの参照は作れても
いつGCされたのか知る方法がありません
別スレッドでGCされていないかオブジェクトを監視するしか無いんでしょうか?
822:デフォルトの名無しさん
15/10/03 11:20:51.12 7WSimB11.net
いや、finalizerでC++側にGCされた事を伝えたり、C++リソースの削除をする事は出来ますね
finalizerは必ず呼ばれるとは限らないみたいですが
オブジェクトのリストを作って呼ばれなかったのは手動で削除することにします
823:デフォルトの名無しさん
15/10/03 13:19:50.84 C7I9pgK8.net
JavaのGCでは、リソースを開放するなって、よく言われる
GCが呼ばれるかどうかわからないから、あてに出来ない
824:デフォルトの名無しさん
15/10/03 13:54:33.06 AXD3Zkhu.net
配列でコレクションのunmodみたいなことできますか?
825:デフォルトの名無しさん
15/10/03 14:11:00.30 HaMuPA2h.net
unmodifiable
826:デフォルトの名無しさん
15/10/03 14:29:47.81 FSJefrQg.net
C#で言うところのEF+LINQに相当するフレームワークはJavaにはないのですか?
CQRSのQを実装するために事実上必須なので困っています
827:デフォルトの名無しさん
15/10/03 15:20:42.40 47483UNZ.net
別に困っていない
828:デフォルトの名無しさん
15/10/03 18:46:30.71 4lAqT+rB.net
>>826
ちょっと調べた感じ、
ef に対応するのがJPA(fwというか標準仕様なので実装はいくつかある、hibernateやeclipselinkなど)
linqに対応するのは、java8のstream apiやrxjavaが一番近い気がする。
829:デフォルトの名無しさん
15/10/04 19:42:48.08 k/Vv5opt.net
>>828
あるんだ
調べてみるよありがと
830:デフォルトの名無しさん
15/10/05 11:05:09.48 u3hyVcdr.net
コールスタックってどうつかうん
831:デフォルトの名無しさん
15/10/05 12:48:04.48 bK3zO06R.net
call stack.push(2);
call stack.ppo();
832:デフォルトの名無しさん
15/10/05 14:10:55.24 u3hyVcdr.net
はぇ~
833:デフォルトの名無しさん
15/10/05 18:19:43.53 rn+iCnUk.net
Javaのリフレクションを擬似コードで説明する場合、どう書いたらいいでしょうか?
834:デフォルトの名無しさん
15/10/06 00:04:31.63 Vnj5iTPR.net
Javaの文法や周辺知識をマスター?してる人ってどれくらいいるんでしょうか?
基本文法やクラスライブラリ、デザインパターン、サーブレットやJSP、その他周辺技術とか調べてると、とても覚えきれる量に見えません。
しかも機能追加や仕様変更とか追っていかないとだめでしょうし・・・
835:デフォルトの名無しさん
15/10/06 00:35:28.05 cmfvnRKg.net
>Javaの文法や周辺知識をマスター?してる人ってどれくらいいるんでしょうか?
「あらゆるライブラリや周辺技術について、その使用を細部に至るまで全て暗記している」をマスターと呼ぶならそんな奴はいないだろうけれど
それは「六法全書の全文の内容をページ数、行数に至るまで暗記する」並みに無駄なことだよ
「一通りの技術についてメジャーどころは空で書けるし、マイナーな機能でもリファレンスを見ればすぐ組み込める」くらいなら
凄腕プログラマの中にはいくらでもいるでしょう
>しかも機能追加や仕様変更とか追っていかないとだめでしょうし・・・
Java一本でやってるなら大変かもしれないけど、日頃からあらゆる技術に興味を持っているならそんなに大変でもないだろう
例えば1.8で加わったlambdaだって、以前から関数型言語を触ってた人間にとっては真新しいものではない
836:デフォルトの名無しさん
15/10/06 00:48:24.21 dJ9Q50Vo.net
>>834
気にしえもしょうがないことを気にするな
837:デフォルトの名無しさん
15/10/06 03:52:10.36 WpOPRm0R.net
Webアプリケーションを作りたいのですが、jspとplayやspringと言ったものは何が違うんですか?トムキャット?はplay等とは違うのですか
838:デフォルトの名無しさん
15/10/06 09:55:13.24 fKlhv1+D.net
>>837
お前には無理
839:デフォルトの名無しさん
15/10/06 11:11:57.23 IzSUHdTs.net
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
840:デフォルトの名無しさん
15/10/06 11:32:01.75 RSfUahCm.net
質問
URLリンク(ideone.com)
上のコードついて、コンパイル、実行に関しては問題ないんだけど
これだと一つ目の関数がつかえてなくて意味がない状態なので
どうなおせばいいのか教えて
841:デフォルトの名無しさん
15/10/06 12:14:12.40 INDZN28+.net
>>840
しゅくだいかな?
842:デフォルトの名無しさん
15/10/07 19:15:27.35 Xqh9D43e.net
何をやろうとしてるのか目的が明らかじゃないけど、
bunkatsuを呼び出してる6行目ではStringの引数3つをハードコーディングしてるわけだから、
単純に①を使うように直せば良いんじゃないか
- String[] i = bunkatsu("a b c d e f","0","5");
+ String[] i = bunkatsu("a b c d e f");
843:デフォルトの名無しさん
15/10/07 19:59:01.58 Mi2WdlHM.net
= String[] i = bunkatsu("");
caught exception
...
844:デフォルトの名無しさん
15/10/07 22:28:40.69 PLtdWTmz.net
ネイティブなjavaの話ではないんですが
javaからAPI叩くswtっていうextensionのなかにウインドハンドラをとるための
int hWnd = OS.FindWindow(null, new TCHAR(OS.CP_INSTALLED,
windowTitle, true));
っていうのを使ってるプログラムを以前作ったんですけど
32bitXPのころ動いてたのが今64bit 7 のPCで動かすと
Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.swt.internal
.win32.OS.FindWindow(Lorg/eclipse/swt/internal/win32/TCHAR;Lorg/eclipse/swt/inte
rnal/win32/TCHAR;)I
っていうエラーがでます
win32ってあるので64bit化したせいで型があってないせいだと思うんですが
これ64bit 7 上で動くようにできませんか?
やりたいのは窓を探してきて左上の座標とりたいだけなので
ほかのライブラリでも何でもいいんですが…
よろしくお願いします
845:デフォルトの名無しさん
15/10/08 00:05:53.52 LWmNpFor.net
>>844
64bit版のswtのライブラリは使ってるの?
846:844
15/10/08 01:39:37.79 OsCqn7oj.net
>>845
ダウンロードにはとくに64bit版として区別されたパッケージはなかったんですけど…
847:デフォルトの名無しさん
15/10/08 01:59:28.15 BJ6kMZLU.net
今の安定版だと swt-4.5-win32-win32-x86_64.zip って64bit対応を示す名前がついてるね。
これはもう使ってるのの上手く行かないってこと?
848:デフォルトの名無しさん
15/10/08 02:45:36.19 OsCqn7oj.net
すいません探し方が悪かったみたいですね
swt win32 extension で検索してでてくるところはダウンロードが1つしかなかったので
そのファイル名で直接検索したのをいれたらうまくいきました
ありがとうございました
助かりました
849:デフォルトの名無しさん
15/10/08 03:41:16.87 l1fhWYWM.net
ジェネリックで
public void <E> List<E> m();
というメソッドがあるときにvoidのあとの<E>はなぜ必要なのでしょうか?
850:デフォルトの名無しさん
15/10/08 09:35:54.45 IQ3lHv6X.net
>>849
想像だけど、コンパイラがEってクラスと区別するため。ちなみにコード例だとTとか1文字が殆どだが普通のクラス名みたいな総称型も宣言可能
851:デフォルトの名無しさん
15/10/08 09:46:56.12 ze+KkH9u.net
>>849
戻り値の型が2つあるのはなぜ?と思ったりするがそれは置いておいて…
Tは型パラメータと呼ばれるもので、別の型に読み替えられる部分。
この宣言がないと、Tという名前のクラスがない時にコンパイルエラーになる。
852:デフォルトの名無しさん
15/10/08 09:47:29.14 ze+KkH9u.net
>>851
Tじゃなかった、Eだった
853:デフォルトの名無しさん
15/10/08 09:55:40.32 Ro3hhxH4.net
クラスをジェネリックにしないでメソッドだけをジェネリックにするときに、メソッドの戻り値の型の前に<E>とか仮型引数の指定を入れる必要があるんじゃないの
854:デフォルトの名無しさん
15/10/08 21:10:09.98 c5bB1sZH.net
aをbで割る際、余りが出る場合は小数点一位まで、余りなしの場合は
小数点なし(.0とかにしない)ってformat関数とかの一文でスマートに書くのは無理ですか?
855:デフォルトの名無しさん
15/10/08 22:27:12.49 ynCxIuiK.net
C:\に『java』というファイルを作成しそこにプログラムを入れて実行しようとしたのですが
メインクラスが見つからないと出ます
昨日はできたのにどうしてでしょうか
856:デフォルトの名無しさん
15/10/08 23:26:49.12 ynCxIuiK.net
>>855
sugaku.javaですべてのファイル形式で保存しました
javac sugaku.javaを入力しても、『ファイルが見つかりません』ばかり出ます
857:デフォルトの名無しさん
15/10/09 00:12:48.76 a9mGxvsP.net
java ファイルが見つかりませんで調べると一番上に出てくるような項目は試したの?
858:デフォルトの名無しさん
15/10/09 00:50:23.94 I9RA2luF.net
>>857
環境変数設定にミスはありません
また、ファイルの位置は上にもある通りC:\に『java』フォルダを作成しそこに入れてあります
昨日練習したプログラムも見つからない状態です
859:デフォルトの名無しさん
15/10/09 01:05:57.85 KCxg15Jd.net
>>858
カレントディレクトリはどうしてるの?
860:デフォルトの名無しさん
15/10/09 01:19:19.50 I9RA2luF.net
>>859
変数設定のカレントディレクトリですか?
元の場所の次に『;C:\Program……』と場所を入れて最後に\binと入れていますが間違っていますか?
861:デフォルトの名無しさん
15/10/09 01:34:12.18 sM7R5CVC.net
javac -version って打って返ってくる?
862:デフォルトの名無しさん
15/10/09 01:43:20.17 I9RA2luF.net
>>861
javac 1.8.0_60、今入れているversionの名前が出てきますね
863:デフォルトの名無しさん
15/10/09 01:51:39.70 sM7R5CVC.net
dir の実行結果は?
864:デフォルトの名無しさん
15/10/09 02:27:09.91 I9RA2luF.net
>>863
デスクトップ、ダウンロード、インテル、ミュージック、ピクチャーとPCによくあるリンクの名前が出てきますね
865:デフォルトの名無しさん
15/10/09 02:36:04.20 sM7R5CVC.net
それってホームディレクトリの結果じゃないの?
sugaku.java は dir の出力にある?
Cドライブの直下に作ったんじゃなかった?
866:デフォルトの名無しさん
15/10/09 02:40:17.95 I9RA2luF.net
Cドライブにフォルダを作りその中に入れたのでCドライブ直下にあることになるかと
これってコマンドプロンプトの実行先が変なことになってるぽい?
867:デフォルトの名無しさん
15/10/09 02:40:57.88 I9RA2luF.net
あ、dirの結果にはありませんね
sugaku.javaはおろか昨日練習で作ったものもすべて
868:デフォルトの名無しさん
15/10/09 02:41:49.43 RvyK0JdS.net
それを直下とは言わんだろw
869:デフォルトの名無しさん
15/10/09 02:48:43.21 a9mGxvsP.net
どれでもいいからやれ
・クラスパス設定する→$javac -classpath .:C:\java
・作ったjavaファイルの絶対パスを指定する→$javac C:\java\suaku.java
・windows 7とかなら$cd /d C:\javaを実行後に同じことしてみる
870:デフォルトの名無しさん
15/10/09 02:50:27.10 a9mGxvsP.net
あ一番上できねーかもしんねーや
一番下以外普段やらねーからあんま知らない
871:デフォルトの名無しさん
15/10/09 03:00:13.47 nq9OXxQm.net
YSRKENさんJavaでのスクリーンキャプチャアプリ完成させたんですね、おめでとうございます
872:デフォルトの名無しさん
15/10/09 03:00:58.82 nq9OXxQm.net
YSRKENさん
やたらstaticを使われているのは速度重視からなんですか?
873:デフォルトの名無しさん
15/10/09 03:09:51.38 sM7R5CVC.net
>>855 の説明は Cドライブにjavaディレクトリを作成して、その中にsugaku.javaファイルがあるってことかな?
自分でもそのあたりの理解が曖昧なんだろうけど、Javaに関する環境変数云々の前に、Windowsのコマンドプロントでのファイルやディレクトリの操作や移動の方法を覚えた方がいい。
>>869 がそれぞれ何を言っているのかが理解できれば、自分で問題に対処できるようになる。
874:デフォルトの名無しさん
15/10/09 03:50:15.12 OCSMkWDX.net
今いるディレクトリ(カレントディレクトリ)が「>」の左に表示されている
cdコマンドを引数なしで打つことでも確認できる
ここでjavacをしようとしても、sugaku.javaはC:\javaに存在していて、
カレントディレクトリ(恐らくC:\Users\ユーザー名だろう)にはないのだから、できない
C\:javaに移動した後にコンパイルせよ
cd \java
javac sugaku.java
875:デフォルトの名無しさん
15/10/09 14:02:12.04 UQvVHIvt.net
Javaの勉強はじめたいのですがJavaにおける、C++でいうプログラミング言語C++(ビャーネ本)のような書籍は何でしょうか?
つまり原本、聖典と俗称される書籍です。
876:デフォルトの名無しさん
15/10/09 14:21:07.70 UvHfkzt8.net
ヨハネの書
877:デフォルトの名無しさん
15/10/09 19:46:18.37 BsNT5RE7.net
Aクラスを継承したBクラスのオブジェクトしか生成しない場合って
そのBオブジェクトにnull代入してもAクラス部分は開放されない?
というかそもそもオブジェクト生成しない継承元クラスは作らないべきですか?
878:デフォルトの名無しさん
15/10/09 20:11:18.96 h1z+DBkO.net
メソッド内のローカル変数はスレッドセーフらしいのですが、スレッド内で作成したインスタンスはスレッドセーフですか?
※ローカル変数がスレッドセーフなのは、ローカル変数がスレッド固有のスタック内にあるという理由だと思っていますが、
インスタンスの実体はヒープで共有されるので、スレッドセーフではない?
public void testMethod(){
JTextArea textarea = new JTextArea()//スレッドセーフ?
}
879:デフォルトの名無しさん
15/10/09 20:21:01.43 sDmRIR0V.net
>>877
Bのインスタンス生成時にAのコンストラクタも(暗黙的にしろ)呼ばれるはずなので、
AをロードせずにBのインスタンス生成は無理だったような。
880:デフォルトの名無しさん
15/10/09 20:33:45.30 sDmRIR0V.net
>>878
インスタンスはヒープに置かれるのでスレッドセーフではない、という理解で良いはず。
881:デフォルトの名無しさん
15/10/09 20:50:36.50 I9RA2luF.net
>>868-874
ありがとうございます!
おかげでうまくコンパイルできました!!
882:デフォルトの名無しさん
15/10/09 22:38:01.93 h1z+DBkO.net
>>880
ありがとうございます。スッキリしました。
883:デフォルトの名無しさん
15/10/10 12:41:45.54 0lXvd5Js.net
>>877
BクラスのオブジェクトはA部分とB部分がくっついて一つのオブジェクトなので、
B部分だけを生成するとか取り出すとか破棄するなんてできないよ。
オブジェクト生成しない継承元クラスなんてよくあることだし。
884:デフォルトの名無しさん
15/10/10 13:50:14.41 b/aCg2KH.net
Javaの勉強を最近始めて、簡単なアプリでもソフトみたいの作りたいんだけど、
今の進み具合が変数宣言くらいまでで全然進んでなくて・・・
独学だからちょっとしたことでエラーが出るとすぐに折れてしまって
結果今のところで右往左往している状況で、やっぱり何か目標があればいんだけど。
自分の理想は、基本的なコードの書き方を勉強しながら、
一方で出来上がった何らかのプログラムをトレースしながらとりあえず作ってみたいって感じです
もし、出来上がったプログラムを公開しているサイトを知っている人がいたら教えてくれますか?
他にアドバイスあったら何でもいいのでください。
※持っている本・スキッリわかるJava入門
885:デフォルトの名無しさん
15/10/10 14:53:59.79 u8n9jLW2.net
向いていないので他の事をやる
886:デフォルトの名無しさん
15/10/10 15:32:17.82 NbY3/Ke0.net
向いてなさ過ぎだし、javaとかは無理だから javascriptレベルで経験積んだらよろし
887:デフォルトの名無しさん
15/10/10 16:37:12.59 2xZg/X0x.net
javascriptってjavaよりレベル下なん?
888:デフォルトの名無しさん
15/10/10 16:38:18.29 nLYmShQH.net
レベルってなんだ?
889:デフォルトの名無しさん
15/10/10 18:34:12.47 NbY3/Ke0.net
エラーが出て折れるような奴がCとかjavaでプログラミング出来るとは思えんし、そんな奴が作ったソース見たくもない
WEB系で適当に遊んでる程度にしてくれ
890:デフォルトの名無しさん
15/10/10 18:37:50.70 /45oeGFK.net
スッキリ分かるはやり易くないか?
俺もこの前やって全部終わったから実践編今やってる
891:デフォルトの名無しさん
15/10/10 19:48:55.35 TA42U0FR.net
サーブレットについて教えてください。
以下のようなことを考えています。
JSPからサーブレットを呼び出す → サーブレットで何らかの判定を行う → 元のJSPに戻って(呼び出して?)判定結果を表示する。
この場合、判定結果はどのように戻すのが一般的でしょうか?
ResponceはsetAttributeがないので、Requestに追加して返すものなのでしょうか?
892:デフォルトの名無しさん
15/10/10 21:28:34.29 uZ4C7Mol.net
調べたらそれで良いみたい。
結局RequestってRequestスコープって意味なんだな。
要はrequest responseって別に対応してるわけじゃないのね。
893:デフォルトの名無しさん
15/10/11 19:53:50.37 /K+UgrZV.net
同じくtomcatのservletを書いているのですが、例外はどこで受け止めてログに出せばよいでしょうか
明らかにここで処理して上に投げない という場所があればそこでログを出すか、又は処理したから出さない選択肢を取れるのですが
とりあえず上に投げとこ。投げとこ を繰り返してロガーに残らず落ちてしまいました。
doGetメソッド全体をtry{hogehogehoge...}catch(Exception e){logger.error(e);throw e;}で囲うしか無いのでしょうか
894:デフォルトの名無しさん
15/10/11 20:10:50.27 xslSO3l/.net
例外キャッチ用のフィルターを作っておけば良い
ここを例外の最終到達点にすれば、あとはどんな処理でもできる
895:デフォルトの名無しさん
15/10/11 21:52:06.20 cfPF8ERb.net
なるほど、勉強になる
896:デフォルトの名無しさん
15/10/11 22:47:35.34 AcvU8gg7.net
普通、ログレベルを設定してファイルに書き出すだろ。
エラーが発生してそれを追えないなんてありえない。
897:デフォルトの名無しさん
15/10/12 11:28:14.88 IvlFe/vj.net
サーブレット直接触ることなくなって久しい。せいぜいデバッグでリクエストやレスポンスの中身覗く程度になってる。
他の人達はどんなFW使ってるの?
うちは今はspring-boot(spring-mvc 4.x)メインなんだけど、業務系ならEE5や6が多いのかな。
898:デフォルトの名無しさん
15/10/12 14:10:57.09 TzA4wVPG.net
ライブラリJarを作成しようかと思っているのですが、そのライブラリの中で他のライブラリを利用する場面が出てきてしまいます。
これを配布する場合、ライブラリJarの中に他のライブラリを含める事になってしまうと思うのですか、これは正しいやり方なんでしょうか?
899:デフォルトの名無しさん
15/10/12 14:14:57.11 PAJ/NWkj.net
データベースに接続する際、
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
とするのが普通みたいなのですが、newInstance()の戻り値はどこへ行っているのでしょうか?また、
oracle.jdbc.driver.OracleDriver driver = new oracle.jdbc.driver.OracleDriver();
とするのとは、何が違うのでしょうか?
900:デフォルトの名無しさん
15/10/12 14:52:45.68 5OGIyOb6.net
>>899
newInstance()の戻り値は使われてないね。newInstance()がなくても動くはずよ。
Class.forNameしたときにOracleDriverのstaticイニシャライザが呼ばれてその中で
ドライバのインスタンスが作成されてDriverManagerに登録される。
Class.forNameとnew OracleDriver()は、ドライバを文字列で示すか、
識別子で示すかの違いでしょね。文字列で示すと、外部のファイルから
その文字列を受け取るようにしておけばプログラムを変えずにドライバを
入れ替えることができる。DBを変える予定ないんてないし、ドライバも変えません
ってことならnew oracle.jdbc.driver.OracleDriver()でも問題ないかと。
901:デフォルトの名無しさん
15/10/12 15:37:37.95 qTM2HYkT.net
>>898
jar自体は分けた状態で配布した方がいいんじゃないかな。
ライブラリを利用する人が、バージョン違いの同じ依存ライブラリを利用する時に、クラスパスの指定によって変なエラーが出たりするので。
902:デフォルトの名無しさん
15/10/13 16:10:38.77 Ii59yWoc.net
BufferedImageとImgageIO.writeを使ってインターネット上の画像をダウンロードして保存するプログラムを書いているのですが、アニメーションgifの場合保存されるのは最初の1フレームだけで、アニメーションになりません。
URL url = new URL("URLリンク(example.gif"));
URLConnection connection = url.openConnection();
BufferedImage bufferedImage = ImageIO.read(connection.getInputStream());
File saveFile = new File("example.gif"); ImageIO.write(bufferedImage, "gif", saveFile);
アニメーションをアニメーションとして保存する方法はありませんでしょうか?
903:デフォルトの名無しさん
15/10/13 16:33:26.79 9OilHHIY.net
>>902
単にファイルで保存したら?
java url ファイル保存 でぐぐれ
904:デフォルトの名無しさん
15/10/13 16:56:15.26 jHF5mps7.net
BufferedImage にした時点で単一画像しか扱えないんじゃないかな
よみこんだ InputStream をそのまま FileOutputStream に書き出せばいいと思う
905:デフォルトの名無しさん
15/10/13 19:23:18.69 vTSCKgfc.net
>>903
>>904
ありがとうございます。
ダウンロードしたものを表示するのにBufferedImageを使いたかったのでこのコードを使っていたのですが、表示には一度キャッシュしたものロードして使う事にしたいと思います。
906:デフォルトの名無しさん
15/10/13 20:49:09.71 jHF5mps7.net
URLリンク(www.javainthebox.net)
javax.imageio.ImageReader#read(index)
ってのを使えば複数画像データの何番目を読むとかできるみたいね
907:デフォルトの名無しさん
15/10/14 20:32:27.43 oEpS0TI9.net
正規表現で
「"abc":」「"defghi":」「"pq123"」
みたいに"hoge":の文字列を指定するにはどうすればよいでしょうか?
"^¥"$¥":" では間違いですよね?
よろしくお願いします
908:デフォルトの名無しさん
15/10/14 21:19:40.30 qepmoyFz.net
"\"[a-zA-Z1-9]+\":"とかそんなん
909:デフォルトの名無しさん
15/10/15 16:19:54.07 uSf6jKZU.net
samegameの隣あったマスの削除の判定を再帰使わずに実装する方法がわかんねぇ
910:デフォルトの名無しさん
15/10/15 17:00:09.51 QWsMOM9x.net
そりゃこまったねぇ
911:デフォルトの名無しさん
15/10/15 19:20:28.39 EQ6PpGqU.net
>>909
for文じゃだめかな
912:デフォルトの名無しさん
15/10/15 19:49:50.51 8HLDhcsw.net
.Net Frameworkのリファレンスと比べて、Java APIのドキュメントの日本語が読みづらいのは異常ですか?仕様ですか?
913:デフォルトの名無しさん
15/10/15 19:53:58.22 hO11ftzh.net
君の日本語が読み辛い
914:デフォルトの名無しさん
15/10/15 20:32:43.98 r3qFDNAG.net
有料と無料を比べてドヤ顔 MS厨
915:デフォルトの名無しさん
15/10/16 01:26:33.07 Hw46kEBB.net
非常に低レベルな質問で申し訳ないんですが
最近javaの勉強を始めユークリッドの互除法を使って最大公約数を求めるプログラムを組んだのですが
変数aとbが割り切れない数字の時に処理が終わらないプログラムになってしまいました
そういった場合に1を返すようにプログラムをしたいのですがいまいち方法が思いつきません
どういった手法があるかご教授いただけると助かります
短いのでクソース画像
URLリンク(minus-k.com)
916:デフォルトの名無しさん
15/10/16 01:56:51.94 Bu3hht9P.net
>>915
試してないけど、xとyの大小関係が逆転したらbreakするとか。
917:デフォルトの名無しさん
15/10/16 02:41:56.43 o+L9gctV.net
i=x%y は最初の1回しか実行されないよ
for(A; B; C)
のA最初の1回のみで変数宣言が可能
Bは終了条件でfalseになるとループ脱出
Cはループの最後に毎回実行される
答えかくのは簡単だけど自分で考えたほうがいいからまた動かなかったらおいで
918:デフォルトの名無しさん
15/10/16 03:51:49.75 EhkfcKR/.net
>samegameの隣あったマスの削除の判定を再帰使わずに実装する方法がわかんねぇ
4近傍のラベリング処理ってやつで塊ごとに固有番号振ればいいだけだよ
消すときは同一の番号のやつを消せばいいだけ
ぷよぷよとかも同じやりかたで行ける
919:デフォルトの名無しさん
15/10/16 04:11:49.24 AUXmOgsp.net
androidやWEBアプリをつくっていて、SQL文がSQLを学べる本とは違って
selectionなどの引数を用いておこなうメソッド経由での文だらけで、仕組みがよくわからない。
あれを練習したいが何点検索するといいんでしょうか。生のSQL文は理解してるから
1時間もあったらすぐわかるだろうけど
920:デフォルトの名無しさん
15/10/16 04:57:29.58 gPHlhu4r.net
>>919
日本語でおk
921:デフォルトの名無しさん
15/10/16 05:08:13.11 AUXmOgsp.net
SQLの本
SELECT * FROM 2ch
みたいな書き方だけど
プログラムは
.query(selection. order)
みたいに書くということです、後者の練習がしたいが該当項目が出てくる検索方法がわからない
922:デフォルトの名無しさん
15/10/16 05:23:26.71 scZWB8TV.net
いまテザインパターンの本を読んで感動しまくっているんですが
仕事でJavaを使ってる人ってどのくらいの人がデザインパターンを理解してるんですか?
ごく少数の数パーセントくらいですか?
それともこのくらいは理解できないと仕事できないからほぼ100パーセントですか?
あるいはJavaの仕事してる人でも半分くらいの50パーセントくらいですか?
923:デフォルトの名無しさん
15/10/16 05:59:45.15 VmTs2xyV.net
>>909>>911
for文で書けたぞ!
URLリンク(paiza.io)
924:デフォルトの名無しさん
15/10/16 06:15:33.66 VmTs2xyV.net
再帰なんかよりfor文のほうがスッキリするよな
925:デフォルトの名無しさん
15/10/16 08:07:11.04 jXGfcQ6G.net
>>921
C#のLinqを知っているかい?
LinqもSQL文を、プログラムで処理しやすいように、
関数風に書く
926:デフォルトの名無しさん
15/10/16 14:47:59.79 pkP/rzhV.net
>>922
どれ位の人が知ってるかは、周りの環境次第としか言えない。
他人のコードレビューする立場なら主要なパターンは当然知ってるべきかな。
経験上外注から上がってくるコードは割とクソが多い。
マイナーなパターンは使うべき状況にあまり遭遇しないから存在と概要だけ覚えとけばいいと思う。
個人的にはパターンを使うよりも、ちゃんと責務分割されててコメントや命名が分かりやすいコードになってるかが重要かな。
その上で適切にパターン使ってるならもう言うことなし。
927:デフォルトの名無しさん
15/10/16 16:27:51.82 nJkk2TZw.net
>>922
受け入れがたいだろうが貴方はデザパタを理解していない
そして、周りの人も理解していない
デザパタはそれを必要とする人がコソコソと用いるだけのものであって
多くの人のために開かれたものではない
多くの人にとっては無用の長物、ネコに小判
928:デフォルトの名無しさん
15/10/16 16:47:35.49 wRaOrUW4.net
カルト教かよ
お前は理解してんのか?説明してみろ
929:デフォルトの名無しさん
15/10/16 18:20:06.85 GetQEbg4.net
魔法の杖はありません
930:デフォルトの名無しさん
15/10/16 21:26:56.45 QAbFpyNL.net
デザパタって左足ブレーキみたいなもんで
ニワカが嬉しがっちゃう用途になりがち
本当に必要で分かってる人だけがコッソリそれをすればいい
聞きかじりのメリットとやらを宣伝しなくていいし
ブログに書いたり掲示板で話題にしたりしなくていい
ヘンに使命感をもって学習しようとしたりもしなくていい
931:915
15/10/16 22:24:00.58 FdWAXHN2.net
解決しました
ありがとうございます!
932:デフォルトの名無しさん
15/10/16 23:16:22.55 e8+chBx7.net
ソースコードの何割も占める様な技術ではない