[Java] ArrayList는 어떻게 크기가 가변적일까?
2022. 2. 23. 22:32
Java & Kotlin
0.🚶들어가며 자바에서 배열은 크기가 고정되어있습니다. 코드 작성 시 배열에 들어갈 내용을 전부 알고 있다면 배열의 크기도 예상을 할 수 있을 것입니다. 이러한 환경 속에서는 배열을 사용하는 것이 성능면에서나 메모리면에서나 효율적입니다. 하지만 많은 경우 배열에 얼마만큼의 내용이 들어갈지 전부 파악하기가 어렵습니다. Java의 Collection 중 ArrayList 클래스는 이러한 문제점을 해결해줍니다. 바로 가변적인 크기의 배열 기능을 제공해주죠. 즉, 배열로 사용하다가 크기가 부족할 시 더 큰 배열로 확장해줍니다. 이 글은 ArrayList가 어떤 방식으로 가변적인 크기의 배열 기능을 제공해주는 지에 대해 궁금하여 찾아보다 작성하게 되었습니다. 1.📖본문 배열의 크기를 확장하는 코드를 확인하려면 A..
[Java] 왜 부모 클래스의 참조 변수가 자식 클래스의 메소드를 사용하지 못할까?
2022. 2. 12. 16:53
Java & Kotlin
0. 🚶들어가며 다형성에 대해 공부하다가 쉽게 이해가 되지 않는 부분이 생겼고 이에 대해 알게 된 점에 대해 글을 작성해보겠습니다. 1. 문제 ❓❓❓ 문제 상황은 다음과 같습니다. 다형성을 이용할 때 부모 클래스의 참조 변수에 자식 인스턴스를 할당해준 경우 왜 이 참조 변수가 자식 클래스만 가지고 있는 메소드는 사용하지 못하냐에 대한 물음이 생겼습니다. 좀 더 자세한 상황 설명을 위해 아래 코드를 첨부해보겠습니다. public class Test { public static void main(String[] args) { Parent p = new Child(); p.childMethod(); // 컴파일 에러가 나는 부분 } } class Parent {} // 부모 클래스 class Child ext..
[Java] public static void main(String[] args)에 대하여
2022. 2. 9. 18:35
Java & Kotlin
0. 들어가며 public class Test { public static void main(String[] args) { System.out.println("Hello World!"); } } 자바를 처음 배우면 대개 위와 같은 문장을 따라 쳐 보는 것으로 시작하곤 합니다. 또한 자바 프로그래밍을 하다보면 수없이 사용하는 문장임에도 불구하고 자세히 알아본 적이 없는 것 같아 이번 기회에 이에 대해 정리해보려 합니다. 1. 본문 public static void main(String[] args) 위 문장에 대해 알아본다라는 것은 크게 세 가지를 알아본다라고 정리할 수 있을 것 같습니다. 1. main 메소드는 무엇인가? 2. main 메소드의 매개 변수인 String[] args는 무엇인가? 3. ma..