일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 탐욕법
- OOP
- nestjs
- winston
- LifeCycle
- 인접리스트
- java
- typescript
- Interceptor
- html
- JWT
- 알고리즘
- 코딩테스트
- 인접행렬
- Deep Dive
- puppeteer
- bean
- Kubernetes
- 프로그래머스
- REST API
- node.js
- 자료구조
- Spring
- GraphQL
- Linux
- TIL
- javascript
- MySQL
- dfs
- css
- Today
- Total
목록Language (57)
처음부터 차근차근
Final이란? Final 키워드는 말 그대로 '마지막의' 또는 '변경될 수 없는' 의미를 가지고 있으며, 이름 그대로 끝이라는 뜻입니다. 거의 모든 대상에 사용될 수 있습니다. Final이 사용될 수 있는 대상 Class 변경할 수 없는 클래스, 즉, 확장될 수 없는 클래스를 의미합니다. 즉, 다른 클래스의 조상이 될 수 없습니다. Method 변경될 수 없는 메서드를 의미하며, Overriding을 통해 재정의 될 수 없습니다. 멤버 변수, 지역 변수 변수 앖에 final이 붙으면, 값을 변경할 수 없는 상수가 됩니다. 재할당을 할 경우, 컴파일 오류가 발생합니다. Final 사용해보기 지역변수 package final1; public class FinalLocalMain { public static..
Static이란? 정적(static)은 고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 다른말로 정적필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버라고 합니다.(클래스 멤버라고도 합니다.) 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다. 그렇기에 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있습니다. Static 멤버 생성 Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 Static영역에 할당됩니다. Static 영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤..
Java의 메모리 구조 메서드 영역(Method Area) : 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리합니다. 이 영역은 프로그램의 모든 영역에서 공유합니다. 클래스 정보 : 클래스의 실행 코드(Byte Code), Field, Method와 생성자 코드 등 모든 실행코드가 존재합니다. static 영역: Static 변수들을 보관합니다. Runtime 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관합니다. 예를 들어 "hello"라는 리터럴 문자가 있으면 이런 문자를 공통으로 묶어서 관리합니다. 이 외에도 프로그램을 효율적으로 관리하기 위한 상수들을 관리합니다. 스택 영역(Stack Area) : 자바 실행 시, 하나의 실행 스택이 생성됩니다. 각 스택 프레임은 ..
제어자(modifier)란? 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여합니다. 제어자는 클래스나 멤버 변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능합니다. 접근 제어자 : public, protected, (default), private 그 외 : static, final, abstract, native, transient, synchronized, volatile, strictfp 접근 제어자 access modifier 멤버 또는 클래스, 메서드에 사용되어, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 합니다. 접근 제어자 종류 private : 같은 클래스 내에서만 접근이 가능하다. (모든 ..
Package란? Package란 클래스의 묶음입니다. Package에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있습니다. 즉, 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리 입니다. Package 사용 먼저 IntelliJ를 통해 패키지를 먼저 만들고 그 안에 클래스를 만들어야 합니다. package pack; public class Data { public Data() { System.out.println("패키지 pack Data 생성"); } } 패키지를 사용하는 경우 항상 코드 첫줄에 package pack과 같이 패키지 이름을 적어줘야 합니다. 이후에..
Java에서 객체를 생성하는 시점에 어떤 작업을 하고 싶다면 생성자(Constructor)를 이용하면 됩니다. 생성자란? 생성자(Constructor)는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 하는 작업을 위해서도 사용된다. 생성자를 알아보기 전에 먼저 생성자가 왜 필요한지 코드로 알아보겠습니다. 생성자가 필요한 이유 간단한 MemberInit Class를 만들고, MemberInit 객체를 사용하는 코드를 작성해보겠습니다. public class MemberInit { String name; int age; int grade; } public class MethodInitMain1 { public..
Java는 Class 기반 객체 지향 프로그래밍입니다. 하지만 지금까지 작성했던 코드들은 모두 절차 지향 프로그래밍이였습니다. 두 개의 차이점과 어떻게 하면 객체 지향 프로그래밍으로 작성하는지 알아보겠습니다. 절차 지향 vs 객체 지향 절차 지향 프로그래밍 절차를 지향합니다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식입니다. 프로그램의 흐림이 순차적으로 따르며 처리하는 방식입니다. 즉, "어떻게"를 중심으로 프로그래밍 합니다. 객체 지향 프로그래밍 이름 그대로 객체를 지향합니다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식입니다. 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍 하는 방식입니다. 즉, "무엇을" 중심으로 프로그래밍 합니다. 차이점 절..
Java 변수의 종류 멤버 변수(필드) : 클래스에 선언합니다 지역 변수 : 메서드에 선언, 매개변수도 지역 변수의 한 종류입니다. 지역 변수는 이름 그대로 특정 지역에서만 사용되는 변수라는 의미입니다. (왜 전역 변수가 없을까..) 멤버 변수, 필드 예시 public class Student { String name; int age; int grade; } 지역 변수 예시 public class Method1 { public static void main(String[] args) { Student student1 = new Student(); } } static void initStudent(Student student, String name, int age, int grade) { student.n..
저번 포스팅에서 기본형 타입을 간단하게 알아봤는데, Java에서 사용되는 데이터 타입인 기본형과 참조형에 대해 알아보겠습니다. [Java] Java 변수 선언, 데이터 타입 변수 프로그래밍을 하다 보면 값을 저장해 둘 공간이 필요한데, 그 공간을 변수라고 합니다. 변수(variable)는 이름 그대로 변할 수 있다는 뜻을 의미하며, 공간에 들어간 값은 변할 수 있습니다. hangju95.tistory.com 기본형과 참조형 Java의 변수 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있습니다. 기본형(Primitive Type) : int, long, double, boolean처럼 변수에 사용하는 값을 변수에 직접 넣을 수 있는 데이터 타입 기본형은 소문자로 시작하며, 자바가 기본으로 ..
포스팅은 김영한의 실전 자바 - 기본편의 내용을 정리한 것입니다. Class가 필요한 이유 Java는 클래스와 객체로 이루어져 있으며, Java의 특징 중 하나가 Class 기반 객체 지향 프로그래밍 언어입니다. 클래스와 객체라는 개념이 왜 필요한지부터 시작하며, 클래스가 어떤 방식으로 발전하면서 만들어졌는지 알아보겠습니다. 간단한 Class 만들어보기 클래스를 사용해서 학생이라는 개념을 만들고, 각각의 학생 별로 본인의 이름, 나이, 성적을 관리하는 것을 만들어보겠습니다. package class1; public class Student { String name; int age; int grade; } Class 키워드를 사용해서 학생 클래스를 정의하였습니다. 학생 클래스는 내부에 이름, 나이, 성적 ..