컴파일 언어(Java,c,c++)
- 실행 전 소스코드를 컴파일하여 기계어로 변환 후 해당 파일을 실행
- 이미 기계어로 변환된 것을 실행하므로 비교적 빠름
- 문법적 제약이 일반적으로 많음
- 운영체제에 따라 다르게 작업해야 함
스크립트 언어, 인터프리터 언어(Python,Javascript)
- 코드를 작성함과 동시에 인터프리터가 기계어로 번역하고 실행함
- 실행 과정 상에 번역 과정이 있어 비교적 느림
- 문법적 제약이 일반적으로 적음
- 운영체제를 신경 쓸 필요 없이 한 번만 작성하면 됨
final
- 상수 : 변하지 않는 값(cf변수 : 변하는 값)
- 상수를 선언 : final 키워드 사용
final double PI = 3.14;
final int MAX_NUM = 100;
final MyClass myObj = new MyClass(1, 2, 3);
myObj = new MyClass(1, 5, 3);
myObj.a = 123;
- final로 선언된 상수는 다른 값을 대입 할 수 없음 / 재할당을 할 수 없다.
PI=3.15;
- 프로그램 내에서 변경되지 말아야 하는 값을 상수로 선언 해 두고 혹시 변경되는 경우
선언된 값만 수정
literal
- 리터럴 : 프로그램에서 사용하는 모든 숫자, 값, 논리 값
ex)10,3.14,'A',true
- 리터럴에 해당되는 값은 특정 메모리 공간인 상수 풀(constant pool)에 있음
필요한 경우 상수 풀에서 가져와서 사용
- 상수 풀에 저장 할때 정수는 int로 실수는 double로 저장
따라서 long이나 float 값으로 저장해야 하는 경우 식별자(L,l,F,f)를 명시해야 함
형 변환(type conversion)
- 묵시적 : 작은 수에서 큰 수로 덜, 정밀한 수에서 더 정밀한 수
- 명시적 : 묵시적 반대 방향 / 데이터 유실이 잃어날 수 있다.
++
++num; ;끝나기전에 적용
num++; ;끝나고 적용
int num =10;
System.out.println(++num);
System.out.println(num++);
System.out.println(num);
if(A&&B), if(A||B)
- if(A&&B) 논리곱 둘다 true일 때 동작하기 때문에 앞A가 false이면 뒤B는 실행(확인)되지않는다.
- if(A||B) 논리합 하나라도 true이면 동작하기 때문에 앞A가 true이면 뒤B는 실행(확인)되지않는다.