책에서 본 문법들 중 내가 잘 몰랐던 부분이나 확실하게 알지 못했던 부분만 요약하겠다.
식별자
식별자란 클래스,변수,상수,메소드 등에 붙이는 이름이다.
식별자로 사용할 수 없는것 : 특수문자('_','$'는 제외), 공백(tab,space), 자바 키워드 , 첫 번째 문자로는 숫자 사용 불가
식별자 붙이는 관습
클래스 : 첫 번째 문자는 대문자로 시작하고 여러 다른 단어가 복합되면 각 단어의 첫 번째 문자만 대문자(ex. AutoVendingMachine)
변수 메소드 : 첫 단어는 소문자로 표기하고 각 단어의 첫 번째 문자만 대문자로 표기한다.(ex. int myAge, boolean isSingle)
상수 : 상수는 이름 전체를 대문자로 표기 (ex. final double PI)
데이터 타입
• 기본 타입 9가지
1. boolean(논리타입)
- true ,false = 1byte
2. char(문자타입)
- java에서는 영어나 한글 모두 1글자에 2byte임으로 char의 크기는 2바이트이다.
3. byte(정수)
- 1byte (-127~127)
4. short(정수)
- 2byte (-32768~32767)
5. int(정수)
- 4byte (〖−2〗^31~2^31)
6. long(정수)
- 8byte (〖−2〗^63~2^63)
7. float(실수)
- 4byte (-3.4E38~3.4E38)
8. double(실수)
- 8byte(-1.7E308~1.7E308)
변수
- S를 다양한 진법으로 나타내기
8진수 : 0S
16진수 : 0xS
2진수 : 0bS- Long 타입으로 지정하려면 지정자 뒤에 L또는 l을 붙인다.
- 숫자 뒤에 f나 F를 붙이면 float, d나 D를 붙이면 double 타입으로 강제 변환할 수 있다.
- 특수문자 리터럴은 이스케이프 시퀸스라고도 하며 백슬래시(\) 다음에 특수 기호를 붙여서 표현한다.
- 기본 타입에는 null값을 저장할 수 없다.
- java10부터는 변수 타입을 생략하고 var키워드를 사용하면 자동으로 타입이 정해진다.(단 지역변수만 사용가능)
- 강제 변환을 캐스팅(casting)이라고도 부른다.
입력
- Scanner, 혹은 다른 입력 클래스 사용시 hasNext() 메소드는 입력된 토큰이 있으면 true, 없으면 입력 때까지 무한정 대기하고 있다가 새로운 입력이 들어올 때 True를 리턴한다. ctrl+z or d 키가 입력되면 입력이 끝나므로 false를 리턴한다.
연산
- 연산자 우선순위
- 조건 연산자
조건 연산자는 3개의 피연산자로 구성되어 삼항 연산자라 한다.
형식 : 조건(condition) ? opr2(조건문이 true이면 opr2반환) : opr3 (조건문이 false면 opr3 반환)- 증감 연산자
Switch 문
- Switch 문은 식을 계산하고 그 결과 값이 일치하는 case문으로 분기한 후 그 case의 실행 문장을 실행한 후 break를 만나면 switch문을 벗어난다. Case문으로 분기하지 못하는 경우 default 문으로 분기하여 실행문장 n을 실행한다. Default 문은 생략 가능하며 실행 문장은 {}을 둘러싸지 않아도 된다.
- Switch 문에서 break를 쓰지 않는다면 다른 case의 실행문장도 실행 가능하기 때문에 break를 써야한다.
- case 문의 값은 정수 리터널, 문자 리터널, 문자열 리터널만 허용한다.(변수, 식, 실수는 사용 불가)
배열
- for-each 문
기존의 for문을 변형하여 배열의 크기만큼 루프를 돌면서 각 원소를 순차적으로 접근하는데 유용하게 만든 for문
형식 : for( 변수 :변수 레퍼런스){ 반복 작업문 }- 비정방형 배열
정방형 배열이란 각 행과 열의 개수가 모두 동일한 배열을 말한다.
비정방형 배열이란 행마다 열의 개수가 서로 다른 배열을 말한다.