プログラミング言語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質問・相談スレッド182★★
https://mevius.5ch.net/test/read.cgi/tech/1542595026/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
★★Java質問・相談スレッド183★★
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7f9f-FhGp)
2020/05/06(水) 22:12:08.99ID:q8N1X/Ij0732デフォルトの名無しさん (アウアウウー Sae9-8gf5)
2021/04/06(火) 13:29:35.88ID:M2YZof7pa >>730
Fuchsia「シッテタ」
Fuchsia「シッテタ」
733デフォルトの名無しさん (ワッチョイ 9b89-8vo5)
2021/04/06(火) 13:55:22.95ID:KbcOEQRB0 >>729
ならそうかけ、スレチだけど
ならそうかけ、スレチだけど
734デフォルトの名無しさん (アウアウウー Sae9-xZZo)
2021/04/06(火) 16:14:50.37ID:D/UA/358a java勝ったからもうお前に用はない
○ ←google
く|)へ
〉 ヾ○シ ←Kotlin
 ̄ ̄7 ヘ/
/ ノ
|
/
`|
/
く|)へ
〉 ヾ○シ ←Kotlin
 ̄ ̄7 ヘ/
/ ノ
|
/
`|
/
735デフォルトの名無しさん (ワッチョイ a37c-0pr0)
2021/04/06(火) 20:44:53.68ID:AUQo/ocE0 コトリンwは消えていいよw
736デフォルトの名無しさん (ワッチョイ 552c-s+Uo)
2021/04/07(水) 00:08:35.01ID:/VvrJao60 Oracle は、Java を独占して、大儲けしようと思っていたけど、大失敗
これで、java のクラスライブラリを C# や C++ に移植できる‥‥
738708 (ワッチョイ a348-ql7i)
2021/04/07(水) 14:59:25.85ID:ODWVZMHP0 共有渡しなどでググってみましたがまだ理解できません
比較のためC++の例を。こっちが頭にあるから混乱してたのかもしれない
#include <stdio.h>
struct T{ int a; T(int i){a=i;}};
T f(T a){ return a;}
int main(){
T a(10);
T b=f(a); //javaと違ってbのアドレスは変わる。ここの挙動がjavaの疑問点
T c = a; //これもjavaと違って新しいコピーが作られる。コピコン
T* d = &a; //ポインタ。同じアドレスをさす
T& e = a; //参照。同じアドレスをさす
printf("%d\n%d\n%d\n%d\n%d\n",&a,&b,&c,d,&e);
return 0;
}
実行結果
286472060
286472064
286472068
286472060
286472060
比較のためC++の例を。こっちが頭にあるから混乱してたのかもしれない
#include <stdio.h>
struct T{ int a; T(int i){a=i;}};
T f(T a){ return a;}
int main(){
T a(10);
T b=f(a); //javaと違ってbのアドレスは変わる。ここの挙動がjavaの疑問点
T c = a; //これもjavaと違って新しいコピーが作られる。コピコン
T* d = &a; //ポインタ。同じアドレスをさす
T& e = a; //参照。同じアドレスをさす
printf("%d\n%d\n%d\n%d\n%d\n",&a,&b,&c,d,&e);
return 0;
}
実行結果
286472060
286472064
286472068
286472060
286472060
739708 (ワッチョイ a348-ql7i)
2021/04/07(水) 15:17:30.71ID:ODWVZMHP0 追記。javaと比較しやすいように参照渡しの関数を追加しました
#include <stdio.h>
struct T{ int a; T(int i){a=i;} };
T f(T a){ return a; }
T& g(T& a){return a;} //前のコードに追加したコード
int main(){
T a(10);
T b=f(a);
T c = a;
T* d = &a;
T& e = a;
T& f = g(a); //参照渡し。同じアドレスをさす。前のコードとの違いはここ
printf("%d\n%d\n%d\n%d\n%d\n%d\n",&a,&b,&c,d,&e,&f);
return 0;
}
実行結果
1519342484
1519342488
1519342492
1519342484
1519342484
1519342484
#include <stdio.h>
struct T{ int a; T(int i){a=i;} };
T f(T a){ return a; }
T& g(T& a){return a;} //前のコードに追加したコード
int main(){
T a(10);
T b=f(a);
T c = a;
T* d = &a;
T& e = a;
T& f = g(a); //参照渡し。同じアドレスをさす。前のコードとの違いはここ
printf("%d\n%d\n%d\n%d\n%d\n%d\n",&a,&b,&c,d,&e,&f);
return 0;
}
実行結果
1519342484
1519342488
1519342492
1519342484
1519342484
1519342484
740708 (ワッチョイ a348-ql7i)
2021/04/07(水) 15:33:40.19ID:ODWVZMHP0 c++風な理解ですがjavaの共有渡しは
実引数a 値アドレス10 アドレス100
仮引数a 値アドレス10 アドレス101
と言う風に準備されて
仮引数に代入してもアドレス101に代入されるので実引数のアドレス100には影響が無い
値アドレスは一緒なのでa.a=7などと代入すると実引数の値も変化する
こういう理解だったのですがjava的には違うのでしょうか
最初のコードでT c=f(a)としたときにcとaのアドレスが変わらないということは
C++版での参照渡しのコード(関数g)に対応すると考えました
実引数a 値アドレス10 アドレス100
仮引数a 値アドレス10 アドレス101
と言う風に準備されて
仮引数に代入してもアドレス101に代入されるので実引数のアドレス100には影響が無い
値アドレスは一緒なのでa.a=7などと代入すると実引数の値も変化する
こういう理解だったのですがjava的には違うのでしょうか
最初のコードでT c=f(a)としたときにcとaのアドレスが変わらないということは
C++版での参照渡しのコード(関数g)に対応すると考えました
741デフォルトの名無しさん (ワッチョイ a301-51IN)
2021/04/07(水) 16:01:59.31ID:IKflwJ+i0 Javaは参照の値渡し
T& h(T& a){
a = T(100);
return a;
}
と
public static T h(T a){
a = new T(100);
return a;
}
を比べるといいと思う
T& h(T& a){
a = T(100);
return a;
}
と
public static T h(T a){
a = new T(100);
return a;
}
を比べるといいと思う
742デフォルトの名無しさん (ワッチョイ e3f0-1em5)
2021/04/07(水) 16:05:55.74ID:jfZzQJ5j0 ttps://ideone.com/RVYDij
構造体のポインタ(≒Javaの参照型)でなくて
構造体そのもの(≒Javaには存在しない値型)使ってるから混乱するんじゃね?
構造体のポインタ(≒Javaの参照型)でなくて
構造体そのもの(≒Javaには存在しない値型)使ってるから混乱するんじゃね?
743デフォルトの名無しさん (ワッチョイ 65ad-xZZo)
2021/04/07(水) 19:52:27.21ID:SEhnYi9C0 質問が下手
744デフォルトの名無しさん (ワッチョイ 1b01-ugfq)
2021/04/08(木) 01:40:49.88ID:lOqPs7CS0 JavaのコードはC言語だとこうだよ
#include <stdio.h>
#include <stdlib.h>
struct T {
int a;
};
struct T* f(struct T* a) {
a->a = 7;
return a;
}
int main(){
struct T* a = malloc(sizeof(struct T));
a->a = 10;
struct T* b = f(a);
printf("%d, %d, %p, %p\n", a->a, b->a, a, b);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
struct T {
int a;
};
struct T* f(struct T* a) {
a->a = 7;
return a;
}
int main(){
struct T* a = malloc(sizeof(struct T));
a->a = 10;
struct T* b = f(a);
printf("%d, %d, %p, %p\n", a->a, b->a, a, b);
return 0;
}
745デフォルトの名無しさん (ワッチョイ 1b01-ugfq)
2021/04/08(木) 02:22:43.43ID:lOqPs7CS0 >>740
> 最初のコードでT c=f(a)としたときにcとaのアドレスが変わらないということは
> C++版での参照渡しのコード(関数g)に対応すると考えました
Javaでは変数のアドレスは見れないよ
cとaで参照してるオブジェクトのハッシュ値が出力されてるだけ
cとaの参照先が同じオブジェクトってこと
参照渡しは変数を参照するって意味で
共有渡しは変数の参照先を共有するってこと
> 最初のコードでT c=f(a)としたときにcとaのアドレスが変わらないということは
> C++版での参照渡しのコード(関数g)に対応すると考えました
Javaでは変数のアドレスは見れないよ
cとaで参照してるオブジェクトのハッシュ値が出力されてるだけ
cとaの参照先が同じオブジェクトってこと
参照渡しは変数を参照するって意味で
共有渡しは変数の参照先を共有するってこと
746デフォルトの名無しさん (ワッチョイ 23ad-0pr0)
2021/04/08(木) 02:30:20.54ID:SAft2z2v0 Java の参照はポインタだと思えば理解は楽だな。C言語だと x->x のように書くが Java だと x.x と書くことになっているだけ。
null だと指す先がないので NullPointerException になる。
null だと指す先がないので NullPointerException になる。
747デフォルトの名無しさん (ワッチョイ 552c-s+Uo)
2021/04/08(木) 04:31:04.65ID:lDvnXqCb0 Java には、構造体そのものが無いのか。
構造体は、内包物がすべてコピーされるだろ
つまり、異なるオブジェクトがnew されてから、すべての内包物がコピーされる。
つまり、2つのオブジェクトが存在する
一方、構造体のポインタは、内包物がコピーされないし、
コピー用のオブジェクトも、newされないから、
オブジェクトは最初の1つだけしか存在しない
単なる名付け・ラベル。
1つのオブジェクトに、別の名前を付けただけ
幾つのオブジェクトが作られたか、newの回数を数えればよい
構造体は、内包物がすべてコピーされるだろ
つまり、異なるオブジェクトがnew されてから、すべての内包物がコピーされる。
つまり、2つのオブジェクトが存在する
一方、構造体のポインタは、内包物がコピーされないし、
コピー用のオブジェクトも、newされないから、
オブジェクトは最初の1つだけしか存在しない
単なる名付け・ラベル。
1つのオブジェクトに、別の名前を付けただけ
幾つのオブジェクトが作られたか、newの回数を数えればよい
748747 (ワッチョイ 552c-s+Uo)
2021/04/08(木) 04:41:11.49ID:lDvnXqCb0 変数を、値を入れる箱みたいに思うのは、ダメ。
箱に入れるイメージは、C/C++ だけ
他言語では、変数は名付け・ラベル
新たなインスタンスを作って、コピーしていない。
単に、既存のインスタンスに、別名を付けているだけ
だから代入の前後で、インスタンスは1つしか存在しないし、
new も、されていない
つまり、newの回数と、存在するインスタンスの個数を調べるのが重要
ただし、Primitive はオブジェクトと異なるので、これには当てはまらない
箱に入れるイメージは、C/C++ だけ
他言語では、変数は名付け・ラベル
新たなインスタンスを作って、コピーしていない。
単に、既存のインスタンスに、別名を付けているだけ
だから代入の前後で、インスタンスは1つしか存在しないし、
new も、されていない
つまり、newの回数と、存在するインスタンスの個数を調べるのが重要
ただし、Primitive はオブジェクトと異なるので、これには当てはまらない
749デフォルトの名無しさん (ワッチョイ 0d9c-h+YV)
2021/04/08(木) 07:41:57.02ID:m1EPbJgQ0 いい加減ウソを撒き散らすのやめてくれないか
750デフォルトの名無しさん (ワッチョイ e2ad-CoCA)
2021/04/10(土) 18:11:02.83ID:JQLnPe3C0 誰も知らない未知の言語の話が始まったようだ。
751デフォルトの名無しさん (アウアウウー Sabb-cmdU)
2021/04/10(土) 20:22:44.15ID:g7cD6dOja JUnitでテストクラス作って実行すると、ClassNotFoundが出る時はどうしたらいいですか?
Eclipseのプロジェクトをすべて消してイチから作り直したけど、原因が分からないから再発しそうで怖い
Eclipseのプロジェクトをすべて消してイチから作り直したけど、原因が分からないから再発しそうで怖い
752デフォルトの名無しさん (アウアウウー Sabb-cmdU)
2021/04/10(土) 20:25:26.10ID:g7cD6dOja753デフォルトの名無しさん (ワッチョイ 7b9c-08FK)
2021/04/10(土) 20:46:32.06ID:h0FPlujm0 >>751
テストしなければ問題ないよ!
テストしなければ問題ないよ!
754デフォルトの名無しさん (ワッチョイ ce89-/CMm)
2021/04/10(土) 20:55:22.45ID:fnNsjOwD0 賢い質問のしかた
ttp://www.ranvis.com/articles/smart-questions.ja.html
ttp://www.ranvis.com/articles/smart-questions.ja.html
755デフォルトの名無しさん (アウアウウー Sabb-cmdU)
2021/04/10(土) 21:08:45.15ID:g7cD6dOja756デフォルトの名無しさん (アウアウウー Sabb-cmdU)
2021/04/10(土) 21:12:04.68ID:g7cD6dOja >>753
バグらなけば怖くない!
バグらなけば怖くない!
757デフォルトの名無しさん (オッペケ Sr5f-VPk9)
2021/04/10(土) 23:31:05.40ID:sN0ABBktr Microsoft、「OpenJDK」の自社ビルドをプレビュー公開 〜無償のLTSディストリビューション
https://forest.watch.impress.co.jp/docs/news/1316969.html
https://forest.watch.impress.co.jp/docs/news/1316969.html
758デフォルトの名無しさん (アウアウクー MM9f-9hTS)
2021/04/11(日) 11:13:10.02ID:5s7yLoxeM JavaからAccessデータベース起動したいのだが
Runtime execだと起動ぐらいしか出来ない
データベース操作するにはCOMブリッジ使えば良いのかUcanAccess使う方が良いのかよく分からない
Apache PoiではAccess操作出来ないよね?
Runtime execだと起動ぐらいしか出来ない
データベース操作するにはCOMブリッジ使えば良いのかUcanAccess使う方が良いのかよく分からない
Apache PoiではAccess操作出来ないよね?
759デフォルトの名無しさん (ワッチョイ ce89-/CMm)
2021/04/11(日) 11:16:54.91ID:JF/oxO5S0 C#使えばいいんじゃね(鼻糞ホジホジ)
760デフォルトの名無しさん (アウアウクー MM9f-9hTS)
2021/04/11(日) 11:26:52.97ID:5s7yLoxeM Javaで操作したいんだよ
761デフォルトの名無しさん (ワッチョイ e287-slfm)
2021/04/11(日) 11:36:53.59ID:Vlz3EsL00 mdbを操作したいのではなくてAccessを動かしたいってこと?
762デフォルトの名無しさん (アウアウクー MM9f-9hTS)
2021/04/11(日) 11:58:49.10ID:5s7yLoxeM763デフォルトの名無しさん (アウアウクー MM9f-9hTS)
2021/04/11(日) 12:05:35.16ID:5s7yLoxeM やっぱりJavaからAccess帳票出力するって特殊なのかな
ほとんど事例無いからググっても出て来ない
ほとんど事例無いからググっても出て来ない
764デフォルトの名無しさん (ワッチョイ 0e01-I5oI)
2021/04/11(日) 12:16:19.31ID:UFkTSZWY0 自分ならUcanAccessでDBを読み書きして
JavaからVBScriptのプロセスを起動して
VBScriptでAccessを操作する
MS OfficeのAPIはCOMでCOMのGCは参照カウントでJavaや.NETのGCは世代別GC
オブジェクトのライフサイクルが違うので動作が不安定になる
PowerShellでOutlookを操作してみてそう思った
JavaからVBScriptのプロセスを起動して
VBScriptでAccessを操作する
MS OfficeのAPIはCOMでCOMのGCは参照カウントでJavaや.NETのGCは世代別GC
オブジェクトのライフサイクルが違うので動作が不安定になる
PowerShellでOutlookを操作してみてそう思った
765デフォルトの名無しさん (アウアウクー MM9f-9hTS)
2021/04/11(日) 12:55:32.01ID:5s7yLoxeM766デフォルトの名無しさん (アウアウクー MM9f-9hTS)
2021/04/11(日) 13:29:55.85ID:5s7yLoxeM ああAccess起動だけならRuntimeから直接Access起動は出来るね
操作までやるのはVBScriptとか利用せにゃならんけど
操作までやるのはVBScriptとか利用せにゃならんけど
768デフォルトの名無しさん (アウアウクー MM9f-QbJ2)
2021/04/11(日) 18:15:56.42ID:87+rjU0AM >>767
PoiでAccess扱えるclassが用意されていない
PoiでAccess扱えるclassが用意されていない
769デフォルトの名無しさん (アウアウクー MM9f-QbJ2)
2021/04/11(日) 18:19:08.61ID:87+rjU0AM 調べてみると ODBC/JDBC ラインしかないみたいですね
https://stackoverflow.com/questions/45300178/how-to-connect-java-to-ms-access-database
https://stackoverflow.com/questions/45300178/how-to-connect-java-to-ms-access-database
771デフォルトの名無しさん (ワッチョイ cb5f-9lDx)
2021/04/11(日) 18:33:00.11ID:8dKzq+eD0 ODBCブリッジはJava8で消されたから小細工しないと無理
772デフォルトの名無しさん (アウアウクー MM9f-QbJ2)
2021/04/11(日) 19:00:53.79ID:87+rjU0AM773デフォルトの名無しさん (アウアウクー MM9f-QbJ2)
2021/04/11(日) 19:05:46.55ID:87+rjU0AM >>771
https://logicalerror.seesaa.net/article/419701732.html
これか、、、
セキュリティ的に問題有るからダメだな
UcanAccess使わせて貰うかな
https://logicalerror.seesaa.net/article/419701732.html
これか、、、
セキュリティ的に問題有るからダメだな
UcanAccess使わせて貰うかな
775デフォルトの名無しさん (ワッチョイ 7b9c-08FK)
2021/04/11(日) 23:35:21.34ID:/uA8+5nK0 主要なRDBMSはJDBC Type4ドライバーあるからね
もはやODBC-JDBCの役目は終わったってことでしょう
ODBC-JDBCで助かるのはほぼWindowsだけだし(わずかだけどLinuxにもODBCある)
マルチプラットフォーム目指すJavaにとってはODBCは邪魔になったってことよ
もはやODBC-JDBCの役目は終わったってことでしょう
ODBC-JDBCで助かるのはほぼWindowsだけだし(わずかだけどLinuxにもODBCある)
マルチプラットフォーム目指すJavaにとってはODBCは邪魔になったってことよ
>>775
でも、腫瘍じゃない RDBMS とかが新たに出現したとか、マイナーなものがまだまだあるとか、今回のように access に access したいとか、そういうレガシーのために残して置いて「あげよう」とかいうのをバッサリ切るのは、さてどうなんでしょうか?
java は文法は OO としてはかなり保守的なのに、そういうところは荒っぽいのはチグハグな印象を持ちました
でも、腫瘍じゃない RDBMS とかが新たに出現したとか、マイナーなものがまだまだあるとか、今回のように access に access したいとか、そういうレガシーのために残して置いて「あげよう」とかいうのをバッサリ切るのは、さてどうなんでしょうか?
java は文法は OO としてはかなり保守的なのに、そういうところは荒っぽいのはチグハグな印象を持ちました
777デフォルトの名無しさん (アウアウクー MM9f-QbJ2)
2021/04/12(月) 08:57:41.45ID:rGKItn7hM とにかくUcanAccessが有って良かった
これでmdb横から更新して後は起動すれば起動時の設定でクエリー動かしてレポートまで出力出来る
JDBC-ODBCブリッジは有った方が良いとは思うけどね
これでmdb横から更新して後は起動すれば起動時の設定でクエリー動かしてレポートまで出力出来る
JDBC-ODBCブリッジは有った方が良いとは思うけどね
778デフォルトの名無しさん (ワッチョイ 7b9c-08FK)
2021/04/12(月) 11:29:16.67ID:uaenDdkP0 マイクロソフトだってmdb捨てたいんだよ
10年以上前からAccessの内部データベースはSQL Serverになっただろ
mdbじゃなければJDBCで読み書きできる
10年以上前からAccessの内部データベースはSQL Serverになっただろ
mdbじゃなければJDBCで読み書きできる
779デフォルトの名無しさん (アウアウクー MM9f-QbJ2)
2021/04/12(月) 14:45:18.95ID:45/NLIkcM780デフォルトの名無しさん (ワッチョイ df01-VPk9)
2021/04/12(月) 16:50:01.78ID:3TTPFD5V0 accessの帳票機能だけ取り出せんもんかと
昔思っとったね。
昔思っとったね。
781デフォルトの名無しさん (ワッチョイ df01-VPk9)
2021/04/12(月) 16:51:59.93ID:3TTPFD5V0782デフォルトの名無しさん (ワッチョイ 0e01-I5oI)
2021/04/12(月) 18:00:35.98ID:zhDyO8uL0 JavaならJasperReportsで良いじゃん
783デフォルトの名無しさん (アウアウクー MM9f-QbJ2)
2021/04/12(月) 18:34:37.92ID:45/NLIkcM784デフォルトの名無しさん (アウアウクー MM8b-a7F2)
2021/04/17(土) 16:07:35.21ID:qxNSw6WTM785デフォルトの名無しさん (ササクッテロラ Sp8b-PVTl)
2021/04/18(日) 15:55:49.58ID:H9HZrEaLp >>784
Jackcessは制限有るからダメだよ
Jackcessは制限有るからダメだよ
786デフォルトの名無しさん (ワッチョイ 1701-ppuy)
2021/04/18(日) 16:07:59.82ID:T5zTJK1c0 ジェネリクスのワイルドカードについての解説を見ても、どういうことができるのかは分かるんですが、どんなときに使うのかイメージできません。
追加か取り出しのどちらかしかできなかったりするのもそうです。
参考例など教えてもらえませんか?
追加か取り出しのどちらかしかできなかったりするのもそうです。
参考例など教えてもらえませんか?
787デフォルトの名無しさん (ワンミングク MM7f-Ct+I)
2021/04/18(日) 17:38:33.29ID:hzO96FxhM788デフォルトの名無しさん (ワッチョイ 9f61-pvza)
2021/04/18(日) 18:55:46.68ID:3NiNUoOU0 引数戻り値というより、メソッドの中でどういう使い方するか、ってこと。
List<? extends X> list であれば、このlistから取り出して何かする。
for(X x: list) { x.x_method();}
List<? super X> list であれば、このlistに突っ込む処理をする。
list.append(x) // xはXかその派生クラスでなければならない。
List<? extends X> list であれば、このlistから取り出して何かする。
for(X x: list) { x.x_method();}
List<? super X> list であれば、このlistに突っ込む処理をする。
list.append(x) // xはXかその派生クラスでなければならない。
789デフォルトの名無しさん (ワッチョイ ff10-ubdj)
2021/04/19(月) 12:05:40.16ID:mYeRQ9om0 こういうスレって>787みたいな知ったかの阿呆が回答側にいるからダメなんだよな
790デフォルトの名無しさん (ブーイモ MMcf-uLlF)
2021/04/19(月) 12:23:10.84ID:6aAoraTFM >>789
お前の方が有害だわ
お前の方が有害だわ
791デフォルトの名無しさん (ワントンキン MM4b-Ct+I)
2021/04/19(月) 12:44:35.25ID:ssZtrIutM > List<? super X> list
これ、メソッドの中だとList<Object>と実質変わらんわけで、何の意味もないんだよ
他の総称型を使ったクラスやメソッドに渡るときに初めて意味があって、それは>>787の通り
これ、メソッドの中だとList<Object>と実質変わらんわけで、何の意味もないんだよ
他の総称型を使ったクラスやメソッドに渡るときに初めて意味があって、それは>>787の通り
792デフォルトの名無しさん (ワッチョイ 9f61-pvza)
2021/04/19(月) 13:41:10.27ID:N8t4Nfz+0 「実質」ってなんだ?
少なくともコンパイルの時点では違うだろ。
バイトコードの話なら、そもそもワイルドカード以前の問題だし。
少なくともコンパイルの時点では違うだろ。
バイトコードの話なら、そもそもワイルドカード以前の問題だし。
793デフォルトの名無しさん (ワキゲー MM4f-woIF)
2021/04/22(木) 12:34:30.91ID:Y9XnOAWKM OSはLINUXの64ビットで、JAVAプログラムを32ビットで作成する場合、
JDK、JREは32ビットを使わないとだめ?
JDK、JREは32ビットを使わないとだめ?
794デフォルトの名無しさん (ワッチョイ b79c-kFzn)
2021/04/22(木) 13:42:18.11ID:zxsKiFfb0 Javaプログラム(jar)には32ビット/64ビットという違いはないよ
795デフォルトの名無しさん (ワッチョイ bf02-EJz/)
2021/04/22(木) 14:14:44.07ID:zJmwsByo0796デフォルトの名無しさん (ワッチョイ e2ad-On6t)
2021/04/23(金) 00:56:44.77ID:bQxdW3Mu0797デフォルトの名無しさん (ワッチョイ 9b5f-APZP)
2021/04/23(金) 23:47:49.67ID:4MPjFjnd0 >>796
いまでも32ビットのコンピュータやOSはたくさんあるだろうが。
いまでも32ビットのコンピュータやOSはたくさんあるだろうが。
798デフォルトの名無しさん (ワッチョイ 9b5f-APZP)
2021/04/23(金) 23:49:39.71ID:4MPjFjnd0 32ビット環境で動かすつもりなのに64ビット環境で作っているのはミスを誘引する。
799デフォルトの名無しさん (ワッチョイ b202-2k7y)
2021/04/24(土) 00:02:36.23ID:q4HOZCVi0800デフォルトの名無しさん (ワッチョイ 6e61-T6Cp)
2021/04/24(土) 07:19:54.01ID:jio/enjn0 細かい点としてlong/doubleの上下位ビットのスレッド分離問題はでてくるかもしれない。
もっとも、32bit版JVMでも分離するような実装が存在するかどうか知らんが、仕様上は何も規定されてなかったはずなので。
もっとも、32bit版JVMでも分離するような実装が存在するかどうか知らんが、仕様上は何も規定されてなかったはずなので。
801デフォルトの名無しさん (ワッチョイ 9b5f-APZP)
2021/04/25(日) 22:25:57.97ID:Cso9+uky0 >>799
緩い型を使っていたり、メモリのアドレスに依存しているものを使っていた場合、32ビット環境で動かすとやはり想定外のことが起きる。JavaのVM仕様の解釈によっても異なる。
緩い型を使っていたり、メモリのアドレスに依存しているものを使っていた場合、32ビット環境で動かすとやはり想定外のことが起きる。JavaのVM仕様の解釈によっても異なる。
802デフォルトの名無しさん (ワッチョイ 849c-UryE)
2021/04/25(日) 23:01:07.05ID:eJC3H6ar0 緩い型ってなに?
JNIならともかくJavaは型のサイズ明確に決まってるよ
intは32ビット、longは64ビットといった具合にね
型サイズまで処理系依存のC/C++とは違うのだよ
JNIならともかくJavaは型のサイズ明確に決まってるよ
intは32ビット、longは64ビットといった具合にね
型サイズまで処理系依存のC/C++とは違うのだよ
803デフォルトの名無しさん (ワッチョイ b202-2k7y)
2021/04/25(日) 23:03:35.92ID:1lzxcbvy0 >>801
なるほど
「緩い型」とか「メモリのアドレスに依存」というと、それはつまり何なのでしょう
JNIでCプログラムを呼び出す場合、の話なのでしょうかね
あとVM仕様の解釈の違いの差異というと、何があるのでしょう
なるほど
「緩い型」とか「メモリのアドレスに依存」というと、それはつまり何なのでしょう
JNIでCプログラムを呼び出す場合、の話なのでしょうかね
あとVM仕様の解釈の違いの差異というと、何があるのでしょう
804デフォルトの名無しさん (ワッチョイ 9b5f-APZP)
2021/04/26(月) 00:43:15.26ID:NgG9HQ7I0 JavaはJNIを必ず経由するわけではありません。
805デフォルトの名無しさん (ワッチョイ e2ad-On6t)
2021/04/29(木) 17:17:21.49ID:YN7Pg05+0 >>797
あるけど、それが何か?
あるけど、それが何か?
806デフォルトの名無しさん (ワッチョイ dfbf-BDeo)
2021/05/02(日) 15:43:57.36ID:0nb/oYf90 JavaGoldって紫本を読んで黒本を解いていく地道な勉強ルートしかないですか?
なかなかモチベがあがらないし過去問の正解率も思うように上がらないので
もっと手軽な動画講座とかないかなと思ってるんだけども
勉強のためなのでお金はある程度出せます
なかなかモチベがあがらないし過去問の正解率も思うように上がらないので
もっと手軽な動画講座とかないかなと思ってるんだけども
勉強のためなのでお金はある程度出せます
807デフォルトの名無しさん (ワッチョイ bf89-YF1U)
2021/05/02(日) 16:51:31.68ID:JuDAr5160 解答に金出せるの?
808デフォルトの名無しさん (ワッチョイ a75f-OedE)
2021/05/03(月) 14:23:25.78ID:1BUpMinW0 >>806
黒本解いて、間違えた問題の解説に書いてある理屈を、自分の言葉で別にまとめる。
再度、問題を解くときは、問題を忘れる程度に間隔を開ける。
連続で間違える問題は理解ができていないか、間違って理解している。
正解と不正解が混じる問題は、理解が不完全。
連続で正解する問題は、理解できている。
正解不正解にかかわらず、解説を読んで仕様の理解が重要。
あと再受験無料キャンペーンを利用して、初回を緊張せずに受ける。
落ちても、追加費用が掛からないのは、精神的にかなり楽。
試験に合格するだけならSilver取れてれば、追加の学習時間は100時間未満でも十分可能だと思う。
モチベーションの維持は個人で異なるので、試験を申し込んで締め切りを設定して、自分を追い込む。
自分はSE8Goldは上記のように学習して合格した。
動画で見てインプットだけしても、記憶に定着しづらい。
動画見る時間でアウトプットしたほうが、トータルの学習時間は短く済むと思う。
黒本解いて、間違えた問題の解説に書いてある理屈を、自分の言葉で別にまとめる。
再度、問題を解くときは、問題を忘れる程度に間隔を開ける。
連続で間違える問題は理解ができていないか、間違って理解している。
正解と不正解が混じる問題は、理解が不完全。
連続で正解する問題は、理解できている。
正解不正解にかかわらず、解説を読んで仕様の理解が重要。
あと再受験無料キャンペーンを利用して、初回を緊張せずに受ける。
落ちても、追加費用が掛からないのは、精神的にかなり楽。
試験に合格するだけならSilver取れてれば、追加の学習時間は100時間未満でも十分可能だと思う。
モチベーションの維持は個人で異なるので、試験を申し込んで締め切りを設定して、自分を追い込む。
自分はSE8Goldは上記のように学習して合格した。
動画で見てインプットだけしても、記憶に定着しづらい。
動画見る時間でアウトプットしたほうが、トータルの学習時間は短く済むと思う。
809デフォルトの名無しさん (ワッチョイ dfbf-BDeo)
2021/05/04(火) 13:02:18.53ID:vEIu1ksM0810デフォルトの名無しさん (ワッチョイ df55-Ew5U)
2021/05/05(水) 15:55:35.45ID:OPDNplcn0 IntelliJ と Eclipse はどちらがおすすめですか?
811デフォルトの名無しさん (ワッチョイ bf89-sT2V)
2021/05/05(水) 16:39:34.48ID:A8P/sHlN0 お好きなように
812デフォルトの名無しさん (ワッチョイ 879c-A/rE)
2021/05/05(水) 18:17:49.48ID:oo/oqlpM0 有料版を買うまたはWeb開発しないならIntelliJ IDEA
無料でWeb開発したいならEclipseで我慢
無料でWeb開発したいならEclipseで我慢
813デフォルトの名無しさん (ワッチョイ bf01-oCIO)
2021/05/05(水) 18:18:55.21ID:72Et34kw0814デフォルトの名無しさん (ワッチョイ df55-Ew5U)
2021/05/05(水) 18:30:30.28ID:OPDNplcn0 >>811-813
ありがとうございました。
IntelliJを使おうと思います。
Sedgewick & Wayne『Algorithms 4th Edition』の公式ページではIntelliJが推薦されていて、
今まで使ったことがあるのは、Eclipseだったので迷いました。
ありがとうございました。
IntelliJを使おうと思います。
Sedgewick & Wayne『Algorithms 4th Edition』の公式ページではIntelliJが推薦されていて、
今まで使ったことがあるのは、Eclipseだったので迷いました。
815デフォルトの名無しさん (ワッチョイ df55-Ew5U)
2021/05/06(木) 17:41:56.48ID:LXhEt+K60 https://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/Graph.java.html
「public Graph(In in)」というコンストラクターの中に以下の例外処理のコードがあります。
catch (NoSuchElementException e) {
throw new IllegalArgumentException("invalid input format in Graph constructor", e);
}
「NoSuchElementException」という例外をキャッチしていますが、この例外はどこで投げられるのでしょうか?
「public Graph(In in)」というコンストラクターの中に以下の例外処理のコードがあります。
catch (NoSuchElementException e) {
throw new IllegalArgumentException("invalid input format in Graph constructor", e);
}
「NoSuchElementException」という例外をキャッチしていますが、この例外はどこで投げられるのでしょうか?
816デフォルトの名無しさん (ワッチョイ df55-Ew5U)
2021/05/06(木) 17:43:34.60ID:LXhEt+K60 readInt()でしょうか?
817デフォルトの名無しさん (ワッチョイ bf01-oCIO)
2021/05/06(木) 17:53:09.17ID:yYgm2/Q50 >>815
In.readIntのソース見ればわかるよね、ここで聞かなくても
In.readIntのソース見ればわかるよね、ここで聞かなくても
818デフォルトの名無しさん (ワッチョイ dfad-sT2V)
2021/05/06(木) 21:33:38.71ID:ajjDZVcw0 え? IntelliJ?
Kotlin もよろしく。
Kotlin もよろしく。
819あかさたな (ワッチョイ 2301-IY8Z)
2021/05/07(金) 03:43:56.84ID:nGcb4RSK0 質問させていただきます。
「A=1を何倍ずつしていくと5回目に10000を超えるか」
という問いに対するプログラムを作りたいのですが、以下の様に書いたら「5」と表示されてしまい、上手く行きませんでした。
まず考え方としては、nの5乗が10000を超える時のnの値を出力する為に、for分の方ではiが1〜5までnのべき乗を繰り返すプログラムを作成し、それにwhile文で「Aが10000以下の条件」をつけ、nの値を+1ずつ増やして判定し続け、最終的にAが10000を超えた時点でのnを出力するプログラム書いたつもりです。
どこが間違っていて何を訂正すれば良いのかヒントやアドバイスなどをご教授いただければ幸いです。
お願いいたします。
public static void main(String[] args) {
int n=1 ;
int A=1;
while(A<=10000) {
for(int i=1;i<=5; i++) {
A=A*n;
}
n++;
}
System.out.println(n);
}}
「A=1を何倍ずつしていくと5回目に10000を超えるか」
という問いに対するプログラムを作りたいのですが、以下の様に書いたら「5」と表示されてしまい、上手く行きませんでした。
まず考え方としては、nの5乗が10000を超える時のnの値を出力する為に、for分の方ではiが1〜5までnのべき乗を繰り返すプログラムを作成し、それにwhile文で「Aが10000以下の条件」をつけ、nの値を+1ずつ増やして判定し続け、最終的にAが10000を超えた時点でのnを出力するプログラム書いたつもりです。
どこが間違っていて何を訂正すれば良いのかヒントやアドバイスなどをご教授いただければ幸いです。
お願いいたします。
public static void main(String[] args) {
int n=1 ;
int A=1;
while(A<=10000) {
for(int i=1;i<=5; i++) {
A=A*n;
}
n++;
}
System.out.println(n);
}}
820デフォルトの名無しさん (ワッチョイ 2a9f-/iTb)
2021/05/07(金) 07:39:26.53ID:pvRHeq5B0 2箇所間違ってる
デバッガの使い方がわからないならprintlnをたくさん挿入してnやAがどう変遷しているか画面に表示してみればいい
デバッガの使い方がわからないならprintlnをたくさん挿入してnやAがどう変遷しているか画面に表示してみればいい
821デフォルトの名無しさん (ワッチョイ 2601-8aL7)
2021/05/07(金) 10:32:04.38ID:WFduYGps0 test
822デフォルトの名無しさん (ワッチョイ 2601-8aL7)
2021/05/07(金) 11:28:15.63ID:WFduYGps0823デフォルトの名無しさん (ワッチョイ d35f-oySJ)
2021/05/13(木) 21:45:18.04ID:RydS++Y10 Java勉強しようと思うんだけど、とりあえずSilverやGoldの勉強したほうがいいですかね(実際に受けるかはともかく)
何か作るというのも考えたのですが、体系的な知識を積むのには向いてないかな、と思ったり。
言語はC#やPHP、VB.netなら業務で使ったことがあります。
何か作るというのも考えたのですが、体系的な知識を積むのには向いてないかな、と思ったり。
言語はC#やPHP、VB.netなら業務で使ったことがあります。
824デフォルトの名無しさん (ワッチョイ ea02-jjtP)
2021/05/13(木) 22:00:00.42ID:T5qlXmy/0 SilverやGoldは
当たり前だけどJavaの試験なので
実際には使わない機能や書き方も試験に出てくる
つまり実務とはちょっと方向性が違う
「体系的」というのが何を意味するのかに寄るけど
比較的新しいバージョンの機能の問題もでない
当たり前だけどJavaの試験なので
実際には使わない機能や書き方も試験に出てくる
つまり実務とはちょっと方向性が違う
「体系的」というのが何を意味するのかに寄るけど
比較的新しいバージョンの機能の問題もでない
825デフォルトの名無しさん (ワッチョイ d336-Ir/C)
2021/05/13(木) 22:41:33.30ID:AIJP2zOw0 OracleのJava資格の勉強は、我流で趣味プログラムを書いたり
仕事で誰かのコードを加工させられているだけでは身につかないような
Javaの細かい仕様や機能を浅く広く知識として身につくって感じだな
Java8以降に登場した新しい書き方、ラムダ式や関数型インターフェースなんて
下手にレガシーな現場に放り込まれるよりは
Goldの自習でもしてた方が手っ取り早く身につくんじゃないかという気はするし
仕事で誰かのコードを加工させられているだけでは身につかないような
Javaの細かい仕様や機能を浅く広く知識として身につくって感じだな
Java8以降に登場した新しい書き方、ラムダ式や関数型インターフェースなんて
下手にレガシーな現場に放り込まれるよりは
Goldの自習でもしてた方が手っ取り早く身につくんじゃないかという気はするし
826デフォルトの名無しさん (ワッチョイ d336-Ir/C)
2021/05/13(木) 23:00:50.01ID:AIJP2zOw0 資格はあくまで言語仕様と標準ライブラリの知識にとどまるから
どんなフレームワークが栄えているのぞやとか
Javaでよく使われるデザインパターンだとか
おすすめのIDEやウェブコンテナはなんぞやとか
lombokとかjunitみたいな便利ツールとか
Javaで必要ないろんな周辺知識が抜け落ちるみたいなところはある
どんなフレームワークが栄えているのぞやとか
Javaでよく使われるデザインパターンだとか
おすすめのIDEやウェブコンテナはなんぞやとか
lombokとかjunitみたいな便利ツールとか
Javaで必要ないろんな周辺知識が抜け落ちるみたいなところはある
827デフォルトの名無しさん (アウアウカー Sac3-TNhT)
2021/05/27(木) 11:38:44.78ID:FO5QR3uia ClassCastExceptionについて教えてください。
AのサブクラスBが定義されていて、
AインスタンスをBにキャストすると、実行時にこの例外が発生すると思うのですが、どういった仕組みなのでしょうか。
B b = (B) new A();
b.method();
一行目で、bに代入されるアドレス先のインスタンスの型をなぜみにいってるんでしょうか?多相性を考えたときに二行目ではなく一行目で例外が発生することに違和感を覚えます!
AのサブクラスBが定義されていて、
AインスタンスをBにキャストすると、実行時にこの例外が発生すると思うのですが、どういった仕組みなのでしょうか。
B b = (B) new A();
b.method();
一行目で、bに代入されるアドレス先のインスタンスの型をなぜみにいってるんでしょうか?多相性を考えたときに二行目ではなく一行目で例外が発生することに違和感を覚えます!
828デフォルトの名無しさん (ワッチョイ 979c-XjYx)
2021/05/27(木) 11:44:55.97ID:/NO+foY50 多態性の向きを勘違いしてるんじゃない?
子Bは親Aとして振る舞えるけど、親Aは子Bとして振る舞えないよ
子Bは親Aとして振る舞えるけど、親Aは子Bとして振る舞えないよ
829デフォルトの名無しさん (アウアウカー Sac3-TNhT)
2021/05/27(木) 12:01:09.85ID:FO5QR3uia830デフォルトの名無しさん (アウアウカー Sac3-TNhT)
2021/05/27(木) 12:05:29.55ID:FO5QR3uia >>828
それは理解してます。
変数bからしたら実体が何かというのはBという型情報だけ知ってればよくて、メッセージ送信先で問題があれば例外が発生すればいいのにと思いました。
すみません、ダウンキャストって多相性とはちょっと違いますね。
それは理解してます。
変数bからしたら実体が何かというのはBという型情報だけ知ってればよくて、メッセージ送信先で問題があれば例外が発生すればいいのにと思いました。
すみません、ダウンキャストって多相性とはちょっと違いますね。
831デフォルトの名無しさん (ワッチョイ abf0-lZiV)
2021/05/27(木) 12:21:34.62ID:oFAbMDh80 メソッド呼び出しとかするたびに毎回型チェック発生って効率悪いでしょ、動的型言語なら仕方ないけど。
■ このスレッドは過去ログ倉庫に格納されています
