紫本覚える Flashcards

1
Q

シグネチャ

A

メソッド名 と 引数の型・数・並び順 の組み合わせ

public void disp(int[] x) {
// 処理内容
}
このメソッドのシグネチャは:
・メソッド名: disp
・引数リスト: int[](引数が1つで、型は int[])
→ シグネチャ: disp(int[])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

var

A

型推論を行うための予約語。
右辺の値によって型の推論が可能な場合のみ使用できるため、必ず初期値を設定する。
nullを代入した場合はコンパイルエラー

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

StringBuilderクラスのメソッド4つ

A

戻り値がStringBuilder型。
・StringBuilder append ( String str ):指定された文字列を追加する。
・StringBuilder delete ( int start, int end ):startからend - 1の文字列を削除する。
・StringBuilder insert ( int dstOffset, CharSequence s ):dstOffsetの位置に、文字列を挿入する。
・StringBuilder replace ( int start, int end, String str ):startからend - 1の文字列をstrに置き換える。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

ラッパークラス名.parseXxx( 文字列 )とは

A

文字列から基本データ型への変換
※Xxxは対応する基本データ型の名前です。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

A

代入演算子(右辺の値を左辺に入れる)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

intern()

A

文字列インターンプール(同じ内容のStringオブジェクトを共有する仕組み)を使用して同じ内容のStringを共有する。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Stringのequals()

A

文字列の比較

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

StringBuilderのequals()

A

2つの参照が同じオブジェクトを指しているかを==演算子を使って比較
(同じメモリのアドレス(参照)を指しているかを比較)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

for (int i : array) の i は何を受け取りますか。

A

array配列の各要素 を順番に受け取る。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

継承関係におけるコンストラクタの呼び出しについて

A

明示的なコンストラクタの呼び出しは、コンストラクタの先頭で1回だけ行うことができる

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

レコード宣言の注意点

A

・recordはextendsを使って親クラスを指定できない。
recordは、暗黙的にjava.lang.Recordを継承しているので、extends Recordを明示的に書くと2重に継承したことになる。

・recordはデフォルトでfinal(修飾子)なので、finalを明示的に書いても問題にならない。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

void

A

・戻り値なしを示す型(メソッドが何も値を返さない場合は戻り値の型としてvoidを指定する)
・基本データ型(プリミティブ型)、参照型(オブジェクト型)にも属さない特殊な存在。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

抽象メソッドのオーバーライドについて

A

・インターフェースのメソッドはデフォルトでpublic
・抽象クラスを継承した通常クラスは未実装のabstractメソッドをすべて実装しなければならない。
抽象クラスを継承(inplement)した抽象クラスは、未実装のabstractメソッドを実装しなくてもおk

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

abstract classとは

A

抽象クラス。インスタンス化できないクラス。1つ以上の抽象メソッドを持つ。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

abstrct methodとは

A

抽象メソッド。メソッドのシグネチャ(名前、引数、戻り値)だけが定義され、メソッドの実装はそのクラスを継承したサブクラスで行う。
抽象メソッドを含むサブクラスは必ずabstrctとして宣言しなければならない。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

defaultメソッドが衝突する場合

A

実装クラスまたは継承したインタフェースでオーバーライドを行います。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

複数のインタフェースの継承について

A

戻り値の型に互換性がない場合は、オーバーライドはできない。

18
Q

sealed クラスの基本ルール

A

継承を制限できる。permits で 継承を許可するクラス を明示する必要がある。

19
Q

sealed クラスを継承できるクラスの種類

A

final これ以上継承を許可しない
non-sealed 継承を許可する
sealed 継承を制限する

20
Q

permits ので継承を制限できる範囲

A

permits で指定できるのは直接のサブクラスのみ。
子クラスへの継承許可を制限する。親 → 子

21
Q

extendsの説明

A

extends = 継承宣言
親クラスを指定して継承する
子 → 親

22
Q

permits の説明

A

permits = 継承許可
子クラスへの継承許可を制限する
親 → 子

23
Q

instanceof 演算子とは

A

オブジェクトが指定された型にキャスト可能かどうかをチェックするために使う演算子
if (myAnimal instanceof Dog) {
System.out.println(“It is a Dog.”);

24
Q

instanceof 演算子のパターンマッチングとは

A

instanceof演算子の後に変数を直接指定することで、型キャストを簡略化できること。この構文を使うと、型チェックとキャストを一度に行うことができます。
if (animal instanceof Dog dog) {
dog.bark(); // Dog型にキャストされたdogを使用

25
ジェネリクスとは
型をパラメータとして受け取り、コードの再利用性と型安全性を向上させることができる仕組み。
26
Javaアプリケーションの実行とは
javaコマンドでクラスファイルを指定して実行。プログラムがJVM上で実行される。クラスファイル名の指定に拡張子はつけない。
27
パッケージとは
クラスを管理するための仕組み。異なるソースファイルに同じ名前のパッケージ宣言を行うことは可能。
28
コマンドラインの引数とは
プログラムを実行するときにコマンドラインで渡すデータのこと
29
if文の条件式の値が等しいかどうかの比較とは
演算子「==」を使って値が等しいかどうかを比較する。
30
for文のループ操作 int[] array = {1, 2, 3, 4, 5}; のすべての要素を出力する記述の例3つ
int i = 0; for (; i < array.length; i ++) { System.out.print(array[i]); } for (int i : array) System.out.print(i); for (int i : array) { System.out.print(i); i++; }
31
メンバ変数の宣言の注意点
・varはローカル変数の型推論に使われるキーワードのためメンバ変数に使用できません。 ・final変数は初期化が必要。
32
メソッド定義とは
メソッド定義とは、プログラムにおいて特定の処理をまとめて名前をつけたブロックを作成すること
33
メソッドのオーバーロードとは
同じ名前のメソッドを引数の型や数を変えて定義すること。 メソッド名が同じでも、以下のいずれかが異なっていればオーバーロードが可能です: ✅ 引数の型が異なる ✅ 引数の数が異なる ✅ 引数の並び順が異なる ⚠️ 戻り値の型が違うだけではオーバーロードできない
34
インスタンスメソッドとは
インスタンスを生成しないと呼び出せないメソッド。 クラスの中でメソッドを宣言するときに static を付けない場合、そのメソッドはインスタンスメソッドになります。 public class Example { int value; // インスタンス変数 // インスタンスメソッド (staticがついていない) public void setValue(int value) { this.value = value; } }
35
ブロックスコープとは
if 文やループ、その他のブロック内で宣言された変数は、そのブロック内でのみ有効です。これにより、変数の使用範囲をさらに限定することができる。
36
throwsの指定とは
throw でスローする例外があるクラスのスーパークラスや同じ階層のクラスを、メソッドの宣言に throws として指定する
37
throws指定されたメソッドのオーバーロードの注意点
throws に指定する例外のクラスは必ずしも同じである必要はありません。
38
メソッドの引数リストとしてのvar
メソッドの引数リストでは型推論を使用できないためコンパイルエラーになる。
39
throwとthrowsの違いとは
throw は 例外を発生 させる。 throws は 例外が発生する可能性 を宣言する。
40
y = b-- ;
yにbを代入してから、bをデクリメントする。