Java
[Java] Static Block 실행 시점
[Java] Static Block 실행 시점
2024.03.15들어가기 전 이번 포스팅에서는 자바에 있는 Static Block이 어떤 시점에 실행이 되는지에 대해 알아보겠습니다. Static Block은 아래와 같이 코드를 작성해 주시면 됩니다. public class StaticBlock { static { 구현부 } } Static Block를 알아보기 전에 Static이 무엇인지에 대해 알아보겠습니다. Static 자바에서는 Static 키워드를 사용하여 정적 변수, 정적 메서드를 만들 수 있습니다. 이 둘을 묶어서 정적 멤버라고 불립니다. Static은 JVM 런타임 데이터 영역 중 메서드 영역 또는 Static 영역에 할당이 됩니다. Static영역에 할당된 값들은 모든 객체가 공유하여 어디서든지 참조할 수 있습니다. 그리고 프로그램이 시작될 때 메모리에..
[Java] ConcurrentModificationException 원인 및 해결 방법
[Java] ConcurrentModificationException 원인 및 해결 방법
2022.11.22들어가기 전 필자가 이 내용을 다루게 된 이유는 업무를 보다가 ArrayList로 담긴 데이터를 순회하면서 삭제하다가 ConcurrentModificationException 예외를 접하게 되었습니다. 자바를 여태 하면서 IndexOutOfBoundsException는 많이 봤어도 ConcurrentModificationException라는 예외는 처음 봐서 이거에 대해 알아보고 싶었고 그리고 이 문제를 겪는 사람들이 많을 거라고 생각되어 다루게 되었습니다. 이제 문제의 원인이랑 해결방법에 대해서 알아보겠습니다. 원인 원인에 대해 먼저 알아보기 전 원인이 된 코드를 먼저 보겠습니다. public class Test { public static void main(String[] args) { List fi..
[Java] this란?
[Java] this란?
2022.05.01this란? this는 Java에서만 사용하는 것이 아니라 C, C++ 등 여러 곳에서 많이 사용됩니다. 여기서 this의 영어를 뜻은 "(가까이 있는 것을 가리켜)이것"이라는 것처럼 this는 객체 자기 자신을 가리킵니다. this가 많이 사용되는 곳은 매개변수가 있는 생성자, setter 등에서 많이 사용됩니다. 예를 들어서 Person이라는 객체가 존재한다고 해보겠습니다. public class Person { String name; Integer age; public Person() { } public Person(String name) { this.name = name; } public Person(String name, int age) { this.name = name; this.age = a..
[Java] 함수와 메서드의 개념 및 차이, 스택 메모리
[Java] 함수와 메서드의 개념 및 차이, 스택 메모리
2022.02.21함수란? 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합입니다. 함수로 구현된 기능은 여러 곳에서 호출되어 사용이 가능합니다. 메서드란? 객체의 기능을 구현하기 위한 클래스 내부에 구현되는 함수입니다. 멤버 함수라고도 합니다. 메서드를 구현하면 객체의 기능을 구현하는 것입니다. 함수와 메서드의 차이점 프로그래밍 언어마다 함수로 부르는 언어도 있고 메서드라고 부르는 언어도 있습니다. 그런데 함수와 메서드는 비슷하면서도 다른 점이 있습니다. 함수는 어디에 속해있지 않고 단독 모듈이라 함수를 그냥 호출하여 사용이 가능합니다. 메서드는 함수의 일종이긴 하지만 클래스 안에 속해 있고 클래스의 멤버 변수들을 이용해서 구현된 것을 메서드라고 합니다. 스택 메모리 영역 함수가 호출될 때 지역 ..