★★Java質問・相談スレッド182★★
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語Javaに関する質問スレです。
JavaScript, 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
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※
質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。
前スレ
★★Java質問・相談スレッド181★★
https://mevius.5ch.net/test/read.cgi/tech/1518252580/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured そりゃそうでしょう。
プリミティブ以外は全部参照という割り切った仕様なんですから。 じゃあJAVAのオブジェクトが持つデータの本体はどこにあるの? あーそういう事ね。
それは話にならん。
結局、変数宣言する度にGC上にエリアとるんでしょ。
それじゃ遅いんだよ。 ポインタは物理アドレスを辿れることにメリットがある。
当然、重大バグを埋め込み安くなる。 いまどきJavaが使われるような用途でプログラムは物理アドレスにアクセスできませんよ。
物理アドレスはOSが管理しているので、言語によって変わる事は有りません。 1. ポインタを使う言語(具体的になに?)
2. Java
3. ポインタを使わない言語(具体的に何?)
で、どれがどう早いのかまとめてくれ 君たちにはこれをプレゼントしよう。
NullPointerException >>714
それ単に誤ったところにアクセスしようとしたという意味で、それを頻発させるプログラマはダメすぎる。 Javaにはポインターが無いと聞いていたのにいきなりこんなもんが出ちゃってインド人もびっくり。
NullPointerException >>717
ぬるぽはオブジェクトがヌルのときに投げられるから
Javaのポインタはオブジェクトを指すものなのだろうね
C言語のポインタはメモリアドレスを指す
名前は同じだけど概念が違う おいおいマジかよw
ちなみに「指すもの」を英語でpointerと言います。 >>717
Java は c++ のある種の進化系・理想形ですからね、今でも c++ で丁寧に書こうと思ったら自然に Java に近くなりますよ 初心者です。問題集で勉強中です
宜しくお願いします。
会員顧客データを更新する時のプログラムなんですが
未実装と記入ある箇所にどうのようなコードを入れてら良いでしょうか
ざっくりで申し訳ありません
/**
* 顧客情報テーブルの指定の顧客情報を更新する
* @param cutomer 顧客情報Bean
* @return エラーメッセージ(処理成功時、null)
*/
public String update(CustomerBean cutomer) {
LogUtil.println(this.getClass().getSimpleName() + "#update");
// TODO 未実装
return null;
} >>722
// TODO 未実装
return null;
これを
// なぜか更新できない
return "エラーです";
って直すを呼び出した人が治してくれると思う。 >>722
未実装もなにも、なんも書かれていないメソッドだろうにw >>724
はい。ここに何を書き込むべきか教えてください java インターフェイスでググると
インターフェイスを実装したクラスを作って
そのクラスのインスタンスからインターフェイスのメソッドを使うやり方しか
でてこないんだけど
インターフェイスって基底クラスみたいにつかえないの? >>729
有難うございます
もうちっと考えてみます >>730
インターフェイスの意味がわかっていますか? >>730
基底クラスみたいに使う、って漠然としすぎだけど、
Java8からinterfaceに実装を記述できるようにはなったよ。 Java シルバー取りたいんだけどSE8と11なら11にしておいた方がいいの? 11にしようぜ
たいして難しくなってないし、知識としてあえて古い方に限定することもない 初心者で2月に受けるけど全く黒本がわからない
なんとなくコードは打てる
理解っているの?Java 初心者から脱する気が無いなら理解する必要は無いよ
ただ初心者のまま時間が経つとそれはもう初心者じゃなくてただの無能だからね 数値の比較などの判定式の結果boolean型の仕組みが理解できていません
int count =3;
int limit =2;
System.out.println(count <= limit);
結果はfalseなのですが、「3<=2」がなぜfalseなのでしょうか。
比較の左側ならfalse、右側ならtrue、などあるのでしょうか >>742
<=は小なりイコールの演算子だから
左の値が右の値より小さいか、もしくは左の値と右の値が同じときtrueになる
3 <= 2は、3は2以下であるということを表してて当然false >>744
適切な解答有難うございます
「左の値が右の値より小さいか、もしくは左の値と右の値が同じときtrueになる」
この文章で理解できました。 >>744
本当に有難うございます。
性格イケメンさんの解説のお陰で適切に解答できるようになりました >>748
問題集やってると混乱してきます
私48の婆なんですが
>>744の性格イケメンさんに高3の娘を嫁に出したいわ。 >>706
よかったな。めでたしめでたし。
おわり JavaでGUI作ろうと思ってJavaFXの情報探そうと思ったら全然出てきません……
日本語の本でまともなのってないですか? >>753
JavaFXはもう終わりでしょ
需要ないしろくに本も無いのでは? ネット見た感じ取り敢えずSwingは終わりっぽいのでOpenJFX使って開発しようと思ったんですが、どちらも厳しいんですかね? 終わるとか以前に、JavaでGUIは始まったことすらない
ガチで今も昔も誰も使ってない 昔は性能が悪くて使われず
今はクライアントアプリが斜陽 皆さん返答ありがとうございました、参考になります
JavaではGUIアプリを作るのは取り敢えず辞めにして、コンソールで適当なゲームでも作って覚えることにします javaのソースコードの見方がわからない
androidアプリをとりあえず逆コンパイルして.classを抽出して中身のコードを見ることはできるようになったんだけど
沢山.classのファイルがあってどこが何がスタートになってるの?
順番ってどうなってるの?
そのアプリはa.class b.class c.classってタイトルが全部アルファベットなんだけど aとかbとかは君のように解析しようとする試みを防ぐため難読化されてるってこと。
エントリポイントはActivityを継承したクラス見っけて...かな? zxingでQRコードとJANコードが入った画像を読み取りたいんだけど
JANコードだけを読み取りたい。みたいな事ってできない? >>760
メソッド名は“main”である(すべて小文字)
どっかにmainってファイルが必ずあるはずで、これがこのアプリの入口になってて他のclassのファイルは小部屋みたいなもんなんでしょ?
mainってファイルがどこ探してもないんだけどこれどういうことなん? C#erに、まだフィールド使って接頭語にアンダースコア付けてるんでしょ?と言われて何か悔しいです。
ギャフンと言わせる方法はあるでしょうか? 音楽プレーヤーをカスタマイズしたいのですが教えてください
https://imgur.com/a/jQqzGGM
今アルバムタイトルの下に情報が並んでいます
この最後に任意のFieldに書き込んだ文字を表示させることは出来ますでしょうか?
スクリプトファイルを開くと
//---> INFO
if (showGroupInfo) {
var infoX = leftPad;
var infoY = groupY + artistH + albumH;
var infoH = h;
var infoW = w - x - infoX;
var bitspersample = $("$Info(bitspersample)", metadb);
var samplerate = $("$Info(samplerate)", metadb);
var sample = ((bitspersample > 16 || samplerate > 44100) ? " " + bitspersample + "bit/" + samplerate / 1000 + "kHz" : "");
var codec = $("$ext(%path%)", metadb) ; if (codec == "cue"){
codec = $("$ext($Info(referenced_file))", metadb);
} else if (codec == "mpc") {
codec = codec + " " + $("$Info(codec_profile)", metadb).replace("quality ", "q");
}
else if ($("$Info(encoding)", metadb) == "lossy") {
if ($("$Info(codec_profile)", metadb) == "CBR") codec = codec + " " + $("%bitrate%", metadb) + "kbps";
else codec = codec + " " + $("$Info(codec_profile)", metadb);
}
if (codec) {
codec = codec + sample;
} else {
codec = path; }
var iCount = itemCount[ID.groupNr];
var genre = radio ? "" : (groupedID ? "%genre% | " : "");
var discNumber = (groupedID != 2 ? "" : $("[ | Disc: %discnumber%/%totaldiscs%]", metadb));
var info = $(genre + codec + discNumber + "[ | %replaygain_album_gain%]", metadb)
+ (radio ? "" : " | " + iCount + (iCount == 1 ? " Track" : " Tracks")
+ " | Time: " + calculateGroupLength(firstItem[groupNr], lastItem[groupNr]));
var w = w - x - 10;
g.DrawString(info, infoFont, infoColor, infoX, infoY, infoW, infoH, StringFormat(0, 0, 3, 0x1000));
var infoStringH = Math.ceil(gr.MeasureString(info, infoFont, 0, 0, 0, 0).Height + 5);
var lineX1 = infoX,
lineX2 = 20 + w,
lineY = infoY + infoStringH;
(lineX2 - lineX1 > 0) && g.DrawLine(lineX1, lineY, lineX2, lineY, 1, lineColor);
}
となっていました
これはJavaでしょうか?
上記URLに任意のFieldを追加するにはどうすればよいでしょうか?
よろしくお願いいたします >>764
言語面ではJavaはあらゆる面でC#に劣るから、正攻法で戦ってはいけない
C#er相手にマウントを取るには、でもWindowsなんでしょ?wwwが一番効く
お前もWindowsでJavaを運用していたり、そのC#erが.NET CoreをLinuxで運用してたりUnity開発者だったりするなら諦めろ >>765
foobar2000のJavaScriptっぽいなー >>761
EANReaderってQR反応したっけ? >>764
・ゴメン俺Haskellに乗り換えたからJavaやってねーんだわ
・ゴメン俺マネジメントが忙しくて最近プログラミングさせてもらえねーわ
好きなほうどーぞ
Haskellは嘘だろと追及されそうならKotlinかLombokで >>763
>メソッド名は“main”である(すべて小文字)
これネットでggって書いてあったんだけど
じゃあファイル名はもう何かわからないってこと?mainメソッドの拡張子も.class?
この沢山ある**.classファイルの数々からmainを自分で見つけるしかないってこと? テキスト検索すらできない実力でリバースエンジニアリングできると思ってるの?
煽りじゃないよ 指定した全部のファイルから
メソッドだろうが修飾子だろうが全部の文字列検索してるツールとかってないの?
javaDecompiler使ってるんだけど、なぜか修飾子検索してくんないから全く使い物にならない 普段プログラム書くのに使ってるツールにgrep機能が付いてないの? Androidのアプリならmainメソッド探しても仕方ないよ。
mainメソッドはアプリ側でなくてAndroidのシステム側にあるから。
(って話はすでに>>760が書いてくれてるんだけど)
というか、解析したいアプリがどんなものかわからないけど、
- Native Activityで実装されていればdexファイルではなくsoになってる
- Unityとかで開発されていれば実質的なアプリ本体はC#なりで実装されている
とか普通にあるんで、必ずしもdexをclassにしてデコンパイルすれば中身見放題ってわけじゃないです。 わかりました。
どうやらそのようです。
soファイルありました。
どうもありがとうございました。 詳しく教えてくれてありがとうございました。
ggったら全く同じ事が書いてありました。 >>762
Javaの場合、mainという名前のメソッドはテスト用にどのクラスでもそれぞれ書いても良いとされている。
Androidの場合、Activityを継承したクラスに所属している main という名前のメソッドからプログラムが開始される。
public指定されて外にexportされているクラスの名前を XXX とすると、そのクラスを書くソースファイルの名前は、XXX.javaとなる。
XXX.javaをコンパイルするとXXX.classになる。
本物のJavaは、XXX.classをまとめたものが、*.jarであるが、Androidの場合は、まず、*.classが*.dexに変換された後、さまざまなファイルとアーカイブされて*.aptになる。 >>781
すまん。Activityの場合は、main()ではなく、onCreate()メソッドだったかも知れん。
Androidの場合でも、dexコマンドで直接起動するようなCUIプログラムの場合は、main()でよかったと思う。
ただし、Javaの場合は外部関数がないので当たり前かもしれないが、このmainは、C/C++のような外部関数ではなく、メンバ関数。 >>781
*.aptじゃなく、*.apk。
dexも細かい関係性は忘れた。 ActivityじゃなくてApplicationだ。
答える方もわかってないしスレ違いだし、いい加減向こうでやれや。 Javaの有償化について教えてください
PC内に入っているものは「Java SE Development kit 8」なのですが
これでアプリ作って公開したら有償ですか?
Kotlin使っても有償になるのでしょうか? Javaをやろうとするやつは総じてバカなのか? それともこのスレだけなのか?
最近pythonやろうとしてるやつも大概バカばっかだがここはそれ以上 私思うんです
他のクラスに変数を受け渡すとき
例えばclass1からd=class2(a,b,c);みたいにひとつずつ変数を渡さないで
d=class2(this);にすればいいと思うんです
私思うんです >>769
はい、foobarです
これって専用なのですね?
専門のページで質問してみます
有難うございました >>787
モジュールの結合度について学び今後意識していくとよいでしょう
密結合になると変更に弱くなります
弱くなります 初質問させていただきます、JAVA初心者です。
Javaにて簡易的なチャットの実装を試みています。
基本部分の仕様は以下の通りです。
・ソースコードはサーバ側プログラムとクライアント側プログラムの2つ
・チャット参加者数は最大5名とし、参加時には他の参加者に「***さんが加わりました」といったメッセージが表示されるようにする。
・参加者は好きなタイミングでメッセージを送信できるようにする。
・他の参加者からのメッセージはサーバが送信してきたタイミングで受信して画面上に表示するようにする。
・他の参加者が抜けた(切断した)場合には、「***さんが抜けました」といったメッセージが表示されるようにする。
現在、サーバ・クライアント間の通信確立までは実装できています。
考え方、実装例をご教授いただけると幸いです。
お手数おかけしますが、ご助力ください。 今、新規開発のFWは選定するとSpring1択になる?
PlayはScalaの方に行ったしStruts2は避けられてるし。
マイクロフレームワークはポコポコ出てきてるけどさ。 >>794
SpringとSpring bootの区別はできているのか? >>792
0から手を動かして作るRailsチャットアプリ【チュートリアル】
https://www.youtube.com/watch?v=WCsgcp5dg7M
とだこうきの動画。
通信には、WebSocket を使ってる
他には、Node.js, Electron でも作れるかも なんでinterface作ってクラス名にimplつけた実装クラス作るの?最初からクラスだけじゃダメなの? >>797
並行作業のスケジュールの都合により、使われる方のクラスを作る前に使う方のクラスを先に作る必要がある場合のためだよ。
使われる方のinterfaceさえ定義しとけばImplがまだ無くても使う方を作れるでしょ。
現実にはこのような逆転した作業は極めて非効率で、たいてい後で不整合が起きて無駄になる。
でもジャップランドのSEはプログラマの稼働率を下げないためにそうせざるを得ないの。 >>798
ありがとうございます。
並行作業のため、理解です。でも本当にそれだけなのでしょうか?interfaceが書ける時点で引数と戻り値は決まっているはずなので、最初からクラスを書いてダミーの戻り値を返すようにしておくのと変わらない気がします。 >>800
よい質問だ。
SE様に作業完了の確認を貰って深夜残業を切り上げるには、当然、作ったものを単体テストしなきゃいけない。
でも使われる側がnull返すか何もしないだけのダミー実装じゃ普通に考えてテスト通るわけない。
どうするか?自分で都合のいい実装をでっち上げてそれを代わりに使うんだよ。
この手法は脳内彼女を相手に恋愛の練習をしているようなもので、どれだけ無駄かは容易に想像できるだろう。
態々interfaceを通さなくても脳内彼女の実装を対象クラスに直接書けばいいじゃないかと思うかもしれないが、
そうするとA君の脳内彼女とB君の脳内彼女が同一人物なのに違う実装になってしまって衝突したり、
いざ本物を実装しようとしたときに既に変なオナニー実装があって混乱するなど不都合が生じる。
ちなみに実は自動テストの都合という面もあるのだが、ドカタITではそんなものはファンタジーだから気にしなくてよい。 int a=10;
a=a+1
System.out.println(a); ■ このスレッドは過去ログ倉庫に格納されています