본문 바로가기

JAVA8

[JAVA] 배열 크기가 고정적인 이유, ArrayList 길이가 가변적인 이유 배열 크기가 고정적인 이유 배열의 크기가 고정적인 이유는 메모리 할당 방식과 배열 요소에 대한 주소 계산 방식과 밀접하게 관련되어 있다. 데이터는 메모리에 연속적으로 할당되며, 배열의 각 원소는 해당 데이터 타입의 크기만큼 메모리 공간을 차지한다. 데이터는 인덱스 값에 따라 순서대로 배치된다. 예를 들어, 아래의 int 타입의 배열이 있다.여기서 참조변수 a는 배열의 첫 번째 원소의 메모리 주소를 참조한다. 그리고 각 인덱스 값들은 배열의 시작 주소인 a를 기준으로 오프셋(offset, 기준 위치에서 특정 요소까지의 거리)을 계산하여 참조하게 된다. 이 방식 덕분에 배열의 요소에 접근할 때 순차적으로 찾지 않고 바로 해당 요소의 주소를 계산하여 빠르게 접근할 수 있다.int[] a = {1, 2, 3, .. 2024. 10. 29.
[JAVA] 상속, 메소드 오버라이딩, 형 변환 상속이란?자식 클래스가 부모 클래스의 기능을 그대로 물려받을 수 있는 기능 super자식 클래스에서 부모 클래스의 멤버에 접근할 때 사용한다.단, 부모 클래스의 private 접근 제어자를 가진 메소드를 자식 클래스에서 호출하는 것은 불가하다.(private 접근 제어자를 가진 변수나 메소드는 선언되어 있는 해당 클래스 내에서만 호출 가능하다.)super( ) 자식 클래스에서 부모 클래스의 생성자 호출을 의미한다.super()는 자식 클래스의 생성자 안에서 가장 첫줄에 선언되어야 한다.부모 클래스에 기본 생성자(매개 변수가 없는 생성자)가 없고, 매개 변수가 있는 생성자만 있을 때, 자식 클래스에서 기본 생성자를 사용하려고 하면 에러가 발생한다.왜냐하면 자식 클래스는 기본적으로 super()를 통해 부모.. 2024. 10. 22.
[JAVA] 접근 제어자 접근 제어자 종류public        누구나 접근할 수 있다.protected          같은 패키지 내에 있는 경우, 다른 패키지에서는 상속받은 경우에만 접근할 수 있다.package-private          접근 제어자가 없는 경우이며, 같은 패키지 내에 있을 때만 접근할 수 있다.          (다른 패키지에서 접근 불가) private          해당 클래스 내에서만 접근 가능하다. 2024. 10. 22.
[JAVA] 패키지 패키지란?패키지(package)는 클래스들을 구분 짓는 폴더와 비슷한 개념이다. 자바를 개발할 때 클래스들을 분류하지 않으면 이름이 중복되거나, 어떤 클래스가 어떤 일을 하는지 혼동되는 일이 발생한다. 그래서 존재하는 것이 패키지다. 패키지 제약사항소스의 가장 첫 줄에 있어야 한다.(패키지 선언 위에 주석이나 공백은 있어도 상관없다.)패키지 선언은 소스 하나에는 하나만 있어야 한다.패키지 이름과 위치한 폴더 이름이 같아야 한다.(해당 파일이 존재하는 위치와 동일하게 패키지를 지정해야 한다.) 패키지명 유의사항패키지명은 모두 소문자로 지정해야 한다.자바의 예약어(int, static 등)가 패키지명에 들어 있으면 안된다.상위 패키지를 import하더라도 서브 패키지의 클래스를 사용할 수 없다.(예를 들어 .. 2024. 10. 22.
[JAVA] 메소드 오버로딩 메소드 오버로딩메소드의 이름을 같도록 하고 매개 변수(종류, 갯수, 순서)만을 다르게 하는 것public class Example { public void print(int data) { } public void print(String data) { } public void print(int data1, String data2) { } public void print(String data2, int data1) { } } 메소드 오버로딩의 이점System.out.println() 메소드. 이 메소드의 매개 변수로, int만 넘겨줘도 되고, long만 넘겨줘도 되고, String만 넘겨줘도 된다. 이것이 바로 오버로딩의 이점이다."같은.. 2024. 10. 20.
[JAVA] 배열 배열기본 자료형 배열의 기본값은 0(정수형)이거나, 0.0(실수형)이거나, 공백(char)이거나, false(boolean)이다.String이나 참 배열 선언의 형태// 예시 1int[] numbers = new int[7];// 예시 2int[] numbers;numbers = new int[7];// 예시 3int[] numbers = {1, 3, 5, 7, 9};// 예시 4int[] numbers;numbers = new int[]{1, 3, 5, 7, 9}; //주의 : new int[] 를 반드시 명시해야 함 배열의 기본값기본 자료형 배열의 기본값은 0(정수형)이거나, 0.0(실수형)이거나, 공백(char)이거나, false(boolean)이다.String이나 참조 자료형은 초기화를 하지 않.. 2024. 10. 20.
LIST