본문 바로가기

Java16

JAVA List, ArrayList, LinkedList List는 자바 컬렉션 프레임워크에서 제공하는 인터페이스로 순서가 있는 요소의 집합을 다루기 위한 자료 구조다.List 인터페이스를 구현한 대표적인 클래스로는 ArrayList, LinkedList, Vector등이 있다. ㅇ List의 특징순서 유지List는 요소가 추가된 순서를 유지한다. 따라서 요소를 삽입하면 삽입 된 순서대로 요소가 저장된다.중복 허용Set과 달리 List는 동일한 요소를 여러 번 저장할 수 있다. 같은 값의 요소가 리스트에 여러 번 존재할 수 있다.인덱스 기반 접근List의 요소는 배열처럼 인덱스를 사용하여 접근할 수 있다. 배열과 같이 0부터 시작한다. ㅇ List와 Array(배열)의 차이점동적 크기배열은 크기가 고정되어 있지만, List는 크기를 동적으로 조절할 수 있다. .. 2024. 10. 3.
JAVA Array(배열) 자바의 배열은 동일한 타입의 여러 값을 하나의 변수에 저장할 수 있는 자료구조다. 배열은 고정된 크기를 가지며, 한 번 크기가 설정되면 변경할 수 없다. 인덱스를 통해 각 요소에 접근할 수 있다. ㅇ 배열의 특징동일한 타입의 값만 저장 가능 배열은 같은 데이터의 타입만 저장할 수 있다. 배열을 선언할 때 지정한 데이터의 타입과 같은 값만 저장할 수 있다.고정된 크기배열을 선언할 때 크기를 지정해야 하며, 크기가 설정되면 변경할 수 없다.0부터 시작하는 index배열의 인덱스는 0 부터 시작한다. (마지막 요소는 배열의 크기 - 1) ㅇ 배열의 선언과 초기화 배열 선언은 변수를 생성할 때 데이터 타입의 뒤에 []를 붙여준다.new를 사용하여 인스턴스를 생성할 때 [n]으로 배열의 크기를 지정한다.배열을 선.. 2024. 10. 2.
JAVA 변수 ㅇ 변수의 종류변수의 종류에는 멤버 변수와 지역변수로 구분할 수 있고, 멤버 변수는 인스턴스 변수와 클래스 변수로 구분할 수 있다. 인스턴스 변수static이 붙지 않은 멤버 변수, 멤버 변수는 인스턴스를 생성해야 사용할 수 있고, 인스턴스를 만들 때 마다 새로 만들어진다.클래스 변수정적, static, 클래스 변수라고 부른다. static 키워드가 붙어있는 멤버 변수는 인스턴스와 무관하게 클래스에 바로 접근해서 사용이 가능하다. 클래스 자체에 소속되어 있다.지역 변수메서드 블럭안에 생성된 변수다. 메서드의 파라미터로 사용되는 매개 변수도 지역변수다. 메서드가 종료되면 사라진다.ㅇ 변수의 생명주기인스턴스 변수인스턴스 내부에 존재하는 멤버 변수를 인스턴스 변수라고 한다. 인스턴스는 힙 영역을 사용하기 때문.. 2024. 9. 19.
JAVA 메모리 구조 자바의 메모리 크게 3가지로 나눌 수 있고 간단하게 설명하면 아래와 같다.메서드 영역: 클래스 정보를 보관한다.스택 영역: 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때 마다 하나씩 쌓인다.힙 영역: 객체(인스턴스)와 배열이 생성되는 영역이다. new 명령어를 사용하면 이 영역을 사용한다. ㅇ 자바의 메모리 구조메서드 영역(Method Area)메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 프로그램의 모든 영역에서 공유한다.클래스 정보: 클래스의 실행 코드(바이트코드), 필드, 메서드, 생성자 등 모든 실행 코드가 존재한다.Static 영역: static 변수들을 보관한다.런타임 상수 풀: 공통 리터럴 상수를 보관한다. 리터럴 문자가 있으면 공통으로 묶어서 관리하고, 이 외.. 2024. 9. 19.
JAVA 캡슐화(Encapsulation) 캡슐화(Encapsulation)캡슐화는 객체 지향 프로그래밍의 중요한 특징 중 하나다. 속성과 기능을 하나로 묶어 외부에 필요한 기능만 노출하고 나머지는 모두 내부로 숨기는 것을 말한다. 캡슐화를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다. ㅇ 속성객체에는 속성이 존재한다. 캡슐화에서 가장 필수로 숨겨야 하는 것은 속성이다. 객체 내부의 데이터를 외부에서 접근이 가능하게 한다면 클래스 안에서 데이터를 다루는 모든 로직을 무시하고 데이터를 변경할 수 있기 때문에 캡슐화가 깨질 수 있다. 개발자가 의도하는데로 프로그램이 동작하지 않을 수 있다. 예를 들어 우리가 Tv를 개발하고 있다는 가정을 해보자 Tv의 채널은 5번을 넘어가게 되면 폭발한다. 그렇다면 Tv의 채널을 5번이 넘어가지 않게 설.. 2024. 9. 18.
Java 인터페이스와 추상 클래스의 차이점 이번에는 인터페이스와 추상 클래스의 다른점을 알아보겠습니다 인터페이스와 추상 클래스의 다른점을 알아보기 전에 인터페이스와 추상클래스의 특징과 공통점을 서술한 뒤 차이점을 이야기 해보겠습니다 인터페이스의 특징1. 모든 메서드는 추상 메서드여야 한다2. 모든 필드는 상수여야 한다3. 다중 상속을 지원한다4. 서로 다른 클래스 간의 공통된 동작을 정의한다 구현체 간 호환성을 제공하고 클래스 간 결합도를 느슨하게 하는데 사용 된다 추상 클래스의 특징1. 단일 상속만 가능하다2. 중복되는 클래스 멤버의 통합 혹은 확장3. 추상메서드뿐 아니라 일반 필드와 메서드, 생성자를 가질 수 있다4. 클래스 간에 코드를 재사용하고 공통된 속성을 정의하는데 사용한다 인터페이스와 추상클래스의 공통점1. 추상 메서드의 존재2. 인.. 2024. 2. 28.
Java 컴파일 과정을 알아보기 컴파일의 과정을 이야기하기 전에 컴파일이란 무엇인지 알아보자!  컴파일이란  컴퓨터는 0과 1로만 모든 명령을 이해하고 실행한다. 우리가 사용하는 문자를 입력하여도 컴퓨터는 이를 0과 1로 이루어진 이진코드로 해석한다. 인간이 사용하는 문자를 컴퓨터가 읽을 수 있게 0과 1로 된 이진코드로 변환해 주는 것을 컴파일이라고 한다컴파일의 과정  소스코드 작성  컴파일은 우선 개발자의 소스코드 작성으로 시작된다  개발자가 작성한 소스코드는 확장자.java 파일로 저장된다 컴파일  자바 컴파일러가 .java로 저장된 소스코드를 읽어들여 JVM(자바가상머신)에서 실행될 수 있는 바이트 코드로 컴파일을 진행한    다. 이 때 .java 파일은 .class 파일로 확장자가 변경됩니다 바이트 코드는 특정 플랫폼에 의존.. 2024. 2. 25.