목록개발공부/Java (5)
발전하는 개발자가 되자
JVM과 GC JVM 이란? GC 란? JVM (Java Virtual Machine) 이란 자바 버추얼 머신으로 자바 프로그램이 컴파일 되고 class 파일이 만들어지면 그 클래스 파일을 기계어로 변화시키고 하는 명세 cpu 나 운영체제의 종류에 무관하게 동작한다 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할을 한다. JVM 메모리 구조 Method area, Heap area, Stack area, PC Register , Native method stack Method area : 상수, 메소드 클래스 코드가 적제되는 영역 Heap area : new Car 와 같이 실제 객체, 전역변수 등이 적제되는 ..
SRP (단일책임의 원칙: Single Responsibility Principle) 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임(변화의 축: axis of change)을 수행하는 데 집중되어 있어야 한다는 원칙입니다. 이는 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 함을 의미합니다. SRP원리를 적용하면 무엇보다도 책임 영역이 확실해지기 때문에 한 책임의 변경에서 다른 책임의 변경으로의 연쇄작용에서 자유로울 수 있습니다. 뿐만 아니라 책임을 적절히 분배함으로써 코드의 가독성 향상, 유지보수 용이라는 이점까지 누릴 수 있으며 객체지향 원리의 대전제 격인 OCP원리뿐 아니라 다른 원리들을 적용하는 기초가 됩니다. 이 원리는 다른 원리들에 비..
equals 와 == 차이 면접을 보다 equals 와 == 의 차이를 설명해달라는 질문을 들었다. 정말 쉬운 질문 하지만 나는 면접에서 대답을 하지 못했다. 왜 그럴까? 고민을 해보니 머리로는 이해 했지만 머리속의 내용을 풀어 말로 표현 하려니 정리가 안되서 그랬던거 같다. equals() 와 == 는 무슨 차이가 있을까? == 는 객체의 주소값을 비교하게 된다. 그래서 같은 값이라도 주소값이 다르게 되면 다르다고 나온다. 따라서 == 은 int 와 같은 Primitive Type 을 비교할 때 사용한다. equals() 는 개발자가 정의한 논리적인 비교를 하게 된다. import org.junit.Test; import java.util.Objects; import static org.assertj...
HashMap 이란 map 인터페이스 한 종류 hashing 을 사용하기 때문에 데이터 검색에 빠르다. key 와 value로 이루어져 있다. HashMap 메소드 정리 나중에 새롭게 알게된거 추가하자. public int size() map 의 size 출력 public boolean isEmpty() map 사이즈가 0 인지 boolean 값 return public boolean containsKey(Object key) key 값을 map 이 가지고 있나 확인 public V put(K key, V value) key 와 value map에 put public V remove(Object key) map 에서 제거 public V getOrDefault(Object key, V defaultVal..
자바에 대해 공부하고 정리한것 모음 0927까지 정리 서식 특수 문자 \t: 탭 \n: 줄 바꿈 \': 작은 따옴표 \": 큰 따옴표 \\: 역슬래쉬 서식 문자 출력시 서식 문자를 이용 하여 간단하게 표현할 수 있다. %d: 10진수 %o: 8진수 %x: 16진수 %c: 문자 %s: 문자열 %f: 실수 ex int num = 10; System.out.printf("이런식 으로 사용 %d 하하",num); 연산자 산술연산자, 논리연산자, 삼항연산자, 비트연산자 등이 있다. 산술 연산자 ==, *, /, +, - == 연산자는 주소값을 비교 문자열 비교할 땐 equals() 사용하자 삼항연산자 : 조건식? 식1 : 식2 조건이 참이면 식1이 실행되고 조건이 거짓이면 식2가 실행된다. int x = 10; ..