본문 바로가기

전체 글118

오토박싱 & 언박싱 오토박싱 & 언박싱 자바에는 기본 타입과 Wrapper 클래스가 존재한다. Object를 상속받는 Number를 상속받는다. 기본 타입 : int, long, float, double, boolean 등 Wrapper 클래스 : Integer, Long, Float, Double, Boolean 등 Wrapper 클래스는 기본타입을 감싸는 클래스로 산술연산이 불가능하다. 그런데 여러 작업을 하다보면 Wrapper 클래스도 산술이 가능한것처럼 보인다. 사실은 자바가 컴파일러가 알아서 박싱과 언박싱 과정을 통해 산술작업을 시행하는것이다. 박싱 & 언박싱 박싱 : 기본 타입 데이터에 대응하는 Wrapper 클래스로 만드는 동작 언박싱 : Wrapper 클래스에서 기본 타입으로 변환 // 박싱 int i = 1.. 2022. 3. 7.
[JAVA 더 깊게] Stream(feat. 함수형 인터페이스 & Comparator) Stream(feat. 함수형 인터페이스 & Comparator) 개요 서비스를 진행하다보면 데이터 군집(고객리스트,신청자 리스트 등)을 가지고 가공해서 서비스를 완성시켜야 하는 경우가 아주 많다. 이밴트 참여자 객체 군집들을 150점 이하는 제거하고 제거된 군집중 랜덤으로 3명 뽑기 등등 이런경우 반복문과 다양한 변환작업을 피할수가없다. 작업이 많을수록 코드의 가독성은 심각해진다.. 스트림은 이럴때 꼭 필요한 기능이다. 전과 달리 이제는 기능도 많이 향상되서 빠르게 처리된다고한다. 그리고 코테에서도 입력리스트를 다룰때 효과적으로 사용할수있다. 스트림은 수많은 라이브러리들의 조합으로 엄청난 기능들을 만들어낼수있다. 그만큼 숙련도가 요구되는 부분이다. Stream이란? 자바에서 많은 수의 데이터 군집을 다.. 2022. 3. 7.
[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.