1 :
デフォルトの名無しさん :
2010/07/20(火) 17:30:09
4 :
デフォルトの名無しさん :2010/07/21(水) 22:30:58
http://www.javadrive.jp/install/jdk/index5.html このサイトを見ながら環境設定をしているのですが、JAVA_HOMEの設定をして
コマンドプロント上でset JAVA_HOMEを実行させても
環境変数 JAVA_HOMEが定義されていません と表示されてしまいます。
システム環境設定で JAVA_HOME=c\java\jdk 1.6.0_21
と入力し、スペル間違いは無いはずなのですが。。
どなたか解決方法わかる方いませんでしょうか?
デフォのインストール場所そこじゃないよ。
(JDKをインストールしたディレクトリに合わせて変更して下さい)。
>>7 ちゃんとインストールしたディレクトリに変更してあります。
ちなみにF:\Java\jdk 1.6.0_21に保存したのでその場所を指定しました
多分、環境変数の変更がコマンドプロンプト側で読み込まれていないだけかと思う。 説明するのめんどうだから端的に、いっぺんログインしなおして試してみるといい。
>>9 ありがとうございます
一度再起動してみようと思います
ところで気になる事として、"jdk 1.6.0_21"と空白入れてるな。 今回の問題の次に、"F:\Java\jdk" というファイルが見つかりません、とか出るだろうと予言。 こういう場合に jdk のコマンドを使う際には > "%JAVA_HOME%\bin\javac.exe" test.java とか "" で囲む必要があったと思う。老婆心。
ああ、このサイトの方法はPATHに書いておくのか。 11 は不要。問題ない。
13 :
デフォルトの名無しさん :2010/07/21(水) 23:12:10
解決しました。ありがとうございました
>>11 さんもあらかじめ次のトラブルの予想をしてくれたようで・・・
ありがとうございます。問題なく解決できました。
最後にこんな初歩の初歩のような質問をして申し訳ありませんでした。
私もこのスレ住人のように質問に答える事が出来るくらいにJavaを理解していきたいと思います
このスレ立つ度に良くなってってないか
良くなってますか
悪い方に良くなってるといいたいんですね
17 :
デフォルトの名無しさん :2010/07/22(木) 11:51:14
>>16 もうちょっと日本語上達させてから書き込もうな
18 :
デフォルトの名無しさん :2010/07/22(木) 13:13:44
javaで、オブジェトの中身(変数、メソッド)を表示させる方法ありますか? または、ライブラリはありますか? inspect, describeなどは無いようですが?
21 :
デフォルトの名無しさん :2010/07/22(木) 16:38:59
ネット上の解説では、reflectはクラスの中を調べるとき使う例が多いですが、 オブジェクト(インスタンス)の中身でもOKですか? デバックでは「インスタンスの中が現在どうなってるか」って場面多いと思うんだけど、 そんなとき、インスタンスの状態調べるライブラリあってもよさそうだけど、無いですか。
22 :
デフォルトの名無しさん :2010/07/22(木) 17:16:23
kill -SIGQUIT <JVMのプロセスID>
>>21 自分でAPIドキュメント調べろ。19の好意に甘えるな。
インスタンスの中がどうなってるか俺が見てやるよ
25 :
デフォルトの名無しさん :2010/07/22(木) 22:14:54
jmap jhat
質問です。 flash使いで最近javaでandroid開発を始めたものですが、 文字列で変数にアクセスする方法を調べています。 たとえば(以下as3.0コード) var i0:int = 0;//int変数作成 trace( this[ "i" + "0" ] );//上記のi0変数にアクセスして0が出力できる みたいな事をjavaでしたいです。 色々調べたんですが探し方が悪いのか 見つからないので方法があれば教えていただきたいです。
>>26 クラスのフィールド変数ならリフレクション使えば出来る
Class clazz = Class.forName(クラス名);
Field f = clazz.getDeclaredField("i0");
f.setAccessible(true); // privateなら
int i = f.getInt(取り出したいクラスのインスタンス);
メソッド内の変数なら無理かと
1.6.0_21のServer VMで下記のコードを実行すると、 毎回結果が違うんですけど、変な風に最適化が働いてループ打ち切られてる? public static void main(String[] args) { int a = 0; int b = 0; for (int i = 0; i < 0x7FFFFFFF; i++) { a += i % 360; b++; } System.out.println(a); System.out.println(b); }
>>27 おおー、これです
早速調べたんですが、なるほど、APIで提供されている訳ですね
初めての・・・みたな本に書いてない訳だ
大変勉強になりました。ありがとうございます
>>28 Eclipse3.5同梱のJRE環境に限った話では、見た感じ問題なさそう。
-1073756799
2147483647
-1073756799
2147483647
-1073756799
2147483647
-1073756799
2147483647
-1073756799
2147483647
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)
サーバは知らない。
>>28 んなわけねーだろ、言語仕様で決まってるんだからさ
と思って実行してみたら、本当に動作がおかしいでやんのワロタ
32 :
31 :2010/07/23(金) 08:22:20
これでも十分おかしいな バグデータベースに報告ある? public static void main(String[] args) { int a = 0; for (int i = 0; i < Integer.MAX_VALUE; i++) { a = i; } System.out.println(a); }
ジエンオツ
複数のクライアントと一つのサーバの間で、以下の機能をsocketプログラミングで作りたいと考えています。 クライアントがサーバにファイルをアップロードすると、 サーバは接続済みの全てのクライアントにそのファイルを流す。 これを実現するためのサーバ側のコードで悩んでいます。 まずアップロードされたファイルを受け取るためにソケットからinputStreamを取得しますが、 これを各ソケットのoutputStreamに流す時に、どのように実装すればいいのか分かりません。 一つのinputStreamをfor文で複数のoutputStreamに流そうとしても、最初のoutputStreamにしか流せないようです。 これはinputStreamが内部でどこまでデータを取り出したかを管理(?)してるからでしょうか。 他の案としては、一時的なファイルを作ってしまってそのファイルを複数のソケットが読めばできそうですが どう考えても良いやり方とは思えません。 結局、巨大なbyte配列で一時的にデータを溜めるぐらいしか思いつきません。 何かよい方法は無いでしょうか。
複数のクライアントが同時にファイルをUP状態でも全部メモリにおさめるつもり?
36 :
34 :2010/07/23(金) 16:07:30
>>35 返信ありがとうございます。
そこまで考えていませんでした。。
なるほど確かにメモリに溜めるのは無理がありますね。
ということは、ファイル化する方法は悪い方法ではないのでしょうか?
ファイル名管理したりなど少し手間がかかりそうですが。
inputstreamから数キロバイトの配列に読み込んで、全部のoutputstreamへ送信 inputstreamから数キロバイトの配列に読み込んで、全部のoutputstreamへ送信 の繰り返しじゃいかんのん?
38 :
デフォルトの名無しさん :2010/07/23(金) 18:05:08
ObjectAnalyzer
>>34 恐ろしい
こんなコード書かれたらたまらんわ
40 :
34 :2010/07/23(金) 18:29:54
>>37 おおなるほど!これでいけそうです。
while (-1 != (n = inputStream.read(w))) {
outputStream.write(w, 0, size);
}
こんな感じのお決まりコードをコピペして使ってたから
出力部分はひと塊としか考えられていなかった。酷い頭の堅さだ。。
アドバイスありがとうございました。
いえいえ
42 :
デフォルトの名無しさん :2010/07/24(土) 13:13:07
こんにちは。 public class Parent { Child child; } public class Child { Parent parent; } こんなふうに相互に参照するとインスタンスを消しても、 参照が残ってしまってメモリリークするという噂を聞いたんですが、本当ですか?
いいえ
45 :
42 :2010/07/24(土) 14:37:12
どうもありがとうございます。 JavaのGCはそんなにアホではないですよね。
46 :
44 :2010/07/24(土) 14:38:24
あ、この項だけじゃ説明になってないな。スマン、なしなし。
>>34 Streamってそんなもん。1回読んだらそれっきり。
BufferedStrem(BufferedInputStream)使えば一度読んだところにも戻れるよ。
まあ、
> 巨大なbyte配列で一時的にデータを溜める
と考え方は同じだけど。
49 :
42 :2010/07/24(土) 15:06:24
参照カウント0のものを解放する方法だとリークするけど、 JavaのGCは到達不可能なものを解放する方法なので大丈夫ということですね。 どうもありがとうございます。
new ClassA() { //code } こういうふうに書かれるものってなんですか?キーワードを教えて下さい
Eclipseでbuild.xml右クリックするとant実行って出てくるけど そういう、特定のファイル名に対して外部アプリケーションを関連付けるっていうのは どこで設定してるの? 変更・追加可能?
ライブラリ類の配布アーカイブの中にjavadocって大抵同梱されてるけど これってeclipseから参照されたりするの? 各クラスの説明としてポップアップしたりとか
>>52 設定の「一般」「コンテンツ・タイプ」のXMLのAntビルドファイルかと思う。
>>53 するする。jarのプロパティにある、ソースとjavadocを指定する項目。
55 :
53 :2010/07/24(土) 21:56:05
今eclipseにEXT_LIBS_DIRっていう変数を作って、 複数プロジェクトで共通の外部ライブラリは同じフォルダにまとめて参照しようとしてるんだけど 外部ライブラリっていう単位でまとめるとjavadocのファイル名が被るんだよね index.htmlとか 普通はどうするもの?
56 :
53 :2010/07/24(土) 21:57:59
書いた途端自己解決した 普通にさらにサブフォルダ作ればいけるわ
58 :
デフォルトの名無しさん :2010/07/25(日) 03:06:54
>>57 staticメンバしかないからインスタンス作らずに、
FFT.fft(xxxx);
で呼べます。
エクリプスでパッケージエクスプローラーってあるけど パッケージってどういう単位なの? 全く関係無いプロジェクトがパッケージエクスプローラーに並列に並んでるのっておかしいもの? 階層化したい気がしてきたんだが
パッケージはいくつかのクラスを適当に (だいたいは機能別に) まとめたものです java.lang とか java.util とか java.io とかがパッケージです 自分の作ったクラスを特にパッケージ化してないのなら、デフォルトパッケージとかいうのに入ってるはずです プロジェクトを階層化というか何かグループ化したいのなら、ワーキングセットが役に立つかもしれません
>>60 ワーキングセットが求めていたものだった
thx
62 :
デフォルトの名無しさん :2010/07/25(日) 20:22:22
if (Math.random() > .5) { return frogMan; } ドット5ってなに? guiceのサンプルコードにあったんだけど
0.5 のことです
ubuntuでsynapticから入れた gnu.getopt.Getoptを使いたいんですが、 ない言われます. どなたか考えられる原因をエスパーして下さい
たぶん、ないんじゃないかな
66 :
デフォルトの名無しさん :2010/07/26(月) 01:39:57
>>64 パッケージ名からいってJavaのコアライブラリじゃない。
何かのjarファイルをCLASSPATHに含む必要があります。
67 :
飛び出せ!名無しくん :2010/07/26(月) 02:32:06
Rクラスに以下を追加したら自動的に削除されました。 public static final class id { public static final int label=0x7f050000; } そして、以下のメッセージが表示されました。 R.java was modified manually! Reverting to generated version! なぜ手動で追加できないんですか?
自動生成されるファイルだからです 手動で編集してもまたすぐに自動生成されたものに上書きされますので無駄です
69 :
デフォルトの名無しさん :2010/07/26(月) 14:41:54
javaプログラムから他のプログラムを起動し終了するのが目的です Runtimeを利用して Runtime rt = Runtime.getRuntime(); rt.exec("hoge.exe"); として起動はできたのですがそのプログラムの終了の仕方がわかりません ご教授ください
>>69 Process proc = rt.exec("hoge.exe");
//強制終了したいなら
proc.destroy();
//終了を待ちたいなら
proc.waitFor();
71 :
デフォルトの名無しさん :2010/07/26(月) 17:15:25
public class B extends A { とあって、Bを直列化する場合、 AだけにserialVersionUIDを明示すればよさそうに思うけど、 Bにも明示しなければいけないとある。 何故、serialVersionUIDはAに継承できないんですか?
仮に public class B extends A implements Serializable {} みたいにフィールド宣言してないから serialVersionUID は A に宣言してあればよいのでは? という疑問だとする。 次のバージョンで B に public class B extends A implements Serializable { private int field; } みたいにフィールド追加によって直列化互換性を破壊する可能性があるんだから、 B 自体にも serialVersionUID は必要。
>>58 ありがとうございます。
javaはパッケージを新しく追加しなきゃいけないものとデフォルトで使えるものをどう区別しているんですか?
>>28 >>32 を1.6.0u21 で-serverつけて実行してみたけど特にへんな結果にはならず…
>>74 なんでだろw
OS: WindowsXP pro sp3
>java -server -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)
>java -server Test
124278795
692451
>java -server Test
7564635
42211
>java -server Test
9223011
51427
>java -server Test
9401275
52451
>java -server Test
8854651
49379
>java Test
-1073756799
2147483647
78 :
77 :2010/07/26(月) 21:53:26
eclipseでコンパイルした物は変な結果になって、 jdkのjavacでコンパイルした物は正しい結果になったわ。 eclipseとjavacでコンパイルした物を、jadで逆コンパイルしても同じソースになったけど、 javapで逆アセンブルしたら、少し違うコードが出力されていた…けど俺には読めないw
そんな時は黙ってZIPに固めて上げるものだ
80 :
77 :2010/07/26(月) 22:35:07
81 :
デフォルトの名無しさん :2010/07/27(火) 01:49:03
昔からEclipseでビルドしたクラスの挙動がおかしいことはたまにありましたよ。 特にswitch文はSun(当時)の純正VMがJava言語仕様を踏み倒した実装だった のでEclipse側が絶対こっちが正しいと主張して、既知の非互換になっていた。 eclipseのクラス出力パスとantのコンパイル出力先を違うパスにして、antの javacタスクにfork="true"およびexecutable="javacのフルパス"を入れると、 ant経由なら必ずJDKでコンパイルされます。
82 :
デフォルトの名無しさん :2010/07/27(火) 09:09:32
>>72 serialVersionUIDで互換性維持はわかるけど、 「B自体にもserialVersionUID が必要」がわからない。
BはAを継承してるけど、AのserialVersionUID は継承できないってこと?
(仕様がそうなっているのなら、何のために)
Aを継承するB, Bを継承するCがあった場合、A, B, CのそれぞれのフィールドにserialVersionUIDを
明示せず、Aのみに明示すればよい方法はありますか。IDは全部同じ。
>>82 継承はできない。java.io.Serializableの仕様に従って
B、C にはコンパイル実装依存のserialVersionUIDが勝手に付加される。
警告黙らせるだけなら
javac -Xlint:-serial B.java C.java
IDEの警告黙らせたいなら使ってるIDEのヘルプ漁れ。
×コンパイル実装依存 ○コンパイラ実装依存
85 :
デフォルトの名無しさん :2010/07/27(火) 10:48:15
>>83 継承はできない。java.io.Serializableの仕様に従って、だけど、
たしかに、マニュアルに「明示的に宣言」とある。
次の疑問は、その理由。継承させると、どのような問題を邪気させるというのだろうか。
>>85 >>72 に書いてあるけど、たとえば
//バージョン1
class A implements Serializable { public static final long serialVersionUID = 0; }
class B extends A implements Serializable { }
//バージョン2
class A implements Serializable { public static final long serialVersionUID = 0; }
class B extends A implements Serializable { private int field; }
で、BがAのserialVersionUIDを継承できたとする。
するとバージョン1のBを直列化したものとバージョン2のBを直列化したものには互換性がない、
にもかかわらずserialVersionUIDが同じという事態が発生する。
serialVersionUIDは大抵privateなので
継承元がserialVersionUIDを宣言しているかを一々確認するのは、
素直にBにserialVersionUIDをつけるより手間がかかる。
serialVersionUIDが付いているかどうかだけならコンパイラは簡単にチェックできるが
AのserialVersionUIDを継承できる場合にBがAのserialVersionUIDを継承しつつ、
前のバージョンからフィールドを追加したかまではコンパイラはチェックできない。
いい話だなー
88 :
デフォルトの名無しさん :2010/07/27(火) 14:29:22
>>86 72の意味が理解できなく。。。
互換性ね。でも、
1)serialVersionUID=1Lで、AのインスタンスをwriteObjectでファイルに保存し、
その後、Aのフィールドにint fieldを追加してクラスAを変更してからでも、readObjectでdeserializeできるよね。
変更の仕方によっては、互換性なくなると思うけど。
2)もちろん、フィールド変更しなくてもserialVersionUID変更すると、互換性はない。
> その後、Aのフィールドにint fieldを追加してクラスAを変更してからでも、readObjectでdeserializeできるよね。 それはとりあえずエラーが出るか否かを気にしてるだけ。 互換性があるかどうかとは関係ないし、実装が変わればエラー出ても文句言えない。
90 :
デフォルトの名無しさん :2010/07/27(火) 19:13:07
エクリプスで 実行→実行の構成→Javaアプリケーション で新規作成して共通タブから実行/デバッグのお気に入りに表示するようにチェックしたんだけど どこに出てくるの?これ 実行のとこ開いても、「サーバで実行」「Java Bean」の2つがあるだけなんだけど ここの一覧に出てくるのかと思ってやったんだけど
91 :
90 :2010/07/27(火) 20:45:13
もしかしてヒストリーとごっちゃになって出てくるのかな?
エクリプスのサポート係に電話して聞け
public int compareTo(Object o) { double h1 = this.height; double h2 = ((Student)o).height; return h1 > h2 ? 1 : -1; } tp://www.lcv.ne.jp/~kenmio/yomimono/yomimono105.htm Student型をObject引数で受け取って、それもまたStudent型にキャストしてますが、 引数を最初からStudent型にはできないのですか。 それからStudent型の引数であれば、Object引数で受け取ったからといって 引数そのものが変わるわけでもないし、わざわざキャストしなくてもStudent型 のインスタンスだとコンパイラが判断できてもおかしくないと思うのですが。 スーパークラスのメソッドをサブクラスのインスタンスからアクセスできても その逆はできないというきまりになっているようですが、この場合の引数は Student型と決まっているのでそれはないと思うのですが。
public int compareTo(Student o) と public int compareTo(Object o) は別々の異なるメソッドですので、 public int compareTo(Student o) を実装しても、Comparableを実装したことにはなりません。 引数がObjectなら、Student以外のObjectを渡すことも出来るので、 本当にStudentかどうかわかりません。 publicメソッドはどこからでも呼べますので、呼び出し元は不定です。
netbeansの方がsun純正って意味で変な非互換を回避できたりするのかな
>>95 Eclipseはそのまま使うとIBMのjavacやらJVMが使われるから、
何も考えずに使う分には、まあそうとも言える。
けどそれってほんの入り口だし、どのIDEを使うかを決めるのには
他にももっと判断すべきことがあると思う。
メモリ使用量眺めてたら、netbeansの方がeclipseより軽かったけど 普及率でeclpseを使うしかなさげ
$ java Test.class Exception in thread "main" java.lang.NoClassDefFoundError: Test/class Caused by: java.lang.ClassNotFoundException: .home.saruno.ドキュメント.JAVA.study.Test at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Could not find the main class: Test. Program will exit. ubuntu10.04、コマンドプロンプトでTest.classをコンパイル後に実行すると上記のようなエラーが出てしまいます。 eclipse上ではコンパイルも実行も出来るのですが、どうすればコマンドプロンプトで実行できますか?
$ java Test
ああすいません、 $JAVA Test でも駄目です
なにかnamespace使ってる?
$ java -classpath . Test
我々には難しすぎるので別スレで質問してください
$ジャヴァ Test としてください。(空白は全角です。)
package home.saruno.ドキュメント.JAVA.study; とかやってるだろ?
/sutudyに移動してコマンドで java Test とやったら出来ました、お騒がせしました。 jaba /home/〜〜〜/Testのようにパスの指定しての実行については調べてみます
回答者が優秀なのでどんどん難問が解決していきますな
そんなことどうでもいいから金くれ
データを貯める場所ってLucandraに貯めるべきでしょうか? それともデータの本体はCassandraでインデックスのみLucandraに置くんでしょうか?
110 :
デフォルトの名無しさん :2010/07/30(金) 22:05:25
>>93 メソッドhungupがクラスTelephoneで定義されているからです。スーパーク
ラス(Telephone)で定義されているメソッド(hungup)を、そのサブクラス
(CellularPhineやFixedPhone)で上書きした場合、インスタンスの型
(CellularPhineやFixedPhone)でその振る舞いが上書きしたメソッドに従う
ということになります。これをポリモルフィズムと言います。
一方、ObjectはStudentのスーパークラスですが、インスタンス変数height
は持っていません。Object型のインスタンス変数heightについて何かしようと
思えば当然エラーが出ます。さらにポリモルフィズムはインスタンス変数では
なく、メソッドの話です。
ていうか、ThreadLocalとか初めて知ったわ 難しいなLucandra
>>111 StrutsとかつかってWebアプリ作っていると馴染みは薄いね
でもたまーに使わないとできない要件とかあったりするよね
>>112 Javaで全然仕事したことないから分からん
J2EEでフレームワークとか使わずWebアプリ作ってる会社でバイトしたことあるけど そういう事例って結構あるもんなのかな?
115 :
デフォルトの名無しさん :2010/07/31(土) 23:52:36
データベースから静的htmlファイルを一括作成したいのだが、 どういうやり方が一般的? ある程度htmlエディタでデザインを整えたhtmlファイルがあって、 それに表を挿入するパターンなのだが。
xsltじゃね?
117 :
デフォルトの名無しさん :2010/08/01(日) 03:21:38
ファイル名が00,01,02…のような規則的なテキストファイルを順番に読み取って ある行の内容が入力内容と一致したらそのファイル名を出力する といったプログラムを書きたいのですが うまくいきません line = reader.radLine(); がうまく機能していないようで 試しに System.out.println(line); で表示したところ □a□s□dd□ のようなよくわからない文字列を表示してよくわからなくなってしまました どなたかご教授ください
困った時のJISAutoDetect
わからなくなってしまましたかそうですか
わからない子はどんどんしまっちゃおうねぇ
よくDAOで Hoge select() { try{ PreparedStatement stmt=...; ResultSet rs=...; // ... } finally{ try{ rs.close(); stmt.close(); } catch(SQLException e) {} } というプログラムを見るのですが、これだとrs.close()が例外を投げた場合 stmt.close()が呼び出されないのですが、rs.close()が失敗するとstmt.close()も 必ず失敗するという決まりがあるのでしょうか?
124 :
デフォルトの名無しさん :2010/08/01(日) 22:43:10
じゃば java というような 英語の文字列と日本語の文字列を区別することは可能でしょうか
Character.UnicodeBlock.of メソッドを使えばそれぞれの文字の種類はわかりますので、 その文字列中の各文字を調べてひらがなとかが混じってれば日本語だと判定するとかでどうでしょうか。
126 :
デフォルトの名無しさん :2010/08/01(日) 23:15:17
netbeansでJNIやろうとしてもうまくいかないんですがC/C++のほうがおかしいのかなあ。 英語でいろいろ問題があることが挙げられてるけどあれだけでも解決しない。
>>127 boolean addPoint の有効範囲を制限してる。
もしくは書いた人の美意識を満足させてるんじゃないかと。
IEでファイルのダウンロードをする部分で解決できずに困っていて質問です。 ファイルのダウンロードはすでに問題なく動作しており以下のようになっております。 HTML側 onclick="location.href='./OpenFile?file=' + hensu;" Servlet側 strFile//受け取ったファイル名 ServletOutputStream out; out = response.getOutputStream(); File inFile = new File(strFile); InputStream in = new FileInputStream(inFile); int data = -1; long longCount = 0; while ((data = in.read()) != -1){ out.write(data); longCount++; if(longCount % 200 == 0){ out.flush(); } } in.close(); out.close(); int dispCount= getFromDatabase('DispCount'); dispCount++; setDatabase('DispCount', dispCount); この状態でHTMLをクリックするとファイルのダウンロードダイアログが表示されます。ダイアログを表示した時点で「表示カウント」を +1してDBに書き込んでいるのですがキャンセル時だけ+2されているようで困っています。原因をご存知の方いらっしゃいませんか? IE6,7,8で同じ tomcat-5.0.30 j2re1.4.2_08
130 :
デフォルトの名無しさん :2010/08/02(月) 20:14:12
Strutsというものを学習しなければならなくなりました。 よろしければ、概要から発展まであるわかりやすいサイトがあれば教えてください。
131 :
デフォルトの名無しさん :2010/08/02(月) 21:08:26
>>125 勉強になりました
ありがとうございました
>>128 変数の有効範囲が変わるんですね。
解説ありがとうございます。
134 :
デフォルトの名無しさん :2010/08/03(火) 11:23:00
>>132 ありがとうございます。
よろしければ日本語のサイトもご存じであれば教えてください。
ガスライティング
わろた
137 :
デフォルトの名無しさん :2010/08/03(火) 21:57:13
new Date(); で得た dd.getHours() を 変数a に入れるにはどうすればいいですか? int a = dd.getHours(); ではダメなんですが・・・。
>>137 普通にとれたけど。ddにnew Date()は代入している?
int a = new Date().getHours();
System.out.println(a);
ところでDate#getHoursは、@Deprecatedだからあまり使うべきじゃぁない。
139 :
デフォルトの名無しさん :2010/08/03(火) 23:14:51
>>138 自己解決しました。
もう1つ質問させて頂きたいのですが、
dd = new Date();
date = dd.getDate();
として、dateに日を入れるようにしました。
次に、
<script language="JavaScript" src="./maru.pl"></script>
<script language="JavaScript">
<!--
document.write(date); #####
// -->
</script>
上の#####のwrite( ) の中に変数(date)を入れたいのですが、
どうすれば変数扱いになるでしょうか。
JavaScriptワラタ
maru.pl これってパール?w
JavScript=釣り、だろ
// --> 今どきの釣りはこれだろw
そんなことどうでもいいから金くれ
146 :
デフォルトの名無しさん :2010/08/04(水) 02:16:36
完全に同時に実行される可能性のあるJavaアプリケーションで、 プロセス毎にユニークな(プロセスID的な)値を得る方法を教えてください。 最初は疑似乱数を使用する方法を考えたのですが、 この場合、シード自体がユニークな値の必要があります。 他に考えた方法 B. JNIもしくはJNAを使用してプロセスIDを取得する C. GUID発行サーバを設置する
VMIDってどうにかして取れないんだっけ?
148 :
146 :2010/08/04(水) 03:57:50
複数行の文字列 text = "line1\nline2\nline3\nline4"; がある時に"line1\nline2\nline3" と "line4" を取得するために 以下のようなコードを書いてるんですが長すぎる気がします。 もっとスッキリした書き方はできないでしょうか? String str1 = ""; String[] arr = text.split("\n"); for(int i = 0; i < arr.length - 1; i++){ if (i == arr.length - 2) str1 += arr[i]; else str1 += arr[i] + "\n"; } String str2 = arr[arr.length -1];
>>149 String text = "line1\nline2\nline3\nline4";
String str1 = text.substring(0, text.lastIndexOf("\n"));
String str2 = text.substring(text.lastIndexOf("\n") + 1);
>>150 lastIndexOfなんて便利なメソッドがあったんですね。
ありがとうございます。
画像のことで質問させてください。下記のように「starship_image」変数に 「starship_state01.png」画像を読み込み、その後、同じ 「starship_image」変数に「starship_state02.png」を 読み込むのは問題無いのでしょうか? private Drawable starship_image; . . starship_image = context.getResources().getDrawable(R.drawable.starship_state01); starship_image.setBounds(x, y, theWidth, theHeight); starship_image.draw(canvas); starship_image = context.getResources().getDrawable(R.drawable.starship_state02); starship_image.setBounds(x, y, theWidth, theHeight); starship_image.draw(canvas);
たぶん大丈夫だと思うけど、何が起こったら問題なん?
154 :
デフォルトの名無しさん :2010/08/06(金) 00:26:58
Java習い始めたばかりなんですが、どなたか 九九の表の作成方法を教えてください。
そんなレベルから人に聞いてはいけない
156 :
152 :2010/08/06(金) 01:32:27
>>153 レス、ありがとうございます。
他のプログラミング言語(Objective-c 等)では、他のイメージを同じ変数
に読み込む場合、一度メモリからリリースしておかないとメモリリークに
なってしまうので、Java では大丈夫なのかなと思い質問させてもらいました。
大丈夫なのですね。ありがとうございました。
>>154 System.out.println("1 2 3 4 5 6 7 8 9");
System.out.println("2 4 6 8 10 12 14 16 18");
System.out.println("3 6 9 12 15 18 21 24 27");
System.out.println("4 8 12 16 20 24 28 32 36");
System.out.println("5 10 15 20 25 30 35 40 45");
System.out.println("6 12 18 24 30 36 42 48 54");
System.out.println("7 14 21 28 35 42 49 56 63");
System.out.println("8 16 24 32 40 48 56 23 72");
System.out.println("9 18 27 36 45 54 63 72 81");
159 :
デフォルトの名無しさん :2010/08/06(金) 03:44:58
↓みたいなコードは安全でない可能性があると思ったのですがどうなんでしょうか? synchronizedブロック実行中にobjectそのものにnullを突っ込まれたらNullPointerで落ちますよね? privte static Hogerable object; synchronized (object) { if (object != null) { return object.doHoge(); } }
リフレクション使わなけりゃprivateなフィールドに外部からアクセスできないんだから、 クラスの設計者がちゃんと作ってりゃ大丈夫じゃね? てかそのコードだとsynchronizedの後のnullチェックが良くわからない。 objectがnullの場合synchronizedのところでぬるぽじゃね?
synchonizedせずにobject触るようなエロいヤツがそのクラス弄れるって想定なんじゃないの?
162 :
デフォルトの名無しさん :2010/08/06(金) 13:46:38
[ファイルMain.java]
public class Main {
public static void main(String[] args) {
Person x = new Person("太郎", 5);
x.who(); //@´
x.who("次郎"); //A´
x.who(10); //B´
x.who("次郎", 10); //C´
}
}
http://www.lcv.ne.jp/~kenmio/yomimono/yomimono11.htm 添付ファイル「Java謎+落とし穴」(前橋和弥)によると、下の場合だとメソッドオーバーロード
できないとのことですが、引数の型を自動選択するのがオーバーロード機能ではないですか?
class ShapeDraver {
Static void draw(Policyline policyline){略1}
Static void draw(Circle circle){略2}
Static void draw(Rectangle rectangle){略3}
}
void drawAllShapes(Drawable drawable){
for(int i=0 ; i<shapes.length ; i++){
ShapeDrawer.draw(shape[i]);
}
}
>>162 オーバーロードはされる。
ただし、オーバーロードされたメソッドの中からどのメソッドを呼ぶかは、
コンパイル時に決定される。
実行時に解決したいなら
interface Shape { void draw(Renderable target); }
class Circle implements Shape { public void draw(Renderable target){ /*円を描く*/ } }
みたいにオーバーライドした方がいい。もしくは、
if (shapes[i] instanceof Circle) ShapeDrawer.draw((Circle)shapes[i]);
みたいに分岐するか。
164 :
154 :2010/08/06(金) 18:41:16
お願いします。
>>157 説明不足ですみません、単に表を表示させるのでなくて
プログラムに計算させてcmd上に表示させたいのです。
>>160-161 質問が悪かったかもですが、つまりsyncronizedブロックは
・オブジェクト操作
・変数への代入そのもの
の両方をブロックしてくれんの?
という質問です。
>>165 他のスレッドが synchronized (object) している間はブロックの中に入れないだけだぞ。
見た目が synchronized (object) であっても参照先が別のオブジェクトだったら素通しだし。
なんかバグ入れそうな悪寒
>>165 ロックを持ってるのは変数そのものじゃなくて、変数が指してる先のオブジェクトだということを理解しているか?
ArrayList<Integer> を toArray を使って int[] にコピーしようとすると 「Object型は int型に変換できません。」というエラーが出てしまいました。 ArrayList が Integer であることを明示するにはどこに指定したらよいのでしょうか?
> ArrayList が Integer であることを明示するにはどこに指定したらよいのでしょうか? ArrayList<Integer>
>>169 import static org.apache.commons.lang.ArrayUtils.toPrimitive;
:
:
@SuppressWarnings("serial")
ArrayList<Integer> arrayList = new ArrayList<Integer>(){{
add(1);
add(2);
add(3);
}};
Integer[] integers = arrayList.toArray(new Integer[0]);
for(int i : integers) System.out.println(i);
int[] ints = toPrimitive(arrayList.toArray(new Integer[0]));
for(int i : ints) System.out.println(i);
Stringの変数をそのままif文のチェックに使いたいのですが、 どうすればよいでしょうか。 String test ="a1 > a2"; int a1 = 1; int a2 = 2; if(test){ //ここの条件チェックで、このままだとtestをBooleanにするか?と聞かれます System.out.println("OK"); else 〜〜〜
>>172 ひょっとして、a1がa2より大きかったら、if文の中に入って欲しいのか?
そしたらjavax.script.ScriptEngineしかなさそう。
もしくはevalを実装しているライブラリを探すしかないと思う。
174 :
デフォルトの名無しさん :2010/08/07(土) 09:33:53
マニフェストファイルを記述した実行可能jarファイルにおいて、ダブルクリックによって起動した時と、java -jar hoge.jar によって起動した時で なにか制約の違い(おそらくマルチスレッドがらみ?)はあるんでしょうか。 全く同じ実行可能 jarファイル(antによってマニフェスト生成)を ・ダブルクリック(Windows Vista + java1.6.0_14-b08)によって起動 ・コマンドラインからjava -jar hoge.jar (←クラス、クラスパスは記述せず、マニフェストを参照) とした場合で動作が違うようなのです。 と、いうよりも前者のダブルクリック起動だとまともに動作しません。 現象としては2つ目のスレッドを発行すると動かず、ログすら出さずに消失します (1つ目のスレッドは普通に動作します)。 もちろんeclipse上では完全に動きます。
>>174 ですけど、暫定解決しました。
関連付けがjreでコマンドラインのパスはjdk/jreになってたのが原因くさいです・・
5時間もこんなことで;ORACLEめぇえええ・・もうすこし検証します;
>>162 javaの謎の6.1.1にもあるように、コンパイルの段階で、引数が異なる同名
のメソッド(この場合三つのdraw)は別メソッドとして扱うように変換される
ということです。これがオーバーロード。実行時に引数の個数や型によって、
どのメソッドが呼ばれるか判断されます。
3.2.1のリストにあるように、配列shapesの型はShapeであって、あくまでコ
ンパイラはshapes[i]の型はShapeであるとみなします。その各要素にどのイン
スタンス(Polylineなのか、Circleなのか。。)が代入されるかは実行時でな
いと分かりません。よって、6.1.2のメソッドdrawの呼び出しでは、引数
shapes[i]のインスタンスの型がコンパイル時には判明しないので、上のどの
drawを呼び出すべきが決定できないということになります。つまりコンパイル
できないのでエラーになります。
言語規定 5.3 メソッド呼出し変換 「メソッド呼出し文脈は,恒等変換(5.1.1), プリミティブ型拡大変換 (5.1.2), 又は参照型拡大変換 (5.1.4)を可能とする。」 は、参照型縮小変換は不可能とするという意味じゃない? 縮小変換ってごく特殊な場合を除いて実行時エラー起こすよな。
>>171 int と Integer は別物なんですね。
同じものだと勘違いしていました、ありがとうございます。
プリミティブ型を覚えるよろし
180 :
デフォルトの名無しさん :2010/08/07(土) 21:41:27
>>173 ありがとうございます。
ヒントだけでも助かります。
調べてみますねー。
Javaって完全に衰退気味なのに、皆さんは何が好きで使ってるんですか? もう後戻りできないとか、他に取り柄が無いとかですかね?
最近じゃObjective-Cにすら勢い抜かれてるらしいですし。。 Javaなんか使い続けてて仕事無くならないですかね?
webと携帯のドカタ仕事でがんばります
184 :
173 :2010/08/07(土) 23:32:31
>>180 文字をif文の判断対象にするようなことは普通できないし、するべきじゃないと思う。
だけど、もし自分が「何とかしてJavaScriptのevalのようなことを実現しろっ!」って
すごまれたら、ScriptEngineで工夫して何とかしようとするかなぁ。といった感じ。
>>181 >>182 正直、次から作るシステムはScalaで作りたいww
Javaが古めかしい言語であることに異論はない。でも言語の学習コストなんてたかが知れていると思うな。
LISPをしらない自分はScalaの文法は衝撃だったけど。まぁ慣れだよね。
186 :
デフォルトの名無しさん :2010/08/07(土) 23:52:50
10年経っても.Netに追いつかれないJavaは大したものだと思う
おい、やめろ Javaの悪口hそっこまでだt
>>182 いまだにコボラーのおっさんが幅きかせている世界もあるんだぜ
tomcatだけ飯食ってる知り合いがいる。 プログラムは全く書かないらしいが、徹夜漬けの俺より給料高い。
質問させてください。 Mirror API では com.sun.mirror.declaration.AnnotationMirror.getElementValues を使ってアノテーションのパラメータが、 明示的に与えられたものか、 default によって与えられたものかを 区別することができると思います。 リフレクションAPIを使ってこのような区別をしたいのですが可能でしょうか? もし可能であればやり方を教えていただければと思います。
>>184 一応出来ました。ありがとうございました。
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("js");
int a1 = 2;
int a2 = 1;
String judge = "a1 > a2";
String test = "var a1="+a1+";var a2="+a2+";if("+judge+"){println('ok');}else{println('ng');}";
se.eval(test);
この方法でどうしてもやれっていう訳ではなくて、
自分が今無理矢理やろうとしている事が、
どう実現出来るか判らないので、質問させてもらいました。
DBと連携させて、変数枠10個くらい毎回動的に入れたものを
条件値で分析調査したいと言った時に、
条件値も同じくDBに入れたとすればString値だし、
どういう実装方法がいいでしょうか。
a1 > a2 のときもあれば、a1 < a2 < a3 やら 1.1*a1 > a4
とかもあると思うんで。
学生には衰退気味に見えるだろうな でも俺の回りじゃまだまだjava案件だらけだぜ
バージョン間やOS間、VMベンダー間の互換性が高いというメリットがあるからまだ10年はもつよ。 すくなくとも.NETやPHPで組まれたアプリよりJavaアプリのほうが、20年後も(保守担当者にJavaラー死ねよと愚痴られながら)動いてる可能性が高いだろう。
自分が扱えない言語は廃れた事にしておかないと不安なエンジニアが世の中にはいるらしい ただWindows系の言語と比べると覚えることが少ない(=簡単な)Javaを対象にしてるのが珍しい
{1,2}を与えたら{{1,2},{2,1}} {1,2,3}を与えたら{{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}} というように配列の要素を並び替えてできるすべての配列の配列を返すメソッドはどうやったら作ることができるのでしょうか?
総当たりで全パターンやればいいじゃん。 どっちかというと算数の問題だろ。
単純にロジック組めないということかな。 再帰的メソッドとかでやってみたらどうでしょう?
組み合わせ取得とか、commons Mathとかに普通にありそうだな。
このスレで解決した質問の数0
200 :
デフォルトの名無しさん :2010/08/10(火) 20:12:31
Object o が null だったら、"ぬるl" という固定文字列を、 o が null じゃなかったらクラス名を、String className という変数に入れたい。 String className; Object o = ....; if (o == null) className = "ぬる"; else className = o.getClass().getName(); これは動く。 3項演算子にしたくて、 o == null ? className = "ぬる" : className = o.getClass().getName(); は、o == null のところでコンパイルエラーが出る。 ・Eclipse で、o == null のところに赤線が出て、 == にカーソルをマウスオーバーすると 「トークン "==" に構文エラーがあります。AssignmentOperator 蛾無効です」とポップアップが出る。 ・null にカーソルを合わせると、「型の不一致: null から boolean には変換できません」とポップアップが出る。 どうしてでしょうか? o == null も式だと思うのですが・・・
className = o == null ? "ぬる" : o.getClass().getName();
202 :
200 :2010/08/10(火) 20:22:02
演算子なんだから演算してるんだよ。 「条件式 ? 式1 : 式2」ってのはまるごとまとめて「値 * 値」や「値 + 値」や「"あ" + "ほ"」と同じようなもん。 ソースの文中にポツッと書いただけじゃ何の意味もない。 なんかの変数やらに代入して初めて意味を持つ。
204 :
200 :2010/08/10(火) 20:32:31
なるほど、 int i = a + b; で、 a + b の箇所で a と b を演算して、その結果を i に入れているわけですが、 同様に className = o == null ? "ぬる" : o.getClass().getName(); とすると、三項演算子によって得られた結果("ぬる" か o.getClass().getName()) が o に代入されるというわけですね。 すごくよくわかりました! 三項演算子の箇所全体が、なんらかの右辺(左辺でもいいか)に来ると覚えよう。] 余談までに、いきなり 1 + 1; という行をボツっと書いたら、同様のコンパイルエラーになりました。
>>202 言語仕様的に「文」になれる「式」の種類は決まってる。
条件式はその種類に含まれないから、そのままでは「文」になれない。
「文」になれるのは代入、インクリメント、デクリメント、メソッド呼び出し。
className = o == null ? "ぬる" : o.getClass().getName();
は、右辺が条件式、の代入なので「文」になれる。
206 :
200 :2010/08/10(火) 20:37:06
>>204 の誤記:
誤: o に代入されるというわけですね。
正: className
>>205 さんもどうもありがとうございました。
最近 Java から ruby をやっているのですが、ruby だと「それは式だ」みたいなことをよく言われますが、
あらためて Java での式とはなんぞや、を勉強しなければと思いました。
>>204 >o に代入されるというわけですね。
oには代入されねぇよww
>>202 そのページの
> a > b ? max = a : max = b;
自体が間違い。
検証もしてないようなコード書いてるページなんて捨ててしまえ。
何故エラーになるかというと、最大の問題は演算子の優先順位。
通常の演算子は全て?:より優先順位が高いけど、
代入演算子だけは?:より優先順位が低い。
だから、a > b ? max + a : max - b は、
(a > b) ? (max + a) : (max - b)と解釈されるが、
a > b ? max = a : max = b は、
((a > b) ? max) = (a : max) = b みたいな感じに解釈されて、
そもそも正しい式にならない。
よって、
>>200 は className = ... を (className = ...) のように
カッコでくくるとエラーじゃなくなる。
あと、代入無しで?:を直接書くのも間違いなので、その点でも
>>202 のページはNG。
コンパイラに「文ではありません。」 と怒られる。
210 :
デフォルトの名無しさん :2010/08/11(水) 12:00:11
JavaでWin32APIにあるメソッドを使いたいのですが、ありますか? 具体的にはWin32で用意されているPrintWindow()のようなメソッドを使って、指定したウィンドウのキャプチャをしたいのです。 最前面に出せばキャプチャ―はできるのですが、ツールバーに置いたままでもキャプチャ―する方法はありますでしょうか?
JNA(Java Native Access)とか?
あるいは JNI でんな。
windowのキャプチャならjavaだけでできるけど
>>213 > 最前面に出せば(java.awt.Robotで)キャプチャ―はできるのですが、
> 最小化されていたり他のウィンドウなどに隠れているウィンドウをキャプチャしたいです。
って感じな事を210は言ってるんじゃないのか?
使ったこと無いんだけどnlinkってのはどうかねぇ
216 :
210 :2010/08/11(水) 17:08:39
オライリーの本を買おう思っても古いものばかりです。 バージョンの違いによる大きな変更点等を加味すると何年くらい前のものまで大丈夫ですか? 一応pythonの2〜3程度の変化なら許容範囲です。
>>124 ゲームでスクリーンショット取るやり方だがそのフレームの一番うえのコンポーネントのGraphics2Dのスナップショットをとればいいんじゃない?
>>218 Javaのウィンドウ以外の画面も取りたいんじゃね?
このスレでそんな難しい質問しないでください
221 :
210 :2010/08/12(木) 04:21:34
はい、Javaのウィンドウ等ならいいのですが、例えばIEの画面もキャプチャしたいと思ったのです…
223 :
210 :2010/08/12(木) 07:54:40
どうしても出来ないのなら、JNIでやってみようかと思いましたが、もう少しWin32.OSクラスの中身を調べてました。 ウィンドウを指定したり、最前面のキャプチャーはJavaでも出来るので、もしかしたらあるかなと。 JNIは使ったことないので、Javaのみで完結させたくて調べてましたが、無理そうですね。。。
JNA使えば?
225 :
210 :2010/08/12(木) 08:35:36
>>224 そちらの方がいいですかね?
Visual C++では指定したウィンドウの画面イメージが取得できそうなので,JNIを使えばイメージ取得及び解析をしたあとにその結果だけJavaに返せるのかなと考えました。
今JNAを調べてみましたが、win32apiのファンクションをマッピングするJNAもあるみたいですね。そちらの方が簡単そうならそちらでやってみます。
ありがとうございます。
ServletのFilterで
public final void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException
{
System.out.println("aaaaaaaaaaaaa");
chain.doFilter(req, resp);
}
だけしかない単純なフィルターでweb.xmlで
<filter-mapping>
<filter-name>RootFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
こんなふうにマッピングしてServletを
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
こんな感じで全ての*.htmlにマッピングし
http://ドメイン/ を表示するとconsoleにaaaaaaaaaaaaaが2回表示されます。
http://ドメイン/index.html だと一回しか表示されません。なぜでしょうか?ちなみに、GAEの開発なのでjettyでテストしてます。
よろしくお願いします。
Javaのオブジェクトの仮想マシン上でのバイナリ表現を得る方法ってありますか?
228 :
227 :2010/08/15(日) 16:39:48
ObjectOutputStreamだとjava.io.serializableを実装してないといけないし Javaのオブジェクト全てをバイナリ化する方法があるかを知りたいんですが
230 :
デフォルトの名無しさん :2010/08/16(月) 23:34:51
class Mammal { String name = "furry"; String makeNoise() { return "generic noise"; } } class Zebra extends Mammal { String name = "stripes" ; String makeNoise () { return "bray"; } } public class ZooKeeper { public static void main(String[] args) { new ZooKeeper().go(); } void go() { Mammal m = new Zebra(); System.out.println(m.name + m.makeNoise()); } } このプログラムで実行したらfurry brayになるらしいけどなぜなんでしょう?
そういう仕様だから仕方ない。makenoizeの中身をreturn name;にするとなお面白いな。 フィールドのオーバーライドは直感に反した動作をすることが多いのでどこのプロジェクトでも普通は禁じ手だ。
>フィールドのオーバーライド 隠蔽だと思うんだが
234 :
デフォルトの名無しさん :2010/08/17(火) 15:27:07
>>234 ・JREを最新のものに入れ替えてみる。
・グラフィックカードのドライバを最新版や安定版にかえてみる。
・グラフィックカード買い替え。
・コマンドラインオプションつけれるなら
-Dsun.java2d.noddraw=trueしてみる。
ぐらいか?
GPUの対応が糞くらいしか思いつかんが板違いだな
239 :
デフォルトの名無しさん :2010/08/18(水) 23:22:29
String sql = "SELECT …"; PreparedStaetment ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); while ( rs.next() ) { … } こんな感じでSQLを実行していますが、 ps.executeQuery() の実行時間をログ出力したいです。 何か賢い方法をご教授願います。 #ps.executeQuery()の呼び元は数百か所あります。。。
案だけど、 Connection と PrepareStatement と ResultSet をラップして名前 空間を java.sql 以外に置き換える。 そして中身は実体のインスタンスを委譲して実行時間計測。 元々のコードの修正は Connection 生成しているところをファクトリ化するのと import 文だけ。 アスペクト指向?聞こえねーな。
241 :
デフォルトの名無しさん :2010/08/19(木) 00:41:20
javaの動画をダウンロードしたいんですけど 何かいいソフトはありませんか
>>240 正しい。以前Connectionをラップせにゃならん状況になったとき、AspectJでなんとかならんかと思って調べてみたら、ヘビー過ぎて心が挫けた。
結局Eclipseの移譲メソッド生成一発で済ませた。行数は酷いことになったが、手間は最小限だったw
243 :
239 :2010/08/20(金) 00:18:15
>240, 242 レス、ありがとうございます。 レス頂いた修正方針だと、 機械的な修正にはなりますが、修正ファイル数が多いな〜 と思っていたんですが、 これで行く決心がつきました。 Eclipseの移譲メソッド生成ってのが、便利そうですね。 調べてみます。 ありがとうございました。
244 :
デフォルトの名無しさん :2010/08/20(金) 14:49:51
JAVAのアプリケーションからオラクルに接続するにはどのように実装するのでしょうか?
245 :
デフォルトの名無しさん :2010/08/20(金) 15:53:59
DriverManager.getConnection
246 :
デフォルトの名無しさん :2010/08/20(金) 20:05:04
集団ストーカー実行犯の見つけ方 駅の改札、エスカレーター、階段、交差点など人の流れが集中するところにいます。 その周辺で人の流れと逆向きに立ったり柱や壁を背にして、長時間人々を凝視している人間がいたらそうです。
画面が実質1,2しかないWebアプリ(ページ内容の更新自体は頻繁)を作るのですが、 PHPやPerlじゃなくあえて勉強のためJavaにしようかと思っています。 生JSP(生サーブレット)でもいいかなーとおもったけどそれじゃなんなので、 こういう小規模ページをサクっとつくるのに向いたJavaフレームワークを探してますが オススメはあるでしょうか?
248 :
デフォルトの名無しさん :2010/08/21(土) 11:32:36
小規模ならvelosurfでいいと思う
公開前提でJavaならGoogle App Engne + Slim3 って結構よくない? お金掛からないし。
250 :
デフォルトの名無しさん :2010/08/21(土) 13:20:45
Pythonとか入れるのが煩わしくない人ならありかもね。 でもサクッと作りたい人には明らかに不向きだね。
GAEはJavaでやるならPython入れたりする必要なかったと思う。 まぁ、Eclipseにプラグインとか入れるのは煩わしい。
252 :
忍者Perl ◆M5ZWRnXOj6 :2010/08/21(土) 13:36:19
きもいスレですね
254 :
忍者Perl ◆M5ZWRnXOj6 :2010/08/21(土) 13:49:30
あんまり調子のってるとここのスレつぶすよ
出来もしないのにww
256 :
デフォルトの名無しさん :2010/08/21(土) 15:13:50
>>248 velosurfてWebてわけじゃなくてモデル層ですよね。
コントローラは?Strutsとか生サーブレットですか。
>>249 GAEは興味はあるけど、5年後メンテ不可能になっていかねない技術はちょっとパスですかねw
>>256 GAEは単にWebアプリのプラットフォームだと思えばいい、Slim3はStrutsのミニマム版。
まぁ、とっかかりちょっと面倒かもしれないから無理強いはしないよ。
258 :
デフォルトの名無しさん :2010/08/21(土) 15:52:05
おまえじゃ無理ww
260 :
デフォルトの名無しさん :2010/08/21(土) 16:16:23
>>258 ありがとう。Velocityは大昔に使ったことあったので試してみます。
でも日本語の情報少なすぎじゃないかなぁ。
いまApache Clickを調べてるけど、すぐ消えそうな感じがゾクゾクしていいですね
(いや消えるようなのは勘弁なんですがw)。
ああClickも内部はvelocityなんですね。 velosurfは依存ライブラリ多くてちょっとどうなん?と思ってしまったのでしばらくClickいじってみます。
264 :
デフォルトの名無しさん :2010/08/21(土) 23:54:54
SJC-Pって今受験料どれくらい?
9万 どうせ3回はいるだろ
267 :
デフォルトの名無しさん :2010/08/23(月) 11:55:50
>>261 Apache Clickのほうは日本語の情報が豊富なの?
268 :
Perl忍者 ◆M5ZWRnXOj6 :2010/08/23(月) 23:59:49
javaやってるやつってクソスーツばっかだろ クソ企業人がわいてそうですね ゴミみたいなバカはせっせと死んでください
クソスーツてなんですか?
>>267 豊富じゃないけど、velosurfよりは多くないですか?と、いうより日本語のサイトでまともにvelosurfを紹介してるサイトってあります?
英語のページでもチュートリアル/FAQ系のサイトはClickの方が多い気がします。
272 :
Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 09:41:47
クソスーツもわからないの?
http://yuzuru.2ch.net/test/read.cgi/employee/1282452525/ クソスーツの特徴 まとめ
1、ツイッタのフォローリストがほぼ著名人w 孫正義などホリエや菅野をフォローw
2、FXや株など 経済用語が大好き だけど経済的に並〜貧乏
3、職業はサラリーマン、公務員、教員
4,自己紹介欄にTOEIC900点目指し勉強中w ←金目的
5、やることが浅い 深くやらない かじる程度
6、ブログはyahooやfc2
7、yahooの珍言袋が大好き
8、ジムに通う クソガリーマンはプールかエアロバイクw
9、プログラミング言語は java,VB,C++
10、PCは富士通 VAIO ソニー愛好者
11、子供の写真をブログに載せちゃう
おまえみたいなゆとりのことか
274 :
Perl忍者 ◆M5ZWRnXOj6 :2010/08/24(火) 10:26:46
ゆとりはこんな事しないよ^^; 経済オタな無様な大人の生き様みてきたから
オブジェクトというか、プリミティブ型の配列の基本的な扱いについて 教えて下さい。 public class Test1 { private int[] oldParam = {0, 1, 2}; public Test1(){ int[] newParam = {4, 5, 6 }; this.oldParam = newParam; } } このような、インスタンス生成時に、クラス変数の配列を 新しい変数の配列に書き換えたいのですが、 1.プリミティブ型の配列の場合、参照先はそのままで内容が 変わるんでしょうか? 2.配列をオブジェクトの配列に変更した場合、oldParam の 参照先がnewParamに変更されると思うのですが、その場合、 元々oldParamが格納されていたメモリ領域は、GC対象に なるということでしょうか?
>>275 それはプログラムを書くと調べられるのでは?
プリミティブ型だろうがオブジェクトだろうが全く関係ない 参照先が変わるし古いのは使われなくなったらGC対象になる
クラス変数じゃなくてインスタンス変数の配列だな。
280 :
275 :2010/08/25(水) 09:10:21
>>276-277 コード書いていろいろ試してます。
デバッガの使い方の勉強を兼ねて。
使われなくなったものがGC対象になるという点も
納得できました。
ご教示、ありがとうございました。
281 :
デフォルトの名無しさん :2010/08/25(水) 16:59:29
JDI(java debug interface)とJVMTI(Java Virtual Machine Tool Interface)の違いについて 指定したクラスの中で使われている変数の推移を、 JDIを用いて取得して表示するプログラムを作りました JVMTIでも同じようなことが出来そうなのですが、 ちょっと調べただけでは意味不明でした JDIとJVMTIは具体的にどう違うのでしょうか?
↓の方が適切かと思ったのですが、人がいなさ過ぎだったため、こちらで質問します。
Java⇔RDBのMapping-Frameworkを語るスレ Vol.5
http://hibari.2ch.net/test/read.cgi/tech/1220671877/ テーブル名が"table01"、"table02"、"table03"・・・といった具合に、カラムは全く同じだけど
名前だけ違う、というテーブル群をOpenJPA1で操りたいと考えています。
Entityとテーブルをマッピングする際は、テーブルの名前が固定な場合は
@SecondaryTablesを使えばいけそうというところまでは分かりました。
ただ、テーブルの名前は固定したくありません。
例えばEntityに対して@Table(name = "table??")なんて指定が出来ればベストなんですが…
何か、良い方法はありませんでしょうか。
283 :
デフォルトの名無しさん :2010/08/26(木) 15:12:27
ゲームを作っているのですが、キー入力で同時に4つ以上の入力を受け付けてくれません。 またキーリピート?の間隔を0にする方法があったら (キーを押しっぱなしでだ、、だだだだの入力をだだだだだ)教えてください。
4つ以上のキー入力は解決しましたすいません
>(キーを押しっぱなしでだ、、だだだだの入力をだだだだだ) 秘孔穿いてるようにしか聞こえん。
Version 6 Update 21っていつ更新されたのか 教えてください
sunのサイトには日付書いてあったがoracleが消した ような気がしないでもない
OracleになってからJavaのサイトが使いにくくなった気がするんだが。 旧版のJDKめっちゃ探し回ったぞ。
292 :
デフォルトの名無しさん :2010/08/29(日) 18:26:11
>>291 u21でベンダ名をSunからOracleに変更したらEclipse起動しなくなっちゃった
ていうので一回差し戻しがあった。
これが原因かどうかわからんけど。
>>282 ちょっと何言ってるんだかわからないんだけど、
tableXXを要素が空のクラスにマッピングして、共通のスーパクラスで実体を定義、
@InheritanceでTABLE_PER_CLASSにすれば?
> Entityに対して@Table(name = "table??")
てのが実現できるのでは。
グラフックを配列データ化して描画する場合。 VB,VCでは配列化してデータを書き込んで配列をグラフックに戻す命令で はじめて描画されます。 しかしjavaの場合 ((DataBufferInt)img.getRaster().getDataBuffer()).getData(); これで配列化したあと配列にデータ書き込むだけで戻さなくても描画されてしまう。 これはどういうことなんでしょうか?
>VB,VCでは配列化してデータを書き込んで配列をグラフックに戻す命令ではじめて描画されます。 それは誰かがそういう風にしたから >これで配列化したあと配列にデータ書き込むだけで戻さなくても描画されてしまう。 それは誰かがそういう風にしたから
1データの書き換えでも変わるというのは配列とグラフックがリンクされた状態と考えていいんでしょうか。
いいんじゃね? 仕様上もそうか、と聞かれるとドキュメントに書いてないから確定的な事は言えんけど、 getRaster も getDataBuffer も getData もゲッターしかないから、 仕様上もそうだと考える方が妥当じゃないかと。
300 :
296 :2010/08/30(月) 20:28:26
ですか
PixelGrabberは使わないんだ
配列の中から任意のデータを検索するものがあったら教えてください
303 :
デフォルトの名無しさん :2010/08/31(火) 22:27:54
java.util.Comparator
スレッドごとまたはクラスローダごとにjavaのデフォルトエンコーディングを設定することは可能でしょうか?
305 :
デフォルトの名無しさん :2010/09/01(水) 13:33:14
「javaのデフォルトエンコーディング」とは?
>>304 システムプロパティの file.encoding の事を言ってるなら、
java.lang.System をクラスローダ毎に切り替えるのは無理。
スレッド毎に切り替えるのも無理。
クラス読み込み時にクラス変数に
file.encoding の内容を記録してるクラスなんかだと、
System.setProperty("file.encoding", "UTF-8");
とかやっても無視される。
例えば java.io.OutputStreamWriter あたり。
GAEとかは、user.dirとかレンサバ契約者ごとに異なるシステムプロパティ環境が 同一VMに同居してるっぽいとこが不思議なんだよなあ。 System.getPropertiy実装を改造してもいいのなら難しい話でもないのだが
サーブレットやjsp使えるレンサバ増えたの? いまレンサバ幾らぐらい?
309 :
デフォルトの名無しさん :2010/09/01(水) 21:36:56
神様 ファイルのアクセス日時を取得/設定する方法を教えてください。
>>308 Fileもスレッド生成も必要ないなら、GoogleAppEngineがタダだよ
ここひと月は、さくらVPS(¥980)にTomcat乗せる人柱さんを様子見だな
レンサバに頼るより、ドメインを月100円で取得して自分のストレージ・サーバに転送すればいいかなって思う。
312 :
デフォルトの名無しさん :2010/09/01(水) 21:50:57
java.util.Comparator を使って 配列の中から任意のデータを検索する方法を教えてください
任意のデータって何なんだよ。 char配列からメールアドレスを抽出するとか言う話じゃないだろうね?
>>314 Comparator ってそういうことに使うものなの?
例としてヘンテコ過ぎるだろ
「Comparatorで素数を検索します!ありがとうございました!」 とかいう展開にならないといいけれど。いや、>312 ならありうる。 そもそも >302 の書きっぷりをみるからに、 一意に順序づけられるデータの質問とは思えないんだがなあ…
コンパレータは、普通はソートだけどソートのときしか利用しちゃダメって分けじゃないからそういう使いかたもいいんじゃないか。
検索は比較処理も含むわけだから。
>>302 はComparatorを検索処理の中の比較の部分に
使えないかと考えたんじゃね?
素数探すのは検索じゃないってか? というわけで >302 よ。 釣でないなら「任意のデータ」とやらをもう少し詳しくな。 とりあえず、要素を探してるのか要素並びを探してるのかだけでも。 コンパラトール云々はそれからだ
コンパラトール? 一見なんだか分からなかったけどそんな読み方もあったかww
比較しなきゃ一致してるか分からないだろksg
当たり前の話だが、
>>312 は Comparator クラスの compare メソッドの使い方くらいは
百も承知だろう。どちらかと言うと Comparator クラスでつまづくのは equal メソッドの使い方だな、
って気づかないのは Comparator クラスを使ったこともないドシロウト。
質問です. Eclipse3.6 でプラグイン開発の勉強をしています. 既にEclipseにインストールされているプラグインからクラスローダをとってきて, ワークスペース上にある Java クラスをそのクラスローダでロードすることは可能でしょうか? 例えばワークスペースにあるJavaプロジェクト上に Hoge クラスがあるとき, プラグイン側で Bundle bundle = <そのプラグインの Plugin クラス>.getDefault().getBundle(); Class cl = bundle.load(<ワークスペース上にあるクラスのクラス名>); Object obj = cl.newInstance(); として Hoge のインスタンスを入手したいのですが, クラスパスをプラグイン側に動的に追加する手段が無く,また ClassLoader.defineClass()にあたるメソッドが OSGi の Bundle クラスに見当たらないため,困っています. どなたかお手数ですがアドバイスをいただければ幸いです.
素数を検索するComparator、かなりムズくないか? binarySearchを使おうというのがすでに破綻してるのか。
java.util.Comparatorクラスのequalメソッドを使って 配列の中から条件にあったデータを探し出す方法を教えてください
データがどういうデータなのか 条件がどういう条件なのか これくらいは言ってくれないと出来る出来ないも言えない。
出来るか出来ないかは言えるはずだけどな ( ´,_ゝ`)プッ
おまえらいい加減定期的に出てくる一行レス荒しだということに気づけ。
いいかおまいら equalsメソッドを実装したら、hashCodeも実装しないとダメだぞ? 話はそれからだ
荒らしに全力で回答するのがオレのジャスティス! これでも使え。 つ org.apache.commons.collections.Predicate
>>328 すこしはジャ場を勉強したら?
なんか寒いよ
334 :
デフォルトの名無しさん :2010/09/03(金) 07:21:19
ホームページへの大量アクセス事件 岡崎市立中央図書館の弁明に異論相次ぐ J-CASTニュース 9月2日(木)21時12分配信 報道によると、男性は3〜4月、自作プログラムを使って、新着図書のリストに自動的にアクセスして、それをコピペすることを14日間3万3000回繰り返していた。これがサイバー攻撃とみなされたわけで、名古屋地検岡崎支部が6月、男性を起訴猶予処分にしていた。 ところが、男性がアクセスしたのは、1秒間に1回程度だったため、ソフトに詳しいネットユーザーらを中心に、男性逮捕への疑問が相次いだ。 中央図書館の総務班では、「ソフトの不具合については、認識していません」 「通常の利用ではないから、ああいう事態が起こったということです。うちとしては、通常の利用しか想定していません」 「メーカーに聞かないと分かりませんが、うちのソフトに不具合があったとは聞いていません。メーカーは、ちゃんと対応したと思っています」 「うちは図書館でありシステム会社ではないので、専門的なことはわかりません。大量アクセスについては、メーカーで対応してもらっています。図書館の対応には、問題はないと思っています」と話した。 朝日の記事によると、ソフトを提供した三菱電機インフォメーションシステムズ(MDIS)
>>306 そうですよね…
ありがとうございます。
とにかくバイトの変換系処理では常に文字コードを指定しないといけないですよね…
なんかコードがうるさくなっていやですが仕方ないですね…
336 :
デフォルトの名無しさん :2010/09/03(金) 11:20:23
ComparatorはClosure的な使い方をするのがオシャレだと思う
>>334 DB周りが糞で検索すると負荷が異常で舐め終わる前にタイムアウトしてエラー吐くシステムがどうしたって?
338 :
デフォルトの名無しさん :2010/09/04(土) 00:40:30
Velocity使ってる画面でjQueryを使おうとしたら、$.()とかでエラー出るんですけどどうしたらええのん・・・?
1.4.2のsun.rmi.transport.tcp.TCPTransport.javaのソースコードが見たいんですが、 どっからダウンロードすればよいですか? SDKに付属のsrc.zipには入ってなかった。。。 というかそもそも、標準APIに入ってないsunパッケージって何なの?
波紋の絵を描きたいので少し教えて下さいませんか? 3D波紋のJavaというのを見かけました あの波紋の高低差を地図のような灰色のグラデーションにして 自分のパソコン上で動かすにはどうしたらいいですか??
なにいってんだおまえ
>>339 オラクルのJavaSE Downloadsのページからダウンロードできるだろ。
「Previous Releases」ってとこな。
買収後初めてSEのページ見に来たが、思いっきり日本語情報排除されてるなあ。
大丈夫なのか日本オラクル
SE1.6や1.7のAPI日本語化はとっくにボランティアベースに移行したんだっけ?
>>341 import java.awt.*;import java.awt.image.*;class W{public static void main(
String[]a){new Frame(){int T=6,W=64,F=255,i,j;float r=1.414f;byte[]q=new byte[
W*W];float[]p=new float[W*W],v=new float[W*W];Image m;{byte d=(byte)-128;while
(i<F+1){q[j=((d++)&F)*3]=q[j+1]=(byte)i;q[2+3*i++]=(byte)F;}MemoryImageSource
s=new MemoryImageSource(W,W,new IndexColorModel(8,256,q,0,0<0),q,0,W);resize(W
*T,W*T);s.setAnimated(true);m=createImage(s);show();try{for(repaint();;Thread.
sleep(33)){for(i=W+1;i<W*W-W-1;i++){v[i]+=(p[i-W]+p[i-1]+p[i+1]+p[i+W]+(p[i-1-
W]+p[i+1-W]+p[i-1+W]+p[i+1+W])/r-p[i]*2*(2+r))/4;if(v[i]>1/32f)v[i]=1/32f;p[i-
W-1]+=v[i-W-1];q[i]=(byte)((p[i-W-1]-p[i])*F);}s.newPixels();}}catch(Exception
e){}}public void update(Graphics g){g.drawImage(m,0,0,W*T,W*T,this);}public
boolean mouseDown(Event e,int x,int y){v[x/T+y/T*W]-=.5;return 0<1;}};}}
public boolean mouseDown(Event e,int x,int y) ほんとかよw
>>343 3D波紋でぐぐって一番最初にでてきたのは、いわゆるwater effectだね。
water effectなら、ぐぐれば幾らでもソース出てくると思う。
349 :
デフォルトの名無しさん :2010/09/04(土) 12:53:18
特定のフォルダから.jpgのファイルのリストを表示しようとしています。 この.jpgのファイルのファイル名一覧を作成するにあたって listFiles()を使用してそのフォルダ内の全ファイルのFileをループで判別して行っても良いのですが、 勉強としてはFilterを使ってみたいと思い調べたところ。 list(FilenameFilter filter) を使用して .jpg だけtrueを返すFilenameFilterを実装れば良いかと思ったのですが、 FilenameFilterだとファイル名での判別しか出来ないので、xxx.jpg と言うディレクトリがあればそれも含んでしまいます。 かと言って、 listFiles(FileFilter filter) だと、戻りがFile[]なので結局、その配列をループでまわして files.getName() とかやる事になると思っており、当初のループで組んでも変わらないダサさな気がします。 何故、 list(FileFilter filter) が無いんだろう。。。 無いから無いと言われてしまえばそれまでですが、もっとすっきり書ける方法があるのでしょうか?
list(FilenameFilter) だって戻り値 String[] じゃね
今からプログラム勉強したいんだけどjavaとjavascriptのどっちを学んだらいいの? 簡単さとか実用性を重視してほしいです。
簡単さならJavaScript、実用性ならJava JavaScript 開発環境が不要、コンパイル作業不要 基本的にはブラウザ上じゃないと動かない(ほんとは違うが) 変数に何でも入れられる、ゆるい感じ Java 開発環境のインストール作業が必要 プログラムを書くごとにコンパイル作業をする必要がある 変数には型があり、決まったものしか入らない、堅い感じ 単体で動くソフトウェアが作れる どちらもオブジェクト指向言語 JavaScriptのオブジェクトはしょぼいがJavaのほうはしっかりしてる JavaScriptは関数型言語的にも使える。Javaは次のバージョンで対応するかもしれない
>>345 ごめんなさい。
まず何をどうすればいいですか?
・・・・OTL
>343
water effectでググったけど何が何だか・・・
まずは何をどうすればいいですか
・・・OTL
>>355 =
>>343 =
>>341 >>345 ごめんなさい。
まず何をどうすればいいですか?
・・・・OTL
>347
water effectでググったけど何が何だか・・・
まずは何をどうすればいいですか
・・・OTL
Javaでウインドウ出して波を描画したいの? それともアプレット? つかJavaでプログラミングの知識どれくらいあんのあ?
質問内容から見ても初心者だろうね。
359 :
341 :2010/09/05(日) 01:16:31
Javaのプログラミングの知識はまったくありません。 プログラミングはビジュアルのつかないCとBASICをかじった事があるだけです。 >Javaでウインドウ出して波を描画したいの? >それともアプレット? この二つの違いすらわかりません。
波紋みたいな表現をどう使えるようにしたいのか具体的に書けば、 何をどう勉強して何ヶ月くらいかかるかくらいは教えてやれるぞ
変なマスクでもつけるのかな
虎のマスクがいいな
水をプリンのように固めたいんです!
364 :
341 :2010/09/05(日) 10:00:55
_, ,_ ( ゚д゚ )
日本語の勉強からやり直してきてくれ
白黒画像から標高差を判断して3D化してくれるソフトで作った水の波紋の画像を 白黒画像にしたいってこと?
// とりあえずこの↓メソッドで得られたColorで全ピクセルを埋めろ。 // フォトショかなんかでこれを回しながら3回イメージコピーすれば完成 // RATIOが1.0だと100px15Hzぐらいの波紋だろうから適当に調整 Color getPixColor(int x, int y){ double distance = Math.hypot(x, y); double power = Math.sin(distance * RATIO); float rgb = (float)( (power+1.0) / 2.0 ); return new Color(rgb, rgb, rgb); }
heightmapがほしい、でいいのか? ぐぐれば出てきそうな感じもするけど。
370 :
341 :2010/09/05(日) 14:02:37
えーと、うまく説明できなくてごめんなさい。 Javaでしたいこと: 3D波紋(Javaでいいのかな)かなにかで波の形をシミュレートさせて シュミレート結果の高低差を白黒で表示させて スクリーンショットか何かで白黒画像を保存したい 使用目的: 白黒画像から標高差を判断して3D化してくれるソフトで 3Dの水の波紋をつくる です。すいません
シミュレートとシュミレートの違いは?
372 :
341 :2010/09/05(日) 14:07:09
シミュレートが正しい言い方でシュミレートは間違いです
373 :
デフォルトの名無しさん :2010/09/05(日) 14:11:45
ImageMagic使え 終了
>>370 >3D波紋(Javaでいいのかな)かなにかで波の形をシミュレートさせて
まずこれだけやってみたら?
波の画像用意して3Dでプロット・・・かね
ゲームを作ってるんだけど、 while(){ 描画 thread.sleep } で描画が終わる前にスリープしちゃうのを直すにはどうすればいいですか?
アクティブレンダリングでぐぐってみるとか
助かった
379 :
339 :2010/09/06(月) 13:01:55
>>344 「Previous Releases」ってとこは当然分かってるけど、
TCPTransport.javaは見つからない。。。
>379 てけとーな回答でスマンかった。本当に1.4以前のソース(VMとかのソースも入ってる奴ね)が 見つからないや。 どうなってんだOracle。
>>380 OpenJDKできたから、1.4とかのSCSLで公開してたのってやめたんじゃなかったっけか?
Oracle前からダウンロードできなくなってた気が……
Exceptionって Serializable だけど、 これって、例外をチェーンすると内部的に使用している例外も漏洩するってこと? つまり、互換性を維持しようとすると、 内部で使用しているだけのプライベートな例外クラスも変更できなくなるってこと? しかし、これを嫌ってチェーンをしないと、スタックトレースが途切れて間違いの出所が分からなくなるし。 それとも、例外に関しては普通はSerializable関係の互換性は保たなくてOKなの?
何語かよく分からんかったがソースうpってる海外サイトあるぞ。 解説付で・・・。
>>382 Serializableだからといって何が何でも互換性を保たないといけない理由はないぞ。
ネットワーク越しの相手がいるときとか、オブジェクトを二次記憶に格納してるときといった、
バージョンをまたいでデータ構造を維持しないといけないときだけで、生存期間がプロセス
の寿命以下であることが明らかなら全く気にする必要はない。
シリアライズ対応してない例外クラスを自動認識したコンパイラが 警告出すこともあるのが気分悪いんだよなー。 なので、例外クラス定義の前に @SuppressWarnings("serial") を入れとくのが吉。
386 :
デフォルトの名無しさん :2010/09/07(火) 12:40:26
アーキテクチャから見直すべきレベルのシステム Javaだからどうこうという話ではない
>>382 例外を永続化する奴なんてそうそういないと思うし、あれはリモートコールとかしたときに
サーバ上で発生した例外をクライアント側に送って投げなおしたりするためのものかと思いますよ
Hoge hoge = new Hoge(); Graphics g = hoge.getGraphics(); g.dispose(); hoge.dispose(); //エラー hogeの方の開放はどう行えばいいのでしょう。
行わなくてよいです。
390 :
388 :2010/09/07(火) 19:52:45
>>389 頻繁に使うメソッドとかだと気になってしまいます。
これまではstaticやシングルトンでやっていたんですが、
通常のやり方でやってみたく質問しました。
何もせずに放置しておき、GCに任せるのが通常のやり方です。 凝ったやり方は、Hogeがなにか非常に巨大だとか、複雑な処理が必要で構築に時間がかかるだとかいった、特別な事情がある場合だけでよいです。
392 :
388 :2010/09/07(火) 20:38:26
>>391 まだそこまで進んでいませんが、
画面のスクロールの時のバックバッファとか心配です。
その凝ったやり方というのはどうやればいいのでしょう。
System.gc()やSystem.runFinalization()ぐらいしか見つかりませんでした。
GCにこのオブジェクトは必要ないと教えられれば、
その後のgcとかが有効になりそうですが。
393 :
388 :2010/09/07(火) 21:16:16
連書きすみません。 nullを代入するのが、簡単で有効なやり方みたいですね。 確実ではなくても、破棄の優先度は上がってくれるみたいです。
典型的な間違い
395 :
388 :2010/09/07(火) 22:35:07
>>394 確保や破棄に負担がかかるからでしょうか。
↓のFoo.rand()でbarにnullを代入しなければ、
Foo.rand()の2回目以降の呼び出しでは、
1回目にnewしたBarが使いまわされ、負担が少ないとかでしょうか。
public Hoge(){
Foo foo = new Foo();
foo.rand();
foo.rand();
}
public class Foo{
public int rand(){
int r;
Bar bar = new Bar();
r = bar.rand();
//bar = null;
return r;
}}
なにがしたいんだ?
397 :
デフォルトの名無しさん :2010/09/07(火) 23:27:51
よくhogeとかhageとかクラス、メソッド名で使うけどふざけてるんですか?
398 :
388 :2010/09/07(火) 23:30:42
>>396 始めはC系でのfreeやdeleteをjavaではどうやるか知りたかったです。
ただそれはなく、null代入で擬似的になら行えるっぽいのですが、
>>394 氏のそれによる副作用的なのが分かりません。
>>395 のは同じクラスを頻繁にnewする場合の例で、
後処理にnullを代入するのとしないので、どう変わるかという質問です。
Barをnewした時、前のがあるならnewせず、負担が減るとか想像しました。
newで作られ続けるなら、nullで削除し続けるのと負担回数は変わらないので、
ならメモリ使用量の減る、削除をし続けるnull代入の方がいいかなと思いました。
399 :
デフォルトの名無しさん :2010/09/07(火) 23:34:29
nullを入れるとjavaではガーベジコレクションされるよ あと変数を値渡しか参照渡しのどちらかしたあととか 正直参照渡しと値渡しの違いはわかるけどどういうときがどっちになるかいまいちわからん
400 :
388 :2010/09/07(火) 23:38:37
>>397 すみません、Hoge>Foo>Barと呼び出し順を表す意味もありました。
ちゃんとした名前の方が少しは分かりやすかったかもしれません。
>>398 間違えました、nullで削除し続けると、
newで作られ続ける分と合わせて2倍になりますね・・
そろそろうざい
Javaではメモリのことは考えないでいいよ リークしたら再起動すればいいし
403 :
388 :2010/09/07(火) 23:45:10
すみません、さらに長引きそうなのでスレを立ててそちらでやります。 教えてくださった皆様、ありがとうございました。
>>402 長時間使うアプリだと命取りになるよ。
full gcが延々と動き続けてアプリが動かなくなる。
Apache Axis2がメモリリークしてて、
それに気付くまでどれだけ苦労したことか…
読んでないけどその解釈でいいと思います 使うたびに接続・切断するとか、グローバルなコネクションプールを作るとかいった方法の方が一般的な気もしますが ThreadLocalにするなら状況にもよるでしょうけれどSoftReferenceで包んだ方がいいかもしれません DB使わなくなってもそのスレッドが生きてる限り接続しっぱなしで残り続けるのはあまり嬉しくないので ThreadLocal<SoftReference<Connection>> みたいな感じで
String,Date,Integer等、基本型のクラスを含んだHashMapのシリアライズ、デシリアライズは JDK1.1〜1.6の間で問題なくデータ交換できるでしょうか?
>>407 JDK1.1にはHashMapないから無理。
javaって数値計算から自然言語処理まで ありとあやゆる分野のlibraryがそろってるけど なんでこんな充実してるの? Cとperlに次ぐ豊富さだよね
>>408 1.2〜1.6は問題ないですかね?
またこれからの1.7以降の保障はされるのでしょうか?
>>410 HashMapクラスのserialVersionUID調べたら?
>>407 とりあえず「基本型」とやらの内訳を出してもらおうか。
Threadの復元とかは無理だよ?
javaでのアルゴリズムを学ぶのにオススメの本は無いでしょうか? java+アルゴリズムと題名に入ったものはけっこうたくさんあるようですが・・
414 :
デフォルトの名無しさん :2010/09/09(木) 07:11:08
明解Javaによるアルゴリズムとデータ構造 柴田望洋 出版社: ソフトバンククリエイティブ
>>412 基本型改め、以下のクラスです。
・プリミティブに対応するクラス
・String
・ArrayList ※中味はここで上げたものしか含まずを想定
・MashMap ※中味はここで上げたものしか含まずを想定
・Date
ArrayListとHashMapは1.2から。 それ以外にも基本的なレベルから隔たりがありすぎるので、さすがに1.1は切るしかない。
>>415 Date, ArrayList, HashMap は writeObject の仕様が明記されてるから、
それにそった実装になってれば大丈夫なはず。
プリミティブ型のラッパは値一個しかもってないから問題出る可能性極めて少ない。
Stringは特別扱いでシリアライズ機構自体がStringのシリアライズ、デシリアライズを保障する。
そうでないとクラス名すら通らなくなる。
Javaでselectが使えるようになったみたいですが、 selectで外部プロセスと通信(tcpやudpやunixドメインソケット)するだけでなく、 同一プログラムのthread間の通信も行うことできますか? あるスレッドで外部との通信と他スレッドからの要求を、いっしょに処理できると すごくプログラミングが楽になるのですが、なかなかjavaのselectの仕様が難しくて。 参考になるサイトかサンプルがあったら教えてください。
Vector, Hastableを使えば問題ない。 java1.1からあるけど、別に遅いってわけでも使いにくいってわけでもない。 たまにVectorにめくじらたててる人がいるけど、そういう人に限って実際は癖でStringBufferばかり使ってStringBuilder使ってないし。
>>414 ありがとうございます。amazonでも評価高いみたいですね
購入を検討します
>>418 そもそも unix ドメインソケットは作れないので tcp と udp しかないけど、まぁできますよ
およそこんな感じです
SelectorProvider provider = SelectorProvider.open();
Selector selector = provider.openSelector();
SocketChannel channel = provider.openSocketChannel();
channel.connect(new InetSocketAddress("localhost", 12345));
channel.configureBlocking(false);
channel.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE);
for (;;) {
selector.select();
Set<SelectionKey> keys = selector.selectedKeys();
for (SelectionKey key: keys) {
Channel c = key.channel();
if (key.isReadable()) { c.read( ... ); }
if (key.isWritable()) { c.write( ... ); }
}
keys.clear();
}
引数チェックにおける例外とアサーションの使い分けがわかんね 原則、public method の引数チェックには例外を使うというのは理解できるのだが あるメソッドへの委譲メソッドが多くある場合は、 委譲先が private でもそこで引数チェックしないとコード中が引数チェックばっかりになる。 また、コンストラクタ等で防御的コピーを行う場合は、 コピー後にチェックしないとダメだけど(したがって、コピー前のチェックは無意味だけど) コンストラクタまで引数チェックができないってことになると public methodの境界で例外による引数チェックを行えば十分て話ではなくなる。 かといって、 「もう防御的コピーしてチェックしましたから、コンストラクタではそのままフィールドに入れて使ってね」 などということをすると、オブジェクトの整合性を保つためにクラスの外の協力が必要になることになり、 何のためのオブジェクト指向なのか良く分からない。 また、private なクラスだからといって、コンストラクタでアサーションを使っていると、 extends して publicにされた場合、親クラスのコンストラクタの前に例外によるチェックを入れるのが難しい (そもそも、防御的コピーしてたら無駄)。 かといって、内部でしか使わないと分かっているちょっとしたクラスに対して わざわざ例外によるチェックを入れるのも、馬鹿らしいほど無駄な作業に思えてくる。 拡張可能なパッケージプライベートのクラスのコンストラクタは、 そのパッケージ内で終始するのか、publicなサブクラスを作るかを決めないと どっちを使えばいいのか判断できないってことか? また、内部的にしか使わないprivateなinterfaceはその引数はpublicだが、 原則に従うと、その実装では例外による引数チェックが必要なのか? 臨機応変にチェックの方法を変えればいいということになると、 例外によるチェックがロジックの経路にちゃんと入ってるかどうかを手続き的に判断するって 難しいし、それって何てオブジェクト指向?もう、わけわかめ
423 :
デフォルトの名無しさん :2010/09/09(木) 20:45:33
public class Calculate { public static void main(String [] args) { System.out.println("あ"); System.out.println("り"); System.out.println("が"); System.out.println("と"); } } できました
>>421 サンキュウです。
thread間でもtcp/udpになるんすか...
C、というかUnixならプロセス間やスレッド間でもpipe使って通信できるし、
それを受けるのはselectで統一出来るんですけどねえ。
Javaでメッセージパッシング的なプログラミングってどうやるんだろ?
スレッド間、他プログラム間で縦横無尽にメッセージを送り合うようなプログラム。
Java SEにアプリケーション間通信の仕組みあったっけ?
>>406 ロングパスですがありがとうございます。
SoftReference ってものがあるんですねぇ
>>425 スレッドAは専用のLinkedBlockingQueueを持ち、そこからメッセージを受け取って、何か処理をする
スレッドBはソケットからデータを受信し、それをJavaのメッセージに変換してスレッドAのLinkedBlockingQueueに放り込む
スレッドCは専用のLinkedBlockingQueueを持ち、スレッドAとかからメッセージを受け取りバイト列に変換してソケットから送信する
これでいいと思います
Javaアプリで質問です。 最初にmainの中で作るアプリ本体の インスタンスは、どういう理屈で GCの対象とならないのでしょうか。 ググっても見つけられません。
実行中のスレッドのローカル変数 (thisとか) から辿れると思います
「アプリ本体」ってのがなんだか解らんが GC-rootからJFrameまで、どうオブジェクト参照が繋がっているのかという話かな。 デーモンスレッド → イベントディスパッチャ → JFrame とこんな繋がりじゃないかな。 デーモンスレッド全部殺せばJFrameも回収されるよ、たぶん。
432 :
デフォルトの名無しさん :2010/09/10(金) 13:52:14
javaファイルからクラス図とシーケンス図を生成したいのですが どんな手段が考えられますか? クラス図の場合 クラス名やメソッド名はリフレクションで取得できそう。 ただ、関連の取得をどうすればいいのかわかりません。
フィールドの名前と型もリフレクションで取得できるのでそれを関連ということにすればいいと思います シーケンス図は実際に動作させたものをトレースするんでもなければかなり無理があるかと
>>433 ありがとうございます。
確かにフィールド取得すれば集約の関係はできそうですね。
シーケンス図は字句解析して構文解析してがんばらないと難しそうですかね。
>>434 バイトコードインストゥルメンテーションの手法を使って各メソッドの入口と出口にログを埋め込み、
それを実際にJavaVM上で実行して、得たログから図を描けばいいんじゃない
>>436 バイトコードインスツルメンテーションという手法があるのですか。初めて聞きました。
JavaVM上で実行してログを取るというのでイメージがつかめました。ありがとうございます。
ちょっとぐぐってきます。
438 :
428 :2010/09/10(金) 19:14:24
439 :
429 :2010/09/10(金) 19:15:25
428ではなくて429です。すみません。
JFrameをsetVisible(true)で表示した時点で、そのJFrameインスタンスはAWT/Swingの中から参照されるようになるから システムの中からであろうと参照されている限り回収されない
なるほど...SwingやAWTですか。 ありがとうございます。
インタフェースに記述された契約のうち、メソッドが返すオブジェクトに対する契約について、 それを呼び出した側は、その契約が守られていることを盲目的に信じていいの? たぶん、そんな楽観的なことはダメだと思うが、呼び出し側は自分を守るためにどう対処すればいいの? AssertionErrorでも投げておけばOK? 例えば、ThreadFactoryのnewThreadメソッドはnullを返す可能性があることが明示されているが、 もし、これが必ず何らかのThreadを返すという契約だった場合、 これを使う側は、そのメソッドの返却値に対して、 盲目的にnullでないと考えて、例えばそのままスレッドプールの中に入れて良いのか、 (契約で縛っているのに)nullチェックをするべきなのか そしてnullチェックをした場合に契約が破られていることを発見した場合どうするのか。 ワーニングでもログに残して何事も無かったかのように処理が進めるように使う側を設計するのか (契約しているのに縛っているのに!)。 RuntimeExceptionの何らかのサブクラスでも投げるか。 でも、RuntimeExceptionのサブクラスなら、それを投げる可能性のあるメソッドは それを契約として明示しておく必要があると思うが、 内部ロジックの深いところでnewTheradメソッドが使われていた場合、 例外の記述を発生する可能性の経路をたどって金太郎飴のように複数のメソッドの対して記述するの? それも馬鹿馬鹿しいから、Errorのサブクラスでも投げておけばいいのかな。
にほんごでおけ
445 :
339 :2010/09/11(土) 02:46:37
>>443 どのぐらい堅固にしたいかによる。
すべての可能性を追っていたらdでもないことになる。
447 :
デフォルトの名無しさん :2010/09/11(土) 12:42:17
RubyのRailsみたいなフルスタックWebアプリフレームワークってJavaにはないですかね?
groovyのGrailsは?
Spring Roo
なんでJavaのフレームワークについて聞いてる人にGroovyとか言っちゃうの
いや もう.NETでいい
Spring Rooってフルスタック?
AWTでFrameにFrameをaddしてもFrameの中に子Frameが作られないで 独立して親Frameに束縛されないで子Frameが表示されるんだけどバグなの?死ぬの?
457 :
455 :2010/09/12(日) 12:55:22
>>456 なるほど・・・d
でもこれって継承関係上すごい気持ち悪いな・・・
お前Componentじゃん?!Componentじゃん!!
バグなの?死ぬの? お前Componentじゃん?!Componentじゃん!!
>>454 Spring Framework + Roo
460 :
455 :2010/09/12(日) 18:26:10
Java Java Java Java♪
461 :
デフォルトの名無しさん :2010/09/13(月) 15:45:51
>>459 Spring Framework と Roo はどういう関係?
あとSpring Frameworkにもいろいろあるよね?
文法→GUI→テトリスやマリオっぽい何か→デザインパターン と勉強してきて、次に取り組むべきもん面白いもんを何か頼む
ネットワーク RSSリーダーとかどう 新しいニュースがあったら画面の上らへんにテロップ流してくれるようなの
GWTかAndroidアプリ開発とかどうでしょ
物理シミュレーション
検索エンジン
>>463 ライブラリ集めて自分でフレームワーク作るとか。
凝り性の人は結構はまる。
469 :
デフォルトの名無しさん :2010/09/13(月) 23:26:27
try-catchについて質問します。 以下の場合、A()の中で、BExceptionが発生した場合、 Aの処理がされるのでしょうか? A()でthrows AExceptionと指定して、AException以外が起きた時の動作が 知りたいのです。 public static void main(String args[]) { try { try { A(); } catch (AException) { System.out.println(A); …@ } } catch (BException) { System.out.println(B); …A } } public void A() throws AException { ... }
>>469 A()でBExceptionが発生すればAを通るだろ。
「throws AException」の意味についてはチェック済み例外、非チェック例外でググレ
471 :
469 :2010/09/13(月) 23:48:47
>>470 ありがとうございます。
ググってみました。
感謝します。
Javaフレームワーク開発入門 [大型本] 木村 聡 (著) この本どう? フレームワークに興味あって本を漁ろうにも 古いのばかりだったりで・・・。
473 :
デフォルトの名無しさん :2010/09/13(月) 23:59:37
javaでファイルに参照ロック、および更新ロックをかける方法ってありますか?
amazonでサンプル見れるね。 リアル系なんだか萌えなんだかよく分からん絵がらだな。
>>472 その本は自分も興味あるなあ
経験者の評価が聞きたいな。
アーキテクトしてるけどamazonnのサンプル見た限りは良さそう。 基本的なレベルから説明してるから、新人に読ませたいな。 経験者にとっては当たり前すぎる内容で微妙だとおもた。
おれも係長補佐代理見習いやってる
俺サブリーダーやってる。 合計二名のプロジェクトだけどな!
API仕様を見てて思ったのですが、Javaでサイズの大きなファイル(2GB以上)を扱う場合、 ランダムアクセスは無理(intの正値で絶対アドレスを指定する必要があるから)で、 シーケンシャルアクセスなら一応OSやファイルシステムの制限に引っかかるまで読める、 って認識であってますか?
FileChannel#position(long)とか
フレームワークって何? あとEffectiveJAVAと独習JAVAって内容似てるの?
RandomAccessFile#seek(long) だって int の制限にはひっかからんし。 実際問題、int の制限に引っかかるのって、 MappedByteBuffer でメモリマップドファイル使うときぐらいだと思うが。 FileInputStream が markSupported() で true 返す場合は mark(int), reset() skip(long) で擬似ランダムアクセスする時も int の制限にひっかかるかも? と思うぐらいで。 もっとも FileInputStream#markSupported() で true 返す実装って見た事ないけど。
480が何のクラスのAPI仕様を見てたのかが気になるな
FileChannelとnio.Buffer使ってコーディングしてるんだけど、 FileChannel.MapModeで取得したFileChannelとBufferを参照渡しして 渡した先でposition操作しても、渡し元には反映されないのね。 ByteBuffer.allocateを使った場合はそんなことないのに。
単純にどこかでミスっただけだろ。
487 :
211 :2010/09/14(火) 10:30:25
はい
488 :
デフォルトの名無しさん :2010/09/14(火) 11:08:06
>>485 はポインタとインスタンスの概念がわかってない
>>488 kwskおながい。
MapModeでバッファをマッピングする場合と
allocateでバッファを確保する場合の挙動の違いに
悩みまくり。
>>489 そういうのを知りたいならCをちゃんとやれ
>>489 なにがわからないのか最小のコードで示してみれ
情報系の専門学校ってJAVAに力を入れてるところがほとんどだって聞いたんだけど、 卒業するまでに何をやるの?何が出来るようになるの?
すみませんが、お知恵を。 javaで起動するプログラムがあって、同時に実行できるのは1つにしたい場合、 どのようにしたらいいのでしょうか? どっかにlockファイルみたいのを作って、それがあったら起動しないとかって 手法ですかね? 環境はLinux、winを想定しています。 他になにかあったら教えていただきたいです。
シングルトン
>>496 特定のポートでソケットをバインドしてみる
>>498 >>480 の、intの正値で絶対アドレス指定する必要がある、って
FileInputStreamのどのメソッドの事言ってんの?
>>496 java 多重起動防止
とかでググれば分かるが、完全な方法はネイティブなAPIを呼ぶこと。
JWSのAPI使っていいなら多重機動禁止あるけど
Javaでフレームワークって時代遅れだったりするの? LL流行ってるっぽいけど
>>504 使い方によるなぁ。
別にフレームワーク使っても問題ない。
フレームワークって一口に言ってもなあ swing自体だって広義のフレームワークだ
LL流ってなんですか?
漢字読めない子か
1.5から実行中の全スレッドのスタックとレースが取得できるようになりましたが、 本来スタックにつまれているであろうローカル変数も合わせてダンプすることは出来ないものでしょうか?
510 :
デフォルトの名無しさん :2010/09/15(水) 14:35:51
便乗して… 任意のオブジェクトがどこのクラスの変数に参照されているかを調べることは出来ますか?
512 :
デフォルトの名無しさん :2010/09/15(水) 15:13:00
Javaを今週から始めました Androidのアプリ開発がしたいです いきなりどのような道順で勉強したらいいでしょうか? ifとかswtichなどの基本文法は習得しました
HashtableとHashmapの違いが分からん
>>513 Hashtableは同期化(synchronized)されている
HashMapは同期化されていない
>>512 とにかく色々いじってみたら? わからないところは調べながら
まずは Eclipse と Android SDK をダウンロードしてインストール
518 :
496 :2010/09/15(水) 22:05:30
サーバー版の独習JAVAの評判ってどう?
MSDN の Code Recipe のJAVA版みたいなものってありませんか?
>>519 ありがとうございます。頑張って勉強します
javaのプログラムを先輩から引き継いで改良中なのですが Applicationで「マウスクリックでウインドウを開く」という動作で クリック連打してウインドウをたくさん出現させるとウインドウを全て消した後に ウインドウが開かなくなってしまうというバグが起きます。 これは解決できるものなのでしょうか?
ウィンドウをすべて消したらクリックする場所が無くなるからじゃね
クリックする場所はあるのですが・・・ アプリケーションにボタンがあってそれをクリックすると新たにウインドウが出る というマウスイベントでそのウインドウをクリック連打でたくさん出すと アプリケーション以外のウインドウを消した後にボタンをクリックしてもウインドウがでないというバグです。
ソースコードも何もなけりゃ推測でしか答えられんが ウィンドウを消したつもりでも実は非表示なだけで残ってて、それがメモリを食いつぶしてメモリ不足で新しいのを開けないとか
なるほど・・・その可能性もあるのでもう少し調べてみます。ありがとうございました!
就職の際にどんな業務でどういったシステムをどの言語なり分野なりで作っているのか分からん とりあえずJAVAやC#を使ってるところをメインに就活してるけど・・・ 大雑把にネットワークやらデータベースを避けてるだけっていう
>>527 JAVAやC#は手段で、ネットワークやDBは目的。
そこをはっきりさせてから就活した方がいいかも。
俺ネットワーク関係のソフト作ってるけど、言語はJAVAやねん。
ネットワーク関係のソフトを ”作ってる” と ”使ってる” じゃえらい違いだ
>>528 自分がその会社に入る前に読んだ本や身につけた技術の分野なりためになりそうな経験なりを教えてくれ
こりゃだめだWW
とりあえずその錯乱状態を何とかしろ。 会社の業務内容はその会社に訊け。 自分が何をやりたいかは自分に訊け。 他人に相談したいなら板違いだ。
ところで専門学生って何をどんだけ学んでんだ? JAVAをメインで教えてるとは聞いたが
勘だけどStrutsの使い方だと思うよ
専門学校→言語やライブラリの使い方 情報系大学→アルゴリズムや開発モデルなどのいわゆるソフトウェア工学 と思ってるんだけど,専門でもアルゴリズムとかソフトウェア工学までやるのだろうか?
専門学校でそんなことやってんのか。 就職するためというよりはフリープログラマになるための講義だなそれじゃ。
JavaやC#使う会社に就職したいのに、 ネットワークとDB避けるって、どんだけだよw 少なくとも、Webとメール関係のプロトコルや オープンソースのRDBくらいは抑えておかないと仕事にならん。 最近は、Java屋にもJavaScript(jQueryとか)のスキルが 求められるし。
大学ってプログラムの授業なんてほぼ皆無じゃないか?私Aランだけど
>>536 それが出来る状態で卒業する専門学生ってたぶん1割も居ないと思う。
実際8割が使いものにならないガーベジコレクト対象者、残りがまだなんとか出来る奴、こんなもん。
いや勝手な想像なんですけどね
>>538 まぁそんなもんだよね。
でも中には、学生だけどオープンソースのコミッタやってます
なんていう、珍しい人も応募してきたりする。
ブログの書き方とか、成果物のソース見れば、どんな人かとか
スキルセットの見当なども概ね把握できるから、そういう人は逃さず採用。
いやほんと、中にはスゴイ人いるよ。
入社してもらった後も、転職されないように待遇面とかモチベーションを
維持できる環境づくりとか、こっちも責任感じちまう。
ただでさえ、IT系とかSIerってだけで学生からは敬遠される時代に
なってしまったからな。
(というか、この業界自らが招いた結果的状況だけど)
質問です、JAVAの開発環境を整えるためにシステムのPathの変数値を変更したいのですが、テキストの表記法が曖昧でイマイチ良く分かりません。 以下はテキストの写しです。 Cこの変数値の末尾に「;」記号をつけ、その後に以下のようにテキストを追記してOKします。 %JAVA_HOME%\bin;(青字) 図1.13 _____________________________________________ 変数値 |%JAVA_HOME%;\bin;C:\Program Files\Java\lib\j|―――ここにCのテキストを追記する。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ って書かれてるのですが、一番右端のこれは見切れているのでしょうか? あと、追記するのって結局青字の部分なのか、枠内全体なのでしょうか……。 宜しければご教授下さい。
見切れるというのは見えてはいけないものが見えてしまうこと
まず、システムPATHがどういう意味を持つものなのかを 理解した方がいいと思う。
>>543 コマンド検索パスの指定、でいいんだよね?
本だけに頼るからそんな疑問が沸くんだ PCで追いながら試せばええじゃん
このスレって回答者は専門卒もしくは専門の奴がほとんどだと思ってたよ
javaからマウスの左クリックや移動の操作ってできますか?
見つかりました java.awt.Robot
549 :
デフォルトの名無しさん :2010/09/17(金) 19:40:09
よかったね
めでたいな
今日は赤飯か。
おい専門卒の奴、学生の時に何を学んだか教えろください
なにこいつw 恐い
Java!!!!!
次世代Javaっていつ頃リリースされそう?
>>537 あってもコピペ提出か宿題スレかYahooだべ
趣味でやってるヤツぐらいしかコードは書けないね
557 :
デフォルトの名無しさん :2010/09/18(土) 10:32:18
switchでIntegerがcaseのとこにつかえないんだけど どうすればいいの?
そりゃIntegerだと定数じゃないからだろ
>>559 俺もそう解釈してたんだけど、なんかの条件満たすとIntegerでも使える気がする。
リファクタリングでコード移したら同じIntegerなのにエラーになった。
static finalとか?
awtってあうとって読むの?素直にエーダブリュティーって読むの?
>>561 あぶすとらくとういんどうつーるきっと
面倒なときはえいだぶりゅてー
564 :
デフォルトの名無しさん :2010/09/18(土) 23:34:26
domで、
<body xmlns:ns="
http://example/ ">
<sample name="ns:hello">
のxmlを読み込むとして、
"ns:hello"の"ns"だけを読み込む方法
てありますか?
なんでjavaのimportってあんなに長いの?jp.co.・・・みたいなやつ。 おかげで無駄に階層が深くてアクセスしにくい。
>>565 何と比較して長いの?
あれってインターネットのURLみたいなもんだろ
そう思えば、長いとも思わないのだが
>>560 intは行けるがIntegerの所でコンパイルエラーが出る
Integerで行けるコード希望w
public class Hoge {
private static final Integer STATIC_FIELD_INTEGER = 0;
private static final int STATIC_FIELD_INT = 1;
private final Integer FIELD_INTEGER = 2;
private final int FIELD_INT = 3;
void hoge() {
final Integer LOCAL_INTEGER = 4;
final int LOCAL_INT = 5;
switch((int) (Math.random() * 6)) {
case STATIC_FIELD_INTEGER: System.out.println(STATIC_FIELD_INTEGER); break;
case STATIC_FIELD_INT: System.out.println(STATIC_FIELD_INT); break;
case FIELD_INTEGER: System.out.println(FIELD_INTEGER); break;
case FIELD_INT: System.out.println(FIELD_INT); break;
case LOCAL_INTEGER: System.out.println(LOCAL_INTEGER); break;
case LOCAL_INT: System.out.println(LOCAL_INT); break;
}
}
}
いや、俺は557じゃないです。 560がIntegerで使える気がするって言うから、どういうコードならいけるのかな?と
570 :
デフォルトの名無しさん :2010/09/19(日) 11:41:28
Visual Editorで画像貼り付けるにはどうしたらいいの? あとプロパティ > icon > プロジェクトから選択 でなんでsrcフォルダ以下しか選択できないの?
571 :
570 :2010/09/19(日) 14:26:34
自己解決 javaのグラフィックスの仕組みがようやくわかったわ
572 :
570 :2010/09/19(日) 19:12:40
Java Java♪ やっぱJavaだわ
573 :
デフォルトの名無しさん :2010/09/19(日) 20:57:15
皆さんはJavaでどういうの創っています?
最初、踊るドクターという副題とヒガシ主演と聞いて侮ってました どうもすいませんでした(´・ω・`)
Javaで仕事してきて、 血迷ってプログラミング言語Javaを買って読み始めたけど、これけっこうムズいww 意気消沈wwwww
576 :
339 :2010/09/20(月) 03:50:54
577 :
デフォルトの名無しさん :2010/09/20(月) 12:19:29
質問なのですが インクリメント・デクリメント って1増やしたり1減らしたりの動作ですが この動作ってどういうところで使われるのか教えてください
JAVA便利なのにやっぱり重いから一部の時代に取り残された低スペから物凄く嫌われてるよね(´・ω・`)
(´・ω・`)しばくぞこら
>>579 昔のJavaはすっごく重かったから、その頃のだけ使って、今は使ってないような人は
よくそういうこと言うよね。
JavaのWebアプリとか最強に速いよな
マーチ卒以上のプログラマってこのスレに居るの?
585 :
582 :2010/09/20(月) 19:28:28
僕のサブPCのpen3だとJAVAはとても重いよ。アプレットによってはブラクラさ(´・ω・`) でもそんな化石使ってる人滅多にいないし、メインPCならサクサクさ(´・ω・`) JAVA万歳(´・ω・`)
Java steady state ってなんですか?
(´・ω・`)あ?
vb6の後継者java
Javaワールドってクラスライブラリやフレームワークの利用者に対して それらの作成者と同等のオブジェクト指向に対する理解を要求するよね それが全く現実に即してないから余計に糞コードが量産される
それはJavaに限らんと思うが
有名Webサイトからコピペしてきたコードが動きません。 $ java -classpath /usr/share/java/jogl.jar SimpleCube Exception in thread "main" java.lang.NoClassDefFoundError: SimpleCube Caused by: java.lang.ClassNotFoundException: SimpleCube at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Could not find the main class: SimpleCube. Program will exit. エラーめっサージが何を言っているのかさっぱりなのですが、何が悪いのでしょうか ヒントだけでもいいので教えてください。とっかかりさえつかめません
SimpleCubeクラスが見つからないと言っています。 クラスパスを指定しているので、カレントディレクトリがクラスパスでなくなったためではないでしょうか。 カレントディレクトリもクラスパスに含めればいいと思われ。 java -classpath .:/usr/share/java/jogl.jar SimpleCube
594 :
592 :2010/09/21(火) 14:03:53
>>593 $ java -classpath .:/usr/share/java/jogl.jar SimpleCube
動いた\(^o^)/
なるほどカレントディレクトリもクラスパスにないといけないのですね。
まだまだ先は長い
(´・ω・`)あ?
596 :
デフォルトの名無しさん :2010/09/21(火) 18:10:51
javaを勉強するのにオススメの本をおしてえください
(´・ω・`)あ?
静的メソッドとインスタンスメソッドの違いでつまづいています。 class Sample { public static void main(String[] args) { String s = "125"; // Integer obj1 = Integer(125); // NG Integer obj2 = new Integer(125); // OK Integer obj3 = Integer.valueOf(s); // OK // Integer obj4 = new Integer.valueOf(s); // NG int i = obj2.intValue(); i += 10; System.out.println(i); } } /* end */ NG となる行、特に new valueOf() が NG なのが把握できないでいます。 static Integer valueOf(String s) では、内部で Integer クラスのオブジェクトが生成されると考えていいのでしょうか。 よろしくお願いいたします。
静的メソッドはインスタンスを必要としないメソッドなので > static Integer valueOf(String s) では、内部で Integer クラスのオブジェクトが生成される というのは間違い。 newっていうのはそのクラスのインスタンスを作るためのしるしだと考えればいい。 > Integer(125); // NG 新しいインスタンスを作成したいのでnewが必要。 > new Integer.valueOf(s); // NG これはIntegerの内部静的クラスvalueOfのインスタンスを作成する構文。 当然Integerクラスの内部クラスにvalueOfクラスが定義されていないのでエラーになる。
600 :
598 :2010/09/21(火) 22:06:14
>>599 初歩の質問にお付き合いくだり、ありがとうございます。
言葉の問題だけかもしれませんが、では、
Integer obj3 = Integer.valueOf("123");
で obj3 が参照しているのは、なにになるのでしょうか?
Integer obj1 = Integer.valueOf("123");
Integer obj2 = Integer.valueOf("123");
Integer obj3 = Integer.valueOf("123");
と、おなじ引数で、異なるなる変数に valueOf() の結果を渡した場合、
obj1, obj2, obj3 の値は同じものでしょうか、別のものでしょうか、それともこの質問は意味のないものでしょうか?
valueOfメソッドの実装について聞きたいの?それともJava一般で? valueOfにはなんか罠があった気がするんだが忘れた。
IntegerCache.cache[261]
>>601 Java 一般で、で、お願いいたします。
たとえば、
int a = Integer.parseInt("123");
は納得できるのですが、おおざっぱに書いたとして、
SomethingClass obj = SomethingClass.StaticMethod();
に抵抗を感じました。
C++ の感覚をひきずっているだけなのかもしれません。
>>603 staticメソッド内でnewしているケースがほとんど。
IntegerCache.cache[251]だったorz
606 :
598 :2010/09/21(火) 23:11:46
>>604 ありがとうございます。その線でしばらく学習を続けてみます。
>>603 Integer.valueOfの場合はともかくとして一般的な場合で言うと
SomethingClass obj = SomethingClass.StaticMethod();
としておけばobjのはSomethingClass自身でもSomethingClassを継承したクラスでも良いというメリットがある。
>>603 >SomethingClass obj = SomethingClass.StaticMethod();
>に抵抗を感じました。
命名の問題な気がします。
HogeClass hoge = HogeClass.newInstance();
だったら抵抗なくね?
>>596 「Head First Java 頭とからだで覚えるJavaの基本」
いいよ(´・ω・`)
>>610 それアメリカ版amazonだとかなり評判いいよね、レビュー3桁
612 :
606 :2010/09/21(火) 23:43:02
>>609 そうですね。まったくないです。delete とか書きそうです。^^);;
そういえばstlはつかいづらいですよね。iostreamとか
614 :
デフォルトの名無しさん :2010/09/22(水) 07:04:04
Cygwin32でgcjを使って次のプログラムをコンパイルしようとしているのですが エラーが出て出来ません。 public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } } gcj -O2 -o Hello --main=Hello Hello.java デフォルトでライブラリのパスが通ってないのでしょうか。 よくわかりません。教えてください。よろしくお願いします。
616 :
デフォルトの名無しさん :2010/09/22(水) 08:18:49
Hello.javaです。
618 :
デフォルトの名無しさん :2010/09/22(水) 11:54:52
SUNのjavacでやるほうが簡単そうなのでそうします。
そうしてください
一人相撲スレはここですか?
はいじゃないが
うっほほ〜
623 :
デフォルトの名無しさん :2010/09/23(木) 03:27:48
基本すっとばしてswingに手出して後悔してるおーどっからとりこぼしたかわかんねぇ死ぬ
ajaxって流行ってんの?何をするときに使ってんの?
private static Map map = new HashMap(); ってよく書くけど private static Map map = new Map(); じゃ駄目な理由って何?
interfaceはインスタンス作れない、と言語仕様で決まってる。
>>626 すべてのメソッドがAbstractなクラスだと思えばいい。
つまり自身は実装したくなくて、文字通りインタフェースだけ定義したいんだよ。
629 :
デフォルトの名無しさん :2010/09/23(木) 17:59:37
初心者でごめんなさい。 HPで画像をランダムで表セルの中に表示したいんだけど 表セルの中に表示するのはどうすればいいの?
>>629 String[] imgs = new String[]{"image-url1", "image-url2", "image-url3"};
Random rnd = new Random();
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.print("<td><img src=\"");
out.print(imgs[rnd.nextInt(imgs.length)]);
out.println("\"></td>");
out.flush();
}
(´・ω・`)。。。
JavaScriptでやったほうが簡単な気がする(´・ω・`) サーブレットじゃないとダメなのかな。だったらごめんね。(´・ω・`)
>>631 ありがとう
初心者のせいか細部があまり理解できなかった…ごめん
>>633 JavaScriptでやったらどうなります?
フレームワークでメジャーなものを何個か教えてくれ
ECLIPSEで import javax.swing.*; としてもエラーとなります. JAVAX.のあとで自動選択メニューにswingが含まれてないのです. どうしたらよいでしょうか。
>>638 エラーメッセージを読んで理解してみるとか
答える気ない奴は出てけ
じゃあ、エラーメッセージを読んでみるとか
642 :
638 :2010/09/23(木) 22:36:39
640は俺じゃないので. 昨日からパスをいじり倒してたけど出来なかった. で、今もう一回1から確認したら出来ました!自己解決、お騒がせしました.
643 :
デフォルトの名無しさん :2010/09/23(木) 22:39:18
JavaWebStartで、jnlpファイルにresourcesでライブラリのファイル名を書きますが、 アプリケーションのアップデートで使用ライブラリが増減した場合に起動に失敗するようです。 おそらくデスクトップに出来るショートカットなどを叩いた場合、ローカルのjnlpが使用されるからではないかと思います。 一般的なJavaWebStartアプリケーションはこのあたりどのようにしてるんでしょう? ライブラリは自作(というよりアプリ本体の複数jarファイル)と、apacheとかのライブラリを含みます (他のライブラリを含む場合、ファイル名のバージョン番号などは消すべき?)。
プログラミング言語Javaの練習問題難しすぎるんですけど この本を褒めてる人たちって練習問題解いたんでしょうか?
645 :
デフォルトの名無しさん :2010/09/23(木) 22:50:05
練習問題がないと何も出来ないのかお前は
エクリプすでこんなエラーが出る.解決法教えてください Internal Error (classFileParser.cpp:3161), pid=5756, tid=2096 Error: ShouldNotReachHere() VM Arguments: jvm_args: -Dfile.encoding=MS932 -Xbootclasspath/p: D:\data\Documents\eclipse\android-sdk-windows\platforms\android-8\android.jar java_command: jp.tuyano.eclipsebook3.SampleApp Launcher Type: SUN_STANDARD Environment Variables: JAVA_HOME=C:\Program Files\Java\jdk1.6.0_21 CLASSPATH=.;C:\Program Files\Java\jdk1.6.0_21\lib\dt.jar; C:\Program Files\Java\jdk1.6.0_21\lib\tools.jar PATH=C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin; C:/Program Files/Java/jre6/lib/i386; C:\Windows\system32; C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\; .;C:\Program Files\Java\jdk1.6.0_21\lib\tools.jar; C:\Program Files\Java\jdk1.6.0_21\bin USERNAME=t OS=Windows_NT PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 2, GenuineIntel
踏んではいけないdefault文とかをC++で踏んじゃった感じだなぁ。
648 :
646 :2010/09/24(金) 00:07:12
JAVAの本に載ってたこんな簡単なサンプルなんだけど。。。 package jp.tuyano.eclipsebook3; import javax.swing.JFrame; public class SampleApp { /** * @param args */ public static void main(String[] args) { JFrame f = new JFrame(); f.setSize(300,200); f.setVisible(true); // TODO 自動生成されたメソッド・スタブ System.out.println("HELLO!!!!!"); } }
649 :
デフォルトの名無しさん :2010/09/24(金) 01:20:00
Javaで作成するとしたらどっち? 1:GUI 2:サーバーサイド 3:携帯アプリ 4:アプレット
君が決めろ
JPA2.0でcreateQueryやったら、どんなに簡単なクエリーでもSyntaxエラーになる。 正直使えない。
AndroidにSwingがあるわけないだろ。 Androidがまったく想定してないことしてブートストラップライブラリ辺りをクラッシュさせた感じか?
Androidって法律違反なんでしょ?
655 :
646 :2010/09/24(金) 07:45:25
>>653 ファイル、新規、クラス
で、新規JAVAクラス で作ってるし、ANDROIDプロジェクトは選択してないんだが。
ならeclipseを入れなおせとしか
>>651 そんなことないんだが、使ってる実装なによ?
658 :
651 :2010/09/24(金) 16:41:05
>>657 実装といわれてもピンとこない。netBeans6.9.1をインストールしたまま使ってる。
createNamedQueryは使えるから、そのクエリーを直接こぴぺしてcreateQueryしてみたらSyntaxエラーにならなかった。
コマンドプロンプトでは正常なクエリーでも、createQueryではSyntaxエラーになるものもあるから、かなりしんどいな。
うざい死ね
このスレ眺めてみると、かなりイライラしている奴が多いな 相当切羽詰っているんだろうなw なんかすげー笑ったwww
だってプログラマって基本低学歴(ry
public class mtest{ public static void main(String[] args){ System.out.println("空きメモリ:"+ Runtime.getRuntime().freeMemory() ); DataSet[] data = new DataSet[100]; for(int i = 0; i < 100; i++){ data[i] = new DataSet(); System.out.println("生成済みインスタンス数:"+ (i + 1) + " 空きメモリ:"+Runtime.getRuntime().freeMemory()); }}} class DataSet{ int x; int y; } 実行すると空きメモリが全く減らないのですがどうしてでしょう?
>>662 メモリ確保のオーバーヘッドを減らすために、最初にある程度大きめのメモリブロックを確保して、それを細切れに各インスタンスに割り当てていくから
-XX:-UseTLAB オプションを付ければその機能が無効になる
そういえばエスケーポ解析は結局どうなったの?
-XX:+DoEscapeAnalysis というオプションがあるらしい
668 :
658 :2010/09/24(金) 18:40:52
netBeans6.9.1で自動生成されるNamedQueryを参考にしながら、createQuery用のクエリーを作ったら、シンタックスエラーは出なくなった。 正直めんどくさいけど、まあいいや。ありがとう。
文法GUI→テトリスやマリオっぽい何か→デザインパターン→ジェネリックやアノテーション等の復習 →フレームワークの基礎→Strutsを触ってみる ウェブ系以外で次になんかない? 本でも何でもいいから取っ付きを・・・
ajaxやTomcat以外でという意味です、あとAndroid方面も。
RSSリーダー・・・・って前も言った気がするな じゃあJOGLで3Dとかどう
>>671 前も聞きましたすいません、RSSリーダーもいまいちピンと来なくて・・・。
Style.class == Style.BOLD.getClass() Style.class == Style.BOLD.getDeclaringClass() 両者の違いは何ですか?
型が違う Style.BOLD.getClass() ・・・ Class<?> Style.BOLD.getDeclaringClass() ・・・ Class<Style>
どもです
enum Style { BOLD, ITALIC{} } Style.class == Style.BOLD.getClass() Style.class == Style.BOLD.getDeclaringClass() Style.class != Style.ITALIC.getClass() Style.class == Style.ITALIC.getDeclaringClass()
文字入力だとimport java.util.Scannerとやったりして メソッド利用の際の名前短縮してるけど Mathクラスの円周率とかは直接Math.PIで参照できるのはフィールドだから? 何言ってるか自分でもよくわかってないのですが…
>>678 Mathはjava.langパッケージのクラスだから。
>>678 ファイルの先頭に import java.lang.*; が自動的に付くんだと思ってくれ
681 :
デフォルトの名無しさん :2010/09/25(土) 02:06:20
jakarta commons とかを自作アプリに使いたい場合って、jarのまま使うのですか? それともソースを混ぜて自ソースと一緒にjarにしてしまう? 後者の場合ライセンスとか問題ないんでしょうか?
>>681 フリーソフトを自分で使う場合ライセンスが関わることは無いでしょう。
誰かに使わせたいけど、ライセンスを読みたくない場合は、使わせるのをあきらめましょう。
>>682 いや、Apacheライセンスがゆるゆるなライセンスなことは知ってるんですが、
ソースからコンパイルしてソースを混ぜてしまうと、ソースに書いてある著作権表記とかは消えるわけですよね。
マニュアルとかREADMEファイルとかに「commons使ってるよーん」と表記するだけで良いようにも読めますが
これであってますか?
>>683 ものによっては、license.txtをどっかにおいとけばいいいんだぜっ!ってやつなかったっけ?
>>684 APL2.0ってそれじゃなかった?うろ覚えだけど
Struts2で良書ない?てか本自体少ないんだが
Javaで音楽CDの再生はできますか? できるようであればどのクラスを使用するかも教えてください。
アイコン自体にD&Dする事で機能するクライアントアプリを 作成しJarからMac用にApp化したいのですが不可能でしょうか? Jar BundlerでApp作ったのですがダメでした。
既存のプログラムの改良ってどんな風に行うの? JAVA入門書とりあえず1冊読んだけど、ソースプログラムみてもわけわかめで 手が出せない。 演習的な本やったほうが良いのかな
それは、単に読んだだけで、内容を理解できてないってこと? その入門書に載ってるソースプログラムもわけわからんの?
>>692 みたいに質問もろくにできない奴って相当頭悪いと思う
おまえじゃ無理 もう諦めろ
本読んだだけでスキル習得とかゲームじゃねーんだぞ
書かなきゃ上達しない派とできるだけ多くのソースコードを読め派が居るけど、 俺は後者の方が効率がいい気がしてならない
>>692 入門書読んだだけでは確実に内容を隅々まで理解できていないので
色々と細かい点を変えたり試行錯誤して学習したほうがいいよ
700 :
デフォルトの名無しさん :2010/09/25(土) 23:42:09
誰かJNIかJNAやっている人いる?
ライブラリを使いこなせ派が最強
JNIなら昔仕事で
>>698 両方。わけもわからず書いても上達しないし、
読んだだけでは重要なところをスルーしかねない。
(CPUになったつもりで1ステップずつ追いかけるなら別)
やりたいことに似たコードをexampleとかから探してきて、
写経してデバッガで追っかけるとかやってるな。
>>698 おれはオプソいろいろ読んで、似たコードを実際かいてみて練習。がいいと思う。いろいろやったがこれが一番上達した気がする。
初心者は、ソースの美醜が分かるようになると上達が速そう。
何年たっても上達しない人は、あまりキレイじゃないソースを「分かりやすくていい」とか言ったりする人が多い気がする。
最初はとにかく書け,動くものをどんどん書け 自分の思い通りに書けるようになったら 他人のソースを読んでいろんな書き方を盗め
誰か助けてくれいや助けて下さい 「任意の長さの、要素が全て600未満の整数値である配列 A[n] に色々な数値が入っているとして、 A[n]の中の1個からn個までの要素を抜き出し、足し合わせて 結果が550になる組み合わせを列挙したい。 ただし、400と320を加算する等して結果が600以上になった場合、加算結果を2で割らなければならない。 すなわちただの合計値だけでなく、加算する順番も考慮しなければならない。」 こんな感じの内容を実現したいんだけど、どう計算させれば良いんだろうか? { 50, 50, 100, 150, 240, 260, 300, 500 } という配列が入力されたらば { { 50, 500 }, { 50, 240, 260 }, { 50, 50, 150, 300 }, ........って感じの二次元配列を返すように作りたい。 課題とか仕事とかじゃないんで期限納期がどうこうは無いんだけど 昨日から丸一日考えてもどう作れば良いかサッパリわかんね。あたまわるい自分に誰か教えておくれ
ごめん書き忘れ > 400と320を加算する等して結果が600以上になった場合、加算結果を2で割らなければならない ここで、片方が奇数、片方が偶数だった場合は ***.5になるけど、これは小数点を切り捨てる、としたい。
>ただし、400と320を加算する等して結果が600以上になった場合、加算結果を2で割らなければならない。 がよくわからない 2で割った結果が550となればいいってこと?(つまり合計値が1100でもいいの?)
すべての組合せを生成して、条件をチェックしてみたら? つまり、nビットの二進数を数え上げて、1が立っている位置に対応する要素を 調べるようにする。
javaというかアルゴリズムの問題だよね ざっとこんな感じかな 配列Aをソート 1:Aを大きい方から足していく 2:既定値となったら結果リストに追加して,最後に選んだ値を除く 3:既定値を超えたら,選んだ中で一番小さい値を除いて加算を続ける 4:最小値まで到達したらAから最大値を除いて再び1:から行う
こんな夜中にみんなありがとう
>>708 400と320を足したら620、これは600以上である為、620/2 = 310 として扱われる、って事。
で、その後に240を足せば550になるな、って感じ
>>709 そもそも全ての組み合わせをどう作ったものか、って段階でかなり(自分の頭が)怪しいし
それに全部列挙するとなると仮に配列長が40あったとしたら、40 + 40*39 + 40*39*38 ... と、えらい数にならない?
>>710 ソートしてから大きいほうから足して行くのは、ただの加算だけなら良いんだけれども
大きい数字同士は 600以上になったら【その時点で】1/2するって約束が辛くない?
例えば { 50, 100, 150, 300, 800 } だと、要件を満たしてしまうから演算が止められない
配列長はどのくらいなの
連投ごめん、見返したら最初からキチンと書いてなかった 600以上になったら 2で割るって所、【越えた時点で2で割る】って事なんだ。 { 200, 300, 300, 500} だったら まず200と300を足して500、これは600未満だからそのまま 次に500と300を足して800、これは600以上だから2で割って400 更に400と500を足して900、これは600以上だから2で割って450 で、結論が450になる、そんな感じ。 書いててもう頭いっぱいになってまいりました
>>712 任意の長さとして特に決めてはいないんだけれども……
真面目にやると凄い計算回数になるし、配列長 30個までが出来れば良いなと思ってます。
でも30の階乗とかもう数字じゃないわ
(50, 50, 150, 300) と (50, 50, 300, 150) が両方出てもいいのかい
独自の例外を、 Exceptionのサブクラスではなく、Throwableのサブクラスとして 定義した商用のパッケージを見かけました。(1.4です) Throwableのサブクラスとすることに、どのような利点が考えられるでしょうか?
>>715 問題無しです。気になったら最後の方で重複チェックすれば良いし
【超えた時点で2で割る】ルールがあるからnCmじゃなくnPm必須になるし……
>>716 Exceptionだとキャッチできなかったんだろ。その商用パッケージ。
719 :
710 :2010/09/26(日) 03:38:44
>>711 組み合わせの候補リストを追加すればいけると思う
720 :
716 :2010/09/26(日) 03:40:20
>>718 すみません、自分の頭だと発言の意図するところを読み取れないです。。
もう少し、かみくだいていただけないでしょうか?
>>711 40個だったら、40bitの整数を1から1ずつ増やしていけば2^40-1個全部数え上げられるよ。
やりたいことって、ナップザック問題の解の列挙だから、効率よく解けたら神レベル。
なので、安心して効率の悪いプログラミングに没頭できるよね。
もし、ちょっとだけ効率よくしたければ、ローカルサーチとかググればちょっと良くなるかも。
>>720 ThrowableのサブクラスにErrorとかExceptionがあるのはOKだろ?
で、そのパッケージの該当箇所は、Error系ものをキャッチ→ハンドルしたかったんじゃない?ってこと。
catch(Exception) とか書いてなんでもかんでもキャッチ・無視しちゃうダメプログラマ用の対策じゃね?
SpringだかなんかのDIライブラリでErrorを投げる場合があった気がする。
global exceptionにErrorを書かなくちゃいけなかったりの。
たぶんそういうのを考慮して統一したんじゃないか。
>>723 プログラマは例外は基本キャッチしない方針で作ってるフレームワークだと思う。
>>472 の本、信じられないくらい不親切な入門書で笑った。
Strutsを使うとも明確に書いてないし(一応それでちょこちょこやってる)、バージョンすら書いてない。
しかもどこのどれに何を書くの「どこ」と「どれ」がないんだぜ・・・?
これで入門って冗談よせよ。
>>719 (710)
ごめん候補リストが何を意図してるか考えてたら寝てしまっていた
>>721 あああああああナップザック問題か!そう言われれば似てる!
わかったこの辺のアルゴリズム勉強して効率良いのを応用出来んか考えてみるよ
おれはかみになるんだ!
文字出力するときにprintln("配列a[" + i + "]の値は" + a[i]); こんな風にやらないと駄目? C言語ではたしか後ろの部分に引数云々出来たけどjavaは出来ない?
>>722-724 ありがとうございます。
ちなみに先に書くべきだったんですが、
class FooException extends Throwable
class FooApplicationException extends FooException
という感じで定義されています。
ユーザ側でアドオンのプログラム書けるパッケージでして、
アドオン作ってるときに、ふと疑問に思って質問しました。
>>722 Errorをハンドル、っていう可能性を全然考えていませんでした。
説明ありがとうございました。
>>723 ダメプログラマがcatch(Exception)と書くと、そこキャッチできなくなるので、
余計にマズいような気がします。
私も最初似たような理由なのかと考えたのですが、どうも違うような気がしています。
>>724 >例外は基本キャッチしない方針
おっしゃる通りだと思います。
「設計上エラーと例外を同じように扱いたいケースがあるため」
ということになるんでしょうか。
730 :
716 :2010/09/26(日) 15:44:43
>>727 printfメソッド(1.5から)があるみたいですが、これはどうですか?
731 :
716 :2010/09/26(日) 15:46:26
やべ、人に親切にされたから、自分も親切にしようと思ったら、被ったw
window.Hoge = {}; っていうのはnamespaceですか?
734 :
733 :2010/09/26(日) 16:13:04
すみません JavaScriptスレと間違えた
735 :
727 :2010/09/26(日) 16:24:13
有難うございます
>>704 にあるような、コピーにおすすめのオプソを教えてくださいませんか。
>>736 Tomcat
規模の小さいのがいいならcommons langとか。
これをジェネリスク対応にしていくw
JAVA=ajax Tomcat みたいになってるよね最近 C#=.netみたいに
739 :
デフォルトの名無しさん :2010/09/26(日) 18:26:54
JNAどうやって使うの?
<>は何か特別な意味があるのでしょうか? プログラムを読み進めているのですが数行目で分からなくなりました。 Shell<DHT<String>> stdioShell = null; の部分は Shell<DHT<String>>クラスをstdioShellで宣言してnullを代入している?などと考えたのですが、 そもそもクラスの宣言は Shell<DHT<String>> stdioShell = new Shell<DHT<String>> (引数) のはずなので間違っている。上記の部分は何をしているんでしょう? 提示する情報が不足している場合はご指摘お願いします。 EclipceにおいてShell<DHT<String>>にマウスポインタを当てたところ、 Shell<DHT<String>>はow.tool.util.shellframework.Shell<DHT<String>>を指しているということがわかったので 該当のファイルを開いたところ、public final class Shell<T> implements Runnable, Interruptible { といったクラスはあったのですが、Shell<DHT<String>>は見当たりませんでした。 プログラム一部 public static void main(String[] args) { (new Main()).start(args); } protected void start(String[] args) { Shell<DHT<String>> stdioShell = null; stdioShell = this.init(args, System.in, System.out, true); if (stdioShell != null) { stdioShell.run(); // this call is blocked } } ow.tool.util.shellframework.Shell<DHT<String>>
素早い回答有難うございます。 ジェネリックスについて勉強します。
何をお願いしますんだ?w
>>743 メソッドではなくてクラスリテラルといいます
Systemクラスを表すClassオブジェクトが欲しいときにSystem.classと書きます
ありがとうございました
複数のクライアントと一つのサーバの間で、以下の機能をsocketプログラミングで作りたいと考えています。 クライアントがサーバにファイルをアップロードすると、 サーバは接続済みの全てのクライアントにそのファイルを流す。 これを実現するためのサーバ側のコードで悩んでいます。 まずアップロードされたファイルを受け取るためにソケットからinputStreamを取得しますが、 これを各ソケットのoutputStreamに流す時に、どのように実装すればいいのか分かりません。 一つのinputStreamをfor文で複数のoutputStreamに流そうとしても、最初のoutputStreamにしか流せないようです。 これはinputStreamが内部でどこまでデータを取り出したかを管理(?)してるからでしょうか。 他の案としては、一時的なファイルを作ってしまってそのファイルを複数のソケットが読めばできそうですが どう考えても良いやり方とは思えません。 結局、巨大なbyte配列で一時的にデータを溜めるぐらいしか思いつきません。 何かよい方法は無いでしょうか。
既視感わらた
>結局、巨大なbyte配列で一時的にデータを溜めるぐらいしか思いつきません。 が1番スマートじゃないの? 配列長は巨大にする必要ないけど
なにこいつw やっぱ「ゆとり」は違うわw
ゆとり ゆとりま ゆとらごん
イオナデン
int ≠ ちんこ
String ≒ ちんこ
velocity でリストを逆順にループする方法ってなんかありますか? $hoge.reverse($hogeList) みたいのを探したんだけどないお・・
ジャバをちゃんとやるには英語が出来た方がいいんですか? ウンコとかチンコじゃダメなんですか?
ウンコとかチンコでいいですよ
実際ウンコとかチンコと変わらんよ プログラミング関連の英語なんか英語というより記号みたいなもん ドキュメントとかは慣れれば英語そんなにわからなくても十分読める
>>760 を呼んで希望がわいてきたもうちょっと生きようと思ふ
じゃあマイクロソフトは巻き糞とかチンカスとかでいいですか? MSDN日本語版の説明はいつも意味不明ですよね?
将棋の駒の動きはどんなコードを書いたらできるんでしょ?
>>762 あるだけマシ
Javaのはもともと解説一行だから丁寧に訳せるんだよ
理系AランTOEIC750ですが英語で読むのきついです
C#とJAVAの強み弱み大きな違いを教えろ
ttp://www.yahoo.co.jp/ Yahooのトップページの各枠を1つのMVCとして実装し、
各枠のhtml生成が終わったのちに、テンプレートを基にしたhtmlに出力するような
フレームワークってないでしょうか?
(枠の数はDBの設定等により動的に変わります)
Strutsのtilesを調べたのですが、各枠用のJSPが固定なため
いまいちです(状況によりhtmlを変更したい)
なにかおすすめありましたら教えてください
>>757 師匠!それはvelosurfです!
それにSQLにDesc書けばおk、とかじゃなくて単純に逆順ループをしたいでござうr
773 :
757 :2010/09/27(月) 21:27:05
やっぱ「ゆとり」は違うわw
もうめちゃくちゃ
めちゃくちゃにしてえっ・・・!
>>773 ソートじゃねぇ、逆順にしたいだけなんだ・・!
もう自作のReverseToolつくったは・・
確かに逆順は自分で作った方が質の良いものができそうだな。
作ったと言っても、中身はjava.util.Stackに出し入れするだけの単純なものだろ?
jdbcのbatch処理で1000件のinsertを送っても、バッファエラーが起きずに成功するものでしょうか? またその辺の仕様の取り決めってあったりするでしょうか?
仕様は特に無さそうな気がする 心配ならSQLExceptionとOutOfMemoryErrorをキャッチしてバッチあきらめ処理に切り替えておけば大抵大丈夫なんじゃないか
Javaでx^2-2x-3=0の解をニュートン法で求めたいのですがどういうプログラム書けば良いのですか?
まずニュートン法はどこまで理解していて、どこからわからないのか。すべて理解しているのか。 Javaはどこまで理解しているのか、どこがわからないのか。 あなたのいっているプログラムでどこまでできてどこがわからないのか。 具体的に書かないと、ぐぐってきた、テキトーなサンプルを貼り付けられておしまいですよ
784 :
782 :2010/09/28(火) 17:39:46
Javaはまったくの初心者です;
787 :
782 :2010/09/28(火) 18:19:43
うーん・・さっぱりわからない・・・
>>780 普通なら1000件のinsertくらいでエラーは起きない
DBのエラーって、そもそもどういう時に起こるんだ? バッファエラーってのは、Java側?DB側のチューニングの問題?
790 :
785 :2010/09/28(火) 18:31:13
>>782 あ、リンク、3次方程式だった。。
リンク先がさっぱりわからないのなら、
ニュートン法を理解していないのか、Javaがまったく読めないのか。と推察します。
仮に「Javaがまったく読めない」のだったらJavaの基礎的なところを解説したサイトがあるのでそちらを参考にするとよいかと思います。
swingのツリーの任意のノードにアプリケーション側からクリックイベントを発生させたいのですが方法はありますか?
あれをcloseしてなくて1000件くらいでエラーになることはあるoracleとか
ニュートン法かどうか解らんけど java.awt.QuadCurve2D に二次方程式解かせることできるよー。 三次は CubicCurve2D ね。 なんでjava.lang.Mathに無いのかはよくしらん。 最近のGPUは方程式解く機能があるんだっけ?
java.awt.geomだったゴメン
ライブラリ主義コンプリートってのが典型的ジャバ信者
>>791 「任意のノードとやらに相当するTreePathを作ってあげて
JTreeのfireTree***()に渡してあげるジョブ」を
イベントディスパッチスレッドに投入するといいんでないかい?
Javaの超初心者です。 ご教示の程よろしくお願いします。 (本文が長すぎるようなので、2度に分けて投稿します) 入門書を参考にして以下の2クラスを作成しました。 transferメソッドの第一引数は「型+変数」なので教科書どおりで理解できるのですが、 第二引数が「クラス名+インスタンス名」となっています。 なぜ、このような書き方が可能なのでしょうか? (いろいろな文献にあたったのですが、このような書き方についての解説が見つかりませんでした) public class OOPSample { public static void main(String[] args) { Account fromAccount = new Account(12345, 10000); Account toAccount = new Account(67890, 10000); fromAccount.transfer(1000, toAccount); } }
public class Account { int id; int balance; Account(int id, int balance){ this.id = id; this.balance = balance; } String info() { return "口座番号:" + this.id + "残高:" + this.balance + "円"; } void transfer(int amount, Account toAccount){ this.balance -= amount; toAccount.balance += amount; System.out.println("送信金額:" + amount + "円"); System.out.println("送信元 " + this.info()); System.out.println("送信先 " + toAccount.info()); } }
そんなところでつまずいてるんじゃそもそも向いてないんだろう
void transfer(int amount, Account toAccount) ここか? 変数宣言のときも Account toAccount; って書くから、値がインスタンスってのは言語のルールでしょ
>>797 クラスも型なのでクラス名は型名です
インスタンス名というものは無く、それはインスタンスを指しているだけのただの変数です
従って Account toAccount というのは、Accout 型の toAccount という変数です
おk?
皆さん、ご教示とご意見、ありがとうございます。
>>799 勉強を始めてから未だ3日目なので適性判定はご容赦を。
Javaの初仕事が目前に迫っているので、どうしても習得せねばならないのです。
当方、COBOLとPL/Iなら得意なのですが、オープン系の言語は初めてでして…
>>800 そこです。
値がインスタンスというのはJava言語のルールなのでしょうか。
済みませんが、いま一つ分かりません。
しかし、余りにも基礎的なことのようなので、もう少し参考書類を探してみます。
>>801 クラスも型なのでしょうか。
当方が持っている参考書では、変数の型とは「データをメモリに記憶する方法を定めたもの」であり、
int,long,float,double,char,boolean,Stringが一覧表で示されています。
教えていただいた内容は、ちょっと禅問答のような感じです。
いずれにせよ、皆さん、貴重な時間を割いていただいて、どうもありがとうございました。
いろいろなヒントを教えていただいたと思います。
感謝!
>>802 それなら1年ぐらいロムってたらどうですか?
オープン系の言語ってなんだよw Javaはオラクルが全権掌握してるから単に言語としてはCOBOLの方がオープンだよ
当方、COBOLとPL/Iなら得意なのですが、オープン系の言語は初めてでして…
富士銀行系ですから
>>803 ご意見ありがとうございます。
しかし、突然Javaの仕事をすることになってしまい、
なるべく早く習得しなければならない羽目になっています。
それで、焦燥感に駆られて質問を書き込んでしまいました。
1年は待ってられない感じなんです。
「値がインスタンス」とか「インスタンスを指しているだけのただの変数です
従って Account toAccount というのは、Accout 型の toAccount という変数」
の意味が分かるような解説書やWebサイトをもしご存知でしょうか?
ご存知でしたら、是非ともお教えください。
>>802 >int,long,float,double,char,boolean,Stringが一覧表で示されています。
Stringはクラスだよな?
「データをメモリに記憶する方法を定めたもの」という意味ではクラスも型 静的言語でクラスを型と呼ぶのは結構一般的
Javaの初仕事が目前に迫っているので、どうしても習得せねばならないのです。
インスタンスの意味を理解すればその文章の意味も分かるんじゃないかな
PL/Iが本当に得意ならJavaやオブジェクト指向なんかは一週間あれば余裕で習得できますよ
勉強を始めてから未だ3日目なので適性判定はご容赦を。
いつの間にか、たくさんの方にコメントをいただいてしまいました。
ありがとうございます。
>>808 さっそく参考書を調べたところ、「Stringクラスは、char型の配列をフィールとして
持つクラスです」との一文がありました。
とりあえず、この付近の文章を読んでみます。
>>809 禅問答っぽいですが、ヒントになりそうです。
(クラスなる言葉が出てくる言語は初めてなもので…)
いただいたコメントを何度も読んで、噛締め、咀嚼してみます。
じゃあコツを教えよう クラスは関数の飾り。インスタンスメンバは使うな。変数もメソッドも全部staticにしろ。 基本型以外は使うな。入出力はおまじないだから余計なことは考えず参考書からコピペしろ。
たくさんのコメントありがとうございます。
>>811 クラスは「ある処理に関するデータと処理内容をまとめて定義した設計書のようなもの」で
インスタンスは、その実体、という認識です。
しかし、まだ本当には理解しきれていないのでしょう。
>>812 励まし、ありがとうございます。
確かにCOBOLと比べればPL/Iの方がJavaに似た感じです(ぱっと見た目の話ですが)。
ですが、まだまだJavaの本質が「掴めていない」ように思います。
>>815 アドバイス、ありがとうございます。
まだまだピンと来ないJava用語が多いので、勉強します。
個人的な事情をいちいち書いて言い訳がましい感じになるとうざがられるだけ ですよ。 あとやたらへりくだる慇懃無礼な感じとかもね。
引数の型で悩んだことないなぁ Cとかやったら発狂しそうだな 関数のポインタとかで。
付け焼き刃でいくなら
>>815 ただし後々痛い目に遭うこと間違いなし
COBOLは文字型しかないとは聞いたことがあるが、 3日掛けて型と変数がわからないってレベルのそんなかけ離れた言語だったのか。
java VB COBOL
>>821 そんなことないよ。
かなりきめ細かく指定できる。
<数字はすべて十進1けたを1バイトの数字で表現する属性>
PIC XXX 英数字3文字(3バイト)
PIC X(256) 英数字256文字(256バイト)
PIC 9(5) 数字5文字で十進5けたの符号なし整数を表す(5バイト)
PIC 999V99 数字5文字で十進整数部3けた、小数部2けたの符号なし数を表す(5バイト)
PIC 999PPP 数字3文字でその下に3けたの仮想的なゼロを補った数値を表す(3バイト)
PIC Z(7)9 8けたまでで先頭のゼロをサプレスした符号なし整数(8バイト)
PIC ZZZ9.9999 整数部4けた(ゼロサプレス)+小数点のピリオド+小数部4けた(9バイト)
PIC -----9 5けたまでの符号付整数をゼロサプレスしたうえで先頭に符号を付与する(6バイト)
<バイナリや浮動小数点のデータ型…下記のUSAGE句を指定>
USAGE BINARY 2の補数表現のバイナリ PICTURE句でけた数を指定
USAGE PACKED-DECIMAL 1バイトで十進2けたを表現する PICTURE句でけた数を指定
USAGE COMP-1 単精度浮動小数点 PICTURE句不要
USAGE COMP-2 倍精度浮動小数点 PICTURE句不要
USAGE COMP-3 PACKED-DECIMALと同義 PICTURE句でけた数を指定
USAGE COMP-4 BINARYと同義 PICTURE句でけた数を指定
>>819 Javaの絵本を適当に読んで
適当な入門サイトに載ってるプログラムをいくつか動かしてみる
そしたら電卓もどき程度は作れるようになるので
そこまで行けば後は脳が勝手に覚えてく
嘘じゃない
nioにpipeがあったのでchannelとselectつかってスレッド間でデータを送受信するプログラムをつくってみましたが、 データの取りこぼしがでてしまいます。writerスレッドからlongで10から100までの数字をreaderスレッドに送ります。 どこが悪いのでしょうか。他にやりかたはあるでしょうか。 import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.*; public class Test { static Selector selector; static Pipe pipe; static SelectableChannel writeChannel, readChannel; public static void main(String[] args) { try { selector = Selector.open(); pipe = Pipe.open(); writeChannel = pipe.sink(); readChannel = pipe.source(); writeChannel.configureBlocking(false); readChannel.configureBlocking(false); // writeChannel.register(selector, SelectionKey.OP_WRITE); readChannel.register(selector, SelectionKey.OP_READ); } catch(IOException e) {;} new reader(selector, (ReadableByteChannel)readChannel).start(); new writer((WritableByteChannel)writeChannel).start(); } }
つづきです class reader extends Thread { Selector selector; ReadableByteChannel readChannel; byte[] Buf; ByteBuffer Buffer; public reader(Selector selector, ReadableByteChannel readChannel) { this.Buf = new byte[32]; this.Buffer = ByteBuffer.wrap(Buf); this.selector = selector; this.readChannel = readChannel; } public void run() { while (true) { try { selector.select();} catch(IOException e) {;}; for (SelectionKey selectionKey: selector.selectedKeys()) { if (selectionKey.isReadable()) { Buffer.clear(); readChannel = (ReadableByteChannel)selectionKey.channel(); try { readChannel.read(Buffer); Buffer.flip(); System.out.println("Receive: " + Buffer.getLong()); } catch (IOException e) {;} } } } } }
最後です class writer extends Thread { WritableByteChannel writeChannel; byte[] Buf; ByteBuffer Buffer; public writer(WritableByteChannel writeChannel) { this.Buf = new byte[32]; this.Buffer = ByteBuffer.wrap(Buf); this.writeChannel = writeChannel; } public void run() { int i = 0; while (i++ < 10) { /// try { Thread.sleep(0);} catch(InterruptedException e) {;} Buffer.clear(); Buffer.putLong(i*10); Buffer.flip(); try { writeChannel.write(Buffer); } catch (IOException e) {;} } } }
勉強を始めてから未だ3日目なので適性判定はご容赦を。 Javaの初仕事が目前に迫っているので、どうしても習得せねばならないのです。
コボラーってさ、sin,cosなんか一度も使ったことないんだろうね。
今ならJavaプログラマなんて履いて捨てるほどいるのに なぜコボラーを使おうとするのか
オブジェクト指向の代表といわれるJavaも結局はプログラミング言語ですよ。 もしCOBOLを言語としてちゃんと理解していたならJavaを習得するのだってそんなに苦労はないと思います。
コネやコミュ力も実力の内だからなあ。 ネット上の教えて君みたいな人の方が現実世界では案外と上手に生きて行けるもんだ。 いくら頭がよくてもコミュ障害気味のお前らよりは仕事出来るだろうな。
>>831 ええ?どうしてか分からないんですか?
「メソッドの引数としてクラス名とインスタンス名を使用」だからですよ
>>833 1年は待ってられない感じなんです。
ご存知でしたら、是非ともお教えください。
COBOLはしらんけど変数と変数名とスコープが分かってないことは分かった
基礎が理解できていないのに、とりあえず急ぐからと やっていくと、納品近くなって壊滅的な被害が出るんだよな。
プログラミング言語では age = age + years(C言語などでは age += yearsのように略記できる) と書かれるが、COBOLでは ADD YEARS TO AGE (英語でそのまま「年数を年齢に加える」) となる。このように、数学やアルゴリズムの知識がほとんど無くとも構文上の約束事(全て現在形、語尾変化なしなど)さえ憶えて、 英語による理路整然とした記述ができれば、COBOLのプログラムを取り扱うことができるようになっている。 つまり事務処理の手順を逐一細かく(英語で)記述していけば事務処理が電算自動化できるという、工程的利点が存在する。 さらにプログラムのコードそのものがプログラムの機能を説明する仕組みになっているので、コードをそのまま「読む」ことができるという利点もある。
>>837 しかし、突然Javaの仕事をすることになってしまい、
なるべく早く習得しなければならない羽目になっています。
でも今はコネやコミュ力があっても失業中のJavaプログラマいっぱいいるよ。 ないから失業してるっていうかもしれないけど、そんなことはなくて 実力のないコボラーでもたまたまJavaプログラマを探すのが面倒と 思ってしまっている顧客に雇ってもらえてる人もたくさん居る。 だから顧客には勇気を持って取り替えてほしい。 今がよい機会だよ。
>>839 1つ言えるなら、とにかく人の作ったソースを読みまくれ。
昔と違って、javaの基礎の解説サイトなんて唸るほどある。
手っ取り早く「(できればコードを)教えてくれ」って言いたい気持ちは解るが、
それに固執していたら、進むモノも進まなくなるよ。
今苦労するのが、後で身をたすく。
このスレには失業中のjavaPGしかいないんだから難しい質問は遠慮してください
>>825 32バイトのバッファに読み込んでlong1個(8バイト)しか表示してないから
読み込んだデータは全部表示しなきゃ、そりゃ取りこぼしたようにも見える
>>837 ,841
勉強を始めてから未だ3日目なので適性判定はご容赦を。
COBOLの人はアセンブラとかx86とかjvmとか行番号で処理を羅列していくような構文の言語の方が馴染みやすいと思う。
Lispとかに比べりゃコボルもJavaも似たようなもんだろ
>>814 いただいたコメントを何度も読んで、噛締め、咀嚼してみます。
なんみょう〜だ〜 なんみょう〜だ〜
849 :
デフォルトの名無しさん :2010/09/29(水) 11:38:33
ここで質問すべきか迷いましたが…。 言語をJavaで、Webプログラミングしようとしたら、 今時なトレンドは、どんなスタイルなのでしょうか? 今もStrutsとかがメインだったりするんでしょうか?
Servlet+JSPがトレンド
851 :
デフォルトの名無しさん :2010/09/29(水) 11:50:42
今の流行りはRailsモドキとVelosurf
>>823 PL/I JAPAN
HELLO:PROC OPTIONS(MAIN);
DCL HELLO1 CHAR(12) INIT('HELLO WORLD!');
DCL 1 HELLO2,
2 * CHAR(12) INIT('HELLO WORLD!');
DISPLAY('HELLO WORLD!');
DISPLAY(HELLO1);
DISPLAY(HELLO2);
END HELLO;
私もコボラーだったけど、Javaの本を10冊位読んで、APIマニュアルを精読して、自分でサンプルプログラム書きまくったらJavaでプログラムできるようになったよ。 がんばって。
1から習得するより楽でしょ
1年は待ってられない感じなんです。
もう許してあげて
>>843 どうもありがとうございます。
そうなんです。Cでいうところのflush的なものがないので困っているのです。
対処療法としてみつけたのがsleep(0)を挟み込むことで、
827のwriterでコメントアウトしているsleep(0)を実行するだけでも取りこぼしは無くなります。
try { Thread.sleep(0);} catch(InterruptedException e) {;}
しかし、これで確実にデータを渡せるとはとても思えないので困っているところです。
>>859 いやいやいやいや、flush関係ないし
読み込んだものを表示してないだけだって言ってるじゃん
こうするんだよ
if (selectionKey.isReadable()) {
readChannel = (ReadableByteChannel) selectionKey.channel();
try {
readChannel.read(Buffer);
Buffer.flip();
while (Buffer.remaining() >= 8) {
System.out.println("Receive: " + Buffer.getLong());
}
Buffer.compact();
} catch (IOException e) {;}
}
>>860 たびたびありがとうございます。
書いたプログラムは実験用で、実際は送るデータ長は不定なんです。8バイトとは限りません。
そういう場合はどうすればよいのでしょうか。
861つづき java.nio.channels.spi.AbstractInterruptibleChannel のbegin,endが関係あるのかと思って try { writeChannel.begin(); writeChannel.write(); } finally {writeChannel.end(true);} などやってみましたが、 begin() has protected access in java.nio.channels.spi.AbstractInterruptibleChannel こんなエラーメッセージでつまっているところです。
>>861 最初にデータ長を送るか、改行・空白等で区切る
ファイルの読み書きと同じだと思え
不定長のデータを何の情報もなしに区切れるわけない
>>860 今、レス書き込んだ直後に思ったのですが、
書き込みスレッドも読み込みスレッドも1つづつで、送受信の混信はないと仮定できるので(別々のスレッドからのデータが混じることはない)
書き込み/読み込みを2段階にわけ、
(1)最初4バイトで次に送るデータ長を送信、
(2)本当のデータを送信
とすることは可能ですね。汚い実装ですが。
できれば、pipeのchannelでデータを確実に送る方法で実装したいです。
pipeはもともとstreamだから、そもそもメッセージを送るという場面では使わないのかもしれないのですが。
channelだとByteBufferが使えるので楽なのと、
selectionKeyが使えるのがやはり楽だったり後で多重化できるのが利点です。
サーブレットの中でスレッドをnewしてnewしたスレッドの中で処理をさせることって可能ですか? スレッドをスタートさせた後、サーブレットの処理は無限ループさせ、スレッドが終了するまで1秒スリープしてはスレッドの実行状態と経過時間を確認を行ないます。 そして、20秒過ぎてもスレッドが実行中心ならタイムアウトとしてスレッドをストップ、またはストップさせないでループを抜ける。そんな処理を書きたいのです。
できる
>>866 回答ありがとうございます。
書いてみたのですが上手くいかなかったので、もしかしてダメなのかと思って質問させていただきました。
ソースをもう少し見直してみます。
pseudo code だけどこんな感じじゃね? class さーぶれっと { volatile boolean fin_heavy = false; // 重い処理終わったよフラグ 略 onGet(略) { Thread worker = new Thread(new Runnable() { public void run() { // 重い処理 fin_heavy = true; } }); worker.start(); // worker 監視部分 while (true) { sleep(1000); if (fin_heavy) break; // 重い処理終了 if (isTimeout()) break; // 重い処理終わらずにタイムアウト } } }
サーブレットはマルチスレッドで呼ばれるからフィールドにフラグ持つのはまずい Executor楽でおすすめ static ExecutorService executor = Executors.newCachedThreadPool(); void doGet(〜) { 〜 Future<?> f = executor.submit(new Runnable(){ public void run() { 〜重い処理〜 } }); f.get(20, SECONDS); 〜 }
>>868 さん
レスありがとうございます。
そんな感じに書いているつもりなんですが、一回目はキチンと正常終了しているのにF5でブラウザリロードすると1秒でタイムアウトしてしまってまして><
>>869 さん
助言ありがとうございます。
サーブレットのクラス変数はダメなんですよね、サーブレットのメソッドの中でnewしているクラス変数もマズいですか?
とりあえずexecutorぐぐってきます。
>>869 そういえばタイムアウト付きFutureがあった
確かにフィールドはまずいですなorz
>>870 タイムアウトカウンタをフィールド持ちしてるとか
さくっと書ける
>>869 の実装がお勧め
>>871 むしろ迷orz
873 :
デフォルトの名無しさん :2010/09/30(木) 17:46:03
class Tes { public static void main (String args[]) { int x = (int)(Math.random() *9); System.out.println(x); if ( x == 0 || x == 1 || x == 2) { System.out.println(1); } if ( x == 3 || x ==4 || x == 5) { System.out.println(2); } if ( x == 6 || x ==7 || x == 8) { System.out.println(3); } } } このような1〜3を出力するプログラムがあったとして、その出力された数字を今度は足したり引いたり計算をさせるにはどうやって書けばいいでしょうか?
>>873 int y = 0;
if ( x == 0 || x == 1 || x == 2) {
y = 1;
}
if ( x == 3 || x ==4 || x == 5) {
y = 2;
}
if ( x == 6 || x ==7 || x == 8) {
y = 3;
}
のようにして、それからyを足したり引いたり計算をすればいいです
というか、 if ( x < 3) とかじゃダメなのかな?
というか, y = x / 3 じゃダメなのかな?
>>874 あっどうです^^
>>875 こういう事ですよね?
if ( x <=2 ) {
System.out.println(1);
}
if ( x <=3 || x >=5) {
System.out.println(2);
}
if ( x <=6 || x >= 8) {
System.out.println(3);
これだと、
>>873 にならない出力結果になってしまうんですよ(TT)
というか、 そもそも計算してどうするのかな?
>>877 >if ( x <=3 || x >=5) {
不等号の向きがおかしいぜ
>>877 if ( x < 3) {
y = 1;
}
else if ( x < 6) {
y = 2;
}
else if ( x < 9) {
y = 3;
}
単純にこうじゃないの?
>>878 ランダム値の値が
0〜2の時、1点
3〜5の時、2点
6〜8の時、3点
でこれを数回繰り返し合計点を計算するプログラムを作りたかったんです。
>>881 int sum = 0;
int loop = 数回
for (int i=0;i < loop;i++) {
int x = 0〜8のランダム値を返すよ();
int point = (x / 3) + 1;
sum += point;
System.out.printf("%d 回目 らんだむ=%d ぽいんと=%d 合計=%d%n", i+1, x, point, sum);
}
||と&&を勘違いしてないか
int sum = 0; int loop = 数回 int[] point_tbl = new int[]{1,1,1,2,2,2,3,3,3}; for (int i=0;i < loop;i++) { int x = 0〜8のランダム値を返すよ(); int point = point_tbl[x]; sum += point; System.out.printf("%d 回目 らんだむ=%d ぽいんと=%d 合計=%d%n", i+1, x, point, sum); }
エラーが出てしまいます><;
質問してやってるんだから回答者はちゃんとコンパイル通って動作確認すんだものだけ載せるように!
そして誰も (回答者が) いなくなった・・・
javaでexcelファイルをPDFに変換することは出来るでしょうか?
お前には無理
COM使える言語で作って別プロセスとして呼んだほうが早い
>>888 オープンオフィスのライブラリを使うべし
お前には無理
お前なら出来る
お前しかいない
Yes.you can!
Head first Javaの第2版ってもう内容的に古いですか?
1.6以後に出てなかったっけ?
今月の日経ソフトウェアでjavaに関する、大きな記事が載っていた factoryパターンを使ってmysql,postgresqlの、どっちにも対応させようってコードがあったと思う 本当にそんな事して意味あんのか? ありえねー事をサンプルにしているなんて無駄としか思えない
新しいの出てるよ。邦訳は知らんが。
>>898-900 ありがとう。
第3版出てますか?
だったら訳書出るまで待ったほうが良いよね。
orマッパのメリットを教えてください
SQLを書かなくていい でも俺はSQLを書く方が好き
mysql,postgresqlの、どっちにも対応させることに意味はあまり無いだろうが factoryパターンの例題としてならば十分意味がある
ありえねーと言ったらサンプルより現場の方がそうだったりする
最近mysqlからポスグレに移行したけど、 元々JPA使ってたから苦労ほとんどなかった。 一部の型がうまく移行できなかったとかあったけど、1時間で解決したな。
わざわざどうして移行したんですか?
ライセンス問題。
ですよね
ストアドだらけのシステムだとストアド移植するのが大変で DB移行なんて無理
>>910 でもさ、業務アプリケーションはスピード出すためにストアドばっかり使うよね
912 :
デフォルトの名無しさん :2010/10/02(土) 11:29:50
>>908 スレ違いだけどmysql(community editionだと思うが)にライセンス問題なんて発生するの?
Oracleになったからだろ。 ウチの会社でもmysqlもよく使われてたけど最近はほぼpostgres一本になった。
それはオラクル営業部隊に対する反抗心からじゃないの?
JPAで再帰クエリーって可能?SQLを書かないと無理?
>>625 画面遷移を伴わないブラウザ-サーバ通信。
SwingからWebアプリに移ると、これが無いとやっていけん。
>>911 そう?1テーブル1億レコード程度までなら、普通にJavaから実行している。
APサーバとDBサーバの間の帯域がダメダメな場合は、ひょっとしたらストアドプロシージャつかうかもだけど。
帯域がちゃんとしている場合ってそんなに処理スピードかわるの?
昔の人はストアド使いたがるよね 完全に時代遅れ
>>913 Oracleになったことでどんなライセンス問題が発生するの?
将来性が不安だから早めに移行してしまおうってのならわからんでもないけど、 ライセンス問題ってのは違うよね。 今使ってるフリー版が使えなくなるわけじゃなし。
JavaMEのライセンス料が入らなくなるから、Androidから徴収しようってのがひとつの理由らしいね。 Javaコミュニティそのものを攻撃しているというのは全くのデマ。 むしろOracleはSun以上にJavaFXを発展させる意思があるから、頼もしいくらいだよ。 SpringSourceの人が言ってるが「Oracleは信頼されていない」ってのは克服すべきだけど。
クライアントにも力入れてる姿勢を見せとかないと乞食コミュニティがうるさいからな
末端からすると言語多すぎるからちょっとぐらい淘汰されるのも良いけど
SQLは第一に淘汰されるべき
JavaFX Scriptは淘汰されたね
>>747 前に質問してた人だよね?俺回答したと思うんだけど試した?
>>923 Oracleはコミュニティなんか見てないだろ。
Swingが生まれてからもう何年も経つのに、未だに開発環境のデファクトスタンダードどころか泡沫環境ばかりだというのは驚くほかない
結局サーバー屋の道具だったってこと
Windows + Java6 ProcessBuilder pb = new ProcessBuilder("hoge.cmd"); Process process = pb.start(); この時に、プロント画面を表示させたいんだけど、何か方法あるでしょうか?
プロトンKR
プログラミングって一文字間違えたらおしまいの世界なのに、 こう、おもしろ用語がどんどん生まれるって、やっぱり向いてない人が 無理しなければならない状況がいっぱいなのかな?
Hoge hoge = method(Hoge.class, foo); のように、引数1にキャストしたいクラス、引数2にキャストしたいオブジェクトを入れ fooをクラスHogeにキャストしてくれるようなメソッドを作ることは出来ますか? ジェネリクスを使えば出来そうかと思い、下記のようにしたのですが出来ませんでした。 public <T> T method(T _class,Object hoge){ return (T)hoge; }
出来てねぇよ public <T> T method(T clazz, Object obj){ return clazz.cast(obj); }
>>937 T clazzじゃなくてClass<T> clazzだな。
939 :
935 :2010/10/04(月) 03:47:17
>>938 ありがとうございます、成功しました。
半ば諦めていたので、助かりました。
clazzって何ですか?
classは予約語なので変数名として使えないから。
慣用句っていうのかな。Class<?> clazzとかはイディオムですね。
clathのほうが発音は近いのに
crassはクレイスになるけど日本人的なのに
とか
>>942 を見て思った
Sun製のソースだと「klass」も多いよな
cls も使う
orzも使う
Or2 =3
object resize zero
949 :
デフォルトの名無しさん :2010/10/04(月) 14:20:52
>>935 実質何の意味もないよそれ
(Hoge)(Object)foo と同じ
そんなこと聞いてません
JRE1.6u19からアプレットでapache-commons系のライブラリを使用するとセキュリティ警告が表示されるようになりました。 何でも混合モードというものに引っかかったらしいです。 アプレット用のjarは自身のキーで署名しましたが、ライブラリjarは署名していないため、この形態は危険だっと認識されたようです。 アプレットの設定でこれを警告にしない設定をすれば回避できますが、 この設定をせずに、警告を出さず署名済みアプレットでapache-commons系のライブラリを使用させることは出来るでしょうか?
commonsにも署名すればいんじゃね
>>952 同じキーで署名したのですが、警告ダイアログは依然出てしまいます。
ライブラリを全て解凍し、アプレット用のjarひとつにまとめましたが、それでも警告が出ます。
955 :
デフォルトの名無しさん :2010/10/05(火) 13:35:43
//<applet code="A.class" width="600" height="300"></applet> たしか、この部分をアプレットのテスト実行機能(appletviewer.exe)が読んでる。 実際にWebページに貼り付ける時と同じサイズにしとこう。
>>956 widthとheightの数値を変えればいいのですか?
>>956 あ。html側の設定を変えたらよかったんですね。理解しました.
ありがとうございます
そんなもん実際に試してダメだったときに聞けよ。 Javaの初心者はともかく、質問の初心者はお断り。
お断りだ。
JPanelでダブルクリックで展開・格納できる機能を実装したいのですが展開・格納はどのクラスを使ったら良いでしょうか? イメージとしては Item → Item メモ 重要度 のようにダブルクリックで項目が展開されるものです。
JTreeじゃダメなの?SwingにどんなUIがあるか一度調べたら?
JTree で気に食わないなら自作するしかないね。
964 :
デフォルトの名無しさん :2010/10/05(火) 19:31:04
質問です。 コンストラクタの引数にthisが入ってる場合、これって何を指してるのでしょうか。 Test t = new Test(this);
呼び出し元のクラスのインスタンス自身。
むぅ・・・いまいちピンと来ないです。; 下の場合、HomeAppliのインスタンスを引っ張ってきてるってことで良いのでしょうか。 public class HomeAppli { MList nameList; public void start() { nameList = new MList(this); } }
tに聞いて見るのが一番よ
良いですよ
>>966 start()はHomeAppliクラスのインスタンスメソッドだから、
それを呼び出すためにはHomeAppliのインスタンスが必要。
new MList(this)のthisはそのstart()を呼び出すのに利用したインスタンスへの参照を表す。
ありがとうございました。
ちゃんと調べてたら
>>966 の通りで合ってました。
しかし、携帯アプリのソースコードは煩雑で読みにくい・・・。
(サンプルソースがクソなだけなのかもしれませんが。)
他人のコードにケチつけるレベルじゃないだろ
>>962 >>963 IDは変わってしまいましたがありがとうございます!
JTreeというものがあるんですね・・・当方javaを始めたばかりで知らないクラスばかりでした。
早速試してみます!本当にありがとうございました!
ム板でIDとな
OracleからダウンロードしたJDKってデバッグオプションなしでコンパイルされたものですか?
>>970 確かに携帯Javaは速度出すためにクラス数制限して可読性損なったりするけど
お前さんの場合は多分勉強不足よ
わたってきたObject型が任意のクラスの配列型であるかの判断はどうすればいいですか?
if (obj instanceof Foo[]) { } で判断できない? 何か悪い設計してそうだ。
if(obj.getClass().isArray()){ }
どうしてJavaにはconstがないんですか? 気持ち悪いです
知らん。そもそもfinal修飾子があるから要らない。 finalはコンストラクタ内の変数操作を許すから、constとは違うけどね。
配列クラスって元々何のために動的に作られるのかな? したのメソッドを実行してふと考え込んでしまった… new String[]{"aaa", "bbb"}.getClass().getDeclaredConstructors(); → 空 new String[]{"aaa", "bbb"}.getClass().getDeclaredFields(); → 空 new String[]{"aaa", "bbb"}.getClass().getDeclaredMethods(); → 空
知らん。たぶんヒープに持ってくためのプレースホルダだろ。
知らないなら黙っててもらえますか? はっきり言って邪魔です
お前は相手がホントに理解して回答を返してくれると思ってるのかと
回答者のレベルを考えて 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 以外の質問は控えてください
>>984 ちなみに、配列のオーバフローをチェックするに当たるメソッドがgetDeclaredMethodsで出てくると思って期待していたんですが…
>>989 getDeclaredFields()で配列のlengthが取れないほうが問題のような気もするが。
じすれうめ
lengthがフィールドだと思ってるやつw
ジャヴァも出来てトーイックも900点だなんてすんごいんですね! それで年収いくらになるんですか?
年収400万です
>>976 こんなアプリもあるんですね・・・ソースコードも載っているのでとてもためになります!
ありがとうございます!
日本のIT系エンジニーアの年収は、たとえトーイック900点であっても年収400万円なのが現実なのです
今、全俺が泣いた'(T_T
じすれおつ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。