[JAVA] GC(Garbage collector, Garbage collection)
Web_Backend/Java2023. 6. 15. 13:22[JAVA] GC(Garbage collector, Garbage collection)

GC(Garbage collector)란? 📌 자바의 메모리 관리 방법 중 하나로 JVM의 Heap 영역에서 불필요한 메모리를 주기적으로 삭제하는, 즉 Garbage collection을 해주는 프로세스를 말함. Mark and sweep과 Stop The World를 통함. JAVA에서 객체들은 실질적으로 Heap영역에 생성되고 Method Area나 Stack Area, Root Area에서는 Heap에 생성된 객체의 주소만 참조하는 형식 GC의 대상 Heap 영역에 있는 객체들 중 어디서든 참조하고 있지 않는 (Unreachable한) 객체 GC의 대상 개발자가 메모리 관리, 메모리 누수(Memory Leak)에 대해서 완벽하게 관리하지 않아도 되며, 개발과 비즈니스 로직에만 더 집중할 수 있음 J..

Web_Backend/Java2023. 5. 26. 14:44[JAVA] Stream API

Java Stream API 💬 Java Stream API란 무엇인가요? ✅ (정리 중) Stream API란? 📌 데이터를 추상화하고, 처리하는데 자주 사용되는 함수를 정의해 둔 것. JAVA JAVA는 객체지향 언어이기 때문에, 기본적으로 함수형 프로그래밍이 불가능하다. 하지만 JAVA8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 JAVA를 지원함으로써 함수형으로 프로그래밍을 할 수 있는 API들을 지원해주고 있다. 그중에서 Stream API는 위에 설명했듯이 데이터를 추상화하고 처리하는 데 사용된다. 즉, 데이터의 종류에 상관없이 같은 방식으로 데이터를 처리할 수 있다는 것을 의미하며, 그에 따라 코드의 재사용성을 높일 수 있다. 예시 코드 Stream 활용 전 : 원본..

Web_Backend/Java2023. 3. 19. 20:35[JAVA] String, String Builder, String buffer 차이

JAVA에서 문자열을 다루는 대표적 클래스 - String : 문자열에 대한 연산이 적을 때, 멀티스레드 환경일 경우. - String Buffer : 문자열 연산이 많고, 멀티쓰레드 환경일 경우. - String Builder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우. 1. String - String은 '불변(immutable)'속성을 지님. 따라서, 문자열 수정 시점에 새로운 String 인스턴스가 생성. String str = "hello"; //"hello" 메모리 주소 aaaa str += " world"; //"hello world" 메모리 주소 bbbb(aaaa -> GC의 제거대상) ㄴ 위의 예시에서 볼 수 있듯이 String 문자열의 연산을 진행할 경우..

[초보 개발자의 도서 리뷰] "곁에 끼고 자주 찾아볼 자바 교보재" 코딩 개념 잡는 자바 코딩 문제집
Web_Backend/Java2022. 12. 2. 17:01[초보 개발자의 도서 리뷰] "곁에 끼고 자주 찾아볼 자바 교보재" 코딩 개념 잡는 자바 코딩 문제집

"코딩 실력은 연습이다" "문법+라이브러리로 코딩 문제를 해결한다" "코딩 테스트가 아니라 현장의 문제를 담았다" 책의 커버에 써진 문구들과 같이, 이 책은 이미 자바 문법을 배운 '자바 중급자 이상'을 위한 책이다. 자바 기본 문법을 익힌 후 웹 개발 프로젝트를 진행하며, 기업의 코딩테스트를 자바 언어로 준비하고있는 본인에게는 가장 적합한 자바 교보재였다고 생각한다. 코딩테스트 문제를 풀다가 '중복되는 문자열 찾기' '중복되지 않는 첫번째 문자열 찾기' 등 특정한 기능(문제 해결) 부분만 자바로 구현하기 어려워 막힌 경우 해당 기능(문제해결) 구현만 검색하기는 어려워 결국 문제 전체에 대한 해답 코드를 올려놓은 블로그 글을 참조하여 연습하기에 혼자서 도움없이 문제 전체를 해결하는 연습을 하기 어려운 점..

2022. 1. 31. 19:36[Java의 정석] 08 예외처리(Exception Handling)

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2022. 1. 13. 09:14[Java의 정석] 07.06-07.08 객체지향 프로그래밍Ⅱ(3) - 추상클래스(abstract class), 인터페이스(interface), 내부클래스(inner class)

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2022. 1. 10. 13:03[Java의 정석 ] 07.04-07.05 객체지향 프로그래밍Ⅱ(2) - 제어자, 다형성

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2022. 1. 10. 13:01[Java의 정석 ] 07.01-07.03 객체지향 프로그래밍Ⅱ(1) - 상속, 오버라이딩, package와 import

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2022. 1. 9. 05:40[Java의 정석 ] 06.04-06.06 객체지향 프로그래밍Ⅰ(2)- 오버로딩, 생성자, 변수의 초기화

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2022. 1. 9. 03:59[Java의 정석 ] 06.01-06.03 객체지향 프로그래밍Ⅰ(1)- 클래스, 객체, 변수, 메서드

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2022. 1. 8. 21:34[Java의 정석 ] 05.03 배열(array) (2) - 다차원 배열

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2022. 1. 8. 21:33[Java의 정석 ] 05.01-05.02 배열(array) (1) - String

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

image