Java

Java

다형성 -1

다형성 다형성(Polymorphism)은 이름 그대로 "다양한 형태", "여러 형태"를 를 뜻한다. 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 보통 하나의 객체는 하나의 타 입으로 고정되어 있다. 그런데 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다는 뜻이다. 다형적 참조 메서드 오버라이딩 다형적 참조 부모 타입의 변수가 자식 인스턴스를 참조한다. Parent poly = new Child() Child 인스턴스를 만들었다. 이 경우 자식 타입인 Child 를 생성했기 때문에 메모리 상에 Child 와 Parent 가 모두 생성된다. 생성된 참조값을 Parent 타입의 변수인 poly 에 담아둔다. 부모는 자식을 담을 수 있다. 부모 타입은 자식..

Java

스택과 큐 자료 구조

Stack 구조 후입 선출(LIFO, Last In First Out) 여기서 가장 마지막에 넣은 3번이 가장 먼저 나온다. 이렇게 나중에 넣은 것이 가장 먼저 나오는 것을 후입 선출이라 하 고, 이런 자료 구조를 스택이라 한다 Queue 구조 선입 선출(FIFO, First In First Out) 후입 선출과 반대로 가장 먼저 넣은 것이 가장 먼저 나오는 것을 선입 선출이라 한다. 이런 자료 구조를 큐(Queue)라 한다.

Java

자바 메모리 구조

자바 메모리 구조 자바의 메모리 구조는 크게 3개로 나눌수 있다. 메서드 영역 : 클래스 정보를 보관한다. 스택 영역 : 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때 마다 하나씩 쌓인다. 힙 영역 : 객체가 생성되는 영역이다. new 명령어를 사용하면 이 영역을 사용한다. 쉽게 이야기 하면 매서드 영역에서부터 생성된 객체가 존재하는 공간이다. ( 배열도 힙 영역에서 생성된다. ) 메서드 영역(Method Area): 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드등 모든 실행 코드가 존재한다. static 영역: static 변수들을 보관한다. 뒤에서..

Java

객체지향, 절차 지향

절차 지향 프로그래밍 절차 지향 프로그래밍은 절차를 지향한다. 쉽게 말해 실행 순서를 중요하게 생각하는 방식이다. 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게" 를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍 객체지향 프로그래밍은 객체를 지향한다. 쉽게 말해 객체를 중요하게 생각하는 방식이다. 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들간의 상호작용을 중심으로 "무엇을" 프로그래밍 한다. 두개의 중요한 차이 절차지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어있다. 객체지향은 데이터와 그 데이터에 대한 행동이 하나의 객체 안에 포함되어 있다. 즉, 객체지향에서의 기능들을 매서드로 만들고 원할때의 객체의 매서드를 호출하여 사용하고, 절차지향은 순서를 짜놓고 ..

Java

기본형(int)과 참조형(Student) 매서드 호출 -2

public static void main(String[] args) { int a = 10; System.out.println("메서드 호출 전: a = " + a); changePrimitive(a); System.out.println("메서드 호출 후: a = " + a); } static void changePrimitive(int x) { x = 20; } 자바는 항상 변수의 값을 복사해서 대입한다. - 기본형, 참조형 모두 항상 변수에 있는 값을 복사해서 대입한다. 기본형이면 변수에 들어 있는 실제 사용하는 값을 복사해서 대입하고, 참조형은 변수에 있는 참조값을 복사해서 대입한다. 기본형 매서드 호출 public static void main(String[] args) { int a = 10;..

Java

기본형(int)과 참조형(Student) 개념, 변수 대입 -1

기본형 기본형 : int, long, double, boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라고 한다. 기본형 변수에는 직접 사용할 수 있는 값이 들어가 있다. - 실제 사용하는 값을 변수에 담고 바로 사용할 수 있다. - 기본형에 들어가 있는 값들은 계산에 사용할 수 있다. 참조형 참조형 : Student student1, int[] students 의 같이 데이터에 접근하기 위한 참조를 저장하는 데이터 타입을 참조형이라고 한다. (Integer, Double 이런것들은 기본형을 감싸는 래퍼 클래스 이므로 예외) 참조형 변수에는 주소(참조값)가 들어가 있다. - 해당 메모리에 저장되어 있는 객체에 접근해야지 사용이 가능하다. 참조형에는 객체와 배열이 있다. - ..

Java

클래스 (객체) - 메모리

클래스 예제 1. 첫 번째 학생의 이름은 "학생1", 나이는 15, 성적은 90입니다. 2. 두 번째 학생의 이름은 "학생2", 나이는 16, 성적은 80입니다. 3. 각 학생의 정보를 다음과 같은 형식으로 출력해야 합니다: "이름: [이름] 나이: [나이] 성적: [성적]" 4. 변수를 사용해서 학생 정보를 저장하고 변수를 사용해서 학생 정보를 출력해야 합니다. 예시 출력: ``` 이름: 학생1 나이: 15 성적: 90 이름: 학생2 나이: 16 성적: 80 이 문제를 푸는 처음 방법으로는 아래와 같이 풀었다. 첫번째 코드 String student1Name = "학생1"; int student1Age = 15; int student1Grade = 90; String student2Name = "학생2..

Java

제네릭

제네릭이란 ? 언어에서 타입 안전성을 보장하기 위한 기능입니다 즉, Object 로 가져와도 되지만 타입 안정성을 보장하기위해 만든것이 제네릭인것 같다. 제네릭 쓰는 방법 public class Generic { private T t; public T get() { return this.t; } public void set(T t) { this.t = t; } public static void main(String[] args) { Generic stringGeneric = new Generic(); stringGeneric.set("Hello World"); String tValueTurnOutWithString = stringGeneric.get(); System.out.println(tValueTu..

Java

record

record 란? 데이터 클래스이며 순수하게 데이터를 보유하기 위한 특수한 종류의 클래스이다. VO 에 적합한 클래스이다. record 구성 public record UserDTO( Long id, String name ) { } 생성자가 id, name 받아야 하는 클래스이다. 주의 JDK14 부터 가능하다.

Java

Stream 클래스

Stream 클래스란? Java 에서 Stream 클래스는 데이터를 처리하는데 유용한 기능을 제공하는 API 이다. 함수형 프로그래밍의 개념을 적용하여 데이터를 필터링, 매핑, 집계 등의 작업을 수행할수 있다. Stream 클래스 특징 데이터를 한 번에 한 개씩 처리하는 게으른(lazy) 연산 방식을 사용하여 성능을 최적화합니다. 병렬 처리를 지원하여 대량의 데이터를 빠르게 처리할 수 있습니다. 중간 연산과 최종 연산으로 구성되어 있으며, 중간 연산은 다른 스트림을 반환하고 최종 연산은 스트림의 요소를 소비하여 결과를 반환합니다. 람다식을 사용하여 작업을 정의할 수 있습니다. 중간 연산 (Intermediate operations) filter(Predicate predicate): 주어진 조건에 맞는 ..

Domae_
'Java' 카테고리의 글 목록