第四章.整列
アレイとは
▶同じタイプの複数のデータを順番に格納するデータ構造
配列を使用する理由:変数を使用してプログラムを使用するため、多くの変数を使用する場合があります.変数の使用を容易にするために、配列を使用します.
配列に変換すると
--> why? 後で修正するのはちょっと不便です.
▶配列は、関連する情報を1つのグループとして管理するために使用され、これらの情報を扱う際に主に重複文を使用します.ここから,複文は配列と非常に密接な関係があることがわかる.
例外とは?
int[]names=new int[3]では、names[3]=10;このように値を与えると例外が発生します.(0~2以外)
上の図に示すように、実行ファイルにはNullPointerExceptionの例外処理が表示されます.
QUIZ)a[0]の出力値は何ですか?
変数bは、変数aと同じアドレスを参照する.
aという名前の記憶空間にそれぞれ1(アドレス1)、2(アドレス2)、3(アドレス3)を含み、bという名前の記憶空間にaを入れる.aの起点はアドレス1号、bはaのアドレス1号(ポインタ役割)である
b[0]を100に指定して折りたたむと、a[0]も100になります.(同じアドレスを表示しているため)
c言語におけるポインタの概念はjavaで一般的に使用されていることがわかります.
変数のアドレスは変更されませんが、変数が指すアドレスは変更できます.
Garbage Collectionとは?
score 2の前に見たアドレス値{50,60,70,80,90}は意味のない値になる.
▶同じタイプの複数のデータを順番に格納するデータ構造
配列を使用する理由:変数を使用してプログラムを使用するため、多くの変数を使用する場合があります.変数の使用を容易にするために、配列を使用します.
package com.company;
public class note {
public static void main(String[] args) {
int math = 20;
int korean = 30;
int science = 40;
int english = 50;
int society = 80;
//총점
int sum = math + korean + science + society + english;
//평균
int average = sum / 5;
System.out.println("합계 : " + sum);
System.out.println("평균 : " + average);
}
}
一般に、このように変数を1つずつ指定してコードを記述する場合、上記の場合、科目の追加を継続すると、コードの変更の不便が必要となる.配列に変換すると
public class note {
public static void main(String[] args) {
int[] scores = {20, 30, 40, 50, 80}; //과목 순서를 알고 있다는 가정하에
// int sum = scores[0] + scores[1] + scores[2] + scores[3] + scores[4];
int sum = 0;
for (int i = 0; i < scores; i++) {
sum = sum + scores[i];
}
// 이런식으로 코드를 짜게 되면 언제든지 과목추가를 편하게 할 수 있다.
//--> 수정하기에 편하다(유지보수, 생산성이 upgrade)
// 이래서 배열을 사용하면 편하다.
int avg = sum / scores.length;
// 이때 scores의 변수가 5개 이므로 scores.length대신해서 5를 사용해주어도
// 되지만 그러면 변수를 늘이거나 줄어들 때 마다 변수의 개수에 대한 값을 그때마다
// 변경 해주어야 하기 때문에 scores.length로 코드를 작성해주는것이 편리하다.
System.out.println("합계 : " + sum);
System.out.println("평균 : " + avg);
}
}
上のコードでは int sum = scores[0] + scores[1] + scores[2] + scores[3] + scores[4];
このように使うのは問題ありませんが、配列を使うのは意味がありません.--> why? 後で修正するのはちょっと不便です.
▶配列は、関連する情報を1つのグループとして管理するために使用され、これらの情報を扱う際に主に重複文を使用します.ここから,複文は配列と非常に密接な関係があることがわかる.
例外とは?
int[]names=new int[3]では、names[3]=10;このように値を与えると例外が発生します.(0~2以外)
上の図に示すように、実行ファイルにはNullPointerExceptionの例外処理が表示されます.
QUIZ)a[0]の出力値は何ですか?
int[] a = {1, 2, 3};
int[] b;
b = a;
b[0] = 100;
System.out.println(a[0]);
Answer) 100変数bは、変数aと同じアドレスを参照する.
aという名前の記憶空間にそれぞれ1(アドレス1)、2(アドレス2)、3(アドレス3)を含み、bという名前の記憶空間にaを入れる.aの起点はアドレス1号、bはaのアドレス1号(ポインタ役割)である
b[0]を100に指定して折りたたむと、a[0]も100になります.(同じアドレスを表示しているため)
c言語におけるポインタの概念はjavaで一般的に使用されていることがわかります.
変数のアドレスは変更されませんが、変数が指すアドレスは変更できます.
Garbage Collectionとは?
int[] score1 = {20,30,40,50,60};
int[] score2 = {50,60,70,80,90};
score1 = score2;
score1 = null; // 바라보고 있던 주소가 날라가게 된다.
ここでscore 1とscore 2は、score 1=score 2が作成されるため、異なるアドレスを表示しています.score 2の前に見たアドレス値{50,60,70,80,90}は意味のない値になる.
Reference
この問題について(第四章.整列), 我々は、より多くの情報をここで見つけました https://velog.io/@dongyunhan/제-4장.-배열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol