5일차
1. 참조 타입이란
- 번지를 통해 객체를 참조한다는 뜻입니다.
2. 메소드 영역
- JVM 이 실행중인 클래스와 메소드의 정보를 저장하는 영역입니다.
- JVM이 시작할때 생성되고 스레드가 공유하는 영역입니다.
3. 힙영역
- 동적으로 생성된 객체와 배열이 할당되는 영역입니다.
4.JVM스택 영역
- 메소드를 호출하면 프레임을 추가하고 종료되면 제거하는 영역입니다.
5. null
- 아무런 객체 참조를 가지고 있지 않다는 것 입니다.
- 객체를 초기화 할때 사용할 수 있습니다.
6.String
- 문자열은 String 객체로 생성되고 변수는 String 객체를 참조합니다.
- 초기값으로 null 값을 대입할수 있습니다.
7. new 연산자
- 힙 영역에 새로운 객체를 만들때 사용합니다.
예시)
package sec05.exam01;
public class StringEqualsExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
String strVar1 = "전우치";
String strVar2 = "전우치";
if(strVar1 == strVar2) {
System.out.println("같다.");
} else {
System.out.println("다르다.");
}
String strVar3 = new String("전우치");
String strVar4 = new String("전우치");
if(strVar3 == strVar4) {
System.out.println("같다.");
} else {
System.out.println("다르다.");
}
}
}
8. 배열
- 동일한 데이터 타입을 연속된 공간에 나열하여 각데이터에 인덱스를 사용하여 접근할수 있습니다.
- 사용하기 위해서는 배열 변수를 선언해야 합니다.
- 배열 변수는 참조변수에 해당됩니다.
- 배열을 생성하기 위해 값 목록을 이용하거나 new 연산자를 사용하면 됩니다.
package sec05.exam01;
public class ArrayCreateByValueListExample2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] scores;
scores = new int[] { 10,20,100};
int sum1 = 0;
for(int i=0; i <3; i++) {
sum1 += scores[i];
}
System.out.println("총합은: " + sum1);
}
}
9. 배열의 길이
- 배열의 길이를 얻기 위해 length 필드를 읽습니다.
package sec05.exam01;
public class ArrayLengthExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] scores = { 83, 90 ,97 };
int sum = 0;
for(int i=0; i<scores.length; i++) {
sum += scores[i];
}
System.out.println("총합은: " + sum);
}
}
10. 다차원 배열
- 배열 요소가 다시 배열인 배열구조를 가지는 배열입니다.
- 일반적인 형태로 2차원 배열이 있습니다.
package sec05.exam01;
public class ArrayInArrayExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] javaScores = { {95,80},{15,20},{35,40}};
for(int i=0; i < javaScores.length; i++) {
for(int j=0; j<javaScores[i].length; j++) {
System.out.println("javaScores["+i+"]["+j+"]="+javaScores[i][j]);
}
}
}
}
11. 객초를 참조하는 배열
- 배열의 각요소가 객체를 참조하기 위한 변수로 사용됩니다,
package sec05.exam01;
public class ArrayReferenceobjectExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] strArray = new String[3];
strArray[0] = "java";
strArray[1] = "java";
strArray[2] = new String("java");
System.out.println(strArray[0] == strArray[1]);
System.out.println(strArray[0] == strArray[2]);
System.out.println(strArray[0].equals(strArray[2]));
}
}
12. System.arraycopy()로 복사하기
- 배열을 복사시키고 복사되지 않는 것은 null 값이 유지됩니다.
package sec05.exam01;
public class ArrayCopyExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] oldStrArray = {"java","array","copy"};
String[] newStrArray = new String[5];
System.arraycopy(oldStrArray, 0, newStrArray, 0 ,oldStrArray.length);
for(int i=0; i<newStrArray.length; i++) {
System.out.print(newStrArray[i] + ", ");
}
}
}
열거타입
- 일련의 상수 값을 정의 하는 특별한 데이터 타입 입니다.
- 예시로 날짜나 요일이 있습니다.
package sec05.exam01;
public enum Week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
참조타입부터 난이도가 올라가네요.. 주말에 복습하고 부족한부분 채우겠습니다.
'학습단 > JAVA 학습단' 카테고리의 다른 글
6. 혼공자 6일차(클래스) (0) | 2023.07.10 |
---|---|
1주차 완료 (0) | 2023.07.07 |
4. 혼공자 4일차(조건문 + 반복문) (0) | 2023.07.06 |
3. 혼공자 3일차(연산자 + 연산식) (0) | 2023.07.05 |
2. 혼공자 2일차(변수 + 타입 +변환 + 입출력) (0) | 2023.07.04 |