【初心者】Java質問・相談スレッド118【歓迎】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語Javaに関する質問スレです。
JavaScript, 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質問・相談スレッド116【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1213347130/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
2デフォルトの名無しさん:2008/08/10(日) 18:22:34
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 7
ttp://pc11.2ch.net/test/read.cgi/tech/1204155623/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part18
ttp://pc11.2ch.net/test/read.cgi/tech/1214192372/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 65 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1212085079/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/
3デフォルトの名無しさん:2008/08/10(日) 18:23:11
すまんスレタイ微妙に失敗しちまった
4デフォルトの名無しさん:2008/08/10(日) 18:25:29
あーしかもテンプレの前スレの所も変えてねえ
マジでゴメン
5デフォルトの名無しさん:2008/08/10(日) 18:57:34


同期に失敗したか・・・・・
6デフォルトの名無しさん:2008/08/11(月) 02:00:42
プロパティファイルについての質問です。

プロパティファイルを読み込んでくれるファイル位置と優先順序はどうなっているんでしょうか?

warパッケージやearパッケージの際にパッケージにプロパティファイルを含めずあとで入れ替えられるようにするにはどうすればいいんでしょうか
7デフォルトの名無しさん:2008/08/11(月) 07:17:12
1. 入れ替えてbuildする
2. 入れ替える必要があるならば最初から外部ファイルにする
8デフォルトの名無しさん:2008/08/11(月) 10:23:54
javaで積分するにはどうやってやるんですか?
9デフォルトの名無しさん:2008/08/11(月) 10:36:14
親のクラスであるメソッドをsynchronizedしていても、そのクラスを拡張したクラスでオーバーライドしてsynchronizedしていなければ同期化されないのでしょうか?
class Parent {
public synchronized void method(){
}
}
class Child extends Parent{
public void method(){
// ここが同期されるか
}
}
10デフォルトの名無しさん:2008/08/11(月) 10:37:24
自分で試したら?
11デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/11(月) 11:22:53
IOExceptionの例外が発生した場合、getMessageでエラーの内容を
知ることができるわけですが、これをエラーコードという形で
取得することはできないでしょうか。
やりたいことは、xxxの例外だったら、zzzの作業を実行したいという感じです。
13デフォルトの名無しさん:2008/08/11(月) 11:31:00
>>6
クラスパスの順で探すから、クラスパスを何とかすれば何とかなるんじゃないかね。

>>12
IOExceptionのサブクラスが定義してあるものじゃないと区別できないと思う。
14デフォルトの名無しさん:2008/08/11(月) 12:06:50
>>11
たかだか文字列の取得なら、リストも中身も、継承つかわずに、
objectTypeをフィールドにして、基底クラス(Aのほう)が持つべき。
(振る舞いの違いがそこだけなら、完全に無駄な継承)

その際、リストと中身が類似じフィールドを持つのは、
要件によっては仕方ない。
フィールドの決定(生成時or登録時)がバラバラにならないように留意する。

階層がもっと増えて、リストなのか、中身なのかを意識せずに
アクセスしたいなら、getObjectName()をインタフェとして切り出す。
(コンポジットパターン。実装が簡潔になるわけではない)

>>12
IOEが出た段階で遡って区別するのは、だいたい無理じゃね?
1511:2008/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デフォルトの名無しさん:2008/08/11(月) 13:54:49
JAVAを初めて勉強するのにどんな本があるでしょうか?
定番というか一般的に人気のある本などを教えて頂けませんか?
レベルや用途別に分けて貰えると尚助かります。
17デフォルトの名無しさん:2008/08/11(月) 14:08:23
***Javaのオススメ入門書*** 『創るJava』 3.0
http://pc11.2ch.net/test/read.cgi/tech/1190032149/
18デフォルトの名無しさん:2008/08/11(月) 14:36:56
>>16
ホームページは簡潔にまとまってるから十分だし、本は要らないじゃないの。
19デフォルトの名無しさん:2008/08/11(月) 14:45:12
ファイルの終端に到達するまでデータを読み込むループを
書いているのですが、java.io.EOFExceptionでループを抜けてしまいます。
読み込みに使っているのは、ObjectInputStreamのreadObjectで、
この戻り値がnullであるときにループを抜けたいのですが、
先の例外が出て、希望どおりになりません。
どうしたらよいでしょうか。
20デフォルトの名無しさん:2008/08/11(月) 14:50:48
writeObjectでnullを書き込んでいれば、readObjectでnullが戻ります
そうでなければnullは戻りません
21デフォルトの名無しさん:2008/08/11(月) 15:10:04
確かに充実してるし、ホームページでいいんじぇね?
22デフォルトの名無しさん:2008/08/11(月) 15:10:26
>>20
writeObjectのnull書き込みが、終了の目印になっているようですね。
無事うまくいきました。ありがとうございます。
23デフォルトの名無しさん:2008/08/11(月) 15:38:28
>>11
getObjectNameという名前をつけていながら実体はgetSubClassNameなんだな。
Listのほうはjavaのジェネリックはerasureだからうまい方法はないね。
ジェネリックではなく実際の型かObjectが必要になる。
多態性は魅力的だろうけどセオリーとは反対に、
クラスの属性で分類してcase文並べるほうがシンプルになるケースもあるから
ある手法で手詰まりなら別の手段をあたってみるのもいいと思うよ。
2414:2008/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を
公開するか、コンストラクタ引数にする。それだけのためのクラスは不要。
2511:2008/08/11(月) 18:29:07
>>23,24
解説どうも。
なぜabstractメソッドにしたかというと、子クラスを実装する開発者にobjectNameを
セットするのを強制させたかったからです。
もちろんabstractメソッドを使わずに、親クラスでobjectNameをチェックしてnullだったら
RuntimeExceptionを投げるとかでもいいんですが。

Listの件、うまい方法はないってのは了解です。
26デフォルトの名無しさん:2008/08/11(月) 20:36:38
ファイル名が適切でない(例えばWindowsでは\など)かどうか判断するにはどうすればよいでしょう。
自分で実装するしかないのでしょうか?
27デフォルトの名無しさん:2008/08/11(月) 21:23:42
JSFの条件分岐処理がうまく行きません。

http://localhost:8080/test/index.jsfから
テキストボックスに、"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デフォルトの名無しさん:2008/08/11(月) 21:23:52
だめな文字でファイル作成しようとしたときのstacktrace確認するとFileOutputStream#open(NativeMethod)でエラー起きてるから、特にそういう機能はないみたいですね。
すみません。自己解決です。
29デフォルトの名無しさん:2008/08/11(月) 21:24:19
<%--index.jsp--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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デフォルトの名無しさん:2008/08/11(月) 21:24:53
<%--result.jsp--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/11(月) 21:27:47
//Interface.java
package jp.co.pkg;

public interface Interface {
public static final String login_button = "ログイン";
}

33デフォルトの名無しさん:2008/08/11(月) 21:31:05
<!--faces-config.xml-->
<?xml version="1.0" encoding="UTF-8"?>

<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
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デフォルトの名無しさん:2008/08/11(月) 21:32:17
<!--web.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
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デフォルトの名無しさん:2008/08/11(月) 21:34:04
以上です。よろしくおねがいします。
36デフォルトの名無しさん:2008/08/11(月) 23:06:23
うpろだ使えカス
37デフォルトの名無しさん:2008/08/11(月) 23:07:08
JPanel部分に、C++のソフトがはきだしたグラフを貼り付けて表示する、
ということはできるでしょうか?

グラフをX-Window上に描画・表示するソフトはroot(C++ソース)というものです。
http://www-jlc.kek.jp/subg/offl/lib/docs/rootstarter/main.html
38デフォルトの名無しさん:2008/08/11(月) 23:56:59
すいません
入力が数字の場合と文字の場合とで処理を分けたいのですがそういう関数ってありますか?
39デフォルトの名無しさん:2008/08/12(火) 00:07:32
match("\\d*")
40デフォルトの名無しさん:2008/08/12(火) 00:12:51
>>39
ありがとうございます
41デフォルトの名無しさん:2008/08/12(火) 00:59:00
awt が重量コンポーネントに対して
swing が軽量コンポーネントと呼ばれますが
swing は awt を継承している(包括している)と思うのですが・・・
何が軽量なのでしょうか
42デフォルトの名無しさん:2008/08/12(火) 01:27:01
ネイティブコードが少ない
43デフォルトの名無しさん:2008/08/12(火) 01:52:49
>>41
Swingの解説を読めばまっさきに書いてあると思うんだが……。
44デフォルトの名無しさん:2008/08/12(火) 02:13:46
OSのリソースを使わないという意味で軽量だな
処理の重さや、継承によるコード量とかじゃない
描画はネイティブじゃないぶんだけ遅い
45デフォルトの名無しさん:2008/08/12(火) 02:18:02
描画が速いとかいってる奴がいるけど、英語の解説をちゃんと読んだことあるか?
46デフォルトの名無しさん:2008/08/12(火) 02:33:25
またその話っすか
47デフォルトの名無しさん:2008/08/12(火) 02:42:22
>>44
ほらほら、お呼びだぞww
48デフォルトの名無しさん:2008/08/12(火) 09:23:38
javaで積分するにはどうやってやるんですか?
49デフォルトの名無しさん:2008/08/12(火) 09:40:05
それよりも微分はどうやるんでしょうか?
50デフォルトの名無しさん:2008/08/12(火) 09:42:33
夏厨ばっかだなw
51デフォルトの名無しさん:2008/08/12(火) 10:07:20
おまえに聞いてない
52デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/12(火) 11:01:01
>>47
44は「遅い」って書いてあるように俺には読めるんだが
54デフォルトの名無しさん:2008/08/12(火) 11:42:20
以下のパディングで、全角を半角2文字分として処理させる手段はあるでしょうか。

System.out.format("%3s_", "あ");
結果: あ_ ※スペースが前に2つ入ってしまう。これを1つにしたい。
55デフォルトの名無しさん:2008/08/12(火) 12:11:29 BE:104062526-2BP(2)
>>48-49
数値微分、数値積分だったらできる。
差分法、区分求積法、リーマン積分、台形公式、シンプソンの三分の一則、ロンバーグ積分でググれ。
というか数値計算や数値解析の本読め。
ただし連続関数の微分、積分は一筋縄ではいかない。
正規表現が必要になってくる。
56デフォルトの名無しさん:2008/08/12(火) 12:32:17
正規表現はいらないだろw
なにいってんだこいつは。
57デフォルトの名無しさん:2008/08/12(火) 13:00:45
>>55
そこに書いてないようだけど、数値微分はどうやるの?
58デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/12(火) 13:29:55
Thread.sleepとwaitって何が違うんですか?
60デフォルトの名無しさん:2008/08/12(火) 13:35:25
waitはnotifyされたときに起きる
61デフォルトの名無しさん:2008/08/12(火) 13:38:22
>>58
FileOutputStreamの代わりにByteArrayOutputStream使って
FileDataSourceの代わりにDataSourceの自前の実装を使えばいいんじゃない
62デフォルトの名無しさん:2008/08/12(火) 13:53:35
main()の戻り値を返す方法はありませんか
Cならreturnで戻せるのですが・・・
6358:2008/08/12(火) 13:55:46
>>61
ありがとうございます。やっぱり自前で何かやらないとダメですか…
64デフォルトの名無しさん:2008/08/12(火) 14:12:11
>>62
System#exit(int)
65デフォルトの名無しさん:2008/08/12(火) 14:15:48
>>64
thx
66デフォルトの名無しさん:2008/08/12(火) 14:36:14
正規表現でパスワードをチェックしたいのですが、
半角数字、アルファベット大文字、小文字が混在していることを
条件にする方法がわかりません。
67デフォルトの名無しさん:2008/08/12(火) 15:07:12
>>66
無理に正規表現にするのはどうかと思うが・・・これでどう
(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])
6866:2008/08/12(火) 15:39:38
私も最初にその方法で確認したのですがだめでした

String str = "Hoge0123";
System.out.println(str.matches("(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])"));

falseになります。
69デフォルトの名無しさん:2008/08/12(火) 15:56:47
定数の扱い方について教えてください。
クラスの中にprivate finalをたくさん定義するのはよい方法なのでしょか。
C言語では、ヘッダーファイルに定数をまとめたりしますが、
javaではどうなのでしょうか。
70デフォルトの名無しさん:2008/08/12(火) 16:00:23
>>68
それだけだとゼロ文字にしかマッチしない
(?= ) は1文字も食わないから
71デフォルトの名無しさん:2008/08/12(火) 16:02:20
>>69
よい方法
少なくともコード中にマジックナンバを書くよりは

用途によってはenumを使え
72デフォルトの名無しさん:2008/08/12(火) 16:19:23
>>71
レスありがとうございます。
ただ、あまりにも定数が増えてくるといいますか、
どこまで定数として定義したらよいかの判断が難しいです。
たとえば、"ファイルの読み込みに失敗しました。"という文字列が
コード上で一回しか出てこないのなら、定数にする必要もないのかなと思います。
73デフォルトの名無しさん:2008/08/12(火) 16:28:58
>>72
文字列は国際化を考えてResourceBundleに入れるのが望ましい・・・けどまぁ面倒いよな
お好きにどうぞ
74デフォルトの名無しさん:2008/08/12(火) 16:57:37
>>55
入門編の地雷じゃないヤツを教えて。
75デフォルトの名無しさん:2008/08/12(火) 18:40:37
>>56
sin(x)をcos(x)に
log(x^2)を2x/x^2 = 2/x
と表示するにはなにかしら正規表現が必要

>>57
差分法と書いてあるだろう

>>74
地雷? 意味がわからない。
まずは数値計算の本を読め。
『Javaによるアルゴリズム事典』でも読め。
76デフォルトの名無しさん:2008/08/12(火) 20:06:50
>>75
正規表現って何か知ってる?
77デフォルトの名無しさん:2008/08/12(火) 21:44:16
せいきひょうげんだと……?
78デフォルトの名無しさん:2008/08/12(火) 22:05:38
もしかしてノーマライズのこといってる?
79デフォルトの名無しさん:2008/08/12(火) 22:06:50
ワロタww
80デフォルトの名無しさん:2008/08/12(火) 22:07:22
Regular representationだろ
81デフォルトの名無しさん:2008/08/12(火) 22:54:25
regular expressionだろ
82デフォルトの名無しさん:2008/08/13(水) 00:35:19
>>75
どうせ独学でしょ。sin[x]をcos[x]にするとかいってて、全然分かってないようだしw
83デフォルトの名無しさん:2008/08/13(水) 00:38:50
>>78
いや? 約分という正規化もしたいけどそれとは別に。
正確には文字列処理というべきだったか。
正規表現というから唐突過ぎたみたいだ。

だが合成関数など複雑な数式になると微分するときに正規表現も必要になるんじゃないのかって言いたかった。
84デフォルトの名無しさん:2008/08/13(水) 00:40:33
>>82
何が? あと、それだと配列になるぞ。
数値微分だったら簡単にできるだろ。
それとは別の、連続関数の微分のことを言ってるんだが。
85デフォルトの名無しさん:2008/08/13(水) 00:41:53
正規表現という用語は文字列のマッチング用パターンを指すのでややこしいから別の用語を使ってくださいお願いします
86デフォルトの名無しさん:2008/08/13(水) 00:47:29
MatheticaだったかMATLABだったか忘れたけど

y = diff(sin(x))
と入力すると


y = cos(x)
と表示してくれる言語があった気がする
87デフォルトの名無しさん:2008/08/13(水) 01:04:46
結局、ただの夏いやつだったんだよ・・・
88デフォルトの名無しさん:2008/08/13(水) 01:08:25
>>83
SICPの Symbolic Differentiation みたいなのをやりたいということかな?

Schemeみたいに簡単にはいかないよ。自分で構文解析する必要がある。
構文解析してS式なり、構文木作ってしまえば、Schemeと大差は無いよ。
89デフォルトの名無しさん:2008/08/13(水) 01:16:50
>>84
配列とか言ってるようだけど、独学だとしても最低限mathmaticaぐらいは使えるようになってくれ。
それとその数値微分だと、入力が10^-12なら出力は10^-6の半分程度の精度しかないんじゃないか?
90デフォルトの名無しさん:2008/08/13(水) 01:19:57
>>89
javaスレだぞ・・・
91デフォルトの名無しさん:2008/08/13(水) 01:23:00
数値計算はjavaでやるのが一番面倒がないね。ライブラリもそろってるし。
javaは、予約語だらけとかの他の複雑な言語に比べて簡単だからアルゴに集中できるけどね。
92デフォルトの名無しさん:2008/08/13(水) 01:44:06
>>88-89
そういえばMATLABを思い出したよ
>>86
symbolic(x);
y = diff(sin(x),x)
と入力すると
y = cos(x)
になるやつだったかな。

SchemeとMathematicaは良く知らないがMATLABはよく触っていたから覚えている。
Javaで同じことができるライブラリをどこかで見つけたが有料だったので
諦めた記憶がある。どこのサイトだったかまでは覚えていない。
93デフォルトの名無しさん:2008/08/13(水) 02:55:25
>>91
アルゴリズムをアルゴと略す奴は、MZユーザではないだろうな。
気持ち悪い略し方だ。アルクワリズミが草葉の陰で泣いてるぞ。
94デフォルトの名無しさん:2008/08/13(水) 03:07:34
流れをきって質問です・・・
Java自体が始めてまだ数ヶ月なのですが、ウィンドウアプリケーションを初めて作ってみました。
そこで、たとえば3秒ごとにウィンドウに今の時間を更新して表示するプログラムを作りたいのですが、いままでならスレッドで
for(;;){
min=calender.get(Calendar.MINUTE);
System.out.println(min);
Thread.sleep(3000);
}
と書いたスレッドを実行させておけばよかったのですが、ウィンドウ型になるとどうしていいかわからなくなってしまいました・・・
説明が下手で申し訳ないですが、
「3秒ごとに今の時間を取得してそれをウィンドウに表示させる」
というプログラムを作りたいです
95デフォルトの名無しさん:2008/08/13(水) 03:15:15
正規表現とか使ってシンボリックに微分をやったり数値計算するよりも、その結果を数学の自然表記にする方が難しいんだけどね。
積分や分数を教科書どおりにウインドに表示するとか。
96デフォルトの名無しさん:2008/08/13(水) 03:25:44
>>93
アルコイズミとか出してきて、おまえのほうがキモイ
97デフォルトの名無しさん:2008/08/13(水) 09:33:54
>>94
1.時刻表示ができる窓を作る。

2.時刻を更新するメソッドを書く。

3.2を定期的に呼ぶスレッドを書く。

4.3のスレッドの生成と実行を書く。


だいたいこんな感じ。
98デフォルトの名無しさん:2008/08/13(水) 10:03:16
>>96
アルゴリズムの語源になった人だぞ < アルクワリズミ
99デフォルトの名無しさん:2008/08/13(水) 10:15:49
すみません、>>52なのですが
アプローチがそもそも間違っているとかこういう質問はこのスレへ行くのがいいとか
そういった感じのことでもよいのでよろしくお願いします……

>>94
>>97さんの内容でいけると思いますが、表示をJTextBoxなどのswingコンポーネントでやる場合は
SwingUtilities.invokeLater()を使わないと表示処理が正しく行われないので注意してください。。
(swingコンポーネントの大半のメソッドは、イベントディスパッチスレッド以外から呼んではいけないという決まりがある)
http://homepage3.nifty.com/satoshis/java/swingtips/swing.html
100デフォルトの名無しさん:2008/08/13(水) 10:44:55
>>95
texとか知らないのか
101デフォルトの名無しさん:2008/08/13(水) 10:50:35
そのTeXという言語を作る仕事がものすごく難しい
102デフォルトの名無しさん:2008/08/13(水) 10:58:59
>>101
その難しいは、個人の能力が低い場合だろ・・・
103デフォルトの名無しさん:2008/08/13(水) 10:59:28
>>101
技術的に難しいという意味じゃねーじゃん
104デフォルトの名無しさん:2008/08/13(水) 11:40:43
>>101
そりゃ言語を作るのは、並大抵の難易度じゃないだろう。
けど、そういう話?
105デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/13(水) 12:59:59
>>97
レスありがとうございます。
その、表示する窓についてですが、時間を更新する3秒ごとに描画し直さなくてはならず、
g.drawString(時間)
も3秒ごとに実行させる必要があると思っています。このdrawStringもスレッドに組み込むのでしょうか?

質問が悪く、初歩的で申し訳ないです
107デフォルトの名無しさん:2008/08/13(水) 13:02:33
>>104
そういう話だった
Yacc/flexで言語作っている奴のコードを見ていたら
くそやばかった記憶がある。あれは並大抵の努力じゃ実現できないものだと思った。
108デフォルトの名無しさん:2008/08/13(水) 13:20:33
>>106
描画はpaintもしくはpaintComponentでする
スレッドは3秒ごとにrepaintを呼ぶ
109デフォルトの名無しさん:2008/08/13(水) 13:42:27
>>102-104

ひまなんでしょww
110デフォルトの名無しさん:2008/08/13(水) 13:51:43
>>107
努力してるのかどうかよりも、何がくそやばかったのか分からないんだけど
111デフォルトの名無しさん:2008/08/13(水) 15:35:45
くそやばかったかどうかよりbison/flexでもyacc/lexでもない件
ていうかjavaスレなんだからどうせなら標準でjavaを吐くパーザジェネレータの話をしようぜ
112デフォルトの名無しさん:2008/08/13(水) 17:06:24
質問です。
最近Javaをはじめたのですが
配列を今勉強していて、
ArrayListに突っ込み、それを拡張する方法はわかったのですが

例えば
int[] num_array = new int[5];
とかやった場合に
num_arrayの大きさ自体を変える事は出来ないのでしょうか?
113デフォルトの名無しさん:2008/08/13(水) 17:07:49
できない
新しく大きな配列を作って中身を移すしかない
114デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/13(水) 19:41:06
>150
使い方が色々間違っているような気がする
あとstdはどこに変数宣言あるんだ?
future.get(); も激しくデットロックの香り
116デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/13(水) 23:47:41
startしていないthreadはカウントされない
119デフォルトの名無しさん:2008/08/13(水) 23:48:33
>>118
ありがとうございます

もう一度試してみます
120デフォルトの名無しさん:2008/08/14(木) 00:07:48
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■

「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」

「仕事無いんだ・・・・・・」

「やろうぜ!」

「みんなでサイトつくろうぜwwwww」

http://gacco.o0o0.jp/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
121デフォルトの名無しさん:2008/08/14(木) 00:09:23
みんなでサイトつくろうぜwwwwwwwwww

みんなで本気でつくる気です。 がんばりましょう。
サイトのイメージはSNS×学校みたいな感じ。
サイトデザイン(案)
ttp://www36.atwiki.jp/vipvipschool?cmd=upload&act=open&pageid=12&file=title.jpg
ttp://www36.atwiki.jp/vipvipschool?cmd=upload&act=open&pageid=12&file=viploader744102.jpg
ttp://www.vipper.org/vip900611.png

技術を持ってる人はパー速へ!
ttp://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/

wiki:

vipでサイトつくろーぜ
ttp://www26.atwiki.jp/netschool/


詳細はwiki参照
122デフォルトの名無しさん:2008/08/14(木) 00:15:41
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■

「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」

「仕事無いんだ・・・・・・」

「やろうぜ!」

「みんなでサイトつくろうぜwwwww」

http://gacco.o0o0.jp/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
123デフォルトの名無しさん:2008/08/14(木) 00:16:29
>>120
あれ。。俺がいる。
ホントすまなかった。
124デフォルトの名無しさん:2008/08/14(木) 01:54:38
相変わらずキモイな
C#と同じくどんどん糞スレになってくれ
125デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/08/14(木) 03:24:21
>>125
データベースから取得したlong値は正しい値で取得されている?
秒単位でなくてミリ秒単位だからだいたい 31500000000 より小さい値なら1970年になる。
127デフォルトの名無しさん:2008/08/14(木) 03:39:42
アクセス修飾子について質問です。

protected:
 同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。

なし(デフォルト):
 そのインスタンス、または同一パッケージに所属するクラスのインスタンスからアクセス可能。

となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
インスタンスからは、アクセスすることができないのですか?
128デフォルトの名無しさん:2008/08/14(木) 03:42:45
うん
129デフォルトの名無しさん:2008/08/14(木) 03:48:49
では、アクセス就職子の序列が

public > なし(デフォルト) > protected > private

となっている参考書は間違いなのですか?

「protected」の場合にアクセスできるものに
「なし(デフォルト)」の場合にアクセスできないので。
130デフォルトの名無しさん:2008/08/14(木) 03:49:10
>>127
protectedは同一パッケージ内のクラスからもアクセス可能。
131デフォルトの名無しさん:2008/08/14(木) 03:50:59
protectedの説明が
> 同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
になっているのなら、その参考書の説明は間違い。
132デフォルトの名無しさん:2008/08/14(木) 03:53:18
あー逆だ
public > protected >> なし(デフォルト) private
が正しい。
protectedの方が公開の範囲が広い。
133デフォルトの名無しさん:2008/08/14(木) 03:58:09
public > protected >> なし(デフォルト) private
は、
public > protected > なし(デフォルト)> private
ね。だから、
> となっている参考書は間違いなのですか?
は間違いで正しい。
まとめると、
> となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
> インスタンスからは、アクセスすることができないのですか?
は正しい。
> public > なし(デフォルト) > protected > private
> となっている参考書は間違いなのですか?
も正しい。つまり間違ってる。
134デフォルトの名無しさん:2008/08/14(木) 04:13:16
>>130-133
了解です!
ありがとうございます!
135デフォルトの名無しさん:2008/08/14(木) 04:22:01
そんな糞参考書は窓から投げておk
136デフォルトの名無しさん:2008/08/14(木) 05:11:35
糞はおまえw
137デフォルトの名無しさん:2008/08/14(木) 06:24:30
会話が成り立っていない
138105:2008/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デフォルトの名無しさん:2008/08/14(木) 10:52:28
どなたか>>52(>>99)をお願いします…
何か質問の仕方マズかったでしょうか
140デフォルトの名無しさん:2008/08/14(木) 12:35:08
やっぱ"Ruby"ですよ!
141デフォルトの名無しさん:2008/08/14(木) 13:04:24
>>139
1.2以前でっていう限定がきつい。
古すぎてだれも答えられないと思う。
142デフォルトの名無しさん:2008/08/14(木) 13:10:54
>>141
初心者の宿題出なければ、appletを作っているやつ自体いないのでは
143デフォルトの名無しさん:2008/08/14(木) 13:43:41
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
http://gacco.o0o0.jp/
http://yutori.2ch.net/test/read.cgi/news4vip/1218673130/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
 *サーバー側
  言語はRubyかPerlの予定ですが、Perlが有力候補。
  ・チャット
   定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
   通信するときのフォーマットは未定。
  ・ログイン・アカウント管理
   ログイン認証、各アカウントの点数などの管理。データベースは未定。
  ・お絵描き
   未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
 *クライアント側
  はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
 「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
 挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
 サイトのデザインを考えてくれる人、作ってくれる人募集中。
 できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
144デフォルトの名無しさん:2008/08/14(木) 14:09:09
>>139
1) java.util.zip 使って外部アーカイブを読める自前の URLStreamHandler 作って、
URL.setURLStreamHandlerFactory してみるとか……
セキュリティマネージャに怒られてダメかもしれんが。

2) 1.1レベルでは互換性の高そうな標準API使う方法だと
1)のアプローチぐらいしかないので、それがダメなら
外部jar使うの諦めるか、互換性諦めるか、音出す事を諦めるか選ぶしかないと思うぞ。
145デフォルトの名無しさん:2008/08/14(木) 14:20:42
たぶんwebで公開のappletじゃないと思うけど、Class.getResouceAsInputStream()とかかな。
javaのデスクトップは、アプレットに適したライブラリが全くなかった他の技術に先を越されたけど、それを補うように進化してきたから、1.2以前だといろいろ出来るわけじゃないよ。
146デフォルトの名無しさん:2008/08/14(木) 15:47:14
回答ありがとうございます!

>>141,142,145
うーんやっぱ今時Appletでしかも1.1縛りなあたりがネックですよねぇ。
自分としては1.2以降のAPI使いたいんですが、MRJに対応しなくてはならない事情があるものでして。
無理そうなら環境によって動作切り替える方向で進めてみようと思います。

>>144
なるほど、URLStreamHandlerは今まで全く見てませんでした。
URL指定をメモリ内のByteArrayInputStreamにリダイレクトできればあるいは、のような感じですね。
光明が見えたような気がしてきました。この方向で色々トライしてみます。
147デフォルトの名無しさん:2008/08/14(木) 16:47:01
ライブラリは進化してきたといってるのに、自作しちゃう人がまた一人・・
148デフォルトの名無しさん:2008/08/14(木) 16:54:55
実行中にアプリから、あるインスタンスがどこから参照されているかを確認する術はあるでしょうか?
149デフォルトの名無しさん:2008/08/14(木) 17:08:10
プロファイラで辿れない?
150デフォルトの名無しさん:2008/08/14(木) 17:28:42
このままライブラリ、というか、部品化が進んでいったら、
やがてプログラマが必要なくなるのではなかろうか?
部品をちょちょいと選択すればプログラムができてしまわないだろうか?
そのとき、元プログラマの人は、どうやって食っていくのだろうか?
151デフォルトの名無しさん:2008/08/14(木) 17:35:50
>>149
稼動サーバーでのみリークが発生するようで、アプリ内で何とかしろといわれているので、
JDTとか見たんですけどまったく理解できずに断念です。
やはりツールを使用しないと無理ですかね・・・
152デフォルトの名無しさん:2008/08/14(木) 17:50:19
日頃の勉強と技術力しだいだなw
153デフォルトの名無しさん:2008/08/14(木) 18:06:26
Swingにベクタ画像(psとかeps)なんかを表示するものはありますか?
探しても見つからなかったので…
ない場合、何らかの形でJPanel辺りに貼り付けて表示する方法はあるのでしょうか?
154デフォルトの名無しさん:2008/08/14(木) 18:07:30
2chで質問するほどだなんて、ひでー職場だな。
155デフォルトの名無しさん:2008/08/14(木) 18:12:13
>>154
俺の職場、それしかなかったけど。。

色々掲示板みてると俺のいた職場がよほどくそだったことがよくわかる。
ここで揶揄されてることが俺の職場ではまさにデフォルトだった。

ろくに経験もないうちから研修(実務にまったく役に立たない)と称して独力(上司は単なる営業社員)でつくらされて
現場にいっても俺みたいなど素人がもう一人。。できるわけねえだろ。。
156デフォルトの名無しさん:2008/08/14(木) 18:47:47
>>110
そりゃあソースコードが複雑で読みにくいという
157デフォルトの名無しさん:2008/08/14(木) 19:56:43
みんなそれでやってきたんだし、おまえの技術力が低いだけじゃね?
158デフォルトの名無しさん:2008/08/14(木) 19:58:43
>>155
おまえが糞だってことが良く分かった
159デフォルトの名無しさん:2008/08/14(木) 20:09:30
匿名メソッドのメリットがいまいち分からないのですが、
コーディング量が少し減ることと、
そのメソッドへ他からアクセスできないこと以外で
何かメリットってあるのでしょうか?
よろしくお願いします。
160デフォルトの名無しさん:2008/08/14(木) 20:10:15
匿名メソッドなんてあったっけ?
161デフォルトの名無しさん:2008/08/14(木) 20:15:04
匿名クラスでした、すみません
162デフォルトの名無しさん:2008/08/14(木) 20:42:09
>>155
それは職場が糞なんじゃなくて、お前が糞なんじゃないの?
なんかお前にはVBの方が向いてるような・・・
163デフォルトの名無しさん:2008/08/14(木) 20:46:24
そういう話はマ板でどうぞ
164デフォルトの名無しさん:2008/08/14(木) 21:44:18
相変わらず、糞だらけのスレですね(^^
165デフォルトの名無しさん:2008/08/14(木) 22:40:07
>>159
・いちいち名前を考えずに済む
・普通の内部クラスは書く場所と使う場所が離れていてわかりにくい
166デフォルトの名無しさん:2008/08/14(木) 23:53:02
fileChooserを利用して、選択したクラスファイルを取得したいのですが

File file = fileChooser.getSelectedFile();
Class cls = file.getClass();

これではうまくできません。
どのようにすれば良いか、どなたか教えてくれませんか?
167デフォルトの名無しさん:2008/08/15(金) 00:32:35
クラスファイルをロードしたいってことか?
class MyClassLoader extends ClassLoader {
public Class<?> loadClassfile(File file) throws いろいろ {
byte[] data = new byte[(int)file.length()];
FileInputStream in = new FileInputStream(file);
new DataInputStream(in).readFully(data);
in.close();
Class<?> cls = defineClass(null, data, 0, data.length);
resolveClass(cls);
return cls;
}
}
という独自クラスローダを作って、
Class<?> cls = new MyClassLoader().loadClassfile(file);
でどうよ
168デフォルトの名無しさん:2008/08/15(金) 00:50:39
>>167
クラスを取得してコンストラクタの分析などをリフレクションを用いて実現させたいんです。

File file = fileChooser.getSelectedFile();
Class cls = Class.forName(file.toString());

とかも試したんですけどうまくいきませんでした…
なにぶん初心者なもので、根本的なことが間違ってる気がしてならないですorz
169デフォルトの名無しさん:2008/08/15(金) 01:44:09
>>168
Class.forNameで渡すのはFileとかのクラスファイルの場所ではなくてクラス名そのもの。
クラスファイルをクラスパスの通っているところから参照できる場所に置いておけばクラス名から探してくれる。
クラス名がfoo.bar.Hogeならクラスパスの通っているところのサブディレクトリとしてfoo、その下にbarという
ディレクトリがあって、その中にHoge.classがあればClass.forName("foo.bar.Hoge")でClassインスタンスが得られる。
クラスパスとは無関係にクラスをロードしたいのならURLClassLoaderを使うのが楽かも。
URLClassLoaderでぐぐればサンプルはいくらでもある。
170デフォルトの名無しさん:2008/08/15(金) 04:09:03
>>167
readFully(data); を使うのは単に趣味ですか?
read(data);とどう違うのかAPI Docs上から分からないんですがご存知でしょうか。
171デフォルトの名無しさん:2008/08/15(金) 04:57:34
readは指定したバイト数全部を読み込むことは保証されていない
1バイトでも読めれば、読み込めたバイト数を返す

readFullyは指定したバイト数全部読み込む
読み込めなければEOFException
172デフォルトの名無しさん:2008/08/15(金) 05:35:43
秒妙な違いですけど、引数がFileなのでreadFullyはやらないほうがいいのでは?
間違ってはないけど、そこで使うのはDataInputの設計目的と微妙に違うような…
173デフォルトの名無しさん:2008/08/15(金) 09:19:21
いつも来ていた糞野郎は死んだか?
174デフォルトの名無しさん:2008/08/15(金) 10:29:51
Thread.currentThread().getStackTrace()でスタック情報が取得できますが、引数インスタンスは取得できません。
引数インスタンスを取得する方法はあるでしょうか?
175デフォルトの名無しさん:2008/08/15(金) 10:39:16
>>174
caller の引数に触りたいって話ならデバッガ使えば?
176デフォルトの名無しさん:2008/08/15(金) 14:05:49
糞はドブに流れていってしまったが?
177デフォルトの名無しさん:2008/08/15(金) 19:18:11
テストについて質問です。
値を返すメソッドなら期待される値と実際の値を比較しますが、
値を返さないメソッドはどのようにテストをすればいいのでしょう。
DBに書き込むメソッドとかなら書き込まれた値をチェックできますが、
例えば以下のようなものです。
・メールを送信するメソッド
・コンソールに文字を出力するメソッド
178デフォルトの名無しさん:2008/08/15(金) 19:46:12
mainって普通プログラムの中でどういう部分を書くものなのでしょうか?
staticだから長いプログラムを書くと面倒になる部分が多いので
mainでは自分のクラスのコンストラクタをnewするくらいにしか使わなくて、
そのコンストラクタの方で色々書くようにしているのですが、どうなんでしょう?

179デフォルトの名無しさん:2008/08/15(金) 19:49:06
テストの基本は事前条件と事後条件が正しいことを確認すること
・メールを送信するメソッド
メールを送信するクラスが正しく呼び出されたかをチェックする

・コンソールに文字を出力するメソッド
これは難しいのでやらない
やる場合は、特定の文字を出力するメソッドのテストとしておいて、
Writerはsetterで設定できるようにしておく
どちらにせよコード中にSystem.outがあるのはウンコ
180デフォルトの名無しさん:2008/08/15(金) 19:51:46
>178
いわゆるエントリポイントってやつだから、外部から起動する時に必要な範囲の処理を行うのが正しい
なので、コンストラクタの方で色々やっているのは正しいよ。
mainに書くべき処理といえば、後はプログラムの実行引数のチェックやデフォルト値の設定。
バグで落ちたときにどうするかの処理とか、そんな感じだろうな
181177:2008/08/15(金) 20:12:33
>>179
> メールを送信するクラスが正しく呼び出されたかをチェックする
これ、もうちょい詳しく解説してくれるとうれしいです。

> Writerはsetterで設定できるようにしておく
なるほど。それなら結構簡単にテストできそうですね。
182デフォルトの名無しさん:2008/08/15(金) 20:22:42
>>177
テストアドレスに送信して、受信して、その内容をチェックすれば良いだけでは
183デフォルトの名無しさん:2008/08/15(金) 21:40:47
>>181
方法は幾つかあるけど、インターフェイスをきってテスト用のオブジェクト(モック)でテストを実行する。
モックなんで実際にはメールを投げずに内部的なステータスを変化させるだけ
テストとしてはステータスが変わった(目的のメソッドが実行された)ことを確認する

完全にJavaMailを使っている箇所などをテストする場合は面倒だけど、EasyMockなんかを利用するしかない。
単体テストで再帰的にやるならばこんな感じ。

後は本当に動くかどうかは開発中は動作確認レベルで済ませてシステムテストでやる
184デフォルトの名無しさん:2008/08/15(金) 22:20:58
ネットワークプログラミングを勉強中なのですが、
サーバ側
public static void main(String[] args){
ServerSocket ss=new ServerSocket(7777);
Socket sock=ss.accept();
BufferedReader br=new BufferedReader(new InputStreamReader(sock.getInputStream()));
System.out.println(br.readLine());
br.close();
sock.close();
ss.close();
}

クライアント側
public static void main(String[]  args){
Socket sock=new Sock(コンピュータ名,7777);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sock.getOutputStream));
bw.write(br.readLine());
bw.close();
br.close();
sock.close();
}

この二つを実行するとサーバ側で何も表示されません。
クライアント側のBufferedReaderの件を全部消してbw.write("hoge");
とかに直すと、ちゃんとサーバ側のPCでhogeと表示されるのですが、
何がいけないのでしょうか?
185デフォルトの名無しさん:2008/08/15(金) 22:23:09
closeしちゃダメだろ
186デフォルトの名無しさん:2008/08/15(金) 23:50:37
JNIを使ってJavaの引数にクラスを指定し、
C側でクラス内のString型のフィールドにデータを入れようと以下のようなプログラムを書きました。
そしたら半角カナに濁点の文字が文字化けしてしまいました。
こういった場合どのように対処したらいいのでしょうか、ご教授ください!

C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");
env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
return 0;
}

java側↓
HogeClass hoge = new HogeClass();
 Main.Test(hoge);
System.out.println(
new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
);
187もう泣きそう:2008/08/16(土) 01:30:05
UNIXの環境変数受け渡しについて
教えて下さい。

シェルスクリプトで設定した環境変数は、JAVA(jarのクラス)側で
読み取れると思いますが、その逆は可能なのでしょうか?

以下を想定しています。
もし可能なら、メソッド名とかを教えて下さい。

-----------------------------------------
#!/bin/bash
export AAA=a.txt

java classA -xm=512m・・・

echo KEKKA1=$KEKKA1 ←これが可能でしょうか?
echo KEKKA2=$KEKKA2 ←これが可能でしょうか?
-----------------------------------------

public void class cassA {
  String aaa = system.getenv("AAA");
  String kekka1 = "data1"; ←これを返したいのです。
  String kekka2 = "data2"; ←これを返したいのです。
  (設定するロジックというかメソッド名・・・)
}

JAVA側の変数をシェルで読み取れれば良いのですが、
もし可能なら、メソッド名とか簡単でもいいのでサンプル例等を
教えて下さい。
もう泣きそうです・・(;-;)
188デフォルトの名無しさん:2008/08/16(土) 01:38:01
何か良くわからんけどファイルに書き出せば良いじゃん
でシェルで読み込めば
189デフォルトの名無しさん:2008/08/16(土) 02:03:52
>>187
通常、子プロセスは親プロセスの環境変数を変えられない。
190デフォルトの名無しさん:2008/08/16(土) 05:21:40
JDBC での Oracle との連携を勉強しようとしていたら
Oracle のサイトに Java関連の Tips が大量に合って助かったのですが
逆に .NET でのサンプルが皆無だったので気になりました
Oracle と Java って何か深い繋がりがあるのでしょうか?
それとも Oracle が Java を一方的に支持してる感じ?
191デフォルトの名無しさん:2008/08/16(土) 07:40:40
>>186
半角かな以外は化けないか確認した?
半角英数はともかく、漢字は化けると思うが。

> env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
これ UTF-8 渡してるのか?
VisualC++ とかなら env->NewString(L"サブキー", 5) とかした方が。

> new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
これやると確実に化けるんじゃね?
192デフォルトの名無しさん:2008/08/16(土) 08:49:08
>186
JNI を使ってJavaクラスのパラメータをいじる方法は良く分からんですが、
半角カナというのは、どの文字符号化方式で定義されているものを使うのですかね。

String 内部は UTF-16 (char) 配列です。
193デフォルトの名無しさん:2008/08/16(土) 09:43:02
a
194デフォルトの名無しさん:2008/08/16(土) 11:03:24
interfaceは多重に継承できるんですけど、もしスーパー・インタフェイスと
メソッド名やシグニチャがかぶったら継承できないんですか。
特に他の人が使ったインタフェイスで、
戻り値がかぶったり、戻り値がlongとかだったらどうするのでしょうか。

どうやって回避するんでしょうか?
195デフォルトの名無しさん:2008/08/16(土) 11:27:09
>>194
シグニチャ同じで戻り値型違うのは無理。
シグニチャ同じで戻り値型同じなら実装できるけど、
各interface が別々の振る舞いを期待してる場合は無理。

メソッド名付ける時点で被らないように気をつけるぐらいしかないね。
196デフォルトの名無しさん:2008/08/16(土) 11:30:12
>>194
インターフェースはそもそもシグネチャしか定義しない(定数定義もあるけどここでは無視)ので、多重定義になっても問題はない。
何故なら、同じ名前、同じ引数、同じ返り値を持っている、ということ以外の情報は定義されないから。
実装側で、同じシグネチャなのに異なるインターフェースでアクセスされると違う動作をしなければならない、ということであれば、それは設計が間違っている。
197デフォルトの名無しさん:2008/08/16(土) 11:38:24
>>196
そういう問題じゃなくて、AppendableとStringBuffer.appendのような話をしてるんですけど…

それもjdk1.4以前だとどうやって回避してたんでしょうか。

198デフォルトの名無しさん:2008/08/16(土) 11:41:59
> AppendableとStringBuffer.appendのような話
このケースって、なんか問題あんの?
199デフォルトの名無しさん:2008/08/16(土) 11:48:01
jdk1.4以前
200デフォルトの名無しさん:2008/08/16(土) 11:49:53
1.4以前は Appendableないから問題ないよ。
201デフォルトの名無しさん:2008/08/16(土) 12:02:47
>>197
何が疑問なのかわからん。その例ってインターフェースの多重継承とは何の関係もないじゃん。
一応書いとくけど、インターフェースの多重継承って、
interfece SuperInterfaceA { int hoge(int x); }
interface SuperInterfaceB { int hoge(int x); }
interface SubInterface extends SuperInterfaceA, SuperInterfaceB {}
というものだぞ。
202デフォルトの名無しさん:2008/08/16(土) 12:25:23
203デフォルトの名無しさん:2008/08/16(土) 12:50:00
classと同じでinterfaceをextends出来るけど、継承」の意味が少し違うようですね。

本当は、自作のインタフェイス interface My_interface{
My_interface append(My_interface); 
}
例えば引数assertチェックありで、
class StringBufferも引数My_interfaceに参加させたいんですけど、
class StringBufferは当然他人が作ったライブラリなので、My_interfaceを実装できません。

今のところifで分岐してるんですけど、こういうときは、どうやれば自作インタフェイスにくわえられるんでしょうか。


204デフォルトの名無しさん:2008/08/16(土) 12:52:20
例えば引数assertチェックありとかの実装で。
205デフォルトの名無しさん:2008/08/16(土) 12:58:17
アダプタパターン
206デフォルトの名無しさん:2008/08/16(土) 13:45:32
アダプタよりもデコレータ・パタンかな
207デフォルトの名無しさん:2008/08/16(土) 13:47:28
>>200
例えばで出してみたんですけど、分かりませんか?
自作したインタフェイスの話しなんですけど・・・
208デフォルトの名無しさん:2008/08/16(土) 13:53:32
なんかでラップすりゃいいじゃん
209デフォルトの名無しさん:2008/08/16(土) 14:15:28
>>203
まず、Javaでは原則として既存のクラスやインターフェースに手を加えることはできない。
該当のクラスがfinalでなければ、サブクラスを作ってそこでimplementsする手はある。
該当のクラスがfinalであれば、自作のクラスでラップするしかない。
210デフォルトの名無しさん:2008/08/16(土) 16:38:08
Listのキャストはエレメントを個別にキャストするしかありませんか?
211デフォルトの名無しさん:2008/08/16(土) 16:38:53
generics 使えば?
212デフォルトの名無しさん:2008/08/16(土) 16:47:37
どうするんですか?

(List<MyClass>)list
のようなキャストが失敗します。
213デフォルトの名無しさん:2008/08/16(土) 16:54:48
自作したインタフェイスを使ってライブラリ作ってんるんですけど、
そこに他人が作ったクラスも参加させるのはどうするんでしょうか?

とういことなんですけど、これだけじゃ何言ってるかわからないと思いませんか。
214デフォルトの名無しさん:2008/08/16(土) 16:57:22
>>213
共有ライブラリとかプラグインとかリフレクションの世界のことかと思った。
215デフォルトの名無しさん:2008/08/16(土) 18:33:05
class MyBig extends BigDecimal {
    MyBig(String v){super(v);}
    public MyBig abs(){return this;}
}

BigDecima.abs()をオーバライドしたいのですが、1.4以前ではどうやるんでしょうか。
negate()と同じく、メソッド名に意味があるので名前を変更できないので何かよい方法はないでしょうか?
216デフォルトの名無しさん:2008/08/16(土) 18:54:57
eclipse の JDT を使ってみようと思ってるんですが,eclipse 上で,
import org.eclipse.jdt.core.dom.*;
などど打っても org.eclipse が見つかりませんというエラーが出てしまいます.

どうすれば解決できますか?
217デフォルトの名無しさん:2008/08/16(土) 19:09:49
>>215
1.4 だと covariant return typeが使えないから public BigDecimal abs()で我慢。
もしくはextends BigDecimalを諦める。
218デフォルトの名無しさん:2008/08/16(土) 19:43:52
finalで参照型変数を宣言した場合、
それはどこを参照するかを固定するという認識で合ってますでしょうか?
その場合、参照先のインスタンスの属性をsetter等を用いて変更されないようにするというのは
不可能なのでしょうか?
219デフォルトの名無しさん:2008/08/16(土) 20:09:15
>>213
SPIのことじゃない?
220デフォルトの名無しさん:2008/08/16(土) 20:37:33
>>218
Immutable な拡張クラス作って属性変更できないようにするとか
不可能じゃないけど変更されないようにできる便利な言語機能はない。
221デフォルトの名無しさん:2008/08/16(土) 20:40:07
>>218
setterを作らない
222デフォルトの名無しさん:2008/08/16(土) 21:36:26
Java を使って組み込み系のソフトウェア(携帯アプリ除く)を作成することはできますか?
223デフォルトの名無しさん:2008/08/16(土) 21:48:51
CDC JavaTVetc
224デフォルトの名無しさん:2008/08/16(土) 23:41:22
>>216
自己解決しました.
プロジェクトをプラグインプロジェクトに変更して,プラグイン依存関係を解決したらO.K.でした.
225デフォルトの名無しさん:2008/08/17(日) 00:25:07
>212
キャストは動的。ジェネリクスは静的かつ、型情報は消滅。

>218
変更させたくないインスタンスは委譲でも使って隠匿すべし。
22694:2008/08/17(日) 01:12:31
94です。だいぶ前で皆さん忘れておられると思いますが、この擦れの方のおかげであの質問は解決しました。
遅くなりましたが、応えてくださった97さんや99さんなど、皆さんありがとうございます。

・・・すいません。それだけです。
227デフォルトの名無しさん:2008/08/17(日) 01:27:37
どうせならどのように解決したかを書いてくれると、後から読む人のためになって良い
228デフォルトの名無しさん:2008/08/17(日) 12:55:58
スタンドアロンのJavaアプリで、HTMLのクリッカブルマップのようなことは、可能でしょうか?
具体的には、フォーム上に日本地図の画像があって、
各県をクリックすると、ポップアップウィンドウが表示される、
みたいな感じなんですが。
229デフォルトの名無しさん:2008/08/17(日) 13:00:47
非常に簡単
230デフォルトの名無しさん:2008/08/17(日) 19:59:57
このスレには親切な人が多いですね。たまにマ版と間違えてるような変な人もいますが・・・・
231デフォルトの名無しさん:2008/08/17(日) 20:34:20
マと何か区別しなきゃいけないのか?
232デフォルトの名無しさん:2008/08/17(日) 21:23:11
>>231
愚痴を書き込むスレではないだろ
233186:2008/08/17(日) 21:28:01
なんとか解決したっぽいです。
初心者なので、UNICODEとUTF8の違いとかいまいちピンときませんが、
イメージは「UNICODEがIDとしたらUTF8はIDをUTF8という形式で表現したデータ」ということでしょうか?
間違ってましたら指摘してくださいorz

で、UTF8での受け渡しを止めてUNICODEでの受け渡しをするようにしました

C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");

const char* cc = "サブキー";
int unicodeLength = MultiByteToWideChar(CP_ACP, 0, cc, strlen(cc), NULL, 0);
WCHAR* unicodeBuffer = new WCHAR[unicodeLength];
MultiByteToWideChar(CP_ACP, 0, messagetmp, strlen(messagetmp), unicodeBuffer, unicodeLength);
jstring strj = env->NewString((jchar *)unicodeBuffer,unicodeLength);
env->SetObjectField(obj, fidsData, strj);
return 0;
}

java側↓
HogeClass hoge = new HogeClass();
Main.Test(hoge);
System.out.println( hoge.strParam );

ちゃんと表示できてるみたいです。
しばらくはまってたのですが、「sizeof」で文字サイズを取得してたのですが、
マルチバイト?では使えなくて「MultiByteToWideChar」を使用しないといけないということですね。今までjava言語しか触ったことないのでしたorz
もっと簡単な方法ありましたら是非ご教授くださいm(__)m
234デフォルトの名無しさん:2008/08/17(日) 21:41:51
>>233
wchar_t wcstr[] = L"サブキー";
jstring strj = env->NewString((jchar *)wcstr, sizeof(wcstr) / sizeof(wchar_t));

Windows環境っぽいので wchar_t が UTF-16 きめうち。
テストしてないので動かなかったらごめん。
あと new WCHAR[unicodeLength] したのに delete しなくていいんか?
235デフォルトの名無しさん:2008/08/17(日) 22:02:02
>>233
いくら夏とはいえ、ちょっと見にコンパイルを通らないコードを貼るやつって、何がしたいんだろうな・・・
236デフォルトの名無しさん:2008/08/17(日) 22:12:35
初心者ってのはそういうもんさ
237デフォルトの名無しさん:2008/08/17(日) 22:24:06
おい、おまいらJavaでアップロードされたファイルのヘッダ検査を行なうjarはないですか?
教えてください。お願いします。
238デフォルトの名無しさん:2008/08/17(日) 22:27:44
調子のんな
239デフォルトの名無しさん:2008/08/17(日) 22:33:02
やっぱC#スレの方がいいわ
240デフォルトの名無しさん:2008/08/17(日) 23:14:57
javaのvmって sun と ibm と hp の3種類?
241デフォルトの名無しさん:2008/08/18(月) 00:00:16
Swingを使ってGUIを書いています。
所謂非矩形ウィンドウを作りたいと思い、検索してみたところ、
1. Mac限定の方法(背景色を透過色に設定?)
2. ウィンドウの下をキャプチャして疑似透過
の二つがあるらしい、ということを知りましたが、1番は問題外、
また、最前面に表示するような仕様のため、2番では背景と矛盾が
生じない為の頻繁な更新による負荷がやや重めになってしまいます。
もし他に方法がありましたら、参考URL等を教えてください。

#具体的には、Officeに出てくるうるさいイルカみたいな感じで、
#画像を枠無しで表示したいと考えています
#SWTだとRegionとやらで実装できるようなのですが...
242デフォルトの名無しさん:2008/08/18(月) 00:06:32
jdk7を待った方がいいんじゃないかな?
https://jdk6.dev.java.net/6u10ea.html
確かこれでShapeを使った非矩形ウィンドウが作れたはず・・
243デフォルトの名無しさん:2008/08/18(月) 00:29:07
修飾子の読み方を教えて下さい
Gooleしても見つかりません
244デフォルトの名無しさん:2008/08/18(月) 00:31:38
そりゃ見つからないわ
245241:2008/08/18(月) 00:32:08
おぉ。どうもありがとうございます。
AWTUtilitiesとやらで非矩形や透過ウィンドウが実装出来るようになるのですね。
とりあえずはBeta使って仮実装したり、他の方法も色々工夫したりしてみながら
のんびりと正式版のリリースを待つことにします。

素早いご返答、ありがとうございました。
246243:2008/08/18(月) 00:38:37
Googleの間違いでした

ほんと修飾子って何て読むんですか?
247デフォルトの名無しさん:2008/08/18(月) 00:51:09
おもしろい回答できないわ。
「しゅうしょくし」だよ。
248デフォルトの名無しさん:2008/08/18(月) 00:51:29
jdbcのPreparedStatementなんですが、
setLongに高いインデックス(10くらい)を指定すると、
executeUpdateでエラーが発生するようです。
要は、INSERT INTO文のVALUESに指定できる?の数に制限が
あるということなのですが、この問題にはどう対処したらよいでしょうか。
249デフォルトの名無しさん:2008/08/18(月) 00:51:51
「しゅうしょくし」

ってか流石にこれはガチで小学生でも分かるから、
そういう意味ではなくvolatileとかstrictfpとかの読み方を聞いてるのか?
250デフォルトの名無しさん:2008/08/18(月) 01:01:29
特殊なデザインのウインドウは、はっきり言って使いづらいからやめて欲しい
251デフォルトの名無しさん:2008/08/18(月) 01:04:32
しゅうしょくしがしょくしゅにしか見えないんだが・・・
252243:2008/08/18(月) 01:10:03
>>247
>>249

ガチで有難うございます
ほんと何て読むか解らなくて…

年は40なんですが、趣味でプログラムでも始めてみようかと思い
創るJavaって本を買いまして、暇暇に読んでます

もちろん仕事はプログラムとは
あまり関係ありません

ただ、知識は無いと
指示が出来ないんですよね…
253デフォルトの名無しさん:2008/08/18(月) 02:14:27
254デフォルトの名無しさん:2008/08/18(月) 09:39:00
>>252
ではオジサン相手に手取り足取り教えてやろうか。
255デフォルトの名無しさん:2008/08/18(月) 09:41:55
むしろ中途半端な知識で指示される方が迷惑
256デフォルトの名無しさん:2008/08/18(月) 09:48:07
>>252
老婆心ながら
読むだけじゃだめだぞ
257デフォルトの名無しさん:2008/08/18(月) 11:54:15
Javaなんかネットの勉強サイトで十分しょw
258デフォルトの名無しさん:2008/08/18(月) 11:56:17
じゃう゛ぁ♪じゃう゛ぁ♪
じゃう゛ぁじゃう゛ぁジンジンジーン♪
259デフォルトの名無しさん:2008/08/18(月) 12:07:08
ConcurrentSkipListSetってクラスつかったら
プログラムを実行するたびに
同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。
なぜですか?
TreeSetにしても同じような症状でした。
でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。
どうしてかおしえてください。
260デフォルトの名無しさん:2008/08/18(月) 12:50:32
初心者の質問ですいませんが教えてください
javaにはオペレーターは無いはずですが
なぜStringクラスだけ+=が使えたりするんでしょうか
どなたかおしえてください
261デフォルトの名無しさん:2008/08/18(月) 12:51:46
組み込み
262デフォルトの名無しさん:2008/08/18(月) 13:42:50
Instrumentを変更してMIDIを再生したいのですが、現在使用可能なSynthesizerがcom.sun.media.sound.MixerSynthだけで、そのSynthesizerでloadInstrument()してもIllegalArgumentExceptionを投げられてしまいます。
ソースを読んでみると、MixerSynthの親の抽象クラス「AbstractPlayer」にて、型のチェックでHeadspaceInstrumentの子クラスじゃないと読み込めないようにしてあるようなのです。
さらにそのHeadspaceInstrumentというのはデフォルトアクセスで、どうしようもないのです。

どのようにすればInstrumentを追加・変更できるのでしょうか?
263デフォルトの名無しさん:2008/08/18(月) 14:01:48
>>259
日本語で
264デフォルトの名無しさん:2008/08/18(月) 15:17:26
>>260
> javaにはオペレーターは無いはずですが
Javaにはオペレータが結構あります。
Stringクラスだけでなくintでも+=が使えます。
クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。
265デフォルトの名無しさん:2008/08/18(月) 15:56:23
javaってcみたいにコアダンプ(メモリダンプ)できないのでしょうか。
cの場合ログから解析が難しい場合はその段階でkill -SEGVでメモリダンプしてデバッガでメモリの情報を調査するという方法があり
それをjavaでもやりたいと思っているのですが。
eclipseで接続できないところなので、そこでダンプを取って持ち帰ってeclipseで確認したいと思っていますが、
cのようにいかないですかね???
266デフォルトの名無しさん:2008/08/18(月) 16:19:55
java vmのコアダンプを追いかける・・・言ってみただけ
267デフォルトの名無しさん:2008/08/18(月) 16:45:23
class Oya{
public void show() throws Exception{
System.out.println("oya");
}
}

class Ko extends Oya{
public void show(){
System.out.println("ko");
}
}

public class Cui{
public static void main(String args[]){
Ko a=new Ko();
Oya b=new Ko();
a.show();
b.show();
}
}

これでb.showでエラーが出るのが理解出来ません。
bはサブクラスでオーバーライドされた方のメソッドを呼び出しているので
やっていることはa.show()と同じ気がするのですが、何ででしょう?
268デフォルトの名無しさん:2008/08/18(月) 16:47:40
>>265
VisualVM とか jhat を調べてみるといいかも
269デフォルトの名無しさん:2008/08/18(月) 16:52:39
270デフォルトの名無しさん:2008/08/18(月) 16:56:53
>>267
Oya#show は Exception を投げると宣言しているので、
main の b.show() が投げる Exception をどうにかする必要がある
(実際には投げられないのだとしても、宣言してる以上、処理しないとだめ)
271デフォルトの名無しさん:2008/08/18(月) 17:09:06
>>270
これって親のメソッドが仮に例外投げないとしたらコンパイルが通って
b.showの実行結果は「ko」になりますよね。

Oya#showはKo#showで消されているため例外投げる部分が無いものになる気がするんです。
素直にKo#showを使ったa.showは例外処理必要無いのに、
なんでOyaの参照で間接的にKo#showを使うと例外処理が必要になるんでしょう?
272デフォルトの名無しさん:2008/08/18(月) 17:21:08
>>271
b は Oya だと宣言してるし。
273デフォルトの名無しさん:2008/08/18(月) 17:24:36
javaの勉強中でEclipseを使ってプログラムを作り、JSP→クラスの遷移はできるのですが、html→クラスの遷移ができません。
内容はどちらもボタンを押すとデータの送信などは行わず遷移するだけなので、どちらも同じ記述をしているのですがhtml→クラスがうまくいきません。
JSP→クラスの設定はweb.xmlで記述しているのでhtmlだとweb.xmlが読み込まれないのが原因なのではないかと思っているのですが、web.xmlが使えないとなると解決方法がわかりません。
どうすればよいのでしょうか。
274デフォルトの名無しさん:2008/08/18(月) 17:25:47
>>272
そのOyaの関数がKoの関数になってるからってことを疑問にしてるんでしょ。
275デフォルトの名無しさん:2008/08/18(月) 17:28:50
>>271
b が Oya 型だから b.show は単純に Oya#show の宣言を見る

Oya b = new Oya();
のときと
Oya b = new Ko();
のときで b.show のエラーの有無が変わってはかなわんし
(b は同じ Oya 型。単に初期値が違うだけ)

もし
Oya b = null; とか
Oya b = hoge(); とか
Oya b = x < 10 ? new Oya() : new Ko();
とかだったらどうするよ
276デフォルトの名無しさん:2008/08/18(月) 17:43:48
>>272,>>275
レスありがとうございます。
宣言はスーパークラスの方を見て中身はサブクラスを見てる感じなんですね。
オーバーライドで引数とか全部一緒だからそんなことも出来るのか。
277デフォルトの名無しさん:2008/08/18(月) 17:45:55
>bはサブクラスでオーバーライドされた方のメソッドを呼び出しているので

というのが分かるのは 275 が書いたように実行時なんだな。
コンパイル時は宣言した型でしか見てないんだな。
278デフォルトの名無しさん:2008/08/18(月) 19:39:27
>>264
> >>260
> > javaにはオペレーターは無いはずですが
> Javaにはオペレータが結構あります。
> Stringクラスだけでなくintでも+=が使えます。
> クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。
例えば
public AnyClass{
int n;
String s;
public AnyClass()
{
n = 0;
s = null;
}
public AnyClass(int num,String str)
{
n = num;
s = str;
}
}
みたいなクラスがあったとして
下記のような動作させるにはどうすれば良いのでしょう
AnyClass obj1 = new AnyClass(10,"ab");
AnyClass obj2 = new AnyClass(1,"c");
AnyClass obj3 = new AnyClass();
obj3 = obj1 + obj2;
279デフォルトの名無しさん:2008/08/18(月) 19:56:30
>>278
演算子の多重定義はサポートしてないから無理。
280デフォルトの名無しさん:2008/08/18(月) 22:19:35
>278
public AnyClass plus(AnyClass other)
281デフォルトの名無しさん:2008/08/18(月) 22:21:10
>>280
演算子のオーバーロードがしたいって言ってるんじゃないの?
282デフォルトの名無しさん:2008/08/18(月) 23:04:54
>>260
× Javaにはオペレータは無い。
○ Javaにはオペレータのオーバーロードはできない。

で、Stringには連結オペレータが予め用意されている、と。

なぜ連結オペレータが用意されているかは設計者にでも聞いてくれ。
283:2008/08/18(月) 23:28:03
初めまして。最後のdrawLineでintを使えないといわれてしまいます。
分かる方いらっしゃいますか?
よろしくお願いします。


import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.math.*;


/**
* @param args
*/
public class applet5no1 extends Applet
{
public void paint(Graphics g)
{

int x1,y1,sec;
sec = 30;
x1= 6*sec;
g.drawLine (100, 100,100+70*Math.cos(60 * Math.PI/180) , 100-70* Math.sin(60 * Math.PI/180));

}
}

284デフォルトの名無しさん:2008/08/18(月) 23:31:43
intが使えないから適切な型に変換しろってこと
285:2008/08/18(月) 23:33:27
すいません。具体的にはどうするかわかりますか?
286デフォルトの名無しさん:2008/08/18(月) 23:43:49
>>283
sinとかcosの結果はdouble型
drawLineの引数はint型
なので型が合わない
intに変換しる
287:2008/08/18(月) 23:45:02
ありがとうございます。助かりました
288:2008/08/18(月) 23:59:08
先ほどのものです。
いろいろ試したのですが、どうしてもうまくいきません。
具体的にどうすればいいか教えてもらえませんか?
289:2008/08/19(火) 00:13:44
いろいろ試したというのは嘘で、試そうにもやり方が全く分からないので、手取り足取り教えてくれませんか。
いろいろ試したのなら、どう試したけれど、どううまくいかなかったが書けるはずなのに、
それができないから嘘がばれると思ったので正直に書きました。
290デフォルトの名無しさん:2008/08/19(火) 00:15:58
お前馬鹿だろ
リファレンス見るとかググるとか思いつかないのか
そんなことだと永久に2chに聞きに来るつもりか?
291:2008/08/19(火) 00:20:42
リファレンスってなんですか?どこにあるのか分かりませんし、見方が分かりません。
ググろうにも何をキーワードにすればいいか全然思いつきません。
ここは初心者にきびしいネットワークですね。
292デフォルトの名無しさん:2008/08/19(火) 00:22:10
>>291
君がゆとり杉なのかもね。
293デフォルトの名無しさん:2008/08/19(火) 00:33:40
実は趣味でプログラムしてます。今42歳でニーとですす。
294デフォルトの名無しさん:2008/08/19(火) 00:35:30
>>291
http://java.sun.com からJava SEのリンクを辿っていけばそのうちに辿りつけますよ。
画面左上はパッケージのリスト、左下にクラスのリスト、右がメインビューワとなっております。
防御スクリーンを展開したままフェイザーと光子魚雷の準備を抜かりなきようお願いもうしあげます。
295デフォルトの名無しさん:2008/08/19(火) 00:36:09
>>293
名前のxが抜けてる抜けてる
296デフォルトの名無しさん:2008/08/19(火) 00:48:39
>>291
・貴方が書いている言語はきっと“Java”
・二人も“変換”しろと言っている

いくら考えても無いところからキーワードを思いついたりしないだろうな、すでに書いてあるのに……
297デフォルトの名無しさん:2008/08/19(火) 00:56:37

初心者

【人々】
(1)
・「覚えよう」と言う意思の無い人。
・こう言う人は、永遠の初心者。

(2)
・全てをチャラにできる魔法の言葉。
・質問をする時にこの言葉さえつければ、何を聞いても良いと勘違いしている方がいらっしゃる。
・「初心者なら、そういう難しい事は考えずにまずは基本を覚えなさい。」と、言いたくなる事がある。 でも、お客さんだしそんな事は言えないしなぁ・・・。

某辞典から
いや誰とは言わないけどね
298デフォルトの名無しさん:2008/08/19(火) 00:57:21
Sun SPOTの話題はどこに持ってけばいいんでしょ?
299デフォルトの名無しさん:2008/08/19(火) 00:59:36
初心者なんですけど、ジャヴァってなんですか?アップレットとどう違うんですか?
300デフォルトの名無しさん:2008/08/19(火) 01:04:25
>>299
じゃう゛ぁ(java)は今をときめくニューウェーブ、時代の最先端を行く今注目のプログラミング言語です。

アプレットはIEやFF上で動作するJavaプラグインを用いた実行形態の一種です(?)
Applet/JAppletクラスを用いて作成します。

通常のJavaアプリはApplet/JAppletクラスを使いません。
301デフォルトの名無しさん:2008/08/19(火) 01:18:53
アプレットでフラッシュみたいのはやんないんですか?
何でみんなフラッシュ使うんでしょうか。
初心者なんですけど、フラッシュの方が最先端な気がします。
302デフォルトの名無しさん:2008/08/19(火) 01:23:00
スレの無駄だからそろそろ初心者ごっこはやめろ
誰も本気で釣られんよ
303デフォルトの名無しさん:2008/08/19(火) 01:28:02
初心者だからって馬鹿にしないで下さい!
304デフォルトの名無しさん:2008/08/19(火) 09:41:23
ActionScriptも多少触ったけど、言語仕様がルーズ(型の扱いとか)なのと
根っこのトコの動作が見えにくいのとでなんかやり辛いんだよなぁ
マルチスレッドが普通にできないのもめんどい

グラフィックやサウンド系の扱いが手軽なのと、プラットフォームの普及度から言うと
よっぽど複雑な処理やるんでもなければFlashでやるのがいいでしょうね
305デフォルトの名無しさん:2008/08/19(火) 10:00:45
アプレット技術はそのままで、ブラウザ埋め込みレットとしてアプレットを拡張すればいいんじゃないかと思う。
それこそアプレット・アプリケーション・フレームワークが整備されればいいのかな。スウィングと同じように。
306デフォルトの名無しさん:2008/08/19(火) 10:20:26
javaのpipeってLinuxのmkfifoでできる名前付きパイプを実現するものでしょうか?
307デフォルトの名無しさん:2008/08/19(火) 10:32:26
java.nio.channels.Pipe の事なら、そもそもプロセス間通信できなかったような
308デフォルトの名無しさん:2008/08/19(火) 16:34:14
アプレットをいろいろといじっているのですが、ボタンを付けることについて質問です。
ボタンを押されるたびに、たとえば"A"という文字を表示するxとy座標を変えて行きたいのですが、
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn){;
x+=20;
y+=20;
repaint();
}
}
とすれば、g.drawpaint("A",x,y)がリペイントされて、ボタンを押されるたびにx,yが20ずつずれて表示されると思っていたのですが
最初に押したときはxとyが20ずつ動いたのですが連続してボタンを押しても変わることはありませんでした。
押すたびにずれるようにするにはどうすればいいでしょうか?
よろしくお願いします。
309デフォルトの名無しさん:2008/08/19(火) 16:39:47
きっと何処かで毎回xとyを0にしてるんだな
310デフォルトの名無しさん:2008/08/19(火) 17:03:31
最初にボタンを押したときは動くのでx,yがリセットされていることは無いと思うのですが、
class MyFrame extends Frame implements ActionListener{
Button btn;
int x = 50,y=50;
public MyFrame(String title){
setTitle(title);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

}
public void paint(Graphics g){
btn = new Button("ボタン");
btn.addActionListener(this);
add(btn);
btn.setBounds(120,200,90,30);
g.drawString("A",x,y);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn){
x=x+20;
y=y+20;
repaint();
}
}
}
これはフレームになっていますが、基本的にかんな感じです。
311デフォルトの名無しさん:2008/08/19(火) 17:06:57
なんでpaintのたびにボタンが増えてるの・・?
312デフォルトの名無しさん:2008/08/19(火) 17:32:02
すいません。ボタンが増えてました・・・paintから出したら上手く動きました。
有難うございました。
313デフォルトの名無しさん:2008/08/19(火) 17:59:23
Object.classって何?
314デフォルトの名無しさん:2008/08/19(火) 18:13:30
>>313
Object クラスを表す Class クラスのリテラル
new Object().getClass() と同値
315デフォルトの名無しさん:2008/08/19(火) 18:52:33
>>314
dクス
316デフォルトの名無しさん:2008/08/19(火) 19:08:49
メモ帳から、改行やスペースを含む文字列を読み込んで、char型の配列に入れるというものを作りたいのですが、うまくいきません。
String型の配列に入れる事は出来たのですが、Char 型に変換することができませんでした。以下は私のソースプログラムです。
public class Main{
public static void main(String[] args){
List<String[]> list =new ArrayList<String[]>();
String cell[]=new String[1000];
try{
FileReader fr =new FileReader("test.txt");
BufferdReader bf =new BufferedReader(fr);
String st =null;
while((st= bf.readLine())!=null){
String[] line=st.split("");
list.add(line);}
for(String[] values: list){
for(String value: values){cell[i]=value;i=i+1;}}
}catch(IOException e){}}}
317デフォルトの名無しさん:2008/08/19(火) 19:37:16
>316
Stringオブジェクトからcharを取り出す方法があれば良いのかな
> char java.lang.String.charAt(int index)

それから、BufferedReader を使うと改行が消えるのでご注意あれ。
318デフォルトの名無しさん:2008/08/19(火) 19:39:19
String.toCharArray()っていうそのまんまなメソッドもあるよ!
319デフォルトの名無しさん:2008/08/19(火) 21:19:33
BufferedReader#read(char[] cbuf, int off, int len)じゃイカンのか
320316:2008/08/19(火) 21:23:12
ありがとうございます。アドバイスを踏まえ以下のように改良したのですが、
1行しか読み込むことができません。バッファを使っているせいかとも思ったのですが、バッファを消すとエラーになってしまいます。
public class Main{
public static void main(String[] args){
List<String[]> list =new ArrayList<String[]>();
Char cell[]=new Char[1000];
try{
FileReader fr =new FileReader("test.txt");
BufferdReader bf =new BufferedReader(fr);
String st =bf.readLine();
for(int i=0;i<100;i++){
cell[i]=st.charAT(i);
System.out.print(cell[i]);}
}catch(IOException e){}}}
321デフォルトの名無しさん:2008/08/19(火) 22:15:13
readLineを1回しか呼んでないような気がするが
322320:2008/08/19(火) 22:48:51
>>321
確かに・・そうですね・・
でも、どうすればいいでしょう・・;;
323デフォルトの名無しさん:2008/08/19(火) 23:23:47
ファイル全体を1個のchar配列にすればいいのか?これでどう?

BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
StringBuffer buffer = new StringBuffer();
int c;
while ((c = reader.read()) != -1) {
buffer.append((char) c);
}
reader.close();
char[] array = buffer.toString().toCharArray();
324320:2008/08/19(火) 23:39:07
>>323
一文字ずつを一つ一つの配列に入れたいです。100文字あったら100個の配列に入れるようなイメージです。
ソースプログラムありがとうございます。書いてある事はある程度理解できたのですが、分からないところもありました。
System.out.print(array); と加えたのですが、何も表示されず(´・ω・`)という顔をしてしまいました。
何を出力すれば良かったのでしょうか
325デフォルトの名無しさん:2008/08/19(火) 23:42:03
配列はそのままprintlnしても中身は出ない
System.out.println(Arrays.toString(array));
326325:2008/08/19(火) 23:48:01
って、ウソでした
試してみたら普通に出たorz

test.txtの中身がないとか?
327320:2008/08/20(水) 00:00:25
何故かうまくいきません・・
よろしければソースを丸ごとコピペしたいので、貼り付けて貰えませんか?
一番最初の宣言からです。
328デフォルトの名無しさん:2008/08/20(水) 00:15:03
329320:2008/08/20(水) 00:31:02
>>328
ありがとうございます。できました!
とても助かりました。

宣言のところで、いつもchar array []としていたのですが、char [] arrayも同じなんですね。
330デフォルトの名無しさん:2008/08/20(水) 00:34:33
>>329
というより、後者が推奨。
331デフォルトの名無しさん:2008/08/20(水) 00:40:09
>main(String[] args)
その割にはmainはちゃんと後者で書いてるのね。

いちおうこれでもいけるけど main(String args[])
332デフォルトの名無しさん:2008/08/20(水) 01:01:49
二次元配列なら3通りの書き方ができるよ
int[][] array;
int[] array[];
int array[][];
333デフォルトの名無しさん:2008/08/20(水) 01:34:30
JARファイルの中にあるJARファイルにクラスパスを通すことって可能でしょうか・・
334デフォルトの名無しさん:2008/08/20(水) 01:51:38
cloneの実装の仕方について教えてください。

A-B-C

のように継承関係にある場合CloneableをAにつけてそのあとどうすればいいんでしょうか?

public Object cloneをAに実装し、それをB、Cでもオーバーライドする?
335デフォルトの名無しさん:2008/08/20(水) 01:58:35
>>334
class A implements Coneable {
 @Override
 public Object clone() {
  try {
    return super.clone();
  } catch (CloneNotSupportedException e) {

ポイントはAでsuper.clone();をしっかり呼ぶこと、浅いコピーでいいならこれだけでよい。
336デフォルトの名無しさん:2008/08/20(水) 02:19:55
てかObject#clone()は仕様上シャローコピーだろ。
337デフォルトの名無しさん:2008/08/20(水) 02:46:02
ディープコピーがしたいのです。

クラスBとCはどうすればいいのでしょうか?
338デフォルトの名無しさん:2008/08/20(水) 02:55:57
>>337
class A implements Cloneable { 
 public Object clone() { 
  try { 
    A a = (A) super.clone();
    // ディープコピーのための追加ロジック
    return a;

B C にもディープコピーのための追加ロジックが必要なら同じようclone()をoverrideして
super.clone() をよび、それから追加ロジック。
必要ないならそのまま継承すればいい。

339デフォルトの名無しさん:2008/08/20(水) 12:11:55
以前このスレッドでjavaの初心者(レベル2)向けの本として
javaの教科書(SJC-P対応)的な本と、Effective Javaという本を紹介してもらいました。
教科書的な本は読み終わりましたので、次のステップに向かいたいと思います。
何か良い本があれば教えていただきたいので、よろしくお願いします。

僕の考えている弱点、問題意識としては

1:コレクションやマルチスレッド処理の仕組みはわかるが、実際の使い道がイメージできない。
→実践的なプログラムのサンプルが読みたい。

2:英語直訳のような長文は苦手で頭に入らない。
→なるべく簡潔な日本語で、図を用いて説明してもらえると有難い。

という二点があります。
340デフォルトの名無しさん:2008/08/20(水) 12:20:37
ConcurrentSkipListSetっていう名前のクラスをつかったら
プログラムを実行するたびに、セットは同じ要素は一つしか入らないはずなのに、
同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。
なぜですか?
TreeSetにしても同じような症状でした。
でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。
どうしてかおしえてください。
341デフォルトの名無しさん:2008/08/20(水) 12:22:49
>>340
再現する具体的な例を。
342デフォルトの名無しさん:2008/08/20(水) 12:25:53
>>341
再現する例はコードが長くなるので出せません。
343デフォルトの名無しさん:2008/08/20(水) 12:27:27
じゃうp
344デフォルトの名無しさん:2008/08/20(水) 12:47:19
秘密のコードなので出せません。
345デフォルトの名無しさん:2008/08/20(水) 12:49:05
>>339
実践的なコードはWebでたくさんあるし、しかも説明つきだから自分の足使ったら?
346デフォルトの名無しさん:2008/08/20(水) 13:00:13
>>345
残念ながら、現在、諸事情であまりパソコンをいじれる状態にないのです。
それから、本に線を引いたりして叩き込まないと頭に入らないタイプでして。
347デフォルトの名無しさん:2008/08/20(水) 13:03:01
>>345
じゃあ諦めろ
348デフォルトの名無しさん:2008/08/20(水) 13:04:16
>>347
キレやすい若者ですね。
349デフォルトの名無しさん:2008/08/20(水) 13:10:13
>>339
結局君は、わがままな教えて君とかわりないが?
350デフォルトの名無しさん:2008/08/20(水) 13:12:15
>>346
平日の昼間っからパソコンいじってて、それも2ちゃんやってるし、嘘はいけないだろ。ニート君は金払って学校いけよw
351デフォルトの名無しさん:2008/08/20(水) 13:19:23
自分が何が欲しいかを具体的にわかっている場合はwebが有効なのですが
初心者の毛が生えたレベルでは必要な知識のイメージが漠然としているため
あまり有効ではありません。
マックに行きたい人と、何か食べ物が食べたい人では、どちらが早く目的地にたどり着き
満足する食事を得られるかということを考えてみればわかると思います。

またwebでは目次のようなものがないか、あっても未整理である場合が多く見受けられますし
索引が利用できないのも大きなデメリットでしょう。

さらにはチェックやマークが出来ないため、再度読み直した際の効率が非常に悪い。

もっと言えば、いちいちスクロール、クリックするのが非常にめんどいという欠点もあります。
ちょっとした知識だけを得ればいい中級以上の方とちがい、全体を系統立てて学びたい初心者には
大きなストレスとなるでしょう。

なんでもwebという考え方には同意できません。

>>349
最初からわがままな教えて君のつもりですけど。

>>350
いや、正直言って無職だけどさ、パソコンあるのが実家でね。行ったり来たりなわけ。
352デフォルトの名無しさん:2008/08/20(水) 13:22:06
お前は一体プログラムで何を作りたいんだ?
まず目的を示してそこに向かう手段のために
本を買うわけだろ?
353デフォルトの名無しさん:2008/08/20(水) 13:23:35
public class A implements Serializable {
private static final Logger logger = Logger.getLogger(Aclass);
}
このクラスをシリアライズするとloggerもシリアライズされるでしょうか?
loggerをデシリアライズするのはまずいと思うので、transientをつけるべきでしょうか?
354デフォルトの名無しさん:2008/08/20(水) 13:30:33
>>352
無職だから就職のために必要な最低限の知識が欲しい。
創りたいものは漠としている。

現実的ではないかもしれないが、最終的にはひきこもり向けの学習支援アプリを創りたい。
理系科目を、直感的に操作して学習できるようなアプリがいい。
セカンドライフ的な要素も付け足してオンライン予備校にしたい。
355デフォルトの名無しさん:2008/08/20(水) 13:32:18
>>339,345

こういう奴はキモイんだよな。なんつーか虫唾が走るっつーかwwwこういう奴はどうしたらいい?
356デフォルトの名無しさん:2008/08/20(水) 13:35:48
>>355
俺向けにチェックやマークができて再読に向いていて、
自分の欠点を把握、補強できるJAVA学習支援アプリ創ったらいいと思うよ!

ほら、行った行った。
357デフォルトの名無しさん:2008/08/20(水) 13:59:40
>>351
うええ。
今、実家にいて、
目の前のハコで調べられることを、調べないで、
初心者にはムリ!!!
とかいってんのか。
それなら、初心者とかじゃなくて、無能ってことじゃね?
358デフォルトの名無しさん:2008/08/20(水) 14:03:11
>>357
調べられることは調べてんよ。
でも本のほうが効率いい。
webは再読に向かない。
早く教えろよ。
359デフォルトの名無しさん:2008/08/20(水) 14:06:13
>>358
きみにはデザインパターンが不足してると思うから、
Java言語で学ぶデザインパターン入門
を買うといいよ。
360デフォルトの名無しさん:2008/08/20(水) 14:13:56
>>351
君の相手をするのが面倒くさい
オジサンは酒飲んで黙ってろ
361デフォルトの名無しさん:2008/08/20(水) 14:16:35
>>359
うわー、ありがとうございます。
早速カートに入れてきました。
公式ページも見てきましたが、僕の知らないことばかりで、非常に読むのが楽しみです。
362デフォルトの名無しさん:2008/08/20(水) 14:16:55
>>359
それよりも、こいつのような30代ニートにはコミュニケーションスキルの方が先だと思うw
363デフォルトの名無しさん:2008/08/20(水) 14:21:28
>>362
まだ二十代だよ。
しゃべったらボロが出るけど、しゃべらないで笑ってるからいい人扱いだぜ。

おまえらマジ役にたたねーから、俺、いつか初心者向けのJAVA学習サイト作るわ。

webはマルチスレッド、書籍はシングルスレッド。
おまえらだっていきなりwebで学んだわけじゃねーくせに。
ペッペッ!
364デフォルトの名無しさん:2008/08/20(水) 14:22:24
Java言語で学ぶデザインパターン入門 

とかも知らないところを見ると、PCすら使えない無能な教えて君だな。きもすぎる
365デフォルトの名無しさん:2008/08/20(水) 14:24:32
あれだろ
無職で実家とか言って、「面接20社受けて全部落ちました。Orz」とかの無能ニートじゃねーの?(笑)
素直にJavaを教えてる学校いった方がいいよw
366デフォルトの名無しさん:2008/08/20(水) 14:27:34
>>361
>>363


まあ、まずは俺のチンコしゃぶれよ
367デフォルトの名無しさん:2008/08/20(水) 14:38:41
>しゃべったらボロが出るけど、しゃべらないで笑ってるからいい人扱いだぜ。 

ん?十分ボロが出てるみたいだけど、どういうこと?
368デフォルトの名無しさん:2008/08/20(水) 14:46:44
>>365
ブルジョワプログラマーめが。
大学の奨学金もまだまだあるのに専門行けっかよ。
それに勉強は本読んだほうが早い。

>>366
throws IOExceptionだ。

サンプル集はwebにはあるが書籍はあんまり無いな。

>>367
リアルではしゃべらないで笑ってんだよ。
俺がいると職場がなごやかになるんだぜ。
webだとボロが出るよ。俺はものの考え方がおかしいからな。



今日は>>359さんみたいな聖人に出会えたからいいや。
369デフォルトの名無しさん:2008/08/20(水) 14:49:08
>>363
それ、単なるのけ者だよ。
まともなヤツは快活だからな。
370デフォルトの名無しさん:2008/08/20(水) 14:51:15
>>368
本を読めば何とかなるって、
ヤセレばキレイになるって幻想と一緒じゃね?
371デフォルトの名無しさん:2008/08/20(水) 14:53:22
質問です。
ハードウエアでいうIRQみたいなのをJAVAで実装するにはどうすればいいでしょうか?

複数のI/OコンポーネントとGUIから構成されるソフトを作っているのですが、今の実装だと
全てのクラスに中核モジュールへのレファレンスを持たせて、その内部状態をI/Oイベントがあると
*I/Oモジュールから*変更させるように作っているのですが、これだと中核モジュールを変えたときに
広がる波紋が大きそうな気がして心配です。

ですから、各I/Oモジュールが何かのイベントを探知すると中核モジュールにイベントを投げて
中核モジュールのみが自らを操作するようにしたいのですが、その方法がよくわかりません。
(中核モジュールにI/Oモジュールでイベントがあったことを探知させる方法が分かりません)

ExceptionをI/OやGUIモジュールから中核モジュールに投げる方法もあるかな、と思ったのですが、
例外は例外用にとっておきたいと思います。

ご教授お願いします。
372デフォルトの名無しさん:2008/08/20(水) 14:55:54
無能力者なのに就職活動もしないで、まったく下地の無いプログラミングに時間を割いている時点で、
バカとしか判定しようが無いな。
373デフォルトの名無しさん:2008/08/20(水) 15:01:32
>>371
「I/Oコンポーネント」と「I/Oモジュール」、「I/Oイベント」の関係がわからないな。
オブジェクト間のやり取りが変わるような部分を書き換えれば、影響するのは当たり前じゃね?
イベントでもメソッドの呼び出しでも変わらないだろ。
374デフォルトの名無しさん:2008/08/20(水) 15:07:07
>>372
一見、大学の奨学金もらって頑張ってるようだけど、就職活動もしないで実家にひきこもってるただの無職ニートだろ。
自尊心が高いだけの単なるナルシストなんじゃね?
375デフォルトの名無しさん:2008/08/20(水) 15:12:06
なんかここでも夏の虫が沸いてるのか?
376デフォルトの名無しさん:2008/08/20(水) 15:15:29
>>373
よく考えてみたら、確かにまったく変わりませんね。
さらに考えてみたらちょっとデザインを変えるだけでまったく
解決できる問題だということも分かりました。
ありがとうございます。
377デフォルトの名無しさん:2008/08/20(水) 15:17:35
ゲームばっか遣ってる無職ニートよりはましだと思うけど。
378デフォルトの名無しさん:2008/08/20(水) 15:20:14
>>368
Javaを教えてる講座など申し込んで短気集中か、今の時代ならHPの方も良くまとまってるページが多いですよ。
結局は、字を読むなら本と同じですし。
変に本の方に権威を立てて過信してませんか?

MSのC#とかも初心者教育に力を入れてるし、MSDNのWeb一つでまとまってるのでお勧めです!
379デフォルトの名無しさん:2008/08/20(水) 15:22:05
>>374
モラトリアム黴ってやつだな。
380デフォルトの名無しさん:2008/08/20(水) 15:26:52
>>372 >>374
ペッペッ!
一時期ちゃんと働いてたっつの。

>>378
そうですねー。
無職ですから、コストパフォーマンスを考えると、どうしても講座をうける気にはなれないんです。
でも、webはお金もかからないですし、もうちょっと柔軟に考えてみるようにします。

ちょくちょく実家に来るようにしますかね。
381デフォルトの名無しさん:2008/08/20(水) 15:27:01
>>378
間違ったこと書いてる本だって、一杯、出版されてるしな。
入門書なんか、見た目が派手なだけで完成してないサンプルとか、
本当にタイトルだけ奇抜なんてことも多いしな。
382デフォルトの名無しさん:2008/08/20(水) 15:32:50
大学の奨学金が嘘じゃないってことよりも、学歴が三流以下の大学じゃその辺で寝てるニートとたいしてかわりないだろ。それも「ペッペッ! 」とかキモイし、こいつはリアルでキモイんだろうな
383デフォルトの名無しさん:2008/08/20(水) 15:34:33
>>380


まずは、俺のチンコしゃぶれよ。
384デフォルトの名無しさん:2008/08/20(水) 15:47:41
>>382
俺がリアルでキモかろうがキモくなかろうが、どうでもいいことだと思うんだが。
問題は今キモいことだけだろ。
なんでリアルまで心配してくれるんだ。

人間、学歴は関係ないよな。
俺はろくな努力もしないでマーチより上の国立大学に受かったために
無駄にプライドは高いんだが、実力は無いし、社会的なスキルはほとんどない。
でも、プログラマにはそういうやつも割といるって聞いたぜ。
あんたの同僚にもいるだろうよ。

>>383
そういうのは実装してないんだわ。
385デフォルトの名無しさん:2008/08/20(水) 15:50:15


俺はろくな努力もしないでマーチより上の国立大学に受かっ
386デフォルトの名無しさん:2008/08/20(水) 15:53:56
>>384
きみ、もうキモイから消えてくれないか?

大学受かったかよりも、その大学を卒業(満了)できたのかが社会では重要なんだけど。

それも君のように無能で無職なものにとってそんな肩書きは正しく「豚に真珠」じゃないか?
387デフォルトの名無しさん:2008/08/20(水) 15:55:22
>>384
Javaなんか勉強するよりC#の方がMSがバックにいるし将来の為にいいよ。
そうだ!大学院目指したらどうだろう?
388デフォルトの名無しさん:2008/08/20(水) 16:11:48
デザインパターンで雁字搦めにry
389デフォルトの名無しさん:2008/08/20(水) 16:16:33
また夏厨か。くどいな。
390デフォルトの名無しさん:2008/08/20(水) 16:39:58
>>387
ありがとうございます。
C#はJAVAの下地があったほうがわかりやすいみたいですね。
もう少しJAVAがわかるようになったら浮気するか考えてみたいと思います。

院は嫌です。僕の大学だけかもしれませんが、院に行った友人の話によると
出世争い、研究室の私物化、ゴマすり、お粗末な博士論文など、あまり魅力的に思えません。
時間も金もないですし。
せっかくアドバイスもらってのに、スイマセン。
391デフォルトの名無しさん:2008/08/20(水) 16:41:33
思うんだけど、こういう人が次々とWebでJavaの説明ページ作ってんじゃないのか?
それなら本なんか頼りにするよりも、間違えやすいところとかコツとかあるわけだし、手っ取り早く習得できると思うんだけど…
392デフォルトの名無しさん:2008/08/20(水) 16:43:34
おまえら、くそJavaなんかやめちまえ!プログラム言語は
総じてマイクロソフトの製品じゃないとだめだ!PHPもPerlもくそ!
Javaはもちろん一番くそ!

おまえらにお勧めの言語はAccessVBAだ。
393デフォルトの名無しさん:2008/08/20(水) 16:47:54
プログラミングとかはGPLが最高らしいよ。
Microsoftはコピーライトだから駄目らしい。
あと、楽しみが人間として一番高度らしいから、楽しみでプログラミングしている奴が
最強らしいよ。
394デフォルトの名無しさん:2008/08/20(水) 16:48:12
だいたい、プログラムのすれでも、Javaスレの連中とC#スレの連中を比べると
教養の差がわかる。
395デフォルトの名無しさん:2008/08/20(水) 16:49:00
だから、楽しみでAccessVBAしろ!
396デフォルトの名無しさん:2008/08/20(水) 16:49:25
>>395
accessVBAはコピーレフトじゃないだろ。
397デフォルトの名無しさん:2008/08/20(水) 16:52:25
>>390

そういうお前は、ひきこもり兼ニートじゃないの?
お前の魅力に関係なく、無職より院生のほうがましw
398デフォルトの名無しさん:2008/08/20(水) 16:54:00
すごいですね!どこの大学卒業したんですか?やっぱり高学歴でお勉強も出来るともてるでしょ♪
399デフォルトの名無しさん:2008/08/20(水) 16:54:54
自作板とかPC関連の板ってスルーできないやつ多いよね
400デフォルトの名無しさん:2008/08/20(水) 17:00:00
教養の差は確かにあるけど、作るプログラムとはあまり関係ないだろ。
ソフトで言えばJavaよりVB(旧VB)の方が使いやすくて便利なのが多いんだけど…
401デフォルトの名無しさん:2008/08/20(水) 17:15:22
マーチ以上の大学で援助金ももらってるとか言う嘘つきって2chによくいるよねw
あまりパソコン触れないとかいいつつも、2chだけは欠かさずチャックしてるしww
402デフォルトの名無しさん:2008/08/20(水) 17:17:24
>>392

何言ってんだよ。鼻くそはオマエ
403デフォルトの名無しさん:2008/08/20(水) 17:21:55
フォルダを削除するコードは、以下の感じでよろしいでしょうか。

File filelist[] = folder.listFiles();
for (int i = 0; i < filelist.length; i++) {
filelist[i].delete();
}
folder.delete();
404デフォルトの名無しさん:2008/08/20(水) 17:25:04
>>400
vbのselectは入力のチェックとか楽チンだった。
405デフォルトの名無しさん:2008/08/20(水) 17:29:29
高学歴をうたってはいたが、都合いいことばかり言うカス・ニートと同じだったか・・
406デフォルトの名無しさん:2008/08/20(水) 17:33:40
>>401
俺がパソコンを触れないのは、パソコンのある実家とそれ以外を行き来してるからだ。
前にさりげなく匂わしてるあるはずだが。

実家に来たら三十秒に一回ペースでにちゃんねるとチェックしているが、チャックはしてない。
407デフォルトの名無しさん:2008/08/20(水) 17:38:23
>>406
オマエ、12時から張り付いてるぞ。
>>339
>339 名前:デフォルトの名無しさん[sage] 投稿日:2008/08/20(水) 12:11:55
408デフォルトの名無しさん:2008/08/20(水) 17:39:04
一生駅と公園の往復でもしてろ
409デフォルトの名無しさん:2008/08/20(水) 18:13:12
>>406
君はオープンソースに触れるとフリーの世界がなんとなく分かるんじゃないか?
ジャバもオープンソースだけど、君は英語ぐらい読めるんだろうから、
java.sun.com, java.net辺りから探って無料の英語の教科書を読んでみな。
それと早く自分用のパソコンぐらい買え。
410デフォルトの名無しさん:2008/08/20(水) 18:27:47
心理学科とかの文系で、いくら探しても「職がないからジャヴァしてます」ってところじゃないの?
なんか自分の学歴を自慢してるようだけど、何の勉強してきたんだろうねw
411デフォルトの名無しさん:2008/08/20(水) 18:41:22
おまえら何でそんな表面に釣られてうだうだ言ってんのさ?

実家に行かなきゃPC無いような初学者なら
買うのは本じゃなくて、まずPCでしょ?ボロくて良いからさ
いくら本読んだところで畳水練だよ?
412デフォルトの名無しさん:2008/08/20(水) 18:49:45
高学歴に嫉妬する低学歴のレスの集まりですね。わかります。
413デフォルトの名無しさん:2008/08/20(水) 18:52:29
PropertiesからMapに変換する一番簡単な方法を教えてください
414デフォルトの名無しさん:2008/08/20(水) 19:00:07
Properties#entrySet()がそのままmapなのだけど、よくやるのはこんな感じ。
TreeMap<Object, Object> map = new TreeMap<Object, Object>(System.getProperties());
415デフォルトの名無しさん:2008/08/20(水) 19:14:11
>>412
そうじゃないのよ。質問なくてヒマだから相手してるだけww
416デフォルトの名無しさん:2008/08/20(水) 19:37:15
相手するのが馬鹿っぽいとは気付けないんですね、わかります
417デフォルトの名無しさん:2008/08/20(水) 19:47:47
>>416
つつけばドタバタ踊るんだから、それなりに面白いよ
418デフォルトの名無しさん:2008/08/20(水) 20:16:32
>>409
ありがとうございます。早速のぞいてみました。
英語は珍しい単語以外はわかりそうです。
あとは根気があれば・・・って感じですね。

>>417
レスがつくのって楽しいですよね。
レスがつく時のわくわく感に訴えるアプリが作れたらおもしろいですよね。

419デフォルトの名無しさん:2008/08/20(水) 21:01:24
別人のようだけど、惨めたらしさは変わんないよな。

★★ Java の宿題ここで答えます Part 65 ★★
http://pc11.2ch.net/test/read.cgi/tech/1212085079/830

830 名前:デフォルトの名無しさん[] 投稿日:2008/08/15(金) 08:54:52
javaって難しくない?
http://mild7070.livedoor.biz/

420デフォルトの名無しさん:2008/08/20(水) 21:34:55
そいつは、もともとキモイからニートなんじゃんww
421デフォルトの名無しさん:2008/08/20(水) 21:36:56
>>419
貼ったから見てやったけど、バイトなんてしちゃだめだろ。
やっぱひきこもって自宅で勉強しないとさあ。

わかってないよね、こいつ。

だいたい、「世の中、裏狙い」って・・・
ITドカタに甘い汁があると思ってんのかよw
422デフォルトの名無しさん:2008/08/20(水) 21:55:59
>>418
ほら、呼んでるぞ!
423デフォルトの名無しさん:2008/08/20(水) 22:05:26
っていうか、このスレの常連、やんでるわ。マジで。
424デフォルトの名無しさん:2008/08/20(水) 22:07:54
>>422
ちゃんとレスしただろ。
425デフォルトの名無しさん:2008/08/20(水) 22:16:20
次の高級な質問をどうぞ
426デフォルトの名無しさん:2008/08/20(水) 22:47:48
ぬるぽ
427デフォルトの名無しさん:2008/08/20(水) 23:03:56
ぬるぽ
428デフォルトの名無しさん:2008/08/20(水) 23:24:27
ぬるぽ
429デフォルトの名無しさん:2008/08/20(水) 23:50:12
Effective Javaってカス本だと思うんですが
玄人の人はどう思いますか。
430デフォルトの名無しさん:2008/08/21(木) 00:08:38
>>424
せっかく時間が有り余ってるんだから、Javaなんてやらずに関数型言語やったほうがいい。
それからOO言語に移行したほうが、プログラミングの筋が良くなる。
431デフォルトの名無しさん:2008/08/21(木) 00:16:08
>>430
死滅したツールなんか覚えてもな・・・
432デフォルトの名無しさん:2008/08/21(木) 00:17:38
Effective Javaってカス本だと思う方がもっとカス
433デフォルトの名無しさん:2008/08/21(木) 00:20:27
カスだと思うのは自由だが、誰にとって?なぜ?を語らぬ限りは
まともな返答は返ってこないだろう
434デフォルトの名無しさん:2008/08/21(木) 00:21:32
そもそも、java2とか、その前を対象に書かれてるんだっけ?
435デフォルトの名無しさん:2008/08/21(木) 00:22:02
>>432
内容はいいんだが、翻訳がカスだから、カス。

中級者は読み飛ばせるから気にならないだろうが、みっちり読みこなしていくと日本語のひどさに苛立つ。
多分、英語版のほうが読みやすい。
436デフォルトの名無しさん:2008/08/21(木) 00:26:55
英語版を読んだとしても、まだ問題がある。
この本は「JAVA哲学」を徒然と書き綴ったものであるため
内容が前後左右にぶれてしまっている印象がある。
また、読み手をあまり意識していないので、話が抽象的になりすぎて
具体的なイメージをつかみにくい。文章がくどい。

玄人の方は読み飛ばしていると思うが
「あれ、ここ、こんなに説明いらなかったんじゃないの?」っていう部分が多かったんじゃないですか?
違いますか?
437デフォルトの名無しさん:2008/08/21(木) 00:47:53
JAVA初心者です。
現在、あるWebアプリケーションの開発を開始しておりますが
下記の箇所で躓いております。

◆任意のパスワードを生成するメソッド
 ・英字(大文字、小文字)、記号、数字でランダムの組合せ
  (使用不可の文字は後からでも修正できる)
 ・文字数は10文字で固定

上記のように製造したいのですが、知識不足の為
先に進めておりません。
是非皆さんの知恵をお貸し下さい。

438デフォルトの名無しさん:2008/08/21(木) 00:49:37
質問です。
JavaにZIP形式の圧縮ファイル読み込みのStreamクラスがありますが、
パスワードが付いたファイルを読み込むにはどうしたらいいのでしょうかm(__)m
439デフォルトの名無しさん:2008/08/21(木) 00:51:08
>>437
何に行き詰まってるのかわかりませんが、乱数使えばいいと思います。
440デフォルトの名無しさん:2008/08/21(木) 00:55:07
>>438
自作するしかありません
441437:2008/08/21(木) 01:22:28
>>439さん
返答ありがとうございます。
乱数ですか、調べてみます。

質問に不備がありすみません。
任意のパスワードを生成するメソッドの組み方自体にも躓いております…
442デフォルトの名無しさん:2008/08/21(木) 01:31:40
>>441
特に強度や安全性を気にしないなら、こんな感じでいいんじゃないか

String s = "ABCDEFG............xyz!#$%&'0123456789"; // 使ってよい文字のリスト
Random r = new Random();
char[] password = new char[10];
for(int i = 0; i < 10; i++) {
password[i] = s.charAt(r.nextInt(s.length());
}
443437:2008/08/21(木) 01:47:50
>>442さん
ありがとうございます!
参考にさせて頂きます。

444デフォルトの名無しさん:2008/08/21(木) 08:22:38
別にいいっちゃいいけど一応暗号用乱数使ったほうがいいよ。
445デフォルトの名無しさん:2008/08/21(木) 10:11:16
RMIのサーバー側は2つのリモートコールがほぼ同時に発生した場合並列処理になるのでしょうか?
それとも1つずつの処理になり、後のものは先の終了を待つまで呼ばれないのでしょうか?
446デフォルトの名無しさん:2008/08/21(木) 10:12:22
Randomをnewしてそのまま使ってはだめ
447デフォルトの名無しさん:2008/08/21(木) 12:56:02
来年からプログラマとして働くことになったのですが
JavaってSwingとかのGuiアプリケーションの知識身に付けて実務で使われることってありますか?

それは完全に役に立たないって事は無いとは思いますが費用対効果として
JSP/サーブレットとかをずっとやってた方が役に立つのかなと疑問に思いました。
448デフォルトの名無しさん:2008/08/21(木) 13:09:45
>>447
就職先の業務内容次第じゃね?
どんな部所に配属されるかにもよる。
分からないなら好きな方やっとけばいいと思う。
449デフォルトの名無しさん:2008/08/21(木) 13:13:26
>>447
ぶっちゃけ、Javaを使うかどうかもわからないんじゃないの?
450デフォルトの名無しさん:2008/08/21(木) 13:35:48
>>448-449
すいません、レスありがとうございます。
一応研修期間中にSJC-P取得があるみたいなのでJavaは使うと思われます。
なんか市販のソフトって大概exeで、JavaのGuiアプリって使われてるのか疑問だったのです。
なんかいまいち業界事情がPCショップとかで売られてるソフトのイメージでしか判断出来ない感じあるのですが、
そのレス内容から判断すると一応使われる技術と考えてOKでしょうか。
451デフォルトの名無しさん:2008/08/21(木) 14:12:26
>>450
一応言っとくけど、exeってのはWindowsで「しか」使えない実行ファイル形式だからね。(wineとかは例外)
携帯アプリならJavaでGUI操作するんじゃね。(場合/キャリア/気分に依存する)
452デフォルトの名無しさん:2008/08/21(木) 14:28:19
>>445
JavaDoc の「Java RMI の仕様」の「3.2 リモートメソッド呼び出しにおけるスレッドの使用法」
を読む限り、呼び出される側は並列処理になり得ると書いてある。
なのでスレッドセーフになるようにすべきだそうだ。
453デフォルトの名無しさん:2008/08/21(木) 14:28:47
SUNはデスクトップに力を入れる方針だし、これからはSwingでしょ。
454デフォルトの名無しさん:2008/08/21(木) 14:41:10
>>451,453
そっかぁ、exeがwin依存なのは知ってたのですが、
winユーザが大半だから利益追求が絡む企業での実務では使われないものかと思ってました。
WIN32APIとか.NETと比べてJavaの方が整備されてて好きなので
swingの需要があるようで良かったです。
残りの一年こっちをやろうと思います、ありがとうございました!
455デフォルトの名無しさん:2008/08/21(木) 15:43:16
いやswingの需要は無いよ
456デフォルトの名無しさん:2008/08/21(木) 15:45:19
>>455 お前が使えないだけじゃね?
457デフォルトの名無しさん:2008/08/21(木) 15:50:19
それよりWindowsプログラマならVisualC++をマスターするほうが
よっぽど役に立つよ
458デフォルトの名無しさん:2008/08/21(木) 16:00:40
>>457
まあ、Javaなら後からでも覚えられるし、VCは使いづらいし覚えなくちゃいけないことも多いからな・・・
459デフォルトの名無しさん:2008/08/21(木) 18:43:59
ま、俺は、SwingGUIアプリでOracleと接続したやつ作ったけど、
役に立たなかったなあ。なぜかというと、SwingGUIがあまりにももっさりしていたから。だいぶ昔の話だけど。
460デフォルトの名無しさん:2008/08/21(木) 18:45:10
Swingやるなら、JavaFXとかAppletとか極めれ。東京都の中で必要としているところが10箇所くらいあるから。
461デフォルトの名無しさん:2008/08/21(木) 18:47:28

         ___
       / ⌒  ⌒\
      / (⌒)  (⌒) \   でも、個人的にはVCの方がすきなんだお!
    /   ///(__人__)/// \  
     |   u.   `Y⌒y'´    |
      \       ゙ー ′  ,/
      /⌒ヽ   ー‐    ィヽ
      / rー'ゝ       〆ヽ
    /,ノヾ ,>      ヾ_ノ,|
    | ヽ〆        |´ |
462デフォルトの名無しさん:2008/08/21(木) 18:49:45
   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__)   Awtって必要ないだろ…
  |     ` ⌒´ノ    常識的に考えて…
.  |         }
.  ヽ        }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \


463デフォルトの名無しさん:2008/08/21(木) 19:41:26
複数のスレッドをwaitさせて特定のスレッドのみnotifyで再開させたいのですが
ランダムで再開というのを見ると特定のスレッドのみ再開させるというのは不可能なんでしょうか
または他のメソッドで上記に似たような事をできないでしょうか
まだまだ初心者なので変なことを聞いているようであればすいません
ご教授よろしくお願いします
464デフォルトの名無しさん:2008/08/21(木) 20:11:38
notifyAllで全部のスレッドを起こす
起きたスレッドは、呼ばれたのが自分じゃなかったら、waitで二度寝する
465デフォルトの名無しさん:2008/08/21(木) 21:00:50
getKeyCodeで0を返すショートカットボタンなどは、
javaからどのボタンが押されたか判定することはできないのでしょうか?
466デフォルトの名無しさん:2008/08/21(木) 22:45:22
意味不明。
Webなのか?Swingなのか?
467デフォルトの名無しさん:2008/08/21(木) 23:03:20
byte a=5;
byte b=6;
byte c=a+b;
これって3行目がc=5+6なら通るのになんでエラーになるんでしょうか?
大きいintの値を小さいbyteに入れようとするから普通は一行目からエラー
だけれども、それだと面倒だからコンパイラが親切で自動でキャストしてくれるから
一二行目はエラーにならないみたいな話を本で見たので、それが行われないって話だと思うのですが、
byte+byteはint以下の数値を扱う式はintとして評価される、というルールから
intになるので自動でキャストしてくれそうだと思ったのですが。
468デフォルトの名無しさん:2008/08/21(木) 23:06:40
>>467
byte a=5;
byte b=6;
byte c;
c=a+b;

ってやってみたら?
変数の初期化部分で変数は使えないんだと思う。
469デフォルトの名無しさん:2008/08/21(木) 23:11:29
int -> byteは縮小だから、byte a = 5; が通る方が特殊と考えれ
うろ覚えだが、byte a = 999999; とかだとコンパイルエラーにならなかったか?
470デフォルトの名無しさん:2008/08/21(木) 23:23:54
>>468
コンパイルできないけどorz
471デフォルトの名無しさん:2008/08/21(木) 23:28:26
>>470
二項数値昇格で int型の値に昇格されるはずだから、
>>468 がコンパイルできたら言語仕様に反する。
472デフォルトの名無しさん:2008/08/21(木) 23:37:41
もう少し考えろよw
473468:2008/08/21(木) 23:42:38
おれ涙目w

byte a=5;
byte b=6;
byte c;
c = (byte)(a+b);

でどうだ。
今回はコンパイルも通った(gcjだけど)から、大丈夫だ。
474デフォルトの名無しさん:2008/08/21(木) 23:43:39
コンパイルが通るコードが前提だろ!
475468:2008/08/21(木) 23:48:57
byte a=5;
byte b=6;
byte c = (byte)(a+b);

なんだ、これでもうまくいくのか。
流石だなJava.
476467:2008/08/21(木) 23:50:32
レスありがとうございます。

手元の本で関連がありそうな所を漁ると、
(1)
「char(数値を格納した)、short、byteのint以下の範囲の数値を格納する型は、
たとえその型の範囲内の数値でもその式を評価すると全てintになる。」
(例)
byte a=1;
byte b=2;
a+b ←byteの範囲内でもint型

(2)
「short,char,byteのint以下の範囲の数値を格納する型に数値を格納する際、
数値はint型として評価されるが簡略化のためキャストを行わなくても
コンパイラが自動的にキャストする」
(例)
byte a=1; ←コンパイラが自動で(byte)1としてくれるので有効。

この二つの記述があり、それを踏まえてbyte a=1+2は(2)により有効なのですが、
これが467で書いたように変数で行うとコンパイラの自動キャストが働かないのが謎なのです。
もちろん>>473の方が書いてくれたように自分で明示的にキャストすれば通るのですが。
477デフォルトの名無しさん:2008/08/21(木) 23:56:16
>>476
リテラルをキャストするのと、変数をキャストするのは意味が違うんじゃないの?
478デフォルトの名無しさん:2008/08/21(木) 23:58:42
少しはググれよ
479デフォルトの名無しさん:2008/08/22(金) 00:01:04
自動的に変換が効くのは定数のときのみ
http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#190806
480デフォルトの名無しさん:2008/08/22(金) 00:05:52
>>478
これは少しググって見つけるの難しいだろw
481デフォルトの名無しさん:2008/08/22(金) 00:10:25
byte b;
b = (byte)200;
System.out.print(b);

とすると-56と表示されるんですがなぜその値なのでしょうか?

それから、longをfloatに型変換するのがなぜ拡大変換なのですか?
二つともビットは同じだと思うんですが・・・。
482デフォルトの名無しさん:2008/08/22(金) 00:14:27
>>477,479
なるほど、ありがとうございます!
自動的な変換は制限があったのですか、、byteとかはストリームからの読み取りとかでは使ってましたが
こういう数値を足したりするのをbyteではあまりやらないので勉強になりました。
お世話になりました。
483デフォルトの名無しさん:2008/08/22(金) 00:15:41
>>481
2の補数表現。

long より float の方が表現できる値の範囲が広いから。
あとビット数はfloat32bitでlongが64bit
484デフォルトの名無しさん:2008/08/22(金) 00:18:48
Vista java インストールできない、.java形式で保存できない
どうすればいい?
一応インストールはしたつもり
485デフォルトの名無しさん:2008/08/22(金) 00:20:34
インストールできないのにインストールしたつもり??
486デフォルトの名無しさん:2008/08/22(金) 00:20:42
>>481
intは32ビット。byteが16ビット。入りきらないのはちょんぎっちゃう。
32ケタあった1と0の組み合わせが無理やり16ケタにちょんぎられちゃうわけだから
変な数になっちゃう。
487デフォルトの名無しさん:2008/08/22(金) 00:29:03
485さん
確実にインストールはできています。しかし コマンドプロンプトで java -versionで
バージョン確認はできるのですが、javacは表示されません。
488デフォルトの名無しさん:2008/08/22(金) 00:31:08
いつクビになるかいつもビクビクするよね。
489482:2008/08/22(金) 00:33:30
お世話になったので寝る前に自分からも。

>>481
Javaではダウンキャストの際に単純に上回るビットを左から削除するだけ。
200は内部的には00000000 00000000 00000000 11001000で
byteにキャストすると下8桁の11001000だけが残る。
この値は単純に見ると200だがbyteは符号付きの型なので
一番左の1bitを+-の判定に使う。
そのためこの値は二の補数で表現された-56という数と解釈される。
(全ビットを0と1反転させた後1加えると56になる。)
ちなみにbyteの格納範囲は-127〜127。
490デフォルトの名無しさん:2008/08/22(金) 00:36:25
sdkを入れてないとか、sdkにパスが通ってないとか
491デフォルトの名無しさん:2008/08/22(金) 00:41:29
set path + Enterで
表示されるのが
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

d:\java>set path
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\In
tel\DMIX;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\
Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\
DLLShared\;C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program
Files\Common Files\Sony Shared\FeliCaLibrary;C:\Program Files\Edy\Edy Library;C:
\Program Files\Java\jre1.6.0_07\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

d:\java>
492デフォルトの名無しさん:2008/08/22(金) 00:48:25
C:\Program Files\Java\jdk1.6.0_07\bin というフォルダはないかな?そこにパスを通せ。
493デフォルトの名無しさん:2008/08/22(金) 00:53:36
C:\Program Files\Java\jre1.6.0_07\binというフォルダは確かに存在します。
パスを通すとは?491で表示した、set Pathで表示されたら問題ないはずではないのですか?
494デフォルトの名無しさん:2008/08/22(金) 00:54:37
よく目を凝らして
jre
jdk
495デフォルトの名無しさん:2008/08/22(金) 00:55:34
>>493
jreじゃなくてjdk。
jreはJava Runtime Enviroment
jdkはJava Development Kit
496デフォルトの名無しさん:2008/08/22(金) 00:59:01
みんな優しいな
497デフォルトの名無しさん:2008/08/22(金) 01:02:17
>>494>>495
環境変数のJAVA_HOMEをjre → jdkに変更をすればいいですか?
498デフォルトの名無しさん:2008/08/22(金) 01:17:33
それともインストール自体が間違っていたのですか?
499デフォルトの名無しさん:2008/08/22(金) 01:17:39
>>497
そのjdkのフォルダがあるなら、ね。
なかったら、Java SE Development Kit (通称JDK)をインストールする必要がある。
500デフォルトの名無しさん:2008/08/22(金) 01:20:51
インストールしたのが
http://java.sun.com/javase/ja/6/download.html  の
JDK 6 Update 7をダウンロードしました。
501デフォルトの名無しさん:2008/08/22(金) 01:23:08
これはFAQだな。
本の初めのほうに書いてある。
502デフォルトの名無しさん:2008/08/22(金) 01:25:48
ちなみに会社だとXPで何も問題なくできるのに、自宅のVistaではかなりてこずっています。
503デフォルトの名無しさん:2008/08/22(金) 01:32:37
>>500
JavaはC言語とかと違ってコンパイルすると中間コードが生成される。
これは君が普段使うソフトの形式であるexeと違ってコンピュータは直接実行出来ない。
これを動かすのに必要なのがJRE。
Javaで開発されたソフトを使うにはユーザはこれを入れなければならない。
逆に、ユーザは自分の環境に合ったJREを入れることで、exeと違ってMacだろうがLinuxだろうが実行出来る。
JDKっていうのは、君が書いたソースコードを中間コードにするためのもの。
javacってのはこのJDKに含まれるコマンド。
504デフォルトの名無しさん:2008/08/22(金) 01:34:00
update10がRCなのか。でたら久しぶりにJDKをあげるかな
505デフォルトの名無しさん:2008/08/22(金) 01:40:03
とりあえず自分のインストールあったJavaをすべてアンインストールしたら
無事コンパイルと実行ができました。HelloWorldが表示されました。
JDK 6 Update 3とJDK 6 Update 5がインストールされてたからおかしくなっていたのですかね?
506デフォルトの名無しさん:2008/08/22(金) 01:56:55
w=( x==y? a : x==z? b : c );

Javaだと評価順についてはどういうカッコの付け方になるんでしょうか。
507437:2008/08/22(金) 02:15:47
任意の文字列でパスワードを作るメソッド

String s = "ABCDEFG............xyz!#$%&'0123456789"; // 使ってよい文字のリスト
Random r = new Random();
char[] password = new char[10];
for(int i = 0; i < 10; i++) {
password[i] = s.charAt(r.nextInt(s.length());
}

使ってよい文字に条件を付けたいのですが、
英字大文字、英字小文字、数字、記号の各文字種を、
必ず一文字は結果に出せるようにしたいです。
例:An?)9j1aQ0

各文字種ごとに変数を作る事になると思いますが、
その先の記述をどうしたら良いかで悩んでおります。
各文字種を配列に入れてからシャッフルするとか、ですかね?

大変お手数ですが、皆さんの知恵をお借りしたいです。
宜しくお願いいたします。
508デフォルトの名無しさん:2008/08/22(金) 02:32:36
>>507
1. 最初に各文字種をパスワードに1文字ずつ追加する。
2. 不足文字数分をパスワードに追加する。
3. パスワードをシャッフル。
509デフォルトの名無しさん:2008/08/22(金) 07:41:21
>>463
CountDownLatch でも使え。
510デフォルトの名無しさん:2008/08/22(金) 08:36:55
>>480
ぐぐるまでもなく、言語仕様読めば解決。
要するに読んでないだけ。

>>507
それJavaとか関係ない段階の質問だと思うんだけど。
511デフォルトの名無しさん:2008/08/22(金) 10:59:22
>>510
スレタイ読める?
ていうかお前のレスの方がスレ違いなんだよカス
512デフォルトの名無しさん:2008/08/22(金) 11:08:32
>>511
こんなバカが回答ほしがってるのかw
寝言は>>1ぐらい読んでから言えクズw
513デフォルトの名無しさん:2008/08/22(金) 11:14:33
いろんなスレで暗号・パスワード聞いている奴いるからそいつだろ。
こういうカスが作ったゴミ暗号なんか、どうせ作ってもすぐ解読されるからほっとけ。
514デフォルトの名無しさん:2008/08/22(金) 11:15:47
>507
ランダムで生成し、生成した文字列に対して文字種ごとに存在をチェックすればOK
全種類が入ってなければ再生成。

この手の乱数による抽出では出現率の偏りに注意しましょう。
まあ、全種類が必ず入ってる時点である種の偏りがあるわけだが...
515デフォルトの名無しさん:2008/08/22(金) 11:16:17
>>511
こういう煽りたいだけの奴は放置しろよ
516デフォルトの名無しさん:2008/08/22(金) 14:23:11
すごく単純な質問ですみません
コマンドプロンプトでひらがな入力をするには、どうすればいいのでしょうか
517デフォルトの名無しさん:2008/08/22(金) 14:29:07
スレ違い
518デフォルトの名無しさん:2008/08/22(金) 14:29:11
すみません、自己解決しましたOrz
昔は、こうやって変換してたんですね
519デフォルトの名無しさん:2008/08/22(金) 17:52:40
そういえばいつからだろうか日本語入力切り替えにalt押さなくなったのは・・・。
520デフォルトの名無しさん:2008/08/22(金) 17:55:52
すみません。相談です。

僕は、人見知りの臆病者なんですが、性欲は人一倍あります。
いつも暇があるとエロいことばかり考えてしまいます。見てはいけないと思いつつも
エロサイトをしょっちゅうのぞいてしまいます。余計、エロくなります。。

職場でも町でも、女の人と顔があうと絶対エロいにやけ顔になってしまいます。
職場の人から「うわ〜、○○さん、いやらしい顔してる〜」とかいわれて、しょっちゅう胃がいたくなります。
まじめな顔をしようと思ってもにやけ顔になってしまいます。。

ほんとに苦痛でしょうがないです。どうしたらいいでしょうか?
521デフォルトの名無しさん:2008/08/22(金) 17:57:20
>>520
Javaをやればいいと思う。
522デフォルトの名無しさん:2008/08/22(金) 17:57:29
switchステートメント使ったプログラム見たとき便利だなぁと思ったんですが
講義中に「これあんまり使わない」みたいな事を言われました。

その先生だけかもしれませんが、なぜでしょうか?
構文が気持ち悪いとか、if使えばいいから とかしか思いつかないんですが。
まさか「これ(お前ら程度のレベルでは)あんまり使わない」って事だったんですかね。
523520:2008/08/22(金) 17:59:23
いっそのこと女性がこの世からいなくなればいいとさえ思ってしまいます。
524デフォルトの名無しさん:2008/08/22(金) 18:03:25
はいはい
525520:2008/08/22(金) 18:04:15
皆さんは、エロイ事とか想像しないんですか?
526デフォルトの名無しさん:2008/08/22(金) 18:04:21
>>522
オブジェクト指向を極めればswitchなど使わなくなる
527デフォルトの名無しさん:2008/08/22(金) 18:08:06
>>522
一般論としては「使わないほうがいい」ということはない。
その言葉の前にいろいろ前提がなかったかな?
クラスの説明中ならswitchより多態(ポリモーフィズム)をということかもしれない。

528520:2008/08/22(金) 18:08:27
このままでは、セクハラの指導をうけなければなりません。それこそ一社中の恥になってしまいます。

また、どうしても見てしまうので、指導を受けたからといって治るものでもありません。

どうしたらいいんでしょうか?
529デフォルトの名無しさん:2008/08/22(金) 18:38:24
>>522
その先生の意図はわからんけど、switchが適切な場面で必ずswitchを使
うようにしても、ifに比べたら頻度はものすごく少ないと思う。

530デフォルトの名無しさん:2008/08/22(金) 19:46:31
>>528
悩んだらソープへ行け!って偉い人が言ってた。

>>522
絶対使うなってわけじゃないが、今後分岐が増えていく予定がすこしでもあるなら
switch 以外の方法を使ったほうが保守性が高いので。
531デフォルトの名無しさん:2008/08/22(金) 20:04:55
えー、switchの方が保守性は高そうだけどな。

あるCの入門書で、continueの説明に「めったに使われない」と書いてあって、
釈然としなかった経験がある。
初学者に教える時に、教師個人の余計な感想は邪魔かも。
532522:2008/08/22(金) 20:14:56
なるほど。もしかするとその先生の主観が入った意見だったのかもしれません。
また次の講義で質問してみますね。

>>528
朝起きていっぺんぬいてから出勤するっていう人の書き込みをみたことがあります。
その人によると、明鏡止水だそうです。
533デフォルトの名無しさん:2008/08/22(金) 20:18:31
>>522
古いバージョンだと、switchの判定式に整数しか使えなかったから
その名残では
534デフォルトの名無しさん:2008/08/22(金) 20:54:47
>>533
いつのまにか整数以外が
使えるようになったのかと思っちゃったじゃないか。

http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.11

ひょっとしてenumのことか?
535デフォルトの名無しさん:2008/08/22(金) 21:08:01
Stringのswitchは7で導入予定なんだよな?
ほしいー
536デフォルトの名無しさん:2008/08/22(金) 21:34:42
>>531
switchを使ってる場合、例えば、
switch (obj.type) {
case A: 処理a(obj); break;
case B: 処理b(obj); break;
}
こうなるが、typeの種類が増えると、obj.typeで判定している部分をかたっぱしから直してまわらんといかん。
typeで分類する代わりにクラスで分類し、各処理をオーバーライドしたメソッドで定義すると、そもそもswitch等で分岐する必要がなくなる。
obj.処理();
だけでおk。種類が増えたときも、呼び出し側はほとんど変更する必要がない。
オブジェクト指向言語の最大の利点は、「お前は誰だ」と確認するためのifやswitchを書かなくて済むようになること。
537デフォルトの名無しさん:2008/08/22(金) 21:35:29
Stringのswitchが有効なケースってあんまりなくね?
enum使えば解決じゃない?
538デフォルトの名無しさん:2008/08/22(金) 21:48:55
ジャバザハット
539デフォルトの名無しさん:2008/08/22(金) 22:08:02
enum 導入のおかげでたまにはswitchを思い出すようになりました
540デフォルトの名無しさん:2008/08/22(金) 22:16:19
今Windows上で二つのシステムがあって、

C++クライアント −DCOM→ MTS(スレッド管理・トランザクション管理) → SQLServer or MSMQ

C#クライアント -.NETリモーティング→ 独自サーバ → SQLServer or MSMQ

というシステムがあるのですが、これをクライアント以外Javaに置き換えたいです。
どのようなアプリケーションが代用になるのでしょうか?また、クライアントだけ
Windows上のC++ or C#とした場合、サーバのJavaとの接続はできるのでしょうか?
541デフォルトの名無しさん:2008/08/22(金) 22:25:09
String の switch は
main() に渡されたオプションの解析とかに使えそう
542デフォルトの名無しさん:2008/08/22(金) 22:45:34
そうそう。そんな感じで使いたい。
それってやるとしたらequalsの展開になるのかな?
それとも個数によっちゃTreeMapかなんかで実装するのかな
わくわくだわー
543481:2008/08/22(金) 23:05:51
返事遅くなってすみません。
>>483
>>486
>>489
みなさん、ありがとうございました。
544デフォルトの名無しさん:2008/08/22(金) 23:24:38
皆さんに質問です。
ここにいらっしゃるのは殆どがJAVAをある程度学ばれている方だと思いますが、
これまで培ってきたJAVA関連の知識や技術が3日後には全て消え失せるとします。
もう一度初めから学び直さなければなりません。
あなたに与えられた期間は半年です。
半年経てばJAVAプログラマの新入社員として働いていかなければなりません。
ただ、今のあなたが3日後のあなたに一つだけ残せるものがあります。
それは今のあなたの考えるJAVA学習の方法論です。
どう勉強するべきかどの本で勉強するべきか・・・。
その半年間の予定表を立てて下さい。
では私はもうこれで寝ますので3日後くらいまでにはご回答をお願いします。
545デフォルトの名無しさん:2008/08/22(金) 23:31:25
言語仕様を確認して、ライブラリリファレンスを確認して、実際にモノを作ってみる
半年もあればだいたい大丈夫だろ
やる気さえあれば ← これ1番重要
546デフォルトの名無しさん:2008/08/22(金) 23:45:57
Javaなんて簡単すぎて半年もいらん
547デフォルトの名無しさん:2008/08/22(金) 23:50:22
オブジェクト指向の方法論とかの知識も
全く無い状況からだとすれば、仕様を覚えてから使えるようになるまでには
ある程度かかるだろうとは思う
548デフォルトの名無しさん:2008/08/22(金) 23:50:31
簡単すぎて半年もいらん(笑)
549デフォルトの名無しさん:2008/08/22(金) 23:52:33
>>544
まあ、数年放置してるといつのまにかバージョンが上がったり、
使ってたメソッドが推奨されないメソッドに認定されてたりするから、
似たような状況はたまにあるね。

勉強?要らない要らない。
せっかく忘れたんだから他の言語勉強する。
550デフォルトの名無しさん:2008/08/23(土) 01:11:44
今日は大漁だwww(でも雑魚ばっかw)
551デフォルトの名無しさん:2008/08/23(土) 01:40:12
>>544
Java関連の知識って、どこまでよ?
フレームワーク?イディオム?ライブラリの知識?言語仕様?
それともオブジェクト指向って何?って所まで消えるのか?
変数って何ですか?、とか、インターネットってどういう仕組み?とか
コンピュータって何ですか?まで行っちゃうとか
そこが分からないと答えようがない
552デフォルトの名無しさん:2008/08/23(土) 01:53:34
コンピュータって何ですか?まで行っちゃったら
多分この業界で仕事しようと思わないとおもわれ
553デフォルトの名無しさん:2008/08/23(土) 03:36:09
544は 魔法使い 
554540:2008/08/23(土) 05:58:25
すみません。
ここには下流工程の人しかいないですよね
板違いでした
555デフォルトの名無しさん:2008/08/23(土) 07:15:48
はいそうです。どうせどこで聞いても答えてもらえないでしょうが
もうここには決して来ないで下さい。
556デフォルトの名無しさん:2008/08/23(土) 07:24:31
>>540
「付けたし付けたしで今まで頑張ってました」って感じだなw
557デフォルトの名無しさん:2008/08/23(土) 07:29:59
スルー白
558540:2008/08/23(土) 07:31:49
答えられないなら黙ってろって
数十万の顧客抱えてるから今すぐJavaに移行なんて無理だから、試してみただけだしw
559デフォルトの名無しさん:2008/08/23(土) 07:39:53
SAXを用いてXML文書から文字列を取得する勉強をしています。
イベントハンドラで "<" を含む文字列を取得しようとしているのですが
"<" がタグ開始の文字列として認識されてしまいエラーが発生してしまいます。
どなたか解決法をご存知でしたらご教授下さい。お願いします。
560デフォルトの名無しさん:2008/08/23(土) 07:42:38
>>558
では、顧問料いくら出せるんですか?
561デフォルトの名無しさん:2008/08/23(土) 07:44:48
>>558
もう君の自慢話しはいいからwwさっさと消えてくれないか?
562デフォルトの名無しさん:2008/08/23(土) 07:49:11
>Windows上のC++ or C#とした場合、サーバのJavaとの接続はできるのでしょうか?

質問が抽象的すぎてイマイチ分かり辛いんですけど、WindowsならMS製品で固めた方がいいですよ。
563デフォルトの名無しさん:2008/08/23(土) 08:05:37
>>540みたいな生意気な奴は相手にすんなよ。その辺の雑魚と大して変わらないからw
564デフォルトの名無しさん:2008/08/23(土) 08:19:13
540、血圧上がってますよ?

w書いててわらってもうたw
565564:2008/08/23(土) 08:21:57
>>540みてみたけどたいしたことじゃないなw
HTTPも知らないのか540はw
566540:2008/08/23(土) 08:25:46
う〜ん、まじめにmixiとかAmazonとかじゃなくて、数秒遅れたら致命傷になるような
システム作ってる奴いるか?今のシステムに不満はないんだけど、OSがWindowsって
ところだけは、顧客は拒否反応示すからさ。
ロジックは簡単だから、Javaはよくしらないけど、定番のアプリケーションサーバ
とデータベースとMQでシステムをリプレイス出来たら、そういう顧客にも有効かと
思ってさ。
567540:2008/08/23(土) 08:26:44
>>565
Webサービスだよね?あれだと遅すぎて駄目なんだわ
568デフォルトの名無しさん:2008/08/23(土) 08:27:29
彼は病院にお帰りなったそうですOrrz
569デフォルトの名無しさん:2008/08/23(土) 08:41:53
>>566
それならwindows一筋で頑張ってください
570970:2008/08/23(土) 08:43:59
>>567
そしたらプロトコルなに使ってるの?
571デフォルトの名無しさん:2008/08/23(土) 08:48:27
パフォーマンスを重視したいのか改造コストを低く抑えたいのかわからんな。
クライアントはどのくらいいじっていいのよ?
いっそDCOM−CORBAブリッジでも使うかい。
572540:2008/08/23(土) 08:51:26
>>570
登りは.NetRemotingで下り(配信)はTCP/UDP直だよ
昔はDCOMだったけど

それにしても、Webサービスは遅すぎる。発注だそうと思ったときにはもう
相場変わってるっちゅうの
LANで計測しても、独自プロトコルの10倍以上通信してるからな
573970:2008/08/23(土) 08:52:25
ちょっと見てみたけどクライアントとjavaで通信できそうな気が。
574デフォルトの名無しさん:2008/08/23(土) 08:53:01
全部TCP/UDPにしたらいいと思うよ。
575970:2008/08/23(土) 08:54:29
独自プロトコルって、危ない気がするけどいいの?
なんか大切なデータ送ってそうだけど。
576540:2008/08/23(土) 08:54:43
>>571
ありがとうございます。
開発コストは考えてません。営業がそれなりの金額で売ってきてくれるので。
重視してるのは、クライアント(C#)-サーバ(Javaサーブレット)で今までの
パフォーマンスが出るのかですね。
で、それにともなってJavaの混沌としているアプリケーションサーバとデータベース
とその他諸々からどれを選択していいのかと
577デフォルトの名無しさん:2008/08/23(土) 09:02:00
クライアントサーバー間はLAN/WANの類なのかインターネットなのか、
インターネットだとCOM+やCORBAやRMI(IIOP)はプロトコル的にきつい気もするが。
578デフォルトの名無しさん:2008/08/23(土) 09:23:32
HTTPが遅いってどゆこと、通信って一往復だよね?
毎回コネクション張るのが問題?
579デフォルトの名無しさん:2008/08/23(土) 09:27:17
>>544
マ板でやれ
580デフォルトの名無しさん:2008/08/23(土) 09:55:16
そらHTTP自体がオーバーヘッド比較的でかいし、
その上でWebサービスとか使えば遅いわな。
581デフォルトの名無しさん:2008/08/23(土) 10:13:10
>>580
うーん。わかんね。ヘッダーとかがあるからってこと?
自分でTCPで通信するのとそんなに大差あるのかな?
HTTPサーバーが遅いってこと?
それなら自分で作ったHTTPサーバーが例えばIISのパフォーマンスを
超えられるの?
582デフォルトの名無しさん:2008/08/23(土) 10:19:30
>>559
そもそもXML文書のタグ以外に<>を含めてはダメだろ。
&lt;か&gt;に書き換えるべきじゃね。
583デフォルトの名無しさん:2008/08/23(土) 10:25:07
>>566
>数秒遅れたら致命傷
まず初めに専用回線を引くべきじゃね?
OS関係無いと思うし、そんな性能を求められるところってほいほいリプレイスしない方がいいと思う。
584559:2008/08/23(土) 10:42:44
>>582
解決できました。ありがとうございます。助かりました。
585デフォルトの名無しさん:2008/08/23(土) 10:43:26
540はろくに知識がないため大失敗する悪寒
586デフォルトの名無しさん:2008/08/23(土) 11:06:29
>>585
多分、実際は無職なので問題ない。
587デフォルトの名無しさん:2008/08/23(土) 12:03:30
OutOfMemoryを捕まえたいんですけど、
GUIの部品使うと別スレッドが色々たってるみたいで
try〜catch で拾えないんですけど、
どうにもならないんですかね?
588デフォルトの名無しさん:2008/08/23(土) 12:57:48
>>587
Thread#setDefaultUncaughtExceptionHandler
Thread#setUncaughtExceptionHandler
で捕まえるとか。
589587:2008/08/23(土) 13:50:14
おお、こういうのあるんですね。
ありがとうございました。
590デフォルトの名無しさん:2008/08/23(土) 14:28:44
CLDCにもThread#setDefaultUncaughtExceptionHandler
Thread#setUncaughtExceptionHandler
がほしいぜ。
591デフォルトの名無しさん:2008/08/23(土) 14:33:41
javaの暗号・復号化でJCEなるものがあることがわかったのですが、
ファイルを読み込みバイト配列で一括変換しているせいかメモリ不足に陥ってしまいます。
元ファイルをInputStreamに出力ファイルをOutputStreamにと
ダイレクトに暗号化する方法ってないのでしょうか。
8kbyteといった固定単位でファイルを読み込み、暗号化して暗号化後のサイズとデータを書き込みことで、メモリ不足を引き起こさず暗号・復号化は出来そうですが・・
592591:2008/08/23(土) 14:54:36
自己解決しました
FileInputStreamにCipherInputStreamをラップしたら出来ました。
m(__)m
593デフォルトの名無しさん:2008/08/23(土) 16:06:43
だから>>540はアホだって言っておいただろ。見て分からなかったんなら、お前ら鈍いな。
TCP/UDPってなんだよwボロでてんだよww

それもTCP遅いって、確かにTCPとUDPを上回る通信はあるけど、
こいつはMS一筋でよっぽど世の中知らない奴だと思わない?

お前はもう来るな
594デフォルトの名無しさん:2008/08/23(土) 16:34:06
うさんくさい奴だったな
595デフォルトの名無しさん:2008/08/23(土) 16:40:47
WebアプリやTCPを使って発注すると、(相場が変わるとか何とかの理由で)遅いって、どういう業界というかどの職種でそんなことが起こるんですか?
596デフォルトの名無しさん:2008/08/23(土) 17:07:43

でも最近の証券会社やFXの会社の発注少し遅いよね
597デフォルトの名無しさん:2008/08/23(土) 18:33:25
そんなコンマ1秒を争う世界とか限界に挑戦するような世界はwindowsでやってくれw
598デフォルトの名無しさん:2008/08/23(土) 18:52:28
http://pc11.2ch.net/test/read.cgi/tech/1150286189/l50
現世代Java。
話題としてこっちじゃないか?
599デフォルトの名無しさん:2008/08/23(土) 18:59:29
CABOSをダウンロードしたのですが開いたら
「JAVAソフトウェアがロードできません」と出ました
JAVAのサイトに行ってダウンロードすると「JAVAのバージョン確認」と出るだけで
何も状況が変わりません
誰かいいアドバイスをください
600デフォルトの名無しさん:2008/08/23(土) 19:06:00
tmp == "("
tmp.charAt(0)=="(".charAt(0)
tmp.length()=="(".length()
が上からfalse.true.trueとなるんだがバグかなんか?
601デフォルトの名無しさん:2008/08/23(土) 19:08:38
ん?
正しい動作だわ、そりゃ
詳しく知りたきゃ、equalsでググれ
602デフォルトの名無しさん:2008/08/23(土) 19:08:49
激安ノートパソコンでJAVA勉強できますか?
603599:2008/08/23(土) 19:13:45
HELP
604デフォルトの名無しさん:2008/08/23(土) 19:18:06
今年最大の夏を感じるな
605デフォルトの名無しさん:2008/08/23(土) 19:18:21
520=599
606デフォルトの名無しさん:2008/08/23(土) 19:19:45
>>602
JDKの動作要件を満たしていればできる。
607デフォルトの名無しさん:2008/08/23(土) 19:20:24
>>602
高性能PCじゃないとeclipse動かないよ
608デフォルトの名無しさん:2008/08/23(土) 19:50:59
>>600
仕事で1年間Javaを使って開発してる奴にこの前
if( strHoge == "true" ) で 同じにならないんだけど
って質問来た時はマジで、はぁぁお前1年間Java使っといてそれはないだろう!って思ったよ。
それ以降、漏れはそいつのこなす仕事は何一つ信用しなくなったよ・・orz
1年間Java使ってましたっていう自己申告じゃなく、ホントに1年間開発してたんだよ・・どんなソース書いていたんだか・・
609デフォルトの名無しさん:2008/08/23(土) 20:29:19
HTTPはパフォーマンス(応答性)優先のプロトコルじゃないからな。
あまり細かいこと考えずに作ると、
プロキシの検索が走ったり
Expect-100で一往復待ったり
設定によってはKeepAlive使わずに毎回接続したり
その上でWebサービスとなると
SOAPエンコードでかなりサイズが膨れ上がり
XMLのシリアライズ、デシリアライズ等々割と重い処理が入る
610デフォルトの名無しさん:2008/08/23(土) 21:07:22
あなたのそれは、そんなに凄いアプリ(システム)なんですか?
611デフォルトの名無しさん:2008/08/23(土) 21:11:16
もう相手にするなよ。どうせ何も作れずに知ったか知識並べてるようなニーとだし、そういうやつは2chによくいるだろw
最近の夏だと大ほらふきが出没しているから、たぶんそいつだろうw
それと嘘はだめだ。一生信用されない。
612デフォルトの名無しさん:2008/08/23(土) 21:15:10
>>580>>609だが
俺は単に横槍っていうかHTTPとWebサービスの一般的な話してるだけで
元のやつととは全然関係ないんだが、それでもこれは俺が突っ込まれてるのか??
613デフォルトの名無しさん:2008/08/23(土) 21:23:26
それじゃ、そんなに凄いシステムなんですか?
614デフォルトの名無しさん:2008/08/23(土) 21:30:32
意味が分かりません><
615デフォルトの名無しさん:2008/08/23(土) 21:47:33
>>551
コンピュータって何ですかレベルだとしたらどうでしょう?
無理でしょうか?
パソコンを使って遊ぶことが出来る(YouTube見たり、共有ソフトでファイル集めたり、
集めたファイルを扱ったり・・・でもフォルダなら分るけどディレクトリだと難しく感じるレベル)けど、
仕組みはさっぱり分らないというレベル。
HTTPってそう言えば何の略?みたいなレベルだとして。
情報系の大学の学部を出てるわけでも、専門学校を出てるわけでもなく、
普通の私立の文科系を卒業してる程度の人間だと仮定すると絶望的???
616デフォルトの名無しさん:2008/08/23(土) 22:07:09
「JAVAプログラマの新入社員」程度なら無理じゃないでしょ
ゼロから初めて半年でも
617デフォルトの名無しさん:2008/08/23(土) 22:11:11
>>615
まあ、あくまで一例だが、
知っている情報系の中小企業だと、Excelしか使ったことの無い文系の新卒でも、3ヶ月で基本情報処理技術者が取れるように訓練される。
無論、当人の努力も大事だし、実際の試験で落第したなら、合格するまで昇給をストップされる。
618デフォルトの名無しさん:2008/08/23(土) 22:44:48
IBMへ行った先輩の話だと、文系も理系もなく新人研修でしごかれるらしいな
C言語は2日で終わってC++を1週間、Java、Web、DBと容赦なく進むスケジュール表を事前に渡されるので
研修開始までに独習して一通りマスターしておくのが普通らしいな
619デフォルトの名無しさん:2008/08/23(土) 22:45:31
String#equalsはjavaで真っ先に覚える部類だろ。
基本情報処理技術者って落ちる奴居るのか?
620デフォルトの名無しさん:2008/08/23(土) 22:51:41
リフレクションに関する質問です。

interface Hoge {}
class HogeImpl implements Hoge{}

現在Hoge.classのみがあって(Hogeのインスタンスは存在しない)、HogeImplがHogeを継承しているかどうかを調べる方法はあるのでしょうか?
Hogeのインスタンスが存在しているのであれば
Hoge.class.isInstance(hogeImplInstance);
で確認できるのですが、Classのみでの確認手段が分かりませんでした。
newInstanceでインスタンス作って確認するしかないのでしょうか?
621デフォルトの名無しさん:2008/08/23(土) 23:00:00
今ちょっと見ただけだけどisAssignableFromとかあるじゃん
622デフォルトの名無しさん:2008/08/23(土) 23:00:06
HogeImpl.class.getInterfaces

てかClassのJavaDoc読んだ?
あと、それを確認しなければならない状態があるのかよ。
Hoge hoge = new HogeImpl();
と書けばコンパイルエラーになるだろ、implしてなければ
623デフォルトの名無しさん:2008/08/23(土) 23:00:34
>>620
Class#isAssignableFrom(Class)
624デフォルトの名無しさん:2008/08/23(土) 23:06:25
>>619
統計発表されてるだろ
625デフォルトの名無しさん:2008/08/23(土) 23:11:03
あったんですね。迅速な回答ありがとうございます。

>>622
一通り読んだつもりだったのですが読み落としてました。
本当に申し訳ないです。
626デフォルトの名無しさん:2008/08/24(日) 00:05:43
>>618
C言語2日って、それならやらない方がマシじゃねかw
こんな連中しかいないからWacsなんていう糞フレームワークしか作れないんだな(ワラ
627デフォルトの名無しさん:2008/08/24(日) 00:14:21
>C言語は2日で終わってC++を1週間
どう考えても無謀だしな。
628デフォルトの名無しさん:2008/08/24(日) 00:22:57
いいかげん嘘つきの相手なんかすん
629デフォルトの名無しさん:2008/08/24(日) 01:50:13
以下のURLのような、図をプログラムで解析するようなプログラミングの問題で
http://www.i.u-tokyo.ac.jp/edu/course/ci/pdf/2007_8_ci_practice_all.pdf
(沢山ある、それぞれの頂点が辺で結ばれていたり、いなかったりする)
私は、2次元配列を用いて、cell[結合元の番号][結合先の番号]=0or1のようにして表して解こうとしたのですが、
なかなかうまくいきません。このような問題の本流というか、良いやり方はどのようなものでしょうか?

また、上記urlの問題の最後の方にある頂点から別の頂点への距離を求めるものがあるのですが、
私には遺伝的アルゴリズムを用いた手法しか思い浮かびません。しかし、大学院入試のプログラミング問題程度で
そのようなものが要求されるのは考えにくいので、私が何か見落としている気がします。
問題の解釈すら違うかもしれません。どのようなレスでもいいので、お願い致します。

630デフォルトの名無しさん:2008/08/24(日) 02:18:34
>>629
すまん。
まったくわからん。
ただ、おれにわかるのはスレ違いということくらい。
631デフォルトの名無しさん:2008/08/24(日) 02:32:43
良いやり方というのは特にありません
たぶんお勉強にこだわりすぎなんじゃないですか?
632デフォルトの名無しさん:2008/08/24(日) 02:36:29
>>629
Q2-1はつながってる先を順に調べて、ツリー状に調べてゆくってことかな?

Q4は、
辺を追加していく順序に就いて悩んでいるのだろうけど、
冒頭に、「N は変えるが同じ頂点対の並びを利用する. その場合, N 番目以降の頂点対は無視する.」ってあるから、
G3は単にファイル上の登場順にN番目までの辺で出来たグラフ。
残りもその順で追加して行くだけでは?
633デフォルトの名無しさん:2008/08/24(日) 03:21:50
IBM Javaで暗号化してSun Javaで復号化すると
IBM Javaのクラスが見つかりませんとエラーが発生しました。
 java.lang.ClassNotFoundException: com.ibm.crypto.provider.DESKey

暗号化キーは、シリアライズ化してあったものをObjectInputStreamでよみこもうとした時に上記エラーが発生しました。
回避策わかる方いますでしょうかm(__)m
634633:2008/08/24(日) 03:58:06
Objectをシリアライズせず、キーのデータのみ受け渡しすれば
異なるVM間で復号化できましたm(__)m
635デフォルトの名無しさん:2008/08/24(日) 04:01:35
VM実装依存のクラスつかってりゃClassNotFoundExceptionでるだろ。馬鹿か?
636デフォルトの名無しさん:2008/08/24(日) 11:27:14
RMIのリモートオブジェクトに対して、new Socket().isConnected()に当たるようなコネクションの確認はできるでしょうか?
637デフォルトの名無しさん:2008/08/24(日) 17:21:29
javac <ファイル名>.java は出来たのですが、
その次にファイルを実行出来ません。
どうすればいいでしょうか?
638デフォルトの名無しさん:2008/08/24(日) 17:41:14
http://wisdom.sakura.ne.jp/
ここでどぞ
639デフォルトの名無しさん:2008/08/24(日) 18:53:41
JavaEEのパフォーマンスチューニングの相談もここでOKですか?
640デフォルトの名無しさん:2008/08/24(日) 19:17:26
同じバージョンのJREをつんだ違うOSで、同じbeanをシリアライズしたバイトデータの中身はまったく同じなのでしょうか?
641デフォルトの名無しさん:2008/08/24(日) 19:25:32
バージョン違えばそりゃ違うんじゃね?
642デフォルトの名無しさん:2008/08/24(日) 23:39:58
Javaの勉強を最近始めた超初心者です。
勉強してる中でパッケージの内容からどうしても先に勧めません。
あるプログラムの頭にpackage パッケージ名;と打ち込んだのですが、
"予想されたパッケージと一致しません"と言われうまく起動してくれません。
どういった名前を付ければ予想されたパッケージになるのでしょうか。。
教えてください。。
643デフォルトの名無しさん:2008/08/25(月) 00:15:44
>>642
パッケージが「package foo;」だったら、そのソースファイルはfooディ
レクトリの中にある必要がある、のが原因かもしれない。
644デフォルトの名無しさん:2008/08/25(月) 03:22:20
画像をFlowLayoutパネルに流したいのですが
FlowPanel.add(Image)は対応していないのでImageIconを作って画像を入れようと色々やっているのですが上手く行きません。

Toolkit tk = Toolkit.getDefaultToolkit();
Image img = tk.getImage("C:\\~~.jpg");
ImageIcon icon = new ImageIcon(img);
JLabel label = new JLabel(icon);
こんな感じでラベルをつくってレイアウトに流し込んでいるのですが・・・
645デフォルトの名無しさん:2008/08/25(月) 04:17:07
>>644
ImageIconには画像ファイルのパスを引数にとるコンストラクタがあるから
ファイルから画像を読み込んでJLabelのアイコンに設定するならImageを作らなくても
JLabel label = new JLabel(new ImageIcon("C:\\~~.jpg"));
でいけるよ
646デフォルトの名無しさん:2008/08/25(月) 16:07:06
もう頭パニック助けて・・・
下記のコードでdをcのListに値を入れるのってどうやればいいんですか?

import java.util.*;
public class bbb{
public static void main(String [] args){
List <aaa> c = null;
aaa d = null;
d.setNo(1);
d.setName("test");
c.add(d);
System.out.println(c.get(0).getNo());
System.out.println(c.get(0).getName());
}
}
class aaa {
int no;
String name;
public aaa(){
}
public int getNo(){ return no;}
public void setNo(int newNo){no = newNo;}
public String getName(){return name;}
public void setName(String newName){ name = newName;}
}
647デフォルトの名無しさん:2008/08/25(月) 16:14:35
>>646
List <aaa> c = new ArrayList<aaa>();
aaa d = new aaa();
648デフォルトの名無しさん:2008/08/25(月) 16:28:06
>>647
new 試したけどいまいち書き方がわかりませんでした。
ありがとうございました。
649デフォルトの名無しさん:2008/08/25(月) 16:38:27
現在Javaで動画を扱おうと試行錯誤していますが、いまいちできるかどうかもわからない状態です。
機能的には、デスクトップをプログラムでキャプチャしてそのままAVIなどの動画に変換して出力したいのですが、
Java言語ではどのようにすれば可能なんでしょうか?
650デフォルトの名無しさん:2008/08/25(月) 16:40:49
>>649
Vectorから適当なスクリーンキャプチャをダウンロード・インストールして、
Javaサイドから定期的に呼び出す。
というのではいけませんか?
651デフォルトの名無しさん:2008/08/25(月) 16:45:13
JAIについて質問です。
JAI入門書のサンプルプログラムをコンパイルすると下のようなエラーが出ます。

パッケージ javax.media.jai は存在しません。

JAIもJDKのPathの設定のようなものがいるのでしょうか?
652デフォルトの名無しさん:2008/08/25(月) 16:47:47
>>651
要るんだと思いますよ。
653デフォルトの名無しさん:2008/08/25(月) 17:28:36
>>651ですが
どう設定すればいいか教えてください。おねがいします
654デフォルトの名無しさん:2008/08/25(月) 17:44:14
>>653
入門書なら設定の仕方とかは書いていると思いますよ。
もし書いていないならその本は捨てても構わないと思いますよ。
655デフォルトの名無しさん:2008/08/25(月) 19:36:02
オプションパッケージはインスコするかバンドルするかってちゃんとjavadocに書いてあるだろうがjavadoc嫁。
それにオプションパッケージのreadmeにも書いてある。

JMFのインストーラ版なら決め打ちで勝手にパス通すが。
656デフォルトの名無しさん:2008/08/25(月) 22:04:55
一週間くらい前に、デザインパターン入門の本を教えてくれた人、マジありがとうございます。
いい本ですね。
657デフォルトの名無しさん:2008/08/25(月) 22:24:13
どのあたりがいい本なのか書かないと
658デフォルトの名無しさん:2008/08/25(月) 22:31:38
そもそもどの本だ?
659デフォルトの名無しさん:2008/08/25(月) 22:32:54
文章が読みやすい
例が簡潔でわかりやすい
細かいフォローもばっちり
デザインパターンをそれぞれ関係づけてあって覚えやすい

基礎から実践に近づくために必要な知識が効率的に吸収できます。
660デフォルトの名無しさん:2008/08/25(月) 22:42:54
教えてくれた人にだけわかればいいから質問してくんなよ。ケッ。
661デフォルトの名無しさん:2008/08/26(火) 00:16:44
その本を超えるようなホームページを作ってください!
662泣きそうです:2008/08/26(火) 13:35:45
下記のXMLで、key1とval1を出力したいのですが、
取得の仕方がイマイチ分かりません。
いろいろ試したのですが、コンパイルとかエラーになって・・・
どなたか、取得の仕方を教えて下さい。
-----------[testXml.xml]------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<config>
 <ptn1_data1>
  <element key="a1" val="a01"/>
  <element key="a2" val="a02"/>
 </ptn1_data1>
 <ptn2_data2>
  <element key="x1" val="x01"/>
  <element key="x2" val="x02"/>
 </ptn2_data2>
</config>
--------------------------------------------------------
663泣きそう:2008/08/26(火) 13:47:24
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

class testXml
{
  public static void main(String args[]) throws Exception
  {
   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
   DocumentBuilder db = dbf.newDocumentBuilder();
   Document doc = db.parse(new FileInputStream("testXml.xml"));
   Element root = doc.getDocumentElement();
   walk(root);
  }

664泣きそう:2008/08/26(火) 13:49:43
  public static void walk(Node n)
  {
   for(Node ch = n.getFirstChild();
        ch != null;
        ch = ch.getNextSibling()){

     if(ch.getNodeType() == Node.ELEMENT_NODE){
      System.out.println("ELEMENT_NODE:"+ch.getNodeName());
      walk(ch);
     }
     else if(ch.getNodeType() == Node.TEXT_NODE && ch.getNodeValue().trim().length() !=
0){
      System.out.println("  TEXT_NODE:"+ch.getNodeValue());
     } else {
      System.out.println( ・・・・key1を出力したいです);
      System.out.println( ・・・・valを出力したいです);
     }
   }
  }
}

665泣きそう:2008/08/26(火) 13:50:39
長く書いてしまってごめんなさい。
けど、どなたか教えて下さい。
お願いします
666デフォルトの名無しさん:2008/08/26(火) 14:18:49
>>662

Document doc = db.parse(in);
NodeList l = doc.getElementsByTagName("element");
if (null == l) {
  System.out.println("タグ element はありません。");
} else {
  System.out.printf("タグ element は %d 個あります。\n", l.getLength());
  for (int i = 0; i < l.getLength(); ++i) {
    NamedNodeMap n = l.item(i).getAttributes();
    System.out.printf("\t[key=%s],[val=%s]\n"
        , n.getNamedItem("key").getNodeValue()
        , n.getNamedItem("val").getNodeValue());
  }
}
667デフォルトの名無しさん:2008/08/26(火) 14:43:34
それ以前にxmlの設計が腐ってる。
xmlスレ行って出直して来い。
668デフォルトの名無しさん:2008/08/26(火) 15:30:04
>662
コンパイルエラー
ttp://javafaq.jp/S172.html
669デフォルトの名無しさん:2008/08/27(水) 00:15:27
>>662
普通はこんなかんじ。
indexはいらんかも。

<config>
 <ptn_data index="1">

 </ptn_data>
 <ptn_data index="2">

 </ptn_data>
</config>
670デフォルトの名無しさん:2008/08/27(水) 07:37:12
すいませんが教えてください。
自分で作った実行ファイルがあります(文字コードMS932)→Test.class
これをbatファイル(文字コードEUC-JP)で実行します。
batファイルの中身は
java Test 日本語パラメータ
で、batファイル自体は文字コードEUC-JPです。
この場合引数で受け取った"日本語パラメータ"という文字列を
プログラム内ではMS932として、文字化けせず"日本語パラメータ"として処理を行いたいのですが
どうすればいいでしょうか?

まず、batファイルをダンプして"日本語パラメータ"という文字列を見た場合と
args[0]をarg[0].getBytes()してダンプ出力した結果が違うのです。
ためしにarg[0].getBytes("EUC-JP")してもこれもまた上とはまた違った結果になります。
もう、引数で渡されてきた時点でデータが壊れているのでしょうか?
671デフォルトの名無しさん:2008/08/27(水) 07:59:53
>>670
コマンドラインはプラットフォームのデフォルトエンコーディングで扱
われると思う。batファイルとか書いてあるってことはWindowsかね。で
あれば、コマンドラインはms932で書かないと化ける。

ところで「実行ファイルの文字コードがms932」ってどういう意味?

672デフォルトの名無しさん:2008/08/27(水) 08:02:34
>>670
echo 日本語パラメータ

だけの内容のbatファイルをEUC-JPで作成して試してみ?
たぶん引数の前、コマンドラインシェルが解釈した段階で化けてると思うぞ。
673デフォルトの名無しさん:2008/08/27(水) 11:33:28
一旦バイトコードに変換してから処理したいんですが
文字化けを起こして出来ません。

PrintWriter out = response.getWriter();
//String val = request.getParameter("kanji");
//byte[] byteData = val.getBytes("Shift_JIS");
//val = new String(byteData, "Shift_JIS");
out.print(val);

コメントアウトを外すと文字化けを起こします。
表示先は文字コードはShift_JISであっている筈なんですが・・・
単純に両方Shift_JISをピンポイントで指定してるのに
なぜ化けるのでしょうか?バイトコードへ変換して戻す処理の中で何かデータの欠損でも起きているのでしょうか?
674デフォルトの名無しさん:2008/08/27(水) 12:30:06
SJIS外の文字は入ってないの?
675デフォルトの名無しさん:2008/08/27(水) 12:43:56
>673
1. response の PrintWriterオブジェクトの文字コードは何なのかしら?
2. request は正しい文字コードで入力を読み取ってるかしら?
3. 674 のように Shift_JIS外の文字は入ってないかしら?
4. response で出力した先の文字コードは 1 と同じかしら?
676デフォルトの名無しさん:2008/08/27(水) 15:35:15
行き詰まっているので質問させて下さい。
データベースに日付を管理するresettime・・・というテーブルがあります。
そのテーブルにはtimeというdate型のカラムがあり2008-08-27という値が格納されています。
んでソースです。
public void checkDate() {
Date now = new Date();//今日の日付
String sqlIndex = "select * from resettime";
try {
db.connect();//データベースに接続する
ResultSet rs = db.executeQuery(sqlIndex);//Statementのと同じ機能
rs.next();
if(now.after(rs.getDate("time")//今日の日付のはず)) { //※問題の箇所
String[] sql = new String[2];
sql[0] = "delete from popularmovieinfunnymoviechannel";
sql[1] = "update resettimeinfunnymoviechannel set time = '"+now+"'";
db.addBatch(sql);
db.executeBatch();//Statementのと同じ機能
}
}
catch(SQLException e) {

}
finally {
db.disConnect();//データベースを切断する
}
}
問題の箇所がtrueとなってしまい上手くいきません。バグっぽい箇所が在ればご教授下さい
jreは6_7です。

677デフォルトの名無しさん:2008/08/27(水) 15:38:43
nowは今日の日付に加えて現在の時刻も入ってるはず
そのDBのdate型が時刻を格納してないなら00:00:00になるはず
今日の現在時刻と今日の00:00:00を比較したらどうなるかというと・・・
678デフォルトの名無しさん:2008/08/27(水) 15:43:11
RMiの呼ばれる実装クラスにて、要求先のIPアドレスを取得する方法はあるでしょうか?
引数で情報を渡すはなしでお願いします。
679デフォルトの名無しさん:2008/08/27(水) 15:51:05
>>673
request.setCharacterEncodingでSHIFT_JISを有効にする。
あと、Tomcat5.0以降のバージョンでGetの処理すると、
デフォルトの動作でsetCharacterEncodingが無効になるから注意。
server.xmlの変更で対処して。そのあたりはググれば出てくる。
680デフォルトの名無しさん:2008/08/27(水) 15:55:34
>>677 nowをjava.sql.Date()のインスタンスにしてもtrueになるんですけど・・・
jre変えてみまッス。
681デフォルトの名無しさん:2008/08/27(水) 16:05:40
>>680
java.sql.Dateも一緒
Javadoc見てみ、時間をミリ秒で表すって書いてある
http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/Date.html
682デフォルトの名無しさん:2008/08/27(水) 16:20:08
結局データーベースから取ったDateとDateインスタンスは比較しても無駄って事ですか?
683デフォルトの名無しさん:2008/08/27(水) 16:24:51
>>682
java より先に小学生レベルの時刻の概念から学んだ方がいい
684デフォルトの名無しさん:2008/08/27(水) 16:28:50
>683 あいそうします。ありがとうございました。
685デフォルトの名無しさん:2008/08/27(水) 16:55:15
時間・時刻を比較したいのか
686デフォルトの名無しさん:2008/08/27(水) 17:11:31
afterとbeforeの動作を誤解してるとかじゃないよね?

nowが現在の時刻なんだから、それよりもafterな時刻なんて
存在しない……だから、”問題の箇所”は常にtrueになって当たり前。
687686:2008/08/27(水) 17:13:43
「それよりもafter」って変だったorz

現在の時刻よりも、未来の時刻は存在しないから
”問題の箇所”は常にtrueって言いたかった……
688デフォルトの名無しさん:2008/08/27(水) 21:01:43
>>686 もしjava.sql.Date型同士のインスタンスを比較するとして両方のインスタンスが
同年同一日ならafterでもfalseが帰る。
689680:2008/08/27(水) 21:20:11
>681 nowの方の日にちを調整することで解決させました。
このまま行ってたら大きな誤解を持ったまま行くところでした。thx。
690デフォルトの名無しさん:2008/08/27(水) 21:30:00
Component component = new JScrollPane(new JPanel());
JTabbedPane jtp = new JTabbedPane();
jtp.addTab(component);

のように書いた時に、後々componentを取得する方法はあるで
しょうか。
ご教授お願いします。
691690:2008/08/27(水) 21:40:35
すみません。690ですが
取得したいのはcomponentではなくて、
スクロールペインの中のJPanelでした。

宜しくお願いします。
692デフォルトの名無しさん:2008/08/27(水) 22:16:21
Strtusについて質問です。

public void setGoods(ArrayList<String> goods){
this.goods = goods;}
public void setNumber(ArrayList<String> number){
this.number = number;}

このようにしてBeanに格納したArrayListを、

<logic:iterate id="name" name="Bean">
<bean:write name="name" property="number" />:
<bean:write name="name" property="goods" /><br>
</logic:iterate>

上記のJSPで出力しようとしてもエラーが出ます。

<logic:iterate id="name" name="Bean" property="number">
<bean:write name="name" />
</logic:iterate>
<logic:iterate id="name" name="Bean" property="goods">
<bean:write name="name" />
</logic:iterate>

こういった書式だと値の表示は可能ですが、当然出力位置が変ってしまいます。

number1:goods1
number2:goods2
number3:goods3

最終的にこういう表示をさせるにはどういった書き方をすればいいでしょうか。
693デフォルトの名無しさん:2008/08/27(水) 23:17:58
>>691
((JScrollPane)component).getViewport().getView()
694デフォルトの名無しさん:2008/08/28(木) 01:24:16
>>693

ありがとうございます。
お陰で無事解決しました。
695688:2008/08/28(木) 09:17:37
ごめ、嘘ブッコイタ。
696デフォルトの名無しさん:2008/08/28(木) 10:11:00
>>678
java.rmi.server.RemoteServer.getClientHost() でガマンしろ。
697デフォルトの名無しさん:2008/08/28(木) 11:33:18
まったくの初心者です。よろしくお願いします。

Javaの勉強をしようと思い
「JDK 6 Update 7」をダウンロードしてインストールしてみました。
環境変数を設定した後に、バージョンが正しいか確認してみたのですが、

C:\>java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)

と表示さてれました。
ただし、

C:\WINDOWS\system32>java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

だと、きちんと「JDK 6 Update 7」がインストールされているぽいのですが・・・

これってちゃんとインストールされた状態になったのでしょうか?
698デフォルトの名無しさん:2008/08/28(木) 11:36:50
すでにインストールされてたっぽい JRE 1.4.2_03 は特に使わないなら削除してしまえ
あと javac -version も
699デフォルトの名無しさん:2008/08/28(木) 11:45:50
>>698
レスありがとうございます。

C:\>javac -version
javac version "1.6.0_07"

C:\WINDOWS\system32>javac -version
javac version "1.6.0_07"

でした。

1.4.2_3の削除についてですが、

プログラムの追加と削除に無く、
レジストリ内も検索してみたのですがそれらしいのが無いため

どこから削除すればよいでしょうか?
700692:2008/08/28(木) 11:54:23
自己解決しました。
ありがとうございました。
701デフォルトの名無しさん:2008/08/28(木) 11:55:18
>>699
環境変数の PATH を確認する。
恐らく "C:\jdk1.4.2_03\bin" みたいなのが含まれているはず。
702デフォルトの名無しさん:2008/08/28(木) 15:08:43
デザインパターンの本を買った人へ。
貴方のほらふきの癖を治せば、少しは友達が増えると思います。
703デフォルトの名無しさん:2008/08/28(木) 16:32:37
javaでゲームのようなものを作っているのですが、(GUIです)質問させていただきます。
ゲームを起動すると
ログイン画面→どのゲームを選ぶかの選択画面→ゲームの画面
と画面を入れ替えていきたいのですが、どうやって処理すればいいでしょうか?
やはりカードレイアウトを使うしかないのでしょうか?画面の切り替えには・・・
704デフォルトの名無しさん:2008/08/28(木) 16:50:41
質問させてください。
while文を回して配列に格納した多くのデータを、
終了後にファイルに出力するにはどうするのが一番効率的でしょうか?
ファイルの入出力がよくわからなくて…よろしくお願いします。
705デフォルトの名無しさん:2008/08/28(木) 17:06:04
Ubuntuなら
update-alternativeっていうコマンドでやる。
PATHには入ってないんじゃないかな?
javaのパスを直接指定する人も珍しいだろうし。
とりあえず気休めだが、
JAVA_HOMEをいじっておけ。
706デフォルトの名無しさん:2008/08/28(木) 17:58:51
>>704
効率なんか気にせず作ってみる
だいたい気にするほど遅くないことが多い
実際に気になるほど遅かったらそのときに訊くといい
707デフォルトの名無しさん:2008/08/28(木) 18:01:26
>>703
古いコンポーネントをremoveして新しいコンポーネントをaddすることもできるよ
708704:2008/08/28(木) 18:50:07
>>706
ありがとうございます。とりあえず作ってみます。
709デフォルトの名無しさん:2008/08/28(木) 19:30:56
>>707
ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・
710デフォルトの名無しさん:2008/08/28(木) 19:32:27
>>707
ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・カードは重くなりそうな印象で
711デフォルトの名無しさん:2008/08/28(木) 19:35:01
二重・・・すいませんov2
712デフォルトの名無しさん:2008/08/28(木) 23:13:00
>>710
印象で選択するのは危険。
実測してみればいい。
713デフォルトの名無しさん:2008/08/28(木) 23:39:43
他のスレで話題に上がってて気になったんで質問。
Javaでチャット機能作る場合は一人に1スレッド設計しか無理なの?
サーバからのメッセージも随時受け取らないとダメだし
714デフォルトの名無しさん:2008/08/29(金) 00:06:32
一人の何に1スレッドを当てるの?
715デフォルトの名無しさん:2008/08/29(金) 00:55:57
スレッドは常にwhileで受信の準備をしてるんじゃない?
716デフォルトの名無しさん:2008/08/29(金) 01:31:12
非同期
717デフォルトの名無しさん:2008/08/29(金) 01:43:05
genericsについて質問です。
Parentクラスを継承するChildクラスを定義して下記コードを記述しました。

List<? extends Parent> list = new ArrayList<Child>();
list.add(new Parent());

上記コードでコンパイルエラーが出ます。
型を見るとadd()の引数がnullになってました。

きっとadd()しちゃいけないから引数の型がnullなんでしょうけど、
理由がよくわかりません。教えてくだしあ。
718717:2008/08/29(金) 01:53:34
すんまそん。コードの2行目は

list.add(new Parent());
じゃなくて
list.add(new Child());
でした。どっちにしろ結果は同じなんですけどね。
719デフォルトの名無しさん:2008/08/29(金) 02:02:59
>型を見るとadd()の引数がnullになってました。

720デフォルトの名無しさん:2008/08/29(金) 03:21:38
>717
何度書いたか分からんが、ジェネリクスは静的解決、キャストは動的解決。

List<? extends Parent>
という宣言を書いたからオカシイ。

そもそも、宣言部分の代入式のほうで、<Child> としているではないですか。
何故、List<Child> と書かないのですか?
721717:2008/08/29(金) 03:26:41
>>719
Eclipseでの話となりますが・・・
「list.」までを入力するとメソッド一覧が出てきますよね?
そこでaddの定義を見ると、add(null arg0)となっているんです。

addをCTRL+左クリックで表示されるクラスファイルエディターでも確認できます。
722デフォルトの名無しさん:2008/08/29(金) 03:38:10
なんでジェネリックス入れてRTTI入れなかったんだっけ?
VMの実装が複雑になるから?
723デフォルトの名無しさん:2008/08/29(金) 03:53:44
それがJavaだから。
724デフォルトの名無しさん:2008/08/29(金) 04:10:33
>>717
List<? extends Parent>
には、Parent を継承したクラス Child1 や Child2 などを用いた
List<Child1> や List<Child2> などが代入されているかもしれない。
これらが同時に安全に add できるものは、
どんな型にもキャストできる null しかない。
725デフォルトの名無しさん:2008/08/29(金) 09:03:12
デュアルコアのCPUが2スレッドを同時に処理するJavaプログラムを動かすとします。
この場合1コアあたり1スレッドなんていう動作になるんでしょうか?

もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。
726デフォルトの名無しさん:2008/08/29(金) 10:10:19
>>725
Sun の Java VM であればネイティブスレッドなので 1 コア 1 スレッドで動くことができる。
というか、1 コアが 1 スレッドしか動かせないと思ってないか?Intel だって Hyper Threading
で 1 コア 2 スレッド動かせるし、Sun の Niagara 3 にいたっては 1 コア 16 スレッド(1 CPU
16 コアなので全体で 256 スレッド)動くぞ?

> もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。
別に気にならないだろ。普通に動くだけだが、何か変な妄想してないか?
空いてるコアは別の仕事するだけだ。
727デフォルトの名無しさん:2008/08/29(金) 10:22:07
従来のシングルコアで10スレッド動かしたら
1コア当たり何スレッドの処理をするんだろうか?
Javaプログラムだと5スレッドかもしれないし、100スレッドかもしれない
しかし、これだと処理されないスレッドが発生し、さらに
他のスレッドも待ち状態のままになり、見かけ上ではフリーズしたのと同じだ
これを回避するためにPentium4のHT技術が開発されたんだな
Intelすげえという電波ですねわかりません
728デフォルトの名無しさん:2008/08/29(金) 14:55:48
コア数よりスレッド数が多い場合は見かけ上ではあるがOSがタイマー割り込みで実現する。
シングルCPU時代のスレッドは基本的に待機スレッド。
ビジースレッドの並列処理で処理効率をあげるような手法はマルチじゃないと意味はないが、
基本的にIOやイベント待ちでスレッドは止まっているものだ。
それからHTは微妙でビジースレッドの並列処理向きじゃないんだよな。
729デフォルトの名無しさん:2008/08/29(金) 15:13:40
新規質問。

Servlet 作ってて困っているのだけど、
スレッドID ってスレッドが動いてる時に突然変更されることってありえる?
730デフォルトの名無しさん:2008/08/29(金) 15:17:10
>>729
ない
ってJavadocに書いてあるよ
731デフォルトの名無しさん:2008/08/29(金) 16:00:09
intelがjava bytecodeとclassesを直接読み取っちゃうCPU命令を実装してくれればいい。
732デフォルトの名無しさん:2008/08/29(金) 20:56:38
>>731
死屍累々ってほどでもないが、すでにそういうチップは作られていて全く普及して無い。picojavaとか。
そもそも Java の byte code 自体がハードで実装するには不向きな内容だし。
昨今は実行時プロファイリングでホットスポットを解消するほうが実行速度が上がるし。
733デフォルトの名無しさん:2008/08/29(金) 21:24:02
intelのfloatや超越関数とかの機械語は、ibmやsunから見ればハードでの実装は不向きな内容であって、
それこそsin[x]なんかはソフトウェア(ライブラリ)で実装するもんだろうな。

つまり、java bytecodeはハードでは不向きという考えは古い考えじゃないの?
君みたいなゴミにとってはこれぐらいの話しすらついて来れないんだろうけどww
734デフォルトの名無しさん:2008/08/29(金) 21:26:14
jvmとjavaはもともとは家電(ハード)組み込みの設計だったしなぁ
735デフォルトの名無しさん:2008/08/29(金) 21:53:26
>>>732
おまえはどこに行っても相手にされないし無能なやつだな
736デフォルトの名無しさん:2008/08/29(金) 23:41:58
テキストファイルのエンコーディングが予めわかっていない場合
どうやって適切なエンコーディングで読むのでしょうか?
Javaのライブラリを使用すれば、自動的に適切なエンコーディングで読んでくれるものがあるのでしょうか?
737デフォルトの名無しさん:2008/08/29(金) 23:47:19
教授目指してみようかな。
それは結構面白いかも知れない。
戦国時代に生まれたかった。
そして戦場で野垂れ死にしたかった。
738デフォルトの名無しさん:2008/08/30(土) 00:14:47
先生にも2つのタイプがあってな、1つは研究者で教えるのが仕事じゃなくて技術の追求が仕事で、もう1つは教えるのが仕事の教師でどちらかといえば過去・既存技術に精通していて教えたり話したりするのが好きで上手な人。
聞きかじった最先端の雑記を偉そうに語るのは、先生じゃなくても無能なサルでも出来るけど、お前のタイプはどっちだ?
739デフォルトの名無しさん:2008/08/30(土) 00:27:33
MITの教授になりたい。
740デフォルトの名無しさん:2008/08/30(土) 00:29:47
>>736
不可能です。
あきらめてあてずっぽやるか、人間さまに直接おたずねください。
741デフォルトの名無しさん:2008/08/30(土) 00:39:06
少なくとも、最新技術を追いかけるのは最先端のオナニー・ショウを見てるようなものでしかないよ。
それよか、過去の技術や発明・基盤技術をちゃんと知ってるかどうかじゃないの?
大学でやってんならなおさらPCの歴史とかPCがたとどって来た道を知らないとねぇ。

ハードよりなら制御とか組み込みだし、ソフトよりならアルゴ・ライブラリとかコンパイラじゃないの?
すくなくとも、intelの機械語sin[x]は実際はハード内部でデコードしてハード・ロジックのライブラリを呼び出してるだけだしw

まずは自分用のCコンパイラを作れるかじゃないかな?
742デフォルトの名無しさん:2008/08/30(土) 00:42:41
>>741
針が太すぎて、ブランコ代わりに腰掛けられるよ・・・
743デフォルトの名無しさん:2008/08/30(土) 00:43:36
先端オナニーですね、分かります。
744デフォルトの名無しさん:2008/08/30(土) 00:46:00
じゃう゛ぁとともにあらんことを。
745717:2008/08/30(土) 00:55:29
>>720
それだけじゃ>>724みたいな結論にたどり着けないっすよ先輩。
理解してる人しか理解できないヒントというか何というか。

>何故、List<Child> と書かないのですか?
Genericsの勉強中に、クラス間に継承関係があっても
 List<Base> = new ArrayList<Child>();
のような事はできませんが、
<? extends Base>を使えば可能、という記述を見つけたので
試していただけです。で、add()ができないのは何故かと。

>>724
仮に可能であれば、
Child hoge = list.get(0);
とした時にChild1やChild2を返してしまいClassCastExceptionが発生するため危険、
という事でいいですか?

List<? extends Base>#get()の返り値の型をBase型として返せば
いいような気もしますが、それもやはり不都合があるんでしょうか。
746デフォルトの名無しさん:2008/08/30(土) 01:02:26
ジャヴァーは、言語仕様や文法よりも「ライブラリ☆命」なんですが・・・
747デフォルトの名無しさん:2008/08/30(土) 01:35:25
>>745
List<? extends Parent> list = new ArrayList<Child1>();
list.add(new Child1());
list.add(new Child2()); // ←ココ
748デフォルトの名無しさん:2008/08/30(土) 02:02:49
>>745
>List<? extends Base>#get()の返り値の型をBase型として返せば
 List<? extends Base> list = new ArrayList<Child>();
を例えば
 List<Child> childList = new ArrayList<Child>();
 List<? extends Base> list = childList;
としてみましょう。
 list.add(new Base());
が実行された場合、list.get() は Base インスタンスを返せるでしょうが、
childList.get() は Child のインスタンスを返せる(返すことを保証できる)でしょうか。
749デフォルトの名無しさん:2008/08/30(土) 10:08:37
>>743
SFCの『ラブクエスト』を思い出した。
「先っちょ、先っちょ、気持ち良い!」
750デフォルトの名無しさん:2008/08/30(土) 10:43:44
>>733
コプロセッサって知ってるか?

>>735
そうだな。オマエくらいしか相手にしてくれなくて人生寂しいよ。
でもオマエがこうやってレスしてくれて、マジな話ちょっとうれしかった。
無視されるのが一番辛い。煽りでもなんでも、反応してもらえてサンキュ。
751デフォルトの名無しさん:2008/08/30(土) 12:18:08
ぬるぽ
752デフォルトの名無しさん:2008/08/30(土) 12:36:16
KeyTypedの中でgetKeyCharを使って入力をコンソールに表示しようとしても0としか表示されません。
getKeyCharなら、アルファベットキーは表示されるのですが、矢印キーの時は何も表示されません。
どうしてでしょうか?
753デフォルトの名無しさん:2008/08/30(土) 15:32:44
JScrollPaneのJTableについて質問です。

例えば、あるボタンを押したらJScrollPaneがJTableの1行分だけ
下または上にスクロールする、というようなことは可能でしょうか。

JTable内で選択されている行を、そのボタンを押せば自動的に
ひとつ次or前の行に選択を移動させるようにしようと考えているのですが、
ScrollPaneに表示されている行内の終わりからボタンでさらに選択を奥に移動させると、
選択行は変わりますが、スクロールはしてくれないので、どうしたものかと悩んでいます。
754デフォルトの名無しさん:2008/08/30(土) 15:42:13
>>752
> KeyTypedの中でgetKeyCharを使って入力をコンソールに表示しようとしても0としか表示されません。
のgetKeyCharはgetKeyCodeの書き間違い?
なら、
> KEY_TYPED イベントの場合、keyCode は VK_UNDEFINED
なのでVK_UNDEFINED(=0)が返る。
矢印キーなどのキーコードが取りたければ、
keyTypedでなくkeyPressedやkeyReleasedでイベントを捕まえる。
755752:2008/08/30(土) 15:50:11
>>754
その通りCharじゃなくてCodeでした。
756デフォルトの名無しさん:2008/08/30(土) 16:12:37
757デフォルトの名無しさん:2008/08/30(土) 16:58:51
String str = "ABCDE";
という文字列があって、この文字列を逆にして表示させたいです。
最終的に、System.out.println(str); で、画面には
EDCBA と表示させたいです。
文字列を引数にとって、それを反転して返すメソッドがあるのは
分かったのですが、そういうのを使わないで、配列やforをうまく使って
自力で反転させたいのです。
charAt(int index)やfor辺りで試行錯誤したのですが、どうも辿り着きません。
方法を教えてもらえませんでしょうか?
758デフォルトの名無しさん:2008/08/30(土) 17:03:41
>>757
無駄なコードを書くことに、うまい方法なんて無いのでは?
759デフォルトの名無しさん:2008/08/30(土) 17:06:24
>>749
>>750
>>751
ぬるぽ
ぬるぽ
ぬるぽ
ぬるぽ
760デフォルトの名無しさん:2008/08/30(土) 17:06:38
>745
申し訳ありません。724 や 748 の話を良く聞いてください。
お詫びに、関係しそうな記事を置いていきます。

Javaの理論と実践: Generics、了解!
ttp://www.ibm.com/developerworks/jp/java/library/j-jtp01255/index.html
761デフォルトの名無しさん:2008/08/30(土) 17:13:23
>>756
どうもありがとうございます。その先に記述されているのをヒントとして、
ほぼ完成というところまでたどり着けました。
ただ、スクロールバーの▼・▲のボタンや、バーで移動させた際に、
その移動をさせたことを検出させて、かつ移動した距離を知りたいのですが、
どうにか知る術はないものでしょうか?たびたびすいません。
762デフォルトの名無しさん:2008/08/30(土) 17:17:03
>757
Stringオブジェクトは、作成後、状態を変更できません。
ということは、反転した Stringオブジェクトを作成する時点で、
既に反転した状態を持つ「何か」を用意する必要があります。

「何か」は、char配列でも良いですが、単に追加するだけなら
java.lang.StringBuilder/Buffer が良いと思います。
763デフォルトの名無しさん:2008/08/30(土) 17:19:30
http://www.apple.com/jp/mac/

このページの最上部のメニューバーみたいなのをウェブサイトに実装したいのでですが
何かオススメのスクリプトありませんか?

カテゴリ(ジャンル)が20個ぐらいありそれを1つのページに表示させたいです。

764デフォルトの名無しさん:2008/08/30(土) 17:57:51
相変わらずひねくれてる奴多いな。
>>757はそりゃアルゴリズムの問題でjavaとはあまり関係ないない。

str2=new StringBuffer().append(str).reverse().toString();

これがjava流。良くAPIを読むとサロゲートはreverseしないとかがまたいい!
765757:2008/08/30(土) 18:13:46
>>758
確かにうまくはないですね、言い方が悪くてすいません。
ただ、専用のメソッドを使うより、他のやり方を考えたら
プログラムの理解度も高まるかなーと思いまして。まだ初心者なんです。
>>762
配列を反転する方法がわからなかったので、
結局配列もStringBuilder/Bufferも使わないアナログなやり方で完成しました(´・ω・`)
ありがとうございます。
>>764
ひねくれものですかね?ヽ(´ー`)ノ
766デフォルトの名無しさん:2008/08/30(土) 18:46:46
>>765
理解したいなら、reverseのソース読むべきじゃね?
767デフォルトの名無しさん:2008/08/30(土) 18:53:12 BE:511027586-2BP(5957)
ボタンを押すと定められた波形・音程で音が鳴る、という簡単なアプレットをMac OS X上で作りました。
当然Mac上では問題なく動くのですが、Windowsではうまく動きません。
音意外の部分は問題ない挙動なのですが、どうにも音だけが出ません。(サンプルレート8000、ビットレート16、モノラル)
Javaのバージョンも最新です。
何か心当たりのある方、教えて頂けると助かります。お願いします。
768デフォルトの名無しさん:2008/08/30(土) 19:15:02
テーブルで常に一行だけしか選択できないようにする方法ってあります?
769デフォルトの名無しさん:2008/08/30(土) 19:32:00
>>702
じゃあ、これから正直になりますので、友達になってください。
770デフォルトの名無しさん:2008/08/30(土) 19:45:00
>>768
APIドキュメント見てもいないのか?
JTable#setSelectionMode 辺りを探れ
771デフォルトの名無しさん:2008/08/30(土) 19:49:13
>>765
どんな方法にしろ、目的を達成するプログラムが書けたのならOKだ。
後は 766 の言うように他の同じことをするプログラムを見て、違いを観察するんだ。
自分で書き、他人のを読み、違いを吸収して次に生かせばいい。
772デフォルトの名無しさん:2008/08/30(土) 20:29:55
>>761
AdjustmentListenerは?
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){
int oldValue = 0;
public void adjustmentValueChanged(AdjustmentEvent e){
if(e.getValueIsAdjusting()) return;
System.out.println("Adjusted: " + (oldValue - e.getValue()));
oldValue = e.getValue();
}
});
とかで
773デフォルトの名無しさん:2008/08/30(土) 21:00:41
java初心者です。お聞きしたいことがあります。
javaからPHPにバイナリデータを渡したいのですがデータの中に0x00が
含まれていると2byteの0x5c,0x30に置き換わってしまいます。
どなたかご教授おねがいします。

String postParams = "p1=";
byte[] byteBuf new byte[1024];
OutputStream oStream = null;
:
con = (HttpConnection)Connector.open("http://localhost/xxx.php", Connector.READ_WRITE, true);
con.setRequestMethod(HttpConnection.POST);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

oStream = con.openOutputStream();
oStream.write(postParams.getBytes());
oStream.write(byteBuf); //←ここのDATAに0x00が含まれていると
oStream.close();

con.connect();
:
774デフォルトの名無しさん:2008/08/30(土) 22:45:54
>>773
>byte[] byteBuf new byte[1024];
コンパイル通ってるコード?
byteBufに実際は何を入れてるのか。
775デフォルトの名無しさん:2008/08/30(土) 22:54:34
HTTP POST でベタにバイナリなんて送れたっけ?
776デフォルトの名無しさん:2008/08/30(土) 23:00:20
JTableでアクティブな行は青色になりますよよね?
それに加えて行の中でクリックしたセルだけ青い囲みがかかるんですけど
このセルの囲いをなくすことってどうやったらできるんでしょうか?
検索してもちょっとわからないので、、、ご教授ください。
777デフォルトの名無しさん:2008/08/30(土) 23:02:31
>>772
おお、ありがとうございますm(_ _)m
無事にできました。
778デフォルトの名無しさん:2008/08/30(土) 23:12:07
>>776
setCellSelectionEnabled(boolean)とかなかったっけ?
779デフォルトの名無しさん:2008/08/30(土) 23:16:39
>774,775さん

上記例では部分抜き出しで書きましたがコンパイルは通ってます。
データは仮に
[0xff,0x10,0x00,0xff]だとしたらPHPで受け取って
そのまま送り返して調べた結果では、
[0xff,0x10,0x5c,0x30,0xff]となってます。
画像データなども送りたいと考えているのですが。

宜しくお願いします。
780デフォルトの名無しさん:2008/08/30(土) 23:55:40
データの持ち方について質問です。
プリミティブ型はスタックにデータを持ってて、ヒープ領域は使わないと認識してますが合ってますでしょうか。
それと、プリミティブ型の配列はヒープ領域を使ってて、要素0のデータへのアドレスをスタックに格納して、ヒープ領域では連続した領域に格納されているという認識で合ってますでしょうか。
あと、オブジェクト型の配列でも同様に、ヒープ領域では連続した領域に保持されているのでしょうか?
781デフォルトの名無しさん:2008/08/31(日) 00:04:13
>>778
うーむ、それだとセルのみ選択したときに色がつくようになっちゃうんですよね・・・。
逆のことをしたいんですが、何かないでしょうかね。
782デフォルトの名無しさん:2008/08/31(日) 00:11:39
>>779
>byte[] byteBuf new byte[1024];
なんて、コンパイル通る訳無いだろ。
コンパイルも通らないコードなんか載せられても何も答えられんわ
783デフォルトの名無しさん:2008/08/31(日) 02:01:47
>>780
jvm.dllの実装上の問題です。普通はそのように実装するんですけど、あなたにピッタシのAPIはByteBuffer.allocateDirectですかね。
784デフォルトの名無しさん:2008/08/31(日) 02:42:37
>>782さん

あああ!、申し訳ないです。'='←書くの抜けてました。
プログラム上ではちゃんと書いてます><

byte[] byteBuf = new byte[1024];
何度もすみません。
785デフォルトの名無しさん:2008/08/31(日) 03:11:15
>>779
コード 0x00 (NUL) が 0x5C 0x30 (\0) に変換される、と。

773 では、Content-Type に application/x-www-form-urlencoded を指定しています。
この指定自体は、form を送信する際の一般的な設定だと思います。

しかし、この指定によって、クライアントかサーバか、どちらか分かりませんが、
変換が行われてると、私は思います。

つ【パケットキャプチャ】かな?
786デフォルトの名無しさん:2008/08/31(日) 03:33:00
>>781
TableCellRenderer を見れ。
787デフォルトの名無しさん:2008/08/31(日) 03:40:28
>>779
>そのまま送り返して調べた結果では、

PHP が受け取ったモノをチェックしろよ。
送り返して調べたって、送り返す時にヘマしてたら分かんなくなるだろ。
788デフォルトの名無しさん:2008/08/31(日) 10:26:08
http://www12.plala.or.jp/ksp/wave/beating/
これの真ん中あたりにあるアプレット動く?
うちのXPだとIEでもFirefoxでも動かん。
789デフォルトの名無しさん:2008/08/31(日) 11:31:32
x-www-form-urlencodedの意味を考えろってことで。
790デフォルトの名無しさん:2008/08/31(日) 11:34:44
>785,787さん
PHP側では
<?php
$p1 = isset($_REQUEST['p1']) ? $_REQUEST['p1']: '';
$p2 = isset($_REQUEST['p2']) ? $_REQUEST['p2']: '';
if ( $p1 ){
echo ($p1);
}
?>
としているのですが。

PHP側でも調べてみます。
791デフォルトの名無しさん:2008/08/31(日) 11:43:07
>>773
お前の書いたsetRequestMethodとsetRequestPropertyを一万回読み返せ
BASE64でエンコード/デコードするか、URLにエンコードするか、
Content-Typeをimage/jpegにするか、バラバラすぎる。
あと受け側がどう処理するかによって異なる。
792デフォルトの名無しさん:2008/08/31(日) 13:31:24
酷い流れデツネ
793717:2008/08/31(日) 15:31:20
>>747 >>748
すんません。
実際に返されるインスタンスの型が問題であって
返り値の型をBaseクラスにしても全然解決になってないですね。
質問に答えてくださった先輩方ありがとう。
794デフォルトの名無しさん:2008/08/31(日) 15:39:43
JPanel上でImageIOつかいたい
どうしたら良い?
795デフォルトの名無しさん:2008/08/31(日) 16:04:53
というかHTTPすらろくに理解してないんじゃないのか?
x-www-form-urlencodedでバイナリ送るとか吹いたぞw
796デフォルトの名無しさん:2008/08/31(日) 16:13:39
ホームページのフォームからJava servletでMySQLに複数の名前と番号のセットを
入力したいのですが参考になるホームページが見つかりません。
参考になるサイトやブログを教えていただけないでしょうか。
797デフォルトの名無しさん:2008/08/31(日) 16:38:00
795のように書けばあたかも知ってるように見えるが大概は知らない場合が多い
798デフォルトの名無しさん:2008/08/31(日) 16:55:19
コンソールで入力した文字列から、特定の文字が何文字含まれているか
表示するプログラムを作りたいのですが(例えば「javaprogram」と入力したら
「aは3個含まれています」と表示されるような感じです。
どうすればできるでしょうか?相当考えたのですが…
何の構文やメソッドを使うのか…どうかヒントをば…
799デフォルトの名無しさん:2008/08/31(日) 17:00:25
>>798

ヒント:配列
800デフォルトの名無しさん:2008/08/31(日) 17:13:04
String#indexOf
801デフォルトの名無しさん:2008/08/31(日) 17:41:51
>>794
BufferedImage と ImageIcon の合わせ技。
802デフォルトの名無しさん:2008/08/31(日) 17:44:52
BufferedImage bi = jPanel1.getComponent(0).getGraphicsConfiguration()
.createCompatibleImage(10,10);
これでいいのかな
803デフォルトの名無しさん:2008/08/31(日) 17:48:50
>>796
1個のデータは登録できるのか?
できてないなら、無理すんな。
まずは単一で考えなよ
804デフォルトの名無しさん:2008/08/31(日) 17:50:12
>>798
・char[] にしてまわす
・StrigBufferにしてまわす
どちらでも好きな方を
805デフォルトの名無しさん:2008/08/31(日) 18:54:53
または、特定の文字をすべて削除した文字列を作って長さを比べる
自分も質問なんだけど、テキストエリアの後ろに画像を入れるにはどうしたら良いのかな。
806デフォルトの名無しさん:2008/08/31(日) 18:59:19
正確にはJScrollPaneだった・・
807デフォルトの名無しさん:2008/08/31(日) 18:59:44
HTMLDocument使うとか、画像に対応したDocumentとViewを作ればいいんでない?
808デフォルトの名無しさん:2008/08/31(日) 19:00:48
ん?やりたいことがいまいち分からない・・
背景に画像?
JScrollPaneのViewportに画像描画してJTextAreaを透明にってこと?
809デフォルトの名無しさん:2008/08/31(日) 19:27:46
>>786
すんません、調べてみたんですがどうしてもわからない・・・
CellRendererの中にクリックでアクティブになったセルに関する設定項目が見つからないっす。
説明が下手なんですが、わかりやすく言うと、クリックされたセルのある行は薄青になりますよね?
それとは別に、その薄青の行の中でクリックしたセルだけボーダーラインが太くなりますよね。
あの太いボーダラインをなくしたいんです。

setRowSelectionIntervalを利用すると行が薄青になるだけなので、テーブルのMouseListenerに

1 int rowIndex = jTable.getSelectedRow();
2 jTable.removeRowSelectionInterval(rowIndex, rowIndex);
3 jTable.setRowSelectionInterval(rowIndex, rowIndex);

とやってみたのですが、これだと2の部分では薄青だけ消えて、太いボーダーラインが残ってしまいます。
どうすりゃ消えるんでしょうか、、、
810デフォルトの名無しさん:2008/08/31(日) 19:48:48
>>
vewportでやってみたのですが、イメージがやけに暗く表示されてしまいました。
バッファしてる間に暗くなるとかあるのかな・・・
811デフォルトの名無しさん:2008/08/31(日) 19:56:39
ないない。
もうちょっと詳細を教えてくれないと何とも言えないよ
812デフォルトの名無しさん:2008/08/31(日) 20:00:09
すいません。
出かけ先にいるので帰って見直してみます。
ありがとうございました。
813796:2008/08/31(日) 20:12:47
>>803
単一では出来ます。
ttp://www.atmarkit.co.jp/flinux/rensai/mysql09/mysql09b.html
を参考にコンパイル、MySQLの設定及びデータベースとテーブルも設定しております。
問題は、同じようなデータがありそれを複数同時に入力できないところです。
814デフォルトの名無しさん:2008/08/31(日) 20:21:40
>>813
最大10件とかならば、name-1, value-1 のように固定でHTMLに埋めてしまえ
完全可変にするならば、動的にJavaScriptでinputを作っていけばいい
815デフォルトの名無しさん:2008/08/31(日) 20:23:18
>>805
Swingの話かHTMLの話か解らない
SwingだったらTextAreaとLabelを配置したパネルを作って、それを配置する方が楽だし、再利用しやすい形になると思う
816796:2008/08/31(日) 20:52:25
>>814
すみません説明不足がありました。
仰るとおりHTMLのフォームはname[1],name[2]...のようにフォームに番号を付けています。
servletの方ではこれをループでMySQLに入力するようにしています。
また、名前(漢字)と数字なので先にループで配列に入力するといった方法も出来ませんでした。
JavaScriptによる入力ですが技術的に難しいです。
817796:2008/08/31(日) 21:02:33
肝心なことを忘れてました。
もし、フォームに名前はあっても番号はない場合は登録せず
次のフォームを読み取らせ、ループは名前が無くなったら出るというシステムです。

長々となってしまいまして申し訳ありません。
818デフォルトの名無しさん:2008/08/31(日) 21:05:26
ネイティブ言語や .NET 言語で実現できることは、Java でも実現できますか?
819デフォルトの名無しさん:2008/08/31(日) 21:06:14
無理。
820デフォルトの名無しさん:2008/08/31(日) 21:08:23
こんな感じでできるだろ
for(int i = 1; i < n; i++) {
 getParameter("name[" + i  + "]");
 getParameter("value[" + i  + "]");
}
821796:2008/08/31(日) 21:13:43
>>820
データは取得できるとは思うのですが、
データを保存またはMySQLに連続して登録するときはどのようにすればよろしいでしょうか。
822デフォルトの名無しさん:2008/08/31(日) 21:24:00
>>821
Valuesをつなげるか、何回もUpdateとかInsertする
823デフォルトの名無しさん:2008/08/31(日) 21:42:17
beginTransaction();
for(int i = 1; i < n; i++) {
 getParameter("name[" + i  + "]");
 getParameter("value[" + i  + "]");
 insertOrUpdate(data);
}
commit();
824デフォルトの名無しさん:2008/08/31(日) 22:37:08
テーブルでソートを行うために
setAutoCreateRowSorter(true)を使っているのですが、
ソートを一時的に無効にしたい場合が生じました。
setAutoCreateRowSorter(false)ではだめなようなので、
setRowSorter(null)を使っているのですが、
このような方法でよいものでしょうか。
825デフォルトの名無しさん:2008/08/31(日) 22:47:13
>824
APIドキュメントは読みましたか?
そこに書いてありませんか?
826798:2008/08/31(日) 23:05:53
>>799 >>800 >>804
ヒントありがとうございます。
ヒントを頼りにここまではできたのですが、
http://hisazin-up.dyndns.org/up/src/75650.java
文字列を入力するとwhile文が無限ループになります。
無限になるのはわかるんですが、何を入れれば無限がとめられるのかわかりません。
もうこれ以上しぼっても何にも出てこないので、どうか何が足りないのか指摘をお願いしますorz
827デフォルトの名無しさん:2008/08/31(日) 23:06:51
>>819
実現な無理なことって何?
※中間言語を介しているのでネイティブより遅いってのはナシ
828デフォルトの名無しさん:2008/08/31(日) 23:08:16
× 実現な無理
○ 実現が無理
829デフォルトの名無しさん:2008/08/31(日) 23:08:28
while(!(s = br.readLine()).equals("end")){
.....
}
こうして、読み込みと同時にループ判定ってのをJavaではよく使うよ。
830デフォルトの名無しさん:2008/08/31(日) 23:15:12
てかループの最後でreadLineしなきゃダメだろ、冷静に考えろ
831798:2008/08/31(日) 23:22:32
>>829 >>830
もうほんとありがとうございます。どっちのパターンでもできました。
未熟ですいません。途中泣きそうになってました。
教えていただいた知識はありがたく吸収させて頂いて、
完全体への糧とさせて頂きます。
832デフォルトの名無しさん:2008/08/31(日) 23:23:39
アグモン進化〜〜〜!
833デフォルトの名無しさん:2008/08/31(日) 23:24:47
javaの文字処理は、

while (r.ready()) {}

がセオリーなんだけど・・・

アホな奴が書いた説明を読んだんじゃないの?
834デフォルトの名無しさん:2008/08/31(日) 23:34:27
セオリー(笑)と言い切る根拠示したら?
835798:2008/08/31(日) 23:34:28
>>832
ちょww
>>833
独学でやってるんですが、教科書にはその書き方はのってなかったですね。
でもちょっとした応用ですよね。気付かない自分の無力としておきます。
ありがとうございます。
836デフォルトの名無しさん:2008/08/31(日) 23:37:55
VB上がりの人は、rubyかperlの方からやっるといいよ。
837デフォルトの名無しさん:2008/08/31(日) 23:39:14
>833
言いたいことは解るが、その場合は
while(r.ready()) {
System.out.println("文字列を入力して下さい");
String s = r.readLine();
if(s.equals("end")) break;
// 以下同様
}
と書かなくてはならないだろ。
そこまでちゃんと説明しないのはあまりにも無責任。
ついでにいえば、r.ready()がfalseになることは基本的にないからな、標準入力からとっているわけだし。
838デフォルトの名無しさん:2008/08/31(日) 23:40:12
>>795

こいつには「友達はいないだろうな」と感じるのは、俺だけなのかな・・・
839デフォルトの名無しさん:2008/08/31(日) 23:43:04
たぶんMSDNのVBの記事ののりで、いつまでもお子ちゃまのままなのか、もともと糞まみれのまま生活してるとかじゃないか?
840デフォルトの名無しさん:2008/08/31(日) 23:44:18
だなw
841デフォルトの名無しさん:2008/08/31(日) 23:45:40
ぬるぽ
842デフォルトの名無しさん:2008/08/31(日) 23:52:42
>>805
です。帰ってきました。
具体的には
JPanel panel = new GraphicPanel("image.jpg");
JTextArea area1 = new JTextArea();
JTextArea area2 = new JTextArea();
area1.setOpaque(false);
area2.setOpaque(false);
JScrollPane scrollA = new JScrollPane(area1);
JScrollPane scrollB = new JScrollPane(area2);
scrollA.getViewport().setOpaque(false);
scrollB.getViewport().setOpaque(false);

panel.setLayout(new GridLayout(2,1));
panel.add(scrollA);
panel.add(scrollB);
という形でやっているのですが・・
GraphicPanel()は、別クラスでイメージ名を渡すとそれがパネルの背景になります。
843デフォルトの名無しさん:2008/08/31(日) 23:56:03
>>834
>>837

流れを見ると、君が勉強不足なだけのようだけど?
844デフォルトの名無しさん:2008/08/31(日) 23:59:56
>>837はかなり問題発言だと思うけど、このスレ的には放置でいいの?
845デフォルトの名無しさん:2008/09/01(月) 00:01:36
ITドカタ出身のカスみたいだし、ほっとけばいいんじゃない?
846デフォルトの名無しさん:2008/09/01(月) 00:03:55
>>841,844,845

だなw

847805:2008/09/01(月) 00:06:48
どうやらJScrollPanelの透明化が出来てないようです。。
848805:2008/09/01(月) 00:13:08
setOpaque
getViewport().setOpaque
どちらもやると透明になりました!!すれ汚しすいませんでした。
849デフォルトの名無しさん:2008/09/01(月) 00:15:32
そうだ!大学や専門学校でVBとかC#を教えればいいんじゃんか!
VBの方が使ってる人多いし、VBアプリもいっぱいあるじゃん。
高校ではBASIC教えてんだから、何で大学とかでVBを教えないんだよ。オレ頭いい〜
850デフォルトの名無しさん:2008/09/01(月) 00:19:54
>>805
これ参考になるかな?
ttp://terai.xrea.jp/Swing/CentredBackgroundBorder.html

>>809
使ってるのはDefaultTableCellRendererだよな?
だとしたらgetTableCellRendererComponenメソッドをオーバーライドして、
super.getTableCellRendererComponenで取ってきたComponentを
JLabel(もしくはJComponent)でキャストしてやつを
setBorder(null)にすればうまく行く様な気がする。

851デフォルトの名無しさん:2008/09/01(月) 00:37:46
ジャヴァ最高!
サン最高!
アムロ最高!
852デフォルトの名無しさん:2008/09/01(月) 00:45:04
以下でchannelを閉じるときにFileOutputStreamって自動的に閉じますよね?
FindBugsさんに怒られて不安になってしまいますた。
FileNotFoudExceptionとIOExceptionはメソッド単位で投げてます。
clearしているstreamは引数で与えているByteBufferです。


File file = new File(fileName);
FileChannel channel = null;
try {
channel = new FileOutputStream(file).getChannel();
channel.write(stream);
} finally {
// 事後処理
stream.clear();
if (null != channel) {
channel.close();
}
}
853デフォルトの名無しさん:2008/09/01(月) 00:52:09
javaで開発してる人の半分以上はwindowsであるという事実がある。
しかしjvm runtimeも.net runtimeもほぼ同じことが出来るのに、なぜこれほどまでにMSは嫌われるのかが謎だな。
さらにwindowsのvb, c#で簡単なこと(例えばメディア・プレーヤ系とか)をわざわざjavaでやるのもまたなんとも香ばしい。

今の時代の主流OO言語風に言えば、.netで作ったライブラリをjvmから呼び出せば済むことなんじゃないの?
854デフォルトの名無しさん:2008/09/01(月) 01:03:19
dot net と jvm bytecode が相互にアクセスして相互に運用が出来るライブラリとかはもう誰かが作ってるよ。
どっかにあったような…海外だったかな?
855デフォルトの名無しさん:2008/09/01(月) 01:30:28
>>853
効率だけで物事を選ぶわけじゃないからだろ。
856デフォルトの名無しさん:2008/09/01(月) 01:39:28
>>841
ガッ
857デフォルトの名無しさん:2008/09/01(月) 01:45:30
俺のサーバPC(インテルCPUじゃないの)でiphone使えたりmp4再生できても意味ないからな・・・
それよりも、それらコーディックの類は特許の塊でもあるから、jvmで実装するよりもそういうのは特許に関心があるMSに任せといて、
それらメディア系のファイル使うときは、dotnetやjavaのライブラリAPIでアクセスできれば十分じゃないの?

h.264みたいな最先端の技術はさすがに専用のデコーダ兼表示端末(インテルPCとかかな)ないと実用じゃないだろうけど、
そうじゃなければ、昔からあるシェルのパイプ機能に毛が生えたのでいいよ。

特許がどうとか言うと、ライセンスとか裁判とかジャスラックとかウザイだろw
どうせおまえなんか法学部出身なわけでもなければ民事裁判やったことないんだろうしww
858デフォルトの名無しさん:2008/09/01(月) 01:53:59
iniファイルでプロパティ設定するのは骨が折れるから、プロパティ設定辺りはいまどきはGUIでサクッとやりたいなと思うけど。

Javaがデスクトップとかメディアに進出もいいけど、どうせ特許の壁にぶつかるし、出来ても所詮はネイティブであって、携帯電話でそのデコーダ(コーディック)が動くわけでもないし、
今必要なのは、swingみたいにコンポーネントやbeansを作ってくれればいいでない?
java/jvmの管理とかマネジメント充実も一通り終わったから、そろそろデスクトップのUIとかの方かなと思う。
859デフォルトの名無しさん:2008/09/01(月) 02:42:31
夏休みは終わったらしいぞ
860デフォルトの名無しさん:2008/09/01(月) 03:35:07
すれ違い
861デフォルトの名無しさん:2008/09/01(月) 08:04:21
どなたか
>833
の解説をお願いします。
reader.ready() は「次の読み込みがブロックされるかどうか」だけとの事ですので、例えば以下の場合には正常に動作しない場合もあるかと思います。(※クライアントからデータが未送信の場合)
Socket s = serverSocket.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
while(reader.ready()) {/* 処理 */}
また、StringReader#ready() は常に true を返したりもします。
このような危険性がありながらなお ready() がセオリーとされる理由を御教示頂けないでしょうか
862デフォルトの名無しさん:2008/09/01(月) 10:30:33
それよか、.NetとJVMを結びつけるライブラリとかほんとにあんの?
863デフォルトの名無しさん:2008/09/01(月) 10:44:40
>>861
たぶん君は、ストリームのことを大学で教えてもらえなかった哀れな人なんだろう。
まずstdinを(line!=null) ?とかでナル・チェックするのはマズイことを知れ。
864デフォルトの名無しさん:2008/09/01(月) 12:13:46
>863
お返事ありがとうございます。
独学なので更に哀れな知識量しかなく、色々間違っているかと思います。
もう少々お付き合い下さい。すみません。

> stdinを(line!=null) ?とかでナル・チェックするのはマズイことを知れ。
との事ですが、その前に疑問を整理させて下さい。
元々の疑問は、「文字処理は ready()がセオリー」との発言でした。これは標準入力に限らず、Reader 系全般に当てはまるかと思います。

ここで、敢えて ready() をセオリーと言っていた事がよく分かりませんでした。
Reader#ready() は、「次の読み込みがブロックされるかどうか」を返す訳ですから、入力が無い == ブロックされる == false となり、例えば標準入力であれば、起動直後の入力が無い場合には
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
while (r.ready()) {/* 処理 */}
としてもループ内に入ることなく抜けてしまい、期待した動作はしないかと思います。
同様に、Socket から文字列を読み込む場合でも、通信状態に応じて、データパケットが届く前に ready() が実行される事もあるかと思います。
であるのに、ready() をセオリーとする理由がよく分からず、質問した次第です。
(ファイルからの入力に限定するのであれば、ready() がセオリーでも理解はできるのですが)
頭の悪い質問で申し訳ありませんが、回答をよろしくお願いします。

あと、stdin を null チェックするのはまずい、という理由もよく分かりませんでした。
System.in は null を返さない、とかそういう単純な理由ではありませんよね?
宜しければ一緒に教えて頂けないでしょうか
865デフォルトの名無しさん:2008/09/01(月) 14:04:51
俺は Reader#ready() 使ったことないのでセオリーとは思ってない。
stdin だろがなんだろが BufferedReader#readLine() だったら EOF->null だから当然チェックする。
>>833 >>863 の説明に期待するかw

で、Reader#ready() は「ブロックされるかどうか」じゃなく「ブロックされないかどうか」だ。
false だからといってブロックするとは限らないし、入力が無いとも言えない。
866デフォルトの名無しさん:2008/09/01(月) 14:47:41
JTableからJScrollPaneって取得できますか。
JTableのsetVisibleだとテーブルを非表示にできないようなので、
JScrollPaneのsetVisibleを呼びたいのですが。
867デフォルトの名無しさん:2008/09/01(月) 14:50:33
getParentで取得してチェック
868デフォルトの名無しさん:2008/09/01(月) 14:55:54
インタフェースにあるクラス(インタフェースじゃない)を継承させることってできますか?
869デフォルトの名無しさん:2008/09/01(月) 15:05:05
むり
870デフォルトの名無しさん:2008/09/01(月) 16:04:35
>>867
thx!
871デフォルトの名無しさん:2008/09/01(月) 16:41:30
基本データ型のうちなぜString型だけ先頭が大文字なのでしょうか?
これだとラップクラスと同じになりますよね。
872デフォルトの名無しさん:2008/09/01(月) 16:54:09
Stringは基本データ型ではありません
java.langパッケージに属するクラスです
873デフォルトの名無しさん:2008/09/01(月) 16:54:35
>>871
Stringは基本データ型じゃないだろ。
874デフォルトの名無しさん:2008/09/01(月) 16:59:34
これだからCをやってないやつはだめなんだよな
875デフォルトの名無しさん:2008/09/01(月) 17:09:00
ではchar型も基本データ型ではありませんね
876デフォルトの名無しさん:2008/09/01(月) 17:12:20
どうしてそう思いますか?
877871:2008/09/01(月) 17:23:02
すみません何か大きな勘違いをしてました
Stringはどう見ても基本データ型じゃないです
878デフォルトの名無しさん:2008/09/01(月) 18:15:43
byteからintに符号なしでキャストしたいときはどうするんですか?
879デフォルトの名無しさん:2008/09/01(月) 18:18:02
(int)Math.abs()
880デフォルトの名無しさん:2008/09/01(月) 18:30:24
>>879
言い方が悪かったです

(byte)0xff が-1でなく255になるようにしたいです
881デフォルトの名無しさん:2008/09/01(月) 18:33:24
byte b;があったとして
b&0xFF
ってすりゃいいよ。
882デフォルトの名無しさん:2008/09/01(月) 18:36:32
(int) ((byte) 0x80) // 0xffffff80 = -128
((int) ((byte) 0x80)) & 0xff // 0x80 = 128
883デフォルトの名無しさん:2008/09/01(月) 18:41:32
解決しました。ありがとうございます
884デフォルトの名無しさん:2008/09/01(月) 20:01:57
> 865
返答ありがとうございました。
ひとまず、ready() の件はセオリーとは言えない、と認識して納得しました。

> で、Reader#ready() は「ブロックされるかどうか」じゃなく「ブロックされないかどうか」だ。
確かにその通りでした。大ボケこいてました。ご指摘ありがとうございます。

お騒がせしました。
885デフォルトの名無しさん:2008/09/01(月) 20:17:22
APIもちゃんと読んでもいなければ、ソースも読んでないんだろうな。
たとえば、java.io.Ready.read():Iのソース見たことないだろw

お前のようにいつまでも妄想してようじゃ上達しないんじゃない。
それなら、いつready()を使うんだろう?
886デフォルトの名無しさん:2008/09/01(月) 20:21:34
>>884
ready()とストリームついて知りたかったら、難しい解説本読むか、ちゃんと学校いけよw
2chでお手軽に聞くようなお手軽独学厨房にはもったいなくて教えてやんないww
887デフォルトの名無しさん:2008/09/01(月) 20:25:17
>>885
java.io.Ready.read・・・
888デフォルトの名無しさん:2008/09/01(月) 20:32:57
すみません
知識が浅いもので不快にさせてしまいましたら申し訳ありません
一応、判らないなりに、SunのJAVA5実装はReaderからStreamDecoder経由してio_util_md.c までは辿っています。
これ以上どこを見るといいのか教えて頂けますか
よろしくお願いします
889デフォルトの名無しさん:2008/09/01(月) 20:33:29
ストリームも知らないなら別にナムル・チェックいいでない?
どうせargs[k]とかやってる程度の人だろうしww
890デフォルトの名無しさん:2008/09/01(月) 20:39:34
>>885
よっぽどのアホだな・・・
891デフォルトの名無しさん:2008/09/01(月) 20:41:23
あじゃぱー
892デフォルトの名無しさん:2008/09/01(月) 20:41:34
>>889
日本語でおk
893デフォルトの名無しさん:2008/09/01(月) 20:46:29
>>888
そこまでソース追いかけても分からないならタコでしょw
Reader.read():Iが何でnativeでなくてnew char[1]なのかで十分分かると思うけど・・・
もしセンスがあればだけど、多分君はお勉強はできるけど・・・あんまし・・・ってタイプでしょうか?

というよりも、それならいつready()を使うわけ?
894デフォルトの名無しさん:2008/09/01(月) 20:49:54
東大の教授になりたかった・・・
895デフォルトの名無しさん:2008/09/01(月) 20:51:40
>>893
バカには一生わかんねーよ
896デフォルトの名無しさん:2008/09/01(月) 20:52:54
>>894
共産党に入れ
897デフォルトの名無しさん:2008/09/01(月) 20:57:20
>>895

なんみょう〜
なんみょう〜
なんみょう〜
898デフォルトの名無しさん:2008/09/01(月) 20:59:49
まずJavaの本読むより、「バカの壁」を読んでからじゃね?
899デフォルトの名無しさん:2008/09/01(月) 21:01:12
ListってCでいうとこのstructみたいなもんすか?
900デフォルトの名無しさん:2008/09/01(月) 21:09:26
>>899
リストはCでもつかうだろ。
901デフォルトの名無しさん:2008/09/01(月) 21:38:21
ready()なんか使う奴こそ糞だな!

一生ナンミョウ〜やってろよww
902デフォルトの名無しさん:2008/09/01(月) 21:49:04
>>901
いや、使う用件はあるだろ。
903デフォルトの名無しさん:2008/09/01(月) 21:52:35
ready?
904デフォルトの名無しさん:2008/09/01(月) 21:54:11
ストリームわかんねーの奴は「Cが難しすぎてJAVAに逃げてきました」って程度だろ。そういう奴はJAVAも無理無理。VBAかVBぐらい丁度いいよw
905デフォルトの名無しさん:2008/09/01(月) 21:56:58
ストリームもそうだけど、スレッドも分からない奴がいたよな。
スレッド・セーフがどうとかこうとか適当な妄想を言ってたけど、アレはC#のスレだったか?
906デフォルトの名無しさん:2008/09/01(月) 21:57:22
>>833はまったくの嘘だから気にしなくていいよ
907デフォルトの名無しさん:2008/09/01(月) 22:05:57
StringBufferクラスの必要性をご教授ください。
Stringだけで十分だと思うのですが・・・
908デフォルトの名無しさん:2008/09/01(月) 22:10:59
それなら、char[]で間に合うから、Stringも必要ないね
909デフォルトの名無しさん:2008/09/01(月) 22:11:55
StringBuilderで間に合うから、StringBufferは要らないね。
910デフォルトの名無しさん:2008/09/01(月) 22:18:08
ここは一応 初心者歓迎 となってるのを忘れてないか?
911デフォルトの名無しさん:2008/09/01(月) 22:24:49
うん歓迎してるぜ。
912デフォルトの名無しさん:2008/09/01(月) 22:28:42
充分にヒントになっているかと思うが?
913デフォルトの名無しさん:2008/09/01(月) 22:34:35
>>908
悪いがそれは違うな。もう一度JAVAのオブジェクト指向プログラミングの技法とやらから初めて、一からやり直したらどうだろか? 
914デフォルトの名無しさん:2008/09/01(月) 22:38:00
>>907
StringBufferはreverse()するとき良く使いますw
915デフォルトの名無しさん:2008/09/01(月) 22:39:56
Stringクラスは代入するたびに新しいStringオブジェクトを作るので、
メモリ的にも処理速度的もコストが高いんよ。
例えば、aとbとcの文字列を連結する場合に以下のような処理があったとすると
--------------------
String buffer = a;
buffer += b;
buffer +=c;
--------------------
StringBuffer buffer = new StringBuffer(a);
buffer.append(b);
buffer.append(c);
--------------------
Stringでは、 += bをしている処理は a に b の文字列を連結してる
のではなく、 aとbを連結したStringオブジェクトを新しく作ってる。
同様に +=c の処理でも 新しいStringオブジェクトを作ってる。
一方StringBufferでは、 .append(b) では 文字列を連結しているので
新しいStringBufferオブジェクトは作っていない。
つまり、新しいオブジェクトを作っていない(newしていない)分
メモリも速度も節約できるということ。
916デフォルトの名無しさん:2008/09/01(月) 22:45:57
>>906
答えられもしないくせに適当なこと言うな
917デフォルトの名無しさん:2008/09/01(月) 22:46:22
>>915
文字列の操作を行う場合は、って前提が抜けてなければ完璧な回答だったのにな
918デフォルトの名無しさん:2008/09/01(月) 22:54:39
まぁ今はコンパイルする時点で文字列の結合はStringBuffer#append()に置き換えてくれるから単純な結合は無視しちゃっていいけどね
919デフォルトの名無しさん:2008/09/01(月) 22:56:28
0と1を反転させる方法を教えてください。
かっこいい方法は無いですか?
920デフォルトの名無しさん:2008/09/01(月) 23:00:00
文字列の0と1なのか別のモノの0と1なのかくらい示せ
921デフォルトの名無しさん:2008/09/01(月) 23:01:09
かっこいい方法…俺には無理だ
922デフォルトの名無しさん:2008/09/01(月) 23:01:30
アセンブラの頃は良く XOR したな…
923デフォルトの名無しさん:2008/09/01(月) 23:03:47
int型でお願いします。
924デフォルトの名無しさん:2008/09/01(月) 23:09:04
>>915
そんな数十行にもわたって書くことじゃないと思うけど、お前が噂のニートだろ?それに友達も一人もいない自宅警備員で、実際は、プログラムも作ったことない無能だろww
925デフォルトの名無しさん:2008/09/01(月) 23:15:03
おー、こわい、こわいw
926デフォルトの名無しさん:2008/09/01(月) 23:17:44
> 893
ひとまず、標準入力の件に関しては
java ReaderClass < data.txt
といったデータの与え方をした場合の事なのではないかと理解しました。
確かに、この場合には間違いなく ready() の使い所と思います。
この理解は間違っているでしょうか?
927デフォルトの名無しさん:2008/09/01(月) 23:18:52
>>915の性格はキモイ説明サイトと同類だな。
もう、そういうサイトはいっぱいあるし、一見丁寧に説明しているようでどうでもいいところが長いだけだし、その程度の説明じゃ人は来ないだろうけどww

たとえば、x=1; new StringBuffer(x)とかだと、その説明の効率的の指摘からすれば、逆に非効率になるんじゃないの?
知ったかぶっりの雑学知識を披露したのは、わからないでもないんだけどねぇ・・・それじゃ文系のITジャーナリストと同じムジナだな・・・
928デフォルトの名無しさん:2008/09/01(月) 23:23:01
文系といえば、確かにALL ABOUTの記事かいてるのはキモイ奴の多いよな。
「どこにも就職できなかったけど、All Aboutで拾ってもらいました!!」て感じのオーラが強いって言うか…
早稲田みたいなところの心理学科卒業で、All Aboutで「アロマがどうとかは心理的に〜」とか専門術語を使って妄想記事かいてるのは吹いたww

>>915は結局それと同じムジナ。もう無理しないで死んでいいよ。
929デフォルトの名無しさん:2008/09/01(月) 23:24:08
>>919
!
930デフォルトの名無しさん:2008/09/01(月) 23:25:14
>>929それはboolean
931デフォルトの名無しさん:2008/09/01(月) 23:29:51
妄想ならせめて旧帝大レベルじゃないとだめだろ。といっても、この前の東工大の学生は、左手腕に刺青みたいな模様をさらけ出してて、危ないやっちゃなと思ったけど、東工大は旧帝レベルだから少しは聞いてやったw
その話の真意よりも、たぶん自宅警備員候補だろうし、人生苦労する奴なんだろうなと思った。
932デフォルトの名無しさん:2008/09/01(月) 23:30:17
>>926
そんな場合だからといってready()を使う必要なんてないよ。

10年ぐらいJava触ってて一度もready()を使ったことないけど、「入力が
なければ他の処理をする」という感じの疑似マルチスレッドぐらいしか
用途が思い付かない。で、そういうときは素直にマルチスレッドにする。

933デフォルトの名無しさん:2008/09/01(月) 23:32:10
雑談したいなら他行け。

>>926
そうか?
標準入力を使うのは、その元が手入力だろうがファイルだろうがttyだろうがとにかく
何かが送られてくるのを受けたいだけだからだろう。
ファイルからだから ready を使うとか考えるのは違うんじゃないか。
934デフォルトの名無しさん:2008/09/01(月) 23:35:41
つまり、>>915の説明はString/StringBufferの違いを本質的に指摘してないってことですね。実はそんな風に思ってましたがスッキリしました!
935デフォルトの名無しさん:2008/09/01(月) 23:39:39
文系のITジャーナリストってのは、堀江豚と友達だったメガネで蝶ネクタイの30代ぐらいでキモイ奴か?
あいつは正に素早く死んで欲しい。いつもおれは、寝る前には必ず神棚で手を合わせて「早く死んでくれって」祈ってるぐらいだし。
936デフォルトの名無しさん:2008/09/01(月) 23:41:15
それそろすれ違い
937デフォルトの名無しさん:2008/09/01(月) 23:55:54
>932, 933
リダイレクトで渡せば EOF が取れないだろうから ready() の出番・・・と思ったのですが、書き込んでから試したらきちんと EOF になりました(阿呆です)
何か根本的に道を間違えているようです。
標準入力 + ready() というキーワードにこだわり過ぎているのでしょうか。
(その辺りを離れて単純に ready() の使い道を考えるのであれば、932 さんの仰るような nio っぽい使い方が一番の使い所であるような気がします。)
938デフォルトの名無しさん:2008/09/02(火) 00:03:55
Stringをだな。阿呆みたいに+=で連結しまくってるコードがあったんだ。
あんまりにもあんまりだと思って、StringBufferで書き換えてみたんだ。
でもベンチマークを取ってみると、1msも変わらなくてだな。
そのメソッドのほんの数行、DBをアクセスしてる部分が、処理時間の99%
以上を持っていってたんだ……。
939デフォルトの名無しさん:2008/09/02(火) 00:15:58
つまりStringBufferの利用価値は自己満足が大半ってことですね?
940デフォルトの名無しさん:2008/09/02(火) 00:18:38
それで結局StringとStringBufferの違いは何?
941デフォルトの名無しさん:2008/09/02(火) 00:19:36
Bufferって付いてるか付いてないか
942デフォルトの名無しさん:2008/09/02(火) 00:20:07
確かによほど下手なことせん限り大差ないよな。でも演算途中でnew,new,new....ってのは気持ち悪い・・・
943デフォルトの名無しさん:2008/09/02(火) 00:22:33
もう夏は終わったんだぜ?
944デフォルトの名無しさん:2008/09/02(火) 00:23:20
でたでたでた。
945デフォルトの名無しさん:2008/09/02(火) 00:23:47
ちなみにStringBufferとStringBuilderとかHashTableとHashMapとかだと
実際の所どの程度速度に影響するもの?
946デフォルトの名無しさん:2008/09/02(火) 00:33:23
>>916
夏の終わりの駆け込みかと思ってたけど、オマエ、本気なんじゃないのか?
947デフォルトの名無しさん:2008/09/02(火) 00:34:48
>>926
間違ってるな。
948デフォルトの名無しさん:2008/09/02(火) 00:36:48
>>945
そいつらへのアクセスが処理の多くを占めてたら、それなりに効いてくるんじゃないか?
特にマルチコア/マルチCPUだと、synchronizedの部分でメモリの同期化が行われるから、それなりに馬鹿にならないコストがかかるような気がする。
とは言え、Java7あたりだと、JITコンパイラが不要なロックを省略するような最適化をぶちかましてくれるらしいからな……。
949デフォルトの名無しさん:2008/09/02(火) 00:36:50
>>945
それは自分でやってみれば分かる事じゃん・・・
950デフォルトの名無しさん:2008/09/02(火) 01:19:11
String:不変オブジェクト
StringBuffer:可変オブジェクト
っていう教科書にありそうなのではどうだw
951デフォルトの名無しさん:2008/09/02(火) 03:03:11
>>945
今となっては多分そんなには変わらない。
952デフォルトの名無しさん:2008/09/02(火) 03:14:15
まだやってんのか。違いは、効率じゃないんだよね。
953デフォルトの名無しさん:2008/09/02(火) 03:27:17
ぼくらはreadyなんかなくても幸せ!
954デフォルトの名無しさん:2008/09/02(火) 09:35:52
RandomAccessFileは、ソースを見てもnativeばかりですが、
実際(実装上)のところ多少はバッファがきいているから、BufferedInputStreamと同じように考えてよいのでしょうか。
他に気になるところはありますか?
955デフォルトの名無しさん:2008/09/02(火) 09:39:19
EclipseってJavaでできてるみたいですが
Eclipseはexeにするのに何使ってるんですかね?
956デフォルトの名無しさん:2008/09/02(火) 10:48:08
>>954
どうしてバッファされていると期待できるのかが理解できない。
ソースは見てないけど、バッファされないと思うぞ。バッファリングと
ランダムアクセスは相性悪いから。
957デフォルトの名無しさん:2008/09/02(火) 10:53:37
いや、逆にバッファされていないと考える方がおかしいんだけど…
問題はバッファされているか・いないかじゃなくて、実用上問題ないかどうかだと思うが?

それと、ランダムアクセスとバッファが相性悪いのはどの辺りに根拠があるの?
958デフォルトの名無しさん:2008/09/02(火) 11:07:42
相性とかそういうレベルの話でVMが作られてたら笑えるw
959デフォルトの名無しさん:2008/09/02(火) 11:09:37
いつも通り>>956の思い込みが根拠じゃね?
960デフォルトの名無しさん:2008/09/02(火) 11:17:54
>>958
そろそろ死んだ方がいいんじゃないか?人生疲れただろ。
961デフォルトの名無しさん:2008/09/02(火) 11:21:53
そうだよな…なんで俺は生きてるんだろう…
962デフォルトの名無しさん:2008/09/02(火) 13:09:56
ぼくらはEclipseなんかなくても幸せ!
963デフォルトの名無しさん:2008/09/02(火) 16:01:00
ローカルでグラフィック描画する時は
Graphics gr = img.getGraphics();
gr.drawLine(x1,y1,x2,y2);
gr.dispose();
と毎回設定して廃棄しますが

グローバルで
Graphics gr = img.getGraphics();
としておいて、ローカルで
gr.drawLine(x1,y1,x2,y2);
だけで、ずっとgrを使いまわしてはだめですか?
964デフォルトの名無しさん:2008/09/02(火) 16:23:10
いいよ
ずっと同じimgに描画するのなら
965デフォルトの名無しさん:2008/09/02(火) 16:26:23
そうですか
966デフォルトの名無しさん:2008/09/02(火) 17:39:54
ぼくはJCPADだよ!
みんな何使ってるの?
967デフォルトの名無しさん:2008/09/02(火) 17:42:07
eclipse
968デフォルトの名無しさん:2008/09/02(火) 17:43:36
今JCPADからEclipseに変えたとこ
閉じるのがいいね
969デフォルトの名無しさん:2008/09/02(火) 23:22:31
30過ぎてJava覚えてJavaの資格とったらプログラマーの就職先見つかりまつか?
970デフォルトの名無しさん:2008/09/02(火) 23:27:10
ちょっとの学歴あれば30ならまだ余裕で就けるよ
971デフォルトの名無しさん:2008/09/03(水) 00:00:03
>>969
おでも三十で就職目指してます。
お互い頑張りましょう。
972デフォルトの名無しさん:2008/09/03(水) 00:06:21
2つの別のクラスで同じ値を共有したいと思っています
ClassA、ClassBはループさせていて常に結果を出力しています。

ClassA{
if(hoge>0)
ClassF.setX(true);
else
ClassF.setX(false);
}

ClassB{
test.setEnable(ClassF.getX());
}

ClassF{
static boolean f;
static void setX(boolean bl){
 f = bl;
}
static boolean getX(){
 return f;
}
}

こんな感じのプログラムを書いたんですが、ClassBに反映されません
どこが間違っているんでしょうか?
それとも、別のクラスで同じ値を共有するのは無理なのでしょうか?
973デフォルトの名無しさん:2008/09/03(水) 00:19:08
もうちょっと意図が分かるように書けよ。
ClassBに反映されないってどういう意味だ?
test.SetEnabledで思った値が取れてないってことか?

こんな擬似コードじゃ分からんけど、
もしループとやらが複数スレッドで同時に回し続けてるって意味なら、
ClassF.fへのアクセスを同期化する必要がある。
volatileにするかメソッドにsynchronizedつける。
974デフォルトの名無しさん:2008/09/03(水) 00:19:34
>>972
別スレッドならsynchronizedかvolatile必須だぞ。
要素が1個かつJava5.0以上なら、AtomicBoolean等でもいい。
975デフォルトの名無しさん:2008/09/03(水) 00:24:53
大量のUDPパケットを受信して、処理したいんですが、
どうしても、幾つかのパケットを取りこぼします。
何か、効率良く処理できる方法はありませんか?
976デフォルトの名無しさん:2008/09/03(水) 00:32:18
>>973-974
ありがとうございます。
volatile static boolean f;
で望み度通りの結果を出すことができました。
977デフォルトの名無しさん:2008/09/03(水) 00:37:50
>>975
どーやってんだ
978デフォルトの名無しさん:2008/09/03(水) 00:44:18
>>976
変数が1個ならそれでいいけど、複数個ある場合はちゃんと同期取らないと変更途中のデータが読み出される可能性があるぞ。
詳しくは、マルチスレッドプログラミングに関する本を読んどけ。
979デフォルトの名無しさん:2008/09/03(水) 00:46:00
>>975
UDPならパケットが取れないことがあるのは前提じゃないのか
980975:2008/09/03(水) 00:46:50
DatagramSocketを使って、普通にポートを開いて受信しています。
981デフォルトの名無しさん:2008/09/03(水) 01:26:19
>>979
答えは、UDPを使わないってことだな・・・
982デフォルトの名無しさん:2008/09/03(水) 01:56:38
>>980
効率良くポートを開いて効率良く受信しろ
983デフォルトの名無しさん:2008/09/03(水) 02:23:25
動的なキャストはどうやるんでしょうか?
windows95/98のプラットフォーム向けのアプリなんでjdk1.2相当なんですが。
よろしくお願いします。
984デフォルトの名無しさん:2008/09/03(水) 02:26:08
動的キャストは、

Object obj;
...
val=(???)obj

ですが、???がコンパイル時未定の時のキャストです。
985デフォルトの名無しさん:2008/09/03(水) 03:03:37
で、それに何の意味があるの?
???が未定なのにキャストした後でどうやって使うわけ?
986デフォルトの名無しさん:2008/09/03(水) 03:15:12
>>984
valの型にキャスト
987デフォルトの名無しさん:2008/09/03(水) 03:34:55

jdk1.5にある、val.getClass().cast(obj)

といった方が早いですね。これを1.2でやるにはどういうコードになるんでしょうか。
988デフォルトの名無しさん:2008/09/03(水) 03:46:03
最近プログラムを勉強しはじめてわからないことだらけなのですが
キャストとパースの違いがよくわかりません
どなたか教えてください
989デフォルトの名無しさん:2008/09/03(水) 04:35:02
>>987
>>985 >>986 は無視かい・・・
Class#cast() は
>public T cast(Object obj) {
>if (obj != null && !isInstance(obj))
>throw new ClassCastException();
>return (T) obj;
>}
となってるから generic が無いと無理なんだと思っとけ。
それよりもこれを使うようなのは相当面相なプログラムだと思うが、
これを使わないですむようにするほうが後々の為になると思うぞ。
990デフォルトの名無しさん:2008/09/03(水) 04:49:15
無視というより、val=val.getClass().cast(obj) 程度で分かりませんでしたか。

使わないで済むように方法を探したんですけど、後々のためというより、ももともとターゲットが古くてこれしかないので聞いてるんですが?

知らないなら無理に御答えにならなくて結構ですけど、あなたはだいぶ妄想好きなんですねw

他に良い施策はありませんか?
991デフォルトの名無しさん:2008/09/03(水) 04:59:34
>>984
val=(???)objのあと、valをどう使うつもりなの?
型が決まっていなければvalのメソッドとかを呼び出すコードもvalを他のクラスに渡すコードも書けないんじゃない?
というかval自体の型はval=(???)objの前でどう宣言しているの?
objになりうるクラス共通にインタフェースを実装させて、そのインタフェースにキャストするとか、
全体のクラス設計を見直した方がいいと思う。
992デフォルトの名無しさん:2008/09/03(水) 05:01:45
単なるキチガイだったのか……
993デフォルトの名無しさん:2008/09/03(水) 05:03:36
>>990
お前の問題だから自分で捜せ
そんな態度じゃまともな人のレスも付かないよ
994デフォルトの名無しさん:2008/09/03(水) 05:07:05
そう思うんだけど、このスレの態度の方が酷くない。正しく真正糞スレだと思うが?
995デフォルトの名無しさん:2008/09/03(水) 05:09:42
次スレ?
996デフォルトの名無しさん:2008/09/03(水) 05:13:02
>>991
あなたは、答えらず、それにたいした能力もないのに、そんなに人の庭が好きなんですか?

その設計とやらを知って、あなたは手伝ってくれるんですかねw
一つ忠告しておけば、首突っ込むのは程ほどにした方がいいですよ。
997デフォルトの名無しさん:2008/09/03(水) 05:16:24
>>998>>988に答えてやって>>999は次スレ立てて誘導>>1000は俺が踏む
998デフォルトの名無しさん:2008/09/03(水) 06:02:25
ジェネリクスは静的処理...
コンパイル時に決定できない型は、キャストするのも代入するのも不可能也。

パース...parse...castに似ている部分もあるのか...

【初心者】Java質問・相談スレッド119【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1220388885/
999デフォルトの名無しさん:2008/09/03(水) 07:51:27
999
1000デフォルトの名無しさん:2008/09/03(水) 07:53:53
1000get!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。