1.
- x++ : 후위연산자 -> 값을 들고온 후에 연산
- ++y : 전위연산자 -> 연산을 한 후에 값을 가져옴
2.
- k = (j = j+i)/5 =6
- j = j + i = 30
3.
- Instant : machine time에 유용한 1970년 1월 1일부터 시간을 세는 클래스 (millisecond 뿐만 아니라 nanosecond까지 센다)
- LocalDate : [년,월,일]과 같은 날짜만 표현하는 클래스 (시간은 포함하지 않는다)
- LocalDateTime : [년,월,일,시,분,초]를 표현하는 클래스 (LocalDate와 함께 가장 많이 쓰이는 클래스가 될 것 같다)
- LocalTime : [시,분,초]와 같이 시간만 표현하는 클래스
LocalDate localDate = LocalDate.of(2017, 1, 31);
LocalTime time = LocalTime.of(10, 5, 40);
LocalDate -> String
LocalDate.of(2020, 12, 12).format(DateTimeFormatter.BASIC_ISO_DATE);
- DateTimeFomatter '문자열로 포맷팅'
4.
- do-while문 :
do{
수행할 문장}
while(조건문);
- do-while문은 조건문 확인전에 do부분의 수행문을 일단 수행하고 조건을 따진다.
- 따라서
idx는 do문에 의해 1로 증가한 후 조건식에 들어간다.
1 < 2 참을 만족하므로 do문을 한번 더 실행해서 2로 증가한다. 2 < 2 가 거짓이므로
do-whild문을 빠져나온다.
출력문에서 stack[2]를 출력하므로
30이 출력된다.
5.
- throw new IOException(); // 예외발생시키기
: 프로그래머가 원하는 위치에 고의로 예외를 발생시킨다.
- try-catch 또는 throws를 이용해서 예외가 발생할 경우 처리 방법에 대해 알려줘야 에러없이 throw new IOException()을 사용할 수 있다.
- 컴파일이 제대로 되는지 확인해보기위해서
예외발생시 예외메세지를 콘솔프린트해본다.
- e.getMessage() : 에러의 원인을 간단하게 출력
- e.toString() : 에러의 Exception 내용과 원인을 출력
- e.printStackTrace() : 에러의 발생근원지를 찾아서 단계별로 에러를 출력
- e.getMessage()는 에러의 원인이 되는 부분을 출력해주고 e.toString은 에러의 내용과 원인이 되는 부분을 출력한다.
따라서, 예외의 이름이 null일경우 getMessage는 null에서 에러발생이 되었다. 라고 나오고
toString은 null에서 에러발생이 되었고, 그 에러의 내용이 java.io.IOException 이다.