자바 기초 문법

June Lee·2021년 1월 19일
0

Java

목록 보기
1/23

자바의 특징

  • 운영체제에 독립적(JVM 위에서 돌아감-JVM은 운영체제에 의존적)
  • 확장성이 높음(객체지향언어의 특성)
  • 자동 메모리 관리(Garbage collection)
  • 네트워크와 분산처리 지원, 멀티 쓰레드 지원 (멀티 쓰레드에서 스케줄링은 자바 인터프리터가 담당)
  • 동적 로딩 지원(모든 클래스를 실행 시 로딩하지 않고, 필요한 클래스만 실행 중 필요한 시점에 동적으로 로딩함)
  • 소스 코드를 자바 컴파일러가 일차적으로 컴파일하여 클래스 파일을 만들고, 이를 자바 인터프리터가 한 줄 씩 해석하여 실행

식별자와 키워드

  • 식별자: 개체를 구별하기 위한 이름
  • 키워드: abstract, boolean, final과 같이 변수 이름을 붙일 때 사용할 수 없는 자바의 예약어

Primitive Type(기본형)

  • byte, short, int, long, float, double, boolean, char
double a = 3.14f;

이면 3.14f가 double로 묵시적 형변환이 됨

  • double, float 같은 실수형은 늘 계산 중에 오차가 조금씩 생길 수 있음
  • char는 한 글자의 문자, String은 문자열인데 String은 primitive type이 아니라 클래스임 (따라서 String은 괄호()를 이용한 형변환도 불가. 클래스의 메소드를 사용해야함)
String str = new String("ABC"); // 원래는 이렇게 해야함
-> 따라서 문자열은 String 객체임.
-> 문자열 출력은 System.out.println(str.toString());
메서드가 생략된 것. 이때 toString은 Object 클래스의 
toString을 오버라이딩한 것.

Reference Type(참조형)

  • 객체의 주소를 저장

타입 간의 형변환 규칙

  • 데이터를 최대한 손실하지 않는 방향으로(큰 데이터를 담을 수 있는 데이터 타입으로) 형변환이 됨.
  • String과 연산하면 다 문자열이 됨
  • 3 + '0' = 3
  • '3' - '0' = 3
  • 3 + 4 + "=result" => "7=result"

=> 형변환 규칙에 따라 변환되면 묵시적 형변환.
그걸 거스르고 강제로 캐스팅해주는게 명시적 형변환.


Constant(상수)

변경할 수 없는 값. final 키워드가 붙음.

Literal

12, 123, 3.14, 'A' 등 final이 붙거나 붙지 않은 모든 값

기본 리터럴

정수 - int
실수 - double
'' - char
"" - String
true/false - bool
=> 따라서 float는 실수에 명시적 형변환을 위한 (float) 혹은 f를 붙여 캐스팅해주어야 함.


전치 증감자와 후치 증감자

int b1 = 20;
int b2 = b1++; 

int b3 = ++b1;

증감자는 자기 자신을 증가시키므로 b1는 항상 20.
b2 = 20
b3 = 21

int b1 = 20;
System.out.println(b1++);

b1은 1 증가했지만 증가하기 전에 출력하므로 b1은 20

&와 && 차이

&&의 경우 앞이 false이면 뒤에 것은 검토하지 않는다.

profile
📝 dev wiki

0개의 댓글