自民ステマ乙
■■Javaスレでのお約束■■
このスレには共産主義者のホロン部でかつJavaに対するアンチ活動をしている荒らしが
延々とJavaとはまったく関係ない話題で
「自民党は在日が指示している公明党とつるんでいるから民主党が政権とるよりも在日に有利になるはずニダ!」
などとデマを吹聴したプロパガンダを繰り返しています。彼は論理的思考力がないのでスルーしてください。
ちょつ
くそレススルー推奨
ステマ工作員乙
すてますてまうっせーよ
「ステマ工作員」って何ですか?
>深淵をのぞく時、深淵もまたこちらをのぞいているのだ
byteの配列の中身が、
68 6F 67 65 66 6F 6F 70 69 79 6F 00 00 00 00 00
(hogefoopiyo.....)
のような感じでヌル文字で終端されたアスキー(かutf-8)文字が入ってるのだけど、
どうすれば簡単に文字列部分だけ取れるかな?
とりあえず、以下のようにしてみた。批評をお願いしたい。
// stringに文字列が入っている。
// ストリームから流れてきたものをbyte配列に入れて、toStringしたもの。
char delimiter = 0;
String stringDelimiter = (new Character(delimiter)).toString();
String[] stringArray = string.split(stringDelimiter);
string = stringArray[0]; // 内容更新
ケツについたU+0000を落とすだけでいいなら
String str = new String(new byte[]{ 0x68, 0x6F, 0x67, 0x65, 0x66, 0x6F, 0x6F, 0x70, 0x69, 0x79, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00 }, "UTF-8");
str = str.replace("\0", "");
>>13 ありがとー!
すごくわかりやすいキレイなコード。
javaも\0でヌル文字なのか。\0以外もあったので、
str = str.replaceFirst("\0.*", "");
で行きました。
subclipse使ってみている。
ウィンドウ>設定>チーム>SVN>無視するリソース
を参照すると、
*.class
がないのだけれども、.classの除外をしてくれている。(助かってる。)
Javaは特別ってことなのかな?
あと、
ウィンドウ>設定>チーム>SVN>ファイル・コンテンツ
を見ると、結構な数のファイル種が、ASCII扱いになっている。
これを全てバイナリにするのが果てしなく面倒なのだけど、一括で出来ないかな?
(まぁ、使うのだけ変更するならすぐなんだけど。)
eclipseスレに行った方がいいかな?ここだとスレ汚しかな?
エディタなどで、
半角スペースを大括弧が90度傾いたような記号で表すことが可能なものがありますが、
JavaのSystem.out.printlnでそれを出力したい場合は、charの定数でいくつを指定すればよいのでしょうか?
>>17 U+2423かU+2420あたりおすすめ。
フォントにあればだけど
class A{
private int hoge;
public A(int foo){ hoge = foo; }
}
class B{
private int hoge;
private B(int foo){hoge = foo;}
public static B createB(int foo){ return new B(foo); }
}
public class StaticClassTest01 {
A a = new A(1);
B b = B.createB(1);
}
Aの様な型と、Bの様な型と、どのように使い分ければよいのでしょうか?
気分で
C#を先に学んでますがJavaはやっぱ難しい
馬鹿には無理
>>19 A:自由に継承してくれたまえ。
B:勝手に継承すんじゃねーよ。
>>22 >深淵をのぞく時、深淵もまたこちらをのぞいているのだ
こわぁい
26 :
19:2012/01/15(日) 15:48:45.88
>>23 理解できました。
わかりやすい説明ありがとうございます。
もんもんとしていたものがスッキリしました。
>>19 静的ファクトリメソッドを作ると、あきらかに一手間かかるが
コンストラクタにはメソッドのように自由な名前が付けられない。
単に言い換えただけかもしれないが
引数をほぼそのままフィールドに納めてオブジェクトを作るのではなく
何らかの処理を行ってその結果からオブジェクトを作る場合は
ロジックを分離した方がいいかもしれない。
28 :
19:2012/01/15(日) 16:36:20.87
>コンストラクタにはメソッドのように自由な名前が付けられない。
確かに…。おぉ…。
>何らかの処理を行ってその結果からオブジェクトを作る場合は
ちょっと難しいです。もう少しやわらかく出来ますか?申し訳ない。
コンストラクタが複数ある場合は、内部にprivate staticなロジック関数に分離することができると思いますが、それとは違った趣向でしょうか?
class C {
static class I {}
public C() {}
public C(I i) {}
}
class D extends C {
public D() { super(); }
public D(I i) { super(i); }
}
public class StaticClassTest01 {
C.I i1 = new C.I();
C c1 = new C();
C c2 = new C(i1);
D.I i2 = new D.I(); // 「D.」とした時のeclipseのプロポーザルが空っぽ。
}
こちらは、プロポーザルが出ないのですが、使い方がマズイということでしょうか?
「C.I」とするべき?
30 :
27:2012/01/15(日) 17:14:12.49
>>28 後半は、後から別のロジックにてオブジェクトを作るようなものを追加するときに
リファクタリングなしでコンストラクタを使うことに固執すると
衝突するまたは分けが分からなくなる
などというのが、ごっちゃになって飛躍したものなので無視してください
日本語でおか
32 :
19:2012/01/15(日) 18:15:27.07
>>27,30
あ!何か言いたいことの断片が見えた気がします。
私のレベルじゃないので、おっしゃるとおり、今は置いておきます。
レベルが上がったら考えなおしてみます。
ありがとうございます。
ここやっぱり初心者の質問は相手にされませんよね
オンラインでコード実行できる ideone.com の使い方なんですが、
コマンドライン引数の渡し方ってどうやればいいんでしょう?
http://ideone.com/FT2jG に↓みたいなのを貼ってます。
public class Main {
public static void main(String[] args) {
System.out.println( "args number:" + args.length );
for (int i=0; i<args.length; i++) {
System.out.println( " + args:" + args[i] );
}
}
}
ここで upload with new input からWebのテキストフィールドにに値を入れてsubmitを押したんですが、
args.length が 0 なので、プログラム側に値が渡ってくれないみたいで・・
>>32 同じ型、同じ数の引数持つコンストラクタを定義することはできないから
そういうときに静的ファクトリメソッド(クラスBのような構造)を使うことがある。
java.awt.Colorクラスを例にすると、色をfloat型3つのRGBで指定するコンストラクタとは別に
float型3つのHSBで指定する静的ファクトリメソッドが用意されている。
宿題答えますスレに投稿してみたけど、Java詰みそうで辛い・・・。
単位取れるかもと、生半可な考えで挑むんじゃなかった・・・。
宿題スレを見る度に思うのが、数学的な設問が難しくて俺には拒絶反応が起こす。
でもJavaの部分は凄いショボそうなんだよなww
>>38 >でもJavaの部分は凄いショボそうなんだよなw
学校の宿題なんだから、入門かその次のステップだからな。
数学的内容も、きちんと説明されていれば初めて知る内容でも対応できる程度なんだろうけど、
質問してる方が理解してないことがザラだものね。
民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している
野田内閣は過半数が帰化人
野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は
首になった蓮○はシャブで逮捕歴のある人間と仲が良いな。蓮○自身はやってんの?
い-6-1
テレビが言えない民主党のスポンサー=韓国北朝鮮
あとはもうわかるよな
41 :
19:2012/01/16(月) 01:01:23.61
>>ここやっぱり初心者の質問は相手にされませんよね
問題ないよ。
何も知らないとどのように調べるとよいかもわからないから遠慮なく訊けばいい。
CUIでプログラム作っていて、ある程度形になってきました。
そこで、GUIで操作・表示できるように修正したいのですが、
JavaのGUIについて参考になるサイトなどありましたら教えて下さい。
短く乱暴ながらも垣間見える優しさ
packageで
package aaa.bbb.cccというクラスファイルを
実ディレクトリ
aaa┐
bbb┐
ccc - file01.java
このディレクトリ構造で
aaa直下やbbb直下に別のjavaファイルをぶち込んで利用ってできるんですか?
packeage表記はaaaやaaa.bbbと書くとして。
いちおうできる。
publicかprotectedじゃないと他のパッケージからは見えないけどね。
パッケージ同士の階層構造とか、大して実行時の意味はない。
好きなようにどうぞ。
意味がありそうなのは名前付きロガーの親子関係ぐらいか。
class A{
public static void main(String[] args){
new B obj = new B();
}
}
class B{
}
class C{
}
こういう構成になっていく場合
メインメソッドがあるクラス(メインクラス?)を一番上に書くのか
利用するクラスを先に書いて、最後にメインメソッドがあるクラス。この場合ではclass Aを書くのか
どちらがメジャーですか?
>>37-39 何、レポート提出一日前になって2chとかで質問ってか?
効率悪いよ。
質問するならもっと前もって言わないと時間がないぜ。
たまに一日前になって「大至急!」とか言って質問してくる学生がいる。
Javaの宿題は、いつもJavaの特性をとくに生かしたものとは限らないものが多いのが特徴だな。
Javaの文法さえ知っていれば解けるってものでもない宿題が多い。
その宿題を出した教官がJavaで出せばC言語よりも学生が無駄な混乱や労力を支払わなくてもいいだろうと
配慮したのだと思うが。もしくは、その教官がJavaの特性を理解していない可能性が。
オブジェクト指向=ひたすらクラスを継承すればいい、と誤解している教官も未だにいるからな。
10年経っても歴史は繰り返す。
>>47 好きにどうぞといっても、
ディレクトリ構造とパッケージ構想が一致しない構成を作ってる
奴と一緒に仕事をしたくはないしそんなソースコード読みたくもない。
パッケージ管理がいい加減なコーダーはプログラミングスタイルもいい加減だから。
Javaコーディング規約も守っていない。Checkstyleくらい使えればそいつを見なおしてもいい。
だからあんまし、好きにどうぞと吹聴されても困る
>>48 何が一般的とかない。
其場其場次第。
一行二行程度のクラスを一番上に置いて、本体クラスをその次におくとみやすいかもしれない。
だがどのクラスも長くなったら、匿名クラスや内部クラスでもない限り、
一つにjavaソースファイルに複数のクラスを無理して置かなくても良い。
長ったらしいクラスは、それぞれクラス名.javaという別ファイルにしたほうが読みやすい。
例としてA.java, B.java, C.javaというファイルを作ってその各クラスのコードを各ファイルに記述する。
もしその各クラスを長期的に、拡張してゆく可能性があるなら、別ファイルすべし。
ただの使い捨てクラスならそのように同じファイルに複数のクラスを置いてもよし。
長文乙
>>50-52 小汚いお前のプログラミングスタイルなんか押しつけなくていい
56 :
デフォルトの名無しさん:2012/01/16(月) 14:55:55.22
System.out.println((byte)((byte)-128 >>> 3));
出力結果:-16
-128は10000000だから00010000で16になるんじゃないの?
なんで最上位ビットが1のままなのか?
57 :
56:2012/01/16(月) 15:03:17.69
たぶんキャストの時に符号がついてきてる?
どうすれば10000000を0埋めで右シフトできるのか?
>>56 (byte)(FFFFFF80 >>> 3) ==> (byte)0xF0
二項数値昇格でぐぐれ。
>>58 シフト演算は単項数値昇格だな。この場合に限って言えば結果は同じだが。
メソッドの中で変数を宣言する時にstatic宣言できない(”型の開始が不正です”となる)のは、なぜでしょう。
>>54 昔から見えないところ表面化しないところでソニーはそういう姑息なことをやってるよ
例えばソニーの電気市場向けの商品なら、ソニータイマーは知ってるだろ?
今までソニーが騙し騙しでやってきたそういったことを知ってる人の間ではソニーはかなりは嫌われてるよ(というかソニーは業界から八分にされてる)
>>61 局所変数宣言には public, protected, private, static の4つの修飾子はつけられないと言語仕様で決まってる。
org.apache.commons.net.ftp.FTP
を使ってファイルをftpでアップロードしています。
アップロード中の進捗状況をプログレスバーで表示したいのですが、
進捗状況の取得はどうすれば良いでしょうか。
65 :
デフォルトの名無しさん:2012/01/16(月) 16:13:56.57
A.jar B.jarの2つのjarの中にシングルトンのクラスSがあったとして、
AとBを使うアプリを作ったら、SはAとBそれぞれで1つのインスタンスが作られるの?
それとも、パッケージとクラス名から同じクラスと判定されてアプリ全体で1つしか作られないの?
パッケージとクラス名が同じでも内容が違っていた場合はどちらが使われるの?
そうカリカリするなよ禿げ
70 :
64 :2012/01/16(月) 17:54:04.27
>>68 お!解決の糸口が見えてきた気がする。
リンク先みて勉強してみます。
ありがとー!
禿禿言うな
リアル登頂禿には笑えない
Hogeにすら過敏に反応するんだから
>>61 finalなローカル変数があれば十分だからじゃない?
2012/01/16(月)の日付など、フォーマットを解析するときに1.4から正規表現が導入されたので楽になったと思いますが、1.3以前ではどうやっていたのでしょうか?
日付や範囲などのparseはjava.text.Format をかなり駆使すれば通常では問題なかったと思いますが、それでもjava.textでは正規表現なみに細かいところまでカスタムするのは無理だったのでしょうか。
それとも1.1以前(java applet formからの入力で使うことが多いと思うので)で利用できるような他のライブラリか何かがあったのでしょうか。
jakarta oroみたいな外部の正規表現ライブラリ使ったり、scanfっぽいのを自作したり。
>>71 では、ヴァルドスポットではどうだ
Bald spot
>>73 java.util.Date
とか
java.util.GregorianCalendar
とか
1.3のときでもjava.text.SimpleDateFormat普通に使ってたよ
で、なぜそんなことを聞きに?
1.3以前の環境しかつかえない仕事してんの?
>>74 apacheのoro,regexpはもう終了しちゃったんじゃなかった?
java appletが普及しなかった理由は、javaは敷居が高すぎるというか、例えばappletとhtmlとの連携なら、実はこういうところに問題があるのに詰めが甘いままjava appletを先走ってリリースしちゃったことにあるんじゃないかなぁと思いまして
>>76 java.text.Formatは、parseよりもformatがメインなのでclass Formatでは「ユーザー入力の確認処理(parse)」目的で使うなら役不足でしょうね
役不足ならFormat使えば良いんじゃね?
はぁ?
つ 辞書
83 :
デフォルトの名無しさん:2012/01/16(月) 22:42:21.87
concurrenthashmapの性能(特にメモリ使用量)についての記事があったら教えて下さい
Javaのコーディング規約ってどこまで厳守してる?
俺は1行の文字数は150くらいまでならOKかなーって考えているけど。
javaでゲームを作る参考書を買って
その参考書で学んだソースコードをもとに
色んなサイトのソースコードと合わせて勉強してるんだけど
こんな勉強のやり方でいいでしょうか?
その参考書の名前ってここで出していいでしょうか?
その参考書はいいとか悪いとか聞きたいんですが。
参考書といっても初心者・初級者向けなのはどれも似たり寄ったりなので差はまったくありません
本の善し悪しを気にするよりも、今後Javaで教科書がない分野でも貪欲に参加していけるかどうか独学でスキルを得られるかを気にした方がいいでしょうね
スレッドからスレッド作っていいもん?
一応、期待通りに動いてるけど、あまり良くないものなのかな?
スレッドじゃない何処でしようとしているんだろう?
むしろスレッド上で走ってないプログラムなどない。。。。。。。。。。。。
90 :
87:2012/01/16(月) 23:44:57.51
すまんね、基礎知識無いもんで質問の仕方もわからんw
要するに、メインスレッドからスレッド作って、更にそこからスレッド作って・・・
それで期待通り動くけど、
出来るだけスレッドを入れ子にしなくて済む様なプログラミングした方が良いのかなって事。
スレッドを入れ子にしなくて済む様なプログラミングって具体的にどういうことをやるの?
おそらく、スレッド生成するメソッドは、ただ一つのスレッドからしか
呼ばないようにするってことを言いたいんだと思う
誰が親で子で、誰が子を最後まで養う責任を負うのかを考えれば,
入れ子にするのが必然であればそれでいいし,
無計画に子ども産んで破産するような感じにはならないと思うよ☆彡
スレッドを出来るだけ入れ子にしない方が良いのかなって思ったのはどうしてですか?
例えば、interface Foo に boolean init()を宣言しておいて、
interface Hoge implements Foo
interface Piyo implements Foo
って出来ないの?
eclipseで書いてたら警告してくれた。警告というかエラー。
共通するファンクションを別途にそれぞれ書かないといけないの?
最終的にimplementsするクラスで忘れずにimplementsしろってことなのかな?
設計が間違ってるの?
96 :
95:2012/01/17(火) 04:47:52.63
失礼した。
そうか、interface→interfaceだからextendsすればいいのか。
不思議に思ってて解決できてないのだけど、Javaで、
インタフェースで(finalじゃない)変数を宣言できない(定数しか宣言できない)のと、
構造体が無い、
というのは、どうしてなんだろう?
構造体については、ストリームからのデータの読み込みがとても楽になると思うんだ。
どうして捨ててしまったのかな。
シリアライズ使えば不要だから?パース必要だからかなり遅いんじゃないのかな?
98 :
97:2012/01/17(火) 05:39:35.77
日記のようにしてしまって申し訳ない、以後、気をつける。
インタフェースの件に関しては、あくまで実体をアクセスするための関門であるから、で理解した。
変数を宣言してしまうと、それは部分的に実体化してしまって、abstractクラスになるんだね。
あんまりJava詳しくないけど。
リトルエンディアンのマシンでもビックエンディアンのマシンでも実行できる様にするためにはシリアライズって必要じゃないの?
必要なのはシリアライズじゃなくてどちらかに統一する事。
Javaのシリアライズはビッグエンディアンで統一。
>>97 構造体とストリームからのデータ読み込みは直接関係ない。
C#でも構造体とbyte[]の相互変換ではアンマネージドになったりマーシャルしたり一手間かかるし。
102 :
61:2012/01/17(火) 08:58:10.30
interface HogeInf<T extends HogeResult>
を実装してるクラスのインターフェース側のTがどのようなクラスなのかを知りたいのですが、
どのようにすれば取得出来るでしょうか?
Class<T> getResultClass() みたいなメソッド追加して実装クラスに強制する。
取得?
例えばどんなクラスが使われるかじゃなくて?
eclipseだと、HogeResultにカーソルを合わせて、型階層を開くをすると、上下の階層がわかって、下の階層がつかわれるクラスなんじゃない。
そういうことじゃなくて?
instanceOfとかgetClassとかそういう話?
ファイル出力用のパッケージ(の内部のクラスではなくて、単純にディレクトリ)をつくって、
そこに「パッケージ名指定」でファイルを作ることって出来るだろうか?
何を意図しているかというと、ディレクトリ指定にOS依存文字を使いたくないんだ。
移植する予定なんて無いけど。
>>106 System.getProperty("java.io.tmpdir") の戻り値使うんじゃいかんのか?
何したいのか良くわからんけど。
108 :
103:2012/01/17(火) 12:01:00.13
>>104 そういう逃げも出来るのですが、
リフレクションで遡って取れたら、そっちのほうがつかいやすくなるのて、
うまい方法がないか探しています。
>>105 実装したところでインターフェース側にどのクラスを指定したのか、
というのが欲しいです。
>>106 任意のクラスのロード元クラスファイル名の持つディレクトリ構造が欲しいなら
Class → ProtectionDomain → CodeSource → URL
で辿れる。
URLが「file:」で始まるかどうかまでは知らん
http://ideone.com/AkxPq こんな感じ?
すごく不細工だ。…、そうでもないのかな?
要はパス指定にOS依存文字を入れたくなかった。
String file ="hoge.piyo.foo.txt";
printWriter_ = new java.io.PrintWriter(new java.io.BufferedWriter(new java.io.FileWriter(file, true)));
って出来たらいいなぁ、って意味でパッケージって言葉を使ってみたが、…、拡張子と区別つかないジャン!だめじゃん。
つд`)
>>109 エスパーさせてしまって申し訳ない!
MP無駄に消費させて申し訳ない。
せっかく教わったので、コレも調べて覚える。
>>110 String foo = "hoge/piyo/foo.txt".replace('/', File.separatorChar);
とかじゃだめ?
File hoge = new File("hoge");
File piyo = new File(hoge, "piyo");
File foo = new File(piyo, "foo.txt");
とかもできる
113 :
110:2012/01/17(火) 12:46:57.82
>>112 あっ!
replace!それいい!そんな手があるのか。
File.separatorChar もgetとか書くよりスマートな気がしますし。
いただきます。ありがとうございます。
後半は、コンストラクタ(File, File)はNGの確認をしたのですが、
コンストラクタ(File, String)は気がつきませんでした。
JVMのヒープの使用量をGUI表示してくれるアプリがあったと思うのですが、何と言う名前だったか思い出せません。
@IT的なところで、一ヶ月かけて徐々にメモリリークしていく画像と共に紹介されていました。
ご存知でしたら教えてください。
jconsole
visualvm
>>79 1.3やめてJava7にアップグレードすれば済む話だよ
>>78 その普及しなかった理由として敷居が高すぎると言ったのは誰だ?
具体的問題例がわからんな
というかなぜいまさらそんな話にこだわるのか
>>84 120までならOKとしてEclipseのフォーマッタとCheckstyleプラグインで設定している
昔やデフォルトでは80までという制限があってきつかった
Javadocコメントは必ず書く
オーバーライドされたメソッドには必ず@Overrideをつける
時代遅れなメソッドにはJavadocの@deprecatedではなく@Deprecatedアノテーションをつける
package.htmlをすべて廃止してかわりににpackage-info.javaを使ってパッケージにもアノテーションをつけられるようにする
文字コードはすべてUTF-8を絶対的に厳守する
テストコード以外では文字列の外部化を必ず行う。
テストコードでマジックナンバーやその文字列版には@SuppressWarningのnlsをつける
メソッドの引数はとくに断りが無い限りかならずfinalをつける
メソッドの引数が無駄に5,6と増えてきたらそのメソッドの引数をひとまとめにしたクラスを作る
>>85 気になるから名前を出すべき
Javaを使って凝った完成度が高いソフトを作りたければ
Effective Javaくらいは読んで損はしない
>>97 C#で導入している構造体を使ったパフォーマンスの実験の結果、
クラスよりも構造体を使ったほうがかえってパフォーマンスが悪くなったという例もある
アットマーク・アイティに記事が残っていたと思う
憶測でものを言う前に実際に検証してみてはどうだろうか
>>111 謝って許されるのは中学生までだと思わないか?
どうせphpかjsあたりから流れてきたコーダー見習いだろ
web系には胡散臭い阿呆者が多い
>>119 >メソッドの引数はとくに断りが無い限りかならずfinalをつける
おいおい。これ本気かよ。めんどくさすぎ。
Checkstyleに引数操作の警告だけは出させてるが
ヘルマンの格子を作成して、特定の箇所をクリックすると
ヘルマンの格子の色が変わる
四角の大きさが変わる
音が出る
というのをJavaでNetBeans使って作らないといけないんだけど全然分からない・・・。
四角は7×7で
○△×◎
■■■■■■■
■■■■■■■
■■■■■■■
■■■■■■■
■■■■■■■
■■■■■■■
↑のように作成して、
○を押したら音が出る
三角を押したら上の図の色が黒から青になる
×を押したら上の図の色が黒から黄色になる
◎を押したら■の少し大きくなる
みたいな感じで作るんだけど・・・。
Java自体授業で始めて扱ってまだまだ全然分からないのに、とても分からない・・・。
ここをこう変えていけば、完成するよ!みたいに教えていただけたら嬉しいと思い投稿しました・・・。
ゆとり乙
まずヘルマンの格子っていうのを描いてみることから始めたら?
方法はいろいろあるけど指定されてるんじゃないか
そしたら、色を指定したり、大きさを変えたり、音を出したりっていう部品を集めていく
そしたら、ゲームに必要な変数を適当に考えながら、かかれたゲームのルールをプログラムで表現すればいいんじゃないかな
それで、プログラムは動いたら終わりじゃなくて、そのあと被ってるところをまとめたり、処理を種類ごとにまとめたりして、自己満足にひたれるのがいいところで、この問題はポリなんとかってやつを使うときれいに書けるのかもね
>>124 web系といってもただのウェブデザイナーとかPHP程度しかしらないLAMPな連中だがな
>>125 自動的にfinalをつけるようにEclipseで設定すればいい
>>126 Java宿題スレでみたがもう提出期限過ぎてるだろ
Java2Dの勉強から始めるんだな
すくなくとも不変クラスの作成には必須だな
正直Java2Dなんかどうでもよくてクラスの使い方とポリモーフィズムをしっかりとやるところだろ
宿題をもっていくと、教師がとつぜん仕様変更を言い出して、音を出してかつ大きく、色を変えるとか、リセットして元に戻すボタンが欲しいとか言い出す。
んで、関数型とか手続型でやってきたやつがヒイヒイいう横でオブジェクト型のやつはすっきり仕様変更できると。そんな狙いだろ、これは。
だから、この問題はヘルマン格子を書くメソッドをもったスーバークラスに色と大きさをフィールドに持たせて、それを承継して適当にメソッドをオーバーライドしたクラスを作ればオッケー
あとはファクトリーとかつくって悦に浸ると
この楽しさをわかってもらいたい
あきらめてその授業の単位を落とすか、学校の先生に聞け
スレッドの意味が良くわからない
sleepを使ってタイマー機能として使うのぐらいしか利用価値がワカラン!
同期非同期の概念は分かっても具体性がどうにもピンと来ない
>>138 一方でディスク読み書きしながら他方で同時に計算すれば、
ディスクの読み書きが終わるのを待ってから計算始めるよりも効率いいよね?
こんな説明じゃだめですか
じゃあ多数のクライアントを捌かなきゃいけないWebサーバとかどうよ
あるクライアントのダウンロード要求に対応するためディスク読んでる間に
別のクライアントを捌けるかもしれないよね
>>132 そこまでするなら、メソッドの引数だけでなく、
全てのローカル変数にも特別な断りが無い限りfinalをつけようず
また継承を前提をしていないメソッドやクラスにも
間違って継承しないように全てfinalをつけようず
>>138 サブルーチンと同じく、プログラムを書く側にとって便利なやり方のひとつ、と割り切るのが吉。
運がよければ速くなるかもしれないしそうじゃないかもしれない。排他制御が関門。
142 :
114 :2012/01/18(水) 02:17:33.01
>>115 >jconsole
それだっ!
ありがとうございます。
JavaのOpenGLを使ったとき、
背景に2Dの壁紙を置いて、その上に3Dの表示って出来るかな?
glClearColor(0.0f, 0.0f, 0.0f, 0.1f);とかしても、背景色の透過がされないのと、
壁紙の設置方法がわからない。
スレちがい?
その壁紙とやらもOpenGLで描けばいい
OpenGLは2Dも描ける
>>143 そういう時って3Dのオブジェクトの後ろに
2D画像マッピングした板立てたりしない?
いわゆるビルボード
>>140 それはものにもよるわな
クラスやメソッドにfinalをつけるのは絶対に継承して欲しくないとおもったときに使う
デザインパターン的に
>>1 Wikiの情報が古かったから少し修正してきた
あとスパムが少し混じってたから修正してきた
あと、FAQの内容がもう古い気がする
どこから手をつければいいだろうかわからない
というかJava全体を扱うWikiがあったら欲しい
150 :
デフォルトの名無しさん:2012/01/18(水) 15:36:16.35
マルチcpuじゃなくマルチコアを活用するだけなら
グリーンスレッドとネイティブスレッドの違いとか意識する必要ないよね?
ちなみにマルチcpuを活用する場合は何をどうしたらいいの?
jvmはoracleのhotspotだとして。
JSPで書式を指定して日付を表示させる方法ってどうやるの?
Wikiかあ
JavapediaっていうWikiもあるが全部英語
WikiaにJavaの情報をまとめるWikiを作るって手もあるが
はてさて、Wikiaにはもじら組を除名されたYukichi99という男が幅をきかせているというが…
ウィキペディアでは嫌われ者だという…
2ちゃんねらーで作るjavaまとめ
とか、作ってもいいんじゃね。
スレの書き込みに対応するためによくある質問中心にまとめておけば、
一年後にはけっこうな情報量になってそう。
154 :
153:2012/01/18(水) 17:36:36.07
すまん。ちょっと変なこと言ってた。
よくある質問中心にまとめても一切見ずに質問してくる奴がほとんどなので無駄な労力
著作権完全無視でコピーしていながらまとめサイトで儲けようとするステマもいることだし、ライセンス的にも2chねる的にも転写禁止にしないとダメだな
>>152 Javapediaの日本語版が欲しい。
ゆきちはもうWikiaにはいない。
>>153 意見には概ね賛同できるが
2ちゃんねらーというタイトルは不要かと思われる
>>155 みんな細かい込み入った質問が多すぎるて、FAQと合致しないものが多いのが難点
現状の2chJavaWikiのFAQは情報が少なすぎる上、あのWiki自体がもう古いタイプの
ものであり編集しにくい。なにせMediaWikiのようなTemplate機能も使えない。
Categoryもない、名前空間も使えない、履歴も差分が見づらくて
殆ど100%匿名で編集者間で編集のやりとりや連携といったことができずあれこれ不便。
そこでMediawikiを使ってるWikiaが使えたらと思ってる。
>>156 クリエイティブ・コモンズ・ライセンスのCC-BY-SA3.0を適用すれば問題ない。
このライセンスを適用していれば、
Wikipediaからの転載、他の同じライセンスを適用しているWikiやサイトからの転載
やその逆もしやすくなる。
Javapediaを日本語に翻訳すればいいだろ
ていうか今どき英語も読めないならジャヴァの勉強は止めた方がいい
2chは著作権者(の総体)がいるから、公衆送信権隣接権利の侵害や、加工(編纂)するなら著作物の二次的利用になるから完全に違法になるんだよ
つまりそういうまとめサイトみたいなのはパブリックドメインとまったく関係ない
そうすると、質問と回答のまとめをコピペするのはNGで書き込む人が創作すればOKか
加工なら編集著作物になるから許可貰えばいいんでない?
たぶん投稿者は投稿するときに放棄させられてるから、著作権者は2ちゃんの会社のみにされてる
同意は2ちゃんからもらう必要があるから難しいな
>>159 読めないことはないが解読速度に大きな影響を与えることは間違いない。
>>160 まとめサイトを作ろうとしているのではなくJavaそのもののWikiが欲しい。
それで、2chの情報をコピペすると、なにかまずいことあるのか?
2chのレス元URLを引用文献として指定すればOKではないのか?
>>163 いや、破棄はされない。過去に、モナーのAAをもとにした人形が販売された時や
のまネコをAvexがパクったとき、かなり揉めたんだが。
モナーのAAを作った人が著作権を訴えて、結局作った人が勝った気がした。
そのJavapediaに日本語で投稿できたら一番早いんじゃ?
著作人格権というのがあって、それは放棄できない。
著作物や成果物などの「著作」が議論になるときは、他人のコンテンツ(著作物)で金儲けしてるのに少額だとしても著作者を出し抜こうとすると違うところから火を吹くだろうね
他人の成果物で儲けるなら、プログラムと同じで、著作権保持者・代表者とライセンス料・ライセンス契約を結びその許諾の元で厳正に行わないといけない
そうしないと、特に日本社会は雑誌やマスコミの取材を見てもよくわかるけど、版権業界や日本社会はねたみ・そしみが凄いから怨まれて何年もストーカーされ、
刑法犯罪として取り扱われるようなら(このまえの2ch運営のガサ入れと同じく)警察権限の巨大化に日本社会が黙認を与えるのと同じになるし、かなり窮屈な世の中になるだろう
今週はwikipedia,google,mozillaなどウェブだオープンだと言ってる連中は米国内のコンテンツホルダーのDNS検閲法案に超反対しているだろ?
まとめサイトとかステマとか日本のフリーライドについては、現在の米国と逆行してることをやってるようだけど日本人で検閲とこの動きの意味を理解できる人はいないだろうね
日本のコミニティーやエンタープライズにはガバナンスを理解し実践してるような人は皆無だし、法リテラシーは義務教育にも組みこまれてなく日本人は法についての意識も低く無知無能だから、
いっそのことははなんでもかんでもリアルの刑事・警察の目が鋭く睨みを効かせ、町中に監視カメラだらけのような世の中になっていった方いいんじゃないかと思う
どっちもできん
金子くんも何年も業界からストーカーされたある意味被害者だよね
日本では潰そうとする勢力が凄くて護送船団なみの結束力だから何かで儲けようと企むだけでも即効で潰されると思うよ
>>164 そうそう引用するのは問題ない。だいたいここでの質問も回答もかなり端折ったものが多いから
FAQにするなら書き直さないといけないし、そうしたら尚の事問題ない
作るならまず作ってからここで何が足りないか聞けば?
ものがないのにこういうのが欲しいって言っても誰も作らんだろうし、協力する奴もでてこんだろ
>>169 日本国内でやると日本の法律が適応されるから利権にうるさい日本人を黙らせるために
国内の法律に従うんだろSOPA周りは全く関係ない
>>169 > いっそのことははなんでもかんでもリアルの刑事・警察の目が鋭く睨みを効かせ、町中に監視カメラだらけのような世の中になっていった方いいんじゃないかと思う
冗談じゃない。そんな言論の自由も表現の自由もすべて否定された
北朝鮮や中国のような共産主義・社会主義国家の実現なんてまっぴら御免だ。
お前は日本を、赤い旗を振り回すようなそんな危険な国家にしたいのか?
ねたみそしみに関して言えば、何年もストーカーされたという根拠はどこにあるんだ?
マスコミは電通のクズや反日左翼が多くてカスしかいないのはわかるがね
>>171 それはJavaのWikiを作るのとどう関係あるんだ
FAQ程度の情報をWikiにまとめることなど、ライセンス上何も問題ないだろ
ストーカーといってもな、京都府警の一部の馬鹿が暴れていただけだろ
>>173 作りたいがWikiaってサイト自体信用できるのか怪しい
たぶんエクリプス総合の誤爆だったのじゃないかと思うんだが、両方くいついてるから統合したら?
ガラパゴスな携帯をつくることが「日本式ものづくり」ということなので、日本種が絶滅しないように日本利権業界は必死にガンバッテルんですよ。
Java版Wikiと
Eclipse版Wiki両方欲しいな
今の
>>1のWikiはほとんど誰も更新しないし
Eclispe wikiを運営している人が使っているサービスと同じWikiを使ってる
>>179 そのガラパゴスは結局iPhoneに影響されて、Googleの Androidを取り込んで
ガラパゴスを殆ど捨てさってAndroid携帯にパラダイムシフトしているわけだが
>>178 何を統合するんだ
Eclipse Wikiも
>>1のまとめWikiもどちらも更新しづらい
更新する者がほとんどいない
その理由は恐らくウィキペディアとは編集スタイルが違うからだと思う
ウィキペディア慣れした人から見ると非常に編集しづらい
編集方針が明確でないことが第一要因
てか著作者人格権は自分しか持てないんだからwiki編集するならライセンスに同意しろでいいよ
ByteBuffer.allocate()で指定するサイズって何バイトくらいがいいんでしょうか?
必要な分
>>175 一応読めば分かるとおり政治的な意味はないんですけど、この板にはたまに自民党工作員がいるようなので申し上げますと、自民党は政権奪取のために対立姿勢をもっと示して「増税反対!消費税絶対反対!!」を掲げた方がいいと思います
ニュー速でやれカス
>>174 なるほどそれは一理ありますね
ウェッブ上での情報検閲関係と、著作コピー・コンテンツ利権の保護関係とは分けて論じたんですけど、そもそもこれを同じ記事内で論ずると分けワカメな日本人では混同する人が続出だったかもしれません
>>174 SOPA(日本語ではオンライン海賊行為防止法案などと訳される。この法案が成立した場合、合衆国の法執行機関と著作権者が、著作権で保護された知的財産やコピー商品をオンライン上で不正取引する行為に対して行使し得る権限が大幅に拡大されることとなる[2]。)
というか著作コピー・コンテンツ利権について、グーグルは著書の執筆家や出版社の許可なく数億人に影響する規模の広範囲著作権侵害をしていたので、まさにグーグルの旧ブックスサービスなんかも海賊行為に該当するはずです。
グーグル・ブックスだけでなく当然まとめサイトなんかも海賊行為になりますが、検閲反対は建前でしかなく、本音では「好き勝手やりたいのに著作権法やライセンス契約に縛られるのヤダ。ましてライセンス料とか金払うのはなんか絶対ヤダ」ってことじゃないですか?
>>8 去年のネット流行語ノミネートはどこがコントロールしてたんですか?
>>191 ファイルに、2012/01/18(水)、って書けばいいんじゃね?
>>186 このスレには民主党工作員の在日しかいないよ
お前のようにな
>>166 Javapediaの日本語版を作れってか
>>194 増税反対!消費税絶対反対!なら民主党関係者じゃないだろお前バカ?
「消費税絶対反対」は自民党も言わないけど。
ども
>おまえが長く深淵を覗くならば、深淵もまた等しくおまえを見返すのだ。
みんな落ち着こうよ。
Javaの話しようよ。
他の話は徹底して無視しようよ。
ttp://ideone.com/CADqy 113行目の意味がわからないのだけど、関数使用時の{}ってJava的に何と言う文法なの?
>>196 お前が馬鹿だろ。Javaとは関係ない話題垂れ流しつつ
民主党内にも増税反対者、消費税反対者がいることも知らないお前が。
お前は右翼団体を名乗った隠れ左翼の在日ヤクザの街宣みたいにウザいな。
>>200 それはただの{}じゃなくてこういう文法だ。
JPanel gradientPanel = new JPanel(){}
匿名クラスという。;
自演乙
206 :
200:2012/01/19(木) 03:20:07.15
>>203 ありがとう、理解できたよ。
ちょっとオーバライド、みたいなクラスなのね。
(いや、別にちょっとでなくてもいいけど。再利用する気は殆どない、と。)
while(hoge)
と
for(;hoge;)
っておなじだよね?なんか違うの?
>>205 実行結果がCPUに依存するのは間違いない
よく考えたらJavapediaってネーミングwiki要素がそっくり抜け落ちてるな
>>164 Javaのwikiを自作するならすべきだと思うよ
現状Javaの情報がまとまってる日本語ページは老舗の個人サイトばかりだけど、
そこよりバランスよく説明する自信があるならやるべき。
wikiは作成者自ら相当量書かなきゃ誰も乗ってこないので、
ベースになる部分を作るのはきっと大変。
>>167 行使する権利は放棄できると聞いたことがある。
行使する事を放棄するだけであって著作人格権自体が無くなるものではないって事でしょう?
誰が著作人格権自体がなくなるって言ってるの?
>>211 自作って、Wiki自体をも? pukiwikiを自作するように?
それって車輪の再発明では
>>210 そもそもJava大百科を作りましょうというプロジェクトだから
それいったらアンサイクロペディアとかユアペディアとか
Mediawiki並のシステムを再度一から自作するって相当な労力だぞ
Java製Wikiでも使えと?それもきついかもな。それを自宅サーバでやるとなると
すぐにサーバがパンクする
テキストデータ更新程度のWikiはPHP+MySQL程度で十分だから
Mediawikiですら自宅サーバで立ち上げてもすぐパンクするし
パフォーマンスガタ落ちでレスポンスが何分と待たされて殆どWikiとして使い物にならない
どこかのレンタルサーバでMediaWikiを立ち上げても
記事数が増えるにつれて容量制限にひっかかりそうだ
Wikipediaの全記事をMySQLからダンプするとどれくらいの容量になると思う?
Javaにはそこまで膨大な情報は詰まってないと思うが
ソースコード、画像、jarファイルなどのバイナリをwikiにアップロードすることを考えると
やはり容量かなり喰うと思うぞ
それならWikiaのほうが安全では
Propertiesで値を書き込んでいるのですが、
storeで値を変えると、ファイルの頭にコメントで変更した時間が勝手に加えられます。
リファレンスを見ても、第二引数がnullで無ければコメントを付け加えるよ、としか書かれておらず、
第二引数はnullで、ためしに第二引数にコメントを入れると、
# 第二引数のコメント
# 変更した時間
プロパティの値...
といった感じになってしまい、第二引数とは関係なしにコメントが時間のコメントが追加されているようなのです。
この時間が勝手に追加されないようにしたいのですが、どうすればいいのでしょうか。
>>219 何を言っているのかわからない。
ResourceBundleクラスを使ってpropertiesファイルに書き込んでいるのか
それともPropertiesクラスを使ってpropertiesファイルに書き込んでいるのか
ほらもっとはっきりと!
Propertiesクラスを使ってpropertiesファイルに書き込んでます(><;)
なんだメモリ上に展開したPropertiesを書き換えているだけかと思った。
>>221 というかさ、ソースコード晒したほうが早いと思うよ
そもそもコメントって何?
リファレンスを見ても分からないから質問したのに、
リファレンスを見たら分かることを聞き返されるとかもうね。
率直に言ってResourceBundleかApache Commons Configurationsを使ったほうがいいと思うぞ
>>219 てか、なぜ時間が更新されると困るのかわからない
更新というか勝手に追加されてしまうんですね。
勿論コメントなので、あってもなくても動作に影響は無いんですが、
その時間を取得して何か処理しているわけでもありませんし、
数バイトとはいえ実質ゴミのデータを残したくない、といった感じです。
潔癖症なんだかよくわからんな
そんなに気になるならXML版使えよ
>>227 そんなこだわりがあるなら普通にFileWriter使ったほうが早いのでは
あの程度でゴミに見えるなら
XMLファイルはゴミだらけになるわな
>>227はそういう考えか?
携帯電話開発でもしてるのか?
組み込み系か?
#で始まるコメント行だけ無視するFilterWriterを実装するのは
大して難しい話ではない。
LineNumberReaderとPipedWriterあたりを
マルチスレッドで組み合わせるとさらに楽か。
java(プログラマ)初心者です。
RoRを少しいじったことがありますが。今回JavaでWEBアプリケーションを作ることになったのですが
どこかいい参考サイトありませんか?
Railsライクなフレームワークで作りたいので,playを考えています。
233 :
デフォルトの名無しさん:2012/01/20(金) 22:40:49.44
自分で演算子を定義するので、
Collections.sort(オブジェクト、演算子);
のようなやり方で、
Collections.apply(オブジェクトA、オブジェクトB、演算子);
のような便利メソッドってないすか
配列のAndがやりたい
ないです
自分で作るとよいのでは
俺的には apply というより map って感じに見えるが
ttp://ideone.com/pUzew Map.Entryについて教えて欲しい。
45行目と50行目とがコンパイルエラーになるのだが、
55行目の使い方であっているのだろうか?
細かい話がうんぬんではなくて、普通に使い方がわからないだけの、あまり知らない人です。
検索しても、Mapの型の指定の無いものしか見つけられなくて、よくわからない。
236 :
235:2012/01/21(土) 00:16:24.87
java.util.Mapって、どうしてclone()できないのかな?
中身はMapを実装したクラスなのであれば、cloneを予めimplementsしていてもよい気がしないかな?
>>235 java.util.Map.Entry<Integer, Integer> でおk
でも読み難いから import の使い方覚えるべき
>>236 どうしてかはどこかで説明を読んだ気がしたけど忘れた
複製したいときは
Map<Integer, Integer> map2 = new HashMap<Integer, Integer>(map1);
的な方法でできる
238 :
237:2012/01/21(土) 00:26:38.70
>>235 間違えた。
java.util.Map.Entry<Integer, java.util.Map<Integer, Integer>> が正しい。
239 :
235:2012/01/21(土) 00:36:48.64
>>236 ありがとうー。不安で仕方が無かったから助かった。
複製については、元と同じ実装で複製したいならリフレクションするしかないでFAかな?
リフレクションとかまだわかってないし、今作ってるプログラムはそこまでこだわりないけど。
240 :
235:2012/01/21(土) 00:42:26.65
これでどう
Class<?> clazz = obj.getClass();
java.lang.reflect.Method method = clazz.getMethod("clone");
@SuppressWarnings("unchecked")
T result = (T) method.invoke(obj);
return result;
>>236 javaの重要なことって全部sunのオンラインチュートリアルに書いてるんだけどさ。oracleになってリンク切れ起こした。
htmlの実体はあるんだけど昔のURLでアクセスするとリダイレクトされてリダイレクト先に存在しないからどうやっても辿れない。
放置されたままだからInternet Archiveから発掘するしかないと思う。
なにもかも、所詮はオラクルがやることだから仕様がない
244 :
235:2012/01/21(土) 01:50:20.86
日記みたいに連投してごめんね。まだ続きそう。
ttp://ideone.com/ds4bO >>236後半って、要はコピーコンストラクタだよね?
何か、実行してみるとよくわからないことになった。
コピーしてるのかな?
hashCodeを確認してみると、mapの実体が複製されていない気がするんだ。
map_Map2 = map_Map;
map_Map2 = new …
↑で一時的に、map_Map2がmap_Mapと同じインスタンスをさしているのは当然だと思うのだけど、
newしてもmap_Map2.hashCode()の値に変化がない。
しかもHashMapになってない。さっぱりわからなくなってきた。
ところで、コレクション系のシャローコピーって
var2 = var1
var2 = var1.clone();
で同じなのかな?
valueの指し示すデータが複製されないのは理解できるのだけど、
(keyと)valueのセットが複製されないなら、シャローコピーの存在意義が無い気がする。
あくまで、オーバライド用のメソッドなのかな?
245 :
235:2012/01/21(土) 01:55:58.87
>javaの重要なことって全部sunのオンラインチュートリアルに書いてるんだけどさ。oracleになってリンク切れ起こした。
確かに、いろいろリンク切れてて困る。
ttp://java.sun.com/javase/ja/6/docs/ja/ これじゃなくて、初心者を教育するための中途リアルがあるの?
Sunって日本人にやさしいところがあるよね。どうしてなんだろ。
英語(米欧印)と中国語で、世界の人口の大部分をまかなえるのに、日本語とか。
すごくありがたいんだけど不思議。
Oracleになって、幸先が悪いよね。何かの安いSDKに力入れてるらしいけど、eclipse(pleiades)が無料なのにいまさら何を…。
すみません、Javaの話じゃないですね。逝ってきます。
ゆとりウザイ
>>244 コレクションクラスの hashCode は中身の hashCode を合算したものなので
中身が同じなら変わらないし中身が変われば変わる
equals が中身全要素の比較なので、それと整合性を取るため (equals が true を返す場合は hashCode も等しい)
var2 に put した要素が var1 の get で現れるか見てみればわかる
248 :
235:2012/01/21(土) 02:14:43.02
>equals が中身全要素の比較なので
>コレクションクラスの hashCode は中身の hashCode を合算したものなので
インスタンスIDのことかと思っていた…。
名前を見れば、ハッシュって書いてあるのにね。申し訳ない。
java.lang.Objectのjavadocを初めてまじまじと読んだ。
>>245 そう思うなら、リアルだろうとネットだろと特許権無視や著作権無視などせずライセンス契約を受け入れてちゃんと金払えよ
251 :
235:2012/01/21(土) 02:31:34.87
>ところで、コレクション系のシャローコピーって
とか、何か理解したような気がする。
構造体の中のポインタが、
コレクションの各要素へのアクセスを仲介するのだから、これが複製されて、
(keyと)valueは複製されないのはあたりまえか。
>map_Map.getClass().getName()
map_Map2.getClass().getName() じゃないんだから、全部TreeMapなのは当然だ。 orz.
つきあってくれてありがとう、いろいろ勉強になったし、一人でやるより早く解決できた。
>>236-247
>>232 「,playを考えています」の意味が分からない。
とりあえず@ITのJava入門や
JavaでHelloworldあたりでも調べればいいのでは
>>242 そのサイト名、なんていうサイト
web.archiveで調べてみるからサイトの英語名おしえてちょうだい
>>245 日本がどうかとかではなくOracleがJavaをないがしろにしているだけでは
だからJava関連の整備が進んでいない
日本語ドキュメントの整備にしても、Oracleに買収されてから
日本語ドキュメントを管理する担当者に人事異動か、再編成によって
プロジェクトが変わったとか何かがあったために出遅れているとか?
>>254 java.netとかSDNとかSDCに分野ごとに散らばってるからサイト名と言われてもいろんな所としか
フォーラムやブログにさらっとsunの人が書いてたりもするしホストがsunでいまは辿れないやつ
全部当たれば色々出てくると思うけど今生きてる奴は現行バージョンに内容が置き換えられてるからそれも昔のとも違う。
ジャヴァなんかもう止めてシーシャープをやるしかないな
どうせウィンドーズで開発してるんだしネイティブ開発だし一石二鳥じゃないか
日本語ドキュメントで比べたらC#なんて糞すぎじゃん
あとC#ごり押しする人間が低脳すぎ
VBでポトペタとかいってるレベルだねw
Javaは15年以上かかっても未だVBでポトペタにも勝ててない
○×でポトペタって一番カスのやってる仕事じゃんw
JavaでもEclipseで普通にできるし
C#信者が如何にそれしか知らない低能かよくわかるわ
マイクロソフト・ドットネット・フレームワークはウインドーズのネイティブ開発ができるんですよー
さらにこれからはポトペタなんてどうでもよくてウィンドーズ・フォーン開発をやろうとしてもジャヴァでは開発できないからやっぱりシーシャープ最強なんですよー
>>261 節操なくポトペタGUI捨てたのはいいとして
Windows PhoneがAndroidやiOSにシェアで惨敗したことぐらい知ってるだろ?
AndroidアプリをJavaで作ったほうが圧倒的にとくじゃん。
お前C#が強い分野1つも知らないで人に勧めてるクズだな。
カタカナでしか喋れない池沼が湧いているのか
Windowsもそろそろ賞味期限切れ
Tomcat7ではInvokerServlet使えないの?
javac で環境変数に登録されているパスに加えて別のクラスパスを追加する方法ってどうやるの?
javac -cp newpath Test.java
の場合、newpathは反映されるけど
環境変数に登録してあるServletやJSPへのパスが無視されて困ってます
%CLASSPATH% とか $CLASSPATH とかで環境変数のぶんも追加してやればいいのではないでしょうか
ども
Tomcatで WEB-INF/lib にサブディレクトリを作ってその中にjarファイルを入れることってできないの?
>>253 playをベースにしたフレームワークをつくりたいって意味だろ?多分。
>>256 というか、いまチュートリアルみたんだがとくにリンク切れ起こしてないぞ
ちゃんとチュートリアルページが見える
昔の話か?
sun。。(´;ω;`)ブワッ
ログを複数の言語(日本語、英語)で出力する
ロギングライブラリって需要あると思う?
log4jみたいにxmlで設定して、
日本語にすると日本語のログ「セッション タイムアウト」
英語にすると英語のログ「Session Timeout」が出力されるみたいな。
>>269 Servlet2.5仕様より抜粋。
The/WEB-INF/lib/*.jar area for Java ARchive files. These files contain servlets,
beans, and other utility classes useful to the Web application. The Web application
class loader must be able to load classes from any of these archive files.
>>262 アンドロイドのアップリ開発はオラクルとの権利侵害訴訟がまだ続いているからこのままジャヴァを使って開発を続けられるかどうかは微妙じゃないですか?
それにアンドロイドのようなソフトウェーア・ガジェットものはエッチ・テー・エンム・エル・ファイブになっていっても、
オラクルはこの点ジャヴァ・エフエックスを用意してますが、グーグルはこれに移行せずアンドロイドネイティブ開発にドムも採用せずジャヴァ開発者とジャヴァで作ったライブラリーは切捨てでしょうね
きめ細かいネイティブ・コンパイルをしておきたいならやっぱりジャヴァじゃなくてシーシャープの方がグレートじゃないですかぁ?
このスレには10年前からたまにC#厨が粘着することがあったが
まさかそいつが未だに粘着するとは
DBからのデータ約80万件をArrayListに格納して
ループ処理をするバッチがあるんですけど、
ArrayListをHashMapに変えると速度改善に効果はあるのでしょうか。
>>281 そんなんで改善しないだろ。
ひとつののSQLで複数行更新させるとか、ストアドプロシージャ使うとかが妥当じゃないか。
>>251 シャローコピーとかディープコピーとか、クローンとかコピーコンストラクタ
とかいったブツは
Effective Java、Javaの鉄則、Javaの格言あたりを読めば載っている。
ああいう本を読んだほうがかなり勉強になる
>>258 その昔、この板には「C#って死滅しちゃうの?」「Javaって死滅しちゃうの?」
というスレがあってだな、これらのスレでC#をゴリ押ししている連中が4,5人ほどいたのさ。
C#が登場してから間もない頃の話だった。
マイクロソフトから派遣されたエバンジェリストではないかと言われていた。
彼らの口癖は「Javaはいずれなくなる。これからの時代はC#だ」
「J2EE(現Java EE)はいずれなくなる。これからの時代は.NETだ」などと連呼していた。
「演算子のオーバーロードができないJavaは糞」だとか
「delegateが使えないJavaは糞」「unsafeが使えないJavaは糞」「Javaは糞重い」
「LinuxとJavaとApache Jakartaとオープンソースは共産主義だ。パクリだ。朝鮮だ」
「Sunの株価はたった300ドル。マイクロソフトと比べてみろ。だからJavaに未来はない」
「構造体が使えないからJavaは遅い」
その程度の煽りが多かった。
最終的にC#はWindows上で動作するGUIの開発に強い、携帯やサーバやWindows以外のデスクトップアプリ
ではJavaのほうが強い
という方向で落ち着いた。
他に、当時のJavaにはアノテーションがなく「C#は”属性”(Javaのアノテーションに相当)がある。だからJavaは糞」
とかボクシング&アンボクシング変換(Javaのオートボクシングに似た仕様)ができないJavaは糞」
とかそんなのもあった。
あと、C#はサードパーティなしでいきなり高レベルAPIを提供して、Windows.Forms便利すぎて使いやすいって
いちいち強調している奴らも多かったな。
どれもstaticなメソッドばっかでオブジェクト指向のオの時もしらない奴が作ったライブラリばかりだったが。
>>278 >>277を書いた後に2ちゃんに繋がらなくなってしまい遅くなりました。
教えていただいたURLを参考に実装したところ、無事計算することができました。
ありがとうございました。
JavaでDBへのアクセスの結果を格納するResultSetクラスについてですが
DBアクセスして取得した結果は、実際以下のどちらに格納されるのでしょうか?
(a)JavaVMのメモリ上に確保
(b)DBのメモリに確保
片方ってことはないんじゃね
ResultSetに格納
流れ読まずに投稿致します。
以下の条件で簡単な顧客管理システムみたいなのを作ろうと思っているんですが、完成したシステムを素人でも簡単にインストール、設定できる方法は何かないでしょうか。
・使用言語 : java, javascript, その他必要に応じて
・使用DB : 無料で手に入るの。(MySQLとか)
・条件1 : 素人が簡単にインストールできる。
・条件2 : 素人が簡単に操作できる画面系システム作る
・条件3 : データベース使う。
現在思いつく方法は
1.設定、インストールもろもろをexe形式に
2.データベースの部分をcsv等にしてバッチプログラムで操作(.bat、.vbs形式なら動作環境設定必要ないから)
3.ダウンロード、インストール、設定の方法を全てマニュアル化する
何かいい方法をご存知でしたらご教示いただけないでしょうか。
クライアントサイドにDB入れるような糞設計はやめろ
>>292 クライアントサーバシステムという概念を忘れていました。
たしかにDBとかjavaの利点まったく活かせてないですね
エクセルで入力フォーム作とかしたほうがよさそうですね
大変失礼いたしました
stringbufferで1行ずつデータ入れて
to.Stringを使ってまとめてstringに保存するのを一定時間ごとの連続した流れの中でやるんですけど
string内に同じ文字列(1行単位)があった場合はstringbufferからの追加をせず、重複なかったら普通に追加していくっていうことをやりたい
stiringtokenizerとか使って何かいい方法ありませんか
stringの中身を1行分ずつまた読み込むこととかできますか
295 :
デフォルトの名無しさん:2012/01/22(日) 16:16:11.93
顧客管理アプリをこのスレで聞いてるのは手に馴染んでるjava/jvmで運用したいんだろうから
javaスレ的にはmsoffice,excelじゃなくてopenoffice/libraofficeを押すべきじゃないか
298 :
デフォルトの名無しさん:2012/01/22(日) 23:25:54.90
>>297 これってTVサイド側が勝手にテロップ入れてるだけじゃね-の?(就活中とか通勤する人とか)
答えている側は別にわからねーし。ただ質問に答えているだけだろ?
windows7でxamppからtomcatとmysqlに接続しようとしてるのですが、うまくいきません
tomcat/libにjdbcドライバのjarを突っ込んだだけなのですが、no suitable driver for jdbc となってしまいます
どこか他に設定するところがあるのでしょうか
300 :
デフォルトの名無しさん:2012/01/22(日) 23:49:05.29
JEditorPaneにHTMLフォームを表示しsubmitボタンでフォームデータを表示するプログラムを
↓を参考に作成しましたが、submitボタンでNullPointerExceptionが発生します。
ttp://www15.plala.or.jp/kichijitsu/java/jeditorpane_submit.html どこがおかしいのでしょうか?
editorPane.setEditable(false);
editorPane.setContentType("text/html");
editorPane.setText(content);
((HTMLEditorKit) editorPane.getEditorKit()).setAutoFormSubmission(false);
editorPane.addHyperlinkListener(new MyHyperlinkListener());
class MyHyperlinkListener implements HyperlinkListener {
@Override
public void hyperlinkUpdate(HyperlinkEvent event) {
System.out.println("HOGEHOGE"); //←マウスがリンクに重なると表示されます。
if(event instanceof FormSubmitEvent) {
System.out.println("PIYOPIYO"); //←submitボタンを押してもここまできません。
・・・・
}
・・・・
↓発生する例外
Exception occurred during event dispatching:
java.lang.NullPointerException
at javax.swing.text.html.FormView.submitData(FormView.java:376)
at javax.swing.text.html.FormView.actionPerformed(FormView.java:356)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
・・・・
Exceptionに対するサブクラスの作成方法で困っています。
super(String message)を書けるのは最初の行だけですが、
messageの内容をwhile文を使用して書いて変更したいのですが、どうやればいいのかわからないので、教えてください。
具体的には
public ListException(List<String> list) {
StringBuilder builder = new StringBuilder();
for(String text : list) {
builder.append(list);
}
super(builder.toString());
}
という感じにしたいです。
superは最初にしか書けないからsuper使うのは諦めろ
自前でthis.message=builder.toString()するかListException呼び出し側でStringにして渡すか
public ListException(List<String> list) {
super(a(list))
}
static String a(List<String> list) { ...}
で行けるだろ。javaやってる奴ってアホなのねw
>>299 スレの上のほうにあった64bitだと動かない云々?
306 :
デフォルトの名無しさん:2012/01/23(月) 03:25:02.45
http://www.j-cast.com/2012/01/22119537.html フジ反韓流デモに新展開 次のターゲットは「電通」「朝日」「日テレ」
2012/1/22 17:53
東京・汐留で2012年1月21日昼、180人あまりが集まるデモがあった。2011年8月以来続いている、「反フジテレビ・韓
流デモ」の参加者たちを中心としたものだ。
ヤリ玉に上がったのはフジテレビではなく、大手広告代理店「電通」。都内の最高気温は4度、参加者は冷たい雨に
濡れながらおよそ1時間にわたり、シュプレヒコールを上げ続けた。
「電通解体!」叫んで行進
http://www.j-cast.com/images/2011/news119537_pho01.jpg 電通が広告代理店として「すべてのメディアを従え」、過剰な「韓流ごり押し」と「日本のイメージダウン」を行っていると
主張するデモ隊は、
「電通は韓流ブームねつ造商法をやめろー!」
「電通解体! 電通解体!」
と口々に叫びながら、電通本社の周囲を練り歩いた。周辺にある日本テレビや朝日新聞社に対しても「韓流押し」「反日
的」だとして、
「日本テレビは第2のフジテレビになるなー!」
「朝日新聞は自主的に廃刊しろー!」
「お前たち反日企業の前に、私たちは何度でも来るぞー!」
と拳を振り上げた。
2011年夏、俳優・高岡蒼佑(当時・蒼甫)さんのツイッターをきっかけにネットで広がった「反フジ」「反韓流」の声は、
8月21日にはお台場・フジテレビ本社前でのおよそ6000人が参加するデモに発展し、一時はマスメディアでも大きく取
り上げられた。
それから5か月、なぜ「反フジ・韓流デモ」参加者たちのホコ先は変化したのか。デモに初期から参加してきた男性
は、こう語る。
「これまでフジに対しデモを行ってきたが、全くメディアは変わらない。『韓流偏向』の根本はやはり『電通』なんです」
フジテレビデモに行ってみた! -大手マスコミが一切報道できなかったネトデモの全記録 [単行本(ソフトカバー)]
古谷ツネヒラ (著)
http://www.amazon.co.jp/dp/4792604435 http://www.furuyatsunehira.com/img/fdi0000404011a_r1_c1.jpg
なんかこういうのみてると、慰安婦問題でしつこく反日してる韓国人を馬鹿にできないな。
>>294 そういう場合はStringBufferを使うべきじゃない。
重複を高速にチェックできる構造で入力の行を保存しておいて、最後に
行を連結すべき。
310 :
デフォルトの名無しさん:2012/01/23(月) 11:22:36.02
Javaで定期的に実行される処理を作りたいです。
人の手で停止しない限り常駐して実行され続けるようにしたいです。
public static void main(String[] args) {
System.out.println("---タスク開始---");
Timer timer1 = new Timer();
timer1.schedule(new Hoge(), 0, 1000); // 実行間隔は1000ミリ秒
}
class Hoge extends TimerTask {
public void run() {
System.out.println(System.currentTimeMillis());
}
}
このmainメソッドを実行すると、mainメソッドが終わってもEclipseのコンソール上では
タイマーのイベントは実行され続けることを確認しました。
これを、別のJavaプログラムから任意のタイミングで停止できる仕組みを作りたいです。
自分が思いつく限りでは、
任意の場所に空のテキストファイル"stop_offer.dat"を作り、
タイマーの毎実行ごとにそのファイルを読み取り、
その中に"1"が書きこまれていた場合に自ら停止する。(stop_offer.datは空に戻す)
別プログラムで、停止させたいタイミングで"stop_offer.dat"に"1"を書き込む。
・・・というのを思いつきましたが、もっと上手い、スマートな方法って無いですか?
サーバソケットbindしといて特定の通信文受信したら止める。
FileReaderとBufferedReaderの違いは分かるんですが
FileWriterとBufferedWriterの違いがわかりません
Readerは1文字読み込みと行読み込みができるからBufferedの良さがありますが
書き込みは文字列書き込みできるんだし、入らなくね?と思うわけですが
バッファリングについては調べればすぐにわかると思うんだけど
>>303 煽り下手だな
そんなくだらない発言してもレスつけてもJavaの需要とシェアを下げることはできないぞ低脳
>>307 やっと電通の悪評が広まり始めたか。
だがそのアニメ絵の表紙はやめてくれ。逆効果だ。
デモ隊の持っているプラカードと記載されている文字が小さすぎる。
視力の悪い年寄りにももっと目立つ大きな文字を使うべき。
できればトラメガも使うべき。
そしてできれば持ち運びできる電光掲示板や液晶ディスプレイで
重要なメッセージを通行人に告知すべき。
>>308 デモをする行為は法的には認められている行為。
そしてお前のようにデモに対して嫌悪感を持っているのは日本人だけ。
他の欧米先進国ではデモを当たり前のようにやっている。
日本だけデモが少ないから、彼ら欧米先進国からみれば
日本人は殆ど誰も世の中に不満を持っていないマゾなんだろうと写って見えると誤解されている。
>>294 高速化するなら今ならStringBufferよりもStringBuilder
だがすでにStringBuffer(StringBuilderも含めて)を使うべきではないとレスがあるように
別の方法をとるべきStringWriterあたりなんかどうだろうか
>>312 バッファリングなしで1文字ずつとか1バイトずつとかファイル読み書きすると遅いぞ
できるできないだけの話ならもちろん要らない
>>312 試しにそれらのクラスをそれぞれ実際に使って比較してみればわかる
データ量があまりにも少なくてPCのスペックがあまりにも高いと大した変化に気が付かないかもしれないが
だが他にもファイルIOを高速化する手段はいくらでもある。探すんだ
>>310 なんで停止が別のプログラムじゃなきゃ駄目なんだ?タイマー起動してから待機すればいいものを。
>>316 デモといってもいろいろあるしこの前遭遇したのは車いすなどの身体障害者のバリアフリーなどを訴えるデモで、渋谷の駅周辺や公園通り(NHK)ですら100-200人規模のデモ行進ならにたまにやってる。
しかし、テレビや新聞がデモのことをまったく報道しないから、そういう現実を知らされず今でもNHKに依存してるような人間(クレーマーなどと拒否してる人間)にはデモや抗議の現実を一生理解できないだろうね。
androidなんですけど、
class Data (
private int id ;
private Time day;
private String name;
...set とかget とか
)
でArrayList<Data>にしたとき、id順とかday順とかname順とかにDataを並べかえるのってどういうのが定番でしょうか?
超素人(教科書)的な考えだとCollectionのListクラスのどれかにして
(とりあえずArrayList?重複しないidみたいのが有る場合は・・・Setだっけか)
そしてsortメソッドでソートする。
その際Comparatorをくっつけたクラスで制御する
質問者とは違うけど俺も現場の人間の定番みたいのを知りたいな
クイックソートを自分で作るしかない
ArrayListではなくSortMapに入れておけば速度は遅いが楽だよ
重複する場合があるからMapはだめだったorz
マルチツリーはcommonsの1.4しかない xP
AndroidにはCollections.sortとかないの?
あるよ。というかApache全部入り。
どこの実装?
手元の環境だとちゃんとpublicになってるけど。
変数でprivate Map.Entry<K,V> lastEntryみたいのがあるのかと思ったけどないし。
>>324 -
>>329 ありがとう
Comparater なんてものがあったんだね
とりあえず、昨日はその都度、データベースにorder byで問い合わせるってことにしたけど、それ調べてやってみます
中国人が抱く外国イメージ 「韓国人は横柄な歴史ドロボー」
中国にとってトラブルの絶えない韓国へのイメージで最も支持を得たのは「歴史ドロボー」だった。
7.6%で1位となった「歴史の剽窃(ひょうせつ)」について、環球網は「端午の節句や孔子を韓国の文化遺産にするなど、
韓国が中国の歴史を盗んだ」ことが背景にあると解説した。また、韓国人が常に自国製品を「世界一」「最先端」と「自称」する
韓国メディアにより「横柄」(7.3%)が2位となったと紹介した。
第3位は「整形」(6.6%)だった。(「整形」が「韓国ドラマ」3.7%、「美女」2.9%を上回った)
このほか「ケチ」「過激」「民族主義」が3−6%。韓国の「家電・デジタル製品」は1−2%にとどまった。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0118&f=national_0118_074.shtml
>>330 見てる Javadoc は 6 で、使ってる JDK は 5 だとか、そういうことだったりしない?
JSTL のダウンロードがリンク切れで放置されたままなのだが
もう開発はやめてしまったのか?
Executorsで生成されるスレッドのスタックのサイズを指定する方法はありませんか?
単体のThreadを生成する場合はスタックサイズの指定があるのですが、スレッドプールを扱う
APIで、プールされているスレッドのスタックサイズを指定する方法が分かりませんでした。
よろしくお願いします。
337 :
デフォルトの名無しさん:2012/01/24(火) 14:33:20.70
Map<String, String> m = new HashMap<String, String>();
m.put("a", "b");
m.put("a", "c");
こうしたら、"b"の方はGCの対象になる?
>>337 "b"は字列リテラルだから、
"b" を使ってるメソッドやクラスに先行して、"b"だけGCされる事はない。
文字列リテラルでないならGC対象にはなる。
実際にどのタイミングでGCされるかは実装依存。
>>336 自前の ThreadFactory サブクラスを作って Executor 作るときに渡す
340 :
336:2012/01/24(火) 19:39:40.05
>>321 そこをJavaを使って解決するんだ!
Javaスレでそういう話をしている以上はスレ違い対策のために責任をもて!
>>316 一応本当に訴えたいなら、主張を示したバナー・のぼり・プラは文字を小さくせず超巨大にして目立つようにし、
メッセージには熱い思い込め簡潔にし、主張を掲げる者は第三者に対して常に○○なインタレストを発し、それがないなら主張はだれにも伝達されないだろう。
そういうことが出来る人や理解できてる人(超文科系)がいないと原発でも反韓中、反米帝国主義、賃上げ要求デモ・ストなど、どんなデモでもただの烏合の衆でしかない。
ていうかここはジャバすれであってお前のチンカス政治思想を自慢するところじゃないからお前はさっさと雑魚すれに帰れ。
343 :
330:2012/01/25(水) 04:43:18.10
>>331,
>>334 ありがとうございます。解決できました。
eclipseで、
ウィンドウ>設定>Java>コンパイラ :1.7
ウィンドウ>設定>Java>インストール済みのJRE :1.5 〜 1.7.0_02
プロジェクト>プロパティ>Javaコンパイラ :↑の設定準拠 or 1.7 or 1.6
Javadocはよくわからないけど英語なので、ネットで 1.5, 1.6 付近をみてました。
指摘を受けて見直してみたところ、パッケージエクスプローラに、「JREシステム・ライブラリーは1.5」の表示がありました。
そういえば、以前1.5を利用したことがあった気がします。
そのときに、ウィンドウ>設定 側のデフォルトのJREを1.5にしたのかと思います。
プロジェクト>プロパティ>Javaのビルド・パス>ライブラリ(追加・削除) :1.7.0_02を利用
としたところ解決できました。
おそらく柔軟性のためにいろいろな設定があるのでしょうけど、あちこちに分散していて非常にとっつきづらい様な気が…。
政治・朝鮮・中国に関する、スレッドと関係ない書き込みやそれにレスする連中(今回は私も該当するが。)にとてもイラつくのですが、
だれがどういう意図でやってるのか知らないのですけど、やめさせることって出来ないのでしょうか?
調べれば誰がやってるかわかりそうな気がするのですが。
2ch運営的にどうでもいいことなのかな? むしろ運営は金もらってるのかな。それならアリかも。
>>344 いや、昔からダメだろ。この先もずっとだめに違いない。
イメージとしてはこんな感じってことで捉えたほうがいい。
synchronized について教えてください。
ttp://ideone.com/HGA7m (実行結果は関係ないです。)
166行目からのクラス:TreeMapWrapperと、220行目からのクラス:TreeMapWrappesと、
どちらもTreeMapをHasしているクラスなのですが、同期の仕方が違います。
TreeMapWrapperは、ロックオブジェクトを用いてロックしているため、一度に実行できるメソッドは1つです。
TreeMapWrappesはどうなのでしょうか?
・ひとつのメソッドを同時に実行できるスレッドがひとつ
・ロックオブジェクトの場合と同じく、全メソッドで同期している。
ttp://java.sun.com/javase/ja/6/docs/ja/ ここに載ってますか?
>>343 政治・朝鮮・中国に関する相談やスレッドと直接関係ない相談、さらにあなたの疑問質問でさえ、この板では誰も関心を持ってないので普通にスルーしてます。
349 :
347:2012/01/25(水) 07:23:26.81
自己解決できました。
synchronizedのメソッドにあるスレッドが入ると、そのオブジェクトのsynchronized メソッドの全てが待たされるみたいですね。
ttp://ideone.com/6Smmp コンストラクタを少し修正しました。
249行目のSortedMapを元にして、コンストラクトする処理ですが、最中にSortedMapが更新されないとも限りません。
SortedMapをインタフェースに使う時点で、この問題を回避することは出来ないと考えて間違いないでしょうか?★
(呼び出し側で、引数にするMapを同期させる必要がある。)
あともうひとつ。
クラス内のメソッドを全てsynchronizedにする魔法の文言ってないでしょうか?★
アスペクト指向じゃないと無理ですか?
>>348 >深淵をのぞく時、深淵もまたこちらをのぞいているのだ
>>346 テクニカルな相談・質問について答えや解決方法を知りたいなら、ジャバ・エンジニアに対してお金を払わないといけません。
>>346じゃないんだけど、
>>351ってどういうこと?
イニシャライザってあるじゃないですか?
引数不要のインスタンス生成について、初期化・イニシャライザ・コンストラクタのどれを選択すべきかわかりません。
何となくの好みでよいのでしょうか?
好みでいいよ
>>347 synchronized メソッドは synchronized (this) { ... } と同じ効果
>>349 間違いない
呼び出し側で考慮しないとムリ
あるいは一般的な SortedMap ではなくスレッドセーフな ConcurrentNavigableMap に引数を限定するとか
魔法の文言はない
Map に限った話なら Collections.synchronizedなんとかMap で包むとか
しかし単純にすべてのメソッドを synchronized するだけですべての問題が片付くわけでもないし
最初からスレッドセーフな Map を使う方がいい
EclipseでJSPファイルを作る際に、<% %>を使うと
500
The content of elements must consist of well-formed character data or markup
って出てしまいます
解決策を教えて下さい
>>342 Javaはアメリカが作ったプログラミング言語。
そこで反米帝国主義だの言っても損をするだけ。旧右翼も含めて民族派右翼とか新右翼とか
そこらへんで損をしている。Javaを大事にするエンジニアなら新米保守で行くのが合理的だ。
政治レベルではアメリカと仲良くして特定アジア(中朝韓)とは仲良くしない。それが効率的だ。
技術に弱いが経済に強い連中も基本そういう考えだ。資本主義者の常識だろ?
金(資本)がなければなにも始まらないんだよ。だからこその資本主義だ。
そこを中朝韓シンパのように反米帝国主義だとか反日左翼のように脱原発だとか
赤い旗を振り回した労働組合員のように賃上げ要求だとか騒ぐのは論外。
ここはJavaスレであってお前のチンカス政治思想を自慢・披露するところじゃないから
お前はさっさと雑魚スレに帰れ、といいたいのはこっちのセリフだ。
しかもよりにもよって反米馬鹿・組合馬鹿の賃上げ要求ときた。
お前はJavaエンジニアではないな。Javaの技術を認める者が反米馬鹿とか致命傷だ。
そんなのだからおまえはいつまでたっても成功を収めることができないんだよ。
アメリカを否定してどうやって金を稼ぐつもりだ。
>>343 > おそらく柔軟性のためにいろいろな設定があるのでしょうけど、あちこちに分散していて非常にとっつきづらい様な気が…。
そこは慣れだ。汎用性のためにわざとそういうふうにわかれている。
Eclipse wikiにそういう情報がもっとまとまっていればいいのだが…
Eclipse FAQなるページがwikiにあれば。
Wikiができてから10年近く経過しているのに誰も作ろうとしない
というかあのWiki自体、殆ど誰も編集しない
書籍もない
> 政治・朝鮮・中国に関する、スレッドと関係ない書き込みやそれにレスする連中(今回は私も該当するが。)
にとてもイラつくのですが、
> だれがどういう意図でやってるのか知らないのですけど、やめさせることって出来ないのでしょうか?
コピペだったら簡単に規制できる。
だがあのコピペ、前からあった気がする。
コピペじゃなかったら規制は難しい。
この板のSETTING.TXTに水遁の設定が入っていないと、水遁はできない。
あの水遁システムはまだ不安定で何度も紆余曲折している。
最初はSETTING.TXTに水遁の設定記述にNoneがなければどこの板でも水遁できたが
水遁に関する記述がまったくない板は水遁がNoneと同じ扱いになり、水遁できなくなった。
結局水遁できる板は限られた。よってこの板では水遁できない。
以前、忍法帖のIDからIPアドレスを特定するスクリプトを作ってサイトに公開した奴がいて、それで簡単に見破られ、
あわてて使用変更した。ところがその変更もまた見破られてスクリプトが更新されてしまった。
しかたなく忍法帖機能をリセットしたり水遁を無効にしたり、師弟関係っていう機能をつけたりしたが
いろいろ問題が起きて結局、今の形になった。
とにかく、規制議論板に報告せよ。但し報告する内容はコピペや、2chのルールとして掲載されている「鉄の掟」を破っているものに限る。
それ以外は、削除依頼のみで対応すること。
お前らJSPでスクリプトレット使わないの?
>>355 まずそのJSPのソースコードを見せるんだ
どこかに文法ミスがあると疑ってみる
>>359 StrutsとかTapestryとかWicketとかで間に合ってる
>>360 Eclipseで新しくJSPファイルを作って(初期状態)
<% %> を差し込むとエラーが出ます
>>363 <?xml version="1.0" encoding="windows-31j" ?>
<jsp:root xmlns:jsp="
http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.page language="java"
contentType="text/html; charset=windows-31j" pageEncoding="windows-31j" />
<jsp:text>
<![CDATA[ <?xml version="1.0" encoding="windows-31j" ?> ]]>
</jsp:text>
<jsp:text>
<![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
</jsp:text>
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j" />
<title>Insert title here</title>
</head>
<body>
<% %>
</body>
</html>
</jsp:root>
365 :
349:2012/01/25(水) 19:58:08.31
>>345 ありがとうございます。
Collections.synchronized とか ConcurrentSkipListMap とか、いろいろ勉強になって助かります。
特に、Collections.synchronizedSortedMapで包むというのは、こういうのがあればいいのになぁ、と思っていました。
いろいろ試してみます。
366 :
349:2012/01/25(水) 20:04:31.91
xml形式だから<% %>は使えない
なので<jsp:scriptlet>を使う→できました
お騒がせしました
例えば
inJSP
LogicServlet
outJSP
があったときに
Servlet内のList<sampleBeans>をoutJSPに渡したいときってどうすればいいの?
サーブレット内でrequest.setAttribute("tempList",tempList);
outJSP内で中身を表示させるときにrequest.getAttribute()ってやり方は良くないのか?
InputStream はSystem.inを使ってテストプログラムが作れたのですが
OutputStream はSystem.outを使っても上手く作れません
※System系についてはよく理解してません(そういうもんだろってぐらい)
考えているのは凄い初歩的なものでABCを表示させるというものです。
String str = "ABC"
OutputStream os = Output Stream( ここに何を入れればいいのか )
os.write();
os.close();
FileやObjectStreamの説明はよくあるのですが
根本的なところの動作を理解したいというかなんというか
>>370 OutputStream os = System.out;
os.write('A');
os.write('B');
os.write('C');
jspっていまそういう書き方すんのね
Mapとかのメソッドの説明に出てくる「ビュー」って何でしょうか?
複製ではなくて、条件に一致する部分を見ている、ということでOKでしょうか?
374 :
366:2012/01/26(木) 06:26:10.20
SortedMap m = Collections.synchronizedSortedMap(new TreeMap());
...
Set s = m.keySet(); // Needn't be in synchronized block
...
synchronized(m) { // Synchronizing on m, not s!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
@Collectionsのjavadoc
もしかして、「synchronized(m)」とすれば、
このブロックにひとつのスレッドがいる限り他のスレッドでは、でmをへのアクセスは待ちになるのですか?
「synchronized(m)」の変数はただのマークかと思ってたのですが。
375 :
374:2012/01/26(木) 06:38:35.21
…普通に考えるとそうなんでしょうけど…。
面倒ですけど、複数スレからアクセスするコードを書いてみます。
そんなにちゃんと使いたいならスレッドを一から勉強したらどうですか?
>>364 > <?xml version="1.0" encoding="windows-31j" ?>
> <jsp:root xmlns:jsp="
http://java.sun.com/JSP/Page" version="2.0">
> <jsp:directive.page language="java"
> contentType="text/html; charset=windows-31j" pageEncoding="windows-31j" />
> <jsp:text>
> <![CDATA[ <?xml version="1.0" encoding="windows-31j" ?> ]]>
> </jsp:text>
> <jsp:text>
> <![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
> </jsp:text>
ほう、今のJSPってこんなタグライブラリの使い方があるんだ
昔と違って随分と変わったなあ
CDATAセクションでさらに入れ子にしてあれこれ記述すると
>>373 覗き穴から操作するとその操作が元のコレクションに反映される
サーブレットでディレクトリを作りたいんだけど、成功しないぜ助けてくれ
File newdir = new File("/img/" + name);
if (newdir.mkdir()){
System.out.println("ディレクトリの作成に成功したよ");
}else{
System.out.println("ディレクトリの作成に失敗したよ");
}
>>379だけど
ファイルの作成はできましたがコンテキストルート直下へ相対パスで指定して作成できない・・・
ninjava
googleカレンダーアプリのサンプル
ttp://labs.techfirm.co.jp/apps/iguchi/48 を動かすことに成功したのですが
その後に、elispe(インディゴver)で極めて単純なサーブレットを構築したところ
public class CalendarTestServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");
}
}
java.lang.NoClassDefFoundError: com/google/gdata/client/calendar/CalendarService
が出てしまいます。
myServiceを定義するだけで、初期化しない場合はエラーコードは吐かないようです
ビルドパスは先のリンクと変えてないのですが、サーブレットで使う場合は問題があるのでしょうか
ちなみにJSPでCalendarServiceを初期化した場合も同じでした。
383 :
382:2012/01/26(木) 13:33:27.90
384 :
デフォルトの名無しさん:2012/01/26(木) 20:13:22.38
質問です。
クラス間の配列の受け渡しがうまくいきません。
String型の配列に入力文字を表示させたいです。
Scoreクラスの呼び出し元となるクラスでは
String[] Sen= new String[10];
を宣言した後に、
try {
Score.choice(Sen);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println(Sen[1]);
としているのですが、nullと表示されてしまいます。
また、Scoreクラスのメインメソッドの最後では、
System.out.println(Sen[1]);
を行うと格納したい文字列がちゃんと表示されます。
どのようなミスが考えられますか。
大変初歩的な質問ですみませんがよろしくお願いします。
>>384 呼び出し元があるのに、メインメソッドもある。
何か不吉な…
Sen[1]に代入前にSystem.out.println(Sen[1])したらnullと表示され、
Sen[1]に代入後にSystem.out.println(Sen[1])したら意図した文字列が表示された、とか。
387 :
デフォルトの名無しさん:2012/01/26(木) 20:32:31.08
384です。
Scoreにおいて代入を行った後にSystem.out.println(Sen[1])
を行っていることを確認しました。
また、呼び出し元のクラスではScoreを行った後にSystem.out.println(Sen[1])
を行っています。
参照をうまくいかせるために何か宣言で気を付けなければいけないことだとか
あったでしょうか・・・。
きっとケアレスミスだとは思うのですが、わかりません。
お願いします。
コード晒した方が話が早いと思うぞ。
389 :
デフォルトの名無しさん:2012/01/26(木) 21:56:42.59
16bit グレースケール TIFF を読み込みたいんですが、いいライブラリはあいませんか?
JAIではできないようです
Part inFilePart = request.getPart("inFile");
String inFileName = ほげほげ
inFilePartからファイル名を取り出したいんだがどうしたらいい?
>>389 ないから書いたほうが早い。JOGLがTIFF読めるからソース参考になる
>>392 http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Picture.html#resize%28double%29 resize
void resize(double scale)
Reset the image to the original size.
Please note, that this method works correctly only for workbooks with default font size (Arial 10pt for .xls and Calibri 11pt for .xlsx). If the default font is changed the resize() procedure can be 'off'.
Parameters:
scale - the amount by which image dimensions are multiplied relative to the original size. resize(1.0) sets the original size, resize(0.5) resize to 50% of the original, resize(2.0) resizes to 200% of the original.
ninjava
オブジェクトの直列化
//oos
ABC A1 = new ABC(1,"hoge");
ABC A2 = new ABC(2,"hage");
oos.writeObject(A1);
oos.writeObject(A2);
オブジェクトファイル生成後の呼び出し部分
//ois
ABC A2 = (ABC)ois.readObject();
ABC A1 = (ABC)ois.readObject();
// ABC A3 = (ABC)ois.readObject();
A3はエラーになります。
動作からreadObject()って、書き込んだ順に頭から呼び出してObjectを生成するって事?
FIFO的な動き?
クラス丸ごと(メンバ変数やらなんやらを)1ファイル化できて、便利だと思ったけど
FIFOでしかファイルを呼び出せないとなると、色々考えて組まないと
使い難いと思ったり思わなかったり
> readObject()って、書き込んだ順に頭から呼び出してObjectを生成するって事?
yes
初歩っぽい質問で悪いんですがよかったら教えてください
public class A{
a
public class B{
b
}
public class C{
c
}
}
のような形のときにaで作った変数はそのままbとcで使えるってことで良いんですよね?
今試しに作っている中でbとcでそれぞれで別の変数として作ったときには問題ないのですが、aで作るとプログラムが強制終了してしまいます。
調べては見たんですが何か考え方を間違えてますでしょうか?
なにこの上から目線w
>>397 調べてみて問題あったなら直せ。
問題ないなら調べ方が悪いか見当違い。
>>398 丁寧に聞いたつもりが上からになってしまいました、すみません
>>399 わかりました、自分で調べてみますね
とりあえず生ソースを抜き取れ
そのままならパブリッククラスが複数あるぞ!
と超初歩の警告が出る
インナークラスの質問等
用語をある程度調べてから質問しねーと、エスパー待ちになるぞ
インナークラスでpublicは問題ない
403 :
デフォルトの名無しさん:2012/01/27(金) 21:21:36.54
404 :
デフォルトの名無しさん:2012/01/28(土) 14:32:51.92
JNIって、javaw.exeのプロセスのJVM外の領域にデータが転送されて実行されるの?
JavaからGPGPUとかやってもデータ転送がボトルネックになって大した意味無いかな?
使い方次第。
406 :
404:2012/01/28(土) 15:31:43.88
にしても、俺が気になってるのは、JVM>同プロセスJVM外領域>グラボ上の領域
というC言語よりもデータ転送の手間が増えているのかいないのかということ。
JavaからJNI経由でGPGPUをやるとメインメモリ上で無駄に1度コピーが発生するんじゃないかなと思って。
nio.ByteBufferを使えばほとんどのことはネイティブに丸投げ出来ます。
EclipseでHTML5のCanvasタグをつかうにはどうしたらいいんだ?
なんてプラグインを入れればいいの?
nioのbufferこそ
>>404の気にしてる二重の転送が発生する。JOGLとかどうしようもないネックになる。
転送回数減らす工夫すりゃいいだけじゃないの?
411 :
404:2012/01/28(土) 19:19:42.88
転送量が減ってないなら依然致命的なボトルネックになる
膨大なデータに単純処理を行うのがGPGPUに向いた問題だと思うけど、
Javaだと膨大なデータという時点で転送のハンデがあるんじゃないかな
俺はGPGPUについてはまだサンプルコードを動かしてる入門者レベルだけど
たわごと
転送1回程度でボトルネックになるようならJNI呼び出しコスト見たら発狂すんじゃね?
414 :
404:2012/01/28(土) 19:31:47.88
Javaでcpu vs gpuの比較コードくれ
ベクトル加算の比較コード書いてみたらgpuはcpuの3倍時間がかかった
i7 920とgtx260で
そんな高性能なgpuもcpuは持ってないよう><
そんな高性能なgpuもcpuも持ってないようう><
417 :
404:2012/01/28(土) 19:48:34.73
コードだけ渡してくれれば俺の環境で実行するからお前の持ってるハードウェアは関係無い
ただのGPGPUなら転送速度なんて気にしなくていい
420 :
404:2012/01/28(土) 20:36:46.96
他人に丸投げか。お前らで解決しろ
netbeans7.1でswingを使ったソースコードを書いて実行したところ
mainメソッドがありませんとエラーが出るんですが、ソースコードにはmainメソッドがあって
どうしていいか分かりません。
ぐぐったらswingを使うとこういうエラーが起きることがあるみたいだけど
これはどうやったら解決できますか?
素直にあきめた方がいいでしょう
424 :
デフォルトの名無しさん:2012/01/28(土) 22:37:59.82
質問です。
Textareaにて表示されている文字があります。
エンターキーを推した際に一番最後の文字だけ削除したいのです。
すでに表示されているTextareaを編集することは可能でしょうか。
現在思いつく方法としましては、
Textareaに表示されている文字列を一度取得し、
配列で最後の文字を削除して表示しなおす方法です。
しかし、なるべくなら文字列に格納する段階を踏みたくはないと考えています。
Textarea上で編集することのできるいい方法はありませんでしょうか。お願いします。
【中国BBS】2030年に韓国が日本を抜く? 反対意見が多数
中国大手検索サイト百度の掲示板に、「2030年に韓国のGDPは日本を追い越すって本当?」というスレッドが立てられた。
これに対して反対意見が多数寄せられている。
● スレ主:八戒窘6
アジア開発銀行のデータによれば、2030年に韓国のGDPは日本を追い越すらしい。
● せんとう
どんな予測も多少なりとも正確ではない所があるが、今回の話はあり得なさ過ぎる。
● satay醤
本当にデタラメだな。アジア開発銀行によるレポートだって?じゃあバンク・オブ・アメリカや欧州の銀行の結論はどうなのよ?
● 佚名野菜地
アジア開発銀行ってのは、韓国人が開いているのか?
● Joseph19969
俺の妄想では、2100年日本人の1人当たりのGDPは46万ドル、韓国は8万だな!
● o落葉不知秋o
その頃までに韓国という国が残っているかどうかも分からないぞ。
● 梨花陰凉
死んでも信じない。
● MakiのLove
なんか最近、韓国のニュースが多くね?
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0128&f=national_0128_091.shtml
>>424 プログラムからTextAreaの内容いじるのは、
MVC的にはjavax.swing.text.Document経由で行うのがあるべき姿。
部分削除も部分挿入もさくさくできるぞ
427 :
デフォルトの名無しさん:2012/01/29(日) 16:16:42.79
static final char[] Test = ("hoge" + "hage").toCharArray();
この文の意味を教えて下さい
「hogehage」というString型のインスタンスをChar型の配列にいれていくということですか?
"hogehage" というインスタンスに対して String#toCharArray メソッドを呼び、
その結果で char[] 型の static final 変数 Test を初期化する
ありがとうございました。
JLayerでdecodeしたInputStreamを取得するにはどんな形が良いですか?
今こんな形で書いてるけど巧く行かなくて頓挫中。
jl.player使わず、jl.decoderだけで行けるような気がして。
String[] a = {"-url", "
http://hogehoge:8080"};
try
{
jlp = javazoom.jl.player.jlp.createInstance(a);
return jlp.getURLInputStream();
}
catch (JavaLayerException ex)
{
return null;
}
初心者です。
public class A {
private static B b = new B();
private static int[] num = {-1,-1};
private static ArrayList<String> arr_st = new ArrayList<String>();
public static void main(String args[]){
arr_st = b.return_arraylist_string();
}
}
public class B {
public staic ArrayList<Stirng> return_arraylist_string(){
}
}
上記のようにクラスAがBをインスタンス化したときに
return_arraylist_string関数からクラスAのint[]型のnumの値を操作することは出来るのでしょうか?
出来るなら方法を教えて下さい
num が private でなければできる
private ならそれは A のプライベートなものだから A に渡してもらわない限り外からは見れない
>>432 ご指摘ありがとうございます。
publicに直した上でどのように参照すればいいのでしょうか?
A.num[1] とか
>>434 「.」って「クラス.変数」で使えるものなんですね、今まで「インスタンス.変数」でなければ使えないと思ってました。
ありがとうございました。
private static 変数はバグの元にしかならんから使わんどけ
どうしてもやりたきゃスレッドを使いこなせるようになってからだな
アクセサ通すようにすれば
初心者なのにジェネリックス表記はしっかりしているんだなw
慣れないうちはジェネリックスなんて無記名だった
>>425 2100年には韓国も北朝鮮も中国共産党そのものもなくなってるだろうよ
それでもJavaは生きているだろう。C言語も生きているように。
メソッドローカルなインナークラスが
外部の変数を使う時、なんでfinalなの?
変更できるとスタックフレームややこしいからじゃね?
444 :
ひみつの検閲さん:2025/01/20(月) 21:28:36 ID:MarkedRes
通報しました
>>442 たしかマルチスレッド時にバグ埋め込む危険が高いから禁止。
Java8に入る予定のラムダが変数キャプチャできなくなった理由の一つ。
hogeがTreeMapのとき、
hoge.clone();
new TreeMap(hoge);
で返される値に違いってないですよね?
どっちつかったらいいのですか?どう考えるとよいのでしょうか?
プリミティブラッパークラスってどうしてfinalなの?
システム時間を記録するクラスが欲しくて、たまたまLongと同じだから継承して中身を空にしようとしたら出来なかった。
なんでだろ?
ネットワーク系もfinalが多いよね?
継承して中身を盗み見されないようにだろ。
450 :
448:2012/01/30(月) 21:06:52.23
>>449 ゆとりにもわかるように、もう少しやさしく。
>>448 不変オブジェクトだから。
自由に継承されたら不変オブジェクトにならん。
マルチスレッドだと不変オブジェクトは扱いが楽。
可変オブジェクトは排他制御が必要になったりして扱いが面倒。
クローンして渡せばおk
NullSafeな操作をする改良ってJava8には取り込まれそうなんでしょうか?
>>456 そうっすか。一番待望の機能なんだけどなぁ……
そういえばJava7の新機能すら知らないことに今気付いた
>>456 それcoinの話だけじゃん。ちゃんとjavaoneのスライドにある。
>>457 サードのライブラリレベルかJSRの本家のがもうある
あの記法ってライブラリでなんとかなるようなもんなのか?w
http://www.j-cast.com/2012/01/30120504.html 「国民的英雄」軍人をアニメで萌えキャラ化 フィンランド大使館「巨乳もパンツも全て把握」
2012/1/30 19:30
フィンランドの軍人「ユーティライネン兄弟」を女体化し、萌えキャラにした「ストライクウィッチーズ」というアニメ作品
がある。駐日フィンランド大使館がこの事実を「全て把握している」と明かし、ネット上でちょっとした騒ぎが起こっている。
発端は2012年1月29日、駐日フィンランド大使館の公式ツイッターアカウントに寄せられた「質問」だった。
12年3月には劇場版の公開も予定
「フィンランドの方々は、ユーティライネン兄弟が日本のアニメで姉妹になり、しかも巨乳になってパンツで戦ってい
る事を知っているのでしょうか。」
あるツイッターユーザーから寄せられたこの質問に対し、駐日フィンランド大使館は「全て把握しております」と回答
した。続いて「中の人(ツイッターを運営している人の意)はそのアニメを見てますか?」という質問に「残念ながら、まだ
拝見したことがありません。これから見てみようと思います」と答え、「是非ご覧ください!素晴らしいアニメですよ」と
言われ「ぜひ拝見させていただきます!」と返信したのだ。
>>459 @NonNullと勘違いしてね?
>>455のってC#の value?.field みたいな奴でしょ。value != null ? value.field : null と等価な。
ストパンって撃墜王とモロッコの恐怖の話だったのか・・・
>>462 Yes、Yes。それです。ついでにNullのときだけ代入するとかの判定もしたいんだけどな。
a = a==null ? ほげ : a;
ってのをシンプルに書ける記法。
JSR308ってモロに@NonNullじゃね?
@NotNullって便利なのかね……
手間が増えるだけなんじゃないかって気がするんだけど……
上手く行けば苦労の半分はライブラリ側が受け持ってくれるんじゃないかと。
あとの半分はIDE任せな感じで。
ここでいいのかわからんですが、
ボタンをテーブルレイアウトの中のテーブルロウ3つにそれぞれ3つづつ入れた後にmain.xmlの中でandroid:layout_margin="1"をつけたときにDimension "1" in attribute "layout_margin" is missing unit!の表示が出て実行できなくなってしまいます。
ググっては見たんですが理由がわかりません
>>464 言語レベルの変更が議論されてたのは初期だけでプランが決まったら白紙になったよ。
動的言語サポートはAPIレベルでしか操作できないようにしてラムダは8に持ち越し
null周りは305と308に落ち着いて308が8で採用される。9でサポートされる符号なし演算もAPIの追加のみ。
全部大規模な変更はせずにライブラリの変更で対応させるため。
>>456は小規模な変更の中で採用されたのがcoin。
ラムダの時に言語仕様変更すると今までのjavaと変わりすぎるとか色々激論になった流れから来てる。
JDK実装レベルでは6と7でかなり変わってる。
472 :
デフォルトの名無しさん:2012/01/31(火) 23:46:16.66
別スレで質問しましたが、このスレに誘導されてきました。
Javaの各種部品の図解どこかにありませんか?
GUI awt swt Swing
API J2SE J2EE
DB JDBC
↑みたなやつです。
どこかで見かけたんですが・・・。
>>471 ジャバ言語自体の変更はcoinなどコンパイラ文法で対応し、jvmなどジャバ・プラットはライブラリで対応ってことでしょ。
Array.newInstanceが未だにreflectのみでコンパイラのサポートがないのもジャバ言語の設計思想を反映している。
475 :
デフォルトの名無しさん:2012/02/01(水) 08:30:36.37
>>474 Array.newInstanceのコンパイラサポートってどんなん?
配列の動的new
709+1 :デフォルトの名無しさん [↓] :2012/02/01(水) 01:17:39.30
>>696 価値が無いじゃない。土方言語だという話だ。
土方言語は、往々にしてライブラリじゃなく
言語のコア実装に対して大きく変更が入る。
土方現場の要望に合わせてどんどん継ぎ接ぎ増築される。
始めからある種の概念を持って設計された言語なら、
土方の要望なんて聞かない。識者同士の判断で
ゆっくりと拡張される。
lispやsmalltalk、Cなんかもいい例だ。
Cもいい加減な設計でつくられた土方向けだろうと
言うかもしれんが、あれはあれで殆ど完成してる。
質問です。
なぜJavaでは、ジェネリクスを使用した型の配列を禁止しているのでしょうか。
ArrayList<String>[] ary = new ArrayList<String>[3];
もし許してしまった場合に、どのような不都合が生じるのか教えてください。
よろしくお願いします。
嫌です
s a g
>>483 なるほど!!!
Object[] という裏口から配列の要素を設定できるんですね!
わかりやすい記事の紹介、ありがとうございました!
s a g
488 :
sage:2012/02/01(水) 19:19:46.15
RestfulUrlのサイトを構築しようとしています。
自分が行いたいのはURIの最上位のパスを変数として扱いたいのですが、
そのような事が出来るフレームワークはありますでしょうか?
例.下の様なURLの場合0001がパラメータとして受け取れる。
http/XXX.XXX.XXX.XXX/0001/Test/
RESTEasyとか検証してみたのですが、自分ではうまく設定ができませんでした。
実現できるフレームワークをご教授いただけると助かります。
interface A{
void setA();
int getA();
}
abstract class B implements A{
private int x;
void setB(int x){ this.x = x; }
}
class C extends B{
int y;
public void setA(){
y = 100;
}
public int getA(){
return y;
}
}
インターフェースをabstract classの段階で実装して
メソッドの定義を後回しという設計てありえるんですか?
この場合なら class Cの段階でinterface Aを付けるべきだろ?
という突っ込みが常識的とは思いますが
>>400 言語仕様的には問題ない。
設計的には外から値設定できないsetA()の方が気持ち悪い。
>>490 AがJava標準APIでBはプロジェクトのアーキテクトが設計・実装して
Cはドカタコーダーが実装、てのはよくある。
>>490 普通にあると思うよ。
ユーティリティ機能をabstract側に持たせて
コアのインターフェースメソッドはコンクリートクラスで実装ってことでしょ?
>>471 java8の本命は collection literalと named arg methodでしょ。javafx的にもやっぱり。
>>490 >この場合なら class Cの段階でinterface Aを付けるべきだろ?
>という突っ込みが常識的とは思いますが
本当にそれがプロジェクトのコードのすべてならね。
おまえさんの挙げたサンプルは意味をなしてないから、
それが常識ってケースもそうでないケースもあるだろうね、
としかいいようがない。
当然、class Cの段階でなんてあり得ないってケースもあるからな。
publicやprotectedやstaticなどの修飾子の使い分けが難しすぎるんですが
みなさんはどうやってできるようになりましたか
>>497 public/privateの境目がわかんなくなったら、Javadocを見ながら
インターフェイスを再考することが多いかな。
Javadocが理解しやすければ、自然と良い設計になっていることが多いから。
static は文字列リテラルを定義するときと、ユーティリティメソッド書くときくらい。
protected はほとんど使わない。継承が何重にもなるのは好きじゃないから。
継承だけじゃなくて、委譲もうまく使うといい。
String str = "HageHage";
snychronized void getHoge(){
}
void getHoge()
snychronized(str){
void getHoge(){
}
}
snychronizedをつけて同期を取る時
メソッドに付けるべきか、オブジェクトにつけるべきかの判断がよくわかりません。
何かアドバイスを〜
>>499 同期を気にしているということはマルチスレッドでの挙動ですよね?
どの範囲を他スレッドからロックしたいかってのがわかれば自明になると思いますよ。
501 :
デフォルトの名無しさん:2012/02/02(木) 14:24:03.24
private static final EnumClass a = EnumClass.a;
って書いてるのに、
public EnumClass getA(){
return a;//aがnullになる
}
どんな原因が考えられる?
>>500 メソッドにつければ、メソッド内で扱われるオブジェクトは自動的にオブジェクトロック
具体的にオブジェクトを決め、{}で範囲を決めればメソッドにつけるのと違い
特定のオブジェクトだけがロックがかかるって事だと思ってます。
だから、マルチスレッドを使う組み方なら「とりあえずなんでもsynchronizedを付けちまえよ!」と思うのですが
>>502 何か勘違いしていないか
メソッドに synchronized を付けるのは、メソッドの中身全体を synchronized (this) { ... } で囲むのと同じ効果
つまり特定のオブジェクト (この場合は this) にだけロックがかかるのは同じ
506 :
501:2012/02/02(木) 14:45:25.91
EnumClass.aがnullになるみたいだが、その原因が分からない。
呼び出し順序によってnullになる要素が変わるみたいだ。
//bがnull
System.out.println(EnumClass.a);
System.out.println(EnumClass.b);
System.out.println(EnumClass.c);
//aがnull
System.out.println(EnumClass.b);
System.out.println(EnumClass.a);
System.out.println(EnumClass.c);
//a,bがnull
System.out.println(EnumClass.c);
System.out.println(EnumClass.b);
System.out.println(EnumClass.a);
EnumClassを見ないとなーんもわかりません。
508 :
501:2012/02/02(木) 14:55:58.31
とはいえオリジナルのソースコードを投稿する訳にはいかない。
正確には、シングルトンのクラスが3つあって、それぞれが1つEnumClassの要素を持ってる。
System.out.println(SingletonClass1.getInstance().getA());
System.out.println(SingletonClass2.getInstance().getA());
System.out.println(SingletonClass3.getInstance().getA());
とやったときに、この3行のうちの1〜2行がnullになる。
呼び出し順序によってどれがnullになるかが変わる。
微妙にSingletonになってないんじゃね?
それじゃ、初期化がまずいとしか言えない。
511 :
501:2012/02/02(木) 15:01:16.62
1スレッドでテストしても発生する。
シングルトンのクラスでは
private static final EnumClass a = EnumClass.a;
と定義されていて、getInstance()の返値がaを持っていない。(デバッガでもnullになってる)
static finalで定義されているのに、ロードのタイミングがきていないみたいだ・・・
>>511 違う。EmumClass内でのaの初期化が問題
>>505 String s1 = "hoge";
synchronized void Set(String s1){
String s2 = "hage";
}
この場合s2はロックされるけど、s1は駄目よって事?
514 :
501:2012/02/02(木) 15:05:04.38
>>512 EnumClass.aのコンストラクタで、そのシングルトンクラスのgetInstance()を呼んでいた。
このせいでEnumClassのコンストラクタがデッドロックみたいな事になってたり、失敗してるのかな
情報小出しのエスパー募集か。
>>513 排他制御の対象になるのはthis.s1でも引数s1でもローカル変数s2でもないぞ。
>>514 a は名前的にstaic finalでよさそうだから
public static final Enum a = null; にして
static{
a = new Enum(ほげほげ);
}
で初期化してみ。
518 :
501:2012/02/02(木) 15:08:17.50
EnumClassのコンストラクタでSingleton1〜3のgetInstance()を呼んでいるのは不要なコードだったので削除したところ、
正常に動作するようになった。
Singleton1〜3クラスのstaticメンバにEnumClassがあって、
EnumClassのコンストラクタでSingleton1〜3のgetInstance()を呼んでいる状態だった事が原因だった。
↑s/Enum/EnumClass/g で
520 :
501:2012/02/02(木) 15:11:09.57
>>515 2chだと仕方ないだろ
あらゆる環境情報を書くのは無理だから
必要そうな情報のみを書かなきゃいけないけど、その判断は1発で完璧に出来るものじゃない
>>520 つ『Programming Pearls』
>>513 みんなしてお行儀よく同じオブジェクトに対してsynchronizedすると排他される。
synchronizedへ入るときと出るときに、全てのデータに関して
スレッドにローカルなキャッシュとスレッド間で共有するメモリとのやりとりが行われるので
一貫して同じオブジェクトに対してsynchronizedすれば、そのオブジェクトはどこの馬の骨でもいい。
なお、同期でガードするのは処理ではなくデータであることに注意。
CSV出力に関して教えてください。CSV出力部分は、下記のようにCDしています。
通常量のデータの場合は、ダイアログが出た時点でwriter.close()まで完了しているので問題ないのですが、
大量のデータを出力時にダイアログが出た瞬間に、すぐにダイアログのキャンセルボタンを押すと、
サーバ側の処理が「3.CSV出力」のところで止まってしまい、writer.close()までいきません。
(ログで確認しました。)これを繰り返すとoutOfMemoryとなってしまいます。
キャンセルボタン押下時にもwriter.close()を走らせる方法はあるのでしょうか?
finallyとかに入れてみたりしましたが、駄目でした。
何か方法があればご教授のほどよろしくお願いいたします。
(ソースは次のレス)
525 :
524:2012/02/02(木) 22:22:24.90
// CSV出力メイン処理.
public ActionForward outputCsv(ActionMapping map, ActionForm frm, HttpServletRequest request, HttpServletResponse response) throws Exception {
// 1.出力データ取得
csvBean = getOutputData();
response.setContentType("application/octet-stream;charset=Windows-31J");
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");
// 2.ファイル名設定
String fileName = "test.csv";
fileName = new String(fileName.getBytes("Shift_JIS"), "ISO-8859-1");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + "");
PrintWriter writer = null;
writer = response.getWriter();
// 4.CSV出力
editCsv(writer, csvBean);
writer.flush();
writer.close();
return null;
}
// CSV出力処理.
public static void editCsv(PrintWriter wr, ArrayList csvBean) throws Exception {
for (int i = 0;i < csvBean.size(); i++) {
wr.print(csvBean.get(i).getData1());
wr.print(csvBean.get(i).getData2());
wr.print(csvBean.get(i).getData3());
}
}
ログじゃなくてデバッガをつなげてほんとに行ってないのか調べては?
それとfinallyを使った時の実装plz
>>526 finally を入れた場合はこんな感じでした。
// 4.CSV出力
try {
editCsv(writer, csvBean);
} catch (Exception e) {
} finally {
writer.flush();
writer.close();
}
一応、writer.close();の前と後にログ出力処理を入れて動かした時に
ログが出ていなかったので、writer.close();は動いていないようです。
編集処理(editCsv)が完了したであろう頃にキャンセルを押した時は、
writer.close();までいっています。
>>527 flush()もIOException投げるんじゃないの?
>>527 finally に入れるのは close だけにしてみたら?
flush は try の最後にするか、いっそ削ってもいいし。
close 直前に flush 必須みたいなアホな実装になってないかぎり。
>>529 うん。closeはflushもするはずだもんね。
>>529 ありがとうございます。
最初は、flushなしで作っていました。
tryの中に入れたりも試しました。
でも、駄目でした。
そもそも、編集の途中(だと思われる時)にキャンセルを押すと、
サーバ側の処理がそこで終わってしまうものなのでしょうか?
キャンセル押下は、
catch(SocketException)で拾えると書いてあったサイトも
ありましたが、これも駄目でした。。。
>>531 Javaのスペック上かならずfinallyは実行されるからcloseが実行されていない
という誤解はおそらくflushでIOExceptionが発生してるからだって。
>>532 ありがとうございます。
でも、flushをいれずにcloseしか入れていない時も
closeの前後に入れていたログが出ていませんでした。
>>527 関連ないかもしれんが、flushやcloseで例外出る可能性があるときは↓こういうふうに書くのが普通じゃね?
// 4.CSV出力
try {
editCsv(writer, csvBean);
} catch (Exception e) {
} finally {
if(writer != null){
try{
writer.flush();
} catch (Exception e) {
}
}
if(writer != null){
try{
writer.close();
} catch (Exception e) {
}
}
}
あほjaver得意のcatch (Exception e)
DB接続のときのトランザクション処理を詳しく解説してくれる書籍はありますかね
>>533 > でも、flushをいれずにcloseしか入れていない時も
> closeの前後に入れていたログが出ていませんでした。
ただの勘違いじゃねーかと思うが。
そうでなければfinallyのcloseの前の処理で例外発生しててcloseまでたどりつけてないのかな?
例えば、ログ出力時にOutOfMemory食らっててcloseまでたどり着けない、とか。
最初の回答でデバッガにかけろと言われてるのに、無視し続けているのか…
いつまでもアホがアホを相手にしてるとこうなる
>>537 finallyでない場所に入れてたときなんじゃないですかね。
まあ、人間自分で失敗して自分で気づかないと成長できないからこれでよかったのかもね。
541 :
デフォルトの名無しさん:2012/02/03(金) 14:41:48.82
Groovyでpublic static finalな定数を参照するにはどうしたらいいの?
例えばThread.MIN_PRIORITYみたいなやつを参照する事は出来るの?
542 :
541:2012/02/03(金) 16:13:17.95
パッケージ名全部かいたらできた
解決したといえるのか
544 :
デフォルトの名無しさん:2012/02/03(金) 19:18:49.35
synchronized(this){
}
ってやったら、public final List<String> a = new ArrayList<String>();
みたいなpublicなものも他スレッドはアクセスできなくなるよね?このブロックを抜けるまで。
同一オブジェクトをsynchronizedしてる場合は、
同時に一つのスレッドしかsynchronizedブロックに入れないだけ。
synchronizedしてないならさわり放題。
547 :
544:2012/02/03(金) 20:05:51.27
同じロックオブジェクトを使っているsynchronizedブロックにしか意味が無いという事?
前にこの理解は間違ってるって言われたんだけど
548 :
544:2012/02/03(金) 20:09:27.83
「ロックされてたら止まるけど自分はロックしない」
という事をやるにはどうしたらいいの?
synchronizedブロックは「ロックされてたら止まるし、自分が処理してる間他のスレッドを止める」
ものだと思うけど
549 :
544:2012/02/03(金) 20:17:43.20
volatileがついていない変数AとBがあって、
スレッド1でAに書き込み、Bに書き込み
スレッド2でAを読み込み、Bを読み込み
とした場合、スレッド2がAでは古い値を見ていてBでは最新の値を見ている、
という事はありうる?
volatileついててもありうる。
> 自分が処理してる間他のスレッドを止める
だからそれはsynchronizedで同じオブジェクトを使ってロックを取得しようとするスレッドだけだって
>>548 > 「ロックされてたら止まるけど自分はロックしない」
ロックされてたら止まる、ロックされてなければ止まらないまでならやろうと思えばできる。
ロックされてない事を確認した次の瞬間に他のスレッドがロック獲得して、
こちらが参照しようとしてるオブジェクトを弄り始める可能性もあるわけだし、
普通はそれだけできても意味ないと思う。
553 :
デフォルトの名無しさん:2012/02/03(金) 22:32:12.03
JVMかEclipseのバグとしか思えない現象に遭遇したんだが・・・
再現条件も分からないが俺の目の前のコードでは100%再現する。
byte[] objA があって、
スレッドAでobjA.clone()を実行する一行を入れるかどうかで
スレッドBでのobjAの内容が変わる事がある
おかげで、全く無意味なobj.clone()という返値を受け取りもしない1行を入れるとバグが消えて、
外すとバグが出るという状態・・・。
まあ伝わらないだろうけど、俺もわかりやすく書けない
JVMの何かの最適化がバグを生んでるのかな
waitとnotifyの話を聞きたいだけじゃね?
初心者がスレッドを勉強中の質問なら、生産者消費者問題のことだろ。
スピンロックとミューテックスの話で3時間も使うなよw
Javaのどの実装がスピンロック使ってるんだ?
JVMのバグなわけないだろ。
君の期待するオレオレ仕様のVM実装するために何が必要か考えてみてくれ。
配列要素1個1個操作するたびにコア間で暗黙に同期せにゃならんのか?
すごいなあ
昔の人がわからないものは全部神か悪魔のせいにしたみたいにバグのせいにするなあ
Javaのバグは今までも結構あったよ。
同じコードなのに、JITコンパイルを通すと結果が変わるとか。
まあ、
>>553のコード晒してくれないと何とも言えん。
単にプログラミングが下手なだけかもしれない。
/ ̄ ̄ ̄ ̄ ̄ ̄ \
/⌒ヽ / '''''' '''''' ヽ
| / | (●), 、(●) |
| | | ,,ノ(、_, )ヽ、,, |
| | | `-=ニ=- ' |
| | ! `ニニ´ .! 馬具じゃ、馬具の仕業じゃ!
| / \ _______ /
| | ////W\ヽヽヽヽ\
| | ////WWWヽヽヽヽヽヽヽ
| | ////WWWWヽヽヽヽヽヽヽ
E⊂////WWWWWヽヽヽヽヽヽヽ
E//// ヽヽヽヽヽヽヽ
| | //WWWWWWWヽヽヽヽヽヽヽ
このコンピュータにバグが住みついています。至急バルサンを焚いてください。
ばるさん?
567 :
デフォルトの名無しさん:2012/02/04(土) 15:59:14.80
何かで見たな…
『達人プログラマー』だ p.97
> 昔、あるシニア・エンジニアがSolarisのseletシステムコールにバグがある、と確信するような
> 問題に遭遇しました。他のネットワーク・アプリケーションは問題なく動いているから、といった
> 説得や論理でも彼の心は変わりませんでした。彼はいろいろな理由をつけ、何週間もかけて
> 問題と格闘しましたが一向に解決の兆しは見えませんでした。結局、彼は腰を落ち着けて
> selectのマニュアルを読むこととなったのです。そして、ものの数分もしないうちに問題を
> 解決することができたのです。その後我々は、誰かがシステムに問題があると言いだした時に、
> 問題は我々の側にあるということをやんわりと諫めるために「selectがおかしい」という
> 表現を使うようになったのです。
鰊
Eclipseの動作で高パフォーマンスを得られるJavaVMがあれば、
どなたかご教示いただけませんか?
(GCJ/GIJはメモリ使用量が高すぎるという理由で使用できません)
570 :
デフォルトの名無しさん:2012/02/05(日) 13:10:35.94
質問です
A〜Gの一文字をランダムで表示し、F5を押すと更新するプログラムを作りました。
これを、F5を押さずに所定時間(例えば5秒)経ったら自動更新するようにしたいのですが、
どう書けばいいのでしょうか?
当方初心者で行き詰ってしまい質問させていただきました。
教えていただけると助かります。
ちなみに、F5で更新するプログラム↓↓
<p style="font-size:1000%">
<script language="javascript">
<!--
var txt = new Array();
txt[0]="A";
txt[1]="B";
txt[2]="C";
txt[3]="D";
txt[4]="E";
txt[5]="F";
txt[6]="G";
mmax = 7; //メッセージの行数を数字で
txtno = Math.floor(Math.random() * mmax);
document.write(txt[txtno]);
//-->
</script>
</p>
>>1 > JavaScript, Ajaxの質問は、ここでは受け付けていません。
>>571 JavaとJavaScriptの違いも分からないアホでした
すんません
新しいJAVAの教科書という教本で初歩から勉強してるのですがfor文の項目・・・
0〜9の内偶数だけを足して出力せよという練習問題で以下の構文を組んだのですが、エラーになります
どこが間違ってるのかまったく判らず、悩んでます 手解きお願いします
class ForTest3a {
public static void main(String[] args) {
int sum=0;
fou (int i=0; i<10; i++) {
if((i%2)==0) {
sum = sum + i;
}
}
System.out.println("合計は" + sum + "です");
}
}
以下、エラー内容
ForTest3a.java:4: '.class' がありません。
fou (int i=0; i<10; i++) {
^
ForTest3a.java:4: 型の開始が不正です。
fou (int i=0; i<10; i++) {
^
ForTest3a.java:4: 文ではありません。
fou (int i=0; i<10; i++) {
^
ForTest3a.java:4: ';' がありません。
fou (int i=0; i<10; i++) {
^
エラー 4 個
本気で判らないのか逆質問したくなるレベルだが
fo「u」じゃなくてfo「r」だろ
おお!!すいません 数時間悩んでたのがかなり恥ずかしいです><;
けどやっと先に進めます ホントにありがとうございました!!
フォーウwww
クラス内に突如でてくるstatic節って何の用途で使うんですか?
static{
・・・・
}
静的初期化子でぐぐれ
fou
釣りネタとしても、笑えたから許せるwwwwww
スーパースーパークラスのコールの仕方を教えて下さい。
class A{ void f(){...}}
class B extends A{ @Override void f(){...}}
class C extends B{ @Override void f(){ super.super.f();}
という事がしたいのですがsuper.super.なんて使い方はできませんし
A.super.f();なんて書き方もできません。
AとBはswingの中で定義されているクラスなので変更できるのはCのみです。
良い方法があったら教えて下さい。よろしくお願いします。
ございません
>>582 class Bのf()中でsuper.f()を呼ぶしかないだろう
というか、継承とは、直上のクラスの機能を受け継ぐんだから
普通はスーパークラスであるclass Bで事足りるはず
にもかかわらず、class Aのf()がほしいということは、
そもそも、class Cはclass Aを継承せねばならなかったということに
ほかならない
以上
メソッド内の一部を{ }でかこってる部分って何のためにあるんですか?
>>585 どれのことだかわからないので、コードをさらせ
>>585 典型的にはローカル変数のスコープを限定するため。
>>582 Aでのf()の実装をprotectedなfImpl()に書き写して、
AやCのf()はAのfImpl()に丸投げとか、たまーに見かける設計だが
オススメできるかどうかは用途を聞かないとなあ。
Swingの話なんだよね?fireで始まるprotectedなメソッドとかは見た?
>>584 だよね。
もしどっちも必要なら委譲で使うんだね。
>>583 わかりました
>>584 普通はスーパークラスであるclass Bで事足りるはず(→論理的に無理)
にもかかわらず、class Aのf()がほしいということは、
そもそも、class Cはclass Aを継承せねばならなかったということに
ほかならない
→結局こうして開発を進めてます。
>>588 実はf()はaddImpl()という名前でその丸投げしたものに問題があるので
不可能です。
できない事がわかり別の解決手段へ向かえたので助かりました。
ありがとうございました。
swingでデジタル時計のような物を作っています.
ウィンドウサイズを変更した際に,文字の大きさも変更するには
1. ウィンドウサイズ,フォントサイズの初期値を設定
2. ウィンドウサイズの変更(拡大率)に併せてフォントサイズを変更
という手順以外に,何か無いでしょうか?
一応
1. ウィンドウサイズを取得
2. px->ptへ単位変換してフォントサイズを推定、変更
というロジックも考えてみたのですが、うまくいかない…
自分でGraphics2Dにフォントカキカキするなら、
アフィン変換(AffineTransform#getScaleInstance)に拡大縮小処理を
丸投げする方が楽だと思うが。
俺ならポイントを少しずつ大きくしていってはみ出したところでストップするようにする
Fontはさ、結局整数で指定するんだよねえ
2chのGZIPで圧縮されたファイルを取得し、解凍、出力しようとしていますが
文字化けてしまいます。
何がいけないのでしょうか?
環境は Ubuntu 11.04 java version "1.6.0_23" です。
よろしくお願いいたします。
以下ソースコード
-----------------------------------------------------
String dat_url = "
http://toro.2ch.net/tech/dat/1328276597.dat";
String host_url = "toro.2ch.net";
URL url = new URL(dat_url);
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setReadTimeout(10000);
con.setUseCaches(false);
con.setRequestMethod("GET");
con.setRequestProperty("Host", host_url);
con.setRequestProperty("User-Agent", "Monazilla/1.00");
con.setRequestProperty("Accept-Encoding", "gzip");
con.setRequestProperty("Connection", "close");
// 接続
con.connect( );
597 :
596:2012/02/07(火) 06:07:03.22
>>596の続き
// レスポンスコード
int response_code = con.getResponseCode();
// Datが正常に取得できたら, GZIPを解凍して出力
if( response_code == con.HTTP_OK ){
GZIPInputStream gis = new GZIPInputStream( con.getInputStream() );
InputStreamReader isr = new InputStreamReader( gis, "UTF-8" );
BufferedReader br = new BufferedReader( isr );
// 出力
String line;
while( (line = br.readLine()) != null ) {
System.out.println(line);
}
br.close();
}
レスポンスヘッダのContent-Typeに文字コード渡されてるのに無視してないか?
Javaの外の世界のShift_JISは
Javaの世界だとWindows-31JとかMS932にしないと、
IBM拡張文字等が変換できないので注意。
600 :
596:2012/02/07(火) 07:37:25.77
>>598 ありがとうございます。
2chはShift_JISなので、encode="Shift_JIS"としたら文字化けが解決されました。
ただ、丸数字(@、Aなど)の文字化けは残ってしまいました。
比較のため、Ubuntu上でテキストにShift_JISで丸数字を書き、
それをnkfでUTF-8に変換しましたが、丸数字は文字化けしませんでした。
Javaの仕様なのでしょうか?
javaのShift-JISには@がないから
Vector<Object> vc = new Vector<String>();
コンパイルエラーになるけど、なんでこれが駄目なの?
ジェネリクスをObjectにすりゃ〜、通ってもよさそうな希ガス
混乱するからこんな書き方はする訳がないけどさ
でもこれはOKなんだよな
Vector<? extends Object> vc = new Vector<String>();
それだと vc.add("string") とかできなくなるから。
>>601 ありがとうございます。
現在、Shift_JISをgzipで圧縮したファイルを
Java上で解凍、読み取りをして、Stringにぶち込んでいますが、
Javaが扱えない文字を含んだファイルを、Javaに通した時点でアウトということでしょうか?
Shift_JISのgzip圧縮ファイルの取得、解凍、文字コード(Shift_jis -> UTF-8)は
Linuxのコマンドとかに任せて、
それ以降からJavaで処理する、というを思いつくのですが
これが一番問題が無い(スマート)ですか?
608 :
デフォルトの名無しさん:2012/02/07(火) 18:00:49.98
このコードでOneクラスのget()はインライン展開されますか?
public class VariousTest {
private class One{
private String a = "One";
protected String get(){
return "One";
}
public String getStr(){
return get();
}
public String getStr2(){
return a;
}
}
private class Two extends One{
private String a = "Two";
@Override
protected String get(){
return "Two";
}
}
@Test
public void test() {
One a = new Two();
System.out.println(a.getStr());
System.out.println(a.getStr2());
System.out.println(a.a);
}
}
javacの時点ではされない。
実行時にはされるかもしれない。
610 :
608:2012/02/07(火) 18:05:54.58
私が気になっているのは、get()がprivateならインライン展開されるけど、
protectedだからされないんじゃないか、という事です。
子クラスによって内容を書き換えられる可能性があるせいで。
子クラスと言えど親クラスの処理は書き換えられませんよ。
子クラス側の処理は親クラスと違うものにできるでしょうが。
612 :
608:2012/02/07(火) 18:21:52.91
>>611 まあそうですが、getStr()のバイナリを子クラスと共有してメモリを節約するか、
子クラスと異なるバイナリを持ってget()をインライン展開できるようにするか、
どちらかしか選べないと思うんですよ。
get()がインライン展開されないのなら、TwoはOneのgetStr()をそのまま使えますから。
>>612 実行時にインライン展開するから、やろうと思えば
ある瞬間はTwo#get()をインライン展開、
ある瞬間はOne#get()をインライン展開、
とかできるよ。
遅くなりました。
>>607 気づきませんでした。
>>599 ありがとうございます。
MS932にしたら丸付き数字が文字化けせずに出力されました。
615 :
デフォルトの名無しさん:2012/02/07(火) 23:47:15.18
java se 6 のサポート期間を教えて下さい。
>>617 何これ
ConcurrentHashMapと何が違うの
public static void main(String[] args){
System.out.println(Thread.currentThread().getName());
Thread01 th01 = new Thread01();
th01.start();
}
class Thread01 extends Thread{
public void run(){
略
}
}
th01.start()でスレッドが開始されますが
System.out.println();
new Thread01();
等もmainスレッドの管理下で動作していると考えるべきなんですかね?
常にmainスレッドが動作するので
new Threadをして動かすという時点で、スレッドを複数動かしたのと同じという認識でいいんですかね?
println や new Thread01 はまだ main スレッド
start した時点で 2 つめのスレッドが動く
mainメソッド抜けるとメインスレッド終了するけどね。
public static void main(String[] args){ ... }
staticとString[] argsの意味が未だに分からんけどJAVA歴1年迎えました
それはよかったね
624 :
デフォルトの名無しさん:2012/02/08(水) 18:37:10.95
整数の2次元座標(int x, y)を時計回りに90度回転させたいんですが
なにかいいライブラリとかサンプルとかありますか?
小数値にならないやつで。
>>624 それと同じことを小6の甥っ子が自力でやってたよ
626 :
624:2012/02/08(水) 18:48:09.12
すでに存在するライブラリ等を活用したいのですが有益な情報を知っていたら教えて下さい
3行でできることに大層なライブラリなんか要らん
int oldx = x, oldy = y;
x = -oldy;
y = oldx;
>>624 まずは右手系か左手系かはっきりしてもらおうか
>>624 sin cos
-cos sin
じゃだめなの?
90度
java appletや2dでアニメーションやエージェントとして使うためにdukeのアイコンやらを探してるのですが、そういうジャバ系の素材が置いてあるお薦めのサイトはないでしょうか?
SunがJavaをGPLの下でオープンソース化すると発表したのに合わせて、Javaのマスコット「Duke」もオープンソース化された。ただし、ライセンスはGPLではなくBSDだ。
Sunは「われわれが求めるのは、われわれと同じ敬意を持ってDukeを扱ってくれることだけだ」としている。
hogeActionという名のただのメソッド・・・。
staticなsetter,getter・・・。
jspからのビジネスロジックの呼び出し・・・。
なぜか文字列リテラルで」Strign結合された、
メソッドの大量呼び出し・・・。
もう死んでもいい出つか?
× なぜか文字列リテラルで」Strign結合された、
メソッドの大量呼び出し・・・。
○ なぜか文字列リテラルでSQLを組み立てているロジックの、
大量呼び出し・・・。
職場の話なのか?
学校か何かのグループ制作の話なのか?
要約すると、死んでもいいですかっていう相談でしょ?
いいけどGCされるようにしろよ。
set or getするフィールドがstaticじゃないと仮定した場合、staticなgetter,setterだとなにが困るの?
>>636 そもそもスタティックなセッターゲッターがスタティックなメンバをいじれない
というかどれをいじっていいかわからない
638 :
訂正:2012/02/09(木) 01:35:55.97
>>636 Person tarou = new Person("太郎");
Person hanako = new Person("花子");
Personに仕事を与えるsetJob(String)メソッドが非staticであれば、
tarou.setJob("くつみがき");
hanako.setJob("さらあらい");
というように、それぞれのインスタンスに値を設定できる。
これをstaticにすると、
Person.setJob("ぷろぐらま");
という書き方になるが、
これだと太郎の仕事なのか花子の仕事なのか分からない。
>>638の言ってる「どれをいじっていいかわからない」というのはこういうこと。
太郎のフィールドをいじったらいいのか、花子のフィールドをいじったらいいかわからないということ。
640 :
636:2012/02/09(木) 07:17:17.11
なるほど。実際のコードを例に説明して頂いたおかげでしっくりきました。
>>638 >>639 ありがとうございます。
class Hoge{
public static void main(String args[]){
ArrayList<A> list = new ArrayList<A>();
}
public static void myFunc(ArrayList<B> list){
list.add(new B());
list.add(new C());
}
}
class A{ ・・・ }
class B extends A{ ・・・ }
class C extends B{ ・・・ }
ジェネリックスの質問ですが、Superクラスを指定すれば子クラスは問題なく設定できるなら
myFuncの部分を
public static void myFunc(ArrayList<? extends B> list)
と書く必要がないと思います。
ジェネリックスのワイルドカードって必要なん?
public static void func1(List<B> list)
public static void func2(List<? extends B> list)
List<C> list = new ArrayList<>();
これをfunc1に放り込むとエラー。
func2には放り込むことができる。
なんかぜんぜん違うこと回答してる?
>>642 例えば
ArrayList<Integer> integerList = ............... ;
ArrayList<String> stringList = ............... ;
のようなものがあったとき、
ArrayList<Object> objectList = new ArrayList<Object>();
objectList.addAll(integerList);
objectList.addAll(stringList);
のようなことができる
ジェネリクスマスターした。
そうか。おめでとう。
>>644 解答になってなくねw
ワイルドカードが不要である事を再度証明しただけ?
addAll はどんなマジックを使って引数に ArrayList<Integer> や ArrayList<Integer> を取れるのか?
それがワイルドカードだ
ArrayList<Integer> や ArrayList<String> だった
ワイルドカード【wild card】
ファイル名やディレクトリ名を指定するときに使う、「任意の文字」を意味する特殊文字。
「*」が任意の長さの任意の文字を、「?」が任意の1文字を意味する。「*」「?」はWindowsとUNIXの両方で使用できるほか
UNIXではこの他にいくつかワイルドカードが定義されている。
得意げに何の役にも立たない情報引っ張ってきたな
>>648 それはワイルドカードでなくスーパークラス(継承)の特性じゃね?
ジェネリクスワイルドカードは
<? extends className>
<? super className>
の事だと思ったJava歴5ヶ月の素人
>>641 SUN Design Guidelines などは以前から知ってましたがそういったUXデザインの方針や理論じゃなくて、ジャバを題材にしたアイコンや画像などのリソーシーズを探してます。
>>652 スーパークラスや継承関係ってのは
ArrayList<Integer> → List<Integer> → Collection<Integer>
となるのであって、
ArrayList<Integer> から ArrayList<Object> や List<Object> や Collection<Object> にはならない
>>654 ArrayList<Number> al = new ArrayList<Number>()
al.add(new Integer(10))
al.add(new Double(10.5))
こういうのが可能なのは
Numberが親クラスだからこそ
継承関係の子クラスはジェネリクス表記しても
正常に処理されているという認識なんだけど
>>655 Number は Integer の親だから Number に Integer は渡せる
だから add の引数は Number でいい
でも addAll の方は少し違う
Collection<Number> は Collection<Integer> の親じゃないから Collection<Number> に Collection<Integer> は渡せない
もし addAll の引数が Collection<Number> だったら Collection<Integer> は渡せない
実際の addAll の引数は Collection<? extends Number> だから Collection<Integer> も渡せる
他人の質問に首を突っ込んだけど
そのヒントから俺もジェネリクスマスターになれるかも
明日暇な時間を見つけて実際に組んであれこれやってみる
addAllか
パッケージ内にメインメソッドを持ったクラスだけを作ったファイルがあるのですが
これをルートディレクトリにインポートすることはできないのでしょうか?
<? super T>のsuperって、どんな時に使うんでしたっけ?
ジェネリクスマスター教えて!
661 :
658:2012/02/09(木) 20:37:51.21
例えばtest内にあるTest.java
package test;
public class Test{
public static void main(String args[]){
System.out.println("hello");
}
}これを
ルートディレクトリ内にあるTestes.javaが
import test;
public class Testes{
public static void main(String args[]){
/*ここからクラスTestの内容を読み込めるのでしょうか?*/
キャスト変換について
Object型のサブクラスFooObject,BarObjectがObject型のどちらかがObject型の変数に入ってる場合
Object型のtoStringで ”(パッケージ名).(型名)[〜” って文字列表現取得できると思うんですが
FooObject、BarObjectの名前はわからない場合、その型名でキャストするにはどうすればいいでしょうか?
この部分を変数で指定できたらということです
↓
ようは、somethingObject = (someString) Object;
キャスト出来たとして、なんの型の変数に代入するつもりだ?
>>659 例えば Arrays.sort(T[], Comparator<? super T>)
T = Integer だとする
Integer をソートするには、もちろん、Comparator<Integer> があればいい
でもそれ以外にも、例えば Comparator<Number> があれば、
Number が比較できるのならそれを使って Integer を比較できるだろう?
そういうわけで、 Comparator<? super T> が使われている例でした
>>661 読み込むっていうか、呼ぶだけでしょ?
test.Test.main(args);
>>665 あー、わかりやすい!
ジェネリクスマスターは説明もうまいですね。
ジェネリクスネタが流行ってんなw
>>669 あれ?java cupのロゴもbsdライセンスになったんですか
dukeはbsdだからいわゆるコピー改編自由なので二次的創作物なんか結構あると思ったんですけど、dukeなどキャラクターものがbsdライセンス付与であるという概念は一般的には先進的過ぎて理解できないんですかね。
671 :
638:2012/02/09(木) 23:42:43.46
>>639 わかりやすい補足解説ありがとう
言いたかったことはそれでございます
md.update(bb2);
byte[] bb3 = md.digest();
System.out.println("bb1="+Arrays.toString(bb1));
System.out.println("bb2="+Arrays.toString(bb2));
System.out.println("bb3="+Arrays.toString(bb3));
if(Arrays.equals(bb3,bb1)){
System.out.println("OK.");
FileOutputStream fs1 = new FileOutputStream(lastHashFileName);
ObjectOutputStream os1 = new ObjectOutputStream(fs1);
os1.writeObject(op2);//a big mistake has been fixed
os1.close();
fs1.close();
}else{
System.out.println("NG.");
}
/*サーバ側のプログラムですがこのOKかNGという出力結果を
ObjectOutputStreamでクライアント側に送りたいのですがどうしたらよいでしょうか?*/
今はどうやってクライアント側とやりとりしているんだ
そこに乗せればいいだけじゃないのか
>>663 考えてみたらこれは不可能でした・・・
samethingObjectも型を指定できればなと思いました
>>674 質問のレベルから察して理解しているかどうか怪しいから聞くけど、
ポリモーフィズムを理解してますか?
FooObjectクラスとBarObjectクラスに共通のスーパークラスを指定したり、
同じインタフェースを指定したりすることを知ってますか?
サーバーサイドアプリを開発しています。
int a;
static{
a=10;
}
public static void test(){
System.out.println(a);
}
というプログラムがあったとき aが初期化され10になるはずなのに
そうならない時があります。
どうすればいいですか?
舌を噛んで死ぬ
すみません訂正です int a;ではなく static int a;でした。
こうすればいいですよ
public static void test(){
System.out.println("10");
}
>>679 理解できました。
わかりやすい説明ありがとうございます。
もんもんとしていたものがスッキリしました。
681 :
676:2012/02/10(金) 09:44:44.84
>>680 勝手に自作自演しないでくださいwwww
>>676 a に 10 を代入する前に test が呼ばれれば当然まだ 0 のまま
この前の
>>501 の事例と一緒だろ
staitcイニシャライザ抜ける前にstaticメソッド呼べたっけか?
>>682 多分同じだと思われます。static{}の方が先に実行される工夫などありますか?
あとこの現象が起こるのはサーバーサイドアプリに限られると思います。
普通のjavaアプリケーションで起こった事はありません。
なおこの現象は以下でも起こります。
static int a=10;
static void test(){
System.out.println(a);
a++;
}
この場合11と表示される事がたまにあります。
単に test が 2 回呼ばれてるだけなんじゃね
10と表示されるときはOKですがたまに0や11(2回呼ばれたのかな?)
こうしとけば?
static int a;
static synchronized void test(){
if (a == 0) a = 10;
System.out.println(a);
}
一応環境も書いておきます サーバーサイド tomcat 6.0.18 jdk 1.6.0_11
>>688 そういう手もありますね。しかし
static A a;
static synchronized void test(){
if(a==null)a=new A();
System.out.println(a);
}
class A{ public String toString(){return "10";}}
ClassNotFoundExceptionだったかNoClassDefFoundError
だったか記憶があいまいですが、例外がたまに出た記憶があります。
クラスローダー系のエラーは全然別問題
>>688の方針しかなさそうなので
それで行こうと思いますありがとうございました。
もやもやしてたものがスッキリしました。
サーバーサイドJavaだと、
static変数の値が異なる、同じ名前のクラスがサーバに同居しているのも
大して珍しい話ではない。
リモートデバッガとか使わんの?
サーバーアプリケーションをやっているんですが
getWriterで書き込みブラウザ確認しても
htmlが微妙に反映されません
キャッシュか何かなんですかね
HelloWorldのままです
Javaの勉強するのに参考書を一冊買いたいのだけどおすすめってあります?
一応C言語は少しやりました
とりあえず俺はやさしいJavaで入った
Cの知識があったから、普通に理解できた
>>697 調べてみたけどJava初心者に調度良さそうですね。
早速買ってみます。情報ありです
Cやったのなら
基礎からのJava
プログラミング言語Java
あたりでいいと思うぞ
Cの基本文法を1週間でマスターした俺の
勉強法は入門書を2冊買う事。
読み比べながら勉強するとかなり理解が増す。
プログラミング言語Javaは翻訳がうんこ過ぎて薦められない
Effective Javaに、「実はこの部分は○○という言語仕様なので云々」と
いうのが頻発するが(あれも結構頭にくる)
それが参照しているのはJava言語仕様の方
リファレンスに持っておきたいならJava言語仕様の方を薦める
ついでに独習Javaもうんこといっておこう
うんこはいいから、おすすめを言ってよ
パーフェクトJava。
まじおすすめ
Java Programming Language
Java Language Specification
706 :
696:2012/02/11(土) 14:27:00.89
おすすめ教えてくれるのは嬉しいが数が多いw
とりあえず出てきた名前の本全部メモって本屋行ってきます
>>706 そうですね。おみくじみたいなもんだと考えればいいでしょう。当たるも八卦、当たらぬも八卦。
でも沢山引けばいつかは大吉。
JavaでWebアプリを作る時に、フロント、バックロジック、DBアクセスみたいなレイヤー分割をしているものが多いのですが、
レイヤーを意識して作るとどのような利点があるのでしょうか。
例えば、バックロジックからDBアクセスを分離すると変更に強くなる、というのを書籍で読みましたが、
開発が始まっているのに途中でDBが変わるとか考えにくいし、本当に変わったらロジック側にもなんらかの影響は避けられないんじゃないかなと思ったりして良くわかりませんでした。
>>708 書籍はただのオナニーだからほっとくのが吉
まさか画面生成するコードにビジネスロジックからSQL文までごっちゃにできんから分けるでしょ
712 :
708:2012/02/11(土) 20:17:51.99
レスありがとうございます。
レイヤーを分けることでテストしやすくなるというのはたしかに仰るとおりで納得できました。
わたしはPerl, PHP3からPG入門していて、ほんとに全部同じところにごちゃっと書いてましたので・・・
もう1点質問なのですが、
DBアクセスする場合は、DBのテーブルに対応するクラス(Entity?)を作るとわかりやすいとありました。
挿入、更新、削除はそれでいいのですが、検索する場合は1テーブルだけで検索することって少なくて、
たいていは別のテーブルと結合して情報を取得すると思います。
このような場合、結合したSQLごとにクラスを作るような設計にするのでしょうか。
SQLの数だけクラスが増えると恐ろしいことになりそうなのですが。。
>>708 プログラマのレベルで考え方が変っていく。
俺も最初はゴチャゴチャスパゲッティで書いていた。
レベルが上がったらもっとスッキリ分類して書きたくなった。
さらにレベルが上がったら再利用性向上(他人が見て解りやすい構造)を心がけるようになった。
あと知能の高い奴は最初からそういう境地にあるのかもしれないが
俺は経験でそこに達した。
マルチモニタ環境でサブモニター側にフルスクリーン表示したウィンドウがありまして、
それと違うメインモニター側のアプリケーションをクリック(フォーカス移動)をすると
フルスクリーンが解除されてしまいます。対処方法はありますか?
>>712 DTO,DAOパターンの話なら、俺はMySQLを常用してるけどtableとviewの数だけJava側でクラスを作ってるよ。
結合したSQLの数 = viewの数 だけクラスを増やすのがそんなに恐ろしく数が増えるっていうんなら、
そもそもDBスキーマの設計がアレなんじゃない?
恐ろしい数ってのがどれくらいを意図してるのかがよくわからないが。
GridBagLayoutの中にJListを作成して、ボタンを押すごとに項目を追加するようにしたのですが、項目の追加をする毎にセルがどんどん膨らんでいき他セルを圧迫してしまいます
スクロールバーの設定をしても駄目でした。
理想はどんなに項目を追加してもセルのサイズが変わらずに、スクロールバーが出てきてくれるようにしたいのですがどのようにすれば良いでしょうか。
JList 自体はスクロール機能を持たない
JScrollPane などの中に置く必要があるはず
>>717 その通りでした。JScrollPaneではなくJListを配置していました・・ありがとうございます
>>715 レスが遅くなってすみません。
100本SQLを書いたらクラスが100個増えるという感じです。
同じテーブルを結合するけどselectしているカラムは違うような場合、
1つのクラスに集約するのか別のクラスにするのかなど、実務ではどのようにしているのか気になるところです。
mybatisとかhibernateのようなO/Rマッパーと呼ばれる技術を用いれば上のような問題には気を使わなくとも良くなるのでしょうか?
O/Rマッパーは遅すぎて実用に絶えない
SQLに対応するのはクラスじゃなくてメソッドじゃないの?
722 :
デフォルトの名無しさん:2012/02/12(日) 22:49:32.18
ヒープサイズ10GBで起動して、必要サイズ6GBのはずなのに
OutOfMemoryError : java heap space
って出るんだけどなんで?
3000 * 2個のヘッダやなんやで4GBも使わないでしょ?
Eclipse, JDK, OS全部64ビットで統一されててPCのメモリは15GB
-server -Xms10g -Xmx10g
public void testArraySize(){
byte[][] b1 = new byte[3000][1000000];
byte[][] b2 = new byte[3000][1000000];
}
723 :
デフォルトの名無しさん:2012/02/12(日) 23:06:58.36
配列のサイズ変えながら実際にメモリの使用量調べれば
724 :
デフォルトの名無しさん:2012/02/12(日) 23:30:42.36
Javaの配列って例外投げるって事は
内部でtry〜catchみたいなことしてるの?
内部でtry-catchしてたら例外が外へ出てこないだろ
index
out-of-bounds exception
>>719 結合以前の問題な気がする。
例えば 会員テーブル ( ID, 名前, メールアドレス, is有料会員 )
みたいなテーブルがDBにあったとして、
これに1:1で対応する 会員DAOクラス, 会員DTOクラス がある。
719の言う SELECT * FROM 会員; とか
SELECT ID FROM 会員 WHERE is有料会員 = 1;
とかのSQL文はそれぞれ会員DAOクラスのメソッドとして
getAll会員List() とか get有料会員IDList() とかいう名前で記述するので
SQL文の数だけクラスが増えることにはならない。
>>721 が言ってるのもそういう意味だと思うが。
近頃、DSLというのが流行っているらしいが
これってJavaの視点から見てどうなの
というか、すでに昔から使われているものらしいが
UNIXのシェルスクリプトとして
それから、型推論とか。ハスケルとか
Javaにはない、型が曖昧なPerlなどのスクリプト言語にもない、魅力的な概念だというが、
何か落とし穴があるようなきがする
>>728 とりあえずscalaでもつかってみたら?
730 :
デフォルトの名無しさん:2012/02/13(月) 00:57:52.24
DSLってメジャー言語で便利なフレームワーク作るだけじゃダメなの?
DSLって何?DomainSpecificLanguageならただの分類名だろ。
DynamicSexyLedyに決まってんだろ
それより素朴にSQLをいちいち書いてるのか
例えば固定ならストアドプロシージャでDBに持たせるとか何とかしないと
恐ろしい性能問題を次から次へ起こしそうだ
>>732それを言うなら DynamiteSexyLadyだろが
>>729 それはHaskellよりも優れているのか?
>>733 SQL書かずにO-Rマッピングでは駄目なのか?
>>735 ときどき頼まれてDBのチューニングもするんだが(性能問題が発覚したあと)、
DBからSQLを見てるとこれを書いた奴を呼んでこい、ドタマをカチ割って中を書き直してやるから呼んでこい
と言いたくなるようなSQLを投げてるアプリケーションがある
そういう場合に対応できるのか?
List<? super B> hoge = new ArrayList();
hoge.add( new A()); //error
hoge.add( new B());
class A{}
class B extends A{}
/*
? super クラス
設定したクラスとそのスーパークラスってことなのにAが追加できません
? extends クラス
こっちはサブクラスのはずですし、そもそもaddできないはず
というわけで、super の利用用途(動作)がよく分かりません。
>>737 List<? super B> っていうのは、つまり List<B> または List<A> または List<Object> ってことだ
もしそれが List<B> だったら、 new A() を add するのはマズイだろう? B じゃないものが List<B> に add されてしまう
一方 new B() なら List<B> にも List<A> にも List<Object> にも add して問題ない
>>738 ジェネリックスっていう物をすげぇぇぇぇぇ勘違いしていたかも
<>の中身はCollectionの戻り値の型を決めるのであって
addなど追加する値の型を決めているわけではないって事だよね
こういう事?
list.add( (B)object ) でなく (B)obj = list.add(Object)
740 :
デフォルトの名無しさん:2012/02/13(月) 11:06:55.68
あるDTOクラスのゲッタ・セッタの構造にて、
public class Kurasu1 {
private int hoge;
public void setHoge(int value) {
this.hoge = value;
}
public int getHoge() {
return hoge;
}
}
呼び出し側
Kurasu1 kurasu1 = new Kurasu1();
こういうのがあったとして、
変数hogeのクラス内での初期化はなく、
また一度もkurasu1.setHoge(0)などしていなくても、
いきなりkurasu1.getHoge()を実行しても0が出てくるのはなぜですか?
書いておいてなんだけど戻り値って表現はおかしいな
あとlist.add でなく list そのものの型か
クラスのフィールド変数は初期値を設定してなくても自動的に初期化される
メソッド内の変数は初期化されず、ぬるぽになったりする
\\
\\\
\ ∧_∧
( ´・ω・)
G と) ガッ
>>742 ヽ⌒)、 \人∧__∧
 ̄ (_) >`д´)')
∨つ /
744 :
デフォルトの名無しさん:2012/02/13(月) 14:32:54.14
>>742 ありがとうございます。初期値ゼロが自動で入るんですね。
>>742 いや違うだろ。
勝手に初期値が入るのはプリミティブ型のみ。
クラスはインスタンス化してやらないといつまでもnull。
746 :
デフォルトの名無しさん:2012/02/13(月) 16:27:31.87
>>745 ありがとうございます。いろいろ試して確認しました。
String型とかはnullですね。
747 :
デフォルトの名無しさん:2012/02/13(月) 18:05:00.61
インライン展開されてるかどうかを確認するいい方法ってある?
jvisualvmのサンプラでメソッドが計測結果に出てこなければインライン展開されてる?
748 :
デフォルトの名無しさん:2012/02/13(月) 19:07:13.09
staticで総称型を使ったメソッドって定義できないの?
できるよ
java.util.Collections にすでにそういうのがたくさんあるよ
750 :
デフォルトの名無しさん:2012/02/13(月) 19:19:37.98
総称配列は作れないの?
new T[];
というようなコードが書かせてもらえない
752 :
デフォルトの名無しさん:2012/02/13(月) 20:10:04.19
String"1"をfloatにパースすると1.0 となってしまいます。
"1"の場合は1のfloat
"1.5"の場合は1.5のfloat
とするにはどうすればいいですか?
1のfloatと1.0のfloatって何が違うの?
printfとかって知ってる?
>>752 static Number parse(String str) {
try { return Integer.valueOf(str); } catch (NumberFormatException e) {}
try { return Float.valueOf(str); } catch (NumberFormatException e) {}
throw new NumberFormatException();
}
System.out.println(parse("1").getClass()); //=> class java.lang.Integer
System.out.println(parse("1.0").getClass()); //=> class java.lang.Float
こうすればIntegerとFloatを区別してパースできる。
>>753 floatの精度知ってるの?
朝初心者は黙ってろ。
変換ミス
s/朝初心者/超初心者
あとはNumberオブジェクトの使用箇所でinstanceof使えば、
intとfloatを取り出せるってこと。
ああ、ごめん。
「"1"の場合は1のint」に見えた。
正直すまんかった。
>>753 にもお詫びする。
すぐに一人語りはじめるタイプだね
760 :
デフォルトの名無しさん:2012/02/13(月) 22:28:41.14
聞いてくれ・・・俺ァな・・・・
ぬるぽ→ガッ→変数→初心者
「ぬるぽ」というキーワードは良くないものを呼び込む魔法の言葉
>>752 基本情報処理技術者の勉強することをお勧めするよ。
質問です。
あるjarファイルをサーバにおいて実行すると、
jarの中にあるクラスではなく、サーバにすでにインストール済みの
クラスを参照してしまい、思ったとおりに動作しない事象が発生します。
jarの中のクラスのみを参照するように実行させるには
どのようにすればよいでしょうか?
>>763 ClassLoader周りの仕組みを使う。
試しにURLClassLoaderを使ってみてはどうか。
クラス名を変えればいいよ
URLClassLoader試してみます
おまえらジャバスw
独自ジェネリクスの有用性がわかりません
class Hoge<A,B>{
A hage1;
B hage2;
}
public A getHage(){
return hage1;
}
public B getHage(){
return hage2;
}
}
こんなんじゃいみね〜って気分です。
で
public int tasuHage(){
return hage1 + hage2;
}
みたいのは当然むりなわけで・・・
>>768 ArrayList の改良版を作ろうとかそういうのでもなければあんまり使わないかもね
>>735 なんでHaskellじゃなくてScalaかって、ここがJavaスレだからだよ
ジェネリスクというかテンプレート信者に汚染されたものなど使いたくないわ!
ってことで未だにjava1.4互換を保って開発してます。
と言いつつ実は俺はバリバリのC++テンプレート信者だった過去がある。
いまだにboostだって現役で使われてるし
縦書きだってfreetypeで、ってここandroid
すれじゃなkっったああああ
String[] tests のなかに "aiueo" が入っているかどうかを検索するメソッドってないの?
foreach ( String s in tests){
if同じだよelse違うよ
}
みたいにしなきゃだめ?
>>776 commons 使えるなら ArrayUtils.contains(tests, "aiueo")
標準API縛りなら Arrays.asList(tests).contains("aiueo")
現在SAStrutsを使用してページング処理の勉強をしているのですが、
パッケージでのアクセス関係がいまいちよく分かりません。
Action・Form・Serviceパッケージのみを使用してシステムを作る事はできたのですが、
同じシステムを計算式はutil,Formに関係ない変数はentityに分ける作業で躓いています。
Actionでは、@ActionForm ResourceでFormやServiceを参照できるのですが、
utilでは同じように設定しても参照できません。
FormやServiceをActionと同じようにutilで参照するにはどのようにすれば良いのでしょうか。
Actionクラスにはutilを呼び出すメソッドを記述し、
内部的にはutilやserviceで処理を行いたいと考えています。
初心者という事もあり、言っている事が既におかしいかもしれませんが
参考サイト等でも構いませんのでよろしくお願いします。
>>778 初心者と書いてるが、SAStruts初心者ってよりJava初心者って感じか?
まずutilからFormやActionを@Resourceで見ることができない理由はその必要がないから。
そうしなければならないと感じたのなら、その感覚が間違っている。
SAStrutsの場合、各クラスの責務はこんな感じだ。
ActionForm・・・画面からの入力と画面への出力項目を保持する
Action・・・ActionFormから必要な項目を抜き出し、Serviceに渡す。
Serviceから受け取ったList<Entity>とかEntityを画面に出力する形式に変換する。
Service・・・Actionから受け取った情報を元にデータベースからEntityを取得する。
Entity・・・データベースのテーブルの1レコード
util・・・Action, Service内で共通的に使いたい処理(文字列のtrimなど)を書く。
utilがActionFormやServiceを使うんじゃない、ActionやServiceがutilを使うんだ。
もう一つ、utilは脇役で業務的な処理を書く場所じゃない。主役と脇役を間違っちゃだめだめ。
ここまで読んだら、
>同じシステムを計算式はutil,Formに関係ない変数はentityに分ける作業で躓いています。
というのがどれだけおかしいかもわかるだろ。
たぶんStrutsのことも知らないだろうから、SAStrutsの前にStrutsも勉強しとけー。
責務ってなんのことですか?
下のコードLinux だと使っている locale が正しく表示されるんだけど
Solaris だと (英語環境でも) 常に日本語 ja_JP.UTF-8 と表示されてしまう。
Solarisのデフォルト環境である日本語の設定がどこかに残っているからなのか?
ログイン時に使用言語を指定する方法でも $ LANG=en_US.UTF-8 java test
のようにコマンドラインで指定する方法でもどちらも同じだった。
どうしてだかわかる人教えて! (表示のために行頭に全角スペース文字を使ってます)
//test.java
import java.util.*;
import java.io.*;
public class test {
public static void main(String[] args) {
Locale locale = Locale.getDefault();
System.out.println(locale);
}
}
まずはシステムプロパティuser.languageを晒してもらおうか
>>782 レスありがとう。
使う言語環境に英語を指定しログインして環境変数LANGをみると
$ echo $LANG
en_US.UTF-8
になっているんだけど,JVMのシステムプロパティをみると
user.language=ja
になっている。JVMから環境が見えていないようですね。
そもそもJVMのuser.languageって何をみて判断しているのかな?
LC_ALLに設定しても無理かえ?
>>784 >>785 2chってすごいな。習熟者からこんなすばやいご指導をいただけるとは。
さっそくLC_ALLを設定してみたら見事に正しいlocaleが得られた。
そのときにLC_ALL=en_US.UTF-8なら問題ないのだがLC_ALL=en_GB.UTF-8
(イギリス英語)だと
/bin/bash: warning: setlocale: LC_ALL: cannot change (en_GB.UTF-8)
という警告が出た。LC_ALLにはメジャーなロケールを指定しないとだめなのか、
en_GB.UTF-8 環境をインストールしていない(のかもしれない)ことが問題らしいが
これでまさに
>>785のご指摘どおり setlocale() の戻り値を見ているらしいことが
わかった。
Solaris10のころはLANGの値が直にJVMの環境にも反映されていたように記憶
しているのだが、上の挙動はSolaris11上でのものだ。結局、面倒だがlogin時に
LANGの値をLC_ALLに設定し直すようなことをしなきゃだめなのかな。
いずれにせよSolarisの問題らしいのでここまでで充分です。どうもありがとう。
>>786 多分ロケールが作られて無いだけ。locale -aで設定可能なものがリストされる
localedefでないものを作れた気がするけど確かにスレ違い棚
>>787 確かに Solaris の locale -a には en_GB.UTF-8 がありませんでした。
最後に問題の回避策を報告しておきます。(ksh 使用者の場合) Solaris の ~/.kshrc 内に
LC_ALL=${LANG}
export LC_ALL
を追加したところ login 時の言語環境が JVM のシステムプロパティにも反映されました。
以上、みなさまご指導ありがとうございました。
789 :
デフォルトの名無しさん:2012/02/15(水) 16:38:51.66
課題で
@【コンポーネント名】JFrame
【サイズ】 横600, 縦700
A【コンポーネント名】JMenu
【Item】 新規作成…ファイルの新規作成
開く …ファイルを開く
Cを表示
保存 …名前を付けて保存
Dを表示
閉じる …アプリケーション終了
B【コンポーネント名】JTextArea
C【コンポーネント名】JFileChooser
D【コンポーネント名】JFileChooser
を持ったMemoPadクラスを作らなければならないのですがどう始めたらいいかわかりません。
教えてください
舌を噛んで死ぬ
先生に聞け
好きなクラスメイトに聞いて恋が芽生える。
extern==継承するの反対で、継承されるみたいなキーワードはないでしょうか
もしかしたら、implementsがそれに当たるのかもしれませんが
継承されないキーワード final はあるので、
final がなければ継承されるってことでいかがか
韓国成人6人に1人、この1年間に精神疾患を経験
韓国の成人の6人に1人はこの1年間に精神疾患を経験し、さらに成人の4人に1人は生涯に1度以上、
精神疾患を経験していることが分かった。
保健福祉部が昨年、全国の成人男女およそ6000人を対象に精神疾患実態を調べた結果、精神疾患の
1年間の有病率は16.0%だった。 これは成人6人のうち1人が調査時点前の1年間に精神疾患を経験した
ことを意味する。 性別では男性が16.2%、女性が15.8%で、男性がやや高かった。
また成人4人のうち1人の割合で、これまでに1回以上、精神疾患を経験していることが明らかになった。 ただ、
症状が軽いアルコール・ニコチン中毒が伴う「アルコール・ニコチン使用障害」を除けば、精神疾患の1年有病率は
10.2%、生涯有病率は14.4%に下がる。
政府は精神疾患者の大半が周囲の目を意識して治療を受けていないと把握し、精神健康検診の実施、
精神疾患の細分化など対策づくりに取り組んでいる。
中央日報日本語版: 2012年02月15日16時12分
http://japanese.joins.com/article/313/148313.html?servcode=400§code=410
三項演算子ってExcelのIFそのものだけど、愛用している人っているの?
使い始めれば、結構使い勝手がよさそうだけど変な癖が付きそうなので使ってない
>>798 Cのころは最適化に関係あったりしたんじゃないの?
javaはどうだか知らない。
ま、三重くらいにするとどれだか分からなくなって、if文みたいに字下げすることになったりするな。
Collections.sort(list, new nantara());
でソートしてるんですが、
list.clear();
list.add..........
でlistを書き換えると正しくソートできなくなります。
対処法ってないでしょうか?
書き換えた後にまたソートする
List<String> list = new ArrayList<String>();
list.add("bbb");
list.add("aaa");
list.add("ddd");
list.add("ccc");
Collections.sort(list);
for(String s:list){
System.out.print(s + " ");
}
list.clear();
list.add("20");
list.add("10");
list.add("15");
Collections.sort(list);
for(String s:list){
System.out.print(s + " ");
}
ではちゃんとソートされたから
普通にnew nantara()のcompareToやcompareがおかしいだけじゃね?
>>801 変更時にソートさせたいならTreeを使う手もある。
>>802 書き換えた後にソートするとおかしくなります。
>>803 中身はこんな感じです。
class NantaraSort implements Comparator<Are>{
@Override
public int compare(Are object1, Are object2){
if(object1.getFugafuga() > object2.getFugafuga()){
return 1;
}else if(object1.getFugafuga() < object2.getFugafuga()){
return -1;
}else{
return 0;
}
getFugafugaがfloatのNaN値を返したりすると
A>BでもA<BでもA==Bでもない条件が成立したりするが、
その辺大丈夫なのかこれ?
getFugafuga()の中身も見ないとなんとも言えん。
class ClassA{
private String name;
private int price;
ClassA(String name, int price){
this.name = name;
this.price = price;
}
String getName(){ return this.name; }
int getPrice(){ return this.price; }
@Override
public String toString(){
return this.name;
}
}
//805と同じつもり
class SortA implements Comparator<ClassA>{
@Override
public int compare(ClassA o1,ClassA o2){
if(o1.getPrice() > o2.getPrice()){
return 1;
}else if(o1.getPrice() < o2.getPrice()){
return -1;
}else{
return 0;
}
}
}
List list = new ArrayList();
list.add(new classA("Banana",20));
list.add(new classA("Apple",50));
list.add(new classA("Orange",100));
Collections.sort(list, new SortA());
for(Object o:list){
System.out.print( ((classA)o).toString() + " ");
}
list.clear();
list.add(new classA("Banana",200));
list.add(new classA("Apple",50));
list.add(new classA("Orange",10));
Collections.sort(list, new SortA());
for(Object o:list){
System.out.print( ((classA)o).toString() + " ");
}
}
って感じのを作ったが、値段に応じて商品の並び順が変わったけど?
Servletで動かす場合、メンバ変数をstatic finalにするのはなぜ?
>>808の感じからgetFugafuga()がソート中に変化しそうもない。
おかしいと思い込んでいるだけじゃないかな?どのようにおかしいのだろう?
>>810質問がおかしい。static finalは定数
たまたま設定関連のclassだから定数であるstatic finalってだけか
構造上、パスやらファイル名はインスタンスを生成した瞬間定数で設定されたほうが都合が良いからな
三項演算子はもうすぐ抜ける現場で嫌がらせに使いまくって出て行ったよ
>>806,807
getFugafugaの中身はDouble型の数値です。
>>811 まず始めに、ArrayListでlistをつくり、画面に表示します。
そして、Collectionsでソートします。
この時点でのソートは全く問題なく、何度やっても正常にできています。
しかし、ソート後にlistの中身を書き換え、
再度Collectionsでソートすると、正しくソートされません・・・・・
clearで一度消してaddで追加の部分がおかしいのでは?
808みたいな単純なものならソートが動くはず
ソートされないって事は
追加した順に表示されているの?
>>816 いや、なんというかバラバラな感じになります
概ね数値の大きいものは上の方に、小さいものは下の方にならんでるなぁ
という感じで中途半端な感じなんです。
ソート作業してる途中でやめました。みたいな。
面倒くさいのでそろそろお引き取りください
ログ出力で色々確認していたところ、どうやらlist自体は出来ているようでした。
表示がおかしいのでバグを探してみます。
ありがとうございました。
△ System.out.print( ((classA)o).toString() + " ");
キャスト不要、o == nullの場合に使えない、文字列結合のコストあり
△ System.out.print(o.toString() + " ");
o == nullの時使えない、文字列結合のコストあり
○ System.out.print(o); System.out.print(" ");
腹を切れ
System.out.append(o).append(' ');
825 :
デフォルトの名無しさん:2012/02/16(木) 21:17:11.22
ポイント=(入力文字数-間違い文字数)*60/入力時間*正誤率の2乗
※正誤率=(入力文字数-間違い文字数)/入力文字数
↑のポイントをできるだけ誤差なしで出すにはどうするのがベストだと思いますか。
ちなみにポイントはdouble、他は全部intです。
>>825 その式には致命的な欠陥があるんじゃないか?
たとえば全部間違ったとすれば、当然正誤率は0になるわけだ
そうなるとポイントを求める式でゼロ除算が発生するわけだ
>>825 と思ったけど別にゼロ除算なんか出ないわ
よく見てなかった
>>825 掛けるものと割るものをそれぞれ別々に全部掛けて、最後に 1 回だけ割ればいいんじゃない
829 :
デフォルトの名無しさん:2012/02/17(金) 00:10:26.10
score = (double)Math.pow((inputCount -missCount),3)*60 /Math.pow((time+inputCount),2);
scoreInt = (int)Math.round(score);
こんな感じでしょうか。最終的には四捨五入してint型にしようと思っています。
scoreInt = (int)(score + 0.5);
とかじゃだめなのかね。。
Math.round() の実装を覗いたら
0x1.fffffep-2f とかいうリテラルが出てきた。
こんなの見たこと無い。
16進浮動小数リテラルだな。
コンパイラが勝手に値を丸めたりしないので、精度にうるさい人たちには便利。
へぇぇ、知りませんでした。
0x1234の後に必ずp+1とかp-2とかを付ける必要があるんですね。
もう10年ぐらいJava使っているけど知りませんでした。
機会があったら使ってみます。
Dateクラス(正確にはメソッド)はオワコンってわりに
Calendarクラスだけじゃ日付計算ってできないよね
Dateで現在のデータを取得しながら、操作はCalendarって紛らわしくね?
Date date = new Date();
なんか止めて、Calendarクラスで現在の日付を取れるようにして
Dateクラスを完全にオワコンにすべき
オワクラって言うのが正しいかw
calendar.setTimeInMillis( System.currentTimeMilis() ); とか
あと、生成したばかりのカレンダは現在の日付になっている
じゃあ、Dateクラスなんて利用してないもの?
データベース触るときとか仕方なく使う以外には俺は使ってない
838 :
デフォルトの名無しさん:2012/02/17(金) 16:04:04.33
SAStrutsにてアクションにUtilパッケージ下にある
クラス(変数格納用)をDIしたいのですが、
アクションのパブリックフィールドに
protected XxxxUtil xxxxUtilの宣言と
@Resourceをつけたところ
指定パスのインスタンスがないと言われてしまいます。
サービスやDtoは難なくDIできるので理由が分からず困ってます。
この場合の解決策はなんでしょうか?
携帯からなので読みづらいかもしれませんがよろしくお願いします。
>>834 Calendarクラスは大量にメモリを使用する上にメモリリークしている。
自作した方がいいんだけどメンドクサイのでやっていない。
逆にDateメソッドを改良して復活すれば良くね?
逆にDateメソッドを改良して復活すれば良くね?
APIは互換性を保たないといけないからね。
根本から直すことができない。
いいタイミングで互換性を断ち切って、
文法と全APIを直してほしい。
それ別の言語だから。
何を言ってるんだ。
Pythonだって2.xと3.xで互換ないし、
Rubyだって1.8と1.9で互換ない。
断ち切ろうと思えば断ち切れる。
ただ、断ち切ると失うものも大きいだけ。
がんばってくださいね^^
普通にDate使ってるけど時々Dateがイミュータブルじゃないのが気になる
でもやっぱりイミュータブルみたいに使う
質問させていただきたいです。htmlに記述するスクリプトで
<!--
function chgColor()
{
if(document.getElementById)
{
document.getElementById("box").style.color = "#575757";
}
}
// -->
として、"box"が複数あり、
<div id = "subbox03">
<form><input type="button" value="1" onclick="chgColor()"></form>
<p>AAAAAAAA</p>
</div>
<div id = "subbox03">
<form><input type="button" value="2" onclick="chgColor()"></form>
<p>BBBBBBBBB</p>
</div>
・
・
文字色は同じなのですが、1をクリックした時はAAAAの文字色を変更、
2をクリックした時はBBBの文字色を変更するやり方がわかりません。
引数を渡してやればいいのだと思いますが、どうやって渡してやればよいのでしょうか。
初歩的な質問で申し訳ありません。
>>847 すみません、ミスです"subbox03"の箇所は全て"box"です
JavaScriptスレへどうぞ
>>849 申し訳有りません、勘違いしていました。失礼します
>>736 それもそのSQL投げるところをすべてORマッピングでラッピングするとか…
大変だけどね
>>772 それもわかるけどScalaってそんなに凄いのか
何がいいのかものすごく気になる
>>852 なるほど
だからファイルが存在しないんですねえ
初心者ですいません、これはどれをダウンロードしたらいいんでしょうか
>>856 たびたびすいませんでした
やっとインストールすることができました
ありがとうございました
>>773 > ジェネリスクというかテンプレート信者に汚染されたものなど使いたくないわ!
> ってことで未だにjava1.4互換を保って開発してます。
それも困るわな
C++テンプレートよりもかなり安全でものすごく便利なのに
>>858 ジェネリクスなんてテンプレートの超絶劣化コピーとしか言いようがないのに、具体的に何が安全で何が便利?
少なくともメタプログラミングにジェネリクスは使えない
860 :
デフォルトの名無しさん:2012/02/18(土) 09:59:59.67
FTPでファイルを取得し、その新規で保存されたファイルを参照するにはどのようにプログラムを組めばいいでしょうか?
是非聞かせてください。
なめてんの
862 :
デフォルトの名無しさん:2012/02/18(土) 10:03:28.28
日本語のjavadocはもうないんですか?
863 :
デフォルトの名無しさん:2012/02/18(土) 10:13:44.34
>>860です
Javaで組むところは、フォルダに新たに加わった物を参照するところです。
現在あるファイルを外部ファイルに保存しておいてそれを参照し、差し引いて考えるべきなんでしょうか?
また、カレントディレクトリではなく違うディレクトリを参照するにはどうすればいいでしょうか?
そんなのは質問するまでもない。
オッス!オラ狂う
>>859 いつものあれが便利じゃないか
コレクションでは逆に不便なのか?
自作するのが大変だがうまく自作に成功すれば
ものすごく活用できる
キャストの手間がかからない点だな
最新の32bitのjavaインストールしようとすると
"インストールを完了するのに必要なDLLを事項できませんでした"
ってアラートがでてセットアップできない。
ググって対策しても治らず。 どうすればインストールできるの?
>>869 「最新のJava」でエスパーできる奴がいるとでも思ってるの?
そもそもあんたみたいな雑魚が管理者権限持ってるの?
j7u2とj6u30までなら、何の問題もなく
インストール出来たけどな、j7u3とj6u31は
まだ試してない。
>>870 確かにいないよね 抜けてたわ
追記させていただくと
>>869の「最新のjava」ってのはVersion 6 Update 31の事です。
管理者権限も持ってます
873 :
デフォルトの名無しさん:2012/02/18(土) 15:55:07.54
ファイルに書き込む度に、ファイルの内容をカラにして書き込むようにするにはどうすればいいんでしょうか?
~.write("")って書き込むと初期化できると思ってたんですが、追記されてしまいます。
>>868 その程度の用途ならC++も同程度に安全で便利だろう?
875 :
デフォルトの名無しさん:2012/02/18(土) 17:35:20.26
long t = System.currentTimeMillis();
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
System.out.println(System.currentTimeMillis() - t);
これで結果が100以下になることがあります。何でですか?
>>868 人間は集中力を得るためには単純作業が効果的だから俺は以下を黙々と書く。
Iterator i=a.iterator();
while(i.hasNext()){
X x=(X)i.next();
}
>>876 スコープを汚染するな!
for (Iterator i = a.iterator(); i.hasNext(); ) {
X x = (X)i.next();
}
>>873 いったん閉じて開き直すとか
>>875 currentTimeMillisの精度が低いんじゃね
>>873 java.nio.channnels.FileChannel の truncate() は三鷹?
882 :
デフォルトの名無しさん:2012/02/18(土) 23:27:38.56
同じオブジェクト内のメソッドAとBで
AがsynchronziedでBがsynchronizedじゃない時、
Aにsynchronizedがついている事でBのパフォーマンスが低下する事はありうる?
>>872 >
>>870 > 確かにいないよね 抜けてたわ
> 追記させていただくと
>>869の「最新のjava」ってのはVersion 6 Update 31の事です。
どこが最新なんだw
普通最新のJavaといったらJava 7 update3のことだろ
>>883 それなら
>>870は馬鹿ってことでOK?
>「最新のJava」でエスパーできる奴がいるとでも思ってるの?
885 :
デフォルトの名無しさん:2012/02/19(日) 01:38:11.04
>>789 の問題を、練習でソース作ってみたんですが、これに機能実装させるにはどうしたらいいのでしょうか?
メニューの機能動くようにならなくて…
886 :
デフォルトの名無しさん:2012/02/19(日) 01:39:22.45
バージョンどんどんアップして行って対応するの大変だな
デバッグが一番大変だわ
全部のバージョンのエミュで起動してテストしては、治して
Androidはオワコンだね
>>884 バカはJava6が最新だと思ってた質問者
だが「最新のJava」なんて曖昧な表現は誤解を招くから
そんな曖昧な表現を使う質問者はほとんど相手にされなくなるってことを自覚すべきだ、
>>887 Javaは後方互換性があるからさほど気にならない
問題はサードパーティ製のライブラリやフレームワークのバージョンアップ
EclipseなどのIDEのバージョンアップ
Eclipseは3.2以降から不安定になってバージョンアップするたびにプラグインの入れなおし
プラグインどうしの互換性も怪しくなることが多くてEclipseを一からインストールしなおすとか
何度もつらい体験をした
あとJava 5 が出た頃、Genericsやアノテーションといった機能が登場して当時は興奮したが
Eclipseが即座には対応してくれなくて、それらの機能をEclipseで堪能することができなかった
また各種ライブラリ、フレームワークも同様にJava 5 のGenericsあアノテーション対応が遅れて
Java 5 の新機能が生かされるまで時間がかかった。
Apache Common CollectionsなんかJava 5 が登場してかなり時間が過経過しても
Genericsやアノテーションには即座に対応してくれなかったものだ。
対応するまで時間がかかるかかる。
> 普通最新のJavaといったらJava 7 update3のことだろ
「最新のJava」=Java 7 update3 でしょ。
「最新のJava」のどこが曖昧な表現なの?
> 普通最新のJavaといったらJava 7 update3のことだろ
> だが「最新のJava」なんて曖昧な表現は誤解を招くから
この2つは矛盾してるよ。
前者は「最新のJava」=「Java 7 update3」と言い切ってるのに、
後者は「最新のJava」= 曖昧 になってる。
言ってることが滅茶苦茶。
まあ最初の質問の仕方がダメダメですからね。
あいからわず雑魚ばっかりだなw
いまさら横槍スマソ。
ただの暇つぶしに長文書いてみただけさ。
>>884 「最新のJava」=Java 7 update3
「最新のJava」=Java 6 update31
"最新"って表現が含む意味次第でどっちも正解にも不正解にもなる。
おまけにその含みをどう捉えるか行間読んで答えてあげようにも、
ヒントが"javaインストール"っちゅうこれまた曖昧な話しかない。
だから親切な
>>870が指摘してくれたのさ。
まぁ質問文の時点で、
質問者はJREとかJDKとか言ってもよくわからない情報弱者さんで間違いなさそうだから、
java.comのトップにあるエンドユーザ向けダウンロードのものって考えてあげられなくもないけど。
(蛇足)
>>883のように「普通最新といったら」なんてどんな場合の"普通"の話をしてるのか相互理解がないまま、
勝手に自己完結して"普通"と言い放ってしまうのはデキる技術者のすることじゃない。
>>895 そういうことを言おうとしたけど面倒だからやめておいた。
わざわざ書いてくれてありがとう。
まあ>883の余計な茶々がなければ
「最新のJava」→「最新っていわれてもわからん」→「Java6の最新です」
で終わっていた話
898 :
デフォルトの名無しさん:2012/02/19(日) 09:31:16.60
JavaScriptでリアルタイムで更新されてるんなら
そのまままねすれば委員で内科医
USD/JPYを80円強でSしとけ
901 :
デフォルトの名無しさん:2012/02/19(日) 09:49:21.96
test(? extends ClassName)はClassNameまたは継承したクラスはOKという意味だと思います。
しかし、?を単体で使っている時がありますが、単体で使った場合どういう意味なのですか?
なぜ、これはダメなの?
ArrayList<?> l = new ArrayList<String>();
? 単体は Object でも String でも Integer でもなんでも当てはまるという意味
別にダメくないよ
ただ何も add できないから役に立たないだけ
904 :
902:2012/02/19(日) 10:52:22.47
>>903 >? 単体は Object でも String でも Integer でもなんでも当てはまるという意味
それでは、class ClassName<T>のTと?の違いは何ですか?
何か名前を付けないと、class の中でその型名を参照できないだろ
T でも E でも X でも Hoge なんでもいいんだ
906 :
902:2012/02/19(日) 11:15:47.44
SWTにてJavaアプリを作っているのですが、処理中にウィンドウを非アクティブにした後
アクティブに戻すと、処理が終るまで一切画面の更新を行ってくれないのですが
強制的に画面全体の再描画をする方法はありますか?
人生相談に載ってください。
某企業で害虫でSEをやっているのですが、すごくむなしいです。
JavaとStrutsやらSpringやらを掛け合わせたオリジナルWebフレームワークを使って
Web上でシステムを作っているのですが、
10年ほど前の低性能な開発環境のうえ十分な資料もなくとても作りづらいです。
しかし、スケジュール管理や仕様作成、管理などはExcelとVBAで作られたアプリが使われているのです。
DBにもつなげれているし、デバッグ機能もついているのだから、なんでこっちでやらないのかと叫びたくてしょうがありません。
Excel上で画面を作れるならいちいちJSPで細かくタグなんて打たなくても良いのに、
バク重のEclipseやTomcatの起動もXMLの記述も、もうヤダ。
なんでわざわざ面倒くさいjavaなんて使わなけりゃいけないんだと小2ヶ月…。
帰りの電車で貨物列車がとおったとき飛び降りたくなります…。
さっさと死ねよ
Java叩きになってないぞ
やり直し
>>908 再描画のための java.awt.Component#repaint() ってのがあるけど、
再描画するのはEDTだから、EDTの手が空いてない時は再描画できない。
再描画したければ重い処理を別スレッドでやることですな。
913 :
デフォルトの名無しさん:2012/02/19(日) 16:43:23.34
>>907 ありがとうございます。
わからなかったところが解決しました。
高校の課題でわからないところがあるので教えて欲しいです。
■システム概要
ユーザがキャンパス上で指定した座標に点を描画できる。
(マウスドラッグ状態で連続して点を描画できる)
また、カラーパレットがあり、描画する色をクリックすることで選択できる。
なお選択できる色は、黒、赤、黄、青、緑、白の6色。
■UI概要
http://www1.axfc.net/uploader/Img/so/136309 こんな感じの問題で
キャンパスは出来たのですがカラーパレットが作れなく、
うまくキャンパスに色が付けれません。どうしたらいいでしょうか?
一応出来たソースはこんな感じです。
http://ll.la/SWF)
ユーストリームの広告がホップアップしてきたら自動で消すスクリプトの作り方を教えてください
わかりました。板違いすいませんでした。
920 :
909:2012/02/19(日) 18:16:04.49
>>910 ひ、酷い…。
スレタイに相談って書いてあるから深く思いつめてる悩みをぶちあけたのに、死ねだなんて…。
>>911 Javaは叩いてません。趣味でゲーム作ってるくらい好きです。
叩いてるのは配属先の会社です。害虫、害虫と私を虐げるあのにっくき大企業です。
Javaのjの字も知らない、脳みそが20年前で止まったCOBOL脳共に奴隷のように使われて、
意味不明な仕様書を書く設計に振り回されて、設計修正は遅いのにロジックのミスを延々と突いてきて、
同じJavaの先輩もわからないことを質問すると、聞き方が悪い、メモの採り方が悪い、学び方が悪い、生き方が悪いだの、
私をこけにする人間ばかり。毎夜毎夜うなされてほんとう死にたいですよそりゃ。
でも少しでも解決の糸口になるんじゃないかとここでなんとなく相談してみたんですよ。
>>920 なんてことだ、真性なのかこの荒らし
マ板でやれ糞ゴミ
転職してもいいんだよ。死んでもいいんだよ。
そこにいるのはお前が選択した結果。
あと、おっさんを能なしだと思うのは勝手だけど、
それを表にだすのはやめたほうがいい。
オレもお前も20年すれば同じ立場だ。
COBOL脳だってそれなりの筋道があってその仕様を出してくるのに
それを端から否定する目線で見てるんじゃないの?
そういうのってすけて見えるもんだけど、
自分が歩み寄ると、意外と相手も歩み寄ってくるもんだ。
でも、スレの趣旨と合致しているかどうかも見分けがつかないなら
きっとその上司の言ってることのほうが合ってるよ。
ポエム板かと思ったわ
COBOL脳には筋道なんてありません
925 :
909:2012/02/19(日) 20:29:33.96
>>922 はい、確かに私はJAVAができない人をさげすんでみてる気がします。
上司の言ってることも正しいのでしょう。
しかし、私は素直にそれに従う気持ちになれないのです。
私は高校、大学とプログラミング三昧でした。
大学の研究では処理をいかに早く、バイナリをいかに早く解読するかを突き詰めていました。
書く文章は数式や論理式、計算式とその解説でした。
とにかくプログラムで1と0の計算をしていたかった。
それが社会に出てみたらどうでしょう。
仕事の中でプログラミングが1割未満、残りの9割は仕様書を書き、眺めるばかり。
コーディングもInput Process Outputという単純な式でif文の羅列ばかり。
右から流れてきた仕様書をパソコンに打ち込んで左の人に報告という作業の繰り返し。
大学で論理や数式を学んだ結果がこれだなんて、なんのために今まで勉強してきたのやら。
『因数分解なんてできて何の意味があるんだ』という言葉の意味がわかります。
必要なのは設計書を書く知識だけ。
今の日本の情報教育は間違っていると思います。
情報リテラシー、プログラミング、ハードウェア、
こんなの学んだってサラリーマンのデスクワークな開発には何の役にもたたない。
それより必要なのは、UMLがかけてガントチャートがかけてIDEF1XなER図がかける知識です。
使うソフトはVisualStudioもEclipseもいらない。図をかくためにExcelだけ覚えておけばいいでしょう。
それなのにスーパーハッカーの夢を見させて、プログラミングとアルゴリズムを教える。
926 :
909:2012/02/19(日) 20:30:38.98
そんな教育に染まってしまった私は、もはや今の現場に夢が持てません。
なりたいと思う先輩がいません。確かに仕事をものすごく効率的にこなす人がいますが、
その人の何がすごいかというと、設計書を書くためにExcelのショートカットキーをこなせて、
必要なソースを探し当てるためにEclipseの機能を理解してるだけ。
ほかのできる人もそうです。今の職場につかりきってるだけなんだなって。
社内でしか通じない狭い範囲の古くから続く慣習をただひたすら覚えてきたから評価されてる。
私は、そんなふうに評価される人間になりたいと思えないのです。
だからCOBOLしか使えない人間などとさげすんでしまうのでしょう。
でも、しょうがないじゃないですか。
いくら周りがその人をすごいと言っても、私は微塵もこんな人間になりたいと思えないのだから。
私がなりたいと思う将来像は所詮、趣味の範疇のプログラマーのことだったのでしょう。
毎日毎日パソコン付け、こんなのは社会は必要としない。
そんなの自分の部屋の中に引きこもってやってろってことなんでしょう。
そう思うと社会が私を望んでない、私も社会を望んでないんだなと思います。
将来のビジョンが作れず、むなしく明日も出社するのかと嘆きながら、うなされながら寝るんですよ今日も。
ドワンゴとか入ればいいと思うよ。
>>926 俺は日銭しか稼いで無いけど
年がら年中好きなプログラミングをやっているから幸せだよ。
でも凡人に俺のような生き方はおすすめできない。
俺ほど孤独に強くそして独創性の溢れる人間は少ないからな。
ちょっと独創性がありすぎてこの板で全く発言できない。
何故なら皆さんが凡人過ぎて可哀想だから。
>>925 >大学で論理や数式を学んだ結果がこれだなんて、なんのために今まで勉強してきたのやら。
>今の日本の情報教育は間違っていると思います。
悪気は無いが…
君の発言は意訳すると「私は井戸から出たことなかった自信過剰な低脳蛙です」ってのが現実。
思うに君は、学生時代は人一倍プログラミングできて周りに「凄いヤツ」ってチヤホヤされてたんでしょ。
それでカンチガイしちゃった自信過剰なヤツが社会に出て1〜2年目、君と全く同じことを言って消える。
そんなことくらい学生時代に知っとけよ、ろくに業界研究もしないで就職決めたからそうなる。
情報教育が間違ってるなんて苦しいイイワケしてても成長しないぜ。
評価されないのはお前に自分が思ってるほど実力がないから、そこで評価される人間になっても嬉しくないってのは逃げでしかない。
君の得意な技術一筋の仕事しても、Excelでお上手に図書いてるそいつらにも勝てないよ君は、本質が何もみえちゃいないからな。
>>877 それでもスコープを汚染しているくせに。スコープを汚染するな!とは無能なり。
>>934バーカ
Iterator i;
for(Iterator i;;){}
エラー
その場合汚染しているのは最初のiだと思うけど。
まあいいや。
あとは馬鹿同士でがんばってくれ。
937 :
909:2012/02/19(日) 23:08:39.79
>>928 いいですね。その日暮らしで生きていきたいものですが、家族が許してくれないという壁が大きいですね。
年金とか税金とか払えるのかって、生涯賃金しっかり稼げるのかって。
>>930 はい自意識過剰です。Fラン大学を周りからちやほやされて上位3位で卒業しましたよ。
でもそうやって育ててきたのはやっぱり学校だと思いますよ。
会社がほしい人材と学校の教育方針が思いっきりずれてるとよく言われてますし、
パソコン学んだから仕事できるんだと言われても、
まったく未経験者だけど設計書書いてバッチ書いてる人もいますし。
結局、高校や大学で教ええるパソコンの知識なんて趣味でプログラム作るためのもので、
社会ではまったく役立たないとやっぱり思います。
配属先の会社、部署までを入社前に調べられるのは内通者か企業スパイだけでしょ。
会社はインターンとか会社説明では現実をおもいっきりぼかしてる。
業界研究なんてものは営業向けだけ、わかることはその会社の営業が客先にどうやって頭を下げているかしかないですよ。
みんなだまされた気分になって、イヤイヤでやめるやめるって言いながら仕事やってくんでしょ。
1〜3年でやめる人間は職務経験者3年以上じゃないから社会的に別枠にされるだけで
5年でやめる人間も、10年でやめる人間も結局イヤだからやめただけ。
ずっと続けてる人も嫌だけど何かしら吹っ切れるタイミングがないから続けてるだけかと。
配属先は2ヶ月弱なんで自分の評価は現状、可もなく不可もなくだと思いますし、
これからも上司のイヤミに耐えてれば会社に入れるレベルの評価はもらっていけるかなと思います。
私の将来像を描くなら、今の配属先で超絶ストレスたまりながらも
やめると言えずにグダグダグダ仕事を続けるって感じですかね。
社会人なんだから誰かが「すごいね」なんていって褒めてくれるわけないですし、
他人の評価が低くても、クビレベルの評価や整理解雇が無い限り働き続けて、
自分は成長したいとも思っていないのでショートカットキー覚えて少し効率が上がる程度、
朝、会社いって夜帰宅の繰り返し。
まったくだ
Javaと関係ない話は他所へ行きたまえ
Javaの質問でも相談でもねえ
死ねよカス
>>937 本質が読み取れない残念なヤツだってことは十分わかったからもう黙っとけ
おまえはどこ行って何やっても誰のせいだ会社のせいだ文句タレるだけ、どこ行っても変わらんよ
>私の将来像を描くなら、今の配属先で超絶ストレスたまりながらも
>やめると言えずにグダグダグダ仕事を続けるって感じですかね。
羨まれるようないい会社だな、カスにも仕事くれんだから感謝して働け
>社会人なんだから誰かが「すごいね」なんていって褒めてくれるわけないですし、
そりゃおまえはなw
>自分は成長したいとも思っていないのでショートカットキー覚えて少し効率が上がる程度、
一生コンビニでバイトでもしてろ
お前にITは向いてない
自分の中で結論出ていて、それを変えるつもりもさらさらないのに
相談するという体で持論をぶちまけるだけ。
三項演算子からやり直しだな。
話ぶったぎりで質問
テキストデータから文字列を取得し
その文字列の長さを判断して、TAB区切りがしたい
AAAAAA AA AAA
AAAA AAAAA AAA
(2ちゃん投稿だとちょっとズレるがこういう感じ)
static double Tab(String str){
double count;
count = 10 - Math.ceil((str.getBytes().length)/8);
return count;
}
全角半角交じりを考慮したらlength()は駄目っぽいのでgetBytes()
そしてメモ帳標準のTABの文字列(バイト数)が不明ながら、8文字?8バイト?っぽいので
8で割って、繰上げ。
であれこれ考えて、文字列の長さに応じてTabを追加するメソッドを作ってみたけど頓挫した。
もっとあっさり出来そうな・・・出来ないような・・
>>943 何がしたいかさっぱりわからない。
Tab関数の引数に何入れるの?
Tab関数に"AAAAAAAAAAAAAAAAAAAA"突っ込んだら3.0が返ってくるとけど、これ何に使うの?
あとテキストが2行あるとして、
2行目のデータが1行目のタブの数に影響を与えるの?
例えばデータが
A A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA A
の場合、1行目のスペースの間にタブをいくつも入れるの?
寧ろなんでそんなことしたいのか問い詰めたい
Name1 Name2 Address
ああああ AA BBBB
あA ああああAA えB
のようなデータを読み取り、splitってぶった切って
その文字列に"\t"をつける。(その数を調べるメソッドが目的)
そしてタブ区切りで表のようなにコンソール表示したいというのが目的です。
スペース区切りでなくタブ区切りでファイルを保存すればいいだけじゃんw
と、突っ込まれそうですがJavaの文字列操作の練習も兼ねているので
>>944 一番最後の質問は一番長い文字列に合わせてタブが増える事になるので
1行目のスペースの間のタブはものすごく多くなる計算をさせるつもりです。
一番長い文字列かを調べるのはとりあえず無しで、一番長い文字列を考えてリテラルな値を入れる
count = 10 - の10がその値です。
>>946 練習兼ねてるんじゃ仕方ないな
スレ住人ともども何も言わず生暖かく見守る他ないな
コンソールに表形式ならタブじゃなくスペース埋めで String.format("%-10s", str) とかでいいでしょ
タブは環境によって長さが変わるんだから見た目合わせるのに使うもんじゃない
Tab関数に"AAAAAAAAAAAAAAAAAAAA"突っ込んだら3.0じゃなくて7.0か。
> スペース区切りでなくタブ区切りでファイルを保存すればいいだけじゃんw
最後の出力はタブ区切りじゃなくてスペース区切りってことかな?
>>943 のTab関数で返ってきた数値分だけスペース付ければいいだけじゃん。
950 :
948:2012/02/20(月) 00:28:34.65
あ、全角文字考慮するとフィールド幅は調整しないとだめか
String.format("%-" + (10 - str.getBytes().length + str.length()) + "s", str) みたいな感じで(Shift JISなどの場合)
サロゲートペアとか言い出す奴も居るから気をつけろ
フォントに拠るとか言い出す奴も居るから気をつけろ
いや、8で割ってるからTab関数はタブ数を返すのか。
その場合でも、Tab関数の戻り値の分だけタブ付ければいいだけじゃん。
何が難しいんだろう。
これで生き残れ
スマートフォンアプリを中心に売る
サーバーはクラウド VPSを借りる
電話はスマートフォンSkype
オフィスはコワーキングスペースを借りる
http://bit .ly/sHz1UU
または
地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこでアプリを開発する
http://bit .ly/iLIpJa
http://bit .ly/m7nkew
>>953 質問者も回答者達の発言からも
「タブのバイト数=8」が確実ではなく、環境に依存するって話
956 :
デフォルトの名無しさん:2012/02/20(月) 01:41:41.67
これまでDB関係の仕事ばっかりで、
プログラミングと言ったらVBAくらいした書いたことないのですが、
今度Javaいじることになりそうです。
詳しいことがまだわからないのですがいまからgkbrです。。
VBAにはそれなりに自信あるのですが、
VBAの知識・考え方でJavaやる時にも役立つことってありますか?
教えてください。よろしくお願いします。
やってみればいいじゃないか・・・
958 :
956:2012/02/20(月) 01:50:25.94
>>957 少し目を通したんですが、なんぞコレっていう感じで…。
違うとは思いつつ、何か共通点があるんじゃないか、とか思って…。
VBA知識を生かして早めに習得する方法とかあればいいかな、と思って書き込みました。
自称VBAに自信がある、がどの程度かわからんからなあ
VBAにもクラスあるから当然使ってたんだろ?それなら特に困ることないだろ
960 :
956:2012/02/20(月) 02:17:19.74
クラスモジュールとか使ってたけれど、
Javaって何か難しそうで。。
思考様式の違いというか、VBAとは格が違うと言うか…。
本格的なオブジェクト指向とか。
VBAと関連付けて学習するのが良しなのでしょうか。
vbaでもオブジェクト思考らしい設計できてた人なら通用するが…
>>960 両方使いこなすがJavaを先に知った立場からの推測だが
関連づけない方がいいと思うぞ
なぜなら、VBAのクラスはエセなので
関連づけは縮退させることな等しくなり
本質的な理解の妨げになると考えるからだ
>>960 .でメソッド呼ぶって分かってればOK
VBAに自信があるなら
新規でフレームワーク作るとかじゃなければ
既存コード見てれば大抵わかる
あとは標準モジュールはJavaでいうstatic classで
VBAのImplementsはJavaでいうインターフェース継承とか
例外(Exception)処理の仕組みは勉強しといたほうがいい。
それもDB関係の仕事でストアド書いてたんなら仕組みは同じ
>>960 VBAの言語仕様とは関連付ける必要はない、というか無意味あるいは弊害にしかならん。
VBAとJavaに言語仕様上の関連は一切無いんだから。
じゃあ0からの勉強かっつうとそうではない。
VBAで初めて開発学ぶにしたって言語仕様云々以前かVBAに触りながら、オブジェクトとは、モジュールとは、クラスとは、インスタンスとはといった情報技術の概念を学んだでしょ。
その概念が、VBAやJavaの言語仕様の中でどう実装されているかが違うだけ。
概念はJavaの方が広く深くカバーしてる。
VBAを通して学んだ技術の概念はすべて活かしつつ、より広げながらJavaの言語仕様を覚えればいいだけ。
長々と書いちゃったけど、一言にまとめると「
>>963に同意」。
一年未満の正社員で働く職場を間違えたなら、コンビニバイトを二週間で辞めるのと同じでさっさと辞めて他を探した方がいいんじゃないか。
しかし日本で人材派遣登録や契約社員をやってるなら、スキルだ資格だ云々と意地になっても所詮年収300万程度なんだし、JAVA業界界隈では所詮ITドカタと後ろ指さされるレベルの負け組でしかない。
Fラン大学ネタはもう飽きたけどせっかく大学卒業して年収300万程度の職場しか見つからないなら、ふがいない業界を選んだ自分について素直に諦めて日本型就業制度の歯車の一部(派遣コボラー)に染まっていく道もある。