본문 바로가기

자바

1주차 예제를 통한 간단한 복습

변수: "단 하나의 값을 저장할 수 있는 메모리 공간."

변수의 초기화 : "변수를 사용하기 전에 처음으로 값을 저장하는 것"

// 두 변수의 값 교환하기 
package com.pr01; 

public class VarEx2 {

	public static void main(String[] args) {
		int x = 10, y = 20;
		int tmp = 0;
		System.out.println("x:" + x + " y :" + y);
		
		tmp = x;
		x = y;
		y = tmp;
		
		System.out.println("x :"+ x + " y:"+ y);

	}

}

 

상수와 리터럴 : 상수[constant]는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다. 변수의 타입 앞에 키워드 'final' 을 붙여주기만 하면 된다.

리터럴[literal] : 그 자체로 값을 의미하는 것으로 기존에 알고있던 '상수'의 다른 이름일 뿐이다.

 

println() : 사용하기엔 편하지만 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.

printf() : '지시자(specifier)'를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다.

%b : boolean형식으로 출력 / %d[decimal] : 10진 정수의 형식으로 출력 /%o[octal] : 8진 정수의 형식으로 출력 /% x, %x : 16진[hexa-decimal] 정수의 형식으로 출력 / %f[floating-point] : 부동 소수점 형식으로 출력 / %c : 문자[character]로 출력 / %s : 문자열{String]로 출력

 

Scnnaer : 

package com.pr2;

import java.util.Scanner; // scanner클래스를 사용하기 위해 추가

public class ScannerEx {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in); // Scanner클래스의 객체 생성 
		
		System.out.println("두자리 정수를 하나 입력해주세요.>");		
		String input = scanner.nextLine(); // 입력받을 내용을 input에 저장 , 
        //nextInt() 같은 변환없이 숫자로 바로 입력받을 수 있는 메서드들이 있지만
        //화면에서 연속적으로 값을 입력받아서 사용하기에 까다롭기 때문에
        // 모든 값을 nextLine()	으로 입력받아서 적절히 변환하는 것이 더 낫다.
		int num = Integer.parseInt(input); // 입력받은 문자열을 숫자로 변환
		
		System.out.println("입력내용 : " +input);
		System.out.printf("num = %d%n", num);
		

	}

}

문자를 코드로 변환하는 것을 '문자 인코딩[encoding], 그 반대로 코드를 문자로 변환하는 것을 '문자 디코딩[decoding]'이라하며, 문자를 저장할 때는 인코딩을 해서 숫자로 변환해서 저장하고, 저장된 문자를 읽어올 때는 디코딩을 해서 숫자를 원래의 문자로 되돌려야 한다.

 

형변환{casting] : 변수 또는 상수[리터럴]의 타입을 다른 타입으로 변환하는 것 

-> 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여주기만 하면 된다. : (타입)피연산자

package com.pr2;
public class CastingEx1 {
	public static void main(String[] args) {
		double d = 85.4;
		int score = (int)d;
		
		System.out.println("score="+score);
		System.out.println("d="+d); //형변환 후에도 피연산자에는 아무런 변화가 없다.
	}
}

 

연산자의 우선순위 : 1.산술 > 비교 > 논리 > 대입 2.단항[1] > 이항[2] > 삼항[3] 3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽에서 오른쪽이다.

 

 Array.toString(배열이름)() 메서드를 이용해서 [첫번째요소,두번째요소....]와 같은 형식의 문자열로 만들어서 반환한다.

배열의 복사에서 자신을 가르키는 참조변수가 없는 배열은 사용할 수 없다. 배열은 참조변수를 통해서만 접근할 수 있기 때문에 , 쓸모없게 된 배열은 JVM의 가비지 컬렉터에 의해서 자동적으로 메모리에서 제거된다.

배열의 복사:↓

for(int i=0; i < num.length; i++) {newNum[i] = num[i]; }
for문을 arraycopy()로 바꾼것 1 -> 3 
System.arraycopy(num, 0, newNum, 0, num.length);
				 num[0]에서 newNum[0]으로 num.length개의 데이터를 복사

tocharArry() : 이 인스턴스의 문자를 유니코드 문자 배열에 복사한다.

2차원 배열 : 행[row] 열[column]으로 구성되어있다. 

2차원 배열의 초기화

int[][] arr = new int[][] { {1,2,3} , {4,5,6} };
int[][] arr =  { {1,2,3} , {4,5,6} };
int[][] arr = {
		 {1,2,3}, 
                {4,5,6} 
              };

 

'자바' 카테고리의 다른 글

Day06  (0) 2021.05.11
Day05  (0) 2021.05.10
Day04  (0) 2021.05.07
Day03  (0) 2021.05.06
Day2  (0) 2021.05.04