【初心者】Java質問・相談スレッド118【歓迎】
at TECH
1:デフォルトの名無しさん
08/08/10 18:21:51
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 URLリンク(pc11.2ch.net)
Webプログラミング URLリンク(pc11.2ch.net)
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
URLリンク(www.wikiroom.com)
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド116【歓迎】
スレリンク(tech板)
次スレは>>990あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
URLリンク(www.wikiroom.com)
2:デフォルトの名無しさん
08/08/10 18:22:34
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 7
スレリンク(tech板)l50
■ SWT は --
Java 高速GUI SWT 3
スレリンク(tech板)l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part18
スレリンク(tech板)l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
スレリンク(tech板)l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 65 ★★
スレリンク(tech板)l50
**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
URLリンク(sdc.sun.co.jp)
■ J2SE 5.0 (1.5.0)
URLリンク(java.sun.com)
■ Java SE 6
URLリンク(java.sun.com)
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
URLリンク(www.java.com)
3:デフォルトの名無しさん
08/08/10 18:23:11
すまんスレタイ微妙に失敗しちまった
4:デフォルトの名無しさん
08/08/10 18:25:29
あーしかもテンプレの前スレの所も変えてねえ
マジでゴメン
5:デフォルトの名無しさん
08/08/10 18:57:34
乙
同期に失敗したか・・・・・
6:デフォルトの名無しさん
08/08/11 02:00:42
プロパティファイルについての質問です。
プロパティファイルを読み込んでくれるファイル位置と優先順序はどうなっているんでしょうか?
warパッケージやearパッケージの際にパッケージにプロパティファイルを含めずあとで入れ替えられるようにするにはどうすればいいんでしょうか
7:デフォルトの名無しさん
08/08/11 07:17:12
1. 入れ替えてbuildする
2. 入れ替える必要があるならば最初から外部ファイルにする
8:デフォルトの名無しさん
08/08/11 10:23:54
javaで積分するにはどうやってやるんですか?
9:デフォルトの名無しさん
08/08/11 10:36:14
親のクラスであるメソッドをsynchronizedしていても、そのクラスを拡張したクラスでオーバーライドしてsynchronizedしていなければ同期化されないのでしょうか?
class Parent {
public synchronized void method(){
}
}
class Child extends Parent{
public void method(){
// ここが同期されるか
}
}
10:デフォルトの名無しさん
08/08/11 10:37:24
自分で試したら?
11:デフォルトの名無しさん
08/08/11 11:14:25
2つのabstractクラスがあります。ClassAとListAとします。
ListAは以下のようになっています。
public abstract ListA<E extends ClassA> implements List<E> { ... }
ClassAにはそのクラスが扱うデータの名前を返すabstractメソッドがあります。
public abstract String getObjectName();
このメソッドが返す値は静的な値ですがstaticメソッドはabstractに出来ないので、
普通のクラスメソッドになっています。
public class ClassB extends ClassA {
...
public String getObjectName () { return "obj b"; }
}
ClassAとListAの具象クラスは常にペアで使われます。
public class ListB extends ListA<ClassB> { ... }
ここで質問なんですが、ListAの内部でもClassAのgetObjectName()で返される値を
使いたいのですが、今はListAでも同じ名前のabstractメソッドgetObjectNameを定義し、
ListBで全く同じ値を返すように実装しています。
public class ListB extends ListA<ClassB> {
....
public String getObjectName () { return "obj b"; }
}
同じメソッドを2箇所で定義しなきゃいけないのがなんとなく気持ち悪いです。
誰かもっと綺麗なやり方を教えてくれませんか?
12:デフォルトの名無しさん
08/08/11 11:22:53
IOExceptionの例外が発生した場合、getMessageでエラーの内容を
知ることができるわけですが、これをエラーコードという形で
取得することはできないでしょうか。
やりたいことは、xxxの例外だったら、zzzの作業を実行したいという感じです。
13:デフォルトの名無しさん
08/08/11 11:31:00
>>6
クラスパスの順で探すから、クラスパスを何とかすれば何とかなるんじゃないかね。
>>12
IOExceptionのサブクラスが定義してあるものじゃないと区別できないと思う。
14:デフォルトの名無しさん
08/08/11 12:06:50
>>11
たかだか文字列の取得なら、リストも中身も、継承つかわずに、
objectTypeをフィールドにして、基底クラス(Aのほう)が持つべき。
(振る舞いの違いがそこだけなら、完全に無駄な継承)
その際、リストと中身が類似じフィールドを持つのは、
要件によっては仕方ない。
フィールドの決定(生成時or登録時)がバラバラにならないように留意する。
階層がもっと増えて、リストなのか、中身なのかを意識せずに
アクセスしたいなら、getObjectName()をインタフェとして切り出す。
(コンポジットパターン。実装が簡潔になるわけではない)
>>12
IOEが出た段階で遡って区別するのは、だいたい無理じゃね?
15:11
08/08/11 12:46:46
>>14
基底クラスでprotected String objectName; と定義しても、
public class ClassB extends ClassA {
public String getObjectName () { return "obj b"; }
}
public class ListB extends ListA<ClassB> {
public String getObjectName () { return "obj b"; }
}
が
public class ClassB extends ClassA {
public ClassB () { objectName = "obj b"; }
}
public class ListB extends ListA<ClassB> {
public ListB () { objectName = "obj b"; }
}
になるだけで、大した違いはないように思えます。
振る舞いの違いはそれ以外にも沢山あるので継承は必須です。
> その際、リストと中身が類似じフィールドを持つのは、
> 要件によっては仕方ない。
が答えって事ですかね。
16:デフォルトの名無しさん
08/08/11 13:54:49
JAVAを初めて勉強するのにどんな本があるでしょうか?
定番というか一般的に人気のある本などを教えて頂けませんか?
レベルや用途別に分けて貰えると尚助かります。
17:デフォルトの名無しさん
08/08/11 14:08:23
***Javaのオススメ入門書*** 『創るJava』 3.0
スレリンク(tech板)
18:デフォルトの名無しさん
08/08/11 14:36:56
>>16
ホームページは簡潔にまとまってるから十分だし、本は要らないじゃないの。
19:デフォルトの名無しさん
08/08/11 14:45:12
ファイルの終端に到達するまでデータを読み込むループを
書いているのですが、java.io.EOFExceptionでループを抜けてしまいます。
読み込みに使っているのは、ObjectInputStreamのreadObjectで、
この戻り値がnullであるときにループを抜けたいのですが、
先の例外が出て、希望どおりになりません。
どうしたらよいでしょうか。
20:デフォルトの名無しさん
08/08/11 14:50:48
writeObjectでnullを書き込んでいれば、readObjectでnullが戻ります
そうでなければnullは戻りません
21:デフォルトの名無しさん
08/08/11 15:10:04
確かに充実してるし、ホームページでいいんじぇね?
22:デフォルトの名無しさん
08/08/11 15:10:26
>>20
writeObjectのnull書き込みが、終了の目印になっているようですね。
無事うまくいきました。ありがとうございます。
23:デフォルトの名無しさん
08/08/11 15:38:28
>>11
getObjectNameという名前をつけていながら実体はgetSubClassNameなんだな。
Listのほうはjavaのジェネリックはerasureだからうまい方法はないね。
ジェネリックではなく実際の型かObjectが必要になる。
多態性は魅力的だろうけどセオリーとは反対に、
クラスの属性で分類してcase文並べるほうがシンプルになるケースもあるから
ある手法で手詰まりなら別の手段をあたってみるのもいいと思うよ。
24:14
08/08/11 16:26:09
>>15
んっと、提示されたAとBのgetメソッドの違いは、
「振る舞いの違い(=継承で書き換えるべきもの)」
ではないということを言いたかった。
プロパティとして持たせてあげれば、Bのgetメソッドはいらない。
そのプロパティを設定するのは、静的ならコンストラクタ内になる。
まあ、一番キミが聞きたいとこからはずれてるので、気にしなくていいが、
class A {
private String ob="obj a"; //デフォルト
public String getObjectName(){ //ゲッタ
return ob;
}
protected void setObjectName(String name){//セッタ
this.ob=name;
} }
class B extend A{
B(){
super();
setObjectName("obj b"); //静的ならここ書く。
} }
今回はどうせBを作る需要があるということなので、こんな感じ。
ただgetObjectName()の戻りを変えたいだけなら、setObjectNameを
公開するか、コンストラクタ引数にする。それだけのためのクラスは不要。
25:11
08/08/11 18:29:07
>>23,24
解説どうも。
なぜabstractメソッドにしたかというと、子クラスを実装する開発者にobjectNameを
セットするのを強制させたかったからです。
もちろんabstractメソッドを使わずに、親クラスでobjectNameをチェックしてnullだったら
RuntimeExceptionを投げるとかでもいいんですが。
Listの件、うまい方法はないってのは了解です。
26:デフォルトの名無しさん
08/08/11 20:36:38
ファイル名が適切でない(例えばWindowsでは\など)かどうか判断するにはどうすればよいでしょう。
自分で実装するしかないのでしょうか?
27:デフォルトの名無しさん
08/08/11 21:23:42
JSFの条件分岐処理がうまく行きません。
URLリンク(localhost:8080)から、
テキストボックスに、"root"と入力して、ボタンを押したら、
result.jspで、"こんにちわ、rootさん!"と表示されて、
テキストボックスに、"root"以外の文字列を入力して、ボタンを押したら、
index.jspで、"文字を入力してください。"と表示したいです。
・構成は、下記配置です。
/test/build/classes/jp/co/pkg/Interface.class
/test/build/classes/jp/co/pkg/Test.class
/test/WebContent/WEB-INF/lib/jsf-api.jar
/test/WebContent/WEB-INF/lib/jsf-impl.jar
/test/WebContent/WEB-INF/lib/jstl-1.2.jar
/test/WebContent/WEB-INF/faces-config.xml
/test/WebContent/WEB-INF/web.xml
/test/WebContent/WEB-INF/index.jsp
/test/WebContent/WEB-INF/result.jsp
28:デフォルトの名無しさん
08/08/11 21:23:52
だめな文字でファイル作成しようとしたときのstacktrace確認するとFileOutputStream#open(NativeMethod)でエラー起きてるから、特にそういう機能はないみたいですね。
すみません。自己解決です。
29:デフォルトの名無しさん
08/08/11 21:24:19
<%--index.jsp--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="URLリンク(java.sun.com)" prefix="h"%>
<%@ taglib uri="URLリンク(java.sun.com)" prefix="f"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "URLリンク(www.w3.org)">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<div>
<f:view>
<h:form>
<h:outputText value="お名前は?" binding="#{Test.text}" /><br />
<h:inputText binding="#{Test.field}" /><br />
<h:commandButton binding="#{Test.button}" action="#{Test.getButton_action}" />
</h:form>
</f:view>
</div>
</body>
</html>
30:デフォルトの名無しさん
08/08/11 21:24:53
<%--result.jsp--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="URLリンク(java.sun.com)" prefix="h"%>
<%@ taglib uri="URLリンク(java.sun.com)" prefix="f"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "URLリンク(www.w3.org)">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<div>
<f:view>
<h:form>
<h:outputText value="#{Test.text}" />
</h:form>
</f:view>
</div>
</body>
</html>
31:デフォルトの名無しさん
08/08/11 21:27:13
//Test.java
package jp.co.pkg;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlInputText;
import jp.co.pkg.Interface;
public class Test implements Interface {
private HtmlCommandButton button;
private HtmlOutputText text;
private HtmlInputText field;
public void setButton(HtmlCommandButton button){
button.setValue(login_button);
this.button = button;
}
public void setText(HtmlOutputText text){ this.text = text; }
public void setField(HtmlInputText field){ this.field = field; }
public HtmlCommandButton getButton(){ return this.button; }
public HtmlOutputText getText(){ return this.text; }
public HtmlInputText getField(){ return this.field; }
public String getButton_action(){
String str = (String)this.field.getValue();
if(str.equals("root")){
text.setValue("こんにちわ、" + str + "さん!");
return "true";
}else{
text.setValue("文字を入力してください。");
return "false";
}
}
}
32:デフォルトの名無しさん
08/08/11 21:27:47
//Interface.java
package jp.co.pkg;
public interface Interface {
public static final String login_button = "ログイン";
}
33:デフォルトの名無しさん
08/08/11 21:31:05
<!--faces-config.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="URLリンク(java.sun.com)"
xmlns:xsi="URLリンク(www.w3.org)"
xsi:schemaLocation="URLリンク(java.sun.com) URLリンク(java.sun.com)"
version="1.2">
<managed-bean>
<managed-bean-name>Test</managed-bean-name>
<managed-bean-class>jp.co.root.Test</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>./index.jsp</from-view-id>
<navigation-case>
<from-outcome>true</from-outcome>
<to-view-id>./result.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>false</from-outcome>
<to-view-id>./index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
34:デフォルトの名無しさん
08/08/11 21:32:17
<!--web.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="URLリンク(www.w3.org)"
xmlns="URLリンク(java.sun.com)"
xmlns:web="URLリンク(java.sun.com)"
xsi:schemaLocation="URLリンク(java.sun.com) URLリンク(java.sun.com)"
id="WebApp_ID" version="2.5">
<display-name>test</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
35:デフォルトの名無しさん
08/08/11 21:34:04
以上です。よろしくおねがいします。
36:デフォルトの名無しさん
08/08/11 23:06:23
うpろだ使えカス
37:デフォルトの名無しさん
08/08/11 23:07:08
JPanel部分に、C++のソフトがはきだしたグラフを貼り付けて表示する、
ということはできるでしょうか?
グラフをX-Window上に描画・表示するソフトはroot(C++ソース)というものです。
URLリンク(www-jlc.kek.jp)
38:デフォルトの名無しさん
08/08/11 23:56:59
すいません
入力が数字の場合と文字の場合とで処理を分けたいのですがそういう関数ってありますか?
39:デフォルトの名無しさん
08/08/12 00:07:32
match("\\d*")
40:デフォルトの名無しさん
08/08/12 00:12:51
>>39
ありがとうございます
41:デフォルトの名無しさん
08/08/12 00:59:00
awt が重量コンポーネントに対して
swing が軽量コンポーネントと呼ばれますが
swing は awt を継承している(包括している)と思うのですが・・・
何が軽量なのでしょうか
42:デフォルトの名無しさん
08/08/12 01:27:01
ネイティブコードが少ない
43:デフォルトの名無しさん
08/08/12 01:52:49
>>41
Swingの解説を読めばまっさきに書いてあると思うんだが……。
44:デフォルトの名無しさん
08/08/12 02:13:46
OSのリソースを使わないという意味で軽量だな
処理の重さや、継承によるコード量とかじゃない
描画はネイティブじゃないぶんだけ遅い
45:デフォルトの名無しさん
08/08/12 02:18:02
描画が速いとかいってる奴がいるけど、英語の解説をちゃんと読んだことあるか?
46:デフォルトの名無しさん
08/08/12 02:33:25
またその話っすか
47:デフォルトの名無しさん
08/08/12 02:42:22
>>44
ほらほら、お呼びだぞww
48:デフォルトの名無しさん
08/08/12 09:23:38
javaで積分するにはどうやってやるんですか?
49:デフォルトの名無しさん
08/08/12 09:40:05
それよりも微分はどうやるんでしょうか?
50:デフォルトの名無しさん
08/08/12 09:42:33
夏厨ばっかだなw
51:デフォルトの名無しさん
08/08/12 10:07:20
おまえに聞いてない
52:デフォルトの名無しさん
08/08/12 10:34:47
appletに関する質問なのですが
・JDK1.2以降のAPIが使えない(java.util.jarやjavax.*が使えない)
・applet格納jarとは別の.auファイルをまとめたjarなりzipなりがある
・アーカイブは後付で読み込む(起動後に読み込むものが決まる)
という状態で、外部アーカイブ内の.auファイルから音声オブジェクトを作成する方法ってありますでしょうか?
自分で考えた限りでは2通りのアプローチかなと思ったのですが他に何かいい方法があるかなと思いまして…
1)読み込んだアーカイブをclasspathに追加する
classpathに追加できればApplet#getAudioClip(URL)で読み込めるが、追加方法がわからない
(System.setProperty()でjava.class.pathをsetしても意味がないらしい)
2)sun.audio.AudioStreamを使う
ZipInputStream→ZipEntry→byte[]→ByteArrayInputStream→AudioStreamで
読み込み&再生には成功したが非公開APIなので互換性の心配がある
53:デフォルトの名無しさん
08/08/12 11:01:01
>>47
44は「遅い」って書いてあるように俺には読めるんだが
54:デフォルトの名無しさん
08/08/12 11:42:20
以下のパディングで、全角を半角2文字分として処理させる手段はあるでしょうか。
System.out.format("%3s_", "あ");
結果: あ_ ※スペースが前に2つ入ってしまう。これを1つにしたい。
55:デフォルトの名無しさん
08/08/12 12:11:29 BE:104062526-2BP(2)
>>48-49
数値微分、数値積分だったらできる。
差分法、区分求積法、リーマン積分、台形公式、シンプソンの三分の一則、ロンバーグ積分でググれ。
というか数値計算や数値解析の本読め。
ただし連続関数の微分、積分は一筋縄ではいかない。
正規表現が必要になってくる。
56:デフォルトの名無しさん
08/08/12 12:32:17
正規表現はいらないだろw
なにいってんだこいつは。
57:デフォルトの名無しさん
08/08/12 13:00:45
>>55
そこに書いてないようだけど、数値微分はどうやるの?
58:デフォルトの名無しさん
08/08/12 13:26:14
JavaMailで質問です。
プログラム内でPDFを作成して添付ファイルとして送りたいのですが、
作成したPDFをファイルシステムに保存したくありません。
今はこんな感じでやってます。
//PDFファイルを一時ファイルとして書き出し
File tmpFile = File.createTempFile("foo", ".pdf");
//PDFをOutputStreamに書き出す独自クラス
report.renderPDF(new FileOutputStream(tmpFile));
MimeBodyPart attachedPart = new MimeBodyPart();
attachedPart.setFileName("filename.pdf");
attachedPart.setDataHandler(new DataHandler(new FileDataSource(tmpFile)));
File.createTempFile を使わずに添付ファイルを送るいい方法はありますか?
59:デフォルトの名無しさん
08/08/12 13:29:55
Thread.sleepとwaitって何が違うんですか?
60:デフォルトの名無しさん
08/08/12 13:35:25
waitはnotifyされたときに起きる
61:デフォルトの名無しさん
08/08/12 13:38:22
>>58
FileOutputStreamの代わりにByteArrayOutputStream使って
FileDataSourceの代わりにDataSourceの自前の実装を使えばいいんじゃない
62:デフォルトの名無しさん
08/08/12 13:53:35
main()の戻り値を返す方法はありませんか
Cならreturnで戻せるのですが・・・
63:58
08/08/12 13:55:46
>>61
ありがとうございます。やっぱり自前で何かやらないとダメですか…
64:デフォルトの名無しさん
08/08/12 14:12:11
>>62
System#exit(int)
65:デフォルトの名無しさん
08/08/12 14:15:48
>>64
thx
66:デフォルトの名無しさん
08/08/12 14:36:14
正規表現でパスワードをチェックしたいのですが、
半角数字、アルファベット大文字、小文字が混在していることを
条件にする方法がわかりません。
67:デフォルトの名無しさん
08/08/12 15:07:12
>>66
無理に正規表現にするのはどうかと思うが・・・これでどう
(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])
68:66
08/08/12 15:39:38
私も最初にその方法で確認したのですがだめでした
String str = "Hoge0123";
System.out.println(str.matches("(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])"));
falseになります。
69:デフォルトの名無しさん
08/08/12 15:56:47
定数の扱い方について教えてください。
クラスの中にprivate finalをたくさん定義するのはよい方法なのでしょか。
C言語では、ヘッダーファイルに定数をまとめたりしますが、
javaではどうなのでしょうか。
70:デフォルトの名無しさん
08/08/12 16:00:23
>>68
それだけだとゼロ文字にしかマッチしない
(?= ) は1文字も食わないから
71:デフォルトの名無しさん
08/08/12 16:02:20
>>69
よい方法
少なくともコード中にマジックナンバを書くよりは
用途によってはenumを使え
72:デフォルトの名無しさん
08/08/12 16:19:23
>>71
レスありがとうございます。
ただ、あまりにも定数が増えてくるといいますか、
どこまで定数として定義したらよいかの判断が難しいです。
たとえば、"ファイルの読み込みに失敗しました。"という文字列が
コード上で一回しか出てこないのなら、定数にする必要もないのかなと思います。
73:デフォルトの名無しさん
08/08/12 16:28:58
>>72
文字列は国際化を考えてResourceBundleに入れるのが望ましい・・・けどまぁ面倒いよな
お好きにどうぞ
74:デフォルトの名無しさん
08/08/12 16:57:37
>>55
入門編の地雷じゃないヤツを教えて。
75:デフォルトの名無しさん
08/08/12 18:40:37
>>56
sin(x)をcos(x)に
log(x^2)を2x/x^2 = 2/x
と表示するにはなにかしら正規表現が必要
>>57
差分法と書いてあるだろう
>>74
地雷? 意味がわからない。
まずは数値計算の本を読め。
『Javaによるアルゴリズム事典』でも読め。
76:デフォルトの名無しさん
08/08/12 20:06:50
>>75
正規表現って何か知ってる?
77:デフォルトの名無しさん
08/08/12 21:44:16
せいきひょうげんだと……?
78:デフォルトの名無しさん
08/08/12 22:05:38
もしかしてノーマライズのこといってる?
79:デフォルトの名無しさん
08/08/12 22:06:50
ワロタww
80:デフォルトの名無しさん
08/08/12 22:07:22
Regular representationだろ
81:デフォルトの名無しさん
08/08/12 22:54:25
regular expressionだろ
82:デフォルトの名無しさん
08/08/13 00:35:19
>>75
どうせ独学でしょ。sin[x]をcos[x]にするとかいってて、全然分かってないようだしw
83:デフォルトの名無しさん
08/08/13 00:38:50
>>78
いや? 約分という正規化もしたいけどそれとは別に。
正確には文字列処理というべきだったか。
正規表現というから唐突過ぎたみたいだ。
だが合成関数など複雑な数式になると微分するときに正規表現も必要になるんじゃないのかって言いたかった。
84:デフォルトの名無しさん
08/08/13 00:40:33
>>82
何が? あと、それだと配列になるぞ。
数値微分だったら簡単にできるだろ。
それとは別の、連続関数の微分のことを言ってるんだが。
85:デフォルトの名無しさん
08/08/13 00:41:53
正規表現という用語は文字列のマッチング用パターンを指すのでややこしいから別の用語を使ってくださいお願いします
86:デフォルトの名無しさん
08/08/13 00:47:29
MatheticaだったかMATLABだったか忘れたけど
y = diff(sin(x))
と入力すると
y = cos(x)
と表示してくれる言語があった気がする
87:デフォルトの名無しさん
08/08/13 01:04:46
結局、ただの夏いやつだったんだよ・・・
88:デフォルトの名無しさん
08/08/13 01:08:25
>>83
SICPの Symbolic Differentiation みたいなのをやりたいということかな?
Schemeみたいに簡単にはいかないよ。自分で構文解析する必要がある。
構文解析してS式なり、構文木作ってしまえば、Schemeと大差は無いよ。
89:デフォルトの名無しさん
08/08/13 01:16:50
>>84
配列とか言ってるようだけど、独学だとしても最低限mathmaticaぐらいは使えるようになってくれ。
それとその数値微分だと、入力が10^-12なら出力は10^-6の半分程度の精度しかないんじゃないか?
90:デフォルトの名無しさん
08/08/13 01:19:57
>>89
javaスレだぞ・・・
91:デフォルトの名無しさん
08/08/13 01:23:00
数値計算はjavaでやるのが一番面倒がないね。ライブラリもそろってるし。
javaは、予約語だらけとかの他の複雑な言語に比べて簡単だからアルゴに集中できるけどね。
92:デフォルトの名無しさん
08/08/13 01:44:06
>>88-89
そういえばMATLABを思い出したよ
>>86は
symbolic(x);
y = diff(sin(x),x)
と入力すると
y = cos(x)
になるやつだったかな。
SchemeとMathematicaは良く知らないがMATLABはよく触っていたから覚えている。
Javaで同じことができるライブラリをどこかで見つけたが有料だったので
諦めた記憶がある。どこのサイトだったかまでは覚えていない。
93:デフォルトの名無しさん
08/08/13 02:55:25
>>91
アルゴリズムをアルゴと略す奴は、MZユーザではないだろうな。
気持ち悪い略し方だ。アルクワリズミが草葉の陰で泣いてるぞ。
94:デフォルトの名無しさん
08/08/13 03:07:34
流れをきって質問です・・・
Java自体が始めてまだ数ヶ月なのですが、ウィンドウアプリケーションを初めて作ってみました。
そこで、たとえば3秒ごとにウィンドウに今の時間を更新して表示するプログラムを作りたいのですが、いままでならスレッドで
for(;;){
min=calender.get(Calendar.MINUTE);
System.out.println(min);
Thread.sleep(3000);
}
と書いたスレッドを実行させておけばよかったのですが、ウィンドウ型になるとどうしていいかわからなくなってしまいました・・・
説明が下手で申し訳ないですが、
「3秒ごとに今の時間を取得してそれをウィンドウに表示させる」
というプログラムを作りたいです
95:デフォルトの名無しさん
08/08/13 03:15:15
正規表現とか使ってシンボリックに微分をやったり数値計算するよりも、その結果を数学の自然表記にする方が難しいんだけどね。
積分や分数を教科書どおりにウインドに表示するとか。
96:デフォルトの名無しさん
08/08/13 03:25:44
>>93
アルコイズミとか出してきて、おまえのほうがキモイ
97:デフォルトの名無しさん
08/08/13 09:33:54
>>94
1.時刻表示ができる窓を作る。
2.時刻を更新するメソッドを書く。
3.2を定期的に呼ぶスレッドを書く。
4.3のスレッドの生成と実行を書く。
だいたいこんな感じ。
98:デフォルトの名無しさん
08/08/13 10:03:16
>>96
アルゴリズムの語源になった人だぞ < アルクワリズミ
99:デフォルトの名無しさん
08/08/13 10:15:49
すみません、>>52なのですが
アプローチがそもそも間違っているとかこういう質問はこのスレへ行くのがいいとか
そういった感じのことでもよいのでよろしくお願いします……
>>94
>>97さんの内容でいけると思いますが、表示をJTextBoxなどのswingコンポーネントでやる場合は
SwingUtilities.invokeLater()を使わないと表示処理が正しく行われないので注意してください。。
(swingコンポーネントの大半のメソッドは、イベントディスパッチスレッド以外から呼んではいけないという決まりがある)
URLリンク(homepage3.nifty.com)
100:デフォルトの名無しさん
08/08/13 10:44:55
>>95
texとか知らないのか
101:デフォルトの名無しさん
08/08/13 10:50:35
そのTeXという言語を作る仕事がものすごく難しい
102:デフォルトの名無しさん
08/08/13 10:58:59
>>101
その難しいは、個人の能力が低い場合だろ・・・
103:デフォルトの名無しさん
08/08/13 10:59:28
>>101
技術的に難しいという意味じゃねーじゃん
104:デフォルトの名無しさん
08/08/13 11:40:43
>>101
そりゃ言語を作るのは、並大抵の難易度じゃないだろう。
けど、そういう話?
105:デフォルトの名無しさん
08/08/13 11:46:01
5.0から追加されたイグゼキュタって、時間を戻すと止まりませんか?
指定した遅延後に実行されるだけだと思うのですが、
どうもIO周りでブロックされているような気がします。
これだとNTPで時間を戻された時とかに使えないような?
public class TestA implements Callable {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) { new TestA().start(); }
public void start() { future = pool.schedule(this, 1, TimeUnit.MILLISECONDS); }
private void run_() {
System.out.println(sdf.format(new Date()) + ": running"); // !!!これがないと止まらないで動く
ScheduledFuture<?> future2 = pool.schedule(new Runnable() { // 再スケジュール用のタスクセット
public void run() {
if (future.isDone()) {
try {
future.get();
future = pool.schedule(TestA.this, 1, TimeUnit.MILLISECONDS); // ユーザタスクの再スケジューリング
} catch (InterruptedException e) { e.printStackTrace();
} catch (ExecutionException e) { e.printStackTrace(); }
}
}
}, 0, TimeUnit.MILLISECONDS);
}
public Object call() throws Exception {
run_();
return future;
}
}
106:デフォルトの名無しさん
08/08/13 12:59:59
>>97
レスありがとうございます。
その、表示する窓についてですが、時間を更新する3秒ごとに描画し直さなくてはならず、
g.drawString(時間)
も3秒ごとに実行させる必要があると思っています。このdrawStringもスレッドに組み込むのでしょうか?
質問が悪く、初歩的で申し訳ないです
107:デフォルトの名無しさん
08/08/13 13:02:33
>>104
そういう話だった
Yacc/flexで言語作っている奴のコードを見ていたら
くそやばかった記憶がある。あれは並大抵の努力じゃ実現できないものだと思った。
108:デフォルトの名無しさん
08/08/13 13:20:33
>>106
描画はpaintもしくはpaintComponentでする
スレッドは3秒ごとにrepaintを呼ぶ
109:デフォルトの名無しさん
08/08/13 13:42:27
>>102-104
ひまなんでしょww
110:デフォルトの名無しさん
08/08/13 13:51:43
>>107
努力してるのかどうかよりも、何がくそやばかったのか分からないんだけど
111:デフォルトの名無しさん
08/08/13 15:35:45
くそやばかったかどうかよりbison/flexでもyacc/lexでもない件
ていうかjavaスレなんだからどうせなら標準でjavaを吐くパーザジェネレータの話をしようぜ
112:デフォルトの名無しさん
08/08/13 17:06:24
質問です。
最近Javaをはじめたのですが
配列を今勉強していて、
ArrayListに突っ込み、それを拡張する方法はわかったのですが
例えば
int[] num_array = new int[5];
とかやった場合に
num_arrayの大きさ自体を変える事は出来ないのでしょうか?
113:デフォルトの名無しさん
08/08/13 17:07:49
できない
新しく大きな配列を作って中身を移すしかない
114:デフォルトの名無しさん
08/08/13 19:14:22
>>112
新規に大きな配列を作って中身をコピーする時に、
使っているのがJDK6以降ならjava.util.ArraysクラスにcopyOfというメソッドがあって、
num_array = java.util.Arrays.copyOf(num_array, 10); // サイズ10の配列を新たに作って中身をコピーしたものを返す
みたいにできるのでちょっと便利。
元のnum_array自体を拡張するのではなく、サイズが変更されたコピーを返すところに注意。
配列は固定長であることに変わりはないので。
JDK5以前なら配列の作成とコピーのコードを自分で書かないといけない。
115:デフォルトの名無しさん
08/08/13 19:41:06
>150
使い方が色々間違っているような気がする
あとstdはどこに変数宣言あるんだ?
future.get(); も激しくデットロックの香り
116:デフォルトの名無しさん
08/08/13 21:14:07
>>115
縮めてみた。
import java.util.*;
import java.util.concurrent.*;
import java.text.SimpleDateFormat;
public class TestA implements Callable<Object> {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) {new TestA().start();}
public void start() {future = pool.schedule(this, 1, TimeUnit.MILLISECONDS);}
public Object call() throws Exception {
System.out.println(sdf.format(new Date()) + ": running");
ScheduledFuture<?> future2 = pool.schedule(this, 1, TimeUnit.MILLISECONDS);
return future;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" , Locale.JAPAN);
}
遅延を0にすればとまらないのだから、デッドロックと言うことは無いだろう。
時刻に達したら制止が外れるようなので、
1,2秒さかのぼった程度なら、問題にならないだろうけど、
夏時間とかはどうなるだろ。
また、時計を巻き戻して、処理が止まってから、時計を戻してみた。
すると、1分間ほど経ってから処理が再開した。
117:デフォルトの名無しさん
08/08/13 23:45:02
ThreadGroupのactiveCount()でグループに属するスレッドの数が取得できないのですが
これは仕様ですか?
// スレッドグループツリーの作成
ThreadGroup g1 = new ThreadGroup("g1");
Thread t1 = new Thread(g1, "t1");
Thread t2 = new Thread(g1, "t2");
ThreadGroup g2 = new ThreadGroup(g1, "g2");
ThreadGroup g3 = new ThreadGroup(g1, "g3");
Thread t3 = new Thread(g2, "t3");
ThreadGroup g4 = new ThreadGroup(g2, "g4");
Thread t4 = new Thread(g4, "t4");
// g1スレッドグループに含まれるスレッドの数
System.out.println("g1.activeCount() = " + g1.activeCount());
上記のプログラムを実行すると
g1.activeCount() = 0
と表示されます。
参考書を見ると
g1.activeCount() = 4
と表示されるとなっています
ご教授お願いします
118:デフォルトの名無しさん
08/08/13 23:47:41
startしていないthreadはカウントされない
119:デフォルトの名無しさん
08/08/13 23:48:33
>>118
ありがとうございます
もう一度試してみます
120:デフォルトの名無しさん
08/08/14 00:07:48
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwww」
URLリンク(gacco.o0o0.jp)
URLリンク(ex14.vip2ch.com)
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
121:デフォルトの名無しさん
08/08/14 00:09:23
みんなでサイトつくろうぜwwwwwwwwww
みんなで本気でつくる気です。 がんばりましょう。
サイトのイメージはSNS×学校みたいな感じ。
サイトデザイン(案)
URLリンク(www36.atwiki.jp)
URLリンク(www36.atwiki.jp)
URLリンク(www.vipper.org)
技術を持ってる人はパー速へ!
URLリンク(ex14.vip2ch.com)
wiki:
vipでサイトつくろーぜ
URLリンク(www26.atwiki.jp)
詳細はwiki参照
122:デフォルトの名無しさん
08/08/14 00:15:41
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwww」
URLリンク(gacco.o0o0.jp)
URLリンク(ex14.vip2ch.com)
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
123:デフォルトの名無しさん
08/08/14 00:16:29
>>120
あれ。。俺がいる。
ホントすまなかった。
124:デフォルトの名無しさん
08/08/14 01:54:38
相変わらずキモイな
C#と同じくどんどん糞スレになってくれ
125:デフォルトの名無しさん
08/08/14 03:01:18
掲示板を作ってるのですが、書き込んだ日時としてデータベースに
Calendar#getTimeInMillis()で取れる値を入れて、
そのlong値を取得して何月何日何時何分何秒に書き込んだか表示したいのですが、
Calendar cal=Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
cal.setTimeInMillis(//データベースから取得したlong値);
System.out.println(cal.get(Calendar.YEAR));
で比較すると後者のprintlnで表示される値が何を入れても常に1970になります。
setTimeInMillisをAPIドキュメントで見ると
>Calendar の現在時刻を、指定された long 値から設定します。
と書いてあるのでこれで良いかと思ったのですが、これはどこを間違っているのでしょうか??
126:デフォルトの名無しさん
08/08/14 03:24:21
>>125
データベースから取得したlong値は正しい値で取得されている?
秒単位でなくてミリ秒単位だからだいたい 31500000000 より小さい値なら1970年になる。
127:デフォルトの名無しさん
08/08/14 03:39:42
アクセス修飾子について質問です。
protected:
同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
なし(デフォルト):
そのインスタンス、または同一パッケージに所属するクラスのインスタンスからアクセス可能。
となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
インスタンスからは、アクセスすることができないのですか?
128:デフォルトの名無しさん
08/08/14 03:42:45
うん
129:デフォルトの名無しさん
08/08/14 03:48:49
では、アクセス就職子の序列が
public > なし(デフォルト) > protected > private
となっている参考書は間違いなのですか?
「protected」の場合にアクセスできるものに
「なし(デフォルト)」の場合にアクセスできないので。
130:デフォルトの名無しさん
08/08/14 03:49:10
>>127
protectedは同一パッケージ内のクラスからもアクセス可能。
131:デフォルトの名無しさん
08/08/14 03:50:59
protectedの説明が
> 同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
になっているのなら、その参考書の説明は間違い。
132:デフォルトの名無しさん
08/08/14 03:53:18
あー逆だ
public > protected >> なし(デフォルト) private
が正しい。
protectedの方が公開の範囲が広い。
133:デフォルトの名無しさん
08/08/14 03:58:09
public > protected >> なし(デフォルト) private
は、
public > protected > なし(デフォルト)> private
ね。だから、
> となっている参考書は間違いなのですか?
は間違いで正しい。
まとめると、
> となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
> インスタンスからは、アクセスすることができないのですか?
は正しい。
> public > なし(デフォルト) > protected > private
> となっている参考書は間違いなのですか?
も正しい。つまり間違ってる。
134:デフォルトの名無しさん
08/08/14 04:13:16
>>130-133
了解です!
ありがとうございます!
135:デフォルトの名無しさん
08/08/14 04:22:01
そんな糞参考書は窓から投げておk
136:デフォルトの名無しさん
08/08/14 05:11:35
糞はおまえw
137:デフォルトの名無しさん
08/08/14 06:24:30
会話が成り立っていない
138:105
08/08/14 10:10:40
>>115
書き込みが入りきるよう縮めていたら消していました。
使い方おかしいですか?
やりたいのはその都度実行する遅延を計算しなおしたいのです。
ここでは止まるのを確認するのに1msで常にやってます。
>>116
printlnでIOがブロック?と書きましたが違ったようです。
↓のように、止まるのは遅延を待機しているのではないかと。
ただその遅延が指定したものでなく、
おっしゃるように戻した時間が経過して戻す以前の時間+遅延になると動くようです。
もしかしたら遅延を指定しているにも関わらず、
内部で時刻を取得し直して計算しているのかとも思うのですが。
スレッド [pool-1-thread-1] (中断中)
Unsafe.park(boolean, long) 行: 使用不可 [ネイティブ・メソッド]
LockSupport.parkNanos(long) 行: 使用不可
AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) 行: 使用不可
DelayQueue<E>.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor(ThreadPoolExecutor).getTask() 行: 使用不可
ThreadPoolExecutor$Worker.run() 行: 使用不可
Thread.run() 行: 使用不可
139:デフォルトの名無しさん
08/08/14 10:52:28
どなたか>>52(>>99)をお願いします…
何か質問の仕方マズかったでしょうか
140:デフォルトの名無しさん
08/08/14 12:35:08
やっぱ"Ruby"ですよ!
141:デフォルトの名無しさん
08/08/14 13:04:24
>>139
1.2以前でっていう限定がきつい。
古すぎてだれも答えられないと思う。
142:デフォルトの名無しさん
08/08/14 13:10:54
>>141
初心者の宿題出なければ、appletを作っているやつ自体いないのでは
143:デフォルトの名無しさん
08/08/14 13:43:41
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
URLリンク(gacco.o0o0.jp)
スレリンク(news4vip板)
URLリンク(ex14.vip2ch.com)
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
*サーバー側
言語はRubyかPerlの予定ですが、Perlが有力候補。
・チャット
定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
通信するときのフォーマットは未定。
・ログイン・アカウント管理
ログイン認証、各アカウントの点数などの管理。データベースは未定。
・お絵描き
未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
*クライアント側
はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
サイトのデザインを考えてくれる人、作ってくれる人募集中。
できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
144:デフォルトの名無しさん
08/08/14 14:09:09
>>139
1) java.util.zip 使って外部アーカイブを読める自前の URLStreamHandler 作って、
URL.setURLStreamHandlerFactory してみるとか……
セキュリティマネージャに怒られてダメかもしれんが。
2) 1.1レベルでは互換性の高そうな標準API使う方法だと
1)のアプローチぐらいしかないので、それがダメなら
外部jar使うの諦めるか、互換性諦めるか、音出す事を諦めるか選ぶしかないと思うぞ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4334日前に更新/268 KB
担当:undef