Java7 [JAVA 더 깊게] 자바의 정렬기준 Comparator & Comparable (feat. 함수형 인터페이스) [JAVA 더 깊게] 자바의 정렬기준 Comparator & Comparable (feat. 함수형 인터페이스) Arrays.sort() , 스트림 sorted() 등등을 사용하다보면 심심치 않게 파라미터에 Comparator가 있는걸 알수있다. 정렬과 같은 요소들 사이에 비교가 필요한 곳에 등장한다. Comparator , Comparable 이름도 비슷하고 하는 일도 비슷해 보인다. 이들은 무엇이고 어떻게 활용되는지 알아보자. Comparator & Comparable 인터페이스 public interface Comparator { int compare(Object o1, Objcet o2); boolean equals(Object obj) //필요에 따라 재정의 //기타 default methods.. 2022. 3. 4. JVM 메모리 구조 JVM 메모리 구조 대규모의 프로젝트를 개발해야 할 때 적어도 Java로 개발한다면, JVM메모리 구조에 대한 이해는 필수적이며 기본적으로 알아야 할 개념인 것이다. 메모리관리에 따라 프로그램의 성능은 월등히 차이가 날 수 있으며, 메모리관리를 제대로 하지 못해 성능저하 현상이 일어나는 경우는 보통 33%가 코드를 잘 못짰거나, 메모리에 대한 이해없이 설계를 한 경우다. 생각이상으로 더 중요한게 메모리개념인 것이다. 진정한 자바 개발자라면 꼭 알아둬야 한다 JVM 일전에 JVM(자바 가상 머신)에 대해 정리한적이 있다. 운영체제와 플랫폼에 상관없이 JVM만 있다면 어디서는 JAVA를 동작시킬수있게 해주는 자바의 핵심이다. 자바로 짠 프로그램이 동작하는 순서는 아래와 같다. 1. Java Compiler(.. 2022. 3. 4. 예외처리의 기본 예외처리 시리즈를 다루다가 좀 더 본질적인 부분에 내가 무심했다는것을 깨달았다. 에러, 에러의 종류 ,계층 구조 등등 이번 포스트는 그 기본을 다시 공부한것을 정리해두고자 한다. 프로그램 오류란? 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상 종료되는 경우를 초래하는 원인을 프로그램 에러 또는 오류라고한다. 이 오류는 3가지 종류로 크게 구분할수있다. 컴파일 에러 - 컴파일 시점에 발생하는 에러 런타임 에러 - 실행 시에 발생하는 에러 논리적 에러 - 실행은 되지만 잘못 작성된 로직으로 인해 의도와 다르게 동작하는 것 예외란? 자바같은 컴파일 언어는 컴파일러가 컴퓨터가 알아들을수있도록 개발자 코드를 기계어로 번역하는데, 이때, 컴파일 에러는 컴파일시에 컴파일러가 소스코드(.java) 에 .. 2022. 1. 25. [JAVA 더 깊게] JAVA One Paper [JAVA 더 깊게] JAVA One Paper 객체지향과 자바 객체지향에서는 모든것을 객체로 표현하고 다룬다. 자바는 이러한 객체지향에 유리한 상속,다형성,인터페이스라는 개념을 잘 정립했다. 객체들을 다루기 위한 다양한 라이브러리들을 제공한다. 프로그래밍에 기본 기능을 제공하는 클래스들이 담겨있는 java.lang 패키지 *Object 모든 클래스들의 최고 조상 (기본 상속) clone,equals,hashCode,toString 등 메서드 정의 얕은복사, 주소비교, 주소를 해시값, 해시값반환 으로 기본 정의 되어있음 필요시 하위에서 재정의해야함 ex) 깊은복사,값비교 *String "+" 연산 수행시 새 인스턴스 생성 (별도의 저장공간 및 주소지) Object의 메서드들을 재정의하고있음 (equals.. 2022. 1. 10. 이전 1 2 다음