トップページ⇒tech
1002コメント343KB

Java入門・初心者質問スレ [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/05/12(木) 05:18:33.40ID:nzHoBPh8
Java初心者のためのスレッドです。
0002デフォルトの名無しさん2016/05/12(木) 07:04:37.72ID:/eB9RrGz
< `∀´>ニダー
0003デフォルトの名無しさん2016/05/12(木) 11:54:40.41ID:LTEnCbUt
すいません
public以外の修飾詞って何のためにあるんでしょうか
春からjavaはじめてなるべくせまい範囲でアクセスできるように書いた方がいいと教わったのですが意味がわかりません
とりあえずprivateってかいておいてコンパイルエラーがでるたびにpublicに書き直す必要があって
だったらはじめからpublicってかいておいたほうがprivateの完全上位互換だと思うのです
0004デフォルトの名無しさん2016/05/12(木) 13:52:26.21ID:zeyNygYO
素人は、フィールドをprivate、メソッドをpublicにしておけ。
フィールドをクラス外から、アクセスできないようにする(カプセル化)

もし、外からアクセスされて、値を変えられたら、正常に処理できない

外からフィールドにアクセスしたいのなら、そのフィールドに、
getter/setter(アクセッサ)を宣言して、それを通してアクセスする
0005デフォルトの名無しさん2016/05/12(木) 14:08:00.84ID:LTEnCbUt
obj.val++;

みたいなコードをかきたいのにわざわざ

obj.setValue(obj,getValue() + 1);

みたいなコードをかかないといけなくなるってことですよね?

>外からアクセスされて
の部分がよくわからないのですが
具体的にどういうケースで問題になるのでしょうか
0006デフォルトの名無しさん2016/05/12(木) 18:12:02.87ID:zeyNygYO
プログラム開発で一番ダメなのが、グローバル変数を使ったり、
オブジェクト同士・モジュール同士の密結合。
密結合で開発していくと、いずれスパゲティ・泥団子になっていって、修正できなくなっていく

どこかを修正すると、他の部分にバグが生じる。
1か所修正すると、数か所にバグが出るようになる

だからオブジェクトなどをカプセル化して、狭いスコープに封じ込めて、
外からいじれないようにする(疎結合)

つまり、フィールドをprivateにして、外からオブジェクトの状態を変える場合は、
publicのメソッド・アクセッサを通して、アクセスする
0007デフォルトの名無しさん2016/05/12(木) 18:30:03.02ID:zeyNygYO
Java・Windows・LinuxのAPIを使う場合でも、
オブジェクトの中のフィールドを設定することはまずない

もし、obj.a = 1; obj.b = 2; のように、直接フィールドに設定すれば、
フィールドの詳細を理解しなくてはならないから、すごく大変

設定する順序は、先にaに設定してから、bに設定するとか、
そういうことを考えるだけでも、開発はできなくなる

例えば、ファイルを読むのでも、obj.read() とか、
オブジェクトの詳細を知らずに、簡単に使えなければならない
0008デフォルトの名無しさん2016/05/12(木) 20:01:25.53ID:LTEnCbUt
うーん… 難しい

プログラム上便利に短くかけることが運用しやすいとは限らないってことですか…
いまいち実感できないですけど…
0009デフォルトの名無しさん2016/05/12(木) 21:21:12.65ID:hY0jzmnf
>>7
フィールドの詳細を知らなくちゃいけないから大変www確かにお前の頭では大変そうだな
0010デフォルトの名無しさん2016/05/12(木) 21:23:21.11ID:Vmwu/plU
>>8
C#みたいにプロパティのある言語使ってると、javaは冗長で嫌になるよね
0011デフォルトの名無しさん2016/05/13(金) 06:59:23.53ID:5RjflIb0
xをそのままpublicにしちゃうとどこからでも読み書き可能になってしまうから
getXはpublicにしとくけど、setXはデフォルトにしといて同パッケージ内からしか書けないとか
柔軟に対応できるというメリットもある
0012デフォルトの名無しさん2016/05/13(金) 15:21:46.75ID:yywl+o9x
最初は、ソースコードの100行目に、obj.a = 1 だけがあり、
簡単なように見えても、次に、200行目に修正が入ると、

if(x == 1){
obj.a = 1
}else{
obj.a = 2
}

こういうようにオブジェクト内の詳細が、外側のスコープに、
ソースコードの飛び飛びの場所に出現する

これがオブジェクト内のスコープじゃないのだから、やってられんわw
0013デフォルトの名無しさん2016/05/14(土) 00:18:07.59ID:MDtr7m89
これまでDB関連ばかりやってたから、言語と言っていいかわからないが、
PL/SQLくらいであとそのPLを動かすためのshくらいしかやったことない。

Javaの資料とか見てると、英語の羅列じゃん・・・
一通りの文法覚えたら、メソッドとException関連をじっくり見た方がいいのかな?
0014デフォルトの名無しさん2016/05/14(土) 08:42:14.37ID:uvV1TjlT
なぜオブジェクト指向で作るのかっていう本読めばいいよ。
0015デフォルトの名無しさん2016/05/14(土) 09:53:58.19ID:fLeelvLJ
>>8
大きなシステムを分担して組む時の話だよ

組織が大きくなると担当をしっかり決めて部外者が勝手に触らない
必要なら決められた窓口を通して依頼や調整をする
それと同じことをプログラム内のルールとしても実践するだけ
0016デフォルトの名無しさん2016/05/14(土) 13:45:29.21ID:5pXvQAwD
>>13
Javaのお進め図書・情報・url
http://ula.2ch.net/test/read.cgi/echo.2ch.net/tech/1457392971/l50

ここに推薦書が書いてある
0017デフォルトの名無しさん2016/05/14(土) 14:31:43.29ID:gAeocMbe
隔離スレのほうがレベル高い話してる…
0018デフォルトの名無しさん2016/05/17(火) 02:55:12.85ID:op8lS/VF
ひとつの利点として
とりあえずsetter(getter)が仲介すると
変数の定義域(値域)が設定出来るってのはあるよね

例えばRGB(r, g, b)で
r=0〜255しかオブジェクト内で想定してないのに外からr =9999とか値を設定されたらオブジェクトがどんな動作するか想定出来ない
setterを噛ませれば引数が0〜255以外の時に値を丸めておいたり出来る

少なくとも外部から値の範囲が汚染されないのは大きい
作る時にオブジェクト内での動作に集中出来る
0019デフォルトの名無しさん2016/05/17(火) 08:11:51.20ID:+pynX6Ny
byte使え
0020デフォルトの名無しさん2016/05/18(水) 18:14:51.82ID:Kc9Ol4u0
工場の機械って工場の人しか使っちゃダメだろ
突然見ず知らずの人が使い出したら困るだろ
アクセス修飾子っていうのは見ず知らずの人に機械を触らせないためのルールだよ

見ず知らずの人が機械を動かすときは工場の人(publicなメソッド)にお願いして、機械を動かしてもらう

そうすれば工場の人は勝手に機械をいじられないし、見ず知らずの人は機械の使い方を知らなくても目的が果たせる。
0021デフォルトの名無しさん2016/05/18(水) 20:56:08.39ID:HhGNLqnc
使う側が理解して使う場合無駄なオーバーヘッドが入るだけじゃん
0022デフォルトの名無しさん2016/05/18(水) 20:58:39.95ID:/QzLYINM
使う側が知ってるならリフレクション
つまり忍び込んで勝手に使う
0023デフォルトの名無しさん2016/05/19(木) 14:42:20.03ID:W+na7P2U
正しく動くようになってから速くするのが鉄則だよ
あんま詳しくないけど関数呼び出しのオーバーヘッドは思いの他、軽いらしい

ゲームみたいなのは、また別なのかもしれんが
0024デフォルトの名無しさん2016/05/20(金) 13:43:38.26ID:l93PzyPZ
javaで

打ち込んだ段数まで順にピラミッド型に数字並べるのってどうするの?

1
2 2
3 3 3
4 4 4 4

は検索ででるけど

1
2 3
4 5 6
・
・
  ・


はでない
0025デフォルトの名無しさん2016/05/20(金) 17:33:39.04ID:L/JKULD4
簡単な方法なら表示用に変数を1個持って、1回表示したら1ずつ加算していけばいい
0026デフォルトの名無しさん2016/05/21(土) 10:44:45.47ID:dQoHFKwA
難しく書くのが難しいな
http://ideone.com/GpApJB
0027デフォルトの名無しさん2016/05/21(土) 14:05:21.39ID:dQoHFKwA
whileとかforとか前世紀の遺物だな
ナウい書き方するとこんな感じ
http://ideone.com/r4YieI
0028デフォルトの名無しさん2016/05/30(月) 01:53:29.89ID:ILfmqIwk
>>27
ナウいが前世紀じゃないかっw
0029デフォルトの名無しさん2016/06/06(月) 07:59:27.97ID:jYEPRp2A
スッキリ分かるjava入門を読んでるいるのですが
コンストラクタの項でそのインスタンス型フィールドの値を初期化できる程度しか覚えられてないんですが
こんな程度で先に進んじゃって大丈夫でしょうか?thisもあまりよくわかってないし読み戻したほうがいいのかな
0030デフォルトの名無しさん2016/06/06(月) 09:15:04.16ID:e+TlXwYN
真面目にやるならAPI仕様を参照できる状態にしてJava言語仕様を暗記
0031デフォルトの名無しさん2016/06/06(月) 11:58:33.14ID:n0tXPRWo
すっきり実践編やってみな
0032デフォルトの名無しさん2016/06/06(月) 18:22:44.32ID:jYEPRp2A
プログラミング自体が入門レベルなので実践編はきついです。
曖昧な記憶でもいいから一回読み切るやり方が正しいんでしょうか?
早く入門レベルを脱したいです
0033デフォルトの名無しさん2016/06/06(月) 18:37:54.69ID:yI68iStU
テトリスを作ってみなはれ
0034デフォルトの名無しさん2016/06/06(月) 19:02:01.23ID:/EU6sUkv
>>32

ブロンズの問題集でもやって見れば?
0035デフォルトの名無しさん2016/06/06(月) 19:44:14.76ID:LbzoRXHI
一回読み終えてまた最初からやり直せばいいのよ
ド初心者なら3周してわからないところを潰すくらいでちょうどいいと思うの
0036デフォルトの名無しさん2016/06/06(月) 20:13:59.73ID:AvO2qKU5
>>32
受験勉強と違うから色々覚えるのが目的になっちゃダメだと思うよ
自分がやりたい事を最小限の知識で実現するように努力した方がいい
一番大事なのは何をプログラムしたいか、そのためにはどういうプログラムが必要か考える事だと思う
0037デフォルトの名無しさん2016/06/06(月) 20:40:56.36ID:mpQlVXrL
暗記しようとする必要はないと思う。試験するわけじゃないしな。
したければしても良いけど、わからないことに出くわしたらそのたびにそれについて調べるというのを繰り返せば自動的に記憶にも残る。
0038デフォルトの名無しさん2016/06/07(火) 00:56:55.92ID:41OqMrsx
そもそも、その本は間違っているかも知れないし、
特定の本を信用しても、仕方がない

誰も君に、その本を100%暗記しろなんて頼んでいないし、
もし頼まれたとしても、聞かなければよいだけ

100%理解せずに、読めばいい。
100%理解できないと、先に進めない人をよく見かけるけど、
そういう人は、先には進めない

すべての物事にはリスクがある。
50%ほど理解したら先に進む方が、むしろリスクが少ない

これこそ生来、人間が持っている忘却力なのだ。
自分の脳を通すことで、不必要なものを忘れて、
重要なことだけを覚えて、人生を効率化するようになっている

100%暗記できるような人は、むしろ何が重要なのか、わかっていない
0039デフォルトの名無しさん2016/06/07(火) 02:24:15.54ID:ip6Cz1PK
なるほど。取りあえずあと100ページで終わるので読み終えてみます。
細かいとこ理解しないで次に進むと凄い気持ち悪い感じが…したんですが、まぁ考えが変わりました。
ありがとうございました。頑張ります
0040デフォルトの名無しさん2016/06/07(火) 09:38:49.84ID:dPQve5Cg
ま、ある程度わかってきたら実際にサンプルプログラムみたいのな小さいの作って色々試してみると良い。
0041デフォルトの名無しさん2016/06/07(火) 20:23:22.06ID:UCJwx0XG
もう何度も言われてきてるだろうけど教えて

Javaって静的なコンパイル言語で早いと言われているけれど、Eclipseは非常に重いけど理由は?
PhotoshopやIllustratorが何で書かれているかは知らないけれど、あれも非常に重くて遅いけどCとかコンパイル言語で書かれてるんだよね?
本当にJavaとか早いの?
0042デフォルトの名無しさん2016/06/07(火) 21:06:18.92ID:JBCZTfFC
普通は中間言語までしかコンパイルされず
バイトコードインタプリタで実行されてる

cよか遥かに遅いしCADとか画像処理みたいのはJAVAだけじゃキツいじゃろね
そういう事を単独でさせる為の言語じゃない

新調したPCだとeclipseは重くないなぁ
それほど重い処理も無さそうだけど
逆にこんだけ拡張性のあるもんが分かりやすく書けるのは凄いと思うんだが
0043デフォルトの名無しさん2016/06/07(火) 21:20:13.75ID:FPF8u3mi
Javaは遅いよ。
0044デフォルトの名無しさん2016/06/07(火) 21:31:55.39ID:vZWlpmFJ
Eclipseはそれにメモリが少なかったり、Pleiadesのフルやプラグイン入れまくっていると重いし
Java自体、環境次第でJITの動きも変わってくるから一概に遅いとは言えないわ
そもそもどのプログラムもそうだけどコードが糞ならどの言語でも遅くなる。

そもそも話の限り>>41のスペックが貧弱なだけな気がする
0045デフォルトの名無しさん2016/06/07(火) 21:48:39.39ID:UCJwx0XG
>>42-43
ありがと
自分はLLをずっとやってて、最近JavaやGoを使い始めたんだけど、
簡単なコードのコンパイル(javacやgo run)だけで時間かかる(数秒、または数十秒)んで、何故これが早いと言われるのかなと思ったもので


>>44
重いは表現が間違ってたかも
WindowsXPとか昔のパソコンで使ってた時は本当に重かったけれど
でも遅いのは確かだと思う
スペックは、自作Linux, CPU: corei3, Memory: 8DB
ノートの場合はCPU: corei5
0046デフォルトの名無しさん2016/06/07(火) 22:53:35.57ID:NeAadZdx
コンパイル速度なのか実行速度なのか、どっちに文句言ってるの?
0047デフォルトの名無しさん2016/06/07(火) 23:10:24.79ID:Izwt65pO
三期の11話なみのRuby 速度で動ければ誰も文句は言わない
0048デフォルトの名無しさん2016/06/08(水) 00:08:40.70ID:ZBwXDrqR
LLライクな動作っていうとJavaREPLかね
9でjshell搭載予定らしいが全裸待機っていうのもどうかと思うしな
0049デフォルトの名無しさん2016/06/08(水) 05:54:07.00ID:E3Y0fydP
>>41
画像系は、多くのメモリを使う。
各プロセスの使用メモリをチェックすれば?

Eclipse, Gradle なんかも、速くコンパイルをするなら、
JVMを起動しっ放しにすればよいけど(常駐化)、その分、メモリを使ってしまう

Javaが遅いのは、I/O処理。
50年も最適化を研究しているから、CPUセントリックな処理は、Cよりも速い

Rubyでも、JRubyだと、10万回〜100万回のループ時間が、0.3秒ぐらいで同じ。
1千万回(1秒)以上では、CRubyよりも速くなる

つまりJRubyでは、この回数分ループすると、機械語に置き換えたり、
分岐予測を使ったり、さらなる最適化をする
0050デフォルトの名無しさん2016/06/08(水) 07:12:18.25ID:Ko7KPTTd
JavaはCの20倍速いという論文もある。
0051デフォルトの名無しさん2016/06/08(水) 12:43:12.18ID:dkuXgh3b
I/OもNIOのおかげでかなり高速化してるよね
IOは使い物にならないくらい遅いけど
0052デフォルトの名無しさん2016/06/08(水) 16:42:46.58ID:BCgime2A
でもJavaのnioの定着度の低さは異常
channelなにそれやjava8のstreamもなにそれのひとをしばしば見かけるわ

初心者向けサイトが未だにstream使ってるところが多いからそのままnio知らずにやってんだろうなぁって思う
0053デフォルトの名無しさん2016/06/08(水) 16:43:46.23ID:BCgime2A
>未だにstream使ってる
未だにInput/Output Streamを使ってる
0054デフォルトの名無しさん2016/06/08(水) 17:27:08.74ID:EYWDZbyT
>>50
それって何をやらせた時なんだろうね?
0055デフォルトの名無しさん2016/06/08(水) 18:21:37.35ID:Q4ck869A
昔はJavaは確かにCよりずっと「速い」ことがあった。
だが、Javaのバーチャルマシンを開発した本人によると、
それはバグのせいであったとさ。普通行われているベンチマークの
測定の仕方には問題があって、大勢がそうした「誤ったやり方」を
していたおかげでJavaの方が速いと言われていたのだが、
ちゃんとした測定をやるとCの方が速くてJavaは遅かったという
常識的な結論に至るのだよ。開発者自身が認めているんだから
そうなんだろ。
Cの20倍速いというのはその「間違った方法」を踏襲している
昔の論文だよ。
0056デフォルトの名無しさん2016/06/08(水) 18:44:31.08ID:kX/X1XCc
下記にメモったプログラムでLED_2_ONを押すとパケットで送り続ける
ようにしたいんですが、教えてください!やり方は問いません!!
ttp://plsk.net/rocknroll

最初書き込み先まちがえました!
0057デフォルトの名無しさん2016/06/08(水) 19:14:28.31ID:dkuXgh3b
>>56
androidっぽいのでスレチでは?
0058デフォルトの名無しさん2016/06/08(水) 19:24:24.39ID:kX/X1XCc
>>57

スレ違いでしたか!申しわけありません。
0059デフォルトの名無しさん2016/06/08(水) 19:45:25.60ID:bHvDUpho
速度の話しもそろそろスレチ気味だろ
0060デフォルトの名無しさん2016/06/08(水) 23:16:40.18ID:7xYKaWGH
javaを業務の合間に勉強しようと思い2週間程いろいろなHPを見ていますが、
ここのHPの内容を一通り見れば理解できるかも ってど素人に都合のいいサイトありますか?

あと僕が理解できなかったとこなんですが、以下のサンプルで
import java.util.***
public class AAA { ←�@
static public void main(String[] args){
AAA aaa = new Arrylist [] ←�A
for ( ){
--なんしかの処理
}
void BBB {
--なんしかの処理
}
 }                ←�B

�@でクラスAAAを定義してそのクラスの定義途中?で�AのAAAクラスのオブジェクトを作成するって、
何かが僕の中で引っかかって悩んでいます。
�@から�Bの内容を全て包括したのが、�Aであるなら�A以降�Bの処理までは�Aの時点でリードしてないんじゃ・・・
という初歩的なものです //卵が先?親鳥が先?みたいな感じなんですが

うまく説明できずにすみません。こんなので悩むってことは、基礎の基礎からやり直せって事なんですかね?

2週間で納得できた事は、UNIXの xargs と String[] args が似たようなもんだったんだ。というくらい(泣)
0061デフォルトの名無しさん2016/06/08(水) 23:36:07.42ID:E3Y0fydP
関数の巻き上げかも。
巻き上げとは、下の行で定義した関数を、上の行で呼び出せる

f(); → 呼び出せる
f(){ 定義 }

構文解析では、上の行を読んだ際、関数:f → シンボル未解決、のようにいったん処理しておいて、
下の行を読んだ際、関数:f → 定義あり、のようにシンボル表に書き込む

�@円囲み数字のような、Windows固有の環境依存文字を使ってはいけない。
他のOSでは、読めないから
0062デフォルトの名無しさん2016/06/08(水) 23:46:10.01ID:7xYKaWGH
>>61
回答ありがとうございます。
関数の巻き上げっすね。。。メモメモ

�@�A�BはMacから記載してしまいました。
今後気をつけます。
0063デフォルトの名無しさん2016/06/09(木) 01:11:31.02ID:xz94zbOX
>>60
java入門でググってでてくる、一番簡単なJava入門というサイトで自分は勉強した
後は入門書読んだり

質問の答え
mainメソッドはstaticでクラスに属するメソッドだから、AAAをインスタンス化しなくても実行できる
クラスはインスタンスの雛型みたいな存在で、staticメソッドやフィールドはその雛型を見て実行される。
ちなみにインスタンス化は、クラスのコピーをメモリに作ること

このサンプル、どこから見つけたか知らないけど、突っ込みどころ多すぎる
このサンプルの情報源は使わない方がいいかも

継承関係の無い型でインスタンス化してるし、インスタンス化の最後は()

ArrayListの間違え?ならジェネリクスの型指定も推奨される

void BBBはメソッド?
メソッドなら()が抜けてる上に、メソッドの中にメソッドを書いている謎
インナークラスでも無さそうだし
0064デフォルトの名無しさん2016/06/09(木) 12:31:33.58ID:863pratv
>>61
丸で囲った数字はUnicodeに定義されているし元のエンコードであるWindows-31j(またはcp932)も今ではWindows固有のものではなくなっている。
0065デフォルトの名無しさん2016/06/09(木) 12:34:01.10ID:58zVJbW4
>>64
おじいちゃんなんだよきっと
0066デフォルトの名無しさん2016/06/09(木) 12:37:23.87ID:CSH5zx3A
拾うべきポイントは2ちゃんねるがどのエンコーディングを使ってるかと
クライアント(とブラウザ)が該当フォントをサポートしてるかどうかだろう
0067デフォルトの名無しさん2016/06/09(木) 17:46:48.45ID:Ms1oj4bl
そういや今の2ちゃんはどうなったんだろ。専ブラは許可制にして何かやってたよね。書き込み内容の送信は今も変わらずcp932なのかな?
0068デフォルトの名無しさん2016/06/10(金) 07:27:25.95ID:o8hFzx97
2chって、ダブルクォーテーションを使うと、そこで送信文が終了するよな?

いったいどうプログラミングしたら、そういうバグが出るのか、聞きたいよな?
0069デフォルトの名無しさん2016/06/10(金) 07:33:35.22ID:FgCN9jAe
t”e”s”t
0070デフォルトの名無しさん2016/06/10(金) 07:34:27.78ID:FgCN9jAe
ならなくね?
0071デフォルトの名無しさん2016/06/10(金) 09:14:37.58ID:YX5Xpu4P
わろた
そんなわかりやすいバグあったらとっくに修正してるだろ
0072デフォルトの名無しさん2016/06/10(金) 09:37:17.37ID:E5hpPV0K
>>68
それは初耳だが、その情報はどこから仕入れたのだ?
0073デフォルトの名無しさん2016/06/10(金) 11:00:34.52ID:o8hFzx97
文章が切れているのを、しょっちゅう見かける

ダブルクォーテーションの次に、= を付けるだったかな?
0074デフォルトの名無しさん2016/06/10(金) 11:02:49.19ID:FgCN9jAe
t”=e”=s”=t
0075デフォルトの名無しさん2016/06/10(金) 11:03:32.71ID:FgCN9jAe
遊ばれている気がするし、何よりスレチだな・・・。
0076デフォルトの名無しさん2016/06/10(金) 12:56:47.75ID:E5hpPV0K
専ブラのバグでは?
0077デフォルトの名無しさん2016/06/10(金) 17:27:07.43ID:YiBZsNFP
釣られすぎだろ...
0078デフォルトの名無しさん2016/06/10(金) 17:32:35.64ID:2OxUQDLt
o8hFzx97はNG〜
スレ民釣れまくってるね
0079デフォルトの名無しさん2016/06/10(金) 23:51:32.58ID:1F9oZ6BS
先生 ここの例題の解答例で分からないとこがあります。
http://www.techscore.com/tech/Java/JavaSE/Thread/answer/5-1/

FileCopyExample.java の下記の場所の readerThread.join();は writerTThread.join();かな?と勝手に思って先に読み進めました

  writerThread.start();
        try {
            System.out.println("書き込み開始");
            readerThread.join();
            System.out.println("書き込み完了");

writerThread.start() で呼ばれるのはWriteImp.java のpublic void run() の{中身}なんですよね?
そう考えると1つ上に書いてある private String text = null; は何か別の意味があるのでしょうか?
public void run() の{中身}しかコールされないのに、なんであんな位置に・・・

こりゃぁ、手強そうと思い、amazonで「スッキリわかるJava入門」ポチりました。
0080デフォルトの名無しさん2016/06/11(土) 00:47:14.15ID:NyI1yYzN
>>79
スッキリJavaは、実践編でないとスレッドの話はでてこない、残念

以下回答
WriteImp.javaのフィールドで変数textを宣言しているのは、
run()メソッドとsetText()メソッドの2つのメソッドでtextを使用しているから

setText()はmain()メソッドの中ほどで使われている(下記の部分)
//読み込んだデータを渡す
writer.setText(reader.getText());


main()メソッドの中身の簡単な流れを以下に
WritelmpとReadlampをインスタンス化(writer, reader)
↓
readerのrun()メソッドをスレッドとして実行、join()する
↓
readerのtextの内容をwriterのtextに渡す
writer.setText(reader.getText());
↓
writerのrun()メソッドをスレッドとして実行、join()する

以上
0081デフォルトの名無しさん2016/06/11(土) 00:52:49.52ID:NyI1yYzN
>>80
追記

下のreaderThread.join()はwriterThread.join()の間違えたでいいと思う
0082デフォルトの名無しさん2016/06/11(土) 08:54:03.40ID:mzLyb6AV
本に出てるコードって実行確認しないで書いてるのかと思う時あるけどあり得るのだろうか?
0083デフォルトの名無しさん2016/06/11(土) 10:53:40.26ID:igPKgwcR
>>82
あまりにも短くて簡単なサンプルプログラムだとあるかもな。まあ、著者がどういう人かにもよるだろうけど。
0084デフォルトの名無しさん2016/06/11(土) 13:19:09.25ID:ppFl8ALU
実行してるのは著者じゃなくて実は編集担当だったりする
0085デフォルトの名無しさん2016/06/11(土) 16:09:28.63ID:Z8akOUlB
>>80
ありがとうございます。

run()メソッドとsetText()メソッドの2つのメソッドでtextを使用するのだから、共通で定義したいためこの位置で定義してる。
ということは、
例題ではスレッドでの呼び出しをした時、run()メソッドの中身を実行するのだけど、外で定義しているのもあるからrun()の書いてあるclass全部を読み込んでいる
という理解でいいですか?

追加質問ですみません
この場合に、run()以外のメソッドが複数あったとして、そのrun()以外のメソッドでのみ使用する変数をこの位置に宣言すると、
run()メソッドを実行するステップでは無駄にヒープ食っちゃうってこと?ですよね。
0086デフォルトの名無しさん2016/06/11(土) 17:45:22.19ID:8E7fVOdN
>>85

Javaの場合、参照型の変数をメソッドやコンストラクタの引数として渡した場合、参照先が渡される
なので、
readerThread.start();
で実行されるのは、readerインスタンスのrun()メソッド

Thread readerThread = new Thread(reader);
いくらReadlmpクラスが大きくても、↑で使われるヒープ領域の大きさは変わらない

参照の話があいまいなら、スッキリの入門は役に立つと思う
0087デフォルトの名無しさん2016/06/12(日) 06:24:35.36ID:jEWcwNCz
javaでツールを作れるようになるにはどういう順番でこれらの本を読めばいいですか?
まだjavaどころかプログラミング自体初心者なんですが・・・
スッキリ分かるjava入門 ← これは読みました
スッキリ分かるjava実践編
スッキリ分かるSQL入門
スッキリ分かるサーブレット&JSP編
0088デフォルトの名無しさん2016/06/12(日) 06:55:00.43ID:E6s9UVRT
ツールってなんだよ。
GUI作るならJavaFXの書籍でも買ったら?
WebならSpringBootとかが簡単。
0089デフォルトの名無しさん2016/06/12(日) 07:07:57.13ID:jEWcwNCz
そうですねGUIでツールとか作ってみたいです
ただプログラミング関してはスッキリ分かるjava入門しか読んだことがないくらいの初心者なので
難しいとこに一気に行かないで凄い簡単なところから押さえていきたいと思ってます
0090デフォルトの名無しさん2016/06/12(日) 07:18:20.29ID:jEWcwNCz
教えていただいたjavaFXで検索してみて
http://libro.tuyano.com/index2?id=8356003という入門サイトを見つけたのですが
最初から難解すぎて無理でした
やっぱりもっと難易度の低いことからやっていきたいんですがどうすればいいですかね?
0091デフォルトの名無しさん2016/06/12(日) 07:29:40.94ID:E6s9UVRT
>>90
スッキリ分かるjava入門をちゃんと理解していればわかるレベルだと思うけれど・・・。
もう一度読み直すことをおすすめする。
分からないようなら別の入門書を買うと良いかな。
0092デフォルトの名無しさん2016/06/12(日) 07:32:13.73ID:iLaG31hG
android向けアプリなら、android studioとか
0093デフォルトの名無しさん2016/06/12(日) 07:54:15.23ID:jEWcwNCz
>>91
本当ですか
でもnew TextField()こういう書き方は自分の読んだ本では習ってないですし
text field ts = new textfield() 自分が習ったのは今のとここういう書き方だけなので
やってないことがいきなり説明なしで出てくるのは入門者にはきついなーと。
でも読み直してみますね
>>92
PC向けのアプリを作れるようになりたいです
もう一冊なんかjava入門署買った方がいいですかね?
0094デフォルトの名無しさん2016/06/12(日) 09:52:43.64ID:t/75fpdt
>>93
よくソース嫁
ちゃんとfield = new TextField()になってるから
0095デフォルトの名無しさん2016/06/12(日) 18:31:57.63ID:0Tx3x2++
ほんとだ、見落としてました。すいません
何か問題集みたいのやってからjavafxやってみます。ありがとうございます。
0096デフォルトの名無しさん2016/06/12(日) 20:39:25.19ID:nE4rQ5a5
           YES → 【ヒットした?】 ─ YES → なら聞くなよ。死ね。
         /                \  
【検索した?】                     NO → なら、ねぇんだろ。死ね。
         \                   
            NO → ググれカス
0097デフォルトの名無しさん2016/06/12(日) 22:59:55.02ID:M5SgNxqb
ここ質問スレだしな
嫌なら見なければいいんじゃね
0098デフォルトの名無しさん2016/06/13(月) 01:06:10.78ID:wz/IwBiJ
初心者スレだから本スレと同じノリでやられてもね
本当に嫌なら見なければいいだけ
0099デフォルトの名無しさん2016/06/13(月) 23:56:41.17ID:MswW6dFx
>>80,86

先程、スッキリJavaの6章までは、理解しにくい箇所もなくあっさりと読めました。7章からがオブジェクト指向関連みたいです。

うんーん >>85 で書き込んだ
>例題ではスレッドでの呼び出しをした時、run()メソッドの中身を実行するのだけど、外で定義しているのもあるから
>run()の書いてあるclass全部を読み込んでいる という理解でいいですか?

これがまだしっくりこない。
writerThread.start();で呼ばれるのがrun()の中身と解説あるのに・・・うーん
今後、勉強を進めていったら納得できるのだろうか。

スレッドに関しては、今の本には載ってないとの御指摘がありましたので、
スッキリ分かるjava実践編 ポチってきますわ
0100デフォルトの名無しさん2016/06/14(火) 02:03:19.71ID:BG5MvUh2
たぶん言語処理系がどういう挙動をしてるのかイメージ出来てないんだと思う
メモリ配置と密接なC言語とかを多少触ってみるのもいいかも知れないね
0101デフォルトの名無しさん2016/06/14(火) 06:50:12.56ID:OkjQ5JpN
>>99
オブジェクトの部分で躓いてるようなので、スレッド抜きに考えてみる

        Readlmp reader = new Readlmp();
        Writerlmp writer = new Writerlmp();

        reader.run();

        writer.setText((reader.getText());

        writer.run();

main()メソッドの一部抜粋で、スレッド抜きにするとこんな感じ

インスタンス化すると、ヒープ領域にclassのコピーが作られる(staticメンバ以外)
そのコピー(reader,writerインスタンス)のrun()メソッドが実行される


>例題ではスレッドでの呼び出しをした時、run()メソッドの中身を実行するのだけど、外で定義しているのもあるから
>run()の書いてあるclass全部を読み込んでいる という理解でいいですか?

スレッドのインスタンスを生成するときに、reader,writerを引数に渡している
つまり、あらかじめ作ったclass全部のコピーを渡しているということ(正確にはコピーの参照先)
それでスレッドは、reader,writerインスタンスのrun()メソッドを実行している

スレッドの生成をしたときにclass全部を詠み込むのか?
この質問だと、順序が逆で
class全部を詠み込んだもの(インスタンス)を使って、スレッドを生成をしている、ということ

6章までこのペースで理解できてるって、かなり早い
実践編の方は、オブジェクトを使いこなす方法がかかれているから、この辺の事も理解が深まるかもしれない
0102デフォルトの名無しさん2016/06/14(火) 06:54:37.25ID:lIuNMU+7
自分も入門書を読んでるんですが
interfaceとabstractの使い分けと違いがよく分かりません。
どういう風に使い分ければいいんでしょうか?
0103デフォルトの名無しさん2016/06/14(火) 08:24:35.05ID:ezeB3LKI
普段は省略してるがinterfaceはabstractが宣言されている
強調したいなら使ってもいいことになっている
0104デフォルトの名無しさん2016/06/14(火) 08:37:29.57ID:lIuNMU+7
>>103
すいません、言葉足らずでした
abstractクラスとinterfaceのクラスの違いです
どっちも似たようなものだと思うのですが、どう使い分ければいいですか?
0105デフォルトの名無しさん2016/06/14(火) 08:37:37.88ID:BcKyLCvc
>>87-95
ツール作りなら、まずスッキリJavaで、オブジェクト指向を学ぶ

その後、この2冊を順に読む
たのしいRuby 第5版、2016
みんなのPython 第3版

これでひとまず基礎ができるから、その後、JavaFX・C#・VB など、進路を決めればいい

>>102
interfaceは継承と関係ない。お手軽な機能付加。
ダックタイピング。何でもアヒルのように鳴くものは、アヒルでいい

abstractは継承の親クラスで、それ自体は実体化しないもの。
概念だけの親クラス

例えば、3角形・4角形・円クラスが実体化できるとき、
親クラスに実体化できない、図形クラスを作り、そこに図形の共通概念を、持たせる
0106デフォルトの名無しさん2016/06/14(火) 09:30:09.41ID:w21XDQC+
そういや Java 8 からは interface なのにメソッド持てるようになったらしいが、うなると普通のクラスや abstract グラスとの違いは多重継承できるか否かだけにならんか?
0107デフォルトの名無しさん2016/06/14(火) 09:30:37.41ID:w21XDQC+
うなると、じゃねえ、そうなるとだ。w
0108デフォルトの名無しさん2016/06/14(火) 10:01:04.02ID:lIuNMU+7
>>105
あ、関係ないものなんですね。どっちも抽象的な物で使い方も一緒で違いが分からずもやもやしてました
ありがとうございます
0109デフォルトの名無しさん2016/06/14(火) 10:08:10.94ID:YK2fMq3I
>>106
インターフェイスは状態の保持はできない(static finalで共通のは持たせることはできるが)
あとメソッドのアクセス修飾子もpublicのみだし
0110デフォルトの名無しさん2016/06/14(火) 13:59:47.46ID:BcKyLCvc
abstract : is-a は継承
interface : has-a は機能・部品を持つ。ダックタイピング

継承は、車・消防車、哺乳類・人間みたいな関係

interfaceは、無関係な機能を組み合わせたもの。
冷蔵庫や携帯電話に、インターネットできる画面を付けたなど
0111デフォルトの名無しさん2016/06/14(火) 14:27:20.53ID:YK2fMq3I
このレベルの初心者に用語だしてこういうものって言っても多分わからないと思うぞ

まずそれぞれ実装時に何が出来るかだけでいいんじゃないか
0112デフォルトの名無しさん2016/06/14(火) 15:45:01.46ID:SkK7ctA3
オブジェクト志向はアルゴリズムの実装と相性が悪い。
0113デフォルトの名無しさん2016/06/14(火) 15:51:31.26ID:SkK7ctA3
今、HTML5パーサーのJava実装とJavascript実装見てる。

Java実装はC++に機械的な変換を出来るように書かれているが、NOCPPという
キーワードでくくって、C++で必要ない部分が削除されるようになっている。
Javaはオブジェクト志向に特化しすぎたせいで、非常に冗長な記述を必要とする。

Javascript実装は仕様通りに冗長さのないコードとなっている。
しかしおそらくバグのないコードを書くのは困難だろう。

C++が一番書きやすそうに見えるが、しかし覚える事柄もまた一番多いだろう。
0114デフォルトの名無しさん2016/06/14(火) 20:47:19.11ID:k/dxUxLz
>>109
あ、そーか。そうだね。
0115デフォルトの名無しさん2016/06/14(火) 21:54:08.96ID:+YH//64E
みんな優しいんだな。

>>101
>例題ではスレッドでの呼び出しをした時、run()メソッドの中身を実行するのだけど、外で定義しているのもあるから
>run()の書いてあるclass全部を読み込んでいる という理解でいいですか?

Readlmp reader = new Readlmp();

 これはReadlmpクラスをテンプレにしたreader(ここでは単なるクラス変数名)を定義。
 Readlmpクラスのコンストラクタを引数なし呼び出して、インスタンスを作成してreaderと命名。

この時点で、Readlmpクラスはまるっと読み込んでますね。
後からディスパッチするrun()の時点では、Readlmpクラスまるっと読み込み済みのインスタンスを使ってるんですね。

少しずつ理解出来てきたような気がします。

皆々様、有難うございます。
0116デフォルトの名無しさん2016/06/15(水) 22:22:36.18ID:ornso/cN
有限会社ナレッジデザインのオラクル認定資格教科書『JavaプログラマSilver SE8』p.193 練習問題5-2について、解説を読みましたがよくわからなかったため質問させていただきます。

1. public class Test{

2. final int a;
3. Test(int b){a = b;}
4. void method(int c){a = c;}
5. public static void main(String[] args){
6. Test t = new Test(10);
7. t.method(20);
8. System.out.println(t.a);
9. }
10. }

上記のコードで2行目の変数aがfinalで修飾されているため定数になっていることはわかりました。
そして3行目で変数bを定数aに代入しようとしているためコンパイルエラーとなると判断しました。

しかし、解説では「このコードでは宣言時に初期化していませんが、コンストラクタを使用して初期化しているため問題ありません。4行目のmethod()によって値の変更を行おうとしているため、4行目でコンパイルエラーとなります」となっていました。
なぜ、3行目ではコンパイルエラーとならないのでしょうか?回答よろしくお願いいたします。
0117デフォルトの名無しさん2016/06/15(水) 22:37:42.91ID:ornso/cN
>>116
自己解決しました。
2行目では変数宣言しただけで初期値の代入を行っておらず、3行目で初期値の代入を行っているため、値を変更しようとしている訳ではないということですね。
低レベルな質問をしてしまいすみませんでした。
0118VHR12JC10V12016/06/16(木) 00:52:55.40ID:0zEDpCjN
AP層との通信に失敗しました。:[[A1S1E001E] com.fujitsu.mc.a1.scm.MCPiException@23435555
復帰コード = 7051 メッセージ = "予期せぬ例外"java.net.NoRouteToHostException"を検出しました。
[java.net.NoRouteToHostException: ホストへの経路がありません]" ログ出力済フラグ = true ]

12301866845301177551304949583849627207728535695953347921973224521517264005
07263657518745202199786469389956474942774063845925192557326303453731548268
50791702612214291346167042921431160222124047927473779408066535141959745985
6902143413
=
33478071698956898786044169848212690817704794983713768568912431388982883793
878002287614711652531743087737814467999489
X
36746043666799590428244633799627952632279158164343087642676032283815739666
511279233373417143396810270092798736308917
0119デフォルトの名無しさん2016/06/16(木) 06:14:57.31ID:SL8rnu8/
javaの入門書一冊読み終えたのですが
何か次にステップアップするのにお勧めな本教えてほしいです
0120デフォルトの名無しさん2016/06/16(木) 07:27:24.00ID:tOwQ8tvq
>>119

>>16
参照
0121デフォルトの名無しさん2016/06/16(木) 08:07:28.45ID:SL8rnu8/
>>120
ありがとうございます。そこは既に見たんですが同じシリーズの本しかなかったので
ほかにないかなと
0122デフォルトの名無しさん2016/06/16(木) 10:47:41.35ID:nWEOMA1G
コマンドライから任意の数字を入力できる
1〜6以外の数字の場合入力が不適切ですと表示させ入力を繰り返す
乱数を発生させて、入力した文字と比較させ勝ち負けを判定する

上記のプログラムを書きたいのですが任意の数字を打ち込むところができません。

途中までのソース
http://ideone.com/K0dpO1

助けてくだしゃい
0123デフォルトの名無しさん2016/06/16(木) 10:55:51.11ID:4Jb6Z0TN
if(1<= a && a <= 6)
0124デフォルトの名無しさん2016/06/16(木) 11:00:37.83ID:tOwQ8tvq
while(true){
System.out.println("1〜6までの数字を入力してください");
Scanner scan1 = new Scanner(System.in);

変数、scan1を使ってないじゃん

1行ずつ、デバッグ実行して、watch画面で、変数の内容を確認しながら、進めていく
0125デフォルトの名無しさん2016/06/16(木) 11:28:56.80ID:4Jb6Z0TN
Javaの宿題スレってないんだな
0126デフォルトの名無しさん2016/06/16(木) 11:39:41.46ID:rpc5DFq+
ここまでいったんだけど、最後のソースに到達しないみたい
main内に書いてると思うんだけど

改善後http://ideone.com/FxKBH2
0127デフォルトの名無しさん2016/06/16(木) 11:53:56.43ID:4Jb6Z0TN
breakしろ
0128デフォルトの名無しさん2016/06/16(木) 11:59:32.79ID:rpc5DFq+
できたわ。
助かった。
0129デフォルトの名無しさん2016/06/16(木) 12:26:51.68ID:0I01+HHK
while (true) を目にして動悸・息切れ・目眩などの諸症状に襲われずして
まともなプログラマにはなれない
0130デフォルトの名無しさん2016/06/16(木) 12:52:21.14ID:CbGXrP8u
やっぱ for (;;) でしょ
0131デフォルトの名無しさん2016/06/16(木) 14:17:45.10ID:C5pKIuJR
String.split()メソッドを使い、文字列を内部のピリオドで切り分けたいのですが
\(ピリオド)が未定義で使えません
どうしたら良いのでしょうか?
0132デフォルトの名無しさん2016/06/16(木) 14:18:29.15ID:rfuHgD6o
\\.
0133デフォルトの名無しさん2016/06/16(木) 14:57:37.10ID:bI+aCDek
>>132
オゥ・・やってみます
有り難う御座いましたっ
01341322016/06/16(木) 17:51:30.93ID:GkUFfn3X
>>133
ちなみに一応説明しとくと
splitは性器表現だから文字としてのピリオドを認識させたい場合にはエスケープ文字の\をつけて「\.」とする必要がある。
Javaの文字列「\.」を表示する場合、Javaでも\はエスケープ文字となるから、文字としての円マークを認識させるには\\となる。
だから最終的に正規表現でドットを文字列として認識させたい場合「\\.」となる
0135デフォルトの名無しさん2016/06/16(木) 19:15:09.43ID:bI+aCDek
なるほど
java制御文字→正規表現での解釈と二重構造なんですね 勉強になりました
0136デフォルトの名無しさん2016/06/16(木) 20:31:12.17ID:s0EsHX7v
性器表現

なんという素晴らしい表現
0137デフォルトの名無しさん2016/06/16(木) 20:41:42.52ID:25qEXxzA
javaとかいう糞言語
速くもないし可読性も悪い
色んな書き方が出来るせいで
コーディング規約が難解で誰も守らないという
0138デフォルトの名無しさん2016/06/16(木) 20:53:19.99ID:s0EsHX7v
>>137
じゃあお前が理想の言語作れ
とりあえずJavaへのコンバーターでもいいから
0139デフォルトの名無しさん2016/06/16(木) 22:07:02.77ID:KwcabU8B
ど素人です...javaを始めたばかりで、くだらない質問ですが、どなたか助けて頂けないでしょうか?複数選択のチェックボックスについて、質問があります(T_T)エクリプス環境下で開発しています。
0140デフォルトの名無しさん2016/06/16(木) 22:44:29.82ID:91QZsnGl
>>139
で、質問は?
0141デフォルトの名無しさん2016/06/16(木) 22:57:50.42ID:KwcabU8B
ご返信ありがとうございます。
複数のチェックボックスを選択し、DAOでselectとupdateで、DBへ書込みと更新をしたいです。
その際に、チェクされたものは「1」へ格納され、最終的にJavaのarray<string>に"01,02..."のように入れたいです。
現在、エンティティとダオは読み込めているようなのです。チェックされたものを「1」へ格納され、list化する部分がわかりません。javaで、if文で格納で良いのでしょうか?
文章力知識共にないので、乱雑な文章をお許しください。
0142デフォルトの名無しさん2016/06/16(木) 23:11:25.70ID:L6uV1SZP
「1」へ格納の意味が分からん
0143デフォルトの名無しさん2016/06/16(木) 23:24:42.80ID:KwcabU8B
>>142
チェックされたものは、「1」。チェックされなかったものは「0」で置いておきたいです。別ページで、チェックされたものを再度読み込んで表示するためです。
0144デフォルトの名無しさん2016/06/16(木) 23:54:29.08ID:L6uV1SZP
チェックボックスってJCheckBoxとか?jsp?
0145デフォルトの名無しさん2016/06/16(木) 23:59:32.86ID:KwcabU8B
>>144
(h:selectManyCheckbox)をxhtmlで入れています。
0146デフォルトの名無しさん2016/06/17(金) 00:11:56.31ID:oUaRcFkA
登録ボタン押したときにjava側にチェック状態渡せてんなら>>141で言ってるように

List<String> checkList = new ArrayList<String>();
if(チェックされてれば){
checkList.add("01");
}

てな事をやれば良いんじゃない
0147デフォルトの名無しさん2016/06/17(金) 00:20:45.56ID:YeXpyiC7
>>146
そうですよね...本当に初歩なのですが、登録ボタンは、xhtmlに入れて良いのですよね?
それから、if()←の()内が、私が理解出来ていないのかもしれません。checkbox=checkedで良いのでしょうか?
0148デフォルトの名無しさん2016/06/17(金) 00:39:52.03ID:oUaRcFkA
すまんがJSFを使ったことが無いので分からん

あと値の比較は==だ
多分その感じだとBeanクラス作ったりBean指定したりも出来てないんじゃ無いか?

いきなり難しいことから始めないでjavaの勉強を先にした方が良いぞ
0149デフォルトの名無しさん2016/06/17(金) 00:43:39.00ID:YeXpyiC7
>>148
ご指摘、ありがとうございます(T_T)
その通りなんです...ただ仕事で、始めから作ってみろーみたいになってしまっていて。もうどうして良いか...本当に、訳のわからぬ者に答えていただき、感謝です。
0150デフォルトの名無しさん2016/06/17(金) 00:47:50.71ID:oUaRcFkA
それは酷いな
最初のうちはとにかく聞きまくるしか無い
0151デフォルトの名無しさん2016/06/17(金) 00:54:11.22ID:YeXpyiC7
>>150
そうですよね...なんだか、とっても背中を押して頂いた気がします。有難いです。
0152デフォルトの名無しさん2016/06/17(金) 01:00:02.96ID:jYlDfS4o
会社なら、他にリソースあるだろ
0153デフォルトの名無しさん2016/06/17(金) 01:02:49.90ID:YeXpyiC7
>>152
明日相談してみます。お付き合いいただき、ありがとうございました。
0154デフォルトの名無しさん2016/06/17(金) 10:31:29.18ID:TgUNX6A4
JavaのClassについて教えてもらいたいんだけど
「新しいクラスを作成したら、必ずtoString、equals、hasCodeなどをオーバーライドしないといけない」とか読んだ
これってLL言語では見かけないので、良く分からなくて
何か定石とか、定例文のようなものってあるの?
漠然としすぎていてサッパリ分からないんだけど
0155デフォルトの名無しさん2016/06/17(金) 12:11:30.28ID:Jw6Vo/h3
それはそのシステムの特性なのでは
0156デフォルトの名無しさん2016/06/17(金) 12:42:49.53ID:7/Cp3IRC
>>154
必ずではない。ただし作っておけば自分の意図した通りになる。
0157デフォルトの名無しさん2016/06/17(金) 13:08:42.96ID:dxjEzlRD
必ずオーバーライドしなきゃいけないってどんな教えだよ
おまじないよりたち悪いな
0158デフォルトの名無しさん2016/06/17(金) 13:24:24.48ID:CYdk5Mt/
>>154
ちなみにそれはどこで読んだんだ?
0159デフォルトの名無しさん2016/06/17(金) 17:03:56.92ID:TgUNX6A4
スッキリの実践P118
「必ず」とハッキリと書いてある

ってか自分もシステムに依存するとは思うけれど、そうは言われてもあまりにも漠然としすぎてて
基本的にオーバーライドして実装するテンプレートみたいなものがないのかなぁ、と
サンプルでもあれば分かりやすいとは思うんだけど
0160デフォルトの名無しさん2016/06/17(金) 17:54:11.66ID:CYdk5Mt/
そういう悪書はブックオフでいいと思うよ、いやわりとマジで
0161デフォルトの名無しさん2016/06/17(金) 18:10:03.48ID:XNEe7Ys+
いつ、誰に、どのような使われ方をするかわからないから取り合えす、オーバーライドしとけよって書いてあるね
0162デフォルトの名無しさん2016/06/17(金) 18:12:15.82ID:jYlDfS4o
それだけでもうその本は信用できねーな
0163デフォルトの名無しさん2016/06/17(金) 19:47:24.62ID:l8TNEkGu
出版物に書いてあるのかよ(驚愕
どうせコーディング規約だと思ってた
0164デフォルトの名無しさん2016/06/17(金) 20:02:50.16ID:XNEe7Ys+
そのままは書いていないよ。まぁしっかり本を読むことだね〜
0165デフォルトの名無しさん2016/06/18(土) 08:40:28.37ID:8GpUPXrh
Setに入れるのに同一性を保ちたいとかあるからね

EclipseとIntelliJはそれらを自動で作成してくれるコマンドがあるよ
0166デフォルトの名無しさん2016/06/18(土) 14:13:19.66ID:w9zLlF5g
むしろlombokが楽
0167デフォルトの名無しさん2016/06/18(土) 21:56:09.89ID:QKdVDmdU
toString、equals、hasCode
この3つは、Rubyなど、どの言語でも最初に考える

Apache Commons Lang に、Builder がある

EqualsBuilder
HashCodeBuilder
0168デフォルトの名無しさん2016/06/19(日) 11:05:14.00ID:gzsVn/8O
http://qiita.com/fkrw/items/c7492f28559e0e9fc5b2
toString() / equals() / hashCode()のオーバーライドについて

第1部 第4章
classを作成した時は、これらのメソッドをオーバーライドしないと、
コレクションが正しく動作しない場合がある。
~~~~~~~~~~~~~~
↑
一応こういう条件付きで書いてあるようだ。
0169デフォルトの名無しさん2016/06/19(日) 11:20:02.62ID:v9j4Ju2+
無断転載されても逆に面倒くさいしJava言語仕様に書かれてないことを吹聴してるクソ、で結論は出ているだろ
0170デフォルトの名無しさん2016/06/19(日) 12:03:54.21ID:3rB45jJy
ようするにわかりませんてことか。
0171デフォルトの名無しさん2016/06/19(日) 13:40:43.89ID:oY7TlxuV
Rubyでは、一番厳しい等値判定は、オブジェクトIDを使う。
この場合、オブジェクトの内容が同じでも、別のオブジェクトなら非等値になる

オブジェクトをソートに使うのなら、先に、<=> UFO・宇宙船演算子(Comparable)を定義する

ハッシュの等値は、UFO演算子の、= の別名にするか、独自に定義する

3 == 3.0 → ソートでは等しい
3 == 3.0 → ハッシュでは異なる
0172デフォルトの名無しさん2016/06/20(月) 22:14:00.85ID:zVDaZ2+M
eclipseでプログラム完成したんだけど
javaってどれが最終的な実行ファイル?
Windowsでクリック実行するにはバッチみたいのが必要なんでしょうか?
0173デフォルトの名無しさん2016/06/20(月) 22:17:20.00ID:g0Cn2Mhi
.classファイルもしくは.jarファイル
起動するにはjavaコマンドでmainメソッドがあるクラスやらなんやらを指定する
0174デフォルトの名無しさん2016/06/20(月) 22:23:32.32ID:zVDaZ2+M
>>173
有り難うございます
使ったクラス群はビルドされて単体ファイルに含まれてるんでしょうか?
0175デフォルトの名無しさん2016/06/20(月) 22:28:47.48ID:Tybwfjf0
javaのwebアプリを作ろうとしています。
フレームワークのJSTLを使おうとしておりますが、JSTLのインストールを
解説しているサイトではJSTLのサイトから
�@javax.servlet.jsp.jstl-api-1.2.1.jar
�Ajavax.servlet.jsp.jstl-1.2.1.jar
の2種をダウンロードすると記載されています。

�@は難なくダウンロードできたのですが、�Aがどうやっても見つからず
ダウンロードできません。(一覧にあがってこない)
�Aはもう提供されていないのでしょうか。
0176デフォルトの名無しさん2016/06/21(火) 05:06:56.47ID:ZRyqXqGn
スッキリ分かるjava入門を二回読んでみてスッキリしないことがあるので教えてください。
配列とかクラス型の参照型変数はアドレスを参照にしてるから
ブロック外で値を変えても、元の変数も値が変わる
こんな程度の認識しかないんですが大丈夫ですか?今は

それともう一つ
実行環境を整えずにdokojavaでやってたせいか
packageとAPIについての知識が全くつかなかったんですがこの先これで大丈夫でしょうか?
0177デフォルトの名無しさん2016/06/21(火) 07:25:54.45ID:jCImJq08
>>175
取り敢えず上だけいれて使えるか試してみた?
0178デフォルトの名無しさん2016/06/21(火) 08:47:50.93ID:ZRyqXqGn
なんか日本語になってなくてごめん

変数を作るとメモリからアドレスを確保してそこに格納とか
プログラミング入門の段階で教えられても意味が分かりません
この参照型の仕組みを覚えておくと以降の章を読むのが楽になりますって書いてあるけど
全然参照型について理解出来てないけど普通に以降の章は理解できたしよくわかりません。。
0179デフォルトの名無しさん2016/06/21(火) 09:07:55.94ID:oaiM5wE7
とりあえずは

int[] a = {1};
System.out.println(a[0]); //=> 1
{
int[] b = a; b[0] = 10;
}
System.out.println(a[0]); //=> ?

と

int a = 1;
System.out.println(a); //=> 1
{
int b = a; b = 10;
}
System.out.println(a); //=> ?

の実行結果の違いがわかって説明できればOK
0180デフォルトの名無しさん2016/06/21(火) 09:28:50.43ID:rdnhr1yO
横だが>>179みたいのを手軽に試せる対話型のRELPみたいのってないのかな
0181デフォルトの名無しさん2016/06/21(火) 09:50:15.02ID:rdnhr1yO
まさにJAVA RELPってのがあったんだな
スレ汚しすまそ
0182デフォルトの名無しさん2016/06/21(火) 12:40:07.51ID:ZRyqXqGn
>>179
レスありがとうございます。
上は配列aの要素数0に1を投入してその後にb配列にaを代入してるから
ab両方とも同じアドレスを参照するようになってbに値を入れてもaも同じアドレを見てるから
実行結果は10になって
下はただの変数だからbにaを代入してもaは1のままで実行結果は1
でこんなんですが大丈夫ですか?今の段階では
0183デフォルトの名無しさん2016/06/21(火) 12:50:54.05ID:F8rFyF6H
今の段階ではJavaREPLを使うのが手っ取り早いだろうな
EarlyAccessでよければJava9でjshellが実行できる
0184デフォルトの名無しさん2016/06/21(火) 19:06:28.13ID:SKnRlXlV
>>182
Javaの場合はJavaのバーチャルマシンがメモリのアドレスを管理している。

読んでいる本がJavaの参照型をアドレスと言っているなら、その本はよくない。

Javaプログラムは実際のメインメモリのアドレスを意識しないし、通常、直接アドレスを扱ったりしない。

同じ領域を参照しているか、していないかだけ考えた方がいい。
0185デフォルトの名無しさん2016/06/21(火) 22:11:55.71ID:jb5TwFgE
>>177
レスありがとうございます。
はい、
C:\Users\ユーザー名\Documents\NetBeansProjects\AAA\web\WEB-INF\lib
に格納して試しましたが、動作しませんでした。
入れるところが間違っているのでしょうか。
コードを実行すると、以下のメッセージが表示されます。
「C:\Users\ユーザー名\Documents\NetBeansProjects\AAA\build\generated\src\org\apache\jsp\response_jsp.java:124: エラー: パッケージorg.apache.taglibs.standard.tag.rt.sqlは存在しません」
0186デフォルトの名無しさん2016/06/21(火) 22:23:04.45ID:F8M3kR9Z
Java歴6日目の者です。
次の2つのクラスを作りましたが実行できません。どこが悪いのでしょうか?
Calc.java:
public class Calc {
 public static int add(int x, int y) {
  return x + y;
 }
}
Main.java:
public class Main {
 public static void main(String[] args) {
  Calc c = new Calc();
  System.out.println(c.add(10, 5);
 }
}
0187デフォルトの名無しさん2016/06/21(火) 22:24:53.94ID:91LhrXVC
さいごかっこなくね
てかエラー嫁
それでわからなかったらエラーもはっとけ
0188デフォルトの名無しさん2016/06/21(火) 22:27:02.55ID:p8YkQE1T
printlnの行に)が足りないが
それが原因かは分からん
0189デフォルトの名無しさん2016/06/21(火) 22:28:40.86ID:F8M3kR9Z
System.out.println(c.add(10, 5));
こうですね。ありがとうございます。
0190デフォルトの名無しさん2016/06/21(火) 22:30:44.97ID:F8M3kR9Z
動きました!が、c.add(10, 5)に黄色い波線が出ています。
eclipseなのでコンパイルエラーとかは出てきません。
自動ビルドのようです。
0191デフォルトの名無しさん2016/06/21(火) 22:31:02.43ID:rdnhr1yO
System.out.println(c.add(10, 5));にすればちゃんと15が出力されるよ
0192デフォルトの名無しさん2016/06/21(火) 22:34:18.86ID:F8M3kR9Z
自己解決しました。
まだ意味は分からないのですが、
public static int add(int x, int y){}
が間違いで、
public int add(int x, int y){}
が正しいようです。
0193デフォルトの名無しさん2016/06/21(火) 22:46:02.71ID:p8YkQE1T
newでインスタンス化する場合はstaticをつけない
逆にstaticを付けたんなら
newせずに呼び出す

int i = calc.add(10,5)
staticならこれでok
0194デフォルトの名無しさん2016/06/21(火) 22:48:42.66ID:F8M3kR9Z
エラーではなくウォーニングでした。
型Calcからのstaticメソッドadd(int, int)にはstaticにアクセスする必要があります
だそうです。
0195デフォルトの名無しさん2016/06/21(火) 22:50:25.36ID:F8M3kR9Z
>>193
ありがとうございます。
今自分でその法則を見つけたところでした!本には書いてなかったことです。
糞本ですね。
0196デフォルトの名無しさん2016/06/21(火) 22:56:06.36ID:p8YkQE1T
>>195
staticだとnewで複製出来ない
つまり静的と覚えるといいとかなんとか
0197デフォルトの名無しさん2016/06/21(火) 22:58:31.01ID:F8M3kR9Z
Cで言えばnewはmalloc()で「動的」に生成するのに似ていますね。
メソッドは持てませんが。
static(性的)↔dynamicとは書かかないがnewしたものは「動的」
0198デフォルトの名無しさん2016/06/21(火) 23:00:30.41ID:F8M3kR9Z
publicをどうしてもpubic([形]恥部の)と打ってしまいます。
0199デフォルトの名無しさん2016/06/21(火) 23:55:50.40ID:ZRyqXqGn
>>184
多分有名な本なので自分の読み取り方がおかしいと思います
クラス型変数と配列型は同じ参照型ってとこだけはしっかり覚えてるんですが・・・
ま田読み直してみます。ありがとうございました
0200デフォルトの名無しさん2016/06/22(水) 00:29:49.02ID:22itTy2z
すみませんJavaを始めたばかりなんですが、JavaでVRAMに直接
数値をぶち込みたいときは何というAPI?を使えばいいのでしょうか?
OSはWindows10です。
0201デフォルトの名無しさん2016/06/22(水) 01:12:00.02ID:JttLZ32V
>>200
それってDirect Xじゃない?

Javaではそういうことを標準ライブラリで定義してないと思う。
0202デフォルトの名無しさん2016/06/22(水) 01:14:15.59ID:JttLZ32V
>>199
アドレスでもいいけど、詳しい先輩に馬鹿にされるかもしれないから、アドレスとは言わない方がいい。

C言語やC++ならアドレスでいいんだけど。
0203デフォルトの名無しさん2016/06/22(水) 01:15:22.20ID:JttLZ32V
初心者はJavaの資格本を見て勉強した方がいいよ。

よく説明してくれている。
0204デフォルトの名無しさん2016/06/22(水) 04:50:59.05ID:jdKVcriH
>>176
初心者にとって、自分のPCに、実行環境を整えるのは難しいから、
paiza.IO, codepad など、オンラインでブラウザから実行するのが簡単

君が、packageを配布するのは、数年先の話

>>185
プロジェクト以下の階層の説明書を読む

よく知らないけど普通、そういう基本的なライブラリを、プロジェクト以下の階層には置かない

プロジェクト内で使うライブラリには、参照設定もいるかも
0205デフォルトの名無しさん2016/06/22(水) 05:52:02.09ID:B8zHiD7N
>>201
ありがとう。DirectX自体知らなかったので調べてみたらC++で使うものの
ようですね。言語選択間違えたかな・・・
やりたいことはVRAMに直接描画orバッファに描画して一気に画面に転送です。
0206デフォルトの名無しさん2016/06/22(水) 05:58:38.08ID:B8zHiD7N
setRGB(int x, int y, int rgb)をもっともと早くしたものがほしいです。
0207デフォルトの名無しさん2016/06/22(水) 09:13:21.47ID:Tgnq0neu
>>192
間違いではないのだが普通はそうしないということだよ。
間違いではないからコンパイルも通るし動きもする。
0208デフォルトの名無しさん2016/06/22(水) 09:36:07.90ID:sEqYA8cS
>>200
出来ることと出来ないことを峻別して僕らを守ってくれる
それが Java
スピードを徹底追求したりデバイスに近い操作やりたいなら
C/C++
0209デフォルトの名無しさん2016/06/22(水) 09:42:38.46ID:J9iAud+O
>>205
標準ライブラリじゃないけどJava OpenGLあたりのこと言ってる?
0210デフォルトの名無しさん2016/06/22(水) 22:53:15.11ID:T2xlVJrg
>>209
それも気になっています。
やりたいことは
https://www.youtube.com/watch?v=PbwaFQ2r2c4
こんなかんじのCGです。
0211デフォルトの名無しさん2016/06/22(水) 23:04:15.84ID:JttLZ32V
>>210
それをやるのにVRAMに直接書かなきゃいけないの?

しかもリアルタイムなの?動画なの?
0212デフォルトの名無しさん2016/06/23(木) 00:50:16.13ID:DiuUSWJF
俺の部署VB.net しか使わないせいで俺以外にオブジェクト思考のこと理解してるやついないんだけど、
Javaベースで実用的な例(Iwalkableをimplementsした抽象Animalクラスとかでなく)を使ってポリモーフィズムやインターフェースを解説してる書籍って何があるかな?
自分一人で例を考えてみてもDBアクセス用クラスとか画面遷移とかstaticユーティリティ多用したものがすでにあるから説明しても使ってくれないんだよな
0213デフォルトの名無しさん2016/06/23(木) 00:51:38.88ID:DiuUSWJF
オブジェクト思考とか誤変換してる時点で俺ももうダメだわ
0214デフォルトの名無しさん2016/06/23(木) 01:00:06.51ID:SCzPIfsN
>>212
その現場はオブジェクト指向プログラミングでなくてもいいからでは?

しかもVB.NETてオブジェクト指向を教えている本はたくさんあるだろ。
0215デフォルトの名無しさん2016/06/23(木) 08:36:36.22ID:7w307aVI
VB.NETはVBやExcelVBAからの乗り換えとして機能してるだけでいい加減C#に切り換えた方がいい
つまりVBとC#の相互乗り入れという話になるはずだが、ここはJavaスレだしな
0216デフォルトの名無しさん2016/06/23(木) 10:51:24.35ID:4K0I2xez
訂正箇所が分かりません。
ソースは、intのa+bを二つ戻り値なしと戻り値あり+String戻り値ありをコマンドラインに出力するソースです

一つ目のmainメソッドはコマンドラインに出力されるんだけどそれ以降のmain2とStringが出力されないんです。
どこがミスってるのかわからない。eclipsの方でデバッグしても普通に一つ目のmainメソッドが出力されちゃう。

ソースはここに貼っといたんで、訂正箇所のほうよろしくお願いします。
http://ideone.com/nrawAN
0217デフォルトの名無しさん2016/06/23(木) 11:28:24.27ID:7w307aVI
また宿題の相談か、昼食おごりなら代行してもいいよ
0218デフォルトの名無しさん2016/06/23(木) 11:31:50.37ID:ZQfpp6dv
>>216
関数とはなんぞや をもう一度見直す
上から下に並べればその順序で実行 ではない
0219デフォルトの名無しさん2016/06/23(木) 11:33:58.24ID:5cLPR00R
mainの中にmainときたもんだ
コピペミスか?
0220デフォルトの名無しさん2016/06/23(木) 12:07:01.82ID:wbzhkfll
main
mainmain
mainmainmain

mainsubmain
mainsubsub

前の業務で見たことあるけど
思わず噴いたわ
やっつけかよ
0221デフォルトの名無しさん2016/06/23(木) 12:17:21.21ID:evOVUb3R
貼っといたんでワロタwww
0222デフォルトの名無しさん2016/06/23(木) 12:48:09.36ID:x8Tq2OJc
関数が実行されないなら、関数を呼び出す

関数の中身を書くのは、関数宣言・定義と言って、ただ処理を書くだけ。
その後、書いた関数を呼び出さないと、実行されない
0223デフォルトの名無しさん2016/06/23(木) 14:36:18.17ID:2TDqU1Ps
プログラムに軽量なデータベースを組み込む事って可能ですか?
可能だとしたら何を使うのが一般的でしょうか?
0224デフォルトの名無しさん2016/06/23(木) 14:46:13.43ID:evOVUb3R
何も条件が無いならsqliteでいいんじゃない?
0225デフォルトの名無しさん2016/06/23(木) 14:50:55.79ID:2TDqU1Ps
>>224
単語は聞いた事あるので調べてみます
有り難う御座いました
0226デフォルトの名無しさん2016/06/23(木) 16:30:09.42ID:SCzPIfsN
>>223
JavaならJavaのRDBを使えば?

OracleXEだって重くもないそ。
0227デフォルトの名無しさん2016/06/23(木) 16:42:06.78ID:2TDqU1Ps
>>226
javaで書かれてるという事でしょうか
相性はとても良さそうですね
調べたらandroidでSQLiteが標準実装されてるようなので取り敢えずこっちを弄ってみようと思います
レス有り難うございました
0228デフォルトの名無しさん2016/06/23(木) 16:57:30.83ID:SCzPIfsN
AndroidならAndroidと言えよ。
0229デフォルトの名無しさん2016/06/23(木) 17:12:24.56ID:2TDqU1Ps
>>228
すみません、特に今のところandroid限定という訳でもないのです
全く使った事が無いので解らないんですがdbを組み込んだ場合、実行環境の方に特定のライブラリみたいな物をあらかじめ用意しておく必要があるんでしょうか?
もしくはそれに相当するものをアプリケーションと一緒に配付する感じですか?
0230デフォルトの名無しさん2016/06/23(木) 17:52:32.38ID:SCzPIfsN
>>229
SQLiteなら一緒に配布するだけだろうけど、DBってRDBMSだぞ。

ミドルウェアなんだからそれなりの準備は必要。
0231デフォルトの名無しさん2016/06/23(木) 18:13:38.09ID:g0w8fquD
まあAndroidで軽量なDBって要件だとほぼSQLiteでいいよ
SQLは覚えなきゃだけど、応用効くしな
開発機でも直接DBの中身見たりいじくるツールは揃ってるし
0232デフォルトの名無しさん2016/06/23(木) 18:25:57.13ID:2TDqU1Ps
>>230、231
漠然とした質問ですみませんでした
是非使えるようになりたいので勉強してみます
0233デフォルトの名無しさん2016/06/24(金) 08:24:45.41ID:CgW3+xL8
最近javaを触り始めようとしているものです。4個ほど質問があります。

将来的に ユーザー管理を最低限備えたかなりずっしりとしたアプリケーションを作成するのが目的で 値を共有をするためのアクセスカウンターを制作しようと考えているのですが、(1)増やしたカウンターを保持しておくためにはどういった方法があるのでしょうか。

知り合い伝にその関係で働いているそれなりの腕の人間だという方を紹介して頂きました。
その方からapache-tomcatやantといったアプリケーションを強く進められたのですが、そもそも(2)tomcatとは一体なんなんでしょうか。
説明サイトを何個かみたのですが その概要が一切伝わって来ないため、困っています。
触ってみたところ、tomcatというサーバーがあり、そこからantによってビルド、デプロイされたアプリケーションをサーバー内の一つのエリアとして保持し、そのtomcat上のアプリで変数やインスタンスが共有化できるんでしょうかね

その方が過去にそれらを使用し作成したサンプルにと用意していただいたソースを拝見したのですが、SQLサーバーといった物は一切使用せずに変数を共有しているようでした。
こういった作りの場合サーバーが停止した場合、そのデータは何処へ行ってしまうのか凄い不安なのですが、(3)サーバー停止時にもどこかしらに保持されるものなんでしょうか

その人曰く”大小問わず javaではこういう管理が普通”だと。私は今まで そういったデータを管理する際には必ずDBのサーバーやセーブデータと言った形で値を共有していたのですごく困惑しています。
本人に直接聞きたい所ではありますが、その方が理解せずに色々な話をしているように見えたので あまり突っ込んだ話は聞かなかったのですが (4)そういったアプリケーションの作り方が本当にjavaでは普通なのでしょうか。

長い上に”そんな事知るか”と一蹴されそうな内容で本当にすみませんが、一ヶ月程悩んでも答えが出なかったので 質問させて頂きました。
本質的な質問は最初の一つ(1)の部分ですが、分かる方がいましたら2-4の方もよろしくおねがいします。
0234デフォルトの名無しさん2016/06/24(金) 08:36:50.03ID:6jwsLRlP
いきなり会場に連れてかれてフライパンとかオラクルとか買わされそうになった、という話じゃないのか
つまらん
0235デフォルトの名無しさん2016/06/24(金) 09:10:14.11ID:JRbt+Ea2
>>233
トムキャットはアプリケーションサーバですが、JavaのWebアプリケーションを動かすミドルウェアだと思ってください。
0236デフォルトの名無しさん2016/06/24(金) 09:12:32.79ID:JRbt+Ea2
>>233
その方はサーバ(ノード)が突然、落ちることを想定していないのでしょう。

少しおかしいと思います。

プログラマとしては優秀でもシステム全体を考えて作っている人は残念ながら少ないです。
0237デフォルトの名無しさん2016/06/24(金) 12:07:29.96ID:xEd+6tYG
1. カウンターだけなら、ファイルに保存しても良いだろ

2. tomcatは、Webサーバー。
ブラウザから、http:〜 で、そのサーバーにアクセスしたら、HTMLを返送してくれる。
そのHTMLをブラウザが解析して、ウェブサイトを表示する

3. サーバー内のファイルに保存してもいいけど、
ちょくちょくコピーした方が、安全。
これは、DBでも同じ

4. DBの代わりに、ファイルに保存するのは、システムが簡単な場合だろう
02382372016/06/24(金) 12:14:37.35ID:xEd+6tYG
2. スマン。tomcatは、アプリケーションサーバーだったな

ブラウザから、http:〜 で、そのサーバーにアクセスしたら、
プログラム・DBなどを使って、その場で動的に、HTMLを作る

そして、作ったHTMLを返送してくれる。
そのHTMLをブラウザが解析して、ウェブサイトを表示する
0239デフォルトの名無しさん2016/06/24(金) 14:01:11.67ID:86U5TWsJ
>>238
tomcatはWebサーバーだよ。

アプリケーションサーバーも正確には、Webアプリケーションサーバーだから。
0240デフォルトの名無しさん2016/06/25(土) 06:01:33.41ID:hfQpWsI3
Tom yum goong はタイ料理だよ
0241デフォルトの名無しさん2016/06/25(土) 08:31:47.78ID:1mvum4Vz
>>235-236 さん
なるほど・・・apacheのJAVA対応版のようなイメージでしょうか。
システム全体を考えずに作られたソフトを使う方は大変ですよね

>>237-238 さん
ファイルに保存するのって苦手なんですよね、アクセス制限やらパーミッション、ディレクトリの変更諸々に対応するとなると
DB作った方が早いし簡単ですし。テキスト等でやってる皆さんはその辺どう対応してるのかちょっと気になります。
サーバーサイドでhttp等のスキームからJAVAを動かすためのサーバーなんでしょうかね?もう少し深く触ってみようと思います。

進むべき指針が何となくですが見えてきました。お二方とも返信有難うございました。
0242デフォルトの名無しさん2016/06/25(土) 11:45:06.35ID:Iz7M/0Yc
c++の#includeとJavaのimportはどう違うのですか?
0243デフォルトの名無しさん2016/06/25(土) 14:27:40.03ID:4ZuZDTqb
よく知らないので、勘で書くけど、

C/C++の#includeは、コンパイル前のプリプロセッサの段階で、
ファイルのその部分に、丸々テキストをコピーする。
その後、構文解析

Javaのimportは、使わないものは読み込まれないなど、もっと効率的
0244デフォルトの名無しさん2016/06/25(土) 15:39:46.77ID:IvMm/ZRW
int a = 0
hoge(a);

public void hoge(int a){
if (a<10){
try{Thread.sleep(1000);}catch(Exeption e){}
System.out.println(a);
a++;
hoge(a);
}
}

このような感じで1秒ごとに処理させたいんだけど、最初にスリープして一気に処理されるのはなんでですか?
0245デフォルトの名無しさん2016/06/25(土) 15:43:10.09ID:pUavjWt/
>>243
Javaのimport分はこれ使いますと宣言しているだけ。
0246デフォルトの名無しさん2016/06/25(土) 17:33:40.55ID:nVk9lY4N
>>244
普通に動くじゃん、これで何が問題なの?
http://ideone.com/0XvyI7
0247デフォルトの名無しさん2016/06/25(土) 17:48:52.18ID:G/RgSGXS
恐らくメインスレッドをスリープさせたく無いんじゃないだろうか
別スレッド使って周期処理してくれるTimerクラスってのを調べてみれば?
0248デフォルトの名無しさん2016/06/25(土) 17:55:41.62ID:zHxwfVvt
別にimportなしでもフルパスで使えるしな
0249デフォルトの名無しさん2016/06/25(土) 19:01:13.48ID:Iz7M/0Yc
スッキリJavaを読んでもオブジェクト指向が理解できない俺はバカですか?
0250デフォルトの名無しさん2016/06/25(土) 19:14:58.15ID:pUavjWt/
>>249
スッキリさせたいのならオナニー
0251デフォルトの名無しさん2016/06/25(土) 19:17:16.89ID:G/RgSGXS
オブジェクト指向は理解するものじゃない
利用するもの

プログラミングの基本手法を形式化しただけで大した意味はない
0252デフォルトの名無しさん2016/06/25(土) 19:29:20.72ID:pUavjWt/
>>249
そもそも構造化プログラミングは分かってるの?
0253デフォルトの名無しさん2016/06/25(土) 19:50:58.85ID:TogfTX3q
>>249
最初はカプセル化だけ
しっかりやってればおk
0254デフォルトの名無しさん2016/06/25(土) 20:04:24.49ID:Iz7M/0Yc
C言語ならまともに書けるけどね
0255デフォルトの名無しさん2016/06/25(土) 20:22:19.16ID:nVk9lY4N
っ [Java Native Access]
0256デフォルトの名無しさん2016/06/25(土) 20:23:46.27ID:t8HpaPCg
オブジェクト指向の本読むといいと思う
オブジェクト指向でなぜつくるのか、とか
0257デフォルトの名無しさん2016/06/25(土) 20:25:32.81ID:TogfTX3q
Cと構造化の延長で理解してると
オブジェクト指向は分からない
0258デフォルトの名無しさん2016/06/25(土) 21:10:29.79ID:hfQpWsI3
>>244
その状態になる実行環境は?

何らかのIDEのコンソールへの出力がその症状になっているということならばそのIDEの問題だと思う。
プログラムからの出力を溜め込んで最後に画面出力しているんじゃないかと思う。

そのようなバッファリングがされないコンソール(例えば Windows ならコマンドプロンプト)で実行すれば
1秒おきに出力されるんじゃないかな。

あるいはバッファリングされていても出力がいつされたのか分かるようにしておけば実際に時間が掛かって
いることが分かると思う。例えば時刻を出力するとかね。
0259デフォルトの名無しさん2016/06/25(土) 21:21:37.58ID:Iz7M/0Yc
みんなアドバイスありがとう。
0260デフォルトの名無しさん2016/06/25(土) 21:21:48.28ID:hfQpWsI3
>>242
CやC++の#includeはコンパイラがプログラムを解釈する直前に実行されるプリプロセッサで解釈される。
プリプロセッサはCやC++の言語そのものを解釈しているのではなくテキスト変換みたいなことをしている。
そこでは #include を見つけたら該当のファイルを持ってきてその間に挿入した新たなソースファイルを
作る等していて(その他 #define を読んでその後の変換をする等していて)、そうやって作られたテキスト
ファイルをコンパイラが後で読んでコンパイルを行う。

Java の import はそのようなテキスト変換ではなく、コンパイラが読んで直接解釈するものだ。
コンパイラはこれを利用してクラスの在処を探す。
0261デフォルトの名無しさん2016/06/25(土) 23:58:43.68ID:JU8DBS1p
文字列が数値かどうか判定するメソッドがAPIに無い理由ってなんなんですかね?
0262デフォルトの名無しさん2016/06/26(日) 02:36:32.07ID:Fq1EvZdf
>>261
Integer.parseInt()とか使えば例外出るからそれ利用しろってことでは?
0263デフォルトの名無しさん2016/06/26(日) 07:35:53.45ID:zHRvslQr
今現在、JSFでwebページを作ってるのですが、
拡張子がxhtmlだとjspの
<% %>のタグが認識しません。.jspにすれば使えるのですが、なぜでしょうか
0264デフォルトの名無しさん2016/06/26(日) 11:35:41.58ID:6/Qi7lkv
>>261
馬鹿だな。

文字列の文字がすべて数字かどうかチェックしてすべて数字だったら、キャストすればいいんだよ。

キミのいうメソッドがあったら、どれだけ例外を細かく作り分けなきゃいけないんだよ。
0265デフォルトの名無しさん2016/06/26(日) 11:37:47.00ID:6/Qi7lkv
>>263
アプリケーションサーバの設定

JSPだということを隠す必要があるってこと?
0266デフォルトの名無しさん2016/06/26(日) 12:52:19.73ID:45Dp827Y
入門書のスッキリの入門と実践編がもうすぐ読み終わるのだけれど他に何かおすすめの本あるかな?
将来的にはアンドロイドのアプリや趣味でPC上で動く横スクアクションのゲームとか作ってみたいなと思ってる
だけど今はもっとjavaの知識を深めたい気持ちが高い
調べたらEFFECTIVE JAVAがいいみたいなサイトをよく見るけどどうなのかな?
これを読んでない奴はJavaプログラマとしてモグリとか使えないという記述をよく見かける
0267デフォルトの名無しさん2016/06/26(日) 13:01:06.76ID:Fq1EvZdf
>>264
言っていることの意味がよくわからんのだが、String s = "123"; int n = (int) s; と書けるということ?
今の Java ってそこまでやってくれるようになったの?
0268デフォルトの名無しさん2016/06/26(日) 13:14:25.36ID:Fq1EvZdf
Java8でやってみたがキャストじゃ文字列から数値へは出来ないぞ。Integerへのキャストも同様に不可能。
0269デフォルトの名無しさん2016/06/26(日) 13:26:11.52ID:wMYGyLfw
>>266
http://docs.oracle.com/javase/specs/jls/se8/jls8.pdf
http://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf
これらは背伸びしても無駄にならない
0270デフォルトの名無しさん2016/06/26(日) 13:35:21.62ID:45Dp827Y
>>269
ありがとうございます!
んほおぉ英語ぉ!
英語ほとんどわからないけどやっぱ英語できるようになったほうがいいんだろうな
おすすめ本とかでも洋書あげてるの結構見るし
0271デフォルトの名無しさん2016/06/26(日) 15:30:30.27ID:JEZlx75J
>>266
ゲームを作ることと、プログラミング言語の習得は、目的が異なるので勘違いしないように。
0272デフォルトの名無しさん2016/06/26(日) 15:32:19.18ID:JEZlx75J
初心者スレなのを忘れてた。

キャストというとずばりキャスト構文だと思うわけか。

私が言ったのは型変換。
0273デフォルトの名無しさん2016/06/26(日) 15:51:13.76ID:Fq1EvZdf
>>272
>>264と同一人物?
キャストと言ったら形変換だが? 何か用語の定義がおかしくないか?
君は実際どういう風に書いたのを型変換と呼んでいるんだ?
0274デフォルトの名無しさん2016/06/26(日) 16:23:52.43ID:JEZlx75J
>>273
型変換がキャスト式とはかぎらない。
0275デフォルトの名無しさん2016/06/26(日) 17:00:56.77ID:UB82q4A+
>>274
だったらどういうコードなのか書いて示せよ
0276デフォルトの名無しさん2016/06/26(日) 19:20:32.78ID:FUFUwvmK
>>266
良書だけど
ちょい難しいかも

普通にアンドロイドアプリの
作り方の本とか買って
小物作ってみてもいいよ
0277デフォルトの名無しさん2016/06/26(日) 20:00:08.94ID:AN/Vw1H/
javaの知識を広めたいなら
言語仕様書を読むとか
0278デフォルトの名無しさん2016/06/26(日) 20:36:23.66ID:qGDMHb1o
>>266
ゲーム作るなら余計なオブジェクト生成をなるべく避けるべしみたいな所は立読みしておいて損は無いと思う
まぁゲーム作りの本にも出てるかもだけど
0279デフォルトの名無しさん2016/06/26(日) 21:22:46.16ID:45Dp827Y
>>271
はい!

>>276
なるほどー確かに中級者以上的なことも書いてありました
モチベ維持のためにもそうしてみます

>>277
これから長くjava使っていくならそういうのも読んだほうがいいんですかね

>>278
調べたら近くの本屋に置いてるみたいなんで立ち読みしてみます


どうもありがとうございました!
0280デフォルトの名無しさん2016/06/26(日) 21:46:07.67ID:9YyM53VL
昔はゲームならJavaよりC++って言われたけど、いまはどうなんだろう
0281デフォルトの名無しさん2016/06/26(日) 22:31:22.13ID:0+Or/a+e
C# ならありだが Java はない
まあプログラミング一年生にまでやめろとは言わん
0282デフォルトの名無しさん2016/06/26(日) 23:03:16.34ID:yAtATLvz
Java8の本

Java 最強リファレンス、田中裕一、2014

実践Javaコーディング作法 プロが知るべき、
112の規約と21の心得、森崎雅稔(まさとし)、2014

JavaFX GUIプログラミング [Vol.1]、大村忠史、2012

スッキリわかる サーブレット&JSP入門

プログラミング GROOVY、2011

SQL, DBの本
0283デフォルトの名無しさん2016/06/26(日) 23:48:53.59ID:FUFUwvmK
>>280
今こそJavaは大アリだろ
アンドロイドアプリで

Xamarinに期待して
C#でもいいけど
0284デフォルトの名無しさん2016/06/27(月) 00:42:46.54ID:+vyCfN5E
>>283
最近の若いやつって画像を表示するところから作らないからゲームプログラミングの話をすると噛み合わないよな。
0285デフォルトの名無しさん2016/06/27(月) 10:17:26.02ID:85mOU5HS
>>244ですがありがとうございました。
0286デフォルトの名無しさん2016/06/27(月) 19:48:13.28ID:NkkqwDMh
すごく初歩的で馬鹿な質問かもしれませんがよろしくお願いします
エクリプスのエンコードはutf-8でデフォルトになってると思うのですがこれが普通なのでしょうか?
というのも最近エクリプスを使い始めて書いたソースをふとコマンドプロンプトでコンパイルしたらエラーがでてしまって
調べたら文字コードの問題で-encodingコマンドを使ったら実行できたのですが
どうして普通にコンパイルできる文字コードがデフォルトじゃないのかなと気になってしまって
実は最初にエクリプスのエンコード設定で別のにするのが当たり前だったりするのでしょうか?
0287デフォルトの名無しさん2016/06/27(月) 19:54:37.74ID:+vyCfN5E
>>286
Windowsはまだ表面上はSJISです。
0288デフォルトの名無しさん2016/06/27(月) 20:26:40.92ID:NkkqwDMh
>>287
ということはエクリプスでエンコード設定でSJISに設定していたほうが都合がいいということでしょうか?
0289デフォルトの名無しさん2016/06/27(月) 20:32:57.06ID:wojXk3Hk
何が普通かは環境によって違うから何とも言えない
プロジェクトのプロパティのResourceで変更
文字コード以外にも改行が\nか\r\nかで違う、これも見落しやすい
0290デフォルトの名無しさん2016/06/27(月) 20:34:39.21ID:+vyCfN5E
>>288
ソースコードをコマンドプロンプトでコンパイルしたいのならそうなります。
0291デフォルトの名無しさん2016/06/27(月) 20:48:44.20ID:NkkqwDMh
>>289
>>290
なるほどスッキリしました
どうもありがとうございました
0292デフォルトの名無しさん2016/06/28(火) 02:07:46.93ID:IQWCuxBm
ま、コンパイルするたびに毎回 -encoding で指定するのが面倒でないならばなんであっても構わないと言えなくもない。
0293デフォルトの名無しさん2016/06/28(火) 12:50:26.37ID:4sSl9cCN
コマンドプロンプトの文字コードを、UTF-8に設定できないの?

Jenkins, Gradle などを使うと、インターネット上のサーバーにも、
アクセスするだろうし、UTF-8が必須
0294デフォルトの名無しさん2016/06/28(火) 12:57:23.51ID:c2QodO+5
chcp 65001
でUTF-8にできなくはないが動作の保証はされていない
というかまともに動かない
0295デフォルトの名無しさん2016/06/28(火) 16:12:25.82ID:zVyoUqTb
"Jan"→1
"Feb"→2
"Mar"→3
という感じでJavaで英語の月名3文字を数字に変える簡単な方法ありませんかね
if elseと配列以外でやりたいんですが
0296デフォルトの名無しさん2016/06/28(火) 16:20:17.71ID:fkMcptl6
>>295
switchは?

質問
InetAddress.getLocalHostやsocket.getInetAddressで得られるIPアドレスと
コンピュータのシステムで表示されるIPv4が一致しないんだけどどっちが正しいの?

同じパソコン内なら得られたやつで通信できるんだけど端末違うとどっちもできない
0297デフォルトの名無しさん2016/06/28(火) 16:29:48.96ID:zVyoUqTb
>>296
すみません、switchも無しですね
出来るだけ短くできる方法を探しています
0298デフォルトの名無しさん2016/06/28(火) 16:55:53.11ID:oSSei7yC
>>297
Mapか三項演算子の羅列でも使ってればいいんじゃね
結局短く書きたいっていう意図が分からないわ
0299デフォルトの名無しさん2016/06/28(火) 17:02:50.51ID:iF4vz2O7
>>297
Map<String, Integer> m = new HashMap<>();
m.put("Jan", new Integer(1));
int value = m.get("Jan").intValue();
0300デフォルトの名無しさん2016/06/28(火) 17:10:37.05ID:iF4vz2O7
こういうのも
List<String> list = Arrays.asList("Jan", "Feb", "Mar");
value = list.indexOf("Jan") + 1;
0301デフォルトの名無しさん2016/06/28(火) 17:47:19.51ID:842o8d8c
>>300
お。スマートな感じ。
0302デフォルトの名無しさん2016/06/28(火) 20:35:55.41ID:Io4u4DLH
>>295
SimpleDateFormatでもいけるぞ
https://ideone.com/Q8X3IT
0303デフォルトの名無しさん2016/06/28(火) 20:42:31.79ID:D5fDe1MV
たった12分岐なのにアホくさいな。
0304デフォルトの名無しさん2016/06/28(火) 22:19:53.55ID:MoJvcG+3
>>297

�@シンプルにコーディングしてシンプルなコメントを書く
�Aコーディングを1行でも減らそうとしてあまり馴染みのない書き方や関数を使って、それを解説するコメント行数が多い

仕様(テスト問題?)にもよるんだろうが、結果が同じなら�@がいいんでない?
0305デフォルトの名無しさん2016/06/28(火) 22:20:21.95ID:jKjX+7cA
『スッキリわかるJava入門 第2版』もってる人!
p.371の練習問題の�A D)が次ページの解答例に反映されてないっぽいんだが、
「名前を指定しない場合にはインスタンス化することはできないものとします」
これどういうコードになるの?
Cleric() {}じゃだめだよね?
0306デフォルトの名無しさん2016/06/28(火) 22:24:43.86ID:jKjX+7cA
自己解決。
Cleric() {}は書いちゃいけないんだね。
そしたら引数ありのコンストラクタだけになるから引数が空の状態で
コンストラクタ読んだらコンパイルエラーになる。
こういう意味と理解した。
0307デフォルトの名無しさん2016/06/28(火) 23:43:50.77ID:1vh+IkvQ
>>306
コンストラクタをいっさい書かないと、コンパイラが引数なし、処理なしのコンストラクタを追加する。

コンストラクタを明示的に書くと上記のようなコンストラクタは追加されない。
0308デフォルトの名無しさん2016/06/28(火) 23:51:59.70ID:jKjX+7cA
>>307
それそれ。さっきスッキリJava読み返して覚えたよ。
最初、引数なしのコンストラクタ呼んだら(new xx()ね)nullでも
返ってくるのかと勝手に思い込んでいた。
0309デフォルトの名無しさん2016/06/29(水) 00:26:13.22ID:rvkEi9Nh
>>308
Javaの資格本を読むといいよ。
0310デフォルトの名無しさん2016/06/29(水) 01:34:02.25ID:CJ/0Quwm
>>297ですが、提案していただいたもので解決できそうです。
ご意見色々と本当にありがとうございました。
0311デフォルトの名無しさん2016/06/29(水) 02:23:50.85ID:0b8SONCP
スッキリをNGにしとけばいいだろ
ステマ臭くて見てられない
0312デフォルトの名無しさん2016/06/29(水) 11:00:47.75ID:yKd8KiFI
スッキリはJava入門書某ランキングで1位だし今更ステマもないかと
0313デフォルトの名無しさん2016/06/29(水) 12:10:53.42ID:rvkEi9Nh
プログラミングの入門と、Javaの入門が一緒になっているからな。

初めがJavaって教育上、よくないかもしれない。
0314デフォルトの名無しさん2016/06/29(水) 12:23:46.97ID:ynfIfoaY
いいんだよ
それは必要な遠回りなんだよ
0315デフォルトの名無しさん2016/06/29(水) 13:39:39.63ID:Hg0Bm2HH
何かの言語で、初心者がオブジェクト指向を学べればよいけど、
現状では、スッキリJavaしか無い

他の本では、説明が少ないか、難しい

高くジャンプしたけりゃ、逆に、かがみ込まなければならない。
急がば回れ
0316デフォルトの名無しさん2016/06/29(水) 14:31:38.78ID:3P5K1ayE
もうスッキリが初心者を勧誘する怪しい宗教勧誘に見えてくる
いや一概に間違っていないか....
0317デフォルトの名無しさん2016/06/29(水) 16:32:30.16ID:Hg0Bm2HH
しゃーないやん。実践した多くの人が言ってるんやからw

スッキリで、出来るようになった人々の声

「スッキリで勉強したら、C#もすごくよくわかりますた」
「僕もスッキリやったら、C++も出来るようになって、ビックリ!」
「スッキリで、ゲーム制作に自信が持てますた」

など続々と、お祝いの言葉が届いております
0318デフォルトの名無しさん2016/06/29(水) 17:19:39.91ID:1Y4TFFS3
俺もスッキリ読んでお金持ちになって彼女が出来て不老不死になったわ
0319デフォルトの名無しさん2016/06/29(水) 22:04:26.62ID:UoeUIFRO
2ちゃんねる特有の評判がいいものはステマ、陰謀説
0320デフォルトの名無しさん2016/06/29(水) 23:19:02.98ID:tIZAdZda
ボクもちんちんを握っていたらいつのまにかスッキリしました
0321デフォルトの名無しさん2016/06/29(水) 23:38:44.09ID:rvkEi9Nh
いまのJavaのコンパイラが親切すぎるのもよくないんだろうな。

構文エラーがどこなのか、はっきり示してくれるし。

他の言語や古い言語だと、とんでもないところが間違っていると出てくるから、そういう環境の方が勉強になると思う。
0322デフォルトの名無しさん2016/06/29(水) 23:49:32.26ID:tIZAdZda
出るなら良い。昔のC言語だと何にも出ないでOSによってはそのまま暴走なんてこともあった。w
0323デフォルトの名無しさん2016/06/30(木) 00:22:13.71ID:Apg59XEJ
>>322
いまだってスクリプト言語は構文がおかしくても実行してみないとわからないけどな。
0324デフォルトの名無しさん2016/06/30(木) 00:40:10.38ID:LNAC9DQC
;
//ここでセミコロンを打つと何故かコンパイルが通る

昔のコンパイラでよくあったこと
0325デフォルトの名無しさん2016/06/30(木) 00:45:51.01ID:Apg59XEJ
>>324
そんなのねえよ。
0326デフォルトの名無しさん2016/06/30(木) 00:47:38.42ID:Apg59XEJ
ただの昔話は老化現象です。
0327デフォルトの名無しさん2016/06/30(木) 01:01:38.50ID:LNAC9DQC
コンパイラっていってもC言語の初期のやつな
構文解析のバグは多かったよほんと
0328デフォルトの名無しさん2016/06/30(木) 01:13:16.73ID:Apg59XEJ
ただの昔話は老化現象です。
0329デフォルトの名無しさん2016/06/30(木) 01:14:52.91ID:mTfAiRzU
初期っていつ頃だよ
1973年には既にリッチー本人がコンパイラ作ってたようだけど
0330デフォルトの名無しさん2016/06/30(木) 01:31:54.63ID:5tmD9Bik
なんでお前らそんな必死なんだよ
0331デフォルトの名無しさん2016/06/30(木) 01:38:40.75ID:Apg59XEJ
>>329
昔のパソコン用の話じゃないの?

情報が共有されてないから、出来の悪いコンパイラはあったと思うよ。

C言語のコンパイラ規格ってあるのかな?
0332デフォルトの名無しさん2016/06/30(木) 01:43:14.08ID:Apg59XEJ
規格ってどういうマシン語にするかという意味だけど。
0333デフォルトの名無しさん2016/06/30(木) 01:45:34.66ID:nuMRfLhn
言語自体の規格はあるだろ。C99とか。
0334デフォルトの名無しさん2016/06/30(木) 01:50:31.78ID:Apg59XEJ
>>333
そうじゃなくてどういうマシン語にするかだよ。

本家を基準にしてるのかな。
0335デフォルトの名無しさん2016/06/30(木) 01:56:47.21ID:nuMRfLhn
どういうって、そんなのCPUによってどういうのが効率良いかで変わるだろう。
0336デフォルトの名無しさん2016/06/30(木) 02:01:44.97ID:zGuy18cm
昔の業務用なんて言語仕様に完璧なコンパイラがばかりじゃ無かった
0337デフォルトの名無しさん2016/06/30(木) 02:10:13.73ID:Z6gb9kCv
無かったね
0338デフォルトの名無しさん2016/06/30(木) 08:43:46.47ID:bSccWkK0
>>331-332
構文・意味解析なら規格がある

バイナリ生成に関しては無い
リンク時のABIでデファクトと互換性をもたせるかどうかという程度

プリプロセッサも、う〜ん…
0339デフォルトの名無しさん2016/06/30(木) 09:13:00.96ID:Apg59XEJ
そうならJavaでもCでもどういうマシン語はくか不明ってことになるな。

だからこういうマシン語になるんだみたいな話はやっぱりしない方がいいってことだな。
0340デフォルトの名無しさん2016/06/30(木) 15:43:58.54ID:oYnfb6yX
だって色々なCPUがあるんだもん。決められないよ。
0341デフォルトの名無しさん2016/06/30(木) 16:16:42.40ID:8IMpbPEW
Javaは仮想マシン用のコードをはくべ?
0342デフォルトの名無しさん2016/06/30(木) 20:24:54.31ID:rMlxImT8
仮想マシンが未来永劫同じままという保証はない。
普通のCPUが機能追加されアップグレードすることがあるように今後言語の拡張に併せて仮想マシンが拡張される可能性はある。
0343デフォルトの名無しさん2016/06/30(木) 20:32:44.32ID:/XySBwDr
仮想マシン用のコードを直接理解するCPU作ればいいのにね。
最速になるんじゃないの?
0344デフォルトの名無しさん2016/06/30(木) 20:56:41.49ID:bMW7pQBg
昔JavaOSというのがあってな……
0345デフォルトの名無しさん2016/07/01(金) 01:03:59.82ID:p6Mcs4OD
おじいちゃん、昔っていつ?
0346デフォルトの名無しさん2016/07/01(金) 01:15:34.33ID:ZThLUTOM
お前そればっかな
0347デフォルトの名無しさん2016/07/01(金) 02:00:44.25ID:nN7ID4Tm
>>324
コメントだから、文字コードを指定しなくても、日本語を使っても、大丈夫と過信したのかも

日本語は3バイト文字になって、次の改行が1文字だと、合わせて4バイトになる

それを、2バイトずつ処理すると、割り切れるから、
改行が消えて、文が続き、誤動作する

基本的に開発では、日本語を使ったらダメ。
外人は日本語でテストしていないから
0348デフォルトの名無しさん2016/07/01(金) 02:45:05.61ID:fBj5CWQI
日本語が3バイトとは限らんよな。UTF-8 だと3バイトだが、しかしUTF-8なら上位ビット見れば何バイトなのか分かる。
0349デフォルトの名無しさん2016/07/01(金) 02:46:17.67ID:fBj5CWQI
あ、ごめん。UTF-8だと日本語は1文字3バイトなのが多いだけで3バイトとも限らんな。
0350デフォルトの名無しさん2016/07/01(金) 06:02:54.46ID:nN7ID4Tm
どうせコメントで削除されるから、UTF-8 にしなくても良いだろうと、

元の文字コードのまま、コンパイルしたのかも
0351デフォルトの名無しさん2016/07/01(金) 10:26:35.32ID:CKWFVnx8
>>343
それってもはやJavaしか動かないOS
0352デフォルトの名無しさん2016/07/01(金) 10:29:32.19ID:CKWFVnx8
Java自体はUTF-8ではなくて、UTF-16だろ。
0353デフォルトの名無しさん2016/07/01(金) 11:53:13.46ID:yW2x5Hx7
そういや Java CPU を作るって昔 Sun が言ってたなあ。
なんで止めちゃったんだっけ?儲かりそうにないから?
0354デフォルトの名無しさん2016/07/01(金) 11:54:37.10ID:yW2x5Hx7
>>352
そう。

そしてサロゲートペアに悩まされると。
0355デフォルトの名無しさん2016/07/01(金) 12:03:34.96ID:CKWFVnx8
>>353
もしそんな特化したハードウェアを作ってたら、すぐサンマイクロシステムズは破綻しただろうな。

そんなにお馬鹿ではなかったようだけど。

そもそもそんな変なことを言うのはサンの一部の馬鹿だろ。

いまのハードウェアは仮想化してマルチOSか、パソコンの延長線上のもの。

現在だとx86、x64系に勝つハードウェアを作ってシェアが獲得できるわけがない。

オラクル社は現実的なのでこういう無駄な金はかけない。
0356デフォルトの名無しさん2016/07/01(金) 12:04:37.49ID:Jlx4pT85
Javaを担いでたIBMが嫌がったんじゃないの
0357デフォルトの名無しさん2016/07/01(金) 12:10:38.39ID:CKWFVnx8
>>354
Javaを作った当時はUTF-16の方が良いと思ったんだろうけど、結果はUTF-8を標準する方向に動いてしまった。

もともと日本等の2バイト文字圏では16は漢字が2バイトでは収まらないので不都合だと当初から言われていたが、やっぱりダメでUTF-8がスタンダードになってる。
0358デフォルトの名無しさん2016/07/01(金) 12:28:25.84ID:U95fC87K
>>342
Javaが登場してから8までに追加されたオペコードの数を知ってるかい?
JVMで動く言語(GroovyやScala)のために追加されたinvokedynamicだけしか拡張されてない。
オペコードの追加は今後もほとんど行われないでと思うよ

>>343
https://ja.wikipedia.org/wiki/ARM%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3#Jazelle
オペコードを実行する石はARM以外にもあるけど代表例として
0359デフォルトの名無しさん2016/07/01(金) 13:28:28.65ID:yW2x5Hx7
>>357
内部がUTF-16に都合がいいようにcharが16ビットになってるだけだよ。内部的にはUTF-8は扱いづらいから使われない。
しかしUnicode自体が16ビットで収まらなくなった。
0360デフォルトの名無しさん2016/07/01(金) 13:30:43.02ID:yW2x5Hx7
>>355
Sunは元々ワークステーションやサーバに特化したCPU作っていたと思うが。
まあ、後半はPCサーバに押されていたわけだが。
0361デフォルトの名無しさん2016/07/01(金) 13:32:26.48ID:CKWFVnx8
>>359
SJISとか2バイト文字圏の文字コードと対応しやすいからでしょ。

Windowsだって内部がUTF-16なのはSJIS等に引っ張られてるからだと思うしね。
0362デフォルトの名無しさん2016/07/01(金) 13:35:07.54ID:CKWFVnx8
>>360
SPARCとJavaはほとんど関係ないんじゃない?

Windows、Linuxに対処するためにJavaを作った側面もあると思うし。
0363デフォルトの名無しさん2016/07/01(金) 13:47:59.88ID:Jlx4pT85
>>361
それ採用したの20年以上前ですしおすし
0364デフォルトの名無しさん2016/07/01(金) 21:38:49.44ID:O26pV+Hm
>>362
Javaは最初は家電制御用に使おうとしていたって話を聞いたことあるぞ。
0365デフォルトの名無しさん2016/07/01(金) 21:57:02.41ID:l06M3c9j
java全く知らないのですが
ビルドしなくてはならなくなって困っています。
具体的には
https://github.com/kohlschutter/boilerpipe
をビルドしようとしています。

Debian jessie(amd64とx86)の環境でビルドしようとしていて、
とりあえずamd64のほうで

git clone https://github.com/kohlschutter/boilerpipe
cd boilerpipe
mvn package

としたら "BUILD SUCCESS" となって jar ファイルなるものができるのですが

cd boilerpipe-common/target
java -jar boilerpipe-common-2.0-SNAPSHOT.jar

などとしてみても
「boilerpipe-common-2.0-SNAPSHOT.jarにメイン・マニフェスト属性がありません」
と出てしまいます。

調べてみて
http://stackoverflow.com/questions/9689793/cant-execute-jar-file-no-main-manifest-attribute
を参考に pom.xml をいじってみましたがそもそもどこに挿入したら良いのかも
<mainClass>com.mypackage.MyClass</mainClass>
の部分をどう修正したらいいかもわからず、
<mainClass>com.kohlschutter.boilerpipe</mainClass>
などとやみくもにアレコレやってみましたが状況は変わっていません。
0366デフォルトの名無しさん2016/07/01(金) 22:03:53.52ID:mc0aB7jH
>>365
それただのライブラリだからMainクラスは自分で作るんだよ

以下のUsage参照
https://code.google.com/archive/p/boilerpipe/wikis/QuickStart.wiki
0367デフォルトの名無しさん2016/07/01(金) 22:13:34.29ID:l06M3c9j
>>366
ありがとうございます!
よく読んで出直してきます!
0368デフォルトの名無しさん2016/07/01(金) 22:25:11.72ID:mc0aB7jH
>>367
ドキュメントはメンテされてないっぽいので
同梱してあるデモクラスを読むのが結局近道かもしれない
https://github.com/kohlschutter/boilerpipe/tree/master/boilerpipe-demo/src/main/java/com/kohlschutter/boilerpipe/demo
0369デフォルトの名無しさん2016/07/01(金) 22:41:33.83ID:l06M3c9j
>>368
いま読んでみてるんですが
javaの知識皆無なんで時間かかりそうですw

とりあえず入門サイトみて

public class hogehoge{
public static void main(String[] args){
System.out.println("mainだよ");
}
}

的なのがどこかに必要なのが分かったくらいです。
あとはたぶん
package名を先頭に書いて
使用するライブラリをimportして
対応する pom.xml を書いてビルドって感じでしょうか。

頑張ります (`・ω・´)
0370デフォルトの名無しさん2016/07/01(金) 22:55:52.96ID:QY52Sr5V
Boilerpipeライブラリを利用して何かを実現したいなら、
その目的に合わせてmainクラスに処理を書かないと行けないのではないかな?
03713692016/07/01(金) 23:11:35.06ID:r/iYn8jM
>>370
その通りですが、
なにぶんjavaわかんなくて時間かかりそうなんで
とりあえず呑みに行くことにしましたw

サーセン (´・ω・`)
0372デフォルトの名無しさん2016/07/01(金) 23:46:51.25ID:nN7ID4Tm
JAR ファイルの作り方・構成などを、検索すれば?

起動ファイル・マニフェストなど、色々ある
0373デフォルトの名無しさん2016/07/02(土) 12:48:11.70ID:jmQ+Ajfw
Javaを学ぼうと思いjdk8 with net beans をダウンロードしたのですが、インストールすることが出来ないです。
再度インストール、またはログファイルを見てくれというメッセージが出でくるので見ると、エラー1622でインストールが終了したとなっているのですがどうすればインストールできますか?
0374デフォルトの名無しさん2016/07/02(土) 12:51:16.17ID:FWJ0AnQE
>>371
Java知らないのはいいけど、それ以外のプログラミング経験を書いたほうがいいよ
mavenでjarビルド出来るんだからmainメソッド以降進まないほどのスキルじゃないと思うし
0375デフォルトの名無しさん2016/07/02(土) 12:56:28.89ID:FWJ0AnQE
>>373
状況は正確に伝えた方がいいよ
OSは何を使っているのか、
インストール手順の詳細、
再インストールを指示されてるけど行ったか、行っても同じ現象か
とかの情報ね
0376デフォルトの名無しさん2016/07/02(土) 13:52:38.14ID:jmQ+Ajfw
>>375
すいません、指摘ありがとうございます。
Windows8.1で64ビットのやつです。再インストールは行いましたが、何度も同じ状況になってしまってます。
インストールの手順なんですが、出てくる特に変わったことはせず、出てくるものを全て次へにしてる感じです。
JDK update91のインストールは完了しませんでしたと表示されています。
0377デフォルトの名無しさん2016/07/02(土) 14:05:18.24ID:BXSNxLnP
eclipceのオールインワンでもDLしとけ
たしかjdk入りだし
0378デフォルトの名無しさん2016/07/02(土) 18:47:17.53ID:jmQ+Ajfw
eclipceにしときます
0379デフォルトの名無しさん2016/07/02(土) 20:03:42.86ID:bHH5CSBT
昨晩eclipseのアップデートがかかりました。
そしたら今まで書いたソースコードの全角がすべて文字化け
してしまいました。
どうやらもともとS-JISになっていたようですがアップデート後
はeclipseはS-JISが選べないようです。
過去のソースコードはUTF-8とかに何かのツールで変換するしか
ないでしょうか?
0380デフォルトの名無しさん2016/07/02(土) 20:53:14.31ID:T/eU/u1b
いろいろやり方はあるだろうけど、自分がどの文字コードで書いてるかわからないようじゃダメだな。

サクラエディタなど文字コードがはっきり分かるもの使ってる?
0381デフォルトの名無しさん2016/07/02(土) 21:07:04.81ID:Eg5K6sZP
>>380
今回の件で文字コードを意識してなかったことを反省しています。
エディタはeclipse上のものを使っていますが、文字化けしたので
秀丸というフリーソフトを入れて調べたら今までのがS-JISだと判明
しました。自分ではずっとデフォルトのUTF-8だと思い込んでいました。
0382デフォルトの名無しさん2016/07/02(土) 21:09:56.70ID:RGWnw+KA
windows版ではeclipseのpreferenceー>generalー>workspaceで
エンコードの設定があるよ。そこでデフォルトの
MS932にしておけば大丈夫なはずだけど。unix上だと
どうなっているか分からない。
0383デフォルトの名無しさん2016/07/02(土) 21:16:55.90ID:Eg5K6sZP
>>382
ありがとうございます。MS932に設定してeclipse再起動したらうま
くいきました!でも今後はUTF-8を使おうと思います。
0384デフォルトの名無しさん2016/07/02(土) 21:19:13.21ID:T/eU/u1b
>>383
MS932はSJISだからね。
0385デフォルトの名無しさん2016/07/02(土) 21:35:07.99ID:Eg5K6sZP
>>384
ありがとうございます。おぼえておきます。
0386デフォルトの名無しさん2016/07/02(土) 23:48:21.98ID:FDW/vRG3
eclipseでMavenプロジェクトでSpringBootを使ってWEBアプリを作るための参考書を探してるんですが
これが鉄板みたいな参考書ありますか?
0387デフォルトの名無しさん2016/07/03(日) 00:10:34.11ID:Bmkq7/Hz
MS932(またはcp932、またはWindows-31j)はShift_JISをMSが拡張したやつだから元のShift_JISよりも文字数は多いよ。
0388デフォルトの名無しさん2016/07/03(日) 00:38:13.57ID:N3wS2fQw
>>381
ちょっと待てw
秀丸フリーソフトじゃないぞ
アカデミーか何かフリー条件に対応してれば別だけど
0389デフォルトの名無しさん2016/07/03(日) 10:04:40.97ID:h62Mg+fC
>>388
例のアレwww
0390デフォルトの名無しさん2016/07/03(日) 10:07:10.10ID:Bmkq7/Hz
文字コード調べたいなら nkf -g でやれば良い。
0391デフォルトの名無しさん2016/07/03(日) 10:30:57.94ID:1oYTkPQD
windowsに入ってればな
0392デフォルトの名無しさん2016/07/03(日) 11:56:28.92ID:Bmkq7/Hz
入れればいいじゃん
0393デフォルトの名無しさん2016/07/03(日) 17:52:42.53ID:VVldewDG
基本的な質問で悪いのですが、教えてください。
JSP上でボタンを作成し、そのボタンをおされたら、DBへのインサートを行う
javaクラスを呼び出すwebを作りたいと思っています。
この場合、JSPのボタンからjavaクラスを呼び出すのは、ボタンのonclickでよいのでしょうか。
解説しているサイトがないか調べたのですが、見つからず困っています。
0394デフォルトの名無しさん2016/07/03(日) 20:30:18.06ID:mmeW8XES
>>386
はじめてのSpring Boot―「Spring Framework」で簡単Javaアプリ開発 (I・O BOOKS)
0395デフォルトの名無しさん2016/07/04(月) 00:35:38.20ID:kx6+7cCL
>>393
htmlのsubmitボタンかajaxでサブミットしてリクエストを送信してやれ
0396デフォルトの名無しさん2016/07/04(月) 18:38:29.94ID:UiymwUTl
>>395 返信、ありがとうございます Submitでやろうとしていますが、action=のところに、DBインサート用Javaクラスを設定することはできるのでしょうか。 調べたサイトでは、actionには必ず次に遷移する画面のJSPが設定されていました。
0397デフォルトの名無しさん2016/07/05(火) 03:39:54.36ID:94G9IfNv
「HTML submit」で検索!
0398デフォルトの名無しさん2016/07/05(火) 21:04:01.36ID:3GjDlEaM
>>396
フレームワークを使っていますか?
調べたサイトと目的が合致しない場合、調べたサイトを載せたほうが現状が伝わりやすいです。
0399デフォルトの名無しさん2016/07/05(火) 23:03:38.17ID:m3D8korl
>>396 です。
色々ご返信ありがとうございます。
フレームワークではないんですが、JSTLを使っています。
それ以外は特にかわったことはしていません。

HTML submitで検索したところ、
<input type="submit" name="insert" value=" 登録 " class="eb">
というようにボタンにclassを設定することが可能であることがわかりました。
ただ、呼び出したいjavaクラスでは、コンストラクタでDB接続を行い、
insertメソッドでデータの追加を行おうとしています。
ボタンを押下することで特定のクラスのメソッドを呼ぶ設定はできるのでしょうか。
行いたい処理は、画面遷移を発生させないデータのinsert処理です。
0400デフォルトの名無しさん2016/07/07(木) 04:28:45.59ID:Ry0ooGfS
<form action="送信先" method="リクエストメソッド">

基本がわかっていないのなら、
「スッキリわかる サーブレット&JSP入門」を読む
0401デフォルトの名無しさん2016/07/07(木) 12:29:39.79ID:6JwgHXC6
>>399
これはHTMLのclass属性では?
JSPとは関係ないのでは?
0402デフォルトの名無しさん2016/07/08(金) 13:34:46.10ID:GkjfzWFD
>>26
これの処理内容が詳しくしりたい
0403デフォルトの名無しさん2016/07/08(金) 13:50:52.88ID:suQnG4Cg
List<WebElement>を拡張for文で回すことは出来ますか?

現在List<WebElement>数を取得して通常For文で回しています
0404デフォルトの名無しさん2016/07/08(金) 15:28:51.03ID:I+9y5PSD
List<WebElement> elements;

for( WebElement element : elements ){


}
0405デフォルトの名無しさん2016/07/08(金) 15:50:25.20ID:suQnG4Cg
>>404
早速のレスありがとうございます、出来ました

考え方は合っていたようですが変数名の指定を誤っていたのかエラーが出ており
何か違う方法があるのかと思い込んでいたようです
0406デフォルトの名無しさん2016/07/08(金) 16:32:28.68ID:2P7oAulS
>>402
だっせえなこれ書いたの誰だよ、俺だよ
流石に反省してわかりやすく直した
http://ideone.com/hdGo0g
0407デフォルトの名無しさん2016/07/08(金) 18:11:54.85ID:GkjfzWFD
>>406
やべぇ、前の方がわかりやすくて申し訳ない
全然読めないレベルでごめんなさい
0408デフォルトの名無しさん2016/07/08(金) 20:33:26.41ID:PXUPtwcw
>>406
級数使えばも少しシンプルとか
https://ideone.com/A511OY
0409デフォルトの名無しさん2016/07/08(金) 21:32:35.99ID:YwMN9VpJ
public class Test {
public static void main(String[] args) {
List<String> idList = Arrays.asList("A", "B", "C");
Map<String, Integer> alMap = new HashMap<>();
alMap.put("A", 3);
alMap.put("B", 1);
alMap.put("R", 10);
//List<List<String>> list;
String mainList[][] = null;

for (int i = 0; i < idList.size(); i++) {
List<String> list = new ArrayList<>();
for (Entry<String, Integer> al : alMap.entrySet()) {

if (al.getKey().equals(idList.get(i))) {
list.add(al.getKey());
}
}
// ここで初期化して代入したい。けどmainListが無いか
mainList[i] = new String[list.size()];
Arrays.fill(mainList[i], list);
}
}
}
nullPoどうしよう。。
0410デフォルトの名無しさん2016/07/08(金) 22:05:35.89ID:2P7oAulS
>>408
flatMapを使って出力を終端にまとめるとさらに短かくなる
https://ideone.com/KjWBVA
0411デフォルトの名無しさん2016/07/08(金) 22:33:15.83ID:PXUPtwcw
>>409
String mainList[][] = null;
のところを
String mainList[][] = new String[idList.size()][];

mainList[i] = new String[list.size()];
Arrays.fill(mainList[i], list);
のところを
mainList[i] = list.toArray(new String[0]);

でいいのでは?
そもそもの処理自体が何がしたいのかわからないけど。。。
2個目のforはalMap.containsKey()でことが済むし、
MapのKEYはユニークなんだから
list.add(al.getKey());
は同一のlistインスタンスで最大1回しか呼ばれないし、ってことはmainListを多重配列にする意味がそもそも。。。
0412デフォルトの名無しさん2016/07/08(金) 23:14:04.25ID:oeqNGrjL
39 仕様書無しさん 2016/07/08(金) 23:11:07.46
Oracle、Java EEから手を引く可能性も

http://s.news.mynavi.jp/news/2016/07/04/261/
0413デフォルトの名無しさん2016/07/09(土) 00:27:11.10ID:CG0sDuR4
>>410
みんな。どうしたんだ。もっと素直になろうぜ。
https://ideone.com/40kVBY
0414デフォルトの名無しさん2016/07/09(土) 00:43:22.67ID:CG0sDuR4
やっぱピラミッドがいいか
https://ideone.com/FXxYDR
0415デフォルトの名無しさん2016/07/09(土) 01:13:17.59ID:I/ga01ar
>>414
そんな初心者みたいなコードで恥ずかしくないのか?
0416デフォルトの名無しさん2016/07/09(土) 01:28:54.47ID:CG0sDuR4
>>415
恥ずかしくない(キリッ
0417デフォルトの名無しさん2016/07/09(土) 01:32:50.43ID:I/ga01ar
プロから言わせてもらうと変数名からもうダメだね。
0418デフォルトの名無しさん2016/07/09(土) 05:34:36.28ID:CG0sDuR4
ぷロ()
0419デフォルトの名無しさん2016/07/09(土) 08:41:48.59ID:3xcP/z3K
流行りか知らんがこの程度の処理にラムダ多用する奴は死ねば良いと思う
0420デフォルトの名無しさん2016/07/09(土) 12:14:36.13ID:opebRAyD
409です。

実際の処理では生徒とテスト結果を生徒クラスごとにリスト化します。(二次配列かリスト使用)
mapにはMap<Student, Integer>があり、Studentには所属「クラスをもっています。

処理は上記と同じく、最初に配列を用意しておいて、

class AAAA {
static List<String> classList = {"1組", "2組", ... "n組"};
}

class BBBB {
Student[][] mainList;
public BBBB(Map<Student, Integer> m) {
for (int i = 0; i < AAAA.classList.size(); i++) {
List<Student> list = new ArrayList<>();
for (Entry<String, Integer> record : m.entrySet()){
if (record.getClass().equals(AAAA.classList.get(i)){
list.add(record);
}
}
Arrays.fillmainList[i], list);
}
}
}
0421デフォルトの名無しさん2016/07/09(土) 12:43:25.02ID:G0+OVz3s
じゃあラムダ式も三項演算子も使わない方法に修正したよ、これなら問題ないべ
https://ideone.com/zraMFb
0422デフォルトの名無しさん2016/07/09(土) 15:50:43.78ID:CG0sDuR4
>>421
すんげーわかり辛い
0423デフォルトの名無しさん2016/07/09(土) 16:26:45.19ID:sH308RA7
>>413-414
これで良いだろ
解りづらい書き方で俺カッケーしてる奴ダサすぎ
0424デフォルトの名無しさん2016/07/09(土) 16:37:59.70ID:I/ga01ar
>>421
そもそもなんでコレクションなの?
0425デフォルトの名無しさん2016/07/09(土) 16:48:43.32ID:I/ga01ar
内部でリテラル固定なのに。
0426デフォルトの名無しさん2016/07/09(土) 18:14:34.64ID:G0+OVz3s
>>424
リファレンスにあるのを流用してきただけで何のひねりもないよ
if (j >= 2)やj == endといった整形のための判定分岐を省略したかったから代替を探していた
https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Collectors.html
0427デフォルトの名無しさん2016/07/09(土) 18:34:59.17ID:I/ga01ar
mainメソッドの引数で指定するとか考えないのか。

実用性がないな。
0428デフォルトの名無しさん2016/07/09(土) 19:56:27.49ID:G0+OVz3s
そのくらいの改造は自分でがんばれだな
保守性は良好だぜ、例えば
7 8 9 10
4 5 6
2 3
1
という風に逆順で出力するにはmap(x -> 1 + 15 - x)を挟むだけで完了する
0429デフォルトの名無しさん2016/07/09(土) 20:20:36.93ID:I/ga01ar
>>428
いちいち改修するのか。

まあ初心者の考えだから仕方ない。
0430デフォルトの名無しさん2016/07/09(土) 22:15:58.38ID:AbBThx/D
そこまでいくならSICP嫁よってなるな
0431デフォルトの名無しさん2016/07/09(土) 23:24:14.14ID:CG0sDuR4
ふふふ
https://ideone.com/vBEQNx
0432デフォルトの名無しさん2016/07/10(日) 00:37:01.23ID:Y6I/AZoa
>>431
何が目的なのか?

そんな初心者みたいなものをさらして。
0433デフォルトの名無しさん2016/07/10(日) 04:16:45.46ID:Pg8qYW3c
簡単なものを簡単に書くことは重要だ。この重要さがわからないのはまだまだ初心者と言える。
0434デフォルトの名無しさん2016/07/10(日) 06:25:56.16ID:qe8VRUei
でさ、この程度の処理じゃ単純forループに速度と消費リソース両面で勝てなくない?

早くて軽いのが優先じゃないの?
0435名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 07:06:51.72ID:oi46hak9
たった数十行のプログラムじゃあそうだろね
0436名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 09:46:13.72ID:Y6I/AZoa
>>431
ぱっと見て何の処理かわからないようなのはダメ
0437名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 11:53:55.78ID:vClNR34Z
6〜7割は関数や変数のネーミングセンスで決まる
いい名前を思いつかず関数にすることも思いつかないという悪循環
0438名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 12:41:37.21ID:KvPHl+zr
>>399 です。

>>400、>>401
ご回答ありがとうございます。返事が遅れ申し訳ありません。
<form action="送信先" method="post or get"> であることは
把握しているんですが、どこかのサイトに、
class=""で指定したらjavaクラスを呼び出せ、 name=""で指定したら
そのメソッドを呼び出せると書いてあり、お聞きしてしまいました。

>>399 で記載していることはjavaサーブレットを
使わなくては実現できないでしょうか。
JSPとJavaだけで実現することは難しいでしょうか。
0439名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 13:49:28.13ID:Pg8qYW3c
>>437
この程度のサンプルプログラムみたいなやつで数個しかなくメソッド内やブロック内でしか使わないローカル変数のネーミングに一々こだわることに意味があるとは思えんが?
0440名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 14:14:14.13ID:N4KQkNqO
>>439
甘いな。お皿洗いができない人間に部屋の掃除ができると思うな。
小さいコードだからこそ真剣に向き合う。プログラムはその積み重ね。
0441名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 16:21:04.95ID:Pg8qYW3c
>>440
無理すんなよ。少し休んだほうがいいんじゃないか?
0442名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 16:34:57.35ID:N4KQkNqO
>>441
はい話すり替えたー
0443名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 16:37:22.44ID:N4KQkNqO
変数の数はローカル変数がグローバル変数より圧倒的に多いのだから
ローカル変数のメンテできないやつにプログラムをきれいに書くことできないよ
0444名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 18:41:11.38ID:Pg8qYW3c
はいはいそうですね。
0445名無しさん@そうだ選挙に行こう! Go to vote!2016/07/10(日) 19:30:19.74ID:Y6I/AZoa
>>437
あいつにそう言おうかと思ったけど、話を聞かなそうだったから、俺は控えてたよ。
0446デフォルトの名無しさん2016/07/10(日) 21:41:58.00ID:C4gnDwm1
>>420
https://ideone.com/FWkyJv
Mapのままで何とでもなるのでStudent[][]に入れなくていいよ
0447デフォルトの名無しさん2016/07/11(月) 14:05:21.70ID:LHcwjxkz
そもそも
form action="送信先" method="post or get"
の送信先には、サーブレットやjspのほか、Javaのクラスをインスタンス化した変数とかも設定できるのだろうか
インスタンス化したとはいえ、サーブレットやjspみたいに物理的にあるわけじゃないしね

わかる人、どーなの(´・ω・`)
0448デフォルトの名無しさん2016/07/11(月) 14:26:17.57ID:by3xqEt6
シリアライズしてクッキーに入れちゃうという方法があった
4Kバイト超になると対応できないブラウザが出てくる
0449デフォルトの名無しさん2016/07/12(火) 07:48:27.74ID:jFwCbfrL
>>448
つまり、サーブレットではないJavaクラスは
0450デフォルトの名無しさん2016/07/12(火) 07:49:28.29ID:jFwCbfrL
>>448
つまりサーブレットではないJavaクラスではactionに設定できないってこと?
0451デフォルトの名無しさん2016/07/12(火) 23:27:57.10ID:zkRPLk96
以下のような構成でXpathを用いて2番目のclass="state"処理・未処理をを基準に3番目のclass="title"を
取得することは出来ますでしょうか、子ノードの条件で親ノードを取得する方法でやってみると条件が反映
されず全部拾ってきてしまいます

<tbody>
  |
  |―<tr>
  |  |
  |  |<td class="day">2016年07月12日</td>
  |  |
  |  |<td class="state">[,未処理]</td>
  |  |
  |  |<td class="title"> XXXXXXXXX
  |―<tr>
  |  |
  |  |<td class="day"> ・・・・・
      �U
      �U
      �U
      �U
0452デフォルトの名無しさん2016/07/14(木) 06:34:06.19ID:5Jg64+hU
よく知らないけど、兄弟ノード、sibling とかは無いの?
0453デフォルトの名無しさん2016/07/14(木) 23:34:39.17ID:MloPZ03N
ない
0454デフォルトの名無しさん2016/07/15(金) 01:33:49.59ID:Nm9Xh+ig
各<tr>を取得する

各<tr> {
<tr>の子の、<td class="state">が処理なら、
<tr>の子の、<td class="title">を取得する
}
0455デフォルトの名無しさん2016/07/15(金) 05:46:40.64ID:Nm9Xh+ig
>>451
閉じタグなどが、正しく閉じていないなどで、木構造が正しくなっていないのかも。
ツールで、XMLの構造をチェックするか、DOM Explorer なども見る

HTMLで実行すると、認識できないタグがあって、すべての要素を取ってきてしまった

君のは、XMLなのか?
0456デフォルトの名無しさん2016/07/15(金) 06:43:09.30ID:Nm9Xh+ig
>>451
HTMLで、jQueryでやったら出来たので、参考にして。
ただし、table タグを使った

$(function(){
// tableの子孫のtrで、tdを含むタグを、基点として処理する
$('table tr:has(td)').each(function(){

// 処理という文字列を含んでいれば
if( $('td.state', this).text().indexOf('処理') !== -1 ){
var str = $('td.title', this).text();

str = "<p>"+str+"</p>";
// table タグの直後に、p タグを挿入する
$(str).insertAfter('table');
}
});});
0457デフォルトの名無しさん2016/07/17(日) 02:13:14.56ID:5syvJVyC
>>454ー456
遅くなりました、やはり都合のいい構文探しはやめて454記載の通り普通にやってゆこうと思います
jQueryは使った事が無いので勉強させていただきます、ありがとうございました
0458デフォルトの名無しさん2016/07/19(火) 19:47:45.88ID:nezbHtVD
var gbfToolFpsTarget= [];
var gbfToolFpsSetting= 0;

fpsの変更をしたいのですがどうしたらいいんですか?
0を24とかにして上書き保存したけど反映されません。

>それ宣言してるだけだからな
>実際の値はlocalstorageから読んでる
このようなヒントもらいましたがサッパリです
0459デフォルトの名無しさん2016/07/19(火) 20:13:47.70ID:QT0dUlSr
.       ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (;´Д`)< すみませんすぐどかしますんで
  -=≡  /    ヽ  \______________
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) ←>>458
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))




             oノ
             |  三   
 _,,..-―'"⌒"~⌒"~ ゙゙̄"'''ョ  ミ
゙~,,,....-=-‐√"゙゙T"~ ̄Y"゙=ミ    L____
T  |   l,_,,/\ ,,/l  |      ゚ ゚
,.-r '"l\,,j  /  |/  L,,,/
,,/|,/\,/ _,|\_,i_,,,/ /
_V\ ,,/\,|  ,,∧,,|_/
                                    ┼ヽ  -|r‐、. レ |
                                    d⌒) ./| _ノ  __ノ
0460デフォルトの名無しさん2016/07/19(火) 20:16:26.36ID:prMQQOa8
>>458
それJavaなのか?
0461デフォルトの名無しさん2016/07/19(火) 20:16:59.44ID:IGtLVVWj
ワロタw
マルチポストいくない
0462デフォルトの名無しさん2016/07/20(水) 17:23:51.60ID:P4ut6Ky5
すみません丸っきしの初心者ですが宜しくお願いします。

今GUIについて勉強してるのですが例えばJFrameのサンプルを見ると大抵がJFrameを継承したクラスを作っていました。
これまでごくごく単純なプログラムしか見ていなかったので今までJFrameはそのままインスタンスして使うものだとばかり思っていました。

これはそのままインスタンスした方が良いとかあれは継承した方が良いとかの見分けがつかないのですが初心者のうちは「こういうもの」と割り切ってサンプルコードのままに書いていった方がいいのでしょうか。宜しくお願いします。
0463デフォルトの名無しさん2016/07/20(水) 20:49:10.36ID:anxDLm4e
継承してる意図が理解できるまでは写経でいいんじゃないかな
継承してるものをしないように書き直してみるのも良いのでは
0464デフォルトの名無しさん2016/07/21(木) 00:00:56.47ID:gkWq3k3w
>>463
ありがとうございます!精進します
0465デフォルトの名無しさん2016/07/22(金) 21:16:18.99ID:d1FTJpy1
javaでweb開発させられそうなんですけど、フレームワークとか何を使うのがいいのですか?
0466デフォルトの名無しさん2016/07/23(土) 18:18:40.95
2chで聞いてもまったく意味ありません。
現場でそれとなく聞くコミュニケーション能力を身に付けよう。
0467デフォルトの名無しさん2016/07/23(土) 22:22:49.58ID:N100zgST
>>465
なんでいきなりフレームワークなんだよ?
0468デフォルトの名無しさん2016/07/23(土) 23:21:45.97ID:eYAwBGPh
「スッキリわかるサーブレット&JSP入門」が定本
0469デフォルトの名無しさん2016/08/10(水) 22:15:25.31ID:UWZg55pn
株式会社TOUAが2016年7月に破産
http://www.tdb.co.jp/tosan/syosai/4191.html
0470デフォルトの名無しさん2016/08/16(火) 16:20:02.90ID:rQocNQlX
throwの効果は任意の例外を引き起こすってことであってますか?
「例外を投げる」ってほっぽりだすって意味だと思ってた…orz
0471デフォルトの名無しさん2016/08/16(火) 17:09:45.27ID:p7+3//b+
投げる(キャッチボール、受け手が居る
0472デフォルトの名無しさん2016/08/16(火) 19:32:03.43ID:LN6Jma9b
北海道では「投げる」は「捨てる」の意味でも使うしなあ。
0473デフォルトの名無しさん2016/08/19(金) 01:09:34.41ID:9jzlOU2r
投げ方によるんじゃ…。
特定の状況について独自の例外を投げるのをほっぽり出すと表現するのは違和感がある。
0474デフォルトの名無しさん2016/08/21(日) 00:09:28.66ID:KBImK4AV
どうしてもわからないです、よろしくお願い致します。
HTMLで入力フォームを作っていまして
1.あるフォームの入力欄に「大山倍達」を入力したいときに、入力欄にオオヤマでもooyamaでも打ち込むと大山倍達か大山のぶ代がリストアップされるようにしたい
2.ooyamaのままでは確定できない、ooyamaまで入力したらリストアップされている大山倍達か大山のぶ代のどちらかで確定するか文字を消すしかない

HTMLのデータリスト(参考:ttp://www.tagindex.com/html5/form/datalist.html) は近いのですが
ooyamaでのリストアップ等ができないのでjavascriptしかないと思いました。 どのような処理の組み合わせをしたらよいかご教授お願いします。
0475デフォルトの名無しさん2016/08/21(日) 00:30:40.87ID:pOrSAZ0N
.       ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (;´Д`)< すみませんすぐどかしますんで
  -=≡  /    ヽ  \______________
.      /| |   |. |
 -=≡ /. \ヽ/\\_
    /    ヽ⌒)==ヽ_)= ∧_∧
-=   / /⌒\.\ ||  ||  (´・ω・`) ←>>474
  / /    > ) ||   || ( つ旦O
 / /     / /_||_ || と_)_) _.
 し'     (_つ ̄(_)) ̄ (.)) ̄ (_)) ̄(.))




             oノ
             |  三   
 _,,..-―'"⌒"~⌒"~ ゙゙̄"'''ョ  ミ
゙~,,,....-=-‐√"゙゙T"~ ̄Y"゙=ミ    L____
T  |   l,_,,/\ ,,/l  |      ゚ ゚
,.-r '"l\,,j  /  |/  L,,,/
,,/|,/\,/ _,|\_,i_,,,/ /
_V\ ,,/\,|  ,,∧,,|_/
                                    ┼ヽ  -|r‐、. レ |
                                    d⌒) ./| _ノ  __ノ
0476デフォルトの名無しさん2016/08/21(日) 09:35:15.63ID:MOdKlOKw
>>474
せめてjspとかサーブレットで聞きなw
0477デフォルトの名無しさん2016/08/21(日) 10:18:37.15ID:KBImK4AV
わかりました、すみません。
0478デフォルトの名無しさん2016/08/21(日) 11:21:20.38ID:AYeNMCxn
Sikuliの操作記述は出来ますか
0479デフォルトの名無しさん2016/08/22(月) 01:41:57.55ID:MchZ+qNc
スッキリの入門基礎やったけど
リストやマップの解説は乗ってなかった
初学者向けにコレクションクラスとか解説してる本を教えてください...
0480デフォルトの名無しさん2016/08/22(月) 08:59:24.15ID:+SHXfzyl
>>479
スッキリの実践編に書いてあるよ。
0481デフォルトの名無しさん2016/08/23(火) 12:34:35.73ID:SyLi1rNP
上に出てたtoString()やequals()のオーバーライドってのは
StringBufferのtoString()やStringのequals()などに見られるように
インスタンスを何らかの文字列で表現したいときや、フィールドの比較をしたいとき(そういう機能が必要なクラスの時)
適当な固有名のメソッドを作るんじゃなくて明示的にオーバーライドしたほうが
見た目的に分かりやすいしそういう文化なのでそうしなさい、ぐらいの解釈でいいんですかね?
0482デフォルトの名無しさん2016/08/23(火) 12:45:56.08ID:SyLi1rNP
いやそんな単純でもないのか……
0483デフォルトの名無しさん2016/08/23(火) 13:31:34.07ID:+2dFdtar
見た目的にとかそういうのではないな
0484デフォルトの名無しさん2016/08/23(火) 17:14:16.15ID:CZICKJ7d
ま、しかし、toString()という同じシグネチャであるにも関わらず内部動作が全く違うメソッドを作られたら何処かで破綻しそうな気はする。
0485デフォルトの名無しさん2016/08/23(火) 23:31:01.10ID:FjAcIpVf
>>480
ありがとー
さっそく買ってくる
0486デフォルトの名無しさん2016/08/23(火) 23:55:58.92ID:E/OZyXd9
toString()は、謎のようなオブジェクトIDで良いなら、見る人には不親切だが、そのままでいい

== は等値で、同じオブジェクトを表す

equals()は等価で、同じオブジェクトか、
または異なるオブジェクトだが、君が同じとみなしたい場合

内容が同じとか、君が何をもって、2つのオブジェクトを等価とみなすのか?
0487デフォルトの名無しさん2016/08/25(木) 16:43:38.60ID:ENIOJChQ
単純に2Dの画面描画(固定背景の上を移動するものがある)をしたいのですが、
どのフレームワークを使えば良いのでしょうか!?
# 情報入力用のWeb画面は不要です。

AWT/Swingのcanvasで十分なのかな!?
0488デフォルトの名無しさん2016/08/25(木) 20:17:40.66ID:0x62UHRP
JavaFXはどうかな
0489デフォルトの名無しさん2016/08/25(木) 23:38:37.10ID:skfIDUCg
どうだろう?
0490デフォルトの名無しさん2016/08/27(土) 14:36:52.19ID:xQ8nkOoc
�@LabelにImageIcon("A")が表示される。
�A �@の状態から3秒後にImageIcon("B")が表示される。

ボタンを押したら�@→�Aの動きをするプログラムは、どうやって組めば
いいのでしょうか?
0491デフォルトの名無しさん2016/08/27(土) 15:33:08.97ID:G7Fy4t30
>>490
こういう話?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10149621755
0492デフォルトの名無しさん2016/08/27(土) 17:32:10.51ID:+1lYdZ1s
>>491
いえ、1回ボタンを押したら、3秒後に画像が自動で切り替わるものを作りたいのです。
0493デフォルトの名無しさん2016/08/27(土) 17:42:18.91ID:G7Fy4t30
そういうスレッド作れば?
0494デフォルトの名無しさん2016/08/27(土) 17:42:53.30ID:3HAzTXmX
ボタンを押したら

Aをセットする
BをセットするTimerTaskが3秒後に発火するようにTimerをschedule
0495デフォルトの名無しさん2016/08/27(土) 17:48:20.22ID:3HAzTXmX
あ、TimerTaskはUIスレッドでは発火しないのだ
何のGUIツールキット使ってるか知らないけど
馬鹿正直に書くとコケるよ
0496デフォルトの名無しさん2016/08/27(土) 17:50:57.88ID:+1lYdZ1s
>>494
やりたいことはそんな感じです。
ど素人な者で、もう少し詳細をお願いできませんでしょうか。
0497デフォルトの名無しさん2016/08/27(土) 17:53:52.91ID:+1lYdZ1s
>>495
NetBeansを使っています。
0498デフォルトの名無しさん2016/08/27(土) 18:44:23.85
テキストファイル「Record.txt」の内容が以下のような感じだったとします。
1 10 11 12 13 14
2 30 31 32 33 34
(中略)
100 1 2 30 34 35
101 11 14 20 22 23
102 1 3 8 20 21

Record.txtからこの数字を読み込んで、二次元配列に代入していきたいのですが、どうすれば読み込めるのでしょうか。
0499デフォルトの名無しさん2016/08/27(土) 18:52:23.54ID:G7Fy4t30
java.util.Scanner 使えば?
0500デフォルトの名無しさん2016/08/27(土) 19:10:07.91ID:G7Fy4t30
配列の方はArrayList等を使ってadd()して行って終わったらtoArray()で取り出すとかな。
05014982016/08/28(日) 18:55:44.24ID:nd9FhnVh
ありがとうございました。
何とかできました。
0502デフォルトの名無しさん2016/08/29(月) 12:44:14.76ID:YZIoHltd
文字列中に正規表現のエスケープが必要な文字があった場合の置き換え方はどうやればいいですか?
0503デフォルトの名無しさん2016/08/29(月) 12:46:28.69ID:jQ52lz2j
>>502
直前に \ を入れる。
0504デフォルトの名無しさん2016/08/29(月) 14:25:00.91ID:iMncf2Jt
ぷろぐらむって何?
0505デフォルトの名無しさん2016/08/29(月) 14:29:02.83ID:RY3Gei54
ぶろぐ村の事でしょ
0506デフォルトの名無しさん2016/08/30(火) 09:50:38.90ID:TxPwF2Rb
すみません、
ネットの記事でJavaのGoogleChromeに対するサポートが終了するという記事をみつけました。
詳細はうろ覚えですが、
クライアント側の制御に関して、Javaが使えないような記事であったのですが、
これは、Javaはもう完全にサーバーサイドだけ担当して、クライアント側への制御は、
PHP等が担当する形に分業化するということでしょうか(一部では分業化しておりますが)。
0507デフォルトの名無しさん2016/08/30(火) 12:40:05.43ID:vwHt2PHp
>>506
PHPもサーバサイドでは?

JavaはAppletが死んだだけだと思うけど、しかし、かなり昔に既に死んでたように思う。
0508デフォルトの名無しさん2016/08/30(火) 13:35:19.90ID:8eGP8u09
NPAPI廃止の影響の話でないの?
0509デフォルトの名無しさん2016/08/31(水) 01:36:32.71ID:gRHWeOr5
>>507
Oracle Fromsというのがあってだな
0510デフォルトの名無しさん2016/08/31(水) 07:32:48.25ID:VQwx7zQZ
OS Xで画像表示させたい時ってどう指定すればいい?(./img/画像の名前)で引数書いたけど読み込んでもらえなかった
0511デフォルトの名無しさん2016/08/31(水) 11:31:53.01ID:MEvHRfHu
>>510
試しにフルパスで指定してみたらどうなる?
0512デフォルトの名無しさん2016/09/01(木) 12:32:52.16ID:ZTuwAaHI
>>511
すみません自己解決しました
eclipse使ってたので引数に書いてたのが間違いだったっぽい
0513デフォルトの名無しさん2016/09/01(木) 14:02:23.60ID:i17YytcW
java勉強する必要になったんだけど、FORTRAN技術者向けのいいjava学習本かサイトない?
0514デフォルトの名無しさん2016/09/02(金) 13:11:56.39ID:Qj299ER6
>>513
Javaの何が分からないといけないの?

オブジェクト指向?
0515デフォルトの名無しさん2016/09/02(金) 13:15:26.20ID:KMvGV1rW
FORTRAN使いがJAVA使いとか転職でもしたのか?
0516デフォルトの名無しさん2016/09/02(金) 13:43:58.66ID:Qj299ER6
>>513
アマゾン
0517デフォルトの名無しさん2016/09/02(金) 19:27:54.22ID:EMdx196+
>>514
java一通り使えるようにって感じ

>>515
転職ではないが、
まぁそんな感じだと思ってくれ
スパコン系からデータベース・ネットワーク系へな

>>516
密林で検索したけどjava本大杉だから
FORTRANやってた人向けのが無いかなと…
両方入れたらまともに引っかからん…
0518デフォルトの名無しさん2016/09/02(金) 19:42:24.56ID:HzsfOItv
素直に java データベース ネットワーク で検索するのよ
0519デフォルトの名無しさん2016/09/02(金) 20:15:23.68ID:Qj299ER6
>>517
Java EEなのかJava SEなのかで変わってくるが、とりあえずSEだな。
0520スッキリ厨2016/09/03(土) 01:36:45.13ID:RiDSsLxh
オブジェクト指向なら、この本が定番。
まず3回読んでから、方向性を考える

スッキリわかる Java入門 第2版、2014
0521デフォルトの名無しさん2016/09/03(土) 05:18:05.55ID:XCiECwjJ
5万円のパソコンでもJavaできる?
0522デフォルトの名無しさん2016/09/03(土) 07:37:37.84ID:zxyARgkW
>>521
え?
0523デフォルトの名無しさん2016/09/03(土) 08:17:55.86ID:XCiECwjJ
5万円のパソコンがあるって聞いたんだけど、みんな知らないみたいだね、しくしく…
0524デフォルトの名無しさん2016/09/03(土) 08:54:38.00ID:zxyARgkW
>>523
そういうことじゃないよ。

5万円のパソコンなんて10年前からあるよ。
0525デフォルトの名無しさん2016/09/03(土) 09:39:15.26ID:XCiECwjJ
そうなんだ
マイクロソフトのSurfaceってやつなんだけど、Javaできる?
0526デフォルトの名無しさん2016/09/03(土) 09:41:11.80ID:+PRxNCnW
ネタか本気か分からねえ
0527デフォルトの名無しさん2016/09/03(土) 09:49:13.22ID:XCiECwjJ
ここで聞いた僕がバカだった…
情報少ないけどネットで調べることにするわ
0528デフォルトの名無しさん2016/09/03(土) 11:16:48.40
俺のPCだとandroid studioが若干重くてたまにイラッとするぜ
快適に動かすにはそれなりのマシンが必要なのかな
0529デフォルトの名無しさん2016/09/03(土) 14:03:49.66ID:RiDSsLxh
開発者用PCのメモリは最低でも、Windowsなら8GB、Macなら16GBは欲しい。
とにかく、最大までメモリを積むべし

保証期間も3年以上にする

SSDを使うなら、256GB以上にする。
Windowsは最初から、50GB使っているから、128GBのSSDでは少なすぎる
0530デフォルトの名無しさん2016/09/03(土) 22:17:45.16ID:40xaQyRE
GUIの開発ツールを使うのであれば遅くて耐えられないかも知れないが、サンプルプログラムをメモ帳で入力してコマンドプロンプトからコンパイルして実行するとか、そういう小規模なJavaそのものの学習用であるならもっと安いPCでも大丈夫だと思う。
0531デフォルトの名無しさん2016/09/03(土) 22:59:23.02ID:Hj3S1o7Z
5,000円もしないRasberrypiですらjava動くのに「5万円のパソコンでもJavaできる?」って流石にネタですかね
0532デフォルトの名無しさん2016/09/04(日) 00:41:16.29ID:cDb3aVHH
「Javaできる?」がどういう状態を指して言っているのかによるかな
0533デフォルトの名無しさん2016/09/04(日) 01:30:21.39ID:Y6ofj46B
いつもの奴だから関んなよ
0534デフォルトの名無しさん2016/09/04(日) 17:34:08.92ID:NFfxFQpB
1万円のスティックだとちと重い
まあディスプレイとかキーボードとかマウスとか別だけど
0535デフォルトの名無しさん2016/09/08(木) 22:17:48.88ID:OFktERbz
配列について勉強しているのですが、配列はメンバ変数としてあまりしようしないものなのでしょうか?
例をみると大体メソッドの中で使っています。

メンバに変数宣言して、クラスがインスタンス化されたときに必ず個数4の配列が容易されるようにするには
どう変数宣言を書いたらいいかわかりません。変数宣言の段階でnewすればいいのでしょうか?
0536デフォルトの名無しさん2016/09/09(金) 09:59:21.41ID:oQSzgWuF
>>535
昔は性能面で利点あったらしいけど、
今はコレクションだけ使うポリシーでいいと思う。
APIとかの境界でだけ配列に変換する方が便利かな。

低レベルな組込み系だとまた違うかもしないけどね。
0537デフォルトの名無しさん2016/09/09(金) 23:02:16.37ID:oQTahXBf
>>535
http://bleis-tift.hatenablog.com/entry/20090901/1251800276
0538デフォルトの名無しさん2016/09/10(土) 01:51:37.20ID:zqA5E91s
Windowsだと問題ないのですが、Linuxで実行するとメモリーリークが起こります。
だれか教えて
0539デフォルトの名無しさん2016/09/10(土) 03:50:39.33ID:pSmBhaPA
何を実行した?
0540デフォルトの名無しさん2016/09/11(日) 09:10:05.29
要素数37の配列 numbers に入っている要素をシャッフルしたいのですが
パッと一文でできるような文は無いでしょうか?
0541デフォルトの名無しさん2016/09/11(日) 12:11:01.08ID:mD3VVTFL
>>540
java.util.Collections.shuffle() ってのがある。
https://paiza.io/projects/ZhO3EEzre8fd3ZCVkahBGg
0542デフォルトの名無しさん2016/09/11(日) 12:28:01.97
>>541
ありがとうございます。
だいぶすっきりしました。
0543デフォルトの名無しさん2016/09/11(日) 12:48:06.23ID:CiEltT8i
>>540
Collections.shuffle(Arrays.asList(numbers));
0544デフォルトの名無しさん2016/09/11(日) 19:29:55.98ID:4oqBJP6f
>>543
惜しい。37分ぐらい前にサンプルプログラムと共に書かれている。
0545デフォルトの名無しさん2016/09/12(月) 14:02:18.25ID:It6UL1Xk
             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /
0546デフォルトの名無しさん2016/09/12(月) 21:29:18.45ID:4S8MLnnl
チンポについて教えてください。
チンポをインスタンス化して、引き数にマンコを持つキンタマメソッドの戻り値
ザーメンを取得したいのですが、コンパイル結果がフニャチンになります。
どうしたらいいですか。
0547デフォルトの名無しさん2016/09/12(月) 21:36:28.16ID:ETJn1k1j
>>546
おっぱいで初期化すればよさそうだけど
パフォーマンスが気になるならバイアグラを遅延ローディングでイケるかと
0548デフォルトの名無しさん2016/09/13(火) 12:33:43.13ID:zbRwgjIx
この街は何かおかしい
0549デフォルトの名無しさん2016/09/13(火) 12:56:39.73ID:p5kA4g3c
醒めちまったこの街に…熱いのは…俺達のDRIVING…
0550デフォルトの名無しさん2016/09/13(火) 17:41:07.31ID:pWpgsCHY
横浜から出てくんな
0551デフォルトの名無しさん2016/09/13(火) 21:04:55.98ID:rV9Mfo0R
public class チンポ {
 public ちんぽ() {
 }

 public ザーメン キンタマ(マンコ まんこ) {
  return new ザーメン(まんこ);
 }
}
0552デフォルトの名無しさん2016/09/13(火) 21:05:32.58ID:rV9Mfo0R
あ、ちょっとまちがえた。
でもどうでもいいや。
0553デフォルトの名無しさん2016/09/13(火) 22:00:17.18ID:A0k4wyKX
コンストラクタが惜しいな
0554デフォルトの名無しさん2016/09/14(水) 10:17:33.21ID:dxbAn+4W
public class チンポ {
 public チンポ() {
 }

 public ザーメン キンタマ(マンコ まんこ) {
  return new ザーメン(まんこ);
 }
}
0555デフォルトの名無しさん2016/09/14(水) 11:05:50.95ID:JBjOkyU9
空コンおくなし
0556デフォルトの名無しさん2016/09/15(木) 12:29:26.50ID:IvREkbG2
空コンは儀式(その程度の理解しかしてない
0557デフォルトの名無しさん2016/09/15(木) 15:29:00.97ID:Yk84xP/m
空コンでググっても空港でやる合コンしか出てこなくてわからないなんて言えない…
0558デフォルトの名無しさん2016/09/15(木) 17:13:33.93ID:nUBpNMp2
空のコンストラクタ。
デフォルトコンストラクタがあるんだから中身がないならわざわざ書く必要がない
0559デフォルトの名無しさん2016/09/16(金) 09:24:30.47ID:g1O3U5Rf
しかしチンポなのだからここはやはり可読性を上げるために書く必要があるだろう。
大きな声で朗読してもらうためにも。
0560デフォルトの名無しさん2016/09/18(日) 14:01:56.85ID:oVWtnygU
ゲームでセーブデータを作る時は何形式がいいの?
初心者すぎてよくわからん
0561デフォルトの名無しさん2016/09/18(日) 14:57:30.48ID:mx2jBCOo
んなもん好きなように作ればいい
0562デフォルトの名無しさん2016/09/18(日) 15:27:05.59ID:TDLmSDwc
改変を許すかどうかにかかってるような
0563デフォルトの名無しさん2016/09/19(月) 09:43:01.85ID:d/dsjAXw
初心者なら 項目名=値 をずらずら並べたテキストにでもすればええ
JSON とか楽

販売・公開するようなやつだとテキストはあり得なくていろいろ注意点が増える

・ユーザーののぞき見と改変を防ぐ
・ネットワークを使うか・パスワードなどを格納する
→ 暗号化
・複数箇所のセーブデータを持つか&収集系のRPGなどで総合的な履歴を持つか
→ 複数ファイルへ分割
・将来のバージョンアップによる項目追加・拡張にある程度たえられるか
→ バージョン管理
0564デフォルトの名無しさん2016/09/19(月) 16:39:02.44ID:Veov9Zpw
新明解Java相変わらず解答別売りなのね
0565デフォルトの名無しさん2016/09/20(火) 00:04:21.59ID:AyI8WQUs
>>563
けっこう複雑なのか...
参考になった
0566デフォルトの名無しさん2016/09/21(水) 15:35:49.49
import java.util.*;
(中略)
int [] base = new int[40] ;
for (int i=0 ; i<40 ; i++ ) {
base[i] = i ;
} ;
Collections.shuffle(base) ;
(略)

これでコンパイルした時、

エラー:不適合な型: int[]をList<?>に変換できません:
Collections.shuffle(base) ; //(baseのbのトコに「^」が表示されている)

注意:一部のメッセージは簡略化されています。-Xdiags:verboseで再コンパイルして完全な出力を取得してください

と、コンパイルエラーが出てしまいます。何が悪いのでしょうか?
0567デフォルトの名無しさん2016/09/21(水) 15:57:10.30ID:lqTjg4Df
Collections.shuffle() の引数がListのみだからじゃね?
List<Integer> で作ってシャッフル後にtoArray、、いや
int[] にうつしては
0568デフォルトの名無しさん2016/09/21(水) 19:03:37.78ID:G+rtKY2K
「じゃね?」ってしゃべり方する奴は育ちが悪い
ドカタやってろ
0569デフォルトの名無しさん2016/09/21(水) 19:16:23.93ID:RBbq4bmS
元は「〜じゃん」とかと同じでただの方言だろ
0570デフォルトの名無しさん2016/09/21(水) 19:23:49.04ID:z/WsDaib
>>568
どんだけ繊細なんだよw
0571デフォルトの名無しさん2016/09/21(水) 19:26:11.33ID:23vZJdQL
プログラマであることは育ちが良いことの十分条件ではない
終了
0572デフォルトの名無しさん2016/09/21(水) 19:43:52.97ID:dzx4ZLs+
見事な糞レス
0573デフォルトの名無しさん2016/09/21(水) 20:28:28.06ID:W1ct9vWu
小クラス extends 親クラス{} を作成しました。

親クラスにあるprotected createData()メソッドを小クラスにoverrideして作成しました。
しかし作成されたデータを見ると、親クラスのcreateData()で作成されていました。
デバッグでもきちんと小クラスのcreateData()が動いていたのですが。。。

なぜでしょうか
教えて下さい。
0574デフォルトの名無しさん2016/09/21(水) 20:30:24.97ID:O8zsEtDk
夢でも見たんでしょう
次の方どうぞ
0575デフォルトの名無しさん2016/09/21(水) 20:41:39.96ID:L0rnaOo4
斬新な回答
0576デフォルトの名無しさん2016/09/21(水) 20:48:23.71ID:W1ct9vWu
eclipseの保管機能でoverrideしたとき、
returnがsuper.createData();
となっていたのが原因でした。教えてくれてありがとうございました
0577デフォルトの名無しさん2016/09/21(水) 20:57:59.84ID:7s5fi6AJ
まず何がしたいのかというと、5つの変数それぞれに1〜30の乱数を代入しようと思います
ただし、5つ全て違う数字にする必要があります

if文やwhile文で
(a != b || a != c || a != d || a !=e || b != c || b != d || b != e || ・・・・・
のように一つ一つ比較していくのではどう見ても見づらいし、タイプミスもあり得るでしょうので
もっとすっきり被ってるかどうかがわかる方法、もしくは被らない乱数を発生させる方法はないでしょうか
0578デフォルトの名無しさん2016/09/21(水) 21:01:38.30ID:O8zsEtDk
配列に1から30まで連番を入れて
https://ja.m.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%83%E3%82%B7%E3%83%A3%E3%83%BC_-_%E3%82%A4%E3%82%A7%E3%83%BC%E3%83%84%E3%81%AE%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB
で5個取り出せばいい
0579デフォルトの名無しさん2016/09/21(水) 21:22:27.63ID:7s5fi6AJ
とりあえず再現が楽そうな
ダステンフェルドの手法というのをやってみます
0580デフォルトの名無しさん2016/09/21(水) 21:24:02.61ID:L0rnaOo4
>>577
乱数一つ作ったら配列に入れておいて、次にまた乱数作ったら配列に入れておいた値と比較して同じ値があったら捨てて再度乱数を求め、なかったら配列に追加。というのを要素数5になるまで繰り返す。

要素数が多い場合はMap使った方が同じ値があるかを探すの速くなるかも知れないが、要素数5でしかも数値ならforでループさせて単純に比較した方が速いかも。
0581デフォルトの名無しさん2016/09/21(水) 21:33:29.39ID:O8zsEtDk
なぜMap, Setじゃないのか?
0582デフォルトの名無しさん2016/09/21(水) 21:34:40.87ID:7s5fi6AJ
ありがとうございます
書いてなかったですが要素数は後から増える可能性も僅かながらあるので
それを考えると今回に限れば578の方が楽かなって感じはします
0583デフォルトの名無しさん2016/09/21(水) 21:39:24.07ID:O8zsEtDk
よく見るとCollections.shffleがあった
https://docs.oracle.com/javase/jp/6/api/java/util/Collections.html#shuffle(java.util.List)
0584デフォルトの名無しさん2016/09/21(水) 23:00:52.12ID:lqt2aOV6
>>581
使いたきゃ使えば?でも5つだしなあ。なんか無駄な感じしない?
0585デフォルトの名無しさん2016/09/21(水) 23:02:44.15ID:lqt2aOV6
>>583
>>566とか>>567で話題になってたんだよね。ちょっと上見れば話簡略化できたね。
0586デフォルトの名無しさん2016/09/21(水) 23:04:45.29ID:lqt2aOV6
更に shuffle() のサンプルを俺は >>541 のリンク先で公開してたりする。
0587デフォルトの名無しさん2016/09/21(水) 23:28:40.58ID:O8zsEtDk
別に怒ってないからそんなにまくし立てなくてもええで
0588デフォルトの名無しさん2016/09/21(水) 23:36:51.71ID:lqt2aOV6
for でぐるぐる。
https://paiza.io/projects/8Su6iH6cG4K4Zm-WvI6pDA
Set を使った例。
https://paiza.io/projects/MRh-3DNoFSdvrhkxgjiXUw
0589デフォルトの名無しさん2016/09/22(木) 03:29:08.51ID:wg+WFgph
サンプルから使ったものは抜いていけば比較なんていらない

https://ideone.com/bHzxZP
0590デフォルトの名無しさん2016/09/22(木) 04:40:27.52ID:9oQWhw/A
おー。なるほど。
0591デフォルトの名無しさん2016/09/22(木) 15:48:39.49ID:9oQWhw/A
int 型変数をビットフラグとして使った例。別メソッドにしてみた。
https://paiza.io/projects/GxaY-HCC8oNbO1_lb1QYWg
0592デフォルトの名無しさん2016/09/23(金) 10:07:05.81ID:SX8kvg/a
Streamならdistinctが使えるぞ

Random r = new Random();
IntStream.generate(() -> r.nextInt(30) + 1)
.distinct()
.limit(5)
.forEach(System.out::println);

もしくは
Random random = new Random();
random.ints(1, 31).distinct().limit(5).forEach(System.out::println);
0593デフォルトの名無しさん2016/09/23(金) 12:44:14.11ID:ou22iYX0
おー。ストリーム使ってもできそうな感じがしたがよくわからなかった。そうやればよかったのか。
0594デフォルトの名無しさん2016/09/23(金) 22:28:33.93ID:+M2xSlAW
コマンドプロンプトでclassファイルabc(仮)を何度か実行するとき、毎回いちいち
>java abc(仮)
と入力するのが面倒なのですがショートカットみたいなのはないのでしょうか
0595デフォルトの名無しさん2016/09/23(金) 23:13:35.84ID:jW0MNAyQ
コマンドプロンプトで↑押せば履歴が出てくるだろハゲ
0596デフォルトの名無しさん2016/09/23(金) 23:23:04.40ID:fPbYt4vI
ハゲは言い過ぎだろ…
0597デフォルトの名無しさん2016/09/23(金) 23:41:41.46ID:Krl8LY6k
alias 別名を付ければ?
0598デフォルトの名無しさん2016/09/23(金) 23:56:57.26ID:BvOffHOz
バッチファイル作っておくとか
0599デフォルトの名無しさん2016/09/24(土) 03:35:04.57ID:ts45zeFc
「ハゲ」は別に相手をけなす言葉じゃないだろ
それからちょっと薄いくらいの人のことをハゲっていうのもやめろよな!
0600デフォルトの名無しさん2016/09/24(土) 12:01:42.85ID:cKy0IgTy
>>599
うるせえハゲ
0601デフォルトの名無しさん2016/09/24(土) 12:38:22.17ID:oYgGfkv1
うるせー亡者
0602デフォルトの名無しさん2016/09/24(土) 13:07:19.25ID:d951yjmo
public class ハゲ {
 public static void main(String[] 禿) {
  System.out.println(禿[0]);
 }
}
0603デフォルトの名無しさん2016/09/24(土) 13:43:08.13ID:7+Pq0d3W
コマンドプロンプトやエクリプスのコンソール画面を一旦クリアしてカーソル位置を一番上へ持って行ってから文字を表示するにはどうすればいいのでしょうか
画面をクリアにするだけならできるのですが続く表示が下の方になってしまい見ばえが悪いです
0604デフォルトの名無しさん2016/09/24(土) 13:51:17.35ID:d951yjmo
>>603
eclipseは知らないがコマンドプロンプトならバッチファイルで最初でclsしとけばいいのでは?

まあしかし本当ならtermcapみたいな出力先端末の定義が書かれた設定ファイルを元にして出力すべきではある。同じ画面クリアするのであっても端末ごとに方法が違うかも知れないからね。
Javaでは基本的なライブラリにはそういうのはないんじゃないかな。誰かが作っていそうな気はするけど。
0605デフォルトの名無しさん2016/09/24(土) 13:58:30.73ID:d951yjmo
あるにはあるな。Java の curses ライブラリ。これはメンテされてなさそうだけど。
https://osdn.jp/projects/sfnet_javacurses/
0606デフォルトの名無しさん2016/09/24(土) 14:00:14.03ID:ts45zeFc
カーソル位置を変えよう
https://www.grapecity.com/tools/support/powernews/column/clang/047/page02.htm
0607デフォルトの名無しさん2016/09/24(土) 14:30:04.92ID:cKy0IgTy
>>603
\rを先に出力すればいいよ
0608デフォルトの名無しさん2016/09/24(土) 15:44:28.97ID:7+Pq0d3W
System.out.printf("\033[2J") ; //画面をクリア
System.out.printf("\033[0;0H") ; //カーソルを0,0の位置へ
System.out.println("テスト") ; //本文表示

ありがとうございます
コマンドプロンプトだけで言えばこれでいいでしょうか
0609デフォルトの名無しさん2016/09/25(日) 17:22:51.07ID:422b5eKT
試してみればいーじゃない
0610デフォルトの名無しさん2016/09/25(日) 17:39:54.92ID:fXLErY67
コマンドプロンプトって呼び方してるとこみるとWindows?
Windows7以降だとANSI.SYS無いから、ansiconとか入れないとならん気が
0611デフォルトの名無しさん2016/09/26(月) 15:38:10.93ID:lL1M4dov
ググると出てくるが、Windows 10 (10.0.1058) のコマンドプロンプトはそのままでできるようだ。
実際今やってみたらできた。

Windows 7 はできなかった。ansocon でやる必要あるみたい。
0612デフォルトの名無しさん2016/09/28(水) 01:04:27.23ID:rUV0k2Q4
for ( int a : x ) {
  System.out.print(a+" ")
}

いわゆる拡張for文と言う奴で配列xの内容を順に表示していくとして
ループの最初の一回だけ処理をせずに飛ばす(continue)ことはできますか?
0613デフォルトの名無しさん2016/09/28(水) 01:12:05.45ID:+6qgdOE2
>>612
余裕です

boolean first = true;
for ( int a : x ) {
  if ( first ) {
    first = false;
    continue;
  }
  System.out.print(a+" ")
}
0614デフォルトの名無しさん2016/09/28(水) 01:17:11.63ID:rUV0k2Q4
>>613
ありがとうございます
0615デフォルトの名無しさん2016/09/28(水) 04:18:03.56ID:rUV0k2Q4
参照先となるint型配列 a = { 1 , 2 , 3 , 4 , 5 } ;
参照元となるint型配列 b = { 2 , 3 , 4 , 5 , 7 } ;

2つの配列を比較して、含まれてない数字だけ(上記で言えば7)を抜き出したいのですが


for (int i=0 ; i < a.length ; i++ ) {
 for (int k=0 ; k < b.length ; k++) {
  if ( a[i] == b[k] ) b[k]=0 ;
 }
}
int x = 0 ;
int [] y = new int [ b.length ] ;
for (int i =0 ; i < b.length ; i++) {
 if ( b[i] > 0 ) {
  y[x] = b[i] ;
  x += 1 ;
 }
}

これだと見苦しいでしょうか?
0616デフォルトの名無しさん2016/09/28(水) 07:49:13.32ID:W+UWiO4B
>>615
int[] y = IntStream.of(b).filter(t -> Arrays.binarySearch(a, t) < 0).toArray();
0617デフォルトの名無しさん2016/09/28(水) 12:02:39.05ID:RrnZ6URf
Rubyみたいに、b - a みたいな差集合演算が、出来ないの?

そういうライブラリも無いの?
0618デフォルトの名無しさん2016/09/28(水) 13:55:25.18ID:quoItQJb
え?
0619デフォルトの名無しさん2016/09/28(水) 13:58:21.69ID:LrnfCbIH
Setのこと聞きたいのかなあ
0620デフォルトの名無しさん2016/09/28(水) 14:05:09.02ID:3qfI4Nbr
そもそもやる種類によるけどそうそう配列差分とるような出来事ないからなぁ...
0621デフォルトの名無しさん2016/09/28(水) 15:13:08.48ID:LOSUa8nH
printlnの引数と戻り値ってどう定義されているんですか?
06226212016/09/28(水) 17:49:57.58ID:LOSUa8nH
話題は変わりますが
0623デフォルトの名無しさん2016/09/28(水) 18:48:51.92ID:kdBXM31p
>>621 toStringメソッド
0624デフォルトの名無しさん2016/09/28(水) 20:53:02.02ID:iTE2MfXm
>>621
ライブラリのソース見ればわかるのでは?
0625デフォルトの名無しさん2016/09/28(水) 22:52:19.94ID:pHF1g6v7
for文やif文で多重に入れ子になってくると訳わからなくなるけど
なんとかなりませんか
0626デフォルトの名無しさん2016/09/28(水) 22:59:17.27ID:aIUMbzyY
>>625
深いネストを避ける
0627デフォルトの名無しさん2016/09/28(水) 23:54:25.15ID:xia32VFg
>>625
ラベル付きcontinueで爆死
0628デフォルトの名無しさん2016/09/29(木) 02:01:58.82ID:8BdwfvHa
>>625
中身をメソッドにして外出し、という方法もある。
06296212016/09/29(木) 02:24:10.71ID:PBNJeDAR
>>623>>624
ありがとうございます。
0630デフォルトの名無しさん2016/09/29(木) 03:03:25.34ID:3Qnxj2An
フィールドのドックコメントってどんなこと書いたらいいの
0631デフォルトの名無しさん2016/09/29(木) 04:51:49.73ID:6joghEm8
>>630

System.outとか見れば

http://hg.openjdk.java.net/jdk8u/jdk8u20/jdk/file/f5d77a430a29/src/share/classes/java/lang/System.java
0632デフォルトの名無しさん2016/09/29(木) 18:09:31.11ID:iz5N5Y7N
>>631 thanks
0633デフォルトの名無しさん2016/09/29(木) 21:19:31.88ID:iz5N5Y7N
なんでいちいち英語のやつ渡すんだよわかるかよ
0634デフォルトの名無しさん2016/09/30(金) 01:07:13.20ID:uFRLLqks
俺頭悪いから英語分からへんわ。
0635デフォルトの名無しさん2016/09/30(金) 02:29:05.91ID:88GOzilz
Googleで、ページ丸ごと翻訳すれば?
0636デフォルトの名無しさん2016/09/30(金) 04:06:13.88ID:87+JbCgZ
SpringとかPlayとかのフレームワークのWeb部分って、JSP/Servletのラッパーだと考えていいんでしょうか?
0637デフォルトの名無しさん2016/09/30(金) 08:45:34.31ID:b27JHcuC
>>635 ありがとう実はもう解決したから大丈夫
0638デフォルトの名無しさん2016/09/30(金) 12:25:21.58ID:IsuwtoYa
>>636
springはそう

playはそもそもサーブレットじゃないはず
0639デフォルトの名無しさん2016/09/30(金) 12:28:15.87ID:SeEJvjvc
>>633
thanks とか書いちゃって本当は英語ペラペラなくせに。俺を騙そうったってそうはいかねえぜ。
0640デフォルトの名無しさん2016/09/30(金) 12:28:33.98ID:IsuwtoYa
>>638
細かく言えば
jsp/servletじゃなくてservlet
テンプレートエンジンはjsp以外選べる
0641デフォルトの名無しさん2016/09/30(金) 13:09:18.69ID:dgXw6UDz
>>636
Spring MVCのCはservletの上で動く、VはJSPも使えるけど推奨されていないのでthymeleafが多いかな

Playはservlet非依存でVは独自のデンプレートで雑に言うとJSPのScala版
0642デフォルトの名無しさん2016/09/30(金) 18:35:03.77ID:gDcqzZDz
springはservletのラッパーとは言わないでしょw
scalaはjavaのラッパーか?w
0643デフォルトの名無しさん2016/09/30(金) 19:00:16.70ID:b27JHcuC
>>639 内心イラつきつつレスしたから英語になったわw
0644デフォルトの名無しさん2016/09/30(金) 19:03:39.25ID:KnhhoGXj
自分の無能を棚に上げてイラつくとかワロタ
0645デフォルトの名無しさん2016/09/30(金) 19:04:46.81ID:b27JHcuC
>>644 翻訳してクレメンス
0646デフォルトの名無しさん2016/09/30(金) 19:24:52.04ID:k6QPLsM1
>>645
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/System.html#in
0647デフォルトの名無しさん2016/09/30(金) 20:32:40.37ID:uFRLLqks
Javaの参照はCやC++のポインタとほとんど同じと考えていいですか?
0648デフォルトの名無しさん2016/09/30(金) 20:40:20.30ID:b27JHcuC
>>646 右クリックして翻訳だろ知ってるけどさ元々英語のコメントを翻訳してもニュアンス変わるだろ
0649デフォルトの名無しさん2016/09/30(金) 20:41:37.79ID:b27JHcuC
だからおれAPIの書き方好きじゃないもん
あれは英語読める奴が原文読むべきだわ
0650デフォルトの名無しさん2016/09/30(金) 20:42:18.26ID:FM0LwWhQ
うるせー死ね
0651デフォルトの名無しさん2016/09/30(金) 21:42:32.76ID:b27JHcuC
うるせえニートども
ググって原文持ってきてんじゃねぇよカス
0652デフォルトの名無しさん2016/09/30(金) 23:45:45.67ID:+IPuUceA
>>647
ああ。まあ。そうだな。
なにせぬるぽ
0653デフォルトの名無しさん2016/10/01(土) 00:07:44.09ID:4GbhNNOQ
>>648
リンク先は日本語だよ
馴染みのフィールドの英語なんだからわかんだろ
そんな語力じゃドキュメントの質も知れてるけど
0654デフォルトの名無しさん2016/10/01(土) 00:19:49.10ID:kr3+PnGk
>>653 おまえらに聞かなくても一発OKだったわめんご
0655デフォルトの名無しさん2016/10/01(土) 00:20:36.03ID:kr3+PnGk
リンク先見るまでもねぇよ
めんご
0656デフォルトの名無しさん2016/10/01(土) 00:25:40.75ID:kr3+PnGk
まあでもたいしたことないのは事実だからいいんだけどな
0657デフォルトの名無しさん2016/10/01(土) 00:26:46.57ID:kr3+PnGk
はあ雑魚すぎてしにてぇ
06586472016/10/01(土) 01:55:19.16ID:hwPNFikt
>>652
ありがとうございます。
0659デフォルトの名無しさん2016/10/01(土) 03:59:04.06ID:j95ses3M
>>652
ガッ
0660デフォルトの名無しさん2016/10/01(土) 11:20:09.18ID:kr3+PnGk
ぬるぽの後ガッってノリ意味わかんねよ、ほんと2ちゃんってくそだな
0661デフォルトの名無しさん2016/10/01(土) 12:23:28.64ID:/eq2yH6H
>>660
お前はもういいよ
なに居座ってんだよ
06626582016/10/01(土) 13:55:48.38ID:hwPNFikt
>>652の方は、なにせヌルポインタエグゼプションって言葉で「ポインタ」って言ってるぐらいだしな、って続けたかったんでしょうね、きっと。
0663デフォルトの名無しさん2016/10/01(土) 14:49:04.18ID:JmoJwfEH
Sqlに文字をインサートする時、
iphoneやandroidの絵文字などがあった場合、エラーになってしまうので、
インサート前に取り除きたいのですが、
何か良い方法はありますか?(SQLで文字セットは変更できないので、Javaで絵文字だったら取り除きたい)
0664デフォルトの名無しさん2016/10/01(土) 15:50:36.99ID:onRosRXh
ASCII.jp:最強のJava入門書はどれか?(2016年秋)
http://ascii.jp/elem/000/001/227/1227746/

『プログラムはなぜ動くのか』『コンピュータはなぜ動くのか』の著者・矢沢久雄、
「たのしいRuby 第5版、2016」の著者・高橋征義らによる、討論会
0665デフォルトの名無しさん2016/10/01(土) 16:00:26.65ID:b1627Shz
>>661 これはあなたのスレなんですかね〜
0666デフォルトの名無しさん2016/10/01(土) 22:05:29.89ID:VDFFrXl+
突然すいません。質問なんですがpackageでaiueoと指定したクラスが2つあります、クラスの名前はAbcとDefで2つともコンパイルに成功してclassがdocumentsに保存されています。続く
0667デフォルトの名無しさん2016/10/01(土) 22:05:47.64ID:VDFFrXl+
続き、これを使ってMainクラスを作りたいのですがパッケージaiueoは存在しませんとなり、コンパイルに失敗してしまいます。
なにか手順に間違いがありますか?
どうかお答えいただけたらと思います。
0668デフォルトの名無しさん2016/10/01(土) 22:08:37.60ID:kr3+PnGk
>>667 パッケージした1行みせてみ
0669デフォルトの名無しさん2016/10/01(土) 22:09:11.74ID:kr3+PnGk
てかコードをレスに書いてくれなきゃ
0670デフォルトの名無しさん2016/10/01(土) 22:11:27.89ID:kr3+PnGk
メインクラスだけでもいいからみせて
0671デフォルトの名無しさん2016/10/01(土) 22:16:26.95ID:VDFFrXl+
>>668
反応いただきありがとうごさいます。
携帯からの書き込みで少し時間がかかります。すいません、ちなみにAbc Defともに最初の文はpackage aiueo; としております。
0672デフォルトの名無しさん2016/10/01(土) 22:19:17.06ID:r6T55aIp
思い切った名前だよね
NHK教育番組の案件かな
0673デフォルトの名無しさん2016/10/01(土) 22:22:52.24ID:kr3+PnGk
>>671 メインクラスはそのパッケージに属してる?
0674デフォルトの名無しさん2016/10/01(土) 22:25:32.77ID:kr3+PnGk
>>671 メインクラスにimport文書き忘れてるとかじゃない
0675デフォルトの名無しさん2016/10/01(土) 22:26:37.05ID:VDFFrXl+
import aiueo.Abc;
pubilc class Main{
public static void main(String[] args)
throws Exception{
Abc.zenhan();
Abc.kouhan();
aiueo.Def.mae();
aiueo.Def.usiro();
}
}
0676デフォルトの名無しさん2016/10/01(土) 22:27:21.37ID:VDFFrXl+
>>672
あくまで例でやっております、分かりづらくてすいません。
0677デフォルトの名無しさん2016/10/01(土) 22:29:26.04ID:VDFFrXl+
>>673
メインクラスにpackageは入れておりません。
0678デフォルトの名無しさん2016/10/01(土) 22:34:03.04ID:kr3+PnGk
>>675 気になったんだけどさ、Defもimportしたらいいんじゃないか、後、ABCクラスもそうなんだけど、インスタンスにしなきゃメソッドは動かないよ
0679デフォルトの名無しさん2016/10/01(土) 22:36:36.10ID:kr3+PnGk
例えば、Abc.zenhan();ね
Abc abc = new Abc();
abc.zenhan();
あーアイホォン打ちづらいw
0680デフォルトの名無しさん2016/10/01(土) 22:37:59.34ID:kr3+PnGk
あとthrows Exception これいらない
それで動くと思うよ
0681デフォルトの名無しさん2016/10/01(土) 22:40:51.22ID:VDFFrXl+
>>678
片方はimportして片方はしないでpackageを使えと言う課題なのでそれにしたがっていますが両方importした方がいいと言うのはその通りだと思います
0682デフォルトの名無しさん2016/10/01(土) 22:44:12.90ID:kr3+PnGk
>>681 学生さん?
0683デフォルトの名無しさん2016/10/01(土) 22:48:08.50ID:kr3+PnGk
クラスパスとかじゃないかなー
コンパイルエラーはそのままググればたくさん出てくると思うよ
0684デフォルトの名無しさん2016/10/01(土) 22:48:31.84ID:VDFFrXl+
>>679
察しが悪くてすいませんそれらの文はargs){
の後に入れればよろしいでしょうか?
0685デフォルトの名無しさん2016/10/01(土) 22:49:48.80ID:VDFFrXl+
>>682
すいません学生ではなく独学で勉強をしておりますが友人など聞ける相手がおりませんのでここで聞かせてもらっております涙
0686デフォルトの名無しさん2016/10/01(土) 22:52:12.08ID:kr3+PnGk
>>684 そうだよ
import aiueo.Abc;
pubilc class Main{
public static void main(String[] args)
throws Exception{
Abc abc = new Abc()
abc.zenhan();
abc.kouhan();
aiueo.Def.mae();
aiueo.Def.usiro();
}
}
0687デフォルトの名無しさん2016/10/01(土) 22:53:51.74ID:kr3+PnGk
>>685 真面目ですね、応援してます
0688デフォルトの名無しさん2016/10/01(土) 22:53:57.21ID:VDFFrXl+
>>683
調べ不足かもしれませんがなかなか理解できる内容のものがなくここでつまずいております...もしかしたらクラスパスとのことでしたがpackageの2つともはdocumentに入っているのですがdocumentを読み込んでいないと言う事でしょうか?
0689デフォルトの名無しさん2016/10/01(土) 22:58:06.17ID:kr3+PnGk
>>688 ドキュメントってWindowsの?
普通にフォルダの中にいれて、環境変数で登録でいいんじゃないかな
0690デフォルトの名無しさん2016/10/01(土) 22:59:59.19ID:VDFFrXl+
>>687
ありがとうございます。本当に嬉しいです
0691デフォルトの名無しさん2016/10/01(土) 23:00:52.76ID:VDFFrXl+
>>689
すいません osはmacのosXです
0692デフォルトの名無しさん2016/10/01(土) 23:01:27.27ID:kr3+PnGk
IDE使えないとかめんどくさいな
コンパイルの時はjavac aiueo.Abc aiueo.Def Main でやってみたらいい
0693デフォルトの名無しさん2016/10/01(土) 23:02:06.77ID:MIaIeT8n
ちなみに誰が出してる課題?
0694デフォルトの名無しさん2016/10/01(土) 23:02:28.95ID:kr3+PnGk
>>691 ならeclipse入れたほうが早いよ、その辺全部やってくれるからコード書くだけでいいし
0695デフォルトの名無しさん2016/10/01(土) 23:06:04.41ID:kr3+PnGk
>>681 課題という事はIDEダメなパターンか
てか独学って話と矛盾してるなー
最後は自分の力で解いたほうがいいと思うよヒントとしてMac クラスパスでググるのと、パッケージが見つかりませんでググってみそれで解ける問題だよ
0696デフォルトの名無しさん2016/10/01(土) 23:06:24.88ID:VDFFrXl+
>>693
課題は本から練習問題としてでております
0697デフォルトの名無しさん2016/10/01(土) 23:07:36.81ID:VDFFrXl+
>>694
今はターミナルでやっていたのでExlipseを試してみようと思います
0698デフォルトの名無しさん2016/10/01(土) 23:08:39.48ID:VDFFrXl+
>>695
すいません言い方が悪かったですね本はjava入門第二版を使っております。
0699デフォルトの名無しさん2016/10/01(土) 23:09:11.39ID:wXi+U7q2
>>663
DBの符号化方式でエンコードしてNGなら削除してしまえばいんじゃないかな
https://paiza.io/projects/qi1DzWG79KCNqIMTw5S92Q
0700デフォルトの名無しさん2016/10/01(土) 23:11:31.78ID:kr3+PnGk
>>697 それがいい
0701デフォルトの名無しさん2016/10/01(土) 23:15:06.37ID:MIaIeT8n
こんなことで詰まってると3日で飽きるからな
0702デフォルトの名無しさん2016/10/01(土) 23:21:57.93ID:VDFFrXl+
>>700
今日は本当にありがとうございました
0703デフォルトの名無しさん2016/10/01(土) 23:24:03.63ID:VDFFrXl+
>>701
恥ずかしながら全くもってその通りだと思います。才能が無い事は承知しておりますがこれからも精進させていただきます。
0704デフォルトの名無しさん2016/10/01(土) 23:29:35.31ID:kr3+PnGk
>>703 才能ないなんて簡単に決めるなよ
次の章のほうが大切だからそっからやったら前半の章は充分だろその知識使わないし
0705デフォルトの名無しさん2016/10/01(土) 23:59:22.65ID:fIXH2k8W
飽きさえしなければどうにでもなる
0706デフォルトの名無しさん2016/10/02(日) 08:36:31.88ID:v1qy4+iE
>>647
Java VMが管理しているアドレスだから概念は同じと思っていいが、CやC++みたいなアドレスとしてプログラムは作れない。
0707デフォルトの名無しさん2016/10/02(日) 08:40:13.37ID:v1qy4+iE
>>662
あいつは英語の一般的な意味のポインタがなんなのか知らないだけだろ。
0708デフォルトの名無しさん2016/10/02(日) 12:32:57.39ID:4o4y3Pue
>エグゼプション
には突っ込まんのか
0709デフォルトの名無しさん2016/10/02(日) 14:27:57.94ID:SUd5Exqx
インターフェイスのインスタンスは作れないと思ってんですが、こうするとインスタンス作ってるっぽくなるんですが、どういうことなんでしょうか?
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ

Runnable runnnable = new Runnable(){
public void run(){}
};
}
0710デフォルトの名無しさん2016/10/02(日) 14:38:32.13ID:O1+Xevaf
>>709
インタフェスを継承したクラス(匿名クラス)を定義して匿名クラスのインスタンスを作成してる
0711デフォルトの名無しさん2016/10/02(日) 14:44:40.68ID:SUd5Exqx
>>701
ありがとうございます。
確かに、MainClass.classとは別に、MainClass$1.classというクラスファイルが作られていました。
0712スッキリ厨2016/10/02(日) 14:58:44.60ID:mO5jHYyT
>>664
C++で、賞を取った、平山尚のセガ本が、2008年に出た。
この本の中で、C++・オブジェクト指向・ゲームプログラミングを、
1冊で説明できる本があれば、ベストセラーになるって、平山が言ってる

その後、2011年に、無名の著者2人による「スッキリJava」が出た。
C++では無理だったことを、Java・オブジェクト指向の説明で、1冊を仕上げた。
また、イラストをふんだんに使い、最初からコストを度外視して、本を作ったw

2011年を、オブジェクト指向のエポックと呼んで、
2011年を境に、スッキリ以前・スッキリ以後と呼ぶ

今では、C++・オブジェクト指向を学ぶ人も、この本から始めるという、道筋も作った

これは、林晴比古・柴田望洋・宮本信二・結城浩・高橋麻奈など、
大御所たちが成しえない偉業であった
0713デフォルトの名無しさん2016/10/02(日) 18:58:36.14ID:+XYb/4p3
俺のスレ
0714デフォルトの名無しさん2016/10/02(日) 19:16:33.86ID:+XYb/4p3
>>707
猟犬だよな
0715デフォルトの名無しさん2016/10/02(日) 19:20:04.24ID:+XYb/4p3
>>712
へー。そんな本が2011年に出ていたとは知らなかった。
0716デフォルトの名無しさん2016/10/02(日) 22:37:08.72ID:v1qy4+iE
>>712
C++自体がオブジェクト指向設計専用ではないために、C++プログラマが説明しても、学習する方からしたら実際には全然、オブジェクト指向プログラムでないものができて動くから理解が難しいんだよ。
0717デフォルトの名無しさん2016/10/04(火) 19:04:40.41ID:rJSgKoMJ
public static void main(String[] args) {
int i = 2;
System.out.println(1+i++);
}
が3になるのはなぜでしょうか?
0718デフォルトの名無しさん2016/10/04(火) 19:15:35.05ID:ksk/TL7I
表示されるときはまだ++まで辿り着いてないからかな
0719デフォルトの名無しさん2016/10/04(火) 19:18:07.09ID:WEyUe7wf
>>717
後置インクリメント演算子は処理が終わった後+1するから。
つまり1+i(この時点では2)の値を表示し、その後iは3になる。
もしiを1加算した結果を表示したいのなら++iを使う必要がある。
0720デフォルトの名無しさん2016/10/04(火) 19:34:21.50ID:rJSgKoMJ
>>719
ありがとうございます。
>処理が終わった後+1
という点ですが、どういう事が起きれば"処理が終わった"ということになるのでしょうか?
例えば、
int i = 2;
System.out.println((double)(i++));  //出力2
だと、自分の頭の中では、i++した後に、double型への変換という"処理が終わった"から3になっていて欲しいと考えてしまうんですが。
根本的に頭おかしかったらすみません・・・
0721デフォルトの名無しさん2016/10/04(火) 19:47:20.31ID:KPMHhtfC
スレチかもしれないけど
基本情報技術者のJavaってどこらへんまで理解してればいいの?

何問か解いたらコレクションやジェネリクスとかくらいまでだったから安心してたけど
他の年の見たらスレッドとか出てた...
0722デフォルトの名無しさん2016/10/04(火) 20:02:04.37ID:fCGdMFkh
基本情報・応用情報ともにJavaで受けたけど当時はPHPの経験のみでJavaの経験ほぼ皆無だったけど行けたぞ


そんなに意識するほどJavaだけに依存するような問題でない
0723デフォルトの名無しさん2016/10/04(火) 20:10:20.62ID:WEyUe7wf
>>720
printlnを実行したら、だと思う。
>>717のプログラム文の後に、System.out.println(i);で表示してみて。3になってると思う。
0724追記2016/10/04(火) 20:42:57.79ID:WEyUe7wf
>>720
doubleでのキャスト→printlnによる表示(この時点でiは2)→後置インクリメントによるiへの1加算、の順だと思う。
0725デフォルトの名無しさん2016/10/04(火) 20:54:16.80ID:L2FSf/5N
>>717
1+(i++) と同じだからでは?
07267172016/10/04(火) 20:59:41.12ID:rJSgKoMJ
すみません。キャストとか何も考えずにですが、頭まとまってないままレス書いてます。

int i = 2;
System.out.println(++i);
の場合
0 : iconst_2   //int型の2をオペランドスタックにpush
1 : istore_1   //ローカル変数領域の1番目に2を格納(0番目は違うデータ)
2 : getstatic #16 //System.out.PrintStream
5 : iinc 1, 1   //1番目のローカル変数(ここではi(=2))を1インクリメントする
8 : iload_1    //ローカル変数 i をオペランドスタックへpushする
9 : invokevirtual #22 //println実行


int i = 2;
System.out.println(i++);
の場合
0 : iconst_2
1 : istore_1
2 : getstatic #16
5 : iload_1      //ローカル変数 i をオペランドスタックへpushする
6 : iinc 1, 1     //1番目のローカル変数(ここではi(=2))を1インクリメントする
9 : invokevirtual #22

これだと、
++i の場合、ローカル変数領域でインクリメントした値をオペランドスタックにプッシュしてprintlnしている。
i++ の場合、iをオペランドスタックにプッシュした後、ローカル変数領域でインクリメントしている。

つまり、printlnで出力される値はオペランドスタック内での値で、インクリメントされるのはローカル変数領域の値。
ローカル変数領域の値をインクリメント前後のどっちのタイミングで取り出すかで結果が違った。

これでいいんでしょうか?
0727デフォルトの名無しさん2016/10/04(火) 21:03:58.76ID:L2FSf/5N
>>720
処理が終わった後というか、変数から値を取り出した後と考えた方が良いと思う(でないと (i++) + (i++) みたいな式はどうなるのかわからなくなる)。

式の計算を実行する時には変数から値を取り出してそれを利用するわけだが、取り出した直後に変数の方にだけ1加算するのが後置の++。
0728デフォルトの名無しさん2016/10/04(火) 21:07:47.13ID:L2FSf/5N
>>726
そうそう。ズバリそれ。
0729デフォルトの名無しさん2016/10/04(火) 21:10:07.17ID:rJSgKoMJ
>>727
ありがとうございます。
そのケースだと、最初の(i++(値は2))+((i++)左でインクリメントされて3)
で、合計5になると思います。だいぶスッキリしました。
0730デフォルトの名無しさん2016/10/04(火) 23:06:35.38ID:qcWHR4bx
すいません、日付の取得について教えてください。
年・日付でyyyymm
1回目:201610
2回目:201609
?
12回目:201510

のように1ヶ月ずつマイナスの値が取りたいのですが、どのようにロジックを組み立てれば良いでしょうか。
0731デフォルトの名無しさん2016/10/04(火) 23:12:00.06ID:YN9fMNzy
mm = (mm+11)%12 というロジックを組み立てましょう
07327302016/10/04(火) 23:33:28.45ID:qcWHR4bx
カウンタが12以上だった場合と
カウンタが月より大きかった場合と
素直にカウンタが月より小さい場合の3パターンぐらい作ればOKですか?
0733デフォルトの名無しさん2016/10/04(火) 23:37:38.44ID:rJSgKoMJ
>>730
public static void main(String[] args) {
LocalDate date = LocalDate.now(ZoneId.systemDefault());
for(int i = 0; i < 10; i++){
LocalDate date2 = date.minusMonths(i);
System.out.println(date2.format(DateTimeFormatter.BASIC_ISO_DATE));

}
}
こんなのどうでしょう?
0734デフォルトの名無しさん2016/10/04(火) 23:48:00.86ID:qcWHR4bx
>>733
こちらのほうが早いですね。
カウンタが12以上
カウンタが月より大きいが12未満
カウンタが月と同じ
カウンタが月以下

のパターンで考えていましたが733さんのやり方を採用させていただきます。
ありがとうございました。
0735デフォルトの名無しさん2016/10/05(水) 02:30:23.26ID:D107n7zL
他スレでも似たようなことを聞いたのですが、コンストラクタはメソッドとは「異なる」ものでしょうか?
0736デフォルトの名無しさん2016/10/05(水) 04:32:37.11ID:6T6LA8v8
>>735
異なります。
まずクラスからインスタンスが生成されるのは分かると思います。
インスタンスを生成する際に、1つのインスタンスにつき最低1回自動的に実行されるものです。
(メソッドは意図的に呼び出さないと使われない)
※最低1回というのは、コンストラクタから他のオーバーロードコンストラクタを実行することも可能な為。

また、メソッドは定義しないと存在しえないけれど、コンストラクタは定義しなくても引数なしのデフォルトコンストラクタが勝手に作られます。
0737デフォルトの名無しさん2016/10/05(水) 06:41:11.69ID:SMYY1Ign
一つのクラスにメソッドはいくつまで作れますか?
0738デフォルトの名無しさん2016/10/05(水) 07:28:34.08
最初の配列の中身が { あ , い , う , え , お } だとして
例えば、要らない3番目の要素を削って、 { あ , い , え , お }としたいのだけど
for文で回したいと言う事もあって配列の要素の数減らしたい場合はどうすればいいのですか
0739デフォルトの名無しさん2016/10/05(水) 08:13:14.18ID:EDqQ344L
固定長でないなら配列の用途外だ
Listを使え
0740デフォルトの名無しさん2016/10/05(水) 08:20:02.52ID:5Xz9WIc6
>>730
1引く。
結果 modulo 100が0ならさらに88引く
201501 -1
201500 -88
201412
0741デフォルトの名無しさん2016/10/05(水) 08:37:57.34ID:UjqhNziY
>>740
Stream<Integer> yearmonth = Stream.iterate(201610, i -> {
if (--i % 100 == 0)
i -= 88;
return i;
});
yearmonth.limit(12).forEach(System.out::println);
0742デフォルトの名無しさん2016/10/05(水) 09:52:26.11ID:Aes2Pyfc
>>740
このロジック思い浮かぶやつは頭おかしい。
0743デフォルトの名無しさん2016/10/05(水) 12:08:28.26ID:5Xz9WIc6
>>742
確かど貧民なプロジェクトで書いたはず。
組み込みかなんか。
足す方も作った覚えがある。13なら88足す。
07447352016/10/05(水) 20:10:55.24ID:D107n7zL
>>736
なるほど。
ありがとうございました。
0745デフォルトの名無しさん2016/10/06(木) 02:31:43.46ID:qC7uJdLp
>>737
いくつでも作れるんじゃない。容量が許す限り。
コンストラクタは引数の性質上作れるバリエーションは限られるけど。
0746デフォルトの名無しさん2016/10/06(木) 10:43:24.14ID:j4+P2uPZ
http://stackoverflow.com/questions/4342072/what-is-the-maximum-number-of-methods-a-java-class-can-have
どのくらいメソッドを扱えるかはJVM側の仕様でJava自体は制限ないらしい
0747デフォルトの名無しさん2016/10/06(木) 12:21:38.86ID:Yw0Cruyw
>>738-739
java.util.Vectorは、オワコンらしいので、ArrayList を使うのかな?
0748デフォルトの名無しさん2016/10/06(木) 20:29:56.72ID:NGtUq8vU
そういや昔Vectorって中で配列使ってたりして効率悪いって話を聞いたことあるんだけどその後どうなったんだろう?
中身をこっそりListの何かと同じになるように書き換えちゃえばさほど効率悪くならないような気がするが。
0749デフォルトの名無しさん2016/10/06(木) 21:05:11.45ID:JthKKgNo
*Array*Listって中で何使ってると思う?
0750デフォルトの名無しさん2016/10/07(金) 02:42:47.54ID:SQT7x/O/
あれー
0751デフォルトの名無しさん2016/10/07(金) 08:01:12.25ID:ZgfNPSik
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Vector.html
> このクラスは、Java 2プラットフォームv1.2の時点でListインタフェースを実装するように改良された結果、
> Java Collections Frameworkのメンバーとなりました。新しいコレクションの実装とは異なり、Vectorは同期をとります。
> スレッドセーフな実装が必要ない場合は、Vectorの代わりにArrayListを使用することをお薦めします。

つまり……どういうことだってばよ?
0752デフォルトの名無しさん2016/10/07(金) 08:33:18.57ID:RR6e4vg9
スレッドセーフな実装はStringBufferとStringBuilderの関係に似ているね
0753デフォルトの名無しさん2016/10/07(金) 09:19:54.59ID:NAyeSbqf
>>751
翻訳するとおそらく以下のようなことを言っているものと思われます。


中はどうなってるか言ってもどうせお前らアホにはわからないから言わないがinterfaceはとにかくListだ。忘れるなボケ。
スレッドセーフにしたいなら Vector を使え。そうじゃなくていいなら ArrayList だ。わかったかクソ虫ども。
0754デフォルトの名無しさん2016/10/07(金) 12:28:23.51ID:5FJeiwoZ
そして、ArrayListを同期で使用したいなら、Collections.synchronizedList使えってことか。
0755デフォルトの名無しさん2016/10/08(土) 04:25:38.70ID:MCoYyYao
このスレの最初の方って結構重要な事書いてありますね。
0756デフォルトの名無しさん2016/10/08(土) 08:45:08.84
for文、while文の { } に入れてループさせるのではなく、
条件が合った場合(=合わなかった場合)、まるでリセットさせるがごとく最初からまるまるもう一度やり直すことはできるのでしょうか
0757デフォルトの名無しさん2016/10/08(土) 09:14:17.22ID:OjXU7tHb
再帰構造にするとか?
0758デフォルトの名無しさん2016/10/08(土) 09:48:46.83ID:i5kDCKwM
本質的に条件が整うまでループと何が違うのかと
0759デフォルトの名無しさん2016/10/08(土) 10:28:54.32ID:4paVmbm0
continueみたいなキーワードで、そーゆーことができるか?という問いなら
「できません」
0760デフォルトの名無しさん2016/10/08(土) 12:23:10.31ID:I5GBlv/H
>>759
ラベル付きcontinueで出来るでしょ
あまりやらないけど
0761デフォルトの名無しさん2016/10/08(土) 12:23:56.52ID:I5GBlv/H
間違えた
ラベル付きbreakだった
0762デフォルトの名無しさん2016/10/08(土) 12:38:17.30ID:y0liF3+j
これが D になるのはなぜでしょうか?
文字列リテラルが不変なのは分かるのですが、newすれば普通にヒープに作られる参照型ですよね?

String d = new String("D");
String e = new String("E");
String f = new String("F");
String[] str3 = new String[]{d,e,f};   //文字列定数でなく文字列インスタンスへの参照の配列のつもり
String[] str4 = new String[str3.length];
System.arraycopy(str3,0,str4,0,3);    //参照をコピー
str3[0] = new String("P");
System.out.println(str4[0]); //実際はDだけど、str4[0]はstr3[0]からコピーされた「文字列インスタンスPへの参照」なのでPであって欲しい。
07637622016/10/08(土) 12:40:41.84ID:y0liF3+j
すみません間違えました。忘れてください・・・
0764デフォルトの名無しさん2016/10/08(土) 14:57:31.05ID:vUUOaV1U
日本情報技術取引所
口座借り
多重ぐるぐるドナドナ案件
コンピューターレスキュー
角度があがります
0765デフォルトの名無しさん2016/10/08(土) 17:34:37.69ID:nKRNJJPF
>>763
自分のやっていた事の真実に気付いたようだね。
07667552016/10/08(土) 20:39:45.53ID:MCoYyYao
スッキリわかる=最強だと思ってたのに…。
0767デフォルトの名無しさん2016/10/08(土) 22:38:12.56ID:cRcu85q4
スッキリ最強説は、以下を参照

推薦図書/必読書のためのスレッド 80
http://echo.2ch.net/test/read.cgi/tech/1472262077/222-236
0768デフォルトの名無しさん2016/10/08(土) 23:29:22.24ID:XNEtFwHJ
シングルスレッドでのプログラムで
メンバ変数に値をセットするやり方は間違ってますか?
メソッドのネストが引数として渡して渡して・・・ってやり方が本来は正しいのかもしれませんが…
Javaだとそういう場合もセッタゲッタでのやり方が望ましいんでしたっけ?
07697662016/10/09(日) 00:56:36.11ID:CesbDVy8
>>767
スッキリ厨って人のレスはアテになりませんからねぇ。
0770デフォルトの名無しさん2016/10/09(日) 02:52:17.93ID:h5veqgjK
>>768
日本語でおk
0771デフォルトの名無しさん2016/10/09(日) 12:36:05.23ID:yMllKpMI
>>768
基本メンバ変数は値を保持しとく必要がある物にとどめたほうがいい、publicな(外部から呼ばれる)メソッド無いで共通して利用するものとか
今回のケースでは引数で渡していくほうがいいと思う
0772デフォルトの名無しさん2016/10/09(日) 13:10:13.87
Math.random で1〜99までの乱数を何万回発生させるとなると、実行するたび違う値、順番になりますが、
プログラムをもう一回実行したら毎回同じ数字の順序でちゃんと乱数っぽい数字を発生させる方法はありますか?
自分で乱数をあらかじめ用意しておくという手もありますが、できればコンピューターのほうで用意してもらえればと
実行環境によって結果が違ってくる分には構わないのですが・・・
0773デフォルトの名無しさん2016/10/09(日) 13:32:38.51ID:okPyT/Vt
java.utl.Ramdomで同じseedを使えばよい
0774デフォルトの名無しさん2016/10/09(日) 14:59:12.57
import java.util.Random ;

Random a = new Random( ) ; //普通の乱数
int x = a.nextInt(99)+1 ;

Random b = new Random(1) ; //1をシードとして指定
int y1 = b.nextInt(99)+1 ;;
int y2 = b.nextInt(99)+1 ;

Random c = new Random(1) ; //1をシードとして指定
int z = c.nextInt(99)+1 ;

System.out.println( x + ":" + y1 + ":" + y2 + ":" + z ) ;


実行結果
40:16:29:16
95:16:29:16
56:16:29:16


ありがとうございます
0775デフォルトの名無しさん2016/10/09(日) 19:18:21.24ID:QWyuhQzX
一回試した結果をファイルに保存して
それを毎回読み込めば
どの環境でも同じ
0776デフォルトの名無しさん2016/10/10(月) 05:07:03.45ID:8XCDXeCE
初心者がリファレンス見てもいちいち難しい言葉で書いてあって何ができるのか意味不明
ここをどうやって乗り越えればいいんだろう
0777デフォルトの名無しさん2016/10/10(月) 05:12:43.32ID:QYgl3YHZ
>>772
seed同じにすればいいんじゃねえか?
0778デフォルトの名無しさん2016/10/10(月) 05:14:08.33ID:QYgl3YHZ
とっくに答えがサンプルプログラム付きで書いてあるとはorz
0779デフォルトの名無しさん2016/10/10(月) 05:15:43.15ID:QYgl3YHZ
>>776
わからない言葉は全部調べる。
今ではだいたいはググれば出るんだから楽なもんだ。
0780デフォルトの名無しさん2016/10/10(月) 16:51:30.34ID:d7lWr1RB
String str1 = "ab";
String str2 = str1+"c";
System.out.println("abc" == str2);

これがfalseになるのはなぜでしょうか?
1行目 = コンスタントプールに"ab"作成
2行目 = プールに"c"作成して、それを取り出してstr1とあわせてプールに"abc"作成
3行目 = "abc"はstr2としてプールに存在してるので、それと比較して true になるはずだったんですが。
+ した時点で StringBuilderでも呼ばれてstr2はヒープに配置されてるのかとも思ったんですが、

String str2 = "a"+"b"+"c";
System.out.println(str2 == "abc");

だと true になります・・・
0781デフォルトの名無しさん2016/10/10(月) 17:00:37.68ID:YyG8QWAM
>>780
下のtrueのケースはビルド時に最適化されてる
0782デフォルトの名無しさん2016/10/10(月) 17:15:41.68ID:d7lWr1RB
>>781
ありがとうございます。
文字結合時に最適化がされるのであれば、2行目の結合で最適化がされないのはなぜなんでしょうか?
0783デフォルトの名無しさん2016/10/10(月) 17:22:32.42ID:d7lWr1RB
もしかして、
ダブルコーテーションで囲んだリテラルを指定した時はプールから探す。
str1のように、リテラルでない場合は、その文字列を使って new String(str1);してるんでしょうか?
0784デフォルトの名無しさん2016/10/10(月) 18:04:46.45ID:Nj78fZza
内容が同じでも同じオブジェクトを参照しているとは限らないってだけの話だよなあ。

Stringの場合はinyern()使えば==での比較で内容が同じなら同じになるけど、そういうことしないなら同じになることを期待してはいかんよ。
特に最適化によって変わるようなのはあてにしたらダメ。
0785デフォルトの名無しさん2016/10/10(月) 18:05:36.37ID:Nj78fZza
あー。タイプミス。intern()ね。
0786デフォルトの名無しさん2016/10/10(月) 18:29:59.03ID:57MPv8Sh
Javaの仕様で定められてることと、実装によって異なる最適化を一緒にすんなアホ
0787デフォルトの名無しさん2016/10/10(月) 18:34:31.02ID:TB/+k4cs
>>780
javapしてみればわかるけどこうなるよ

String str1 = "ab";
String str2 = new StringBuilder(String.valueOf(str1)).append("c").toString();
System.out.println("abc" == str2);

StringBuilderのtoStringはこうだから参照が異なる

public String toString() {
 return new String(this.value, 0, this.count);
}
0788デフォルトの名無しさん2016/10/10(月) 22:00:58.28ID:6bVjh2uR
javaの文字列の比較は、String.equals()を使う

== では、オブジェクトIDの比較になる。
同一オブジェクトかどうか
0789デフォルトの名無しさん2016/10/11(火) 14:32:11.26ID:2NSr+frL
WindowsAPIで作成したサーバーと通信するTCPクライアントを作成しています
WindowsAPIで作成したサーバーとWindowsAPIで作成したクライアント同士の通信では問題無いのですが

基本的には問題無く動作していて
たまにInputStreamのreadの戻り値がdata.lengthになり
欲しいデータの後ろに不必要なデータが入っていたり(ここはヘッダ情報から特定可能なので対処可能です)
欲しいデータの前に不必要なデータが入っている事があるのはどうしてですか?

試しにまったく同じデータを間隔を開けて送信すると問題が再現できる時とできない時があります

InputStream input; = socket.getInputStream();
byte data [] = new byte[1024];
int position = 0;

ループ {
  receivesize = input.read(data, position, data.length - position);
  // 必要なデータが300でもreceivesizeが1024になる事がある
  position += receivesize;
}

最少構成のコードはこんな感じです
分かる人がいたらお願いします
足りない情報があったらすみません補足します

開発環境は Windows Vista
動作環境は Androidです
0790デフォルトの名無しさん2016/10/12(水) 00:49:24.57ID:lbt4Kn9B
質問です
裏画面に書き込みしたいんですけどgetGraphics()でエラーになります
どうすればいいですか?
お願いします!
awtです
Image buf[];
Graphics h;
buf[0]=createImage(640,480);
h=buf[0].getGraphics();
0791デフォルトの名無しさん2016/10/12(水) 01:40:47.34ID:bPYmxR+A
>>789
ループ内で、positionを足すからだろ
>position += receivesize;

常に、0に戻してから始めればいい。
そうしないと上限値、1024を越えてしまうだろ

ループ内で毎回、配列のどの部分に読み込むのか?

>>790
>Image buf[];
>buf[0]=createImage(640,480);

buf[] 配列など使わずに、普通の変数を、使えば?
a = createImage(640,480);

まず、createImage でエラーになっているのかも?
0792デフォルトの名無しさん2016/10/12(水) 01:47:14.01ID:lbt4Kn9B
普通の変数にしましたがやっぱりエラーになります…
0793デフォルトの名無しさん2016/10/12(水) 01:52:21.79ID:lbt4Kn9B
NullPointerExceptionになります…
0794デフォルトの名無しさん2016/10/12(水) 04:02:00.72ID:bPYmxR+A
動かないソースコードに、こだわっても仕方がない。
違うサンプルを探して、ソースコードを比べてみれば?

名前欄に、790と入れて、投稿して
0795デフォルトの名無しさん2016/10/12(水) 04:23:30.45ID:lbt4Kn9B
なぜか分かりませんが、コンストラクタ内の最後に書いたら動きました!
お騒がせしましたm(__)m
0796デフォルトの名無しさん2016/10/12(水) 12:12:40.14ID:9pPXC/Ld
>>791
最少構成にする時に忘れていました
ループ内でヘッダー情報にあるデータサイズ分受け取ったらpositionを0にしています
07977892016/10/12(水) 18:03:26.07ID:9pPXC/Ld
試しに input.read(data); でやってみても
たまに欲しいデータの前に不必要なデータが入っている事があります(この時はヘッダサイズ未満の受信です)
この時はデータの順序が前後した状態で届きます

例えばABCがそれぞれこうであるとすれば
 A ヘッダ(Sizeなどが入っている)
 B Size分のデータ
 C 0フィル
正常なデータはABの順番に格納されているのに対し
順序が前後する時はCBAの順番に格納されています

受信サイズがヘッダーサイズ未満なのに先にデータが届いています
これはどういう現象ですか?
0798デフォルトの名無しさん2016/10/12(水) 18:12:24.99ID:9pPXC/Ld
長いので分けました

1, WindowsAPIで作成したクライアント
2, javaで作成したクライアント

データの流れとしてはまずクライアントがサーバーへ送信します
→サーバーは受信したデータを整形(先頭に時間をつけたり)して全クライアントへ送信します
→クライアントはサーバーから受信して初めて表示します

サーバーは同じデータを全クライアントへ送信しているのにもかかわらず
1では正常に受信・表示されていても
2ではデータの順番が違っていたりします
0799デフォルトの名無しさん2016/10/12(水) 21:45:30.69ID:/S1G0fYz
>>798
それはUDPなのかそれともTCPなのか?
0800デフォルトの名無しさん2016/10/13(木) 00:45:39.57ID:aniHJH6t
UDPなら、データの順番は、保証されていない

そもそも、サーバーが送ったパケットが、
クライアントに送った順番で届くことが、保証されているのか?
0801デフォルトの名無しさん2016/10/13(木) 08:32:12.03ID:CM7Dl0hH
>>799
socket = new Socket();
socket.connect(new InetSocketAddress(IPAddress, PortNumber), Timeout);
ソケット生成時はこのようにしているのでTCPです
0802デフォルトの名無しさん2016/10/13(木) 09:11:29.49ID:CM7Dl0hH
すみません
サーバーの方もTCPです
08037892016/10/13(木) 11:32:18.11ID:CM7Dl0hH
原因が特定できました
 A データ1(仮に1234567890)
 B データ2(仮にABCDEFG)

ヘッダ情報にあるサイズ以上受信した場合
 (>>789で言う所の戻り値がdata.lengthになり欲しいデータの後ろに不必要なデータが入っていた部分)
1回目の受信でAの後ろにBの前半も一緒に受信され(1234567890ABC)
2回目の受信でBの後半が受信されていました(DEFG)

お騒がせしました
0804デフォルトの名無しさん2016/10/13(木) 13:59:14.92ID:eQzvx4KQ
あ、ずれただけね。
固定長の電文やりとりではよくあるバグだな。
0805デフォルトの名無しさん2016/10/13(木) 18:07:51.23ID:CM7Dl0hH
SocketChannelについて質問です

ByteBuffer buffer = ByteBuffer.allocate(size);
buffer.clear();
buffer.put(data, 0, size);
buffer.flip(); // A
socketchannel.write(buffer);

このコードが実行される前にsocketchannel.read()は成功していて
受け取ったデータ末尾の文字列が例えばAddDataなら追加して
成功した事を送り返す部分です
dataは既にヘッダや他の情報も整形済みです

Aがあるとwriteで異常終了、Aが無いと何も起きずで困ってます
何が原因かわかる人いたらお願いします
0806デフォルトの名無しさん2016/10/14(金) 01:51:33.85ID:4bSlGLeL
>>803
戻り値が上限値、1024の場合は、バッファに入りきれていない、
データがまだ残っているということだろ?

たぶん説明には、そう書いてあるはず

>>805
flip の説明を読めば?

それと、動く他のサンプルを探す。
動かない、間違ったコードにこだわっても、仕方がない
0807デフォルトの名無しさん2016/10/14(金) 09:44:46.40ID:DLzZN/YU
>>806
WindowsAPIの方では
1回目の受信でデータ1のみ
2回目の受信でデータ2のみ
になっていたのでjavaもそうかと思い込んでいたのが原因です

putでpositionがsizeに移動するので
flipでpositionを0に移動させてpositionからlimitまでをwriteするようにしてるんですよね
0808デフォルトの名無しさん2016/10/14(金) 12:29:13.99ID:36Uu0S/U
>>805
異常終了ってなんだよハゲ
0809デフォルトの名無しさん2016/10/14(金) 12:32:47.95ID:JHuSi47G
HageException
PikapikaError
0810デフォルトの名無しさん2016/10/14(金) 14:50:17.64ID:wFYcRLmm
HageはもうExceptionじゃなくてErrorだよな....ほんと
0811デフォルトの名無しさん2016/10/14(金) 15:33:48.99ID:7cDJ4MsQ
throw new NullHairException("No hair");
0812デフォルトの名無しさん2016/10/14(金) 17:08:16.31ID:7/LUO9Fb
HairNotFoundException
0813デフォルトの名無しさん2016/10/14(金) 17:26:08.95ID:2skfhgoc
だからハゲはExceptionじゃねぇんだよッ!!!
Errorだよッ!!
もう生えて来ないんだよ....致命的なんだよ....
0814デフォルトの名無しさん2016/10/14(金) 18:03:33.21ID:E9wFZVCw
やめなさい
0815デフォルトの名無しさん2016/10/14(金) 20:21:51.87ID:t+vmOHtU
if (! head.isHair()) throw new HageError("無毛");
0816デフォルトの名無しさん2016/10/14(金) 23:59:53.31ID:SrS85Be2
何で継承したクラスのコンストラクタにsuper(引数)ってわざわざ書かないといけないんでしょうか?
0817デフォルトの名無しさん2016/10/15(土) 00:14:09.50ID:RcuOg7fy
>>816
コンストラクタは継承できないので、サブクラスのコンストラクタからスーパークラスのどのコンストラクタを呼び出すか、
明示的に書かないとわからないからです
08188162016/10/15(土) 02:20:57.51ID:/YQeGRPm
>>817
レスありがとうございます。
どのコンストラクタか分からないからですか?
ただ本には、親クラスで引数ありのコンストラクタを「1つ」でも定義した場合、先の処理をする必要がある、と書いてあるんですが、
1つならデフォルトコンストラクタも無いわけですし、迷うこともないと思うのですが…。
0819デフォルトの名無しさん2016/10/15(土) 02:31:43.62ID:BKHcV3g3
>>818
コンストラクタは継承してないということは、スーパークラスのコンストラクタとサブクラスのコンストラクタはなんの関係もない別物です
ということは、スーパークラスにStringを受けとるコンストラクタをひとつ定義して、サブクラスにはintをひとつ受けとるコンストラクタを定義するっていうことができるわけ
そのとき、スーパークラスのコンストラクタに渡す引数はどうやって決定する?
0820デフォルトの名無しさん2016/10/15(土) 03:07:25.05ID:/YQeGRPm
>>819
理解力乏しくてすいません。
オーバーロードのように、引数を渡す際に、string型ならスーパークラスのコンストラクタ、int型ならサブクラスのコンストラクタが呼び出される、って仕様になってないんですか?
0821デフォルトの名無しさん2016/10/15(土) 04:32:14.24ID:V7L1rVP7
まだオラクル社は正式に発表していないが、Java EEから手を引くのはほぼ間違いない。

JavaのWebアプリは将来性に問題があるから無駄に手を出さない方がいい。
0822デフォルトの名無しさん2016/10/15(土) 05:38:11.62ID:BNWpAgCM
>>820
ない

そもそも親のコンストラクタだけ呼ばれたら子の初期化ができないだろ
0823デフォルトの名無しさん2016/10/15(土) 09:59:11.58ID:R9FpU0X6
キーボードから入力させる場合に、
例外処理を入れてないとコンパイルエラーになるのはどういう意図があってそういう仕様なのでしょうか
08248202016/10/15(土) 10:40:33.92ID:/YQeGRPm
>>819 >>822
ありがとうございました。もう少し自分でも研究してみます。
0825デフォルトの名無しさん2016/10/15(土) 12:33:41.49ID:/6kKmyix
>>823
検査例外で調べる
0826デフォルトの名無しさん2016/10/15(土) 15:32:52.94ID:CMu4YX8d
たいていの言語では、例外処理を書いていなくてもコンパイルできるけど、
Javaは、他の言語よりも厳しい

I/Oエラーは数十種類あるから、例外処理を書いていないアプリは、どこかで強制終了される

そういうアプリを、コンパイル時のチェックで、実行できないようにしているので、
一々デバッグして、エラーを確かめる必要がない
0827デフォルトの名無しさん2016/10/15(土) 15:50:16.70ID:YHGzX/8J
>>826
例外処理を書くべきクラスを使っているのに書かない初心者プログラマ用としてもチェック例外はある。
0828デフォルトの名無しさん2016/10/15(土) 20:40:11.10ID:LAQ6gYyi
1, TCPクライアント Java (非同期通信 SocketChannelを使用)
2, TCPサーバー WinSock (非同期通信 WSAAsync**を使用)
3, TCPクライアント WinSock (サーバーと同じ)

接続した状態で5分位放置してると何の通知も無しに
Javaで作成したクライアントだけ接続が切れてる(sendでIOException)のはなぜ?

時系列で言うとこんな感じ
サーバーを起動
→クライアント2つをサーバーに接続
→何回か発言するも問題無し
→5分くらい放置 (この間何も操作せず)
→1で発言 sendがIOException
→3で発言 問題無し
→さらに4分くらい経ってからサーバー側がFD_CLOSEの形でWSAECONNABORTEDを受け取る
0829デフォルトの名無しさん2016/10/15(土) 20:59:11.81ID:LAQ6gYyi
sendじゃなくてreadでした (発言した内容が返ってくる)
30秒毎とかこまめに発言していたら10分経っても切断されないって状況です
0830デフォルトの名無しさん2016/10/15(土) 20:59:12.52ID:VH4cAxzD
>>828
> Javaで作成したクライアントだけ接続が切れてる(sendでIOException)のはなぜ?

なぜ?じゃなくてさあ
その IOException のメッセージを自分で読むか
せめてここに貼れよ
0831デフォルトの名無しさん2016/10/15(土) 21:14:31.51ID:LAQ6gYyi
すみません
ECONNRESET (Connection reset by peer)となっていました
0832デフォルトの名無しさん2016/10/15(土) 23:33:41.25ID:CMu4YX8d
タイムアウトかな?
接続が生きているか、5分毎に確かめるのかも

TCPの規格を調べて
08338282016/10/16(日) 11:38:15.89ID:eEuHW07G
TCPの仕様で切れるならWinSockで作成したクライアントの方も切れるはずなんですが切れないんですよね

2分放置で発言では問題無く
3分放置で発言したら接続が切れています
0834デフォルトの名無しさん2016/10/16(日) 11:50:50.48ID:aX3VI+23
ソース読め
0835デフォルトの名無しさん2016/10/16(日) 12:32:37.07ID:eEuHW07G
データ通信で(PCのグローバルIPアドレスへ)接続した時は問題が発生するのですが
Wi-Fiで(PCのローカルIPアドレスへ)接続した時は問題無かったので
とりあえず1分毎に生存確認のメッセージを送受信してやってみる事にします
0836デフォルトの名無しさん2016/10/16(日) 16:42:38.64ID:e1qF8gd7
経路の途中にルータやらなんやらが挟まっているのが違う。
その辺との兼ね合いでデフォルトのsocketオプションだとうまく行かなくなる何かがあるんじゃない?
0837デフォルトの名無しさん2016/10/21(金) 05:45:17.59ID:yOgnBDsC
WEB+DB vol.94 が出た

特集は、Scala, Groovy の対抗馬となる、JVM上で動く、Android用言語、Kotlin

JS/HTML/CSSで、デスクトップアプリを作る、Electron

Kotlinは静的言語で、Scalaに似ている。
ついでに、Kotlinも勉強すればいい
0838デフォルトの名無しさん2016/10/21(金) 12:53:14.09ID:tBmxpz4u
コトリンはAndroid用言語じゃねえよw
0839デフォルトの名無しさん2016/10/21(金) 13:15:00.94ID:e1cHOABs
すいません、基本的なことですが教えて下さい。
定数ってfinal で 大文字で宣言するのが普通ですよね?
インスタンスフィールドor staticフィールド上で
private final String addr ="www";
や
public static final String num ="1";

のような例を見るのですが、一般的な習わしとしては間違ってるという認識で良いでしょうか?
あと定数がインスタンスメソッドからしかアクセスしない場合はstaticをつけずprivate やprotected public等のアクセス修飾子で
良いですよね?
0840デフォルトの名無しさん2016/10/21(金) 16:34:10.80ID:tBmxpz4u
>>839
定数は大文字で定義するのが慣習っていうのはその通り
で、インスタンスメソッドからしかアクセスしない定数だとしても、インスタンスの数だけ定数を持つのは無駄だからstaticでいいじゃん
0841デフォルトの名無しさん2016/10/21(金) 21:16:08.28ID:sMm9jGgF
その辺はfinal付けとけば勝手に最適化してくれそうな気がするが、気になるならstaticかな。
0842デフォルトの名無しさん2016/10/22(土) 15:03:33.08ID:cXJJxRYi
dbにアクセスする際、
try catch finallyで
finallyでconnectionをクローズして
try句の末尾に return するというやり方は可読性的にどうですか?
0843デフォルトの名無しさん2016/10/22(土) 15:05:58.68ID:i8375nNB
>>842
別に普通
0844デフォルトの名無しさん2016/10/22(土) 16:26:19.71ID:nuGLd0Th
>>842
try with resource でクローズは勝手にしてもらうのが今の書き方
finallyでクローズするのは今はしない
0845デフォルトの名無しさん2016/10/22(土) 18:09:51.83ID:daytFnn9
try {

if (x < 4) Goto Exception
} catch (Exception e) {
}

if文結果で例外に投げたいのですが、どうすればいいでしょうか?
0846デフォルトの名無しさん2016/10/22(土) 18:52:36.46ID:Y/WKiXhx
>>845
try{
if(x < 4) throw new Exception(
0847デフォルトの名無しさん2016/10/22(土) 18:53:43.20ID:Y/WKiXhx
try{

if(x < 4) throw new Exception("例外メッセージ");

}catch(Exception e){
}
0848デフォルトの名無しさん2016/10/22(土) 20:22:37.77ID:daytFnn9
>>847

ありがとうございます.
0849デフォルトの名無しさん2016/10/26(水) 00:50:27.08ID:PCuofn8Y
個人的な事ではありますが、ついにJavaの本三冊目(正確には三種類目)に突入しますた。
0850デフォルトの名無しさん2016/10/26(水) 16:52:34.11ID:AyEmyE7Q
日記スレじゃないんだわ
08518492016/10/26(水) 17:35:43.66ID:PCuofn8Y
すいません、目的外利用してました。
0852デフォルトの名無しさん2016/10/26(水) 21:48:30.73ID:KK2a1M8e
throw new IllegalPostException();
0853デフォルトの名無しさん2016/10/27(木) 19:25:16.09ID:dM08lZSa
プログラムを複数のパッケージに分けるとコンパイルが複雑になるんですか?
0854デフォルトの名無しさん2016/10/28(金) 00:51:27.57ID:pg93hTIV
>>853
やってみればいいんじゃないの?
0855デフォルトの名無しさん2016/10/28(金) 06:20:08.37ID:ZSEeTNr3
ジェネリクスなんですが、
List<? super A> list = new ArrayList<A>();
のようにsuperで型宣言した場合、
list.get(); した時に全部Object型になります。
? の部分にどんな型が来ても互換性が取れるようにってことだと思うんですが、
それなら極力 super なんて使わずに、
List<A> list = new ArrayList<A>();
にするほうがいいと思うんですが、ジェネリクスでの<? super *>の活用しどころってどういうケースでしょうか?
0856デフォルトの名無しさん2016/10/28(金) 06:43:40.93ID:l/3+OTVv
なんでextendsでなくsuper…
0857デフォルトの名無しさん2016/10/28(金) 12:17:18.19ID:0c0ESAbt
>>855
出力のみに使う型はextends
入力のみに使う型はsuper
入出力両方で使う型には変性を付けない
0858デフォルトの名無しさん2016/10/28(金) 14:29:30.59ID:dom53pU3
utilクラスはすべてstaticでもいいでしょうか?
例えばDBにアクセスするutilなどです。
08598532016/10/28(金) 16:02:47.03ID:wDKSwFbg
>>854
ネット環境が無いんです。
0860デフォルトの名無しさん2016/10/28(金) 16:21:15.04ID:GNbMn5al
ネット環境がないとネットの掲示板に書き込んでる矛盾
08618592016/10/28(金) 18:22:32.29ID:wDKSwFbg
>>860
ガラプーって表示されてないですかね?

パソコンがオフラインです。携帯から書き込んでます。ガラケーです。
0862デフォルトの名無しさん2016/10/28(金) 21:40:52.11ID:EqqPNtKi
プログラミング初心者でやさしいjavaとネットの講座で独学でやっているのですが、java se8 silverを受けてみようと思うのですが、
黒本は初心者ならbronzeからやったほうがいいのでしょうか?
0863デフォルトの名無しさん2016/10/29(土) 02:44:29.93ID:4FyVr6lP
diしたいのですが
@resouceでインジェクトされないんです。どうしてですか?
0864デフォルトの名無しさん2016/10/29(土) 03:51:39.00ID:qP5vgiL/
>>862
実際のSilverの問題は、わざとか難しい部分を繰り返し聞いてくるので簡単ではありませんよ。

Bronzeから受けてください。

国家試験と違って出題範囲をまんべんなく聞いてくる試験ではないのと、試験が短いのでSilverはあせります。
0865デフォルトの名無しさん2016/10/29(土) 04:39:13.23ID:29FSllRn
個人的にはブロンズのほうが時間がなくて怖かった(たしか65分で60問?)
ブロンズを71点でギリギリ取って3日後にシルバー97点だった。
0866デフォルトの名無しさん2016/10/29(土) 09:40:34.45ID:JrxI+Gxs
>>865
変態か、簡単な問題セットに当たったんだろうな。
0867デフォルトの名無しさん2016/10/29(土) 17:56:15.23ID:ePGlEX2J
>>859
話の繋がりがわからない。
なんでプログラムを複数のパッケージに分ける話からネット環境の話に飛ぶ?
パッケージに分けるのにネット関係なかろう。
08688592016/10/29(土) 20:30:31.50ID:TXDQcz+f
>>867
上で、実際にやってみたら、と提案されたので、ネット環境が無いのでそれは出来ないんです、と伝えたわけです…。
0869デフォルトの名無しさん2016/10/29(土) 21:25:41.35ID:tec52ry+
Javaを勉強し始めて2ヶ月ほどの初心者です
気になることがあったので質問させていただきます

参考書には親クラスの型を使って子クラスのインスタンスを参照する参照変数を宣言できると
書いてあったのですが、それをするメリットって何なんでしょう?

例えばHumanクラスを親とするChildクラスがあるとして、
Child child = new Child();
ではなく
Human human = new Child();
とするメリットです

文法上そういうことができるのは理解しましたが、それをすることが何に役立つのかがわからなくて…

まだ自分はそこを気にかけれるレベルではないのだと思いますが、回答いただけるとありがたいです
0870デフォルトの名無しさん2016/10/29(土) 21:33:58.43ID:Xtl4N18Y
2ヶ月もかけてポリモーフィズムにも届いてないんか
サンデープログラミング?
0871デフォルトの名無しさん2016/10/29(土) 21:38:47.67ID:tec52ry+
>>870
仕事終わって帰宅してからと休日に細々と勉強してます
元々頭の出来も良くなかったので面白い反面パンクしそうです
0872デフォルトの名無しさん2016/10/29(土) 22:07:22.05ID:P6pOx9h1
>>869
抽象化を上げることができて嬉しい
ボンヤリさせとくメリットってのがあるじゃん?
細かいとこまで興味がないっつうか
細かいとこまで感心持ちたくないっつうか

抽象化を一番下げた状態が
Child child = new Child();
の形だよね
interface I {}
class A implements I {}
class B extends A {}
class C extends B {}
class D extends C {}
のとき、
C c = new C();より
B b = new C();より
A a = new C();より
I i = new C();のほうが抽象化されてるよね

こうやって、好きなだけ抽象度を上げていくことができる
そしてこれの何がうれしいのか、については自分で考えてほしいw
0873デフォルトの名無しさん2016/10/29(土) 22:09:15.81ID:P6pOx9h1
一行目修正:
抽象度を上げることができて嬉しい

これ削除:
class D extends C {}
0874デフォルトの名無しさん2016/10/29(土) 22:31:47.93ID:i+DlxK4w
関数の引数とかクラスのメンバしたときに意味がある
ローカル変数を抽象化するメリットはあんまりないぞ
0875デフォルトの名無しさん2016/10/29(土) 22:33:50.82ID:i+DlxK4w
>自分で考えてほしいw

自分もわからんっていうならともかく
長々と説教たれてしまいにこんな答えが返ってきたら
もう二度と聞きにいきたくない…
0876デフォルトの名無しさん2016/10/29(土) 22:48:42.45ID:tec52ry+
>>872
ありがとうございます
とりあえず今の自分の知識だと理解できないレベルの話だということはわかりました
一旦脇に置いて別の部分を進めていくことにします

>>874
ありがとうございます
応用が出来るようになればメリットが出てくるのですね、スッキリしました
使いこなせるように精進します
いえ、分不相応な質問だったことがわかっただけでも収穫でした
また何かあったら質問させていただきます
0877デフォルトの名無しさん2016/10/30(日) 00:12:25.83ID:ekX97W9d
>>869
例えば、配列作りたいとき、
Human[]にしとけば、
ChildもHumanも、他の何かしらのHumanの子クラスも入れとけるじゃん。
実際の処理はChildやら他の子クラス側に書けば、子クラスの追加とか削除とか修正だけで、他の部分に影響を与える事なく機能追加や修正できるっしょ。
同じ道理で、new Childするのをやめて、
static Human createInstance(なんやらかんやら)
と、HumanとかHumanFactortなんかに子クラス作って返すメソッド書けば、どのインスタンスが妥当かも考え無くて済むじゃん。
って事。
0878デフォルトの名無しさん2016/10/30(日) 00:20:54.82ID:3d0adPIb
その理屈だと全部Object[]にしとけで終わってしまう
なんていうかな、あの手の本はほんとにロクなことを教えないよね
0879デフォルトの名無しさん2016/10/30(日) 00:54:27.06ID:rQxX2zI2
まず「スッキリわかる Java入門 第2版、2014」を読んで、オブジェクト指向をきっちりと勉強する

継承は、ゲームで使う。
例えば、怪物クラスの子クラスに、毒マタンゴ・ゾンビドラゴンがある時

怪物配列に、毒マタンゴA・B、ゾンビドラゴンA を入れる

for (怪物 monster: 怪物配列){
怪物.攻撃
}

こういうように、個々の種別ではなく、抽象化して怪物として扱った方が、
簡単に書けるし、また仕様変更にも強い

例えば、骸骨剣士A を追加しても、ソースコードを変更する必要がない。
DB内の怪物マスタを、修正すればよいだけ

つまり、オブジェクト指向を使うと、型による分岐が無くなり、ソースコードの変更に強くなる。
もしソースコード内に、型による分岐があれば、抽象化してそれを消すべき
0880デフォルトの名無しさん2016/10/30(日) 01:07:46.99ID:t4ilsIoO
先輩の険悪な人間関係を取り持ち
別のところから答えも引き出す

新人にしては恐ろしい子…
08818682016/10/30(日) 02:58:58.22ID:tifMCILv
そして出来たら>>868にも触れてやって下さい。
0882デフォルトの名無しさん2016/10/30(日) 09:27:55.22ID:uCf20103
>>881
アロハー

オフラインでも試せるんじゃ?
0883デフォルトの名無しさん2016/10/30(日) 14:41:04.36ID:7WMxM/JH
抽象クラスのインスタンスは作れないって思ってたんですが、明示的に作る事が出来ないだけで、実際は作られてるんすか?
こうやって抽象クラスのサブクラスをインスタンス化した時、"AbClass"は出力されます。
public class Main extends AbClass{
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
new Main();
}
}

abstract class AbClass{
public AbClass(){
System.out.println("AbClass");
}
}

javapしてみても、
abstract class main.AbClass
minor version: 0
major version: 52
flags: ACC_SUPER, ACC_ABSTRACT
っていう、ACC_ABSTRACTフラグがついてます。
0884デフォルトの名無しさん2016/10/30(日) 15:35:58.53ID:fTcBbX+E
>>883
その AbClass ってメソッドに一つも abstract がないよな。
だから Main クラスに継承した段階で全てのメソッドが定義された(元からそうだけど、これで完全にabstractクラスではなくなる)ということだと思うが。
0885デフォルトの名無しさん2016/10/30(日) 15:37:31.85ID:fTcBbX+E
>>868
なんで実際にやるのにネット環境が必要なんだよ。
複数のパッケージに分けるだけならネットに繋がってなくてもできる、てかネット関係ないだろう。
0886デフォルトの名無しさん2016/10/30(日) 15:48:29.79ID:zpgPT2nV
>>885
だったら回線切ってやってみろや
結果を書け、それで解決するだろ
0887デフォルトの名無しさん2016/10/30(日) 15:49:41.97ID:zpgPT2nV
ネット関係ないと言い切った御仁がおられるのでやってもらいましょう
いったい何の作業をするのか見ものですね
0888デフォルトの名無しさん2016/10/30(日) 16:13:14.82ID:asmRMmwq
>>885
887が言っている複数の「パッケージに分ける」というフレーズは
我々の知っている作業とは違う作業を指していると思われる

そうでないとここまで自信満々な理由が分からん
俺だったら1週間はこのスレ開かないわ
0889デフォルトの名無しさん2016/10/30(日) 16:13:21.76ID:qgjs7ee5
やばい、第五章で頭こんがらがってきた…
0890881(868)2016/10/30(日) 18:37:40.53ID:tifMCILv
>>882 >>885
ネットに繋がってないのでJDKやエクリプスをダウンロード出来ないんです…。
0891デフォルトの名無しさん2016/10/30(日) 19:53:13.17ID:uaaD1pSq
実行できもしないのになぜJavaスレにいる…
それならパッケージを分ける分けないなんて気にする必要ないだろ
教えたところで実行できないんだから

学校や職場に行けば実行環境があるってんなら、そこで試せ
0892デフォルトの名無しさん2016/10/30(日) 19:59:47.72ID:zpgPT2nV
>>891
偉そうなくせに大したこといってなくて草
わからないなら黙ってろよ雑魚
0893デフォルトの名無しさん2016/10/30(日) 20:00:27.65ID:zpgPT2nV
>>890
俺は応援してるぞ、ここに巣くうサルレベルの知能の雑魚どもに負けるな
0894デフォルトの名無しさん2016/10/30(日) 20:15:47.63ID:OuHrL0RN
>>891みたいなの一番いらんよなw
0895デフォルトの名無しさん2016/10/30(日) 20:50:51.91ID:asmRMmwq
応援するだけで答えませんけどね:)
0896デフォルトの名無しさん2016/10/30(日) 20:53:31.00ID:zpgPT2nV
>>895
はい雑魚2匹目
0897デフォルトの名無しさん2016/10/30(日) 20:54:11.88ID:zpgPT2nV
俺が餌になる、頑張れ
0898デフォルトの名無しさん2016/10/30(日) 20:59:43.05ID:Z+Cepnas
>>886
複数のパッケージに分けるだけなら簡単だろうがよ。
先頭に packge とパッケージ名入れるだけ。使う側はそのまま指定するか import するだけ。

てか、なんでネット必要なんだ?お前は何を想像しながら「複数のパッケージに分ける」と言っている?
0899デフォルトの名無しさん2016/10/30(日) 21:06:46.67ID:zpgPT2nV
>>898
簡単ならさっさとやれよ、結果をレポートしろ
簡単なんだろできるよな
0900デフォルトの名無しさん2016/10/30(日) 21:07:32.67ID:Z+Cepnas
>>890
あ、JDKのダウンロードができないって話か。

どこかダウンロードできる環境でダウンロードしてUSBメモリにでも入れて持ち帰れば?

まあでもネット環境は何とかして用意した方がいいと思うよ。
携帯をテザリングもできるスマホに変えて無線LAN接続とか、回線増やさずにネットに繋げる方法もあるよ。
契約内容に気を付けないと高くなるかも知れないけど。(あとPCに無線LANないとダメだな。有線でテザリングできるならなんとかなるかも知れないけど)
0901デフォルトの名無しさん2016/10/30(日) 21:09:05.12ID:zpgPT2nV
>>900
お前が自分でやれば済む話だろうが、横着すんな
0902デフォルトの名無しさん2016/10/30(日) 21:10:03.72ID:Z+Cepnas
>>899
あたりまえだろ。おまえバカか?てか大丈夫か?
0903デフォルトの名無しさん2016/10/30(日) 21:11:20.23ID:Z+Cepnas
>>901
お大事に。
0904デフォルトの名無しさん2016/10/30(日) 21:14:51.93ID:zpgPT2nV
なんだ結局できないのか
0905デフォルトの名無しさん2016/10/30(日) 21:25:06.45ID:+8NL+Ds1
>>891
0906デフォルトの名無しさん2016/10/30(日) 21:28:24.47ID:+8NL+Ds1
あ、途中で押しちゃった
0907デフォルトの名無しさん2016/10/30(日) 22:04:29.62ID:asmRMmwq
なんか怒りを買ってしまったみたいですね
草
09088902016/10/31(月) 00:47:32.32ID:G6HLyhYb
アドバイスをして頂いた方ありがとうございました。

ネットが繋がるまで本(スッキリJava)で独習しています。
前述のパッケージの分割コンパイルの項目が読んでて理解できなかったので質問させて貰いました。
0909デフォルトの名無しさん2016/10/31(月) 02:15:35.73ID:sJgNRili
MVCのWebアプリについて教えて下さい。
リクエスト毎にインスタンスを生成するControllerクラスがあります。
ControllerクラスにServiceクラスをインスタンス変数として、DIコンテナでインジェクトします。
この際に、DIのライフサイクルをシングルトンにします。

1回目のリクエストのControllerクラスでは indexメソッド内でserviceのメソッドがメソッド内で呼ばれるとします。
2回目にリクエストでもController.indexメソッドが呼ばれます。
この時、serviceクラスはnullでしょうか?
それとも1回目のControllerクラスでDIしたインスタンスが2回目も使われるのでしょうか?
09109082016/10/31(月) 02:18:51.56ID:G6HLyhYb
何か俺が争いの火種になってしまっているのかな?
そうだとしたら不快な思いをした方すいません。

持っているパソコンのOSがXPなんでネットに繋げないんです。新しいOSを入れる容量も無いんで新しく買おうと思っています。
0911デフォルトの名無しさん2016/10/31(月) 07:34:49.69ID:sEDt+ZDb
>>909
同じインスタンスがDIされる
0912デフォルトの名無しさん2016/10/31(月) 08:38:04.45ID:r/gQTNbf
>>910
恒例の「外野が勝手に騒いでるだけ」だから気にしなくていいよ
0913デフォルトの名無しさん2016/10/31(月) 08:52:18.47ID:X5kXOLud
せやな
0914デフォルトの名無しさん2016/10/31(月) 10:01:24.16ID:3MWuUQcB
>>910
Linux 入れればいいのでは?
Ubuntu とか本屋でDVD付きで売ってたりするからインストール自体はネットなしでもできる。
09159092016/10/31(月) 12:01:32.93ID:sJgNRili
>>911
ありがとうございます。もう1つ質問させてください。
ではServletとDIコンテナを併用して使う場合のケースです。
サーブレットクラスのインスタンス変数にserviceクラスを持つとします。
通常だとServletはシングルトンなのでクラスのインスタンス変数はスレッドセーフではないですが、
DIコンテナの設定をリクエスト毎にした場合は、
1回目、2回目、3回目・・・と
アクセスされるたび、serviceにインスタンスがDIされますか?
それとも呼び出し元のクラスが新たにインスタンス生成されないので同じインスタンスが共有されますか?
0916デフォルトの名無しさん2016/10/31(月) 20:08:38.55ID:RYpBavAY
int resurt

assertThat(resurt, is(not(0));

resurtの値には0以上の値がランダムに代入される時、0以外をtrueで返す式は上記であってますか?
0917デフォルトの名無しさん2016/10/31(月) 20:53:46.43ID:p7TPitCz
>>915
よくわかんねーけど、どのインスタンスがDIされるかなんて制御できないよ。
根本から理解が間違ってる
0918デフォルトの名無しさん2016/10/31(月) 21:34:08.02ID:sJgNRili
>>917
どういうことですか?
09199102016/11/01(火) 00:50:00.31ID:68tlbbHF
>>912 >>914
ありがとうございます。

Linuxは大学の時にやって苦戦したので、Windowsでいきたいんです…。
0920デフォルトの名無しさん2016/11/01(火) 00:56:10.41ID:FUOnuiX2
ネカフェでインストーラだけダウンロードすればいいんでないの?
09219192016/11/01(火) 01:41:24.27ID:68tlbbHF
>>920
地方在住なので近くにネカフェ無いです。
まあもうじき新しいパソコン買うので…。
09229192016/11/01(火) 01:41:53.51ID:68tlbbHF
>>920
地方在住なので近くにネカフェ無いです。
まあもうじき新しいパソコン買うので…。
0923デフォルトの名無しさん2016/11/01(火) 01:43:14.40ID:68tlbbHF
連続書き込み失礼しました。
0924デフォルトの名無しさん2016/11/01(火) 02:50:43.94ID:lWEkG1Wt
>>916
合っている。実行して確かめろ

それに、resurtは、result だろ
0925デフォルトの名無しさん2016/11/01(火) 07:21:55.41ID:YKGFAfzS
>>918
そもそも、どういう事がしたくてそうしてるの?
あと、そこまでいくとDIコンテナにもよるでしょ。
0926デフォルトの名無しさん2016/11/01(火) 09:11:02.25ID:8QttcA43
>>919
一応インストールしなくてもCDかDVDでブートして動くようなのあるけどね。インストーラでそういう起動させるかどうか選べる(確かUbuntuもそういう風になってた)。
なので、Windows用の何かをダウンロードしたいだけだとしてもそうやって起動後にUSBメモリ挿してそこにダウンロードするという方法がある。
するとLinuxインストールせずに使えてネカフェに行く必要もなくなる。

まあ、XPでもセキュリティリスク無視するならそのままできるだろうけどね。(Oracleとか、特定のサイトにしか行かないなら多分大丈夫だとは思うが)
09279192016/11/02(水) 00:33:40.21ID:T1qBuIQL
>>926
忙しくてレスが遅くなってしまいすいません。

丁寧にありがとうございました。

技術評論社とかの本はCD-ROMが付いてますね。
俺が買った本はダウンロードを推奨するものでした。
0928デフォルトの名無しさん2016/11/02(水) 08:12:21.70ID:JaTBDkBi
今日日こんな質問があるとはな
0929デフォルトの名無しさん2016/11/02(水) 16:46:07.89ID:KtthnrOq
Windows2000全盛期の質問だよね。
0930デフォルトの名無しさん2016/11/02(水) 18:02:47.63ID:WL73ssGd
超貧困JKって奴だろ
0931デフォルトの名無しさん2016/11/02(水) 19:04:14.21ID:6QvosKf/
キーボードだけ買ってタイピング練習ってか?
0932デフォルトの名無しさん2016/11/02(水) 22:16:59.49ID:QrC60bZw
俺のキーボード。
http://i.imgur.com/RuyhzEA.jpg
なんとこれだけで計算もできる。
0933デフォルトの名無しさん2016/11/03(木) 01:58:29.25ID:8VAyqA8t
ObjectクラスのhashCode()ですが、どういう判定方法をしているのでしょうか?
equals()でfalseとなるインスタンス同士(パラメータは一緒でインスタンスが違う)でも、同じ値が返ってきます。
0934デフォルトの名無しさん2016/11/03(木) 02:52:13.45ID:9qfKx4O0
>>933
ObjectクラスのhashCode()はメモリのアドレスだよ

> equals()でfalseとなるインスタンス同士(パラメータは一緒でインスタンスが違う)

これはObjectクラスではないのじゃないかな
パラメータからハッシュ値を計算するようにオーバライドしてるんでしょ
0935デフォルトの名無しさん2016/11/03(木) 03:23:17.42ID:0y7uoQTe
ジャパニーズオールドアナログコンピューターキーボード
0936デフォルトの名無しさん2016/11/03(木) 03:54:34.50ID:QFrf3CuS
mainクラスをコンパイルすると全パッケージコンパイルに成功して実行できるのに
個別にコンパイルするとサブパッケージが因数の受け渡しで別クラスを認識できずシンボルを見つけられませんエラーが出るのは何が考えられるでしょうか
構成は
main→パッケージ→a
       └→b
でmainがabの内容を表示しbが再びaの内容を表示するものです
bを個別にコンパイルするとaのメソッドを参照できず、指定したクラス名を変数名と勘違いしてる感じです
0937デフォルトの名無しさん2016/11/03(木) 05:16:28.40ID:TDi/4+oI
bファイル内で、import a
と、していないから

mainファイル内では、
import a
import b

の順番で読み込まれているから、bファイル内で、aのクラスを使えていたとか?
まあ、import宣言する順番に、依存しないかも知れないけど。
漏れは、知らない
0938デフォルトの名無しさん2016/11/03(木) 14:20:39.76ID:QFrf3CuS
>>936
ですが解決したかもしれないです
環境変数をHPを参考にしてPATHと設定したのですがCLASSPATHとすべきだったのかもしれないと
環境変数の違いなんて全くわからないけど試してみます
0939デフォルトの名無しさん2016/11/03(木) 20:13:39.41ID:QFrf3CuS
駄目だどうしても別のプログラムにしても別パッケージを参照しようとするとをパッケージ〜は存在しませんもう泣けるつらい
0940デフォルトの名無しさん2016/11/03(木) 21:21:18.02ID:QFrf3CuS
どなたか助けてください、すいません…
スッキリの例題出申し訳ないですがこのプログラムに限らずパッケージをまたごうとするとパッケージやクラスが発見できないエラーが出ます
CLASSPATHを WORK や Calc や calcapp.main に設定しても駄目
PATHは設定してjavaもjavacも通ります


http://i.imgur.com/HIH7mVF.jpg
0941デフォルトの名無しさん2016/11/03(木) 22:08:01.44ID:CtrzsuW8
例題にはnotepad.exeとコマンドプロンプトを使えって書いてあるのか?
書いてあるなら、そこまでに説明されていることの何かが欠けてるんだろうよ
書いてないなら、書いてある方法で問題は解けよ
0942デフォルトの名無しさん2016/11/03(木) 22:08:26.76ID:kVn2ZEfC
質問させてください。
これまでC言語を学んで趣味としてプログラミングをやっていましたが、
ひょんなことからJAVA Black bookを入手することになり、いい機会なので新しい風を入れるつもりで
この本でJAVAを学びはじめました。
しかしながら、この本が2000年9月出版で、もしかしたら今と大きく変わった部分があるのではと
心配しています。
そのあたり、ご存知の方にご教示いただけたら幸いです。
0943デフォルトの名無しさん2016/11/03(木) 22:17:14.22ID:CtrzsuW8
1.3時代の本か
少なくとも1.6以降じゃないと、予約語を覚える以外の役には立たない
0944デフォルトの名無しさん2016/11/03(木) 22:21:30.80ID:QFrf3CuS
>>941
メモ帳とコマンドプロントを使うって書いてたんでそれが一般的かと思ってたんですが違うんですか?
どっちにしてもこれが通らないのが納得行かないですが
0945デフォルトの名無しさん2016/11/03(木) 22:36:56.93ID:g7gHuu9b
>>940
https://docs.oracle.com/javase/jp/6/technotes/tools/windows/javac.html

CalcLogicを先にコンパイルして、クラスパスにCalclogic.classファイルの場所を設定するか、
いっこ上のフォルダに上がって、クラスを2つ同時に指定するかで行けんか
0946デフォルトの名無しさん2016/11/03(木) 22:37:38.25ID:g7gHuu9b
あと、PATHとCLASSPATH混同しとるな
0947デフォルトの名無しさん2016/11/03(木) 22:47:12.50ID:kVn2ZEfC
>>943
あちゃ〜そんなに変わってますか
JAVAがC言語学習者にとって学びやすい言語であることは今の本のさわりでわかったので、
改めて別の本を買ってみることにします。
09489472016/11/03(木) 22:47:37.54ID:kVn2ZEfC
ありがとうございました。
0949デフォルトの名無しさん2016/11/03(木) 23:32:50.63ID:QFrf3CuS
>>945
PATHはjavaの定義のため、CLASSPATHはクラス指定のためと分かったんですが一つ目の方法では駄目でした
二つ目のクラスを二つ同時に指定するというのが分からないのですが試しにcalcapp.mainとcalcapp.logicsにクラスパスを設定してCalcディレクトリでjavac Calc.java
→Calcファイルが見つからない
calcapp.mainディレクトリでjavac Calc.java
calcapp.logicsが存在しない
複雑な構成のプログラムではないし、何らかの設定でつまづいてる気がするんですが暗中模索がこんなにしんどいとはと実感してます
0950デフォルトの名無しさん2016/11/03(木) 23:37:47.60ID:x/s1yBiE
パッケージとディレクトリの対応は「calcapp.main」という名前よディレクトリじゃなく「clacapp¥main」だぞ

calcappディレクトリの下にmainディレクトリ作らないと
0951デフォルトの名無しさん2016/11/03(木) 23:39:47.53ID:x/s1yBiE
calcapp¥mainとcalcapp¥logicsの二つのディレクトリを作れば解決するはず
0952デフォルトの名無しさん2016/11/03(木) 23:58:11.81ID:g7gHuu9b
あw
0953デフォルトの名無しさん2016/11/04(金) 00:10:29.41ID:9L4bsxNE
皆さんにアドバイス頂いていろいろやるも通らず…
その外こんなのも駄目で
javaのバージョンが良くないのか自分を疑うべきなのか

http://i.imgur.com/Ehiljd7.jpg
0954デフォルトの名無しさん2016/11/04(金) 00:12:46.15ID:tO492IJ7
と思ったけど
おい普通にいけたぞ

xxx\Calc> C:\Program Files\Java\jdk1.8.0_92\bin\javac" calcapp.main\Calc.java calcapp.logics\CalcLogics.java
0955デフォルトの名無しさん2016/11/04(金) 02:46:44.66ID:A/+Iym3t
スッキリJavaの「複数クラスを用いた開発」の章の最後に書いてある。
クラスローダーの動作原則

パッケージ階層と全く同じ、ディレクトリ階層を作って、そこにクラスファイルを置く

こういう環境構築が難しいから皆、paiza.IO, codepad などで、ブラウザから実行する
0956デフォルトの名無しさん2016/11/04(金) 08:55:17.07ID:hTUXm8GA
>>953
ディレクトリ構成を見せてくれ
0957デフォルトの名無しさん2016/11/04(金) 12:13:16.04ID:0ltYjQIh
>>949
CLASSPATH には calcapp.main や calcapp.logics そのものではなく
それらの上のディレクトリを指定するんだぞ。
そしてコンパイルも実行も calcapp.main や calcapp.logics に
降りてはダメなのもわかってるのか?>>954 みたいにするんだぞ。
0958デフォルトの名無しさん2016/11/04(金) 20:13:25.77ID:9L4bsxNE
>>954
わざわざ試していただいてありがとうございます!

>>953
については成功しました

WOKS¥Main2¥hontai¥Main2.java
WOKS¥Main2¥comment¥Zenhan.java/Kouhan.java
という構成でMain2をCLASSPATHでMain2.javaをjavacして成功
JVMの性質を考えると納得できます

しかし同じ構成のCalc
WOKS¥Calc¥calcapp.main¥Calc.java
WOKS¥Calc¥calcapp.logics¥CalcLogic.java
でCalcをCLASSPATHにしてCalc.javaをjavacしても何故かcalcapp.logicsは存在しませんといった状況です

正直練習問題の初めて作ったMain2がうまく動作しなくて確実に動くだろうCalcを動作確認のため作ったらMain2の方だけ実行できて本末転倒状態です
0959デフォルトの名無しさん2016/11/04(金) 20:31:51.14ID:4SeM2Q5g
>>958
.(ドット)はパッケージの区切りを示すものなので、
WOKS\Calc\calcapp\main\Calc.java
WOKS\Calc\calcapp\logics\CalcLogic.java
こうやって
calcappの下にmainとlogicsの階層を作らないといけないよ
0960デフォルトの名無しさん2016/11/05(土) 01:48:38.64ID:0FZEaghz
>>955
に書いてあるページを、読んでからやれ。
ここに書いてある通りにやれ

本を読まずに、やるな
0961デフォルトの名無しさん2016/11/05(土) 04:53:30.02ID:edcXpxnV
>>958
いいか。まず Calc ディレクトリの下に calcapp っていうディレクトリを作れ。
それから calcapp の下に main と logics っていうディレクトリを作れ。
その main の下に Calc.java を置け。logics の下には CalcLogic.java を置け。

で、コマンドプロンプトでカレントディレクトリを Calc ディレクトリに移動した後で、こうする。

javac calcapp\main\Calc.java calcapp\logics\CalcLogic.java

するとそれぞれのソースと同じディレクトリにクラスファイルが作られる。
この時の環境変数 CLASSPATH は Calc ディレクトリになっていてもいいが、なってなくてもいい。
というのは javac ではカレントディレクトリは自動で CLASSPATH に含まれるからだ。

で、実行はそのまま Calc ディレクトリでこうする。

java calcapp.main.Calc

この時もし CLASSPATH に何かがセットされていてそれがカレントディレクトリを含まない
場合はエラーになる。かといって CLASSPATH を一々セットし直すのは面倒だ。
という場合はこうする。

java -cp . calcapp.main.Calc

この -cp で指定している . (ドット) はカレントディレクトリだ。これで CLASSPATH に
カレントディレクトリを指定した上で実行したことになる。またドットの代わりにカレント
ディレクトリの絶対パスを指定しても同じになる。更にそのように絶対パスで指定
するならカレントディレクトリをどこに移動しても実行できる。
0962デフォルトの名無しさん2016/11/05(土) 13:27:53.71ID:mhverHUI
>>961
>>959
>>957
まさに試そうとしたところで丁寧に教えていただきありがとうございます!

実は
>>950
のコメントを頂いたときに似たようなことを試したんですがうまく行かなくて
これこらもう一度試すんですが、calcapp.mainやcalcapp.logicsみたいに"."が入るパッケージ名自体は不正じゃないんですか?
パッケージ名を修正しなかったから失敗したのかと思ったんですが
0963デフォルトの名無しさん2016/11/05(土) 13:32:23.18ID:0pOl8O7N
>>962
パッケージ名が aaa.bbb.ccc だとしたら
ディレクトリー構造が aaa\bbb\ccc になる
パッケージ名のドットを\に置き換えたのがpath
0964デフォルトの名無しさん2016/11/05(土) 15:17:41.43ID:edcXpxnV
おまけ情報

java コマンドで実行するクラスを指定する時は区切りのドットに代わりに / で書くこともできる。
しかし \ はできない。つまり java calcapp.main.Calc で実行できるなら java calcapp/main/Calc でも実行できる。
しかし java calcapp\main\Calc はできない。

これはおそらくSunがJavaを作っていた当初は UNIX (Solaris) 使っていたことの名残だと思う。
(UNIXではディレクトリの区切り文字は / を使う)。
0965デフォルトの名無しさん2016/11/05(土) 15:29:17.38ID:mhverHUI
>>961
>>963
通りました!本当にありがとうございます!

一つだけ疑問が残ってるんですが、Main2プログラムの方はMain2だけを指定、
つまりMain2をCLASSPATHでMain2.javaだけでjavacする事が出来たのに対してCalcの方は
>>961
にあるように javac calcapp\main\Calc.java calcapp\logics\CalcLogic.java
と二つのクラスを指定してjavacしないと通らないのには何か明示的な理由があるんでしょうか?
極端な話プログラムによっては大量のクラスをコンパイル時に指定する必要があるのかという疑問が浮かびます
0966デフォルトの名無しさん2016/11/05(土) 15:56:23.66ID:yMN3xLAC
標準出力へのアンバッファな出力ってどうやればよいですか?
09679652016/11/05(土) 16:00:02.68ID:yMN3xLAC
自分が考え付くのは、BufferedReaderをバッファサイズ=1でnewする
程度です。
0968デフォルトの名無しさん2016/11/05(土) 17:16:29.78ID:anO0HCtb
>>965
依存してるからだよ。Calcクラス内からCalcLogicを使っているからコンパイラはCalc.javaコンパイル時にCalcLogicクラスのことがわからないとダメだ。
つまり先にCalcLogicがコンパイルされてクラスファイルになっている必要がある。

で、依存関係のあるクラスをCLASSPATHを起点とするディレクトリ以下でコンパイルする時に全て指定した場合はコンパイル順序は自動で考慮してコンパイルしてくれるってこと。
もし依存がないならひとつづつ順序考慮せずにコンパイルすることも可能だ。

ただ場合によっては大量のソースを一度にコンパイルする必要があるわけだが、その場合はコマンドラインに書ききれないならテキストファイルにスペースまたは改行区切りでファイル名を並べて書いておいて javc の引数で @ 付けてそのファイルを指定するという方法が使える。
これはWindows用javcだけの機能かも知れない。昔からDOS用コマンド等でやられてきた方法だ。DOSは引数の文字列制限がとても小さかったからね。
UNIX系OSではそんなこと考えずシェルスクリプトに引数並べちゃえばいいんだけどね(見辛い場合は行末に \ 入れて次の行と繋がってる事にする)。
0969デフォルトの名無しさん2016/11/05(土) 17:20:04.72ID:anO0HCtb
ああ。でもその辺はこの頃は eclipse 使ったりすれば自動で考慮して無駄なくコンパイルしてくれるからあまり考える必要ないと思う。
0970デフォルトの名無しさん2016/11/05(土) 17:23:33.18ID:Vdk40yXv
>>966
バッファせずに出力したいなら
Writer out = new OutputStreamWriter(System.out);
でいいのではと思ったら、そもそもそういう話ではなく、毎回flushを呼ぶ必要がある
http://ideone.com/rHtUIO
0971デフォルトの名無しさん2016/11/05(土) 18:00:46.58ID:zg/6JUlg
>>966
参考
http://d.hatena.ne.jp/Kappuccino/touch/20080731/1217480162
0972デフォルトの名無しさん2016/11/06(日) 02:21:03.04ID:nNdE2u+1
こうやってバッファなしを out にセットしちゃえばいいのかな。
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
0973デフォルトの名無しさん2016/11/06(日) 11:44:21.04ID:4ZaT28cB
System.out.close()しておきながら以降出力されませんとかとぼけてるドジっ子かもな
どのみち実務では利用する機会のないネタだね、いわゆるトリビア
09749662016/11/06(日) 12:40:21.24ID:jofbsDf+
>>970
ありがとうございます。読ませていただきます。
OutputStreamWriterはnioのcharBufferとbyteBufferでバッファリングしながら
エンコードしているようなので、>>970さんのおっしゃるように駄目でした。

>>972
ありがとうございます!FileOutputStream(FileDescriptor.out)で出来るように
なりました!FileOut〜は直接native writeを呼んでいる様でした!
0975デフォルトの名無しさん2016/11/06(日) 19:21:27.22ID:rNdTzEdK
>>968
なるほど依存によってはコンパイル順で指定する必要がある訳ですね
つまりJVMの優先順位次第だけど基本的には全部指定した方が無難そうですね

今回つまづいて皆さんに助言をいただいたおかげでかなりJVMとコマンドプロントについての理解が深まりました。ありがとうございます!
いずれは統合開発環境を使うと思いますがやっぱり基本構造は理解したいのでこのままコマンドプロントでもう少しやってみます
0976デフォルトの名無しさん2016/11/06(日) 20:38:06.30ID:5/z3Ppl4
JAVAはいい人多いな
0977デフォルトの名無しさん2016/11/07(月) 02:12:01.71ID:LVMUK9Ip
ハゲも多いけどな
0978デフォルトの名無しさん2016/11/07(月) 04:50:06.17ID:4jym6Vde
>>976
Javaというかこのスレにね。
C++のスレカオスだよ。
0979デフォルトの名無しさん2016/11/07(月) 13:28:02.93ID:f+d8GbUt
type="hidden"のボタンをクリックする方法はありますか?
0980デフォルトの名無しさん2016/11/07(月) 13:40:01.53ID:/8UUm0jP
type=hiddenはボタンじゃない
http://www.htmq.com/html/input_hidden.shtml
0981デフォルトの名無しさん2016/11/08(火) 18:43:02.58ID:jUCVZHcM
>>978
C++は基地外ばっかです
0982デフォルトの名無しさん2016/11/09(水) 20:10:07.13ID:loi9raWA
日付(時刻)を扱うクラスにも習熟しとかないといけませんか?
0983デフォルトの名無しさん2016/11/09(水) 22:31:54.88ID:f1pFjyzB
StringとString[](配列)の違いを教えてください
文字列は複数なので必然的に配列になってしまうような気もするのですが
前者に格納できていれるのでなぜなのかと
0984デフォルトの名無しさん2016/11/09(水) 23:28:39.36ID:kFU4IgnS
>>983
String自体がjava開発者がそういう風に文字を扱えるように作ったクラスの集合体だから
そして頻繁に使うからStringと書くだけでそのクラス集合体を呼び出せるようにちょっと特別扱いした
と後々説明されます
0985デフォルトの名無しさん2016/11/10(木) 00:20:10.42ID:VI/Gf6Nq
ありがとうございます。
他の基本の型とは違う扱いということで理解すればいいのでしょうか。
0986デフォルトの名無しさん2016/11/10(木) 01:19:11.86ID:mM/8alJk
http://nobuo-create.net/string/
0987デフォルトの名無しさん2016/11/10(木) 08:47:44.97ID:vUqiNNag
ニート卒業の為にまずオラクルJAVAのシルバー取ろうと思うんだ
会場はわかったんだけど試験日って決まりあるのかな
申し込めばいつでも受けれるって認識で大丈夫?
0988デフォルトの名無しさん2016/11/10(木) 15:17:20.49ID:yQ+SgR9x
>>982
あなたにそれが必要であれば
0989デフォルトの名無しさん2016/11/10(木) 15:31:46.08ID:yQ+SgR9x
>>985
String は一応普通のクラスだ。ただし頻繁に使われることを考慮して初期化などは楽にできるように言語レベルでサポートされている。
それと、CやC++での char * での文字列操作については忘れろ。それとは全く違うものだと思って最初から入門書等をよく読んでどういうものか覚えろ。
表現が似ているからといってわかったつもりになってはいけない。そうするとハマる。
0990デフォルトの名無しさん2016/11/10(木) 21:18:04.76ID:mM/8alJk
このsetterの妥当性検証のif構文について、弾きたい条件をif指定するのは当然として
それ以外をelseで処理してるパターンとif構文外で処理してるパターンがあるのには何か意味があるんですか?
具体的には12行目はelse、19行目、26行目、33行目はelse無し
自分で考えてるときは指定したい条件をifで弾いてそれ以外はelseで処理すると思ってたけど考えてみればifに引っかからなければそのまま下に進むやり方でも結果一緒でならelseいらないじゃんとか思ったり
そもそもここで使い分けてる理由がわからないです
http://i.imgur.com/WQ0EiAg.jpg
0991デフォルトの名無しさん2016/11/10(木) 21:27:54.75ID:FNhtM1mh
>>990
if で引っ掛かった時に throw で必ずメソッド抜けてしまうやつはelseなしってだけのこと。
0992デフォルトの名無しさん2016/11/10(木) 21:36:52.16ID:mM/8alJk
>>991
なるほど、ifの処理内容の問題だったんですね
スッキリで基礎は勉強できるけどAPIはまだ全然なんでまずAPIを疑うべきでした
0993デフォルトの名無しさん2016/11/11(金) 00:29:13.33ID:Y+Bz51WV
class="" と記述された要素をcssセレクターで抽出出来ますか
0994デフォルトの名無しさん2016/11/11(金) 00:41:49.70ID:Y+Bz51WV
自己解決
09959822016/11/11(金) 00:52:39.32ID:qy8zOpAk
>>988
Javaを仕事で使うのであればやはり必要でしょうか?
0996デフォルトの名無しさん2016/11/11(金) 09:22:15.80ID:YwN9JhrQ
>>995
仕事の内容によっては細かく全て知る必要がある。

しかしだいたいの仕事では現在住んでる国のlocaleでのローカルタイムの文字列出したり読んだり出来れば良い程度だと思う。
せいぜいこれに3日後は何日かとか、生年月日から計算して今日で何歳何ヵ月かみたいな計算が伴うぐらい。
09979952016/11/11(金) 16:58:03.57ID:qy8zOpAk
>>996
ありがとうございました。
参考になりました。
0998デフォルトの名無しさん2016/11/11(金) 20:26:15.01ID:zFksT2Ki
次スレです

Java入門・初心者質問スレ Part.2 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1478863511/
0999デフォルトの名無しさん2016/11/12(土) 16:53:04.67ID:KzeRaaZ8
うめ
1000デフォルトの名無しさん2016/11/12(土) 16:53:18.10ID:KzeRaaZ8
1000なら佐々木希のまんまんをクンニし放題
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 184日 11時間 34分 45秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。