前スレの997だけど
waitForの仕様はWindowsのGetExitCodeProcessのコードを返すことではなくて
「プロセスの終了ステータスを返す」ことなので
その通りに実装されていないJavaのバグでしょ。
WindowsのGetExitCodeProcessの仕様を読むかぎり
単独で使用しちゃダメなAPIであることは明白だし
.NETはそんなbuggyな実装はしてない
馬鹿にはjava
>>2 bugdatabase行って来れば?
普通の人はそれで困ってないんだろうし。
Javaのバグだとどうしようもないですね。
exeのほうを修正して値をファイルなど別の手段で返すしかないか・・・
bugdatabaseでぐぐればすぐに出てくるよ。
8 :
2:2014/05/17(土) 12:41:58.99 ID:bdAvlre6
またwindowsの互換を壊すための実装の話か。
10 :
デフォルトの名無しさん:2014/05/17(土) 14:10:54.61 ID:9pbAmHKW
booleanの初期値はfalseですよね。
あるプログラムで実行すると
if (flug==true) {
の中身が原因でヌルポが出ます。
フラグは触ってないので本来ならそのif文の中身は処理されないはずなんです。
booleanの宣言時にflug=false;にするとエラーは出ません。
初期値がtrueになる原因はどんな事が考えられますか?
>>10 いや絶対何かしてるから
IDE用意して参照部洗い出してデバッガで追いなさいな
12 :
デフォルトの名無しさん:2014/05/17(土) 14:33:17.69 ID:HvIgnxEv
booleanがBooleanになってるとか
13 :
デフォルトの名無しさん:2014/05/17(土) 14:44:12.57 ID:9pbAmHKW
>>12 bingoでした!ありがとうございます。
trueじゃなくてnullになってました。
booleanとBooleanと別のものだとは知りませんでした。
前スレの質問で、クラスパスは、
java -cp で指定するか、
ユーザ環境変数、CLASSPATHに、絶対パスを設定する
c:\パス名\ファイル名.jar(.jarまで必要)
前スレの老人プログラマーには、
「スッキリわかる Java入門」
インプレス・ジャパン、2011を薦める
この本なら、20時間ほどで読めるし、
オブジェクト指向もみっちり勉強できる
自分が理解できない本やサイトに、こだわっても仕方がない
他人にわかりやすく説明できる人は、ごく一部。
自分がアホと思うより、まず説明を疑った方がよい
お前には休養を勧める。
>ユーザ環境変数、CLASSPATHに、絶対パスを設定する
腐ったやり方をひとにすすめないで
17 :
デフォルトの名無しさん:2014/05/17(土) 17:58:00.75 ID:EjI2tlSy
NIO2の非同期処理でtcpクライアントを書いています。
教えてほしいのですが、
readerのCompletionHandlerを設定した場合のreader.completed()が呼ばれるタイミングは、
(1)とりあえず読み込みは完了した。しかしサーバーから送信予定の全てのバッファを読み込んだとは限らない。
(2)サーバーから送信予定の全てのバッファを読み込んだ。もうサーバーからの送信はない。
どちらになるのでしょうか?
18 :
デフォルトの名無しさん:2014/05/17(土) 18:03:09.98 ID:EjI2tlSy
17です。補足させてください。
通常のsocketアプリの場合、例えば受信イベントが発生し、そのデータを受信しても全てを受信し終わったとは限らないので
(一回の送信で全てを送信できるとは限らない)複数回に分けての受信を考慮しますが、
NIO2のCompletionHandlerも同じということでしょうか?
それ(2)だと非同期使う必要なくね?
前スレ979とか、碌にレス返せないなら質問すんな
androidのアプリを開発するためにJavaを学ぼうと思っています。
今までプログラムはCをメインに勉強していて、C言語でマイコンを扱うぐらいはできます。
Javaを学ぶのにあたり、よさげな参考書があれば教えてほしいです。
あくまで、androidアプリ開発が目的です。
androidスレか本スレで聞けよ
失礼しました。別スレに移動します。
17です。
>>19 そうですよね、、、失礼しました。
26 :
デフォルトの名無しさん:2014/05/18(日) 11:54:53.85 ID:0kvX68pZ
tomcat + netbeans +maven でjsf 2を使いたいのですが、次の例外で落ちてしまいます。
>java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
クラスパスが通っていないのっだと思うのですが、
NetBeansでは自動的にmaven依存関係にクラスパスを通してくれないのですか?
どっかで見た質問
ごめん、質問したこと自体忘れてた。
今気がついたんだけど、NetBeansの「Apache TomcatまたはTomEEログ」って
クリアした後にtomcatを再起動するとこれまでのログがすべて表示されるんだね
クリアの意味無いじゃん。MSのツールが神様に見えてくる
俺もこの質問わすれるから、MSのスレに行けよ
netbeans使ってるプロジェクトに遭遇したこねーわ
全部eclipse
使っているやつが
JSF使いやすいが
動作がくそ重いって言ってた
javaのデモは政治的な理由でnetbeansだな。
俺もeclipseだから開けなくて面倒くさい。
38 :
デフォルトの名無しさん:2014/05/19(月) 03:11:01.87 ID:/jZGUGua
Oracle JDK を Linuxで展開しようとしてもできなくなってるんだがどうなってるの?
>tar zxvf jdk-7u55-linux-x64.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
っていわれて解凍できないんだがなんのこれ?
ここで質問してるからにはダウンロード失敗の可能性は既に確認済みなんだろうな
40 :
デフォルトの名無しさん:2014/05/19(月) 16:47:31.78 ID:9iJrVVoe
>>38 fileコマンドでファイルが本当に
tar.gzが確認して。
違っていたらファイル名を修正して
あとは本当のフォーマットに適合したことをする。
>>39が答えを書いているようなものなのに
Oracleを疑っているのか
42 :
デフォルトの名無しさん:2014/05/20(火) 10:44:32.70 ID:VbpADmch
エロい人教え下すん。
BufferStrategy.show() をする場合に、
Component.repaint(x, y, width, height) みたいな描画領域の指定の仕方ってありますか?
vram想定してるから無いのかな。
因みに、BufferStrategyを使う場合、そこに描画する素材もVolatileImageで用意しておかないと、
結局速度でないって話でおkですか?
>>42 repaint(x,y,w,h)相当があるかは知らないけど
バッファを入れ替えながら描画してるわけだし
あっても上書きできるのはビデオポインタの指してない古いバッファのような…
44 :
>>42:2014/05/20(火) 20:58:49.17 ID:VbpADmch
>>43 レストンクス。
考えたらそりゃそうですね。サーセンした。
45 :
デフォルトの名無しさん:2014/05/21(水) 19:20:10.09 ID:EfVqZmfA
>>45 PrintTest.classが存在しない
クラス名の大文字小文字が適当すぎだろ
引数
string→String
InputStreamReader
System.out.print
System.out.println
お前のエラーは全部構文エラーだから正しいエラー内容吐かないその糞ツール使うのやめて
eclipseっていう開発ツール使え
*.classはソースコードではなくコンパイラの成果物でオブジェクトファイルの一種
何見て勉強してるのか知らないけどCPADじゃなくてNetBeansなりEclipseなり使おう
開発環境の構成なんて後回しにすべき
>>49 うおお
よく見たら、、、!
ありがとうございます!
まだ実行はできなかったけどちょっと間違い全部さがしてみます
>>50 了解です!あざっす!
ダウンロードします
>>51 学校のプリント見ながらやってます
プリントだけ渡してあとは勝手にやって、みたいな雰囲気なので悩んでました
CPAD勉強用にはいいよーって上の人に聞いたので聞いたままこれでやってたのですが
エクリプス使ってみます
JavaMailを使って、Port:587(TLS)で動いてる
smtpサーバにサクっとアクセスしてメール送る方法ってありますか?
SpringベースでjavaMail使うメール送信処理作ってるんですが
TLSが有効にならなくて、調べてみたらjssecacertsをjreのlibに入れて
keytoolで登録処理しなきゃならんとかって情報は見つけたんですが
もっと手軽にTLS送信できないかと思いまして。。。
>>54 Properties p=new Properties();
p.put("mail.smtp.starttls.enable", "true");
Session s=Session.getDefaultInstance(p);
MimeMessage m=new MimeMessage(s);
Transport.send(m);
だろ。JavaMailの仕様には無いので無保証で。
JAVAを使ってsmtpサーバにサクっとアクセスしてメール送る方法ってありますか?
SpringベースでjavaMail使うメール送信処理作ってるんですがうまくいかなくて、
調べてみたらコンパイルとかクラスパスとかjreのインストゥールって情報は見つけたんですが
もっと手軽にmale送信できないかと思いまして。。。
>>42 >VolatileImageで用意しておかないと
いらないよ。BufferdImageがやってくれる。
59 :
>>42:2014/05/22(木) 10:15:47.11 ID:BRebVpjz
>>58 レスdです。最適化してくれるのですね。それでいってみます。
画面にテキストボックスを貼り付けて、キーボードで入力した文字を
表示するようにしたのですが、keyPressedなどのイベントが発生しません。
(KeyListenerは実装済み)
・画面内をいろいろクリック :イベントは発生しない
・「Alt」+「Tab」で他の画面に切り替える:イベントが発生する
JDKは1.5を使っています。こんな事ってあるのでしょうか?
>>59 >最適化してくれるのですね
ちがう。VolatileImageはBufferdImageがVRAM使ったりしなかった時代の過去のライブラリでImageとVolatileImageは古いAPIが残ってるだけ。
VolatileImageの機能はすでにBufferdImageに統合されてるからImageとVolatileImageを使わずにBufferdImageだけ使えばいい。
62 :
>>42:2014/05/24(土) 12:48:43.56 ID:dJ0iejio
>>61 返事が遅くなりましたすいません。
丁寧に解説してくださってありがとうございます。
Javaは新旧の情報を複雑に感じてたので助かります。
63 :
デフォルトの名無しさん:2014/05/24(土) 18:09:06.80 ID:QUPFogSN
↓の問題を自力で解けなく、解答もないので
誰か代わりに作ってくれませんか?
OSはUbuntuを使用しており、NetBeans IDE7.4を使用しております
よろしくお願いします
64 :
デフォルトの名無しさん:2014/05/24(土) 18:11:00.42 ID:QUPFogSN
以下に示すShapeクラスを継承させて変更しなさい(Shapeクラスがスーパークラス、Sphereクラスがサブクラスになる)。
Shapeクラスは中心座標(x, y, z)をインスタンス変数として持つ。インスタンス変数は全てdouble型で、アクセス修飾子はprivateとする。
Shapeクラスは2つのpublicなコンストラクタを持つ。一つ目のコンストラクタは引数を受け取らず、中心座標を(0.0, 0.0, 0.0)に設定する。
二つ目のコンストラクタは中心座標の各変数を引数として受け取る。なお、一つ目のコンストラクタにはthisキーワードを使用して二つ目のコンストラクタを呼び出すようにしなさい。
Shapeクラスは三つの戻り値の無いpublicなメソッドを持つ。一つ目はshow()メソッドで、中心座標値を次のように表示する。
System.out.println("中心座標: (" + x + "," + y + "," + z + ")”);
二つ目はmove()メソッドで、三つのdouble型のパラメータを受け取り、それぞれの値を球体の中心の座標(x, y, z)それぞれに加算する。3つ目はscale()メソッドで、
1つのdouble型のパラメータを受け取り、(ここでは便宜上)中心座標の各変数にそのパラメータを乗じる。
ShapeクラスをSphereクラスに継承させる。その際、Sphereクラスを以下のように変更する。
これまでSphereクラスに存在した中心座標を示す3つの変数とmove()メソッドはスーパークラスのものを利用するので削除する。
show()メソッドについては、スーパークラスのshow()メソッドを呼び出した後、半径のみを表示(System.out.println("半径:" + radius))するようにオーバーライドさせる。
scale()メソッドについては、(オーバーライドする形で)そのまま利用する。
半径を示す変数をprivateに、各メソッド、コンストラクタをpublicにする。
ShapeクラスとSphereクラスのオブジェクトを作成し、使用するmain()メソッドを有するShapeExクラスを作成しなさい。ただし、Shapeクラスの配列を宣言し、
その配列要素にShapeクラスおよびSphereクラスのオブジェクトを与えるようにすること。また各メソッドを利用するようにしなさい
66 :
デフォルトの名無しさん:2014/05/24(土) 18:53:53.75 ID:QUPFogSN
67 :
デフォルトの名無しさん:2014/05/24(土) 18:56:03.49 ID:3XLilUh7
質問・相談ってのは最終的には自分でやることが前提なのだが
68 :
デフォルトの名無しさん:2014/05/24(土) 18:56:10.62 ID:QUPFogSN
70 :
デフォルトの名無しさん:2014/05/24(土) 19:07:11.42 ID:QUPFogSN
>>69 ありがとうございます!
しかし半径が0.0とは何かおかしくないでしょうか
問題文に半径の指定はないけど
気になるならご自身で書き換えてはいかがか
73 :
デフォルトの名無しさん:2014/05/24(土) 19:15:12.37 ID:QUPFogSN
どんどん劣化していくのはなぜだ
そのコードは問題文を1ミリも反映してないけど
76 :
デフォルトの名無しさん:2014/05/24(土) 19:30:58.31 ID:QUPFogSN
>>76 先生はお前のクラスにこの宿題を出す前に、確実に継承と他態性について
説明し終わった上で、この宿題出したと思うぞ
78 :
デフォルトの名無しさん:2014/05/24(土) 19:44:23.02 ID:QUPFogSN
>>77 そういった説明をされずぽんと出された課題をこなしていくスタンスなんです・・・
どうすればいいってこった・・
>>69を見て理解できないならお前には才能がない 諦めろ
他の授業で単位をとれ
80 :
デフォルトの名無しさん:2014/05/24(土) 20:06:55.06 ID:QUPFogSN
>>78 いや絶対説明するだろ。授業でそれをせずに講師は何を授業するんだ。
普通、講師は解説して生徒に例題解かせて、質問受け付けてから満を持して授業の復習として宿題だすだろ。
オーバーライドの意味や、サブクラスから継承元のスーパークラスのメンバの呼び出し方や、
スーパークラス型の変数でサブクラスのインスタンスを受けてメソッドを実行しても、
ちゃんとサブクラスでオーバーライドした内容でメソッドが動く事とか、お前は忘れてるだけで、69のコード見て思い出すだろ?
ついでにその変数をサブクラス型にダウンキャストしたら例えばサブクラスで新規に追加したメンバも使えるとか
絶対教えてないとおかしい
大学ん時は予習前提だから知らん奴は自己責任だったけどな
予習時に分からなければそん時に聞きにこいと
だからなんでCPADなんだよ
実務で使うIDE教えろボケって言っとけ
84 :
デフォルトの名無しさん:2014/05/24(土) 20:27:13.81 ID:QUPFogSN
>>81 そういったタイプの講義ではないのです
授業なんかしないで課題を出すのです
85 :
デフォルトの名無しさん:2014/05/24(土) 20:29:04.55 ID:QUPFogSN
だめだできない
助けてください
86 :
デフォルトの名無しさん:2014/05/24(土) 21:06:50.25 ID:QUPFogSN
半径どうしたらでるんでしょうか
87 :
デフォルトの名無しさん:2014/05/24(土) 22:02:25.96 ID:LelSAbE4
排他制御についての質問です。
一つのスレッドで予約と案内の機能を作ります。
予約だけを先に処理しておき、予約が終わったら、waitします。
その後、案内の処理に移る必要があります。
synchronizedブロックを使わなければいけないのですが、
空のダミークラスを用意して、それを使えとのこと・・
これを理解するには、良いサイトはないですか?
>>87 良くわからないけど
java.util.concurrent.ArrayBlockingQueueのソースでも見たら?
89 :
デフォルトの名無しさん:2014/05/24(土) 22:38:45.40 ID:QUPFogSN
うわぁぁ
やっぱりできないよー
90 :
デフォルトの名無しさん:2014/05/24(土) 23:59:46.67 ID:3XLilUh7
>>87 > 一つのスレッドで予約と案内の機能を作ります。
スレッドが1つしかないなら排他処理なんか必要ない。
排他制御について学べる良いサイトは知らんなあ
92 :
デフォルトの名無しさん:2014/05/25(日) 00:48:52.84 ID:UIOwZZll
>>69がバカすぎて笑える
>>65の問題は既に作られたSphereクラスをShapeクラスを新しく作ってそれを継承する形に作り直せって問題だぞ
第三者が
>>64に書かれた内容だけで、radiusに有効な値を与える定義や、
>>94の解釈を導き出す事など不可能。
>>95 > これまでSphereクラスに存在した中心座標を示す3つの変数とmove()メソッドはスーパークラスのものを利用するので削除する。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
いや、お前は授業をちゃんと聞いてまず継承を理解しろ。
shapeを継承したsphereクラスのメンバを、今からオーバーライドしたり新規にメンバを追加していくってだけの話だろ。
問題の「これまで」って言葉の使い方に確かに多少の違和感はあるが、おかしな解釈してないか?
shapeと無関係に元々sphereが存在してたから「これまで」じゃなくて、
「shapeを継承してオーバーライドする前まで」という意味でしか捉えようが無いぞ。
>show()メソッドについては、スーパークラスのshow()メソッドを呼び出した後、半径のみを表示(System.out.println("半径:" + radius))するようにオーバーライドさせる。
>scale()メソッドについては、(オーバーライドする形で)そのまま利用する。
>半径を示す変数をprivateに、各メソッド、コンストラクタをpublicにする。
ここら辺を読めば確信持つだろ普通
Shapeクラスの定義についてあれほど詳しく書いてあったのにSphereクラスの定義があっさりしすぎだろ
気づけよここで
??
>>96は、俺が
>>95で書いた事に対しての反論だと思ったんだが違うのか?
主語も術語も省略して、単語とコピペだけで書いて真意を汲み取れとか、無理な話だぞ
せっかく解答してくれた
>>69のコードに納得したのかどうかすら分からないぞ
原点移動はmoveってかsetCenterPointだのsetOriginだのの方がいいな
Shape自身の振る舞いと違うだろと大学の教授さまによろしく伝えてくれ
そもそもがさぁ・・・ここで宿題解いてくれって奴は何でプログラムの授業受けてんだ?
その宿題だって一過性の物じゃなくて今後もどんどん出されていくわけだろ
問題文の何がわからないかを単語でも何でも一つ一つ全部洗い出せよ
先ずは友達を作れとww
>>92 あのさ、授業のレクチャー無しでいきなり課題っていうのはさ、
わかっている奴にしか単位をやらないってことなんだぞ?
一回も出席しなくても試験だけパスしたら単位くれる授業ってことだぞ?
お前がやっていることはタダ乗りだ
お前みたいな奴には留年の呪いをかけてやる
ドカタが説教w
>>96 「これまで」から読み取ると今までの授業でSphereクラスを勉強してきたかこの宿題の前の部分で記述があるはず
その前提となる元のSphereクラスが
>>64の段階で提示されていない以上は
>>69は普通の回答だろ
106 :
デフォルトの名無しさん:2014/05/28(水) 20:13:03.95 ID:v2SRhXXs
Compact ProfileとNative Packagingについて質問です。
・開発環境:JDK8/Netbeans/OSX
・Compact Profile:Compact1
・JavaFX使用
・Native Packaging:有効
この条件でappファイルを作ったのですが、
できあがったファイルは160MB以上あります。
どう考えてもCompact Profileが反映されていないようですが、
サイズを抑えるにはどうすればいいでしょうか?
スレチ
Java SE 7 Update 60 キター
> 新しい機能のみでセキュリティに関する修正を含まないLimited Update
> Limited Updateには、20の倍数となる番号が割り当てられることになっています
いらんアップデートや
一通りバグフィクスの一覧を眺めてみたが酷いバグが大量にあったんだな、本当酷い
java7と8のJREはどう違いますか?
JRE7を入れていてJDKの8をインストールしたらJREも8になりますか?
環境:windows 7 + JDK1.8.0_05 + Eclipse Juno Service Release 2 + Maven 3.0.4 + maven-jar-plugin 2.3.2
この環境でHelloWorldとそのテストのソースを用意し、pomに以下を足してpackageをしました([パッケージ名]は私のドメイン名が入るので置き換えました)。プロジェクト名はhellomavenです。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<archive>
<manifest>
<mainClass[パッケージ名].HelloWorld</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
そしてコマンドプロンプトでtargetディレクトリに移動してから
java -jar hellomaven-0.0.1-SNAPSHOT.jar
を実行したのですが、
hellomaven-0.0.1-SNAPSHOT.jarにメイン・マニフェスト属性がありません
と言われて実行できません。jarを解凍してMANIFEST.MFを見てみたら、Manifest-Version、Archiver-Version、Created-By、Built-By、Build-Jdkが書かれているだけで、肝心のMain-Classが記載されていませんでした。なぜこうなってしまうのでしょうか?
>>114 いろいろ環境違うけど、pluginだけは同じでMain-Class追記されたなぁ。
Eclipseなしとか、jar cvfで直接とか、切り分けてみたら?
Group Id: org.apache.maven.plugins
Artifact Id: maven-jar-plugin
Version: 2.3.2
117 :
デフォルトの名無しさん:2014/05/30(金) 08:25:49.67 ID:prVlFPNP
質問です。
下記のプログラムがエラーとなります。
原因わかりますでしょうか?
interface I1 { int i1(); }
interface I2 { int i2(); }
class C implements I1, I2 {
@Override public int i1() { return 100; }
@Override public int i2() { return 200; }
}
public class Main {
public static void main(String[] args) {
C c = new C();
set(c); // 引数の場合はI1とI2を実装したC型のオブジェクトを受け付ける。
get();
}
private static <T extends I1 & I2> void set(T t) {
System.err.println(t.i1());
System.err.println(t.i2());
}
private static <T extends I1 & I2> T get() {
C c = new C();
return c; //=> エラー!戻り値の場合は受け付けない。
}
}
return c; //=> エラー!戻り値の場合は受け付けない。
↓
return (T)c
キャストすれば一応動く。安全な使い方なのかは知らないけどさ。
>>117 private static <T extends I1 & I2> T get() のシグニチャ的には
例えば class D implements I1,I2 があったとすると
D d = Main.get(); がコンパイルエラーなしに通らないといかんのよ。
>>119 なるほど、それはわかりやすい!
解説ありがとうございます。
javaでsocketのinputstreamのヘッダを除去するにはどうやるのがベストでしょうか?
inputstreamのremoveHeader呼べばいいよ
>javaでsocketのinputstreamのヘッダを除去
日本語でおk
inputstreamを受けっとたバッファからヘッダを取り除くです
>受けっとたバッファから
日本語でおk
なんで母国語の掲示板で質問しないの?
通信してる先や受信データが何か判らんから、何のヘッダなのかも判らんが、
InputStreamが取れてるんだから、何らかのParserにそれを渡して取り除けばいいんでねーのん。
例えばhtmlを受信してるのなら、html parser を噛ませれば楽に扱えるよね。
もし自前のプロトコルで送受信してるのなら、受信したバイトデータをテキストに変換して自前で解析してみるとかさ。
という話ではなくて?
>>127 そういう話です
removeするAPIあるかなぁとかみんなどうやってんだろうと持ったけど適当にパースしてる感じなんですね
アフォなんだろう
>>121 もうお前には何も答えてやらんことにしたわ
今、String型の変数numberViewとbuttonNumberがあるとして
numberViewに"-0"という文字列が入っており、buttonNumberには"1"が入っているとします。
ここで
numberView = new StringBuffer(numberView).replace(1, 1, buttonNumber).toString();
という命令を実行したら
numberViewの中身は"-1"になって欲しいのですが、実際には"-10"になってしまいます。
StringBufferのreplaceメソッドは対象の文字列を、引数で指定された範囲を、引数で指定した文字列に置き換えるものだと思うので
上記の例だと「"-0"の2文字目から2文字目の範囲を"1"に置き換える」ので結果は"-1"になると思うのですが、違うのでしょうか?
>>133 ねぇ、何で仕様も確認せずに2ちゃんで
駄レスを垂れ流してるの?荒らしなの?
>>133 違う
JavaをはじめとしたC系言語のインデックスってのは
要素と要素の境目に振られた番号だとイメージすると理解しやすい。
たとえば"-0"のインデックスは [0]-[1]0[2] と考える。
replace(1, 1, "1")は[1]から[1]までの間にある文字を"1"で置き換える、
つまりこの場合、[1]から[1]の間にはもちろん文字がないので、
[1]の位置に"1"を挿入するという意味になるわけだ。
>>135 replace(1, 2, "1")で上手く行きました。ありがとうございました。
InputStream#skip()は戻り値もちゃんと確認しような。
異常系でも末端到達でもないのに、指定量スキップしてくれないことが
まれによくある。
138 :
デフォルトの名無しさん:2014/05/31(土) 23:11:35.54 ID:RCSrpgq6
>>108 ちょっと説明が足りませんでした。
Compact Profile(使う機能を絞ってJVMを軽量化するJava8の機能)と
Native Packaging(アプリ自体にJVMを含めるJava7の機能)を使って
部分的なJVMが含まれる実行ファイルを作ろうとしたのですが、
プログラム本体のclassファイルが数キロバイトにもかかわらず、
出力される実行ファイルが160MBもあり、あきらかにCompact Profileが
効いてないのでどうしたものかと途方にくれていた次第でした。
140 :
114:2014/05/31(土) 23:26:22.83 ID:pA2WvDLJ
>>114ですが、解決しました。ありがとうございました。
pomで、以下のように書かなくてはならないのを
<project 〜>
<build>
内容
</build>
</project>
何故か以下のように書いていたのが原因でした
<project 〜>
内容
</project>
<build>
内容
</build>
>>138 推測するに
>>106は何か勘違いしてるからちょっと質問に答えてくれ。ややこしいからよく聞けよ。
javaはcross compile出来るようになっててbootstrapっていう仕組みでスタブ指定してSEの開発環境でMEのターゲット環境用のコンパイルが出来る。
けどjava ME/CDCがSEに統合されたからCDCのライブラリがSEのライブラリに含まれるようになってcompileにスタブが必要なくなったから利用するAPIセットを指定するだけになったわけ、
これがjavacのprofileオプション。ここまでは開発環境の話な。実行環境でcompact profileそのものを使うにはSE Enbeddedのライセンス契約して独自に構築する必要がある。
それかARM版java SEを使うしかないがこっちはfullset APIだからcompactも動くという事だけど第一にここらへんは理解してる?
native packagerは単にjavafxpackagerとantタスクを使ってjarオプション一発でjavafx起動する魔法のlauncherを持ったjarを作る機能+ネイティブラッパーなんだけど
>>106読むとこれは判ってるよな?
第二にcompact profileとpackagerは別モンだって理解してる?
第三にpackager使ったら依存するAPIだけpackagingすると思ってない?そんな事しないぞ。jigsawスキップしたからまだJREのモジュール化はできない。
後一つある。実行ファイルが150MBじゃなくて160MBなんだよな?それ多分JDKのpublic JREをpackagingしてるからIDEの設定がおかしい。
JDKのpublic JREの再配布はバイナリライセンス違反。再配布は単独のJREしか許されてない。設定わからんならIDEスレ行ってみ。
Scene Builderは普通のJREをpackagingしてるから少なくともjavafxpackager自体はpackaging用JRE指定できると思う。
バイナリコードライセンス契約書って未だによく判らん
文字列をソートする方法について質問させてください
たとえば英語、日本語、フランス語、スペイン語、韓国語などをソートする仕組みjavaには標準で備わっているのでしょうか?
>>143 例えばリストに格納した文字列をsortで単純にソートする場合はUnicode順でソートされます。
分かりやすく言えば、半角記号&数字・大文字英字・小文字英字・日本語のような順でソートされます。
>>144 ありがとうございます晩に読んでみます
>>145 日本でいう50音順
英語ならラテンアルファベット順 韓国語(ハングル)はどうなんだろう
その国ならではのソートにあわせてくれるのか気になったのです
Unicode順なら日本語、ラテンアルファベットは大丈夫ですね ありがとうございました
ハングルは難しいなぁ
javaって
int i;
とかってiは0で初期化されてましたっけ?
それとも
int i=0;
とする必要ありましたけk?
場所による。
インスタンス変数とかクラス変数は明示的に初期化しなければ
暗黙のうちに0とかnullとかfalseに初期化される。
ローカル変数は初期化せずに使おうとすると怒られる。
ややこしいな
馬鹿にはjava
つまりjavaに詳しいらしいお前は物凄く馬鹿であると
ただの自己紹介だろ
プログラム終わってから変数初期値を確定させれば答えも瞬時に確定するんだろ?
関数プログラミングってそんなんなんだろ?
そう思っていた時期が私にもありました。
>インスタンス変数とかクラス変数
混乱するので、ちゃんとした呼び方使おう。
>>155 混乱しないように、ちゃんと勉強した方がいいんじゃないか。
>>155 ???
インスタンス変数とクラス変数という言葉で混乱なく理解している俺は何???
俺も理解できてる。
たぶん
>>155だけが混乱してると思う。
言語仕様8.3.1.1あたりにも、正式な用語ではないけれど
クラス変数インスタンス変数と呼ばれることがある
と書いてあるからいいんじゃね?
正式なのはstatic fieldとnon-static field
>>157 お前が理解したつもりになっても意味がないんだよ
他人と会話する際に用いる用語として適切かの観点で語れよ低脳
>>147 どんな型の変数だろうが、フィールドは初期化しなくても暗黙の初期値で初期化される。ローカル変数は初期化せずに、その変数を使うコードを書いたらコンパイルエラーになる
>>149が何で暗黙の初期化について、わざわざインスタンス変数とそれ以外のケースに分けて考えてるのか意味不明。
ついでにフィールドはメンバ変数とも呼ばれるが、あるフィールド(もしくはメンバ変数)を「クラス変数」と呼んでいいのは、そいつがstaticで宣言されてる時だけだ。
public class hoge {
static Object objField;
public static void main(String[] args) {
Object objLocal;
System.out.println(objField); ←こいつはnullで初期化されてるからOK
System.out.println(objLocal); ←こいつは初期化されてないからコンパイルエラー
}
}
>>160 お前との会話は成り立たないということはわかった。それで十分だ。
>>160 例えば何だったら理解できるのか書こうぜ。
A「プログラムの動きがおかしい!」
B「俺の開発環境ではうごいたぞ!」
A「お前の環境はどうでもいいから、
まず仕様書見てつくったんだろうな!」
B「まず正しい仕様が何なのかしめせ!」
例えると こういう思考ですね
馬鹿にはJAVA()
自己紹介()
いやーJAVAドカタってほんとに馬鹿が多いですね
馬鹿には無理
インスタンス変数ってまぁフィールドで、クラス変数はstaticだよな
フィールドっていえばいいの?
メンバっていえばいいの?
この変は特に使い分けないといけない言葉でないと思うが
トランザクションとかだろ。その語が何を指してるのか理解してないと混乱するの
使い分けが必用なのは「概要設計」「詳細設計」だな。
ユーザーやベンダーによって定義が全く異なるのに
誰も確認しようとしない魔法の言葉
>>169 「メンバ」だと、メソッドも含んでしまうだろが。
メンバというとパッケージに対するクラスもメンバだぞ
174 :
デフォルトの名無しさん:2014/06/06(金) 07:10:08.12 ID:wWN7yBYl
>>174 俺も同じこと思ったけど
無駄だろうから言うのやめてた
こう単発IDばかりだとNGのしようがないな
Javaのフィールドに相当するものを、PHPやC#なんかではプロパティって呼ぶが、
逆にJavaでプロパティというと、別物を指す。
ちょっとしたことでも、きちんとした呼び方で言うことは重要だ。
職業としてやっているならなおのこと。
>>155みたいなやつを颯爽と真顔でスルーできないと掲示板を使うのは難しい。
颯爽登場ネコサンダー
アニオタきもっ
どれがアニメネタなのかすら、わからないオレは何も感じなかった。
>>180は同族嫌悪なのかなー。
class Java11 {
public static void main(String[] argn) {
int x=9;
System.out.println( "商=" +x/2+",余り="+x%2);
}
}
このときの
x/2+"
の「"」の役割を教えてください。
それ抜きだとエラーなるんですよねえ
その式は下記のように分解されます " は文字列リテラルを表現するときに使います
"商=" + x / 2 + ",余り=" + x % 2
プロパティはメソッドの場合もあり、速度が遅いこともある
メンバ変数は、C++っぽいし、メンバという意味がわかりにくい
インスタンス変数・クラス変数は、
インスタンス・クラスを代入した変数と誤解されるかも
まぎれが無いのは、フィールドとメソッド。
staticなフィールド・メソッド
>プロパティはメソッドの場合もあり
日本語でおk
>メンバという意味がわかりにくい
言語仕様書でも使われてる言葉なのに?
>インスタンス・クラスを代入した変数と誤解されるかも
言語仕様書に出てくる意味と違う意味でとらえる方が悪いんじゃね?
>まぎれが無いのは、フィールドとメソッド
これだけは同意してやろう
186 :
デフォルトの名無しさん:2014/06/07(土) 04:10:28.45 ID:az7RJk9U
>>182 文字列はダブルクォーテーションで囲むのは知ってる?
>>183さんの言うとおりなんだけど、
"商="は文字列だけど、x/2は変数使っていて、計算もしてるよね。
"商=x/2"とすると、変数と認識されずに、計算もされず、文字列として扱う。
"文字列" + "文字列"とすると、文字列を連結させることができる。
"文字列" + 変数や値 + "文字列" とすると、
最終的に全部ひとつの文字列として扱えるわけ。
>>177 >Javaのフィールドに相当するものを、PHPやC#なんかではプロパティって呼ぶ
どうしてこう、息を吸って吐くようにウソをつくかなあ
javaドカタの分際で他の言語に手を広げたのがまちがい
下らない質問だけど、
finalだけどstaticでないフィールドを定義する何か特別な意味ってあるの?
>>189 コンストラクタで値を初期化する場合に使う
インスタンスごとに固有のID値を割り振るとかあるだろ
その変数が参照の場合、参照してるインスタンスが変わると困る場合に使う。
public class Hoge {
public final Point location = new Point(); // setter, getterを省略する形としても使える。
}
void main() {
Hoge hoge = new Hoge();
hoge.location = new Point(100, 100); // エラー
hoge.location.setLocation(100, 100); // 利用する側でnew Point()されるコストも同時に抑える事も可能な場合がある
hoge.location.setLocation(new Point(100, 100)); // これやられちゃ意味無いけどね
}
Javaで特定のプロセスが使ってるメモリの内容を参照する方法を解説してるような記事とかライブラリとかあったら教えて欲しいです。
とあるアプリの設定ファイルが暗号化されていて、メモリロード時に復号化されるようなのでそれを読み出したいです。
対象はWindowsXP〜8です。
たかがプログラミングのママゴトが
法に反するということは無いだろう
なんちゃってseが沸いてるな
>>199 関数? 具体的にはどれのことを指しているのかな?
それを言ったら
>>197の書き込みも他人のコンピュータ経由で許可なく書き込んでて違法の状況の可能性とか。
Swing でScrollPaneの中にJPanelを入れてBoxLayoutを適用しています。
そのJPnelの中に外部からJPanelをaddしているのですが、どうもaddしてから表示されるまでに時間がかかるようです。スクロールすれば一瞬で出てくるのですが、この場合どうすればaddした直後に表示されるようになるのでしょうか
スレチ
swingでコンポーネントをいじった時は
revalidateとかで良いんじゃなかったかな?
>>204 即時反映されるようになりました。ありがとうございます!
206 :
デフォルトの名無しさん:2014/06/08(日) 11:46:30.16 ID:BhquMHmB
>>202 追加する順番が正しかったら、
普通に表示される
>>200 変数のことです間違えてしまいました
返信が遅くなって申し訳ありません
基本的にaで始まる巻数をループするたびに代入したいです
今の状態ではループ一周目に一度代入されたまま変更されません
>>207 例えば fire について説明すると、
ループの外で
int sfire = rand.nextInt(1000);
int fire = 500;
fire = fire + sfire;
ループの中で
int afire = fire;
とやってるけど、
ループの外を
int fire = 500;
ループの中を
int afire = fire + rand.nextInt(1000);
とやるべきじゃないの?
他の変数も同様で。
適切な名前をつけるところからだな。
staticなメンバクラスは何の意味があるのでしょうか
それを内方してるクラスのインスタンス変数、インスタンスメソッドが使えないのであるなら
あらたにxxx.javaなどを作成しクラスを書くのとどう違うのでしょう?
わざわざ入れ子にする意味とは?
>>210 privateなstatic inner classはどうよ?
>>211 なるほど
内包してるクラスからしか呼び出せないクラスというわけですね
ということは内包してるクラスに強く依存しているようなものを、privateでstaticなメンバクラスで宣言すればよいと。
わかりやすいアドバイスありがとうございました
当方経験が浅いためよい具体例は思い浮かびませんが、これからも精進します
ん?じゃあパブリックなstaticなネストされたクラスって意味ないん?
そのクラスでしか使われないパブリックなAPIの一部として構造体定義が必要だった時に使う
>>214 スレの流れ的に
そのクラスでしか使われないならprivateでいいと思うんだけど違うのですかい?
そのためのアクセス修飾子なんじゃ……
深すぎてわからんww
上にも構造体の話がでてるが、
winapiの関数に渡す構造体をイメージすればいいんだよ。
MyClass.myFunc()でしか利用されない引数用のクラスの場合publicにする必要があるでしょ。
ちなみにそのクラスを継承・包含して拡張した場合、
その引数用のクラスを拡張してもいいんだよ。
b == false と !b ってclassファイル見ると同じになるんだな
同じにならないケースがあるとおもったのだろうか
前者は比較演算子の演算結果が真かを確かめる式で
後者はブーリアン値を反転させてそれが真かを確かめる式じゃん
内部的には違うことやってそうって印象じゃん
Javaの++って、+=1と同じだからatomicじゃないんだっけ?
別に+=1がatomicだったらいけない理由はないでしょ
atomicじゃない実装になってるだけ
バイトコード云々は無しな、そんなのVMから見ればソースコードに過ぎないんだから
longな64bit値を複数スレッドから++すると、
atomic云々以前に上位ビットと下位ビットが繋がってるかどうかすらも怪しい
atomicってなーに?
227 :
デフォルトの名無しさん:2014/06/13(金) 18:10:09.18 ID:oZ4lKlO0
ファイルパス渡したら、
バイト型の配列にバイナリ格納して返してくれるようなライブラリないですか?
230 :
デフォルトの名無しさん:2014/06/13(金) 18:24:09.77 ID:oZ4lKlO0
>>229 ありがとうございます。
JDKに元々あったんですね・・
次から確認するようにします。
Java7からの新実装だがな
っていうかFileInputStreamで自分で書いても大した量にならんだろ
public static byte[] readAllBytes(String name) throws IOException
{
File file = new File(name);
long size = file.length();
if (size > (long)Integer.MAX_VALUE) throw new Exception("無理");
byte[] buf = new byte[(int)size];
FileInputStream in = new FileInputStream(file);
in.read(buf);
in.close();
return buf;
}
少なくとも3箇所の誤りがある
出来損ないの車輪を各自が作ることのリスク
に対する警鐘のつもりなのだろう
じゃあこんぐらいでどうですか
public static byte[] readAllBytes(String filename) throws IOException {
ByteArrayOutputStream ret = new ByteArrayOutputStream();
FileInputStream fis = new FileInputStream(filename);
try {
byte[] readBuf = new byte[1024 * 1024];
int readSize;
while ( (readSize = fis.read(readBuf)) > 0 )
ret.write(readBuf, 0, readSize);
}
finally {
try {
fis.close();
}
catch ( Exception ex ) {
}
}
return ret.toByteArray();
}
>>235 どうせならtry with resource使おうぜ
メモリマップドファイルはなにゆえにこんな不人気なのん。
そいやMappedByteBufferって明示的にクローズできるようになったん?
>>235 > return ret.toByteArray();
これってコスト高いんじゃないの?
IOに比べれば無視できる
アプリにはもっと無駄な処理はいくらでもある
>>234 Wheel of bastards...w
243 :
お勉強中・・・:2014/06/14(土) 02:40:19.59 ID:8AVRkcUh
引数の先頭に数字を渡すと”*”を"System.out.println"で半分のピラミッドが出力されるプログラム
なのですが、わかる人もいるかと思いますが実行結果
*
**
***
****
*****
となるようなプログラムを作れだそうです
単純に引数を複数いれれば作れるのですが、今回は引数[0]にいれる数字のみです
このとき、引数部分にはどういう処理をすればいいんでしょうか?
お勉強開始2週間がたとうとしています。。。
まずどこまで出来ているのか
2重ループするだけだろ
>>243 うーん、まさかこういうレベルの人もいるとは、まあ始めたばかりということなのかもしれないが、チト衝撃……
>単純に引数を複数いれれば作れる
まさか、pyramid(int arg1, int arg2, int arg3, int arg4, int arg5)のつもり?
これはforループ使えってことだろうね。知ってる、forループ?
>>244 ああスマン、*を複数並べる処理にループ使うってことね。失礼した。
Perlだと
"*" x i
で行けちゃったりするので、アッサリ見逃してた (^^;
>>243 2週間か、カンバってね
できるようになると嬉しいよね
>>243 >プログラムを作れだそうです
オマエの日記のチラウラは要らんからもう二度と来るな。
ゴミレスでスレを汚すな。
まあ、”*”を n文字出力する関数を補助関数として作るのも勉強だね。 関数pyramid自体は一重ループで済むし。
でも、問題の意図は出力は”*”一文字づつにして、2重ループをさせることかな。
なんでこんなレベルの低い釣りに引っかかる奴がたくさんいるんだろうか
253 :
デフォルトの名無しさん:2014/06/14(土) 05:12:08.69 ID:zoPyTV++
外側のforループで変化させる変数を内側のforループの範囲の指定に使うあたり
最初にプログラムを勉強しはじめた頃に感心した
>>252 そりゃ『自分でも答えられる質問がやっと来た!』からだよ
え?これ関数の再帰呼び出しの宿題だろ?
public class Main {
public static void pyramid(int count) {
if (count > 1) {
pyramid(count - 1);
}
final char[] text = new char[count];
java.util.Arrays.fill(text, '*');
System.out.println(text);
}
public static void main(String[] args) {
pyramid(5);
}
}
でた再帰厨w
いや君らマジで大丈夫か?
> 今回は引数[0]にいれる数字のみです
これがある限り、どう考えても再帰だろ。
再帰はループで100%書き換えられるんだよw
再帰できるオレかっけぇ、じゃねーつうの。
意味不明
関数厨なら副作用に頼るなよ格好悪い
261 :
260:2014/06/14(土) 10:27:59.29 ID:gViTkWWV
いやー楽しいな。学生気分を味わえたわ。
ところでさ、
>>253の意味が判らんのだが普通はこう書くだろ。
二重のforループはどこから沸いてきた話なんだ。
public class Main {
public static void pyramid(int count) {
final char[] text = new char[count];
java.util.Arrays.fill(text, '*');
System.out.println(text);
}
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
pyramid(i);
}
}
}
俺はパスしとくわwww
>>264 自分の書いたコードをよく見てモノ言えw
5じゃなくて、10000とかでどうなるか確かめてみろよ。
そいつはID出る前にJavaスレずっと荒らしてた基地外だろ
ドカタって煽ってる本人が一番の無能ドカタっていう間抜け
StringBuffur sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append("* ");
System.out.println(sb.toString());
}
これでok
>>263 入門書のfor文のところで出てくる練習問題だからじゃないの?
意味が分からなくて数分悩んだが一行目の253は263の間違いか
ネタに本物が釣れるってのは悲しい限りです
宿題スレは墜ちちまったのかよ
「 引数[0] 」とか言ってるから、
>>243 はたぶん
String argv[]のint化かなんかで困ってるんだろ。
やっつけ仕事ならInteger#parseInt()が手っ取り早い。
NumberFormatException もちゃんとキャッチするんだぜ?
>>274 何言ってるかわかんない
あ、おれが無知だからね
onKeyDownによってSoundPoolを呼び出したいが、
どうすりゃいいのでしょうか、、、
再帰って使わないなぁ
278 :
お勉強中・・・:2014/06/14(土) 22:19:05.56 ID:8AVRkcUh
すげえ教えてくれるありがとう
答えも大事だけど、考え方も知りたい
むしろ答えよりもヒントがほしくていつも書き込んでます
まだまだ不慣れなので考え方から学びたいと思ってます
不快でしたら別スレに誘導してください・・・。
レスくれたみんなありがとう!
( ;∀;)イイハナシダナー
で、どれが一番まっとうな答えなんだ?
Javaでは、再帰使っちゃダメ。
ただし、再帰(数学的帰納法)の考え方は、プログラミングの素養としては重要。
データベースから値を取って画面に出すだけの簡単なお仕事に再帰など無用
再帰が禁止されてるような仕事にプログラミングの素養なんていりません
Javaで再帰使うのなんでダメ?
>>284 必ずスタックオーバーフローで客の業務止めるアホがいて
対策(笑)で禁止される
286 :
デフォルトの名無しさん:2014/06/15(日) 00:20:51.91 ID:QD8jtgNH
OOPで再帰ってなくない?
288 :
デフォルトの名無しさん:2014/06/15(日) 00:57:05.39 ID:PQKQay8c
OOP のデザインパターンのうち
Composite パターンは本質的に再帰構造。
>>282 つーか処理中にDBが絡む場合再帰なんか使ってると遅すぎてやってられんよな
木構造アルゴリズムを取り扱う現代的な手法において記述に再帰を使うなとかありえないね、二色木とか、非再帰でどうする表現するつもりだ?
二色木やAVL木では、スタックオーバーフローは杞憂として考える必要はない
>>290 俺は再帰大好きだが
再帰を使わないと書けませんとか
言うんだったら君やばいぞ
>>290 >木構造アルゴリズムを取り扱う現代的な手法において
そんなものはCジジイが作る
ドカタはそれを使うだけ
例えばソートを呼び出すことはあってもソートアルゴリズムをドカタが実装することは無い
>>291 >再帰を使わないと書けませんとか言うんだったら君やばいぞ
再帰を使わない限り事実上実装できないものを
>>290 に列挙しておいた
>書けませんとか言うんだったら君やばいぞ
>再帰を使わない限り事実上実装できないものを
>>290 に列挙しておいた
つまり
>>293はやばいということですね
push/popをArrayListに機械的に置き換えるだけでループで実装できるよな
296 :
デフォルトの名無しさん:2014/06/15(日) 09:28:58.04 ID:QD8jtgNH
>>296 おまいなかなか古株やなw
Qzのコテは乗っ取られたままなのか、
本人は新しいコテをつけたのかどうなのか、
古いコテはもう捨てたのかまだ使ってるのかはっきりしろQz
つLinkedList
えっ290はQなの?
確か末尾再帰でスレ荒らしまくったひと?
javaドカタの分際でアルゴリズムとか生意気すぎw
LinkedList は双方向再帰 (ドヤ
馬鹿には無理
末尾再帰の最適化
つまりアナルにゴーゴー、グリングリン回しちゃうことだな
304 :
デフォルトの名無しさん:2014/06/15(日) 20:00:11.05 ID:QD8jtgNH
>>300 まあねえ、業務系のお仕事では、前のコードをコピペすることが奨励されてたりするし、
コピペしたくないなら仕事やめろと言われたりするし、ドカタという表現もマンざらでもないよねえ。
SIerは糞だよ。
>>295 それが平衡ニ分木の場合は、保存するコンテキストの選定も下から上ってくるリンク先の更新手段も難しいのでは?
ID:wjE+lkrGはチューリングマシンから勉強し直しだな
>>306 概念としてはプッシュダウンオートマトンで十分だと思うよ
WINDOWS7 エクリプスで開発してます
------------------------------------------
import java.util.List;
class A {}
class B extends A {}
class Main {
public void addData(List<? extends B> list){ //問題点
list.add(new B());
}
}
------------------------------------------
なぜだかエラーになります。
Bクラスとそのサブクラスを追加できるはずですが。
extendsの代わりにsuperだと成功します。
ピュアJavaで二分木とか作る価値なし!
>>308 > List<? extends B> list
このextendsはlistの中身をBとして取り出せることが保障されてることを示すものであり
listの実体がBおよびBの派生物を追加できることは保障されてない
class C extends B
class D extends B
とあったとき
addData(new ArrayList<C>());
addData(new ArrayList<D>());
の両方ができる
受け取った側はCのリストかDのリストかは分からないから新しくリストにオブジェクトを追加はできない
でもCもDもBの派生物だからリストの中身をBとして扱うことはできる
>>308 ワイルドカードのextends指定を使うとその?は読み取り用にしか使えなくなる
class C extends B { }があったとして
引数にList<C>が渡ってくるかもしれないだろ?
逆に
>addData2( List<? super B> list )
とした場合は
リストにBの派生物を追加できることだけが保障されてる
しかしリストにはBとは無関係のオブジェクトが入ってる可能性があるからBとしえ取り出すことは補償されてない
例えば
addData2(new ArrayList<Object>());
という感じになる
ObjectのリストだからBとは無関係のオブジェクトが入ってる可能性もある
>>310-312 素早いご返答有り難うございます。
不勉強で理解しにくい点もありますが、
要はextendsは取り出し専用って事ですね?
314 :
デフォルトの名無しさん:2014/06/15(日) 23:14:06.40 ID:mrP6o9Cn
Javaのジェネリクスは型消去だからコード構文上制限されるだけなんだからね!
実際はプリミティブ以外なら何でも追加できるし取り出せるよ!
>>308の場合はワイルドカードを使うんじゃなくてこうするのが正解
public <T extends B> void addData(List<T> list){
list.add(new B());
}
ワイルドカードって慣れててもクソ分かりにくい割に
それほど役に立つもんでもないから基本的に使わないくらいでもいいよ
>>314 確かにジェネリクスは制約が多そうです。
>>315 その方が使いやすそうですね。参考になりました。
317 :
315:2014/06/15(日) 23:25:47.62 ID:iFMf2v8c
訂正
>>315だと結局同じエラーで何の意味もないな
Class<T>を引数で受けてリフレクションでインスタンス作るしかないね
public void addData(List<B> list)
でいいじゃん
319 :
デフォルトの名無しさん:2014/06/16(月) 01:42:50.87 ID:0uiiuKvI
ずっと、思ってることなんですが、
インターフェースって自分で作ることあまりないような・・
イベントとかスレッドのインターフェースはなるほどと思いましたが、
実際の現場とかでは、どうですか?
>>319 アーキテクトやってたりすると作るよ。人にプログラムを書かせる仕事。
基本的に設計のためのものだから、コーディングしかしてなければ、自分で作る機会もあまりないだろう。
ミドルウェア開発担当だとありそうだな
323 :
お勉強中・・・:2014/06/16(月) 21:53:01.01 ID:fMIuCusr
また私ですよ・・・。
実行時、ランダムである文字列を出力するプログラムを模索中です。
例)グー チョキ パー をランダムで出力したい。
Randum?
わかると思いますがジャンケンプログラムです・・・。
残念ながら現存のコンピュータではランダムを再現はできないんだよ・・・
↑どうしようもないバカ
>模索中です。
ここはお前の日記じゃない
二度と来るなカス
釣りって言った人(
>>252)の気持ちが分かった!
「java Randum」でググる→「次の検索結果を表示しています: java Random」→トップページを読む。
2chの該当板の該当スレに来れる奴が、これができない筈が無い訳で、つまり釣りって事で。
ここでChoiceFormatの名前出てこないとか、なんなのおまいら
出んわそんなもん
331 :
デフォルトの名無しさん:2014/06/17(火) 21:00:09.71 ID:64qAhZME
>>323 if文とString型の変数とint型の変数とrandomメソッド
あとは、System.out.println。
これだけで出来る。
もう、ここで聞くようなレベルじゃない。
>>323 それ考えてできないんだったらプログラマ諦めた方がいい
自分で考えよう
333 :
デフォルトの名無しさん:2014/06/17(火) 21:17:27.96 ID:64qAhZME
>>331 訂正
String型の変数はいらなかった。
あと、int型の変数も使うパターンと使わないパターンで出来る。
最低限、if文とrandomメソッドとprintlnは必要だと思われる。
334 :
デフォルトの名無しさん:2014/06/17(火) 21:31:07.57 ID:QeMZT5mA
>>323 public class Janken {
public static void main(String[] args) {
Janken janken = new Janken();
for (int i = 0; i < 10; i++) {
System.out.println(janken.getHand());
}
}
Random random;
List<String> hands;
Janken() {
random = new Random();
hands = new ArrayList<String>();
hands.add("ぐー");
hands.add("ちょき");
hands.add("ぱー");
}
String getHand() {
return hands.get(random.nextInt(hands.size()));
}
}
javaドカタらしいコードですな
ほっとけよ、煽るだけなんだから
そうか?
ドカタにしてはまっとうな方じゃね
ドカタの特徴は
・staticと非staticの区別がついていない
・メソッド内でしか使わない変数もフィールドで定義
・コンストラクターで適切な「初期化」を行うという発想がない
・型や変数名がとにかく変
・メソッドが処理をまとめただけの物で
何をするメソッドなのかわかりづらい
・依存する筈の情報があちこちに散乱して変更時の書き換えが多い
ドカタらしいコードといえばこれ
void パラメータチェック() { モジュールのパラメータのチェックいろいろ; 入力ファイル読み込み(); }
void ファイル読み込み() { ファイルを読む; データ編集(); }
void データ編集() { データをいろいろいじくる; ファイル出力(); }
void ファイル出力() { ファイル出力; println("終了"); }
メソッドをラベルと勘違いしてるんだろうな
これはドカタと言うより
どちらかというと「ブビ厨」
>>340 処理自体がデータ構造という点で、画期的だな。
ラムダ式の時代にいつまでもifやfor書きたがるPGってどうなのよ?
Format f = new ChoiceFormat("0#ぐー|1#ちょき|2#ぱー");
Random r = new Random();
System.out.println( f.format( r.nextInt(3) ) );
345 :
デフォルトの名無しさん:2014/06/18(水) 03:36:45.41 ID:JQVNTRDp
>>340 全部voidのメソッドばっかりで再利用性がないって事でいいの?
多くのアプリケーションの場合、Math.random() メソッドを使うほうが簡単です。
Javaでラムダ式とか言ってる馬鹿は死ぬか別の言語やればいいのに
まさかあのラムダ式と呼ぶのも恥ずかしい欠陥品で満足しちゃってる人なのかな
プログラマになるためには攻撃手な姿勢を身につける必要がありますか?
>>340 それguiのイベントと連動してる筈だが、controllerでねーねん。
>>344 それラムダ関係ないじゃん。ラムダって言いたかっただけ?
入λ門
初心者入門の教科書だいたい理解できたけど次はどうしたら良いの?
いきなり大きいプログラムは作れないから
簡単なプログラム作って実力上げていきたいと思うんだけど
自分で答え出してないか?
簡単なプログラム作って実力上げていけよ
その簡単なプログラムの練習ができる参考書かWebサイトを探してるのです
いきなり大きなプログラム作ればいいと思うんだよなー
結局大きいのを小さくバラしていく作業だから。
その過程のトライアンドエラーや調査で伸びる。
作りたいものがあるとか仕事だとかじゃないと
実力あがらんと思うしあげる必要もない
そういうもんなんか
う〜ん
ちょっと考えてみるわ
>>347 Javaのlambdaはコンビネータを記述できますか?
javaでAppleのアプリって作れますか?
なんちゃってラムダ
なんちゃってタイプジェネリック
なんちゃって列挙
21世紀に入ってからのJAVAは本当に
C#の劣化版サルマネしかしてない
>>358 Appleによって動作環境が公式にサポートされているアプリという意味では作れない
普通のJavaアプリをMacの上で普通のJavaランタイムで動かすことは当然できる
でもJavaは想像以上に嫌われるから覚悟しとけよ
Javaはあくまでサーバーで使うもの
362 :
デフォルトの名無しさん:2014/06/18(水) 22:33:33.38 ID:IPfuBIEm
>>360 ジェネリクス、LINQ、参照渡し、.NETライブラリ
言語仕様が似ててもフレームワークの立ち位置が真逆だから競合するような存在ではないと思うけど
.NETはWindows以外に普及させる気ゼロだし、逆にJavaはWindowsのクライアントサイドで使ってもらう気なんてないだろうし
>>362 じゃあjavaやんないでC#やった方がいいの?java勉強しようと思ってたんだけど
366 :
デフォルトの名無しさん:2014/06/18(水) 22:41:29.26 ID:IPfuBIEm
>>365 どの分野のプログラムをやるかによる
クロスプラットフォームならJavaのほう進んでるがGUI作成はクソ
文法とかはC#のほうが奇麗でJavaが取り入れてる感じ
いいかげんに ref を取り入れてほしい‥
>>367 > 文法とかはC#のほうが奇麗
例えば?
うむ。
>>297 コテじゃなくて‥あー、もうどーでもいいし‥
>>367 きれいか?
他の言語から見たら、JavaとC#なんか目くそ鼻くそくらいの違いだろ。
プリミティブ型を扱えるコレクションを
>>367 > GUI作成はクソ
GUI作成って何?
awtやswingを使うってこと?
具体的に何がクソなの?
「速習Java Swingプログラミング」というタイトルの本(1999年発行)を人から貰った(読んでない)のですが、これは今読んでも使えますか?それとも時代の変化で全くの別物になってしまっているのでしょうか。
GUIの知識は全くありません。
JavaでGUIアプリを作るなんてこと自体、もう完全に終わった分野
381 :
デフォルトの名無しさん:2014/06/19(木) 08:19:02.02 ID:cJBIMdbh
>>376 Swingしか知らないけど、
文字が汚い。
見た目もネイティブと変わらないように勝手にやってくれたら最高。
382 :
デフォルトの名無しさん:2014/06/19(木) 08:32:02.17 ID:cJBIMdbh
>>379 別物にはなってないと思うけど、
推奨されない機能とかは、今のバージョンだとあるかもね。
Javaできるなら、APIや検索で普通に作れると思う。
JavaのGUIなら、Swingの後に出てるんだけど、
Java FXとかJava FX2っていうのがあるよ。
本当はWindowsならC#とかで作って、
Macは知らないけど、Macに合った言語で作ってというのが、
今の流れらしい。
本当のMVCとかObserverパターンとかイベントドリブンとか再帰的レイアウトとか、
いろいろと設計の勉強になるぞSWINGアプリ開発は
ここんとこスマホ案件だなんだで、Webアプリしか書けないプログラマが
新しいこと覚えられなくてイラついているのは察してやれ。
「2色木の実装」と「言語に参照機能があるかないか」に関係はない。私は考えてる。
Android用のアプリはjavaで開発するのがメインなんでしょ?
自分の好きな言語でのアンドロ用コンパイラ自作すればアンドロアプリを好きな言語で作れるようになるよ
>>386 別に自作しなくてもarmのクロスコンパイルできれば動くでしょ。質問はメインかどうかだし。
>>385 ウェブアプリやゲームアプリ含めると、そうでもないかも? スマートフォン向けとして作るから。
388 :
デフォルトの名無しさん:2014/06/19(木) 20:11:09.51 ID:cJBIMdbh
>>383 まぁ、なんでもやってみたほうがいいよね。
AndroidレベルでパソコンのGUIツール作れたらいいなぁ・・
FXはまだ試してないから、また試してみよ・・
パッケージのjava.lang の lang ってどういう意味?
PrintWriterで改行文字を含んだStringを出力しようとすると、
改行文字の前後で2度に分けて出力されます。
これを一度の出力で改行文字ごと出力したいのですがどうすれば良いですか?
println()でなくappend()かprint()を使う、とエスパー
まずPrintWriterの使用をやめます
395 :
デフォルトの名無しさん:2014/06/21(土) 06:36:40.96 ID:JZeVaIy8
こうだと予想
println("あいうえお\nかきくけこ")
彼が期待する結果:
あいうえお\nかきくけこ
現実:
あいうえお
かきくけこ
違うだろ
バッファリングのタイミングがお気に召さなかったんだろ
ワロリンヌ・・・StringのtoLowerCase()とtoUpperCase()って全角のアルファベットも変換してくれやがんのな・・・
すみません色々と言葉足らずだったみたいで
>>396のような感じになってほしいのですが、どのように実装したらいいでしょうか?
println("あいうえお\\nかきくけこ")
でいいのか?
out = new PrintWriter(socket.getOutputStream());
out.print(msg);
out.flush();
msgの内容
あいうえお
かきくけこ
受け取り側
あいうえお
かきくけこ
こういう風に受け取り側で二度に分けられる事が困ります
受け取り側では一行で
あいうえお\nかきくけこ
のようにしたいです
すみません色々と「後出し」だったみたいで
>>402 改行コードを含んだまま改行せず表示、それは残念ながら絶対に無理なので諦めて下さい
正規表現使って別の何かに置き換えて送るしかないですかね
改行あったら円マークつけろよ
あいうえお\\nかきくけこ
ネットワークプログラミング勉強しろよ
\記号によるエスケープはソースコード上のリテラル文字列に使うもんなんだけど
javaでAppleのアプリ・ソフトって作れんの?
>>402 まずオマエはTCP/IP通信の基礎が理解できていないから無理
素人らしくHTTPベースのWebサービスでも使っとけ
>>410 これだけでそこまで分かってしまうものなんですね
出直してきます
俺も初めからそうだと気づいてた
>>409 お前はAppleではないしAppleに就職する能力も持ってないから無理
Swiftが出たからもうJavaに用はないよ
SocketやめてDatagramSocket使うと幸せになれるかもだ
よーしパパ、ジャンボフレームにGIF画像突っ込んじゃうぞー
>>402 PrintWriterは送信部分のコードであって、受け取り側じゃないよ。
困ってる受け取り側のコードを晒さない事には回答しようがないからね。
だから皆エスパーしてくれてるんだよ。
419 :
デフォルトの名無しさん:2014/06/22(日) 14:01:48.34 ID:CnPIc+MX
try (FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "Shift_JIS");
BufferedReader br = new BufferedReader(isr)) {
}
これと
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "Shift_JIS"))) {
}
これ
下の書き方だと何がやばいですか?
420 :
デフォルトの名無しさん:2014/06/22(日) 14:14:24.90 ID:TaqxR0c4
>>419 ・BufferedReaderのコンストラクタで例外が投げられたらリソースリークする。
・InputStreamReaderのコンストラクタで例外が投げられたらリソースリークする。
・BufferedReaderのcloseメソッドがInputStreamReaderのcloseを呼び、
InputStreamReaderのcloseメソッドがFileInputStreamのcloseを呼ぶ、わけでなかったら
リソースリークする。
理屈としてはこうなるけど、実際にはやばくないと思うよ。
下の書き方でもクラス側の仕様で勝手に全部閉じてくれるのでやばくはない
422 :
デフォルトの名無しさん:2014/06/22(日) 15:25:41.99 ID:R6m2qV6z
JSTLで書いたコードなんですが
何故かエラーが吐くんですが原因わかりませんか?
上から別々のコードなんですが
<c:set var="nam" value="${param.name}">
<c:choose test="${param.num le 50}">クエリ情報は50以下です。</c:choose>
<c:forEach begin="1" end="5">こまねち<br /></c:forEach>
<c:forEach items="${nam}" varStatus="status"> ${status.number}.${val} <br /> </c:forEach>
原因を特定したいのなら何故エラーメッセージのほうは掲示しない
424 :
デフォルトの名無しさん:2014/06/22(日) 17:07:29.82 ID:R6m2qV6z
最近エスパー系の質問がすげー多いなw
人手不足で無理やり現場に突っ込まれた初心者増えてんだろうか
問:プログラムを作りましたがデバッグできません
答:???
ノンブロッキングIO例で検索すると以下のようなコードがありがちです
実際に動かすと通信の無いアイドル時に
whileのみを回り続けCPU使用率が無駄に上がります
かといってwhileの最後にsleepを入れると
通信が有る時の応答時間が低下します
応答時間を落とさずアイドル時のCPU負荷を落とすのはどうするのが
良いでしょうか?
while(selector.select() > 0) {
for(Iterator it = selector.selectedKeys().iterator(); it.hasNext();) {
SelectionKey key = (SelectionKey) it.next();
it.remove();
if(key.isAcceptable()) {
:
}
else if(key.isReadable()) {
:
}
}
}
selectってブロックしなかったっけか?
ノンブロッキングでselectする意味がわからない
質問です。リストのイテレータiterAの位置を保持したまま、
iterAの次の位置(と言っても、next()直後なら今の位置と言っても良いのでしょうが)からの
イテレータiterBを作りたいのですが、どうすれば良いでしょうか?
Objectクラスにはclone()がありますが、Iteratorはインタフェースなため、見つかりません。
やりたいことは…List<MyClass>のインスタンスの要素を先頭から[obj1, obj2, obj3, ...]としたとき、
2重ループにしてMyClassのメソッドmethod(MyClass other)を他の要素に対して呼びたいのですが
obj1.method(obj2)を呼んだ後には、逆のobj2.method(obj1)は呼びたくないのです。片方で済ませたい。
要素の間に何らかの比較基準が定義できるなら
if (x < y) x.method(y);
が簡単
なんかないの?
>>430 イテレータを最初に配列やArrayListに突っ込んでからループさせればいいだけだと思うが
二重ループで順列の添字ペア(i,j)を求めてからリストに添字アクセス。
件数が多いならArrayListに詰め込み直してでもやる価値はある。
どうしてもイテレータにこだわりたいならListIterator二組作ってギッコンバッタン。
ありがとうございました。結局
>>431 さんのを参考に少し変形して
for(MyClass obj : obj_list) {
boolean foundSelf = false;
for(MyClass other : obj_list) {
if(other == obj) {
foundSelf = true;
} else if(foundSelf) {
obj.method(other);
}
}
}
という形にしました。
どうしてそんな糞コードになった…
cronでシェルからJavaを起動するバッチを作成したいのですが、
mainメソッドの中に処理を書くのか、Thread(Executor)を使った方が良いのか
どちらが良いのでしょうか?
同時にmainメソッドが呼ばれた場合は別スレッドになるのでしょうか?
ちょっと何言ってるかわからない
eclipse+mavenで開発をしているのですが、pom.xmlの依存関係>追加で、"グループID、アーティファクトID、またはsha1接頭部またはパターン(*)の入力(E)"に
idの一部を入れて検索しても、"'hoge'の結果(0)"と出るだけで、何も出てきません。(junit、hamcrest、mockitoで試しました。)
このようなことになる原因としてはどのようなことが考えられるでしょうか?
環境はwinodws7 + Eclipse Juno Service Release 2 + Maven 3.0.4です
441 :
デフォルトの名無しさん:2014/06/30(月) 21:40:54.35 ID:PfFIn4o2
>>436 バッチの質問なのか、Javaの質問なのか、
意味がわからん。
Javaでプログラム書きます。
↓
cronで定期的にJavaのプログラム立ち上げます。
これで完結するじゃん。
バッチの中身はそのままJavaコマンド書けばいいわけだし。
442 :
デフォルトの名無しさん:2014/06/30(月) 21:46:06.42 ID:PfFIn4o2
>>436 >>mainメソッドの中に処理を書くのか、Thread(Executor)を使った方が良いのか
Threadが必要なプログラムなら必要だし、
いらないプログラムなら、Threadはいらない。
どんなプログラム書こうとしてるの?
>>同時にmainメソッドが呼ばれた場合は別スレッドになるのでしょうか?
つまり、同時に同じプログラムが立ち上がるということ?
別々に同じプログラムのメインメソッドが立ち上がるよね。
別スレッドってなんだい?
メインメソッドの事を指してる?
エスパー杉
mainかThreadかっつってんだから
シェル→C→(JNI)→Java
と呼び出すときのJavaのエントリーポイントをどうすべきか
きいてるんだろ
444 :
デフォルトの名無しさん:2014/06/30(月) 21:50:04.82 ID:PfFIn4o2
>>443 バカか
>>cronでシェルからJavaを起動するバッチを作成したいのですが、
バッチを作りたいって言ってるのにスレッドがどうのこうのいってんだよ
本人がなぜか納得してんだからいいだろ
cronでjavaを起動するツールの話かと思ってけど、まあいいかな、いいよな
何度javaを起動しても、同じvmに接続されると思ってたんだろ。
public Counter {
public static void main(String[] args) {
int a = 0;
while(a < 5){
System.out.println(++a);
}
}
}
このような形のものを
public Counter {
public void count(int a){
System.out.println(++a);
}
public static void main(String[] args) {
Counter A = new Counter();
int a = 0;
while(a < 5){
A.count(a));
}
}
}
このような形に変えたいのですが
下のものを実行すると1が表示され続けてしまいます
どういう風に記述すれば上と同じように動作してくれるでしょうか
cunt(int[] param) // paramは要素数1の配列
451 :
448:2014/07/01(火) 19:37:52.39 ID:KlFm4Rco
ありがとうございます
思い通りにできるようになりました
452 :
デフォルトの名無しさん:2014/07/01(火) 20:09:51.90 ID:E4+mhFAM
>>448 コードはもっと分かりやすい書き方するようにしたほうがいいよ。
短いコードだから、落ち着いてゆっくり順番に見ていくといい。
public Counter {
public void count(int a){
//まず、仮引数はaで、何の値が来るかはわからない。
System.out.println(++a);
//それにa++ということは、+1して画面に出力している。
}
public static void main(String[] args) {
//Counterクラスのインスタンスを作り、Aという変数に参照させている
Counter A = new Counter();
//int型のaという変数を宣言し、0を代入している。
int a = 0;
//while文でaが5よりも小さい場合はtrue
while(a < 5){
//Aが参照しているインスタンスのメソッドを呼び出し、引数にはa
A.count(a));
}
}
}
メインメソッドのaという変数の値は0で何度回しても0のまま。
わかったって書き込みがあったけど、
こういうプログラムって通常はwhile文の中でa++するほうが多いと思う。
今回の場合は、countメソッドの仮引数を++していたけど、
メインメソッドの中のaは++されていないということが問題だったってこと。
453 :
デフォルトの名無しさん:2014/07/01(火) 20:11:12.66 ID:E4+mhFAM
何でいきなりコーディングのお作法解説が始まんの?
ドカタのくせに先輩面したいから
456 :
桃白白 ◆9Jro6YFwm650 :2014/07/01(火) 20:46:26.22 ID:zDJRF/6W
>>455 親方、桃白白もドカタになりたいです……。
なら俺もドカタ向けにアドバイスしてやろう。
ドカタはstaticというか非staticが理解できないんだから
Counterの中のmainでnew Counterするなどもってのほか。
メインは専用のクラスにしろ。
class Counter {
public void ドカタ作業() {
}
}
class Program {
public static void main(String... args) {
Counter c = new Counter();
c.ドカタ作業();
}
}
458 :
436:2014/07/01(火) 21:32:51.34 ID:PIgwHICt
>>442 >>447 の通り同じvmだと思っていました。
サーブレットだと同じ画面が複数スレッドからアクセスされるので、
main実行時も同じvmでスレッド単位で実行されるのか、
もしくは1つのスレッドで1回目のmainが終わるまで2回目が待機するのか
どちらかの想定で質問していました。
質問がわかりづらくて申し訳ありません。
いままでプログラミングなんてやったことないのですが少し案があってAndroidアプリが作りたいのですがオススメの入門書などありますか?
来たー、後だし
今までjava触ったことなかった荒らしがjava勉強し始めてから
急に荒らしやめて先輩面しだしたアホだよそいつw
464 :
デフォルトの名無しさん:2014/07/03(木) 01:27:42.91 ID:+uXM4PGD
ドカタドカタ言ってる暇があれば
勉強しろよ
良いコードをひねり出す事に集中しろ
>>464 視野を広く持つんだ
綺麗なコードを書くことは大事なことだが、
ドカタで終わりたくないならもっと大事なことも沢山ある
もう取り返しのつかない歳になってそれに気がついた
画面に向かって過ぎ去った俺の人生
ドカタがきれいなコード書くとか
何の冗談か
467 :
桃白白 ◆9Jro6YFwm650 :2014/07/03(木) 19:47:27.87 ID:gqLdubbD
>>466 それには桃白白も同意せざるを得ません(切実)
>>468 >FileSaverFactoryを実装したクラスを選ぶときにif文が必要になる気がするのですが
それはそれで構わない。目的は使われる側のクラスに手を入れることなく
使う側が使われる側のクラスの動作(どのクラスをnewするか)を変えること。
「制御の反転」ってやつだ
結局そうやって依存関係を作る処理が上に上にと押し上げられて、
全部mainで構築するようになり
Spring導入すれば一緒じゃんと気がついて
デザインパターンとか殆ど使わなくなるのであった
>>470 ありがとうございました!
if文ばかりに目が行ってました。
制御の反転について色々調べてみます!
最後に連投申し訳ないです。
サーブレットでファイルアップロードすると自動でリサイズする機能を作ってるんですが
リサイズ部分は public static reize(){...} といったstaticメソッドを
実装したUtilクラスにしています。
複数ユーザが同時アップロードした場合に、staticメソッドで
このような処理をやるのは問題ないでしょうか?
接続(セッション)毎にリサイズ用のクラスのインスタンスを作って
その中で処理したほうが安全でしょうか?
静的フィールドを弄ってなければ問題ない
とはいえメソッドの中で呼び出してるライブラリの静的メソッドがスレッドセーフじゃなかったりするとダメなので
自分では静的フィールド弄ってないからって一概に安全とはいえないし
インスタンス作ったからって解決するものではない
>>474 ありがとうございます!
静的フィールドはいじってませんが、ライブラリ周り確認してみます。
>サーブレットでファイルアップロードすると自動でリサイズする機能を作ってるんですが
JAVAドカタ()は日本語もマトモに書けないのか
正解はどちらもスレチ
Commonクラス
Constantクラス
Utilクラス
これらはドカタの三種の神器
定数クラス禁止なら定数は何処に置けばええんや
インターフェース
リソース
リソース名が定数だったてへぺろ
netbeansのGUIビルダーを使ってみようとして
JFrameコンテナを追加したのですが
デザイン領域でずっとloading...になっています
原因がわからないので教えていただけないでしょうか
にちゃんねるは慣れていないのでスレチだったら教えて下さい
スレ違いというよりそういうことがしたいならJavaを使うのが間違い
C#とかQtとか行け
PCスペック足りないかnetbeansが糞なんだろ
ありがとうございます
専ブラを作りたくてGUIを勉強しようと思ったのですが
JAVA以外できないので諦めます
>>487 勿体無いなあ。
作りたい物作れて、ついでに新言語も学べる動機なんてしょっ中は無いぞ。
Java系のGUIビルダー使ってるとあまりにも酷すぎて報告する気にもならんよな
そこで商用ですよ
JavaFXなんだろう、Oracle的には
493 :
デフォルトの名無しさん:2014/07/06(日) 10:43:06.49 ID:h47gFyyv
普通にLayout使って書けばいいだろ。
とりあえず再インストールしています
まさか治るとは
回答有難う御座いました
またまた質問で申し訳ないのですが
専ブラを作るとなると
どのような書籍/ホームページを見ればいいのでしょうか
C#とかDelphiとかならオープンソースのがあるだろ?
それ移植するだけだよ
専ブラ作者って金もらえないんじゃねえの
503 :
デフォルトの名無しさん:2014/07/06(日) 19:41:29.59 ID:/0mEGvp2
Java知識度クイズ
三つ合ってたら初心者それ以下で初心者以下
全部合ってたら普通
コネクション・プールとは、あらかじめいくつかの接続を[ (ア) ]しておくためのしくみである。 アプリケーションが使用し終わった接続は破棄されるのではなく[ (ア) ]に戻され再利用される。
MySQLへの接続文字列は、「jdbc:[ (イ) ]//localhost/mydb?[ (ウ) ]=UTF-8」のように記述する。
有効な接続数を[ (エ) ]してしまうと、それだけユーザが空きを待たなければならない可能性が高くなる。逆にあまりに、[ (オ) ] してしまうと、コネクション・プーリングを行うための消費リソースは大きくなる
偏ってんな。
宿題やってくれってことか。
イとウはプログラミングと関係ないだろ
J2EE製品のマニュアル読んで製品の設定ファイルに書くだけの内容なんだから
問題からして馬鹿w
最近はJava1.4で止まってる連中が多くて嫌だよな
>>503とかJava知識かんけーねーし
508 :
デフォルトの名無しさん:2014/07/06(日) 21:12:56.45 ID:/0mEGvp2
ふぁああ
ふぁああ
すんませんすんませんw
予備校で教えているのですが酔っ払って調子にのってましたw
猿でも解決できそうなくだらない質問してる時点で専ブラどころかメモ帳が関の山
他人のソースすら読めないレベルだろ
教えてる奴もそいつから学ぶ奴も馬鹿なのがプログラム教えてる学校
やっとSmatraが現実味を帯びてきたな。永かった。AparapiとRootbeerはいつになるやら
>511
何だそれらは 誤爆か?
Javaで、プリンターのデバイスドライバを作ることはできますか?
セントロニクスなんですけど
JNIだかでネイティブAPI使えるんだから何でも作れるんじゃね?しらんけど
本当にjavaドカタは馬鹿だなw
>>516は確かにバカ土方だが、逆にC/C++からJavaを呼ぶことも可能なのでできなくはない
C/C++だけで作るより余計に難しくて手間かかるだけだろうけど
ドライバってOS寄りの質問だよね
ここでやるのはスレチというかイタチじゃね
バカでかいユーティリティソフトをドライバと言うプリンタメーカー
XLSoftのExcelsior JETを使えばJavaでドライバ開発可能やろ?
無理
ステマ
gameOffDraw()がその内容みたいだけど。
>>525 そうなのですが、オフスクリーン用のバッファに書き込む用のグラフィックオブジェクトです。
gameOffDraw()の内容(こんな簡易なコード)を見て分からんのなら絶望的だから諦メロン
>>528 わざわざ、ありがとうございます!
Graphicsには色々な描画方法があるんですね。
>>519 やっぱだめなんですね
CかASMなんですね
わかりました
アセンブラの仕様、プログラム例は平成初期のトランジスタ技術スペシャルの本に載っているのですが
MS-DOSの時代のものなので、かなり勉強が必要かなと
古いプリンターなので、Win8などはサポーとしていないのです
パラレルをUSBに変換するケーブルが売っているのですが
とりあえず勉強のためなんです
失敗したら基板を壊しそうw
ほか、みなさんありがとう
>>532 DOS時代の本なんか投げ捨てろ 害にしかならん
Windowsを捨ててLinuxやればいいんじゃね
javaを最近はじめたのですが
C++のmakefileに相当するのがbuild.xml
なのでしょうか?
build.xmlを手で編集するのが標準スタイルなのでしょうか?
それともeclispseかなにかで自動生成できるのでしょうか
eclipseの本一冊本買って読めよ
make に相当するのが ant
makefile に相当するのが build.xml
もちろんツールで生成しても手で編集してもよい
普段はC++とRacket使ってます
やもえない事情でJavaをいじらないといけなくなったのですが
emacsに慣れてる人向けには
emacs-eclim使うと一番よかったりしますか?
(まだ未完成で使い物にならないとかないですよね)
Javaってどんなメリットのある言語なのでしょうか
>>535 antは細かくできるけど、流れを任せたいなら、maven便利。
ちなみに
Gradle
ってどうなんでしょう
レスを無視して好きにすれば
542 :
デフォルトの名無しさん:2014/07/09(水) 12:41:55.15 ID:zjFkJ2Wk
Javaでなにもかもできるわけじゃないんだな
まだまだ万能じゃないんだ
むしろCで出来ることを切り捨てまくることで
移植性や安全性を高めている
>>542 アセンブラ最初から万能だよ。ちょーオススメ。生産性の高い高級言語なんて使わないほうがいいよ。
545 :
デフォルトの名無しさん:2014/07/09(水) 19:20:42.00 ID:WW3wU6vs
546 :
デフォルトの名無しさん:2014/07/09(水) 19:22:35.44 ID:WW3wU6vs
>>545 他人は言われなき言いがかりは気にしなきゃいいだけなんだが、
自認している奴は言い逃れようもない、まさしく呪詛
548 :
デフォルトの名無しさん:2014/07/09(水) 23:32:06.70 ID:6LMuMalC
大学教授が1.4使ってたから笑ったらマジオコされた(;ω;)
古代遺蹟の保守行くと1.3とかザラ
rhinoとかソースは5.0だけど1.2時代からの全ての互換コード含むから1.2時代の事情知らないと読めないぜ。15年分のgit logすごいぞ。
>>540 ant: xmlに疲れた/比較的自由
maven: 巨大でよく失敗して失敗したら自分ではどうにもできん獣/巨大なプロジェクトに依存関係たっぷりだと最強
gradle: プログラマブルなビルドツール/どうにでもなる
gitって15年以上前からあるのか
すごいな
Java + Ruby で何でもできる
特にRubyは日本語対応もよく、濁点・半濁点を別に1文字で数える、
変態的なUTF8-MACにも対応している
例、ビ = ヒ + 濁点
また配列で集合演算もできる
A(1,2,3), B(3,4)の時、集合の積・和・差を、
A & B = 3
A + B = (1,2,3,4)、または重複ありの(1,2,3,3,4)
A - B = (1,2)
>ビ = ヒ + 濁点
ただのUnicodeの正規化に見えるんだが
むしろこれができない言語・フレームワークを教えて欲しいものだ
オブジェクトごとに画面に描画したい場合、
オブジェクトの機能として描画機能をそれぞれ持たせるのか
それともJFrameクラスにだけ描画機能を持たせて、他のオブジェクトからJFrameに描画内容を
渡したほうがいいのかで迷う
swingつかったくそアプリなんか誰も使わないから好きにすればいいじゃん
556 :
デフォルトの名無しさん:2014/07/10(木) 06:41:31.07 ID:c0ZbepsZ
v2c
>>550 rhinoのソースをそんなに読み込んでいるあなたはもしや、
rhinoの最適化版をgithubに上げているあの人?
>>540 俺はmavenが大嫌いだからant+ivy使ってるけど
覚えること少ないから楽だよ
maven人気ないな。そんな難しいかな。
>>554 普通にmvc(mvp)で作ればいいんでねーの。
>>559 便利なのは確かだが、極めて簡単な事をするために込み入った設定を求められる(ことがある)のが嫌
>>549 当時のイメージだと、
1.2から実用的って感じだね。
1.1なら物足りない、1.3なら申し分ないというか。
質問です
java.lang パッケージ パッケージの「lang」ってなんの略ですか?
荒らすなボケ
>>565 ありがとうございます
そういやプログラミング言語も言語ですよね……(他言語(英語とか)対応のほうかと)
staticな変数の容量はどれくらいありますか?
いくらでも突っ込めますか?
JVMでの設定やパソコンのスペック次第でいくらでも
RAMが512MBだとしてもhddが32gbとかあれば、32gb分使おうと思えば使えるんですか?
1クラス65536個までだったかな。インスタンス変数との取り合い。
なんでJAVAドカタって、会話のキャッチボールができないの?
ワロタ
static変数1個あたりで一番容量があるのはdoubleあたりか?
576 :
デフォルトの名無しさん:2014/07/12(土) 00:31:33.20 ID:DU/9NdND
>>569 staticはHDD関係なくて、
実行時の問題だから、メモリの話になる。
メモリが512MBしかないのに、1GB占有しようとしても無理だよな?
そんなことしたら、
ガーベッジコレクションしても、
メモリの容量が足りない時に例外が発生する。
577 :
デフォルトの名無しさん:2014/07/12(土) 00:32:54.26 ID:DU/9NdND
>>569 java関係なしに主記憶装置と外部記憶装置の違いを理解しなきゃ。
VMはソースコードの出現順にメモリに置こうとするから上から順にレジスタにあるかもしれないしメモリの再配置も許されてる
以下のようなことをネットで見つけましたが、真実でしょうか?
真実だとしたらどの程度ですか?
・eclipse は重い
・eclipse は、よく「落ちる」。例えば一日に10回ほど落ちるか、
ハングアップする?
・eclipseはメモリを大量に消費するので、JVMのメモリオプションを
変更したり、起動中にGCを手動で行う必要が有る。
>>581 開発環境というのはそんなもん
VisualStudioの品質が異常なだけで、他のにあのレベルを期待してはいけない
> eclipse は、よく「落ちる」。例えば一日に10回ほど落ちるか、
> ハングアップする?
これ不思議なんだけどね、実務で使ってた時の話だが、
使えない奴ほどこれの回数が多い。
普通にできる奴はこんな現象は出なかった。
一体どんな使い方すればそうなるのか未だに不明だ。
>>583 また印象操作ですかね。
都合の悪い情報が出ると、使う側のレベルの問題にしてしまう。
まあ無意識のレベルで地雷原を避けられるかどうかというのも能力の内なので
>>584 は?経験則を騙ったら印象操作とか、お前何様だよ、消えろカス。
>>569 ちなみに32bitOSだと、アドレスの長さの問題で仮想メモリでも4GBが限界の場合がある。
その前に、
プロセス制限もある。
Windowsは、2GB
Linuxは、大抵3GB
>>586 かつてWindows95/98/Me 時代、経験豊富な人は OS を落ちさせずに使うことが
出来ると主張する人がいた。
「落ちる事をしなくなるから」
だそうな。
しかし、上記OSを落ちさせず使えるマジシャンのような人が優れたエンジニア
であったわけではなかろう。
591 :
桃白白 ◆9Jro6YFwm650 :2014/07/12(土) 16:36:08.16 ID:h0xXQ1TW
>>590 OSじゃなくてEclipseの話だよ?(すっとぼけ)
優れてると思うよ?
自分が何をしたか細かいところまで具体的に覚えていて、
自分の行動を分析して反省できる人にはそれが可能になるんだ。
後先考えずにエイヤーと手を動かしてる人は学習おそい気がする…
>>592 コーディング能力や設計力ではなく、OSを落とさなく操作する技術
に長けているだけ。ただし、本当に落とさないで済んでいるか客観的
に判断は出来ないがね。ずっと監視でもしない限り。
あー殺したいわー
だから、日本のソフト産業のレベルが低いままなんだよ・・・。
どんなに信じ難いことであっても、本当のことを言っている人を
攻撃してしまう。挙句の果てには殺す、調子にのるなの脅迫・・・。
お薬増やしておきますね
煽って遊んでるだけの暇人なんだから相手すんなよ。。。
601 :
デフォルトの名無しさん:2014/07/12(土) 17:52:42.63 ID:fUFHNcCA
今JSPで郵便番号検索する物作ってるんですが
ハイフンがどう頑張っても判定されないっす
これはダメかもわからんね
そうなんだ
大変だね
お疲れ様
>>598 お前みたいにろくに調査検証せず思い込みで物事を決めつける奴ばかりだから日本のソフトウェア産業のレベルが低いんだろw
605 :
デフォルトの名無しさん:2014/07/12(土) 19:59:13.83 ID:lvXU8pXl
Tomcat7,Xを使ってます
/Hello
というコンテキストパスに対して
hello.jspを呼び出したいんですが、
HelloServletをつくってdispatch.forwardしたらできるのですが
web.xmlに直接jspを書いて解決とかできないですか?試行錯誤してみたのですができなくて
606 :
デフォルトの名無しさん:2014/07/12(土) 20:08:44.65 ID:fUFHNcCA
なんでこんな争っているの?
名言を残そう
争いは、同レベル同士でしか起きない・・・
そもそも同じレベルで何が悪いのか議論されてないぞ低脳。
jspって、まだ使われてたの?
まだもクソもドカタワールドでは最強だよ
COBOL以上の量の負の遺産が現在進行形で増殖し続けている
この先20年は客を人質に取って保守で食えるレベル
>>604 そうか、オイラは殺されそうになったら正当防衛でお前を殴り倒してKO
してやるよ。かかって来いよ馬鹿なくせに。
>>604 そしてあんたは、刑務所に入って前科者。
こっちは正当防衛の被害者だ。
レンタルサーバにJavaVM入れてservlet動かしてみています。
そのサーバ上のHTML→JavaScript→ajaxでservletへリクエスト
という経路で通信した際に、
servlet上でjavax.servlet.ServletRequestクラスの
getRemoteHost()、getRemoteAddress()を実行して
接続クライアントのIPアドレスを取得しようとしても、
何故かレンタルサーバのアドレスが取得されるのですが、
これを接続クライアントのIPアドレスを取得するにはどうすればよいでしょうか?
レンタルサーバーに制限や制約が無いのだとしたら
>>611 住所、氏名、年齢、顔を晒してからほざけよ低脳。
616 :
デフォルトの名無しさん:2014/07/13(日) 03:20:01.52 ID:VobM7p/g
ArrayList 変数名 = new ArrayList();でリストを生成するときに
変数名を変数にすることは可能ですか?
例)
String tmp = "A"ならば
ArrayList tmp = new ArrayList(); //Aという名のリスト作成
String a = "B"ならば
ArrayList tmp = new ArrayList(); //Bという名のリスト作成
JAVA()ドカタってどうして日本語がマトモに使えないの?
>>616 Javaは変数名は必ずどこかで宣言されていけなければダメなのでそういうことはできない。
どうしてもやりたいならMapとかを使えばできる。
Map<List> lists = new HashMap<List>();
String tmp = "a";
lists.put(tmp, new ArrayList()); // リスト1、"a"がキー
tmp = "b";
lists.put(tmp, new ArrayList()); // リスト2、"b"がキー
lists.get("a"); // リスト1が取り出せる
lists.get("b"); // リスト2が取り出せる
>>618 ありがとうございます!ドンピシャでした。
nginx挟んでたんですが、location定義の部分に
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
を追加したところ、無事にクライアント側のIPアドレス取得出来ました。
同一ファイル内に親クラスと子クラスとその他のクラスがあったとして、
親クラスの一部の変数を子クラスのみアクセスできるようにしたいのですが、そのようなアクセス修飾子はないようなのです。
protectedを使ってパッケージに分ければできそうなのですがパッケージ化する以外に方法は無いのでしょうか?
初歩的な質問ですみません。
「その他のクラス」を全てstaticな内部クラスにして「子クラス」は通常の内部クラスにする
そうすれば親クラスの変数にアクセスできるのは「子クラス」だけ
1ファイルに複数のクラスを書くのを止めろ
(内部クラスと匿名クラスは除く)
>>619 そもそも何を質問しているのか分からない日本語に対して
よく答えられるね。それで相手が答えとして納得するなら
凄いもんだが。
質問の意図は分かるが
(eval使わずに)それが可能な言語があるかは知らないな
>>625 >>619 の回答だと、単に文字列をキーにしてリストを取り出せるような
「文字列を添え字にした配列(perlなどではハッシュとも言うが)」
を作る方法を示しただけ。
ところが、
>>616だと、
「文字列がAならば、Aという名のリストを作成」
となっている。
ここで:
・「取り出す」のと「作成」するのは全く異なる。
・
>>616の後半の例を見ると、質問者は、
「文字列の値をクラス名とするオブジェクトを作成したい」
のではないか、と思える。
つまり、String tmp; に対し、
"tmp" *pTmp = new "tmp";
見たいな事がしたいのではと。
最後は、ちょっと書き間違えたので訂正させて。
String tmp; に対し、tmp == "Cxxx" の場合、
Cxxx *pXxx = new Cxxx;
見たいな事がしたいのではと。
>>628は「クラスを外からして」ではなく「クラス名を変数で指定して」の間違いね。
しかし、ずいぶん上から目線で書き込む割には本当に初心者レベルの知識しかないから驚くよなあ。
>>628 何を批判しているといいたいのか知らんが、Javaがメモリ大食いな事を
断定するのに
>>628のような知識は必要ない。
>>630 Java独自のそんな仕様知りませんでしたよ。
すみませんね。
>>629 だって普通に考えれば、
>>616は「new ArrayList()」と書いているのだからArrayListのインスタンスを作りたいのだろうし、
「変数名を変数にする」というのを解釈したら「宣言する変数名を変数で与える」ということだろ。例示されたコードからも。
>>625 少なくともPHPだったら$name = "a"; $$name = "data"; で、$a = "data"; 相当になるよ。
>>633 PHPってすげえな
さすがスクリプト言語
すると、
>>616 は:
String tmp = "A"ならば
ArrayList A = new ArrayList(); //Aという名のリスト作成
String tmp = "B"ならば
ArrayList B = new ArrayList(); //Bという名のリスト作成
ってことだったという事か。
質問内容の類推能力の高さには、いやはや感服しましたよ。
ID:oywTPTFh
は凄い。すばらしい。言葉の天才!
いや普通にそう思うでしょ
「変数名を変数にする」って言ってんだから
俺もリフレクションを真っ先に考えたけど
リフレクションは変数名そのものを自由に指定する技術ではないから
結局事前に変数名を宣言しておく制限は回避できないと思って黙ってただけだよ
俺と同じように無理だと理解して黙ってた人は多いだろうよ
いや、Javassist使って実行時にバイトコードを書き換えれば変数名を動的に指定することもできるだろ
ローカル変数ってバイトコードに残るんだっけ?
ただ、質問者は、きっとそういう複雑なことをしたいんじゃないだろうて。
本当は、
「結局、何がやりたいのか」
ということを聞くのが大切。
>>638 >いや普通にそう思うでしょ
>「変数名を変数にする」って言ってんだから
もし、普段あなたが質問の意図を読む天才で無いのだとしたら、これが
「集合智」
の一種だと思う。人間の脳はランダム性を積極的に利用している事もあって、
考える人数が多いと誰かが正しい解釈に気づく。
一人一人はめったにUFOを見ることは無いが、世界中ともなると結構な人数
の人がUFOを見る。天才じゃなくとも、一人だと天才にしか思いつかない
アイデアを、世界中のどこかの凡人が思いつく事が有る。それは、
人数が多いから。
それか、
>>633 の最後に書かれた:
>少なくともPHPだったら$name = "a"; $$name = "data"; で、$a = "data"; 相当になるよ。
という予備知識が、
>>616 の質問の意図を読むのに役立った可能性が有る。
こういうことは、C/C++ や旧来の言語では出来なかったし、
>>616 の質問者
がやりたいようなことは、古くからのプログラマにはやりたいとさえ思わな
い。なので、多くの人には
>>616 の質問の意図の解釈はとても困難だった
と思う。
質問者は単純に変数の概念の理解が足りてないだけかと思うけど
>>643 自分が解釈できなかったのを特殊ケースということにする言い訳を長々とすんなよ。だれも興味ないぞ。
つーか、そういうのはCだったらマクロで良くあるケースだろ。自分のしょぼいプログラミング経験をもとに、「古くからのプログラマはやりたいと思わない」だの「多くの人には困難」だの笑わせんなよw
>>645 >そういうのはCだったらマクロで良くあるケースだろ。
マクロで出来るのは、コンパイル時に決定できる静的なものに限られる。
String tmp; の内容で、変数名を決定するようなことはマクロには出来ない。
もしかして、そういう基本的なことも理解してませんか?
>>645 >自分が解釈できなかったのを特殊ケースということにする言い訳を長々とすんなよ
誰もそんなこと言って無いでしょ。むしろ、phpなど新しいスクリプト言語
を知らない多くのC/C++プログラマには、
>>616 は、質問の真意さえ掴めなか
ったのが普通なのではないか、と思っただけ。
俺もプログラミング覚えたてのころは
>>616のようなこと考えたことあるよ
動的コンパイルという方法があるけど
>>616のやりたいこととは違う気がするな
素直に
>>619凄い
>>616が言いたい事はなんとなく分かるんだけど、ここまで噛み砕いて分かりやすく解説できるのは凄い
もしかして夏休みに突入してる?
というか、
>>616 の質問って、ArrayList が質問の本質を分かりにくくし
ているよね。もし、このスレでの「質問の意味」の「解釈」が正しければ、
ArrayList は全く無関係で、CMyClass のような一般的なオブジェクトで
良いことになる。なので、質問としては次のように書けることになる:
------------------------------------------------------------------
CMyClass 変数名 = new CMyClass(); でオブジェクトを生成するときに
変数名を変数で変える事はは可能ですか?
例)
String tmp; に対し、
tmp == "a" なら:
CMyClass a = new CMyClass(); // 変数名 a でリスト作成
tmp == "b" なら:
CMyClass b = new CMyClass(); // 変数名 b でリスト作成
------------------------------------------------------------------
>>650 >ここまで噛み砕いて分かりやすく解説できるのは凄い
>>619は、「解説」してるわけじゃないでしょ。
>>619 なりに
>>616 の質問者の意図を読み取り、それなりの解決策を
示している。「そういうことはできない」というのが
>>619の結論。
すまん。
「変数名を変数で変える事はは可能ですか?」
というのもまた正しく表現できて無いね。
正しくは:
「ある文字列変数に入っている文字列の値を変数名にすることは可能です
か?」
という位かな。
いい加減な質問でも、問い返すまでもなく
想像力を働かせて相手の意図を正確に把握し、
自分の考えを明晰に説明する
そんな奴はプログラマじゃねえとっとと営業SEにでもなっちまえ
656 :
デフォルトの名無しさん:2014/07/13(日) 23:27:40.73 ID:M5JlFtG6
データベースから情報を取得し、web上で表示するプログラムを組んでいるのですが
どうもREPLACEの使用方法が間違っているのか上手く動きません。
正確には実行しても起動はするのですが、処理が上手にされない感じです。
一見して得におかしな部分はないと思うのですが・・・
jspはjavaコードを書いて評価というかコンパイルして実行してるな。
phpのも使ったことあるけど、ああいうの含めメタプログラミングとかは、わかるようにコメントしておく方が大変。
ツールとかフレームワーク以外では使わない。
>>622,
>>623 ありがとうございました。
少し長くなってコードを追うのが大変だなと感じてきていましたので、とりあえず小分けにしてみようと思います。
デバッグできません、と言われても、
アホとしか言えません
660 :
デフォルトの名無しさん:2014/07/13(日) 23:41:50.79 ID:M5JlFtG6
愚痴るスレ
663 :
デフォルトの名無しさん:2014/07/13(日) 23:46:09.43 ID:M5JlFtG6
>>661 皆様のお声を聞くと何か見つかるかもと
藁にもすがるような思いでして(^-^)/
664 :
デフォルトの名無しさん:2014/07/13(日) 23:47:27.45 ID:M5JlFtG6
話は変わりますがUbuntuOSを使っている方はいますか?
>>664 まだ何も解決してないのにいきなり違うこと始めるとかw
使い物にならないPGの典型や…
666 :
デフォルトの名無しさん:2014/07/13(日) 23:54:49.57 ID:M5JlFtG6
>>655 いえいえ
私Ubuntu上で作業していますのでまぁ関連している事です
なんの具体的な話を切り出してこないので
スレタイの質問や相談にすら相当しないただの雑談・愚痴
ほんとに雑談したいだけだなw
C言語のframa-Cみたいなツールって
javaにはないのでしょうか
checkstyleとかPMDとかFindbugsとか診断ツールならいろいろあるぞ。
JenkinsCIスレの方が詳しいかも
672 :
デフォルトの名無しさん:2014/07/14(月) 22:50:27.86 ID:kVP5lF+/
Javaコードを追跡してたら、すぐinterfaceでどこで生まれたか分からん追跡不能なオブジェクト
継承してるクラスを列挙したら何十個あるんだよ?結局interfaceで何してんのかサッパリ。
確実な追跡するには全コードを理解しろってか?
多重継承禁止とが威張り腐ってる癖に実際は多重継承を推奨している。
XBASIC>>>>>>Java≧NBASIC
くらいの言語だわ
インスタンスのクラスを調べればいいだけでは?
>>672 Java理解できてませんて一言で済む内容なのに
上から下にしか読めない人にオブジェクト指向は難しい。
ウォーターフォール
>>675 そこが単なる構造化と、オブジェクト志向との間の違いだわな
コボラー上司に
イベント処理をフローチャートで書けって言われて困惑したわ。
それってOSとかランタイムから書くのか
UMLで書いてあげれば
>>677 どの道mainから読めば同じだろ。
cの構造体に関数ポインタ入れてるのと何が違うのかと。
実装を意識せずに利用出来る、がinterfaceの存在意義でもあるのだが
ドキュメント揃ってない社内お手製ライブラリだとそれが厳しかったり
>>672 私は駆け出しのプログラマです、まで読んだ
>>672 次の行の
> Javaに限定されるわけでは無いオブジェクト指向の基本的概念であるインタフェースというものが理解できません
も読んだ
>オブジェクト指向の基本的概念であるインタフェース
こういう狂った思想を持つのはJAVA()ドカタのみ
オブジェクト指向とインターフェースは関係ない
ドカタドカタって煽っている人が
オブジェクト指向を理解してないということが明らかにwww
静的型でオブジェクト指向を実装する際の見苦しい辻褄合わせ=インターフェース
interfaceは狂ってるよ。言語仕様が法律というjavaだから起こる
どのクラスが別の実装が必要になるかどうかなんて後々になってみないと分からないんだから
事前にインターフェース用意するとか無理
クラスもimplementできるようにしてほしい。
たとえば
class Hoge {
void cry() {...}
void call() {...}
}
とかあったら
class Hage implements Hoge
ってやったらHogeをcryとcallをメンバにもつインターフェースとして扱えるように
元から必要なぶんだけインターフェース用意できるプログラマとかエスパーだろ
段階的改善
設計段階で必要なインターフェースは洗い出せるし、
仕様変更が起きたらインターフェースに変更が必要になるのは仕方のないことだし。
インタフェースが無いオブジェクト指向言語なんていくらでもあるのに
何言ってんの
菱形継承の曖昧さを回避するための単一継承だっけ?
むしろ継承がいらない
>>692 単一継承の言語なら結局似たような「縛り」は持っている。
委譲を楽に書ける言語仕様カモーン、という泣き言なら理解してやってもいい
C++様がやはり偉大なことがよくわかった
別に事前に100%正解を出す必要はないでしょ
実装無しで設計が完璧にこなせるなんて、それは予言に近い
ウォーターフォールの理想論を極めた感じ
十分事前設計可能な程度の小さな規模だとか
既に熟知してる分野だったら、コード書かなくてもインターフェース分かるかもしれんけど
リファクタリングでボトムアップ的に導き出したインターフェースの方が
あとからメンテしやすいことだってよくある
>>689 >クラスもimplementできるようにしてほしい
意味がわからん
IDEにもよると思うけど、インターフェース抽出なんて30秒くらいでできるだろ
>>699 クラスを使ってるほうもインターフェースにしなきゃいけないじゃない
単純作業でも変更が広範囲に及ぶから結構しんどい
クラスをnewするところを除いて、どこも変更せずに
こっそり中身を入れ替えたいんだ…
Scala使えよ
構造的部分型があるからインターフェースなんか要らないぞ
interfaceにメソッド実装できるようにならなかっけ?
そう、それなら見なければいいじゃない
>>701 言いたいことはよく分かるぞ。最近はやっとこっちのほうが主流だからな。
けど、javaスレでstructural typeな言語使えって言われても・・・nominal type嫌いならなんでjavaスレに居るんだよ。
すんごい基本的な事かもしれんけど・・・
class testClassA{
private byte[] data;
void main(){
testClassB b = new testClassB();
data = b.getData();
b = null;
}
}
class testClassB{
private byte[] data1;
private byte[] data2;
byte[] getData(){
data1 = new byte[32];
data2 = new byte[32];
return data1;
}
}
↑の動作でb=null;した後ガベージコレクションが発生してもtestClassAのdataの中身は保持したままになってるって事でOK?
で、testClassBの中のdata1はメモリ上に残ったままになるけど、data2は他からの参照が無いって事で
ガベージコレクションで解放されるんかな?
教えてプリーズ!
yes
コンストラクタからは呼び出してはいけないメソッドがあって
どっかのバカが、やらかしちゃったんで、それを探し出したいんですけど、
たとえばこんなの
class Unko {
Unko() {
foo(); // アフォが追加したコード
}
void foo() {
assert なんとかかとか : "ゴルァ!コンストラクタから呼んじゃダメぽ!";
本来の処理...
}
}
この「なんとかかとか」に使えるスマートなコードを教えてくだしゃあ
>>708 assert !new Exception().getStackTrace()[1].getMethodName().equals("<init>");
assertを埋め込まなきゃいけないメソッドが分かってるんだったら
そのクラスのコンストラクタ見りゃいいだけだろ
何やってんだ
>>710 継承が多くて探すの面倒ってことかと思った。
本質的には初期化が終わってるフラグを持って、そのフラグが立ってなかったら例外でいいと思った。
Java SE 8 update11 キター
1:if (Date1 < Date3 && Date2 > Date3) { res = "ok";}
2:if (Date1 < Date3 || Date2 > Date3) { res = "ok";}
ORが||だと1と2で同じブーリアンになるよね?
不等号反転かつ全体の真偽値反転してるとかならともかく、
なんで同じになると思うんだ?
ただしDate1>Date3>Date2が条件
実際にに書いて同じになったから
そもそも何だこの質問?
717 :
デフォルトの名無しさん:2014/07/17(木) 17:54:19.08 ID:aUrLvZEm
Javaの勉強始めましたがいきなりつまづいています。可能ならば教えて下さい。
class hoge {
...
}
があってhogeのインスタンスを作るのに
hoge aaa = new hoge()
というように、なぜhogeを2回も書かないといけないのですか?
C#ならvarがあるよ
javaはちと遅れてるね
普通に1で書くんだろうけど2でも同じになったから聞いてみただけ
||と|の違いだと気づいたけど合ってるよね
>>717 違う場合があるから
List<String> list = new ArrayList<>();
721 :
デフォルトの名無しさん:2014/07/17(木) 18:02:57.10 ID:aUrLvZEm
717の続き
aaa = hoge()
や、せめて
aaa = new hoge()
って書かない(書かせない)理由が知りたいのです。
fugaってクラスもあったとして
fuga aaa = new hoge()
は当然エラーですよね
722 :
デフォルトの名無しさん:2014/07/17(木) 18:12:11.16 ID:aUrLvZEm
>>720 ありがとうございます。
そういう生成もあるのですね。
new hoge()はhogeクラスのコンストラクタを呼んでるからだと思う
>>721 変数の型指定が変数宣言を兼ねてるから…
C#を使えば幸せになれる
>>717 わけて考えろ。
1. hoge aaa;
2. new hoge();
1行目でhogeのインスタンスを格納(厳密にいうと参照)するためのaaaって変数を宣言してる。
2行目でhogeのインスタンスを作ってる。
これらを1行で書くと、
hoge aaa = new hoge();
となって、意味的には、hogeのインスタンスを格納するaaaって変数を作って、
そこに新しいhogeのインスタンスを作って代入してる。
newが必要なのは参照を返すからかなぁ…
c++だとfuga aaa;でインスタンスが作れるよね。
初期化時の引数指定する場合はfuga aaa(arg1, arg2...);
728 :
デフォルトの名無しさん:2014/07/17(木) 23:39:14.55 ID:uiWC/AQm
>>726 仰ることは分かります。
=new hoge()って書いてるんだから、aaaはhoge型と型推論してもいいんじゃない?記述が助長じゃない?と感じたんですよ。
生ビールを頼んだらジョッキに入れてくるのが当然でしょ? 湯呑みに入れてくる奴いないよね、って感じです
Cやったことあるなら宣言部分けると意味わからんからで納得しそうだな。
「宣言部分けて友達とかに噂されると恥ずかしいし・・・」
ああ、ガチなのか実際の型と宣言時の型が同じとは限らんよ
まあそれを言い出したら型推論の方が汎用性は高いんだけどな
>>728 冗長性を排した言語を使えばいいよ。
長年使ってるからかも知れないけど、この程度の冗長性が丁度よいんだよ。
糖衣構文増やしてるのもあまり好きじゃない。
Javaも十分糖衣構文増やしてると思うけどね
誕生以後の拡張はほとんど全部糖衣構文だろ
>>733 うん、だからそれが嫌だなーって思ってるということ。
IteratorとかAPI増える方が好み。
仕事だと合わせて使うけど。
// 個人の感想であり、生産性を保証するものではありません。
>>727 でもc++だとどこにインスタンスができるかいちいち把握しないといかんからなあ‥そういや c# と同じく auto が最近追加されたね
>>720 わざわざこういう書き方をするメリットは?
ArrayListの例だと、ArrayListがほぼListの実装でしかないから、そういう書き方をしてもあまり問題ないだろうけど、
List<String> list = new LinkedList<>()ととしてしまうと、Stack系のメソッドが漏れなく使えなくなる。
>>736 LinkedListを使うけどListのメソッドしか使わないことを明示する
protectedなメンバでListのメソッド以外の操作されたくないときとかあるんじゃね
>>736 後で挿入が多くなって遅くなった時、最初だけLinkedListに書き換えれるだけで済む。
つまり依存が少ない。
ならそもそも型について何も書かない型推論が一番依存が少ないことになるよね
フィールドや引数なら誰が触るかわからないからともかく、ローカル変数なら例えば「getとaddを持つ任意の型」と見なせる
その手の型推論はどこでうっかりLinkedListに成り下がるかわかったもんじゃないので
依存が少ないとは言えないんじゃね?
>>740 それを言うならローカル変数なら目の届く範囲だから依存しても構わないだろ。
Javaの中での書き方の話ししているのであって、型推論とかスレチ。
newしたら普通はfreeやdeleteが伴う訳だがgcが解決してくれる。
javaではクラスのインスタンスは全て参照だから必ずnewが利用される。
プリミティブな変数はその限りではないのでいちいちnewはしないが、javaの配列は配列オブジェクトなのでnewが必要。
みたいな?
それぞれのカードがどの場所にどういう順序で並んでいるかをデータ化するだけ
ああ、理解できた
ありがとうございました
なんか変に難しく考えてました
でもこれって同じ札が何度も出る可能性あるよな?
この場合どうしたらいいんだ?
一度出たものをどこかの配列に格納して
それを比べるってのは検討ついたがどう書けばいいんだ
そういうクラスってもうあるのか?
>>747 すいません
並び替えの表記ミスで同じ数字が出てただけでした。
ほんとすいません