★★Java質問・相談スレッド163★★
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/07/26(金) NY:AN:NY.ANJavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド162★★
http://toro.2ch.net/test/read.cgi/tech/1370777230/
0153デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN早速ありがとうございます。
1.7の話です。
透明だろうが不透明だろうが、見え方は一緒ですねぇ。
うまく説明できないのですが・・
JPanelにJtextAreaが乗っている構成で、
GraphicsはJPanelにダブルバッファで書き込みをしています。
現象としては
JtextAreaの再描画(リペイント)をしない場合は
メイン画面再描画(draw)でJtextAreaが消える。
JtextAreaの再描画(リペイント)をする場合は
JtextAreaがチラチラチラチラする。
JtextAreaの絵が塗りつぶされているんだとは思うのですが・・。
0154デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANレスくれそうですね
リペイントってどんなサイクルだったかわすれましたが
invalidateこんなの呼んで再描画するんじゃなかったかな・・
>>114は解決しました
というかPCにステミキ入ってなかったORZ
音だせるやつのinfo情報
getName "XeI ~LT[ (Realtek Hig"
getDescription"Direct Audio Device: DirectSound Capture"
toString interface TargetDataLine supporting 8 audio formats, and buffers of at least 32 bytesgetFormat PCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian
結局PORTから音はとりだせなかったけど、ミキサーからはとれますた
0155デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN貼ってから気が付くレベルの俺
0156デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANID:5J+mkZgJ!import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.print("Max :");
String input = in.next();
int x = Integer.parseInt(input);
for (int i = 1; i <= x; i++){
if (1%2 == 0){
System.out.println(i);
} else {
continue;
}
}
}
}
0157デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.ANなにこれ
0158デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0159デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANID:pU3LTo83!二の倍数かどうかの判定をしたかったのですが。
>>158
countinueのかわりにnextInt()ということでしょうか?
0160デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0161デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANこのクラスの存在、今日初めて知った
すごく便利そうなクラスだね
正規表現でのパースするとあるけど実装はネイティブコードとかでされてるのかな
それなら自分でJavaのコード書いてパースするより捗りそう
0162デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0163デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0164デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0165デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0166デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANeclipseってJavaをインストールしていないと
起動自体出来ない?
0167デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANeclipseにも色々あって、
java(厳密にはJRE)を内包しているものは、PCにjavaが入っていなくても大丈夫。
内包していない奴は、PCのjavaで動くので
インストールが必要。
0168デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0169デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANJRE入りのインディゴがお勧め
異論は認める
0170デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.ANJunoで無駄に鍛えられたので感覚が麻痺しているという説もあるけど。
それとPleiadesとかAll-in-oneが許されるのは小学生まで。
とっかかりはともかく早めの卒業を推奨。
0171デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0172デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN環境構築を覚えるまでが一番大変
覚えた後はさすがに楽なんだけど
0173デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN例外処理と粒度の小さすぎるAPIが原因
0174デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANまあ外部リソース依存の例外以外は個人的にやり過ぎだと思ってたが
0175デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN0176デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN0177デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANラムダが難航してた大きな一因だし、結局は検査例外の存在を無視した仕様に決まってしまった
0178デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN0179デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN海外のフォーラム等のボランティア精神がまったく違うんだよね〜。
日本人は陰湿なコード(自分は端から端まで把握してはいるがそれをコードで表現していない)が大好きな人が多い。
妙な悦に浸っている。良い設計の本にはその辺りが書かれている気がする。
0180デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANあるパッケージのjavadocファイル群と別のパッケージのjavadocのファイル群が別々にあって
それと統合したいんです
0181180
2013/08/03(土) NY:AN:NY.AN0182デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN例外をスローしないでスタックトレース出して終わりという
お粗末なandroid標準APIがあるよ
>>180
1.htmlを自分で編集する。互いにソースリンクがないなら超簡単
2.jadでシグニチャ取り出して自分でドキュメントコメント書いて・・・・
0183デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANコアのAPIのサイトをリンク先にしたことあった気がしたけど、自前のサイトでもできるかな。Javadocのオプションで。
0184デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN7月から自学自習でjavaをしており
「解きながら学ぶjava入門編」という参考書を終え、ぼちぼち理解ができてきました。
次のステップアップのためのお勧めの参考書はなにかありますか?
どなたかお答えお願いします。
0185デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANパーフェクトJava
0186デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANGUIやるのは無駄だからやるならコンソールでDBアプリとかな
0187デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.ANイメージを持って組み立てるものだ
0188デフォルトの名無しさん
2013/08/03(土) NY:AN:NY.AN例外処理を考えてるときが一番勉強になってる気がする。
APIや他のオープンソースの設計見にいきたくなるし。
0189デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANJava8で積極的にラムダを多用すればどうしてもRuntimeExceptionやthrows Exceptionだらけになるので
検査例外はほとんど意味がなくなるよ
そうならないように長いこと議論して対策考えてたんだけど結局特に対策はなし
0190デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.ANほとんど設定しなくてもいいのでJOptionPaneを使っているのですが、
このダイアログが表示されたときのコンポーネント(ボタン等)を個別に取得してサイズ等をを変更する方法が知りたいです。
機能はまったくいじるつもりは無く、内装を少し変えたいです。
0191デフォルトの名無しさん
2013/08/04(日) NY:AN:NY.AN0192デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANpublic static void main(String[] args)
{
func1(1);
}
void func1(final int arg)
{
func2(arg);
}
voi func2(int arg)
{
arg = 9999;
}
}
上記のarg = 9999;のように、final引数→通常引数とわたされた変数は、通常引数の場所で変更可能ですか?
0193デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0194デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN渡されるのは値っす。
func2の変数argの値は変えることができる。
func2の変数argの値を変えてもfunc1の変数argの値は変わらない。
0195デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANこの例だと参照渡しでなくコピーなので変更可になるかな?引数がintでなくクラスの場合にはfanc2の宣言のところで、final変数を通常変数で渡してる、ってエラーがでそう
0196デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANsystem.out.println("i")
if(条件式){
i = 0;
}
}
このようにとある条件の時のみ変数iを戻したいのですけど
この書き方はよくない(一定で上がり続けるiを勝手に変更するのは御法度)
と指摘されました。
なにかほかに言い書き方はありますか?
0197デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0198デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN無限ループの原因になりがちというこそなら、forをbreakしてその外で戻せば(return?)問題ないんじゃない。
0199デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANその条件をクリアするだけなら下みたいにラベル付きループとかも使えるけど
意図が分かりにくくて比較的バグの温床になりやすいコードってのはあんまし変わらんよ。
loop: while(true) {
for(int i = 0 ; i < 10 ; i++){
system.out.println("i")
if(条件式){
continue loop;
}
}
break loop;
}
その部分をメソッドに抜き出して正常完了か異常終了したかを戻り値で返す、
異常終了なら再度そのメソッド呼び出すみたいにした方がいいんじゃね?
0200デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN0201デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANfunc1のfinalはfunc1の変数の書き換えを制限するもの。
func2の変数はfunc1の変数とは別のものなんでfunc2の変数を
書き換えてもfunc1の変数は変わらないっすよ。なのでたとえ参照型で
あってもエラーはでないっすよ。
0202デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANint i = 0;
while (i < 10) {
if (条件式) {
// 処理
i = 0;
} else {
// 処理
i++;
}
}
これなら誰が見ても意図は明らか
0203デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANをInteger型の配列に一文字ずつ格納したいんですが([0,2,1,3,4])
以下のようなコードを書いたのですけれど、もっとスマートな方法ありませんか?
Integer[] Q = new Integer[code.length()];
for(int i = 0;i<code.length();i++){
Q[i] = Integer.parseInt(String.valueOf(code.charAt(i)));
}
よろしくお願いします
0204デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANまじっすか!すまぬ&ご指摘ありがとう!
0205デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN文字コードが連続しているのを利用して
char[] charArray = code.toCharArray();
Integer[] Q = new Integer[charArray.length];
for (int i=0; i<charArray.length; i++) {
Q[i] = (int)charArray[i] - '0';
}
0206デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANcodeが2GBあると2GBのメモリーとコピー時間の無駄遣いだからtoCharArrayやめれ。
0207デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANCharacterクラスのstaticメソッドにcharを数にする適当なものがあったはず。
0208205
2013/08/06(火) NY:AN:NY.ANこれの方がいいな
0209靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト教団
2013/08/06(火) NY:AN:NY.AN・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
↑マスコミや、カルトのネット工作員がやっていること
TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。
リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
0210デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0211デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0212デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0213デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANもっとスマートな煽りでお願いします
0214デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0215デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANデスクトップPC用のGUIアプリで、
Cを使っといてインラインアセンブラを使うとかいう方がどうかしている。
0216デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0217デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANどうしてもFORTRANみたいな糞コードになるけどw
0218片山博文MZパンク ◆0lBZNi.Q7evd
2013/08/06(火) NY:AN:NY.AN0219デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0220デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANどこが?
0221デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANttp://gcc.gnu.org/java/
0222デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANframeとpanelの2種類あると思いますがpanelを使う意味ってあるのですか?
webページを見ていたらpanelはオブジェクトのおくところと書かれてますが、
べつにframeにもlabelやら貼れますよね?
勉強期間はまだ短くてよくわかってませんが、どなたかpanelのあるとないとの
違いを教えてくれませんか?
0223デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANJavaっぽい記述ではなくなるけど強引に速くなりやすいように書けるのかな。
興味あります。
0224デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0225デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANまあサーバサイドのボトルネックは9割方がデータベース(≒Disc I/O)なんだけど
0226デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANpanelは無地の板
複雑なレイアウトを行ったり関連する部品をまとめたりするために使う
0227デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN現在はこのように単純に転送しています。
int length;
while((length=input.read(buf))!=-1){
output.write(buf,0,length);
}
しかしこの方法だとreadとwriteが同時に行えないため、
readとwriteを同時に行って欲しい状況だとパフォーマンスが半減してしまいます。
マルチスレッドでも構いません。
0228デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN下手くそが書いたプログラムとかでないかぎりあり得ない
0229デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN無理。というか read と write を同時には行えないよ普通。
read と write を交互にやるのをユーティリティメソッド内に閉じ込めるとかはできるけど。
高速転送に関して言えばファイル限定で
java.nio.channels.FileChannel の transferTo とか transfetFrom とかがある。
これは java の配列を介さずに転送するため javaの配列を介するより高速化する、
とされているもので内部では read と write を交互に行ってる。
あと必ず高速化できるとは限らない事に注意。
0230デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN下手くそはごまんといる。たぶんオマエもその一人。
0231227
2013/08/07(水) NY:AN:NY.ANファイルではないのでFileChannelが使えなくて困ってます
> read と write を同時には行えないよ普通。
マルチスレッドで、readで一定数読み込んだものを次々とバッファに貯めていき、
並行してwriteはバッファから取り出して書き込むという流れではどうでしょうか?
0232227
2013/08/07(水) NY:AN:NY.ANHDDが二台あり、片方のドライブからもう片方のドライブにコピーするとします。
どちらも読み込みと書き込みが50MB/sで行える場合、
理論上は50MB/sで読み込みをしながら、
それと同時に50MB/sで書き込みを行えるはずです。
しかし>>227のコードでは読み込んでいる間は書き込みが停止するので、速度は明らかに低下します。
単純なファイルのコピーならFileChannelが使えますが、
今回はFTPなどのプロトコルを介するためStreamしか使えないという条件です。
どうしましょう。
0233デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN最初から答えが出ているようなものだが
0234227
2013/08/07(水) NY:AN:NY.ANマルチスレッドの場合は読み込んだデータを一時的に保持しておくバッファを
どのように実装するかが問題になります。
最初はByteArrayOutputStreamを使おうと考えましたが、
ByteArrayOutputStreamのtoByteArrayは内部配列のコピーを行うため非効率とのことです。
そうなると一体どのようにバッファを保持するべきなのかわからず、質問させていただきました。
0235デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANQueue<byte[]>とかQueue<ByteBuffer>とかでスレッドで同期させる
0236デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN使ったこと無いから詳しくないが
0237デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN間違っている。javaっぽくポリモーフィズム使いまくりでだとC/C++よりも倍近く早い。
算術演算や配列処理などの組み合わせでゴリゴリ糞コード書いている限りC/C++よりも倍近く遅い。
java1.7では1.6よりも1.5倍ほど速度改善しており、
ループの回数が多くなるとどんどん速度アップするので動的に最適化していると思われる。
0238227
2013/08/08(木) NY:AN:NY.AN諦めてC++で実装したところ理論値に近いパフォーマンスが出たのでこれで回答は締め切らせて頂きます。
Java…(笑)
0240デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0241デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN全く想像もつかない処理だは
0242デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0243デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0244デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0245デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN12 → 12B
123 → 123B
1234 → 1.23KB
12345 → 12.3KB
123456 → 123KB
1234567 → 1.23MB
12345678 → 12.3MB
みたいな感じで整数を3ケタくらいの大きさ単位を含む数字に変換するクラスとかメソッドってある?
0246デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANint flgInts = 0; に
01010101 というフラグを設定して、
boolean[] flgBooleans = new boolean[8]; にそれぞれフラグを代入するにはどうすればいいでしょうか。
0247デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANflgBooleans[1] = flgInts & 0x2 > 0
flgBooleans[2] = flgInts & 0x4 > 0
flgBooleans[3] = flgInts & 0x8 > 0
flgBooleans[4] = flgInts & 0x10> 0
flgBooleans[5] = flgInts & 0x20 > 0
flgBooleans[6] = flgInts & 0x40 > 0
flgBooleans[7] = flgInts & 0x80 > 0
0248デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANそんなもん5分で書ける
それ丸めかたとか1024単位or1000単位とかアプリの要件によって様々だから
標準で用意されてても意味ない
0249デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0250デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0251デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN下位4ビットまでは、0x01、0x02、0x04、0x08と乗算なのに
4ビット→5ビットで0x08→0x10と乗算でないのは、なぜなのでしょうか?
0252デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN■ このスレッドは過去ログ倉庫に格納されています