참조의 의미와 자바의 GC(가비지컬렉터)가 어떻게 동작하는지 초보자의 시점에서 알아보자 참조(Reference)란? 어떤 객체를 가리키고 있다는 뜻 - 객체의 주소를 기억해서 그 객체에 접근할 수 있게 해주는 역할 예시 ) public class Example { public static void main(String[] args) { Person person = new Person(); // 'person'은 Person 객체를 참조하고 있음 person.setName("John"); Person anotherPerson = person; // 'anotherPerson'도 같은 Person 객체를 참조함 ..
자바의 메모리 구조중에 Stack 영역과 Heap 영역에 대해서 알아보자 Stack 영역 각 메소드가 호출될 때마다 그 메소드 내에서 사용되는 지역 변수(로컬 변수)들이 저장됨메소드가 끝나면 그 메소드에 대한 스택 영역은 사라짐일시적인 데이터들(메소드 실행 중에만 유효한 데이터)을 저장하는 공간빠르게 접근 가능 public class Example { public static void main(String[] args) { int x = 10; // Stack에 저장되는 지역 변수 int y = 20; // Stack에 저장되는 지역 변수 int sum = add(x, y); // Stack에 메소드 호출 정보 저장 System.out.prin..
InterruptedException Java 에서 멀티스레딩을 다룰 때 발생할 수 있는 예외중 하나 스레드가 interrupted 되었을 때 발생하며, 스레드가 일시적으로 멈추거나 작업을 중단해야할 때 사용됨 InterruptedException 을 발생시키는 예외 public class InterruptExample { public static void main(String[] args) { Thread myThread = new Thread(() -> { try { for (int i = 0; i < 5; i++) { System.out.println("Working " + i); Thread.sleep(1000); // 스레드를 1초간 일시 정지 } } catch (InterruptedExcept..
클래스와 객체의 차이점을 말하라고 하면 뭐라고 말할 수있을까? 먼저 '인스턴스화(Instantation) 여부'에 대해 말할 수 있다. 클래스는 객체를 만들기 위한 청사진이고, 객체는 그 클래스의 인스턴스이다. 클래스는 데이터 및 메서의 틀을 제공하며, 객체는 이러한 틀을 기반으로 실제 메모리에 할당된 것이다.객체는 클래스의 인스턴스로, 클래스에서 정의된 속성과 메서드를 실제 값과 동적으로 구현한다.객체는 클래스의 인스턴스이기 때문에 여러 객체를 만들어 사용할 수 있다객체는 클래스의 인스턴스이지만 클래스 자체로는 직접적으로 데이터를 담거나 메서드를 실행할 수 없다 그렇다면 인스턴스화되었다는 것을 다음과 같이 정의할 수 있다. 인스턴스화인스턴스화는 클래스로부터 객체(인스턴스)를 생성하는 과정을..
Arrays.copyOfRange() Java 에서 배열을 복사하는 메서드 중 하나 원본 배열에서 지정한 범위 내의 요소들을 새로운 배열로 복사할 수 있음 public static T[] copyOfRange(T[] original, int from, int to) original : 복사할 원본 배열 from : 복사를 시작할 인덱스 (포함) to : 복사를 종료할 인덱스 ( 포함하지 않음 ) [ 예제 ] import java.util.Arrays; public class CopyOfRangeExample { public static void main(String[] args) { int[] originalArray = {1, 2, 3, 4, 5}; // 1번 인덱스부터 3번 인덱스까지 복사 int[]..
parse 메서드 : 문자열을 다양한 타입으로 변환하는 메서드 Integer.parseInt(String s): 문자열을 정수로 변환합니다. 예를 들어, "123" 문자열은 123 정수로 변환됩니다. 변환 중에 문자열이 올바른 숫자 형식이 아니라면 NumberFormatException이 발생합니다. Double.parseDouble(String s): 문자열을 배정밀도 부동 소수점 숫자로 변환합니다. 예를 들어, "3.14" 문자열은 3.14 배정밀도 부동 소수점 숫자로 변환됩니다. 변환 중에 문자열이 올바른 숫자 형식이 아니라면 NumberFormatException이 발생합니다. Boolean.parseBoolean(String s): 문자열을 논리값으로 변환합니다. 대소문자를 구분하지 않고, "t..
|| 과 && " 단축 평가( Short-circuit evaluation) 논리 연산자 " 첫 번째 피연산자의 결과에 따라 두 번째 피연산자의 논리식은 평가되지 않는 연산자 || ( or ) 첫 번째 피연산자가 true 이면 두 번째 피연산자의 논리식은 평가되지않음 && ( and ) 첫 번째 피연산자가 false 이면 두번 째 피연산자의 논리식은 평가되지 않음 간단하게 말하자면 || -> true 가 하나라도 있으면 true && -> false 가 하나라도 있으면 false boolean a = true; boolean b = false; boolean result = a && b; // 첫 번째 피연산자가 true이므로 두 번째 피연산자를 평가해야 함 System.out.println(result..
Toggle은 어떤 값이 현재 상태에 따라 반대로 변경되는 기능을 말합니다 public class ToggleExample { private boolean flag = false; // 초기 상태 public void toggleFlag() { flag = !flag; // 현재 상태의 반대로 변경 } public boolean getFlag() { return flag; } public static void main(String[] args) { ToggleExample toggleExample = new ToggleExample(); System.out.println("현재 상태: " + toggleExample.getFlag()); toggleExample.toggleFlag(); System.ou..