
static 과 JVM 메모리 모델을 이해해보자!
2024. 9. 1. 00:13
Language/Java
객체지향 프로그래밍 시작하기Static 과 메모리의 관계를 알아보도록 해보자이 글의 목표는 static 키워드와 메모리 관계에 있어서 이해를 돕고자 또한, JVM 에 사용하는 메모리 모델을 통해 자바 프로그래임이 어떤식으로 동작하는지에 대한 원리를 학습하는것을 목표로 합니다. 1. static 과 메모리의 관계2. static 멤버 들의 접근 방법3. private 생성자와 static과의 관계4. JVM 이 상요하는 메모리 영역5. class, object, instance의 상호관계 1. static 과 메모리의 관계메인(시작) 클래스는 왜 객체 생성(new)없이 실행이 되나요?public class StaticTest { public static void main(String[] args) {..
컬렉션 API 개선 - modern java in action
2024. 6. 18. 19:52
Language/Java
큰틀에서 챕터 8은 아래와 같은 내용을 공유한다.컬렉션 팩토리 사용하기리스트 및 집합과 사용할 새로운 관용 패턴 배우기맵과 사용할 새로운 관용 패턴 배우기앞서, Modern Java in Action 에서는 챕터 8~10 까지는 Part 3으로 ‘스트림과 람다를 이용한 효과적 프로그래밍’ 으로 분류를 합니다.책의 저자는 ‘컬랙션 API 가 없었다면 자바 개발자의 삶은 많이 외로웠을 것’이라고 표현합니다.책에서 표현 하듯이, 거의 모든 자바 애플리케이션에서 컬렉션을 사용하고, 지금까지 컬렉션과 스트림 API를 이용해 데이터 처리 쿼리를 어떻게 효율적으로 처리할 수 있을지 살펴보려고 합니다.컬렉션 API 에는 성가시고, 에러를 유발하는 여러 단점이 존재합니다.챕터 8에서는 자바 8,9 에서 추가되어 우리의 ..
멀티 쓰레드 이용 - 자바 달력 시간 변경 코드
2023. 12. 6. 13:49
Language/Java
멀티 쓰레드 이용해서 자바 달력 코드 변경 하는 구문입니다. 예시 ) 50개의 스레드 를 이용해서 for 문을 돌릴때 50개의 순서대로 시간이 상승하는 코드입니다. 50개가 같은 시간으로 값을 보내는게 아닌 한개의 스레드마다 대략 26개의 데이터를 00:00:00 개의 넣고 차례대로 1초씩 상승해서 데이터를 넣습니다. private static final String FORMAT_STRING = "yyyy-MM-dd HH:mm:ss"; private static final AtomicInteger sharedCounter = new AtomicInteger(0); private static volatile String startDateString = "2021-10-01 00:00:00"; //시간이 다..
스트림 Stream 을 사용하는 이유 - Modern Java in Action
2023. 10. 2. 20:43
Language/Java
자바 8은 데이터베이스 질의 언어에서 표현식을 처리하는 것처럼 병렬 연산을 지원하는 스트림이라는 새로운 API 를 제공한다. 데이터베이스 질의 언어에서 고수준 언어로 원하는 동작을 표현하면, 구현(자바에서는 스트림 라이브러리가 이 역할을 수행) 에서 최적의 저수준 실행 방법을 선택하는 방식으로 동작한다. 즉, 스트림을 이용하면 에러를 자주 일이키며 멀티코어 CPU 를 이용하는 것보다 비용이 훨씬 비싼 키워드 synchronized를 사용하지 않아도 된다. 더보기 멀티코어 CPU의 각 코어는 별도의 캐시(빠른 메모리) 를 포함하고 있다. 락을 사용하면 이러한 캐시가 동기화되어야 하므로 속도가 느린 캐시 일관성 프로토콜 인터코어 통신이 이루어진다. 조금 다른 관점에서 보면 결국 자바8에 추가된 스트림 API..

Modern Java in Action - Reviews(모던 자바 인 액션 - 리뷰)
2023. 10. 2. 20:28
Language/Java
안녕하세요, 늘 부족하고 배움을 갈구하는 2년차 백엔드 개발자 던킨 입니다. 오늘 Modern Java in Action 책을 사고 읽으면서 좋은 내용들이 많아 리뷰를 하려고합니다. 많은 개발자 분들이 이미 이 책에 관련해서 리뷰와 함께 많은 리소스를 공유 해주었다고 해도 과언이 아니지만, 저 또한 이 책에 푹 빠져있는 독자로써 또한, 제 블로그를 찾아오시는분들을 위해 짧게 나마 잘 정리 해서 공유드리고 싶어 리뷰를 시작했습니다. '함수형 프로그래밍은 뭔가요?' - 함수형 프로그래밍은 프로그래밍 기법을 지칭한다. 함수형 프로그래밍에서는 함수를 값으로 취급한다. 자바 8의 놀라운 점은 함수형 프로그래밍의 여러 장점을 친숙한 자바 문법으로 접목했다는 것이다. 훌룡한 자바 8의 설계 덕분에 함수형 프로그래밍을..