Javaは、オブジェクト指向プログラミング言語の1つ。Javaで開発されたアプリケーションはJava仮想マシンの中で動作するため、アプリケーション自体はプラットフォームに依存せず動作することが出来る。その汎用性は、PC・携帯電話・スマートフォン・サーバマシン・Webブラウザなど多岐にわたる。
Questions tagged [java]
1573 questions
16
votes
2 answers
どうしてfinalizeを使うべきではないのですか?
「Javaのfinalizeによるクリーンアップ処理の実装は行うべきではない」と教わったのですが、なぜそうなのでしょう?
また、finalizeを使わずに同じようなことをすることはできるのでしょうか?

niu
- 2,000
- 6
- 34
- 44
12
votes
1 answer
Javaは何言語で書かれていますか?
英語で検索したのですが、翻訳がうまく働かずはっきりとした回答を得ることができませんでした
スタックオーバーフローだったのでここで質問すれば解決しますか

ぅーぅー
- 147
- 1
- 3
10
votes
2 answers
Javaで利用可能なメモリサイズのデフォルト値は?
Javaでは-Xms256mのように利用可能なメモリを指定できますが、指定しない場合のデフォルトサイズ
はどのようになりますでしょうか?

Tsuneo Yoshioka
- 373
- 1
- 5
- 9
9
votes
2 answers
コンストラクタの this() super()はなぜ先頭にしか記述出来ないか
なぜthis() super()は先頭に以外に記述することをなぜ禁止したのでしょうか?
this()やsuper()を呼び出す前に何かをしないといけない時は面倒じゃないですか。
なぜなのでしょうか。
public class Instance{
String name;
public Instance(){
//ここに処理があるとエラーが出る
this("Sample");
}
public Instance(String name){
//処理…
…

ra1ned
- 1,130
- 3
- 16
- 49
9
votes
1 answer
Javaで独自実装したListの動作が異常に遅い
ListIteratorでaddメソッドを実装しArrayListやLinkedListと速度比較したのですが、独自実装のListIteratorの動作が異常に遅いのです。その理由がわかりません。
ListIteratorをimplementしたMyListItrを作成し、最初にaddを実装しその速度を比較しました。
MyListに格納するオブジェクトはElm型オブジェクトとします。
public class Elm {
public Elm next;
…

nakashima
- 93
- 5
8
votes
3 answers
継承したクラスのメンバ変数を差し替えたい
Java で以下のようなことを簡潔に記述可能でしょうか。
稚拙な質問ですが、慣習等あればご回答いただけたらと思います。
よろしくお願いいたします。
class A {
B b;
A() {
this.b = new B();
}
// 以下、b を使ったメソッドなど
}
class B {}
class A' extends A {
// b を使ったメソッドの動作はそのままに b を B' のインスタンスとしたい
}
class B' extends B…

sira
- 367
- 1
- 3
- 12
7
votes
1 answer
String型を==で比較したときの挙動がfinal/非finalで違う
String型を==で比較したときの挙動が予想と違う の回答では(3)の形が登場しています。
普段、私はIDEの自動補完で変数に final を付与しているので、たとえ(3)の形で記述しても最終的に上記(2)の形になります(正確には変数final_ne_and_final_koもfinalにもなりますが)。
final の有無で結果が変わる、というのが意外だったのですが、これはどの仕様に拠るものでしょうか。
(IDEの final…

DEWA Kazuyuki - 出羽和之
- 11,388
- 3
- 20
- 54
7
votes
1 answer
スーパークラスと同じコンストラクタが使えないのはなぜ?
Java初心者です。
import java.util.*;
class ListTest{
MyClass m1 = new MyClass("hoge");
MyClass m2 = new MyClass("fuga");
List list1 = new ArrayList<>(Arrays.asList(m1, m2)); //OK
ArrayList list2 = new…

j.TAKEO
- 73
- 1
- 3
7
votes
3 answers
Java 互換性チェック
Java 8 を用いた実行可能jarを配布したいのですが、ユーザーのJavaが7以前であるときに、Java 8のダウンロードを促すメッセージを出したいのですが、このjarファイルを介してそのようなことは可能でしょうか?
別にソフトウエアを用意する必要があるのでしょうか?

kensuke1984
- 305
- 1
- 5
6
votes
1 answer
【Java】Threadの割り込みについて
java.lang.Threadで、別スレッドでタイマーを起動して、
メインスレッドが停止するか、タイマースレッドが規定時間を過ぎたタイミングでプロセスを終了したいのですが、
仕様を見ると、”休止中のスレッドに対する割り込み”(interrupt)しか見当たらないので、常時走っているメインスレッドへの割り込みは、不可能ということになるんでしょうか?
イメージとしては、実行クラスで
try {
final Thread main = Thread.currentThread();
…

omarun
- 1,483
- 6
- 27
- 42
6
votes
4 answers
Class型と文字列から対応するenum値を取得するには?
public enum MyEnum {
HOGE,
FUGA;
}
下記のClass>とStringからMyEnum.HOGEを取得するにはどうすれば良いでしょうか?
またClass>型(cl)からenum値すべて列挙可能でしょうか?
class> cl = MyEnum.class;
String value = "HOGE";

hiro
- 1,074
- 2
- 10
- 19
6
votes
2 answers
javaで変数の計算をすると「精度が失われる可能性があるintからshortへの変換」が出る
javaで変数計算をしていると下のようなエラーが出ました
エラーメッセージ
精度が失われる可能性があるintからshortへの変換
short c =a+b
ファイルの内容
byte a = 64;
short b = 100;
short c =a+b
どこで変数がintになったのですか?

55 Rihito
- 97
- 1
- 4
6
votes
2 answers
説明文中にクラスとメソッドとの区切れを「#」で示すときの「#」の由来
次の①のWebページでは、クラスとメソッドとの区切れをString.substring()のように「.」で表しています。
次の②のWebページでは、クラスとメソッドとの区切れをjava.lang.String#substringのように「#」で表しています。
①のように「.」で表すのは、ソースと同様にということだと思います。
②のように、ソース以外の文章の中で、クラスとメソッドとの区切れを「#」で表す由来は、何でしょうか。
①…

mnkrar
- 329
- 1
- 4
- 12
6
votes
1 answer
6
votes
1 answer
総称型の変数に対して、extendsで限定してもインスタンスを代入できない
Javaの総称型について教えてください。
以下のようなコードを書きましたが、コンパイルエラーとなりました。
class Hoge {}
class Test {
Test() {
// error: incompatible types: Hoge cannot be converted to T
T hoge = new Hoge();
…

andou
- 689
- 1
- 4
- 14