JAVAPROGRAMING 3

dackyy·2022년 6월 24일
0

JAVA PROGRAMING

목록 보기
8/15
post-thumbnail

while문

while(조건문)
{
	반복할 구문
}

while 문은 증감문을 구문 어디서나 사용할 수 있기때문에 for문보다 더 자세하게 제어가 가능하다.

다중 while 문을 작성할때 초기화문이 없기 때문에 내부 while문의 초기화문을 진입 직전에 써줘야 한다

do while문

do {
	실행구문;
    증감식; (필수조건X)
    } while(조건식);

do while 문은 일단 do에 있는 구문을 실행하고 while의 조건이 맞으면 do를 반복하는 형식이다. 조건에 맞든 안맞든 첫번째 구문은 무조건 실행된다는 것이 특징이다.

.equals()와 == 의 차이점

==은 object의 주소값을 비교하고 .equals() ==연산을 진행한뒤 다르면 안에 있는 문자열을 하나하나 비교해서 문자열이 같으면 true를 반환합니다.

continue

for(int i = 1;i < 10; i++) {
			if(i ==5)
				continue;
			System.out.println(i);
		}

continue를 사용하면 바로 증감으로 들어간다.

Array

동일한 데이터타입을 메모리상에 순차적으로 확보한것을 배열이라고 한다.

heap메모리 상에 데이터가 순차적으로 확보되고 그 데이터들을 참조할 수 있는 Reference 변수를 stack에 선언된다.

		int []arr; //stack에 reference 변수만 만들어짐
		arr = new int[4]; //heap 에 4개의 공간이 만들어짐 

[i] i는 reference 변수가 주소값을 알고 있는 상대적인 거리를 의미한다.
배열을 사용함으로써 작업을 일괄적으로 처리가 가능하다.

2차원 배열

		arr1 = new int[4];
		arr2 = new int[2][2]; //2차원 배열

첫번째 []를 행의 갯수 두번째 []를 열의 갯수라고 보면된다.
그리고 첫번째 []를 참조하는 reference 배열이 heap에 생성되어 각 배열의 열을 참조한다.

String 객체생성

String 의 객체를 생성하는 방법에는 2가지가 있다.

String str = new String("Superman");
String str3 = "Superman";

new String으로 생성한 객체는 heap 메모리상에 잘생성되고 ""으로 생성한것은 String constant pool 에 들어가 같은 문자열을 가진 객체가 존재하면 그 객체의 주소값을 가진다. (없을 경우 객체를만듬)
만약 new String으로 생성했을때 같은 문자열을 가진 객체가 String constant pool에 없을 경우 heap메모리상에 1개 constant pool에 1개 총 2개를 생성한다.

String 객체 생성 ==과 equals의 비교

==은 주소값을 비교한다. equals는 주소값을 비교하고 다르다면 문자열을 비교한다.

public class equalstring {
	public static void main(String args[]) {
		String str = new String("Superman");
		String str2 = new String("Superman");
		
		if(str == str2)
			System.out.println("Same");
		else
			System.out.println("different");
		
		
		String str3 = "Superman";
		String str4 = "Superman";
		
		if(str3 == str4)
			System.out.println("Same");
		else
			System.out.println("different");

	}

}

str과 str2 는 서로 다른 객체이기 때문에 서로 다른 주소값을 가진다. 따라서 == 연산은 flase equals는 true를 반환한다.

str3과 str4는 서로 주소값이 같다. 처음 new String이 "superman" 객체를 생성하면서 String pool에 복사본을 만들었기 때문이다. 따라서 == 연산이 true가 나오게 된다.

0개의 댓글