본문 바로가기
Back/Java

[열혈 java 프로그래밍, 윤성우] 강의 3-5강 정리

by SIXXXX_ 2022. 2. 28.
728x90

 

3. 상수와 형변환

상수

  • 변수의 상수화 ex. final(예약어) 변수값을 선언과 동시에 초기화

일반적으로 메모리 공간에 할당된 값, 저장되고 난 후의 값들을 이동해서 연산이 이뤄진다.

 

 

-초기화를 안했다면 한번 초기화를 선언할 수 있다.

 

  • 상수(값으로 이뤄진 것들, literals) 

리터럴 : 자료형 기반으로 표현되는 상수

정수표현법 기반으로 저장한다. int를 기본으로 저장(4byte), double(8byte)

 

-System.out.println 은 10진수를 표현하는 것이다.

- 언더바를 삽입해 나탄탤 수 잇다.

 

* escape sequence(이스케이프 문자)

 

형변환

  • 자동형변환(Implicit Conversion) :: 데이터 손실을 최소화할 수 있는 방법으로 자동형변환된다.

형변환 순서, 반대는 불가

double a = 2.0F;

위의 코드는 double 타입의 변수 a에 float 타입의 값을 대입하고 있다. 이 때 2.0F의 값은 자동으로 double 타입으로 형 변환이 일어난다. 이것이 가능한 이유는 double 타입이 float 타입보다 더 많은 수를 표현 할 수 있기 때문이다. 타입을 변경해도 정보의 손실이 일어나지 않는 경우 자동 형 변환이 일어난다.

 

  • 명시적 형변환(Explicit Conversion, 강제형변환)

 

표현형식 : (데이터타입)데이터 값

 

4-1. 연산자와 복합 대입 연산자

이항 피연산자

모듈러연산(%) : 나머지를 반환한다.

실수형 나눗셈은 소수점을 반환한다.

 

*성능최적화 SCE

 

 

4-2.

부호연산자 

short s1 = 2;
short s2 = s1; //컴파일 오류 *s1 은 int형으로 바뀜

short s2 = (short)s1;

 

 

증가 감소 연산자

  • prefix(앞) a
  • a postfix(뒤)
int num = 5;
System.out.print((num++)) + " ");  
System.out.println((num++)) + " ");
System.out.println(num++) + "\n");
// 5 6 7

System.out.print((num--)) + " ");  
System.out.println((num--)) + " ");
System.out.println(num--) + "\n");
// 7 6 5

 

4-3. 비트를 대상으로 하는 연산자들

정수, int

 

각각의 비트를 대상으로 연산을 진행하고

각 비트를 대상으로 진행된 연산 결과를 묶어서

하나의 연산 결과를 반환한다.

 

1 = 참으로 해석

 

비트연산자 종류

& and

| or

^ 서로 다를경우

~ 반전

 

- ' * ', ' / '는 cpu 쿨럭을 많이쓰는 요인이기도 하다.

 

 

5. 실행 흐름의 컨트롤

5-1. if,  else

if(조건) {
 실행(true일때 실행O, false일때 실행X);
}

- if문 속한 문장 1개 경우 중괄호 생략 가능

 

 

조건?   수1(true시 반환)  :  수2(false시 반환)

 

 ex. big = (num1 > num2) ? num1 : num2;

 

 

if ~ else if ~ else 문

 

 

5-2. switch와 break

switch(조건) {
case1:
    break;
case2:
    break;
default:
}

 

 

- 마치 색인 (index)이라 생각하면 된다.

- case break; 영역으로 생각하기

 

 

 

5-3. for, while, do~while

while문(반복 조건) {

}

 

 

do{

}while(조건);

 

 

for(반복횟수를 세기 위한 변수; 반복의 조건; 반복을 빠져나오기 위한 연산){

}

 

 

for문 실행순서

 

5-4. break & continue

 

while( ) {
   break;
}

 

 

while( ){
   continue;
}

 

무한루프

while(true) {
    break;
}

 

 

 

5-5. 반복문의 중첩

for문과 while문 중첩을 주로 쓴다.

 

구구단 출력

 

class guguda{
    public static void main(String[] args) {
    	for(int = 1; i < 10; i++) {
            for(int j = 1; j < 10; j++) {
                System.out.println(i + "X" +  j +"="+ (i*j));
            }
    	}
    }
}

 

 

 

느낀점

더보기

앞부분 아는데 대충아는듯한 기분이 드는게 몇가지 있다.

나중에 다시 한번 훑고 프로젝트 때 예상치 못한 실수기억 끄집어내서 다시 여러번 반복하자.

추가로 시간이 남으면 다른 언어들과 비교해보는 것도 해보고 싶다.

지금은 시간이 없어서 문서화하는 것과 명확하지 않았던 부분을 다시 재입력시키는것에 바쁘다.

아는건 빠르게 훑고 모르는것 특히 뒷부분 API, 패키지 이런 부분에 더 중점으로 공부해야겠다.

 

REFERECE 

  • 윤성우, 열혈 Java 강의
  • 학원 자료
  • 생활코딩