반응형
- 참조타입 변수 비교연산
public class ReferenceVarExample {
public static void main(String[] args) {
String var1 = "홍길동";
String var2 = "홍길동";
String var3 = new String("홍길동");
String var4 = new String("홍길동");
System.out.println(var1 == var2); // true
System.out.println(var1 == var3); // false
System.out.println(var3 == var4); // false
System.out.println(var1.equals(var4)); // true
}
}
- null과 NullPointException
- null
- NullPointerException
public class NullExample {
public static void main(String[] args) {
String str = null;
int size = str.length();
System.out.println(size);
System.out.println("종료");
}
}
- String 타입
public class StringEqualsExample {
public static void main(String[] args) {
String strVar1 = "신민철";
String strVar2 = "신민철";
String strVar3 = new String("신민철");
String strVar4 = new String("신민철");
System.out.println("strVar1, strVar2 : ");
isRefEquals(strVar1, strVar2);
System.out.println("strVar1, strVar2 : ");
isValueEquals(strVar1, strVar2);
System.out.println("strVar3, strVar4 : ");
isRefEquals(strVar3, strVar4);
System.out.println("strVar3, strVar4 : ");
isValueEquals(strVar3, strVar4);
}
private static void isRefEquals(String var1, String var2) {
if(var1 == var2) {
System.out.println("두 변수의 참조값이 같음");
return;
}
System.out.println("두 변수의 참조값이 다름");
}
private static void isValueEquals(String var1, String var2) {
if(var1.equals(var2)) {
System.out.println("두 변수의 값이 같음");
return;
}
System.out.println("두 변수의 값이 다름");
}
}
값
strVar1, strVar2 :
두 변수의 참조값이 같음
strVar1, strVar2 :
두 변수의 값이 같음
strVar3, strVar4 :
두 변수의 참조값이 다름
strVar3, strVar4 :
두 변수의 값이 같음
- 배열 타입
배열이란?
public class ArrayExample {
public static void main(String[] args) {
int[] scores = {83, 90, 87, 70, 75};
System.out.println("scores[0] : " + scores[0]);
System.out.println("scores[1] : " + scores[1]);
System.out.println("scores[2] : " + scores[2]);
System.out.println("scores[3] : " + scores[3]);
System.out.println("scores[4] : " + scores[4]);
}
}
- for반복문으로 배열
public class ArrayExample2 {
public static void main(String[] args) {
int[] scores = {83, 90, 87, 70, 75, 90};
// 배열의 길이 : 요소의 개수(5개)
System.out.println("배열의 길이 : " + scores.length);
for(int i=0; i<scores.length; i++) {
System.out.println(scores[i]);
}
}
}
length를 써서 요소의 길이를 알수있다.
[] 괄호는 변수 뒤에 붙여도 됨 (int scores[];)
- {}를 이용한 값의 목록으로 배열 생성
- 선언과 초기화를 분리할 수 없음
- 재할당 불가능
public class ArrayExample5 {
public static void main(String[] args) {
// {}이용한 배열 생성 방식은 선언과 초기화를 분리할 수 없다.
int[] scores; // 선언
// scores = {10, 20, 30, 40}; // 컴파일 에러
// 또한 배열 값을 재할당할 수 없다.
String[] names = {"홍길동", "김길동"};
// names[] = {"박길동", "나길동"}; // 컴파일 에러
}
}
할당을 하려면 반드시 new 연산자를 사용해야 한다.
public class ArrayExample6 {
public static void main(String[] args) {
// 선언과 초기화를 분리하려면 초기화시 new 연산자를 사용해야 한다.
int[] scores;
scores = new int[] {100, 70, 50};
for(int i=0; i<scores.length; i++) {
System.out.println(scores[i]);
}
// 배열 변수에 값을 재할당 하려면 new 연산자를 사용해야 한다.
String[] names = {"홍길동", "김길동"};
names = new String[] {"박길동", "고길동"};
for(int i=0; i<names.length; i++) {
System.out.println(names[i]);
}
}
}
- 메소드에 배열 전달
public class ArrayExample7 {
public static void main(String[] args) {
int[] myArr = {10, 20, 30, 40};
int addAll = addAll(myArr);
System.out.println(addAll);
// 배열의 목록을 전달하려면 new 연산자를 사용해야 한다.
int total3 = addAll(new int[] {80, 90, 100});
System.out.println(total3);
}
public static int addAll(int[] arr) {
int sum = 0;
for (int i=0; i<arr.length; i++) {
sum += arr[i];
}
return sum;
}
}
값
100
270
- 다차원 배열
import java.util.Arrays;
public class ArrayInArrayExample {
public static void main(String[] args) {
int[][] arr = new int[3][6];
arr = new int[][] {
{11, 22, 54, 35, 75, 90},
{18, 21, 64, 25, 52, 55},
{14, 33, 44, 65, 85, 76}
};
System.out.println(arr[1][4]);
System.out.println(arr.length);
System.out.println(arr[0].length);
}
}
값
52
3
6
- 반복문 사용
public class ArrayInArrayExample {
public static void main(String[] args) {
int[][] arr = new int[3][6];
arr = new int[][] {
{11, 22, 54, 35, 75, 90},
{18, 21, 64, 25, 52, 55},
{14, 33, 44, 65, 85, 76}
};
for(int i=0; i<arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
}
.
- System.arraycopy()
System.arraycopy(
원본배열,
원본배열의 몇 번 인덱스부터 복사할 지 ,
새로운 배열,
새로운 배열의 몇 번 인덱스부터 붙여 넣을지,
몇 개의 항목을 복사할지,
)
public class ArrayCopyExample2 {
public static void main(String[] args) {
String[] oldStr = {"java", "mysql", "jsp", "oracle", "spring"};
String[] newStr = new String[6];
System.arraycopy(oldStr, 0, newStr, 0, oldStr.length);
System.out.println(Arrays.toString(oldStr));
String[] newStr2 = new String[6];
// [null, null, null, null, null, null,]
// 목표: [null, null, "mysql", "jsp", "oracle", null]
System.arraycopy(oldStr, 1, newStr2, 2, 3);
System.out.println(Arrays.toString(newStr2));
System.out.println(oldStr[1] == newStr2[2]);
System.out.println(oldStr[2] == newStr2[3]);
System.out.println(oldStr[3] == newStr2[4]);
}
}
값
[java, mysql, jsp, oracle, spring]
[null, null, mysql, jsp, oracle, null]
true
true
true
- 향상된 for문
public class ArrayCopyExample3 {
public static void main(String[] args) {
String[] list = {"java", "mysql", "jsp", "oracle", "spring"};
for(String sub : list) {
System.out.println(sub);
}
}
}
반응형
'학습 > JAVA' 카테고리의 다른 글
6. 클래스(생성자) (0) | 2022.10.05 |
---|---|
5. 열거 타입 (0) | 2022.10.05 |
4. 반복문(for문, while문, do-while문 (0) | 2022.09.30 |
4. 조건문(if문, switch문) (0) | 2022.09.29 |
3. 연산자(3) (0) | 2022.09.29 |
댓글