컴파일 언어(Java,c,c++)

  1. 실행 전 소스코드를 컴파일하여 기계어로 변환 후 해당 파일을 실행
  2. 이미 기계어로 변환된 것을 실행하므로 비교적 빠름
  3. 문법적 제약이 일반적으로 많음
  4. 운영체제에 따라 다르게 작업해야 함

스크립트 언어, 인터프리터 언어(Python,Javascript)

  1. 코드를 작성함과 동시에 인터프리터가 기계어로 번역하고 실행함
  2. 실행 과정 상에 번역 과정이 있어 비교적 느림
  3. 문법적 제약이 일반적으로 적음
  4. 운영체제를 신경 쓸 필요 없이 한 번만 작성하면 됨

final

  • 상수 : 변하지 않는 값(cf변수 : 변하는 값)
  • 상수를 선언 : final 키워드 사용
final double PI = 3.14;
final int MAX_NUM = 100;

final MyClass myObj = new MyClass(1, 2, 3); // {a:1, b:2, c: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)

  1. 묵시적 : 작은 수에서 큰 수로 덜, 정밀한 수에서 더 정밀한 수
  2. 명시적 : 묵시적 반대 방향 / 데이터 유실이 잃어날 수 있다.

++

++num; ;끝나기전에 적용
num++; ;끝나고 적용

int num =10;
System.out.println(++num); //11
System.out.println(num++); //11
System.out.println(num); //12

if(A&&B), if(A||B)

  • if(A&&B) 논리곱 둘다 true일 때 동작하기 때문에 앞A가 false이면 뒤B는 실행(확인)되지않는다.
  • if(A||B) 논리합 하나라도 true이면 동작하기 때문에 앞A가 true이면 뒤B는 실행(확인)되지않는다.
profile
개발 블로그

0개의 댓글