java 95

[Java] abstract와 interface

`abstract`와 `interface`는 추상화를 구현하는 두가지 주요 도구이다1. 추상 클래스 (`abstract`)개념추상 클래스는 완전히 구현되지 않은 클래스 이다일부 메서드는 구현을 가지고, 일부는 구현되지 않을 수 있다직접 객체 생성이 불가능하며 상속받을 하위 클래스가 구현해야 합니다특징클래스와 메서드에 `abstract` 키워드 사용구현된 메서드 포함 가능함 (일반 메서드와 추상 메서드 모두 가질수 있다)상속을 통한 확장 (다른 클래스가 이를 상속받아야 하며 추상메서드를 반드시 구현해야함)인스턴스 생성 불가 (직접 객체를 생성할 수 없음)변수와 메서드의 다양한 유형 허용 (인스턴스 변수, 정적 변수, 정적 메서드 등을 포함할 수 있다)클래스 내부의 변수나 메서드중에 하나라도 abstract..

BE/Java 2024.11.30

[Java] 접근 제어자

접근 제어자의 종류접근 제어자같은 클래스같은 패키지다른 패키지(서브클래스,상속)다른 패키지`public`OOOO`protected`OOOX`(default)`OOXX`private`OXXX1. `public`어디서나 접근 가능제한이 없는 가장 개방적인 접근 제어자사용 위치 : 클래스, 메서드, 변수, 생성자특징 : 외부에서 자유롭게 사용 가능한 요소를 선언할때 사용2. `protected`같은 패키지와 다른 패키지의 서브클래스(상속)에서 접근 가능같은 패키지에 있는 클래스에서는 접근 가능하지만 다른패키지에서는 서브클래스를 통해서만 접근 가능하다package example;public class Parent { protected String message = "Hello, Subclass!"; ..

BE/Java 2024.11.30

[Java] static

`static`은 클래스 레벨에서 관리되는 요소를 정의할때 사용된다. `static`의 특징1. 클래스와 연관됨`static` 으로 선언된 요소는 클래스 로드 시 메모리에 올라가며 해당 클래스의 모든 객체가 공유한다.객체에 종속되지 않고 클래스 자체에 종속된다.2. 객체 생성 없이 사용 가능`static` 멤버는 클래스 이름을 통해 직접 호출할 수 있다.예 : `ClassName.staticMember`3. 메모리 공유`static` 변수는 한번만 메모리에 할당되며 모든 객체가 이를 공유한다.인스턴스 변수와 달리 개별 객체마다 복사본이 생성되지 않는다.`static`의 주요 사용처1. `static` 변수클래스 전체에서 공유되는 변수프로그램에서 일정한 값을 유지하거나 모든객체가 공통으로 사용하는 데이터를..

BE/Java 2024.11.30

[Java] 메모리 계산

자바 프로그램은 힙(heap)과 스택(stack)영역에서 메모리를 관리한다. 기본 데이터 타입 메모리 크기데이터 타입크기 (바이트)비고`byte`1-128 ~ 127`short`2-32,768 ~ 32,767`int`4-2³¹ ~ 2³¹-1`long`8-2⁶³ ~ 2⁶³-1`float`432비트 IEEE 754 부동소수점`double`864비트 IEEE 754 부동소수점`char`216비트 유니코드 문자`boolean`일반적으로 1바이트JVM에 따라 다름 참조 데이터 타입 메모리 크기참조형 타입은 힙 메모리에 저장된다.1. 객체 자체 (헤더 포함) : JVM구현에 따라 다르지만 일반적으로 객체 헤더는 12~16바이트를 차지한다.2. 인스턴스 변수 : 포함된 모든 인스턴스 변수의 크기를 합산.3. 패딩 :..

BE/Java 2024.11.30

[Java] 변수

데이터를 저장하기 위한 메모리 공간자바 변수의 특징1. 타입 지정변수를 선언할때 타입을 지정 해줘야 한다.int age = 20;String name = "민수";2. 스코프변수는 선언된 위치에 따라 사용 가능한 범위가 달라진다.지역 변수 : 메서드나 블럭 내부에서 선언된 변수로, 해당 블럭에서만 사용가능인스턴스변수 : 클래스 내부에서 선언되며 객체에 속함클래스 변수 : `static`키워드로 선언되며 클래스에 속함3. 초기화지역 변수는 초기화를 하지 않으면 사용할 수 없다.인스턴스 변수와 클래스 변수는 기본값(0, null 등)으로 자동 초기화 된다.4. 상수 변수final 키워드를 사용해 값을 변경할 수 없는 상수로 선언할 수 있다.(상수는 변수명을 대문자로 사용)final double PI = 3...

BE/Java 2024.11.30