본문 바로가기

Java4

[Java] GC, Garbage Collector 자바 가바지 컬렉터, 가비지 컬렉터 C언어를 공부하다 보면 개발자가 free() 등의 함수로 명시적으로 메모리에 접근을 해서 직접 메모리 할당 해제를 한다. 메모리 관리는 C뿐만 아니라, 다른 언어도 다 필요하지만 자바에서는 한 번도 메모리 관리를 해준 적이 없지만 잘된다. 바로 그 이유는 GC(Garbage Collector) 때문이다. 자바는 기본적으로 Automatic Memory Management 언어로 개발자가 메모리 관리를 해주지 않아도 자동으로 메모리를 관리해주는 언어이며, 개발자가 메모리에 대한 제어 권한조차 없다. 1. GC 가비지 컬렉터는 뭐고 가비지는 또 뭐야? 자바에는 쓰레기가 존재한다. 바로 객체이다. String str = new String("쓰레기"); 객체가 만들어지고 메모리를 점유하고, 더 이상 이 객체가.. 2024. 1. 29.
[Java] String +연산과 StringBuffer, StringBuilder 자바를 공부하거나 프로그래밍할 때 String은 비용(Cost)이 높아! 라는 말을 들어본 적이 있을 거다. 혹은 백준, 프로그래머스 문제를 풀다 보면 String으로 문제를 풀었을 땐 시간초과가 나거나 통과가 되지 않는다. 하지만 StringBuffer나 StringBuilder를 이용하면 문제가 풀리는 경험을 한 적이 있을 거다. 바로 알아봅시다~! [Java/String] - [Java] String 클래스와 ==, equals의 차이점 String에 대해선 위의 글 읽어보기~! 1. + 연산자를 통한 문자열 합치기 String 클래스의 + 연산자는 어떻게 동작할까? String str = "Hello"; str += " Java!"; JDK 5버전부터 StringBuilder가 추가되면서 Stri.. 2024. 1. 18.
[Java] String 클래스와 ==, equals의 차이점 기본형(Primitive)처럼 사용되는 String클래스에 대해서 알아보자. 1. String클래스 기본형 vs 참조형 int num = 10; String str = new String("This is String"); `String 클래스`는 기본형(Primitive type)인 int, double, char와 다르게 참조형이다(Reference type). 하지만 워낙 선언 자체를 리터럴을 이용한 방식을 많이 사용하기 때문에 기본형으로 헷갈리기 십상이다. 첫 글자가 소문자인 자료형은 기본형 타입밖에 없다. 고로 String은 참조 자료형이다. String클래스의 참조변수는 직접 값을 저장하고 스택영역에 존재하는 기본형과는 다르게 객체와 같이 메모리 상의 힙 영역에 저장되어 객체주소가 변수에 저장된.. 2024. 1. 16.
Java 스트림(Stream)이란? Stream API 자바에서는 많은 양의 데이터를 그룹화하고 처리하는 우리의 편리를 위해 컬렉션(Collections)이라는 기능을 인터페이스로 정의하고 제공하고 있다. 즉 우리가 자주 사용하는 자료구조를 미리 정의하고 사용하기 편리하게 제공된다. 하지만 SQL쿼리와는 다르게 반복자, 누적자 등을 사용하여 관리하기 때문에 다소 코드의 간결성, 가독성이 떨어질뿐더러 데이터를 가공하고 적용시킬 때 구체적인 필터링 조건(반복자, 누적자를 사용해야 함)을 명시해야 한다. 이에 반해 SQL쿼리는 SELECT name FROM students WHERE grade > 80; 위의 예시처럼 쿼리문을 어떻게 방식으로 구현해야 할지 명시할 필요가 없으며 자동으로 구현해 준다. SQL쿼리 자체에서 우리가 기대하는 것이 무엇인지 직접 표현이 .. 2024. 1. 9.