In this post, we're going to look at Inner Class concept.I decided to start write this post because when i was studying Builder design pattern, i kept seeing Inner Class or Outer Class Or Nested Class etc. In this posting, i'll tell you a little of Inner Class, not deep dive version. There are 4 main types of Inner Class. 1. Member Inner Class2. Method-Local Inner Class3. Static Nested Class4. A..
생각해보니까, 자바를 공부한다는 놈이 Javac, JVM, JDK 개념을 집고 넘어가지 않은 것같다... ■ Javac (Java Compiler) → 자바 소스코드(.java)를 바이트코드(.class)로 변환해주는 컴파일러 Javac는 단순히 자바 소스코드를 바이트코드를 변환해주는 것이 아닌, 타입 체크, 문법 검사, 바이트 코드 생성 등의 복잡한 과정을 거친다고 한다. 또, 여기서 말하는 바이트 코드는 뭘까? 그냥 0101010이런 바이너리 코드일까? 정답만 말하자면, JVM이 읽기 위한 코드이다. 다른 언어(예를 들자면 C..?)는 컴파일 과정을 거치면 CPU가 읽기 위한 바이너리 코드(011100100100같은)로 변환되지만,자바에서는 JVM이 실행하기 위한 코드로 컴파일 된다. (물론 010..
■ 자바에서 배열은 참조형(reference type)이기 때문에,배열 요소를 비교하기 위해서는 equals메서드를 써야한다. import java.util.Arrays;int[] a = {1, 2, 3};int[] b = {1, 2, 3};System.out.println(Arrays.equals(a, b)); 그리고, 배열 속의 요소가 null인지 확인할 때는 ==를 사용하여야한다. ■ 그리고 배열 속의 null을 비교하기 위해서는, 뭔가, 값 비교를 위하여 equals를 사용하여야 할 것 같지만, == 를 사용하여야한다. 그 이유를 알아보기 위해서, null에 대해서 알아보도록 하자. 자바에는 기본형과 참조형 변수가 있다. ( 자바에서는 기본형 8가지 int, double, boolean 등을 ..
public void progressTurn(Monster[] monsters) { switch (monsters.length) { case 10 -> movingMonster(); case 9 -> movingMonster(); case 8 -> movingMonster(); case 7 -> movingMonster(); default -> throw new RuntimeException("asdfsadf"); }} switch expression은 다음과 같이 이런 형태로 사용한다. 여기서 더 발전한 예제를 가지고 왔다.String result = switch (grade) ..
규칙 부터 정리하자. Checked Exception 리턴 → 메서드 선언부에 throws 추가!!Unchecked Exception 리턴 → 메서드 선언부에 throws 추가할 필요 XX이유 : Checked Exception은 처리를 강제해야하고, Unchecked Exception은 선택적으로 처리하기 때문!( 그렇기 때문에 Checked Exception는 호출한 곳에서 반드시 예외를 처리하라고 throws를 달아주는 것! ) public Object[] getEachWaveMonsters(Integer stage, Integer wave) { switch (wave) { case 1 : return new Object[8]; ..
내가 실수한 코드부터 보자. ( 압축시켰다. )public Object[] getEachWaveMonsters(Integer stage, Integer wave) { switch (wave) { case 1 : return Object[] stage1Wave1Monster = new Object[8]; case 2 : return Object[] stage1Wave2Monster = new Object[8]; } // 생략} 지금 이 코드는 문법적으로 틀렸다. return을함과 동시에, 객체를 생성하라는거야, 반환하라는거야!! 라고 자바는 받아들이기 때문이다. ( 물론 모든..